Представим такую ситуацию: Вы работаете с конфигурацией "Управление производственным предприятием" версии 1.3. Основной режим запуска для конфигурации - "Обычное приложение", однако в свойствах конфигурации установлена поддержка управляемых форм в обычном приложении.
Эта настройка означает, что в режиме обычного приложения мы можем открывать управляемые формы объектов конфигурации (формы документов, справочников, обработок и т.д.).
В принципе, настройка полезная, особенное если конфигурация постепенно переводится на управляемые формы. Но есть одно большое "НО". Если мы попытаемся открыть внешнюю обработку или отчет с управляемой формой, то он попросту не запустится.
Создадим обработку с управляемой формой, на которую поместим декорацию (надпись).
Далее добавим ее в справочник "Внешние обработки", пройдя в меню "Сервис -> Дополнительные внешние отчеты и обработки -> Внешние обработки".
С добавлением проблем не возникнем. Далее попытаемся открыть добавленную обработку двойным щелчком. Никакой рекации не проследует.
Для того, чтобы разобраться в действия платформы, попытаемся открыть внешнюю обработку программным образом. Для этого я добавил в меню "Сервис" команду "Открыть внешнюю обработку". Код обработчика команды следующий:
Процедура ПолныйДействие() Экспорт ВнешнияяОбработка = Справочники.ВнешниеОбработки.НайтиПоНаименованию("Тест"); ИмяФайла = ПолучитьИмяВременногоФайла(); ДвоичныеДанные = ВнешнияяОбработка.ХранилищеВнешнейОбработки.Получить(); ДвоичныеДанные.Записать(ИмяФайла); Форма = ВнешниеОбработки.ПолучитьФорму(ИмяФайла); Форма.Открыть(); КонецПроцедуры
Если смотреть в отладке, то после выполнения строки
Форма = ВнешниеОбработки.ПолучитьФорму(ИмяФайла);
в переменной "Форма" будет значение "Неопределено", несмотря на то, что объект обработки был успешно получен.
То есть платформа попросту не может получить форму обработки и возвращает результат "Неопределено".
Однако, если добавить обработку в состав объектов конфигурации, то все нормально запустится. В этом и заключается ограничение платформы, которое было обозначено в начале статьи.
Теперь Вы знаете еще одну особенность работы платформы 1С:Предприятие 8.2 и сможете учитывать ее при разработке. Самое интересное: если в управляемом приложении попытаться открыть внешнюю обработку в обычной формой, то будет открыта пустая управляемая форма.
Почему разработчики платформы не добавили возможность открывать внешние обработки / отчеты с типом формы, отличным от типа, в котором запущен клиентский сеанс? Точного ответа на этот вопрос нет. Можно лишь предположить, что в дальнейшем планируется перевод всех конфигураций на управляемые формы и создание подобной поддержки не целесообразно.