Столкнулся с ситуацией когда надо в табличный документ вывести результат выполнения системы компоновки данных - на первый взгляд все просто, но давайте вместе разберемся шаг за шагом.
1. Необходимо получить нужный макет СКД
2. Проинициализировать компоновщик настроек.
Можно обойтись и без компоновщика, передавая параметры напрямую, но тогда в настройках необходимо их скрыть, и присваивать напрямую
3. Установить параметры компоновщика настроек
4. Получить макет компоновки
5. Инициировать процессор компоновки данных, процессор вывода и вывести в коллекцию значений или в табличный документ
1. Необходимо получить нужный макет СКД
СхемаКомпоновкиДанных = ПолучитьМакет(ИмяМакетаСКД);
2. Проинициализировать компоновщик настроек.
КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию); ИсточникНастроек = Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных); КомпоновщикНастроек.Инициализировать(ИсточникНастроек);
Можно обойтись и без компоновщика, передавая параметры напрямую, но тогда в настройках необходимо их скрыть, и присваивать напрямую
СхемаКомпоновкиДанных.Параметры.Период.Значение = Период
3. Установить параметры компоновщика настроек
Параметр = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Период")); Если Не Параметр = Неопределено Тогда Параметр.Использование = Истина; Параметр.Значение = ЗначениеПараметра; КонецЕсли;
4. Получить макет компоновки
ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных; КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; Настройки = КомпоновщикНастроек.Настройки; МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);
5. Инициировать процессор компоновки данных, процессор вывода и вывести в коллекцию значений или в табличный документ
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,, ДанныеРасшифровки); ЭлементыФормы.ДокументРезультат.Очистить(); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ЭлементыФормы.ДокументРезультат); ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);