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