Дано:

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



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

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

Решение:

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

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

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

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

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

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

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

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

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

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