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