После того как установлена схема компоновки данных и ее настройки, можно программно сформировать и вывести отчет (листинг 3.61).
Листинг 3.61. Программное формирование отчета
Процедура СформироватьОтчет() Экспорт
СхемаКомпоновкиДанных = УстановитьСхему();
Настройки = УстановитьНастройки(СхемаКомпоновкиДанных);
// В этот объект помещается информация о расшифровке данных.
ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
// Формирование макета компоновки данных с помощью компоновщика макета.
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
// В макет компоновки передаются СхемаКомпоновкиДанных, ее настройки и
// ДанныеРасшифровки для заполнения информации о расшифровке.
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки,
ДанныеРасшифровки);
// Выполнение компоновки данных с помощью процессора компоновки.
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки);
// Очистка поля табличного документа – Результат.
Результат.Очистить();
// Вывод результатов компоновки в табличный документ.
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(Результат);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
КонецПроцедуры
Данная процедура реализована в обработке Работа с СКД. В функциях УстановитьСхему(), УстановитьНастройки() программно описывается схема компоновки данных и задаются стандартные настройки. В результате в обработке Работа с СКД при нажатии кнопки Сформировать отчет полностью программным образом получается отчет о последних ценах комплектующих из регистра сведений Цены (см. рис. 3.319).
Система компоновки данных позволяет выводить результат компоновки данных в результирующий документ. Для этого у процессора вывода реализован метод Вывести(), в качестве параметра которому передается процессор компоновки данных. В приведенном выше примере результат выводится в элемент формы – поле табличного документа. В следующем примере результат компоновки выводится не в отчетную форму, а в новый табличный документ (листинг 3.62).
Листинг 3.62. Вывод отчета в табличный документ
ДокументРезультат = Новый ТабличныйДокумент;
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
Процессор компоновки данных выполняет автоматическую фиксацию заголовка таблицы, если в отчет выводится одна таблица или одна группировка (возможно, с вложенными группировками).