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