Вход | Регистрация
 

УТ11: Не сохраняются настройки варианта отчета, если подменяю схему СКД

УТ11: Не сохраняются настройки варианта отчета, если подменяю схему СКД
Я
   Хосе
 
12.08.21 - 09:27
Подменяю схему компоновки отчета ВыручкаИСебестоимостьПродаж таким образом:

&Перед("ПередЗагрузкойНастроекВКомпоновщик")
Процедура дор_ПередЗагрузкойНастроекВКомпоновщик(Контекст, КлючСхемы, КлючВарианта, НовыеНастройкиКД, НовыеПользовательскиеНастройкиКД)
    //Меняем на доработанную схему компоновки
    СхемаКомпоновкиДанных = ПолучитьМакет("дор_ОсновнаяСхемаКомпоновкиДанных");
КонецПроцедуры

В схеме настроено доп. поле Остаток.

Все окей, добавляется в настройки, но не сохраняется в варианте отчета.

Причем если сохранить, потом переключаться на другие варианты, возвращаться к этому, все ок.

А если отчет закрыть, потом открыть, то поля нет, которое добавил в вариант.

Куда порыться?

Можно, конечно, макет заменить целиком через расширение (это крайний вариант).

Но может есть идеи, где она теряет настройки, когда она подгружает исходную схему компоновки, где этого поля нет?
   Хосе
 
1 - 15.08.21 - 21:17
В общем разобрался, проблема в пользовательских настройках.
Надо подменять схему СКД еще и при создании общей формы ФормаОтчета перед вызовом ПриСоздании:
&НаСервере
&Перед("ПриСозданииНаСервере")
Процедура дор_ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    //Перед вызываем

    ОтчетОбъект = РеквизитФормыВЗначение("Отчет");
    Попытка
        ОтчетОбъект.дор_ПриСозданииОтчета();
    Исключение
    КонецПопытки;
    ЗначениеВДанныеФормы(ОтчетОбъект, Отчет);
КонецПроцедуры



Процедура дор_ПодменитьСхему() Экспорт
    СхемаКомпоновкиДанных = ПолучитьМакет("дор_ОсновнаяСхемаКомпоновкиДанных");
    КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));//важно

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

Процедура дор_ПриСозданииОтчета() Экспорт
    дор_ПодменитьСхему();
КонецПроцедуры

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