Версия для печати темы (https://pro1c.org.ua/index.php?showtopic=16050)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Система компоновки данных _ Программное выполнение СКД и "ПользовательскиеНастройки"

Автор: Vofka 25.12.13, 16:04

Дано:

Стандартный отчёт основанный на СКД с стандартной формой сформированной конструктором.



Нужно при нажатии на Сформировать сформировать обычный отчет в соответствии с настройками пользователя и получить данные этого отчета в виде коллекции значений.

ВАЖНО! Форму менять нельзя.

Решение:

Используем процедуру ПриКомпоновкеРезультата

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
    
    СтандартнаяОбработка = Истина;

    СхемаКД = ЭтотОбъект.СхемаКомпоновкиДанных; //Можно без ЭтотОбъект т.к. процедура в модуле объекта.

    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;

    Настройки = КомпоновщикНастроек.ПолучитьНастройки();

    МакетКомпоновки = КомпоновщикМакета.Выполнить(ЭтотОбъект.СхемаКомпоновкиДанных,
                                                          ЭтотОбъект.КомпоновщикНастроек.Настройки, ДанныеРасшифровки,,
                                                          Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений") );

    ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки);

    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
    ТЗ = ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);

    ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); // т.к. стандартный обработчик включен и мы не меняли схему КД
                                                 // то отчет сформируется стандартным алгоритмом а в ТЗ будет коллекция
                                                 // в соответствии с настройками пользователя.

КонецПроцедуры

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua