четверг, 31 декабря 2015 г.

СКД вместо построителя для получения данных

//Схема СКД храниться в макете


Процедура КоманднаяПанель1Сформировать(Кнопка) 
 Результат = РезультатКомпоновкиВТЗ(ПолучитьМакет("Макет"));
 Результат.ВыбратьСтроку();
КонецПроцедуры

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

Процедура ПриОткрытии()
 СхемаСкд = ПолучитьМакет("Макет");
 КомпоновщикНКД.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаСкд));
 КомпоновщикНКД.ЗагрузитьНастройки(СхемаСкд.НастройкиПоУмолчанию);
КонецПроцедуры