Преобразование отчета на СКД в таблицу значений на табличном документе

RomanVG 122 1 6 1

Иногда с отчетами удобнее (или быстрее) работать в MS Excel, например, когда необходимо связать несколько разных отчетов. Если отчеты выводятся с группировкой, то связать их бывает проблематично. Если у отчета нет своей формы, то можно применить такое универсальное решение.

В общую форму ФормаОтчета, в контекстное меню добавим команду "Исходные данные", которая будет выгружать набор данных СКД с текущими значениями параметров и отборов сначала в таблицу значений, а потом в табличный документ, размещенный на общей форме.

&НаСервере
Процедура ВыгрузитьПлоскуюТаблицуНаСервере()

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

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

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

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

&НаКлиенте
Процедура ВыгрузитьПлоскуюТаблицу(Команда)
	ВыгрузитьПлоскуюТаблицуНаСервере();
КонецПроцедуры

Если часть параметров или отборов заполняется в процедуре ПриКомпоновкеРезультата, то могут возникнуть ошибки.

0

Еще в "Лайфхаки 1С"

В Конфигураторе, между редактором формы и текстом модуля, можно быстро переключаться без помощи мыши

Как войти в справочник или документ которого нет в меню

В EDT можно выбрать схему горячих клавиш как в Конфигураторе

Исправляем неработающие горячие клавиши в Конфигураторе 1С

Список телеграм-каналов по 1С

Защита кода 1С. Основные методы защиты конфигураций и обработок

Модератору