Имя: Пароль:
1C
 
Программно выбрать одну из двух СКД в отчете
0 Mary01
 
11.11.22
14:40
Здравствуйте!

В отчете есть 2 схемы компоновки (это 2 разных макета), при этом ни одна из схем не установлена основной.
Пишу в модуле объекта:
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)

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

Результат на форме - пустой. Но если я эту схему компоновки выбираю в качестве основной, то всё работает. Аналогично со второй схемой. Как поправить?
1 Kigo_Kigo
 
11.11.22
15:21
так макета 2 или СКД?
Может сделать 2 набора данных для разных макетов?
ТекстЗапроса = СхемаКомпоновкиДанных.НаборыДанных.НаборДанных1.Запрос;
2 Mary01
 
11.11.22
15:34
(1) 2 макета, каждый из которых является СКД. Имеется в виду, что в отчете есть ветка Макеты - когда создаем там макет, выбираем вид макета - "Схема компоновки данных".
3 Mary01
 
11.11.22
15:39
(1) то есть в одной схеме 2 макета сделать?
4 segn
 
11.11.22
15:44
Используйте вложенные схемы, и для каждой схемы создайте свою настройку.
5 Kigo_Kigo
 
11.11.22
16:20
(4) Да не обязательно, НаборДанных1 и НаборДанных2
и при ПриКомпоновкеРезультата выполняешь либо
СхемаКомпоновкиДанных.НаборыДанных.НаборДанных1
либо СхемаКомпоновкиДанных.НаборыДанных.НаборДанных2
6 Mary01
 
11.11.22
17:51
(4) Спасибо, получилось!
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой