Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Програмно менять СКД при смене значения переключателя

Програмно менять СКД при смене значения переключателя
Я
   ac13
 
12.05.21 - 10:02
На форме отчета есть переключатель ВариантОтчета = 1 и 2

Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    
    ОтчетОбъект = РеквизитФормыВЗначение("Отчет");

    АдресСхемы1 = ПоместитьВоВременноеХранилище(ОтчетОбъект.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных"), Новый УникальныйИдентификатор());
    АдресСхемы2 = ПоместитьВоВременноеХранилище(ОтчетОбъект.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных1"), Новый УникальныйИдентификатор());

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

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

не работает, мне нужно менять схему компоновки данных при изменении значения переключателя
 
 Партнерская программа EFSOL Oblako
   ac13
 
1 - 12.05.21 - 10:04
схема компоновки данных не устанавливается, ее можно установить только при компоновке результата?
дело в том, что мне сначала нужно выбрать вариант, настроить его, а потом сформировать отчет
   Курцвейл
 
2 - 12.05.21 - 10:06
Правильнее отдельный отчет делать. Либо писать схему, которая имеет необходимые данные для обеих вариантов.
   Курцвейл
 
3 - 12.05.21 - 10:09
Если все таки есть сильная необходимость, можно покопаться в БСП, универсальный отчет. Посмотреть как там настраивается макет СКД.
   Pro-tone
 
4 - 12.05.21 - 10:10
Если ВариантОтчета = 1 Тогда
        СхемаКомпоновкиДанных = ОтчетОбъект.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
        Отчет.КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(АдресСхемы1));
    ИначеЕсли ВариантОтчета = 2 Тогда
        СхемаКомпоновкиДанных = ОтчетОбъект.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных1");
        ОтчетОбъект.СхемаКомпоновкиДанных = СхемаКомпоновкиДанных;
    КонецЕсли;

строки 3 и 6 явно различаются...

Список тем форума
 
Независимо от того, куда вы едете — это в гору и против ветра!
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.