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

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