[РЕШЕНО] Контекст внешнего отчета (УНФ)

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Peroman, 20 фев 2018.

  1. TopicStarter Overlay
    Peroman
    Offline

    Peroman Профессионал в 1С

    Регистрация:
    26 май 2009
    Сообщения:
    1.025
    Симпатии:
    25
    Баллы:
    54
    Недавно в УНФ, необходимо было добавить некоторые поля в отчет и сделать его как дополнительный.

    Всё вроде бы сделал правильно, но при открытии отчета, он вел себя не так как типовой. Оба отчета открывается из документа и документ является контекстом. Начал разбираться и нашел одну интересную вещь. Типовой и мой отчеты, в модуль менеджера формы справочника Варианты отчетов ведут себя по разному. Внешний (мой):

    Код:
    СтандартнаяОбработка = Ложь;
    Если ПараметрыОткрытия.ТипОтчета = "Дополнительный" Тогда // Для платформы.
    ВыбраннаяФорма = "Справочник.ВариантыОтчетов.Форма.ФормаЭлемента";
    Параметры.Вставить("ПараметрыОткрытияФормыОтчета", ПараметрыОткрытия);
    Возврат;
    КонецЕсли;
    
    И вот тут-то он и теряет контекст. Исправляется так:

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


    P.S.
    Ничего серьезного, просто я на это много времени убил, может быть кому-то пригодится

    Вложения: