Не редко печатную форму нужно привести к виду, который отличается от данных в макете. Такую задачу можно решить программной обработкой табличного документа.
Предположим нужно получить печатную форму в которой товар разделен по группам следующим образом:

Получим исходные данные, сформируем печатную форму и объединим нужные строки:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
ТабДок = Новый ТабличныйДокумент; Макет = ПолучитьМакет("МойМакет"); ОбластьЗаголовок = Макет.ПолучитьОбласть("ОбластьЗаголовок"); ОбластьСтрока = Макет.ПолучитьОбласть("ОбластьСтрока"); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ""1"" КАК Группа, | ""Карандаш"" КАК Наименование | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | ""1"", | ""Ручка"" | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | ""2"", | ""Стол"" | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | ""2"", | ""Шкаф"" |ИТОГИ ПО | Группа"; РезультатЗапроса = Запрос.Выполнить(); ВыборкаГруппа = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); ТабДок.Вывести(ОбластьЗаголовок); Пока ВыборкаГруппа.Следующий() Цикл ПерваяСтрокаГруппы = ТабДок.ВысотаТаблицы+1; ВыборкаДетальныеЗаписи = ВыборкаГруппа.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл ОбластьСтрока.Параметры.Заполнить(ВыборкаДетальныеЗаписи); ТабДок.Вывести(ОбластьСтрока); КонецЦикла; ТабДок.Область(ПерваяСтрокаГруппы, 2, ТабДок.ВысотаТаблицы, 2).Объединить(); КонецЦикла; |