Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

1C 8.2 Как программно задать макет СКД для отчета

1C 8.2 Как программно задать макет СКД  для отчета
Я
   kozhem1990
 
26.10.18 - 09:15
Здравствуйте! Такой вопрос: как передать программно в отчет один из нескольких макетов СКД? В зависимости от того, какой пользователь запускает отчет, необходимо выбирать определенную схему компоновки данных. Заранее благодарю.
 
 
   Lexey_
 
1 - 26.10.18 - 09:22
   Пробел
 
2 - 26.10.18 - 09:22
Придется полностью программно формировать отчет в обработчике события ПриКомпоновкеДанных

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

    Настройки, , ,
    Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
    
    ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных);
    
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
    
    Результат = Новый ТаблицаЗначений;
    
    ПроцессорВывода.УстановитьОбъект(Результат);
    ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
   kozhem1990
 
3 - 26.10.18 - 09:51
(1), (2) спасибо)

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует