Имя: Пароль:
1C
1С v8
Вызов кода из внешней обработки
0 LazyCamel
 
28.06.21
21:25
Ситуация: есть некий общий модуль, в нем есть фрагмент кода. И этот фрагмент может вызываться как из конфигурации, так и из внешнего отчёта. Причём, если код вызывается из конфигурации, то поведение должно быть одно, а если из ВО - другое. Как определить, что вызов пришёл из ВО. Попробовал написать так "Если ТипЗнч(ОбъектОтчета) = Тип("ВнешнийОтчетОбъект.<Имя>", не работает, идёт ругань, что тип "ВнешнийОтчет.<Имя>" не зарегистрирован. Как побороть?
1 acht
 
28.06.21
21:29
МояПроцедура(КучаПараметров, ВызовИзВнешнегоОтчета = Ложь) Экспорт

    Если ВызовИзВнешнегоОтчета Тогда
        // Вызов из внешнего отчета
    КонецЕсли;

КонецПроцедуры;
2 acht
 
28.06.21
21:30
Потому как откуда ты вытаскиваешь свой ОбъектОтчета ну совершенно неизвестно
3 acht
 
28.06.21
21:32
Если тебе надо отличить отчет, встроенный в конфигурацию от внешнего, то типа того:

Если Метаданные.НайтиПоТипу(ТипЗнч(ОбъектОтчета)) = Неопределено Тогда
    // Это внешний отчет
КонецЕсли;
4 LazyCamel
 
28.06.21
21:35
(1) Спасибо, попробую.
(3) Угу, именно надо отличить.
5 LazyCamel
 
29.06.21
09:35
(3)Сделал так, получилось. Спасибо, проблема исчерпана.