Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 04:07

Две схемы компоновки данных в одном отчете

Автор Петя Эндюков, 25 мар 2020, 11:27

0 Пользователей и 1 гость просматривают эту тему.

Петя Эндюков

Добрый день. Возникла ситуаций, сделать в одном отчете две схемы компоновки данных, так как заказчика не устраивает, что в одном отчете, есть 2 набора данных ( потому, что в пользовательском режиме, в настройках , при выборе полей, отражаются поля из 1 запроса и второго ). Внешний отчет делать для "них тоже не вариант", решил разбить на две схемы компоновки данных.

Итог, создал условие, что при выборке "номер скд 1" - грузит одну схему, а при выборе другой другую.
Вот код.

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

Если ЭтотОбъект.НомерСкд = 1 Тогда
СхемаКомпоновкиДанных = ЭтотОбъект.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновкиДанных.ВариантыНастроек[0].Настройки);

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

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


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



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

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

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

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





КонецЕсли;

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



Всё отлично, отчеты формируются, но в настройках, доступные поля пустые, а выбранные поля помечаются крестом. (скрин во вложении).
Буду рад любой помощи, заранее спасибо


LexaK

ЦитироватьИтог, создал условие, что при выборке "номер скд 1" - грузит одну схему, а при выборе другой другую.
ну ведь почти все правильно сделали!!!
попробуйте такой вариант
сделайте ДВА ОТДЕЛЬНЫХ ОТЧЕТА, каждый со своим СКД.
и в вашей форме
Цитироватьпри выборке "номер скд 1" или "номер скд 2"
просто запускайте тот или другой отчет, это всего пара строчек кода, что бы запустить нужный отчет!!! :befhbt:
если помогло нажмите: Спасибо!

wise

Представьте себе, какая была бы тишина, если бы люди говорили только то, что знают

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск