Осуществляет свертку табличной части по указанным колонкам группировки. Строки, у которых совпадают значения в колонках, указанных в первом параметре, сворачиваются в одну строку. Значения этих строк, хранящиеся в колонках, указанных во втором параметре, накапливаются. Важно! Оба списка колонок должны покрывать всю табличную часть. Списки колонок не должны пересекаться.
Синтаксис
Свернуть(<КолонкиГруппировок>, <КолонкиСуммирования>)Примеры платформы
Состав.Свернуть("Номенклатура", "Количество, Сумма, Всего");Полное описание, параметры и ограничения
Табличная часть.Свернуть (Tabular section.GroupBy)
Табличная часть (Tabular section)
Свернуть (GroupBy)
Доступен, начиная с версии 8.0.
Синтаксис:
Свернуть(<КолонкиГруппировок>, <КолонкиСуммирования>)
Параметры:
<КолонкиГруппировок> (обязательный)
Тип: Строка.
Имена колонок, разделенные запятыми, по которым необходимо группировать строки табличного поля.
<КолонкиСуммирования> (необязательный)
Тип: Строка.
Имена колонок, разделенные запятыми, по которым необходимо суммировать значения в строках табличного поля.
Описание:
Осуществляет свертку табличной части по указанным колонкам группировки. Строки, у которых совпадают значения в колонках, указанных в первом параметре, сворачиваются в одну строку. Значения этих строк, хранящиеся в колонках, указанных во втором параметре, накапливаются.
Важно! Оба списка колонок должны покрывать всю табличную часть. Списки колонок не должны пересекаться.
Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.
Примечание:
Если в колонке установлен тип и он единственный, то при суммировании будет предприниматься попытка преобразования значения к типу Число.
Если колонке не присвоены типы, то в процессе суммирования будут принимать участие только значения, имеющие тип Число, значения других типов будут игнорироваться.
Если в колонке несколько типов и среди них есть тип Число то в процессе суммирования будут принимать участие только значения, имеющие тип Число, значения других типов будут игнорироваться.
Если в колонке несколько типов и среди них нет типа Число, то результат суммирования будет 0, который будет присвоен в соответствующую колонку, где будет преобразован к значению по умолчанию для типа, установленного в колонке.
Использование метода допустимо только в том случае, если табличная часть получена из свойства объекта. Если табличная часть получена из свойства ссылки (или выборки), то использование этого метода будет вызывать ошибку выполнения.
Пример:
Состав.Свернуть("Номенклатура", "Количество, Сумма, Всего");
Использование в версии:
Доступен, начиная с версии 8.0.
Методическая информация
Практические примеры
Свернуть одинаковые строки заявки, сохранив цену группировки
Две строки одного учебного товара по одной цене объединяем в одну, суммируя только количество. Цена остаётся ключом, а не суммируется.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Создайте НОВУЮ пустую файловую учебную базу, не копию рабочего каталога. В Конфигураторе задайте корню имя Учебная85. Не добавляйте эти объекты в рабочую УТ/КА2/УНФ/БП.
Справочники → Добавить: имя УчебныеТовары. Длина кода 10, тип кода Строка, автонумерация и контроль уникальности включены, длина наименования 100.
Для УчебныеТовары включите иерархию групп и элементов. Добавьте реквизиты Артикул (Строка, длина 20) и Цена (Число, 12 цифр, 2 дробных, неотрицательное). Проверка заполнения для этих учебных реквизитов не устанавливается.
Добавьте табличную часть Штрихкоды: Штрихкод (Строка, длина 20) и Основной (Булево). Обновите конфигурацию базы данных. Модули объектов оставьте пустыми.
Создайте серверный общий модуль УчебныеЗадачи и команду учебной обработки, вызывающую ВыполнитьПример() Экспорт. Каждый фрагмент выполняйте отдельно, не склеивайте их в одну процедуру.
Документы → Добавить: имя УчебнаяЗаявка, тип номера Строка, длина 9, автонумерация включена. Проведение запретите: это только учебный документ без движений.
Добавьте реквизит Комментарий (Строка, длина 100) и табличную часть Товары: Товар (СправочникСсылка.УчебныеТовары), Количество (Число, 9 цифр, 0 дробных, неотрицательное), Цена (Число, 12 цифр, 2 дробных, неотрицательное). Модуль документа пустой.
Обновите конфигурацию базы данных. Эти имена существуют только в созданной учебной конфигурации, не подразумеваются в типовой базе.
Если Метаданные.Справочники.Найти("УчебныеТовары") = Неопределено Тогда
ВызватьИсключение "Сначала создайте учебный справочник по подготовке";
КонецЕсли;
Если Метаданные.Документы.Найти("УчебнаяЗаявка") = Неопределено Тогда
ВызватьИсключение "Сначала создайте учебный документ по подготовке";
КонецЕсли;
Заявка = Документы.УчебнаяЗаявка.СоздатьДокумент();
Заявка.Дата = Дата(2026, 10, 2, 10, 0, 0);
Для Номер = 1 По 2 Цикл
СтрокаЗаявки = Заявка.Товары.Добавить();
СтрокаЗаявки.Товар = Справочники.УчебныеТовары.ПустаяСсылка();
СтрокаЗаявки.Количество = ?(Номер = 1, 3, 1);
СтрокаЗаявки.Цена = 250;
КонецЦикла;
ДоСвёртки = Заявка.Товары.Выгрузить();
КоличествоДо = Заявка.Товары.Итог("Количество");
Заявка.Товары.Свернуть("Товар,Цена", "Количество");
Сообщить(Заявка.Товары.Количество() = 1);
Сообщить(Заявка.Товары.Получить(0).Количество = 4);
Сообщить(Заявка.Товары.Получить(0).Цена = 250);
Сообщить(Заявка.Товары.Итог("Количество") = КоличествоДо);
Заявка.Товары.Загрузить(ДоСвёртки);
Заявка.Товары.Получить(1).Цена = 50;
Заявка.Товары.Свернуть("Товар,Цена", "Количество");
Сообщить(Заявка.Товары.Количество() = 2);
Сообщить(Заявка.Товары.Итог("Количество") = 4);
Сообщить(Заявка.ЭтоНовый());Разбор по шагам
У учебной табличной части ровно три собственные колонки. Списки группировки Товар,Цена и суммирования Количество покрывают их и не пересекаются.
Пустая ссылка на товар здесь одинакова у обеих строк намеренно: упражнение не требует создания реальных товаров.
При одинаковой цене 250 строки объединяются, количество становится 4. Суммировать цену вместо группировки было бы неверно для этой задачи.
Восстанавливаем исходные две строки, меняем цену второй на 50 и повторяем: теперь ключи группировки различны, строки не объединяются.
Как проверить результат
Первый результат: одна строка, количество 4, цена 250; сумма количества сохранилась.
Во второй проверке две строки с разными ценами, общий итог количества 4.
Все сравнения Истина, документ остаётся незаписанным.
Ожидаемый результат
Разобрана свёртка на явно определённой схеме табличной части без потери цены.
На что обратить внимание
В рабочем документе колонок обычно больше: нельзя использовать эти списки без изучения полной схемы.
Объединение пустых ссылок допустимо лишь в этом упражнении, не при загрузке реального заказа.
Свернуть меняет строки самого экземпляра; для предварительного просмотра используйте отдельную выгруженную таблицу.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.