![]() |
|
Программно применить пользовательские настройки к макету СКД | ☑ | ||
---|---|---|---|---|
0
inkvizitr
28.02.24
✎
10:20
|
Добрый день, создал отчет в дереве метаданных.
В данном отчете имеется несколько макетов СКД, первый макет называется "ОсновнаяСхемаКомпоновкиДанных", второй называется "МакетВторойУровень" т.е. второй макет это расшифровка первого, для каждого макета была создана своя форма, плюс в макете-формы расшифровкой есть возможность открыть команду настройки для того, чтобы к примеру сгруппировать данные и так далее. Вопрос следующий, когда открываю настройки макета расшифровки "МакетВторойУровень" то вижу поля первого отчета "ОсновнаяСхемаКомпоновкиДанных", как и где сделать так, чтобы при открытии второго макета применялись настройки второго макета, а не первого? листинг: Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; Если ВариантОтчета = 1 Тогда ТЗИтог = ДанныеПервогоУровняОтчета(); СхемаКомпоновкиДанных = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных"); //КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию); Настройки = КомпоновщикНастроек.ПолучитьНастройки(); ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных; КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки); ВнешнийНаборДанных = Новый Структура("ВнешняяТаблицаИсточника", ТЗИтог); //Внешний набор данных записываем в структуру, где ключ = имени внешнего набора данных в СКД ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешнийНаборДанных, ДанныеРасшифровки); //Устанавливаем в СКД внешний набор данных ДокументРезультат.Очистить(); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ДокументРезультат); ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); ИначеЕсли ВариантОтчета = 2 Тогда Выгрузка = ДанныеВторогоУровняОтчета(); ДокументРезультат.АвтоМасштаб = Истина; СхемаКомпоновкиДанных = ПолучитьМакет("МакетВторойУровень"); ВариантНастроек = СхемаКомпоновкиДанных.ВариантыНастроек.Основной; КомпоновщикНастроек.ЗагрузитьНастройки(ВариантНастроек.Настройки); Настройки = КомпоновщикНастроек.Настройки; ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных; КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки); ВнешнийНаборДанных = Новый Структура("ВнешняяТаблицаРасшифровкаДва", Выгрузка); //Внешний набор данных записываем в структуру, где ключ = имени внешнего набора данных в СКД ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешнийНаборДанных, ДанныеРасшифровки); //Устанавливаем в СКД внешний набор данных ДокументРезультат.Очистить(); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ДокументРезультат.АвтоМасштаб = Истина; ДокументРезультат.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт; ПроцессорВывода.УстановитьДокумент(ДокументРезультат); ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); КонецЕсли; КонецПроцедуры |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |