При работе в гибридном режиме или при постепенном переходе конфигурации на управляемый интерфейс часто возникает задача использовать новые отчеты с управляемыми формами непосредственно в сеансе обычного приложения. Разберем особенности работы платформы 1С:Предприятие в таких сценариях, выясним причину возможных ошибок и рассмотрим способы решения.
Проанализируем ключевое архитектурное правило платформы 1С: возможность запуска управляемой формы в обычном приложении напрямую зависит от того, является ли отчет встроенным объектом метаданных или внешним файлом:
.erf / .epf): открыть управляемую форму внешнего отчета в режиме обычного приложения невозможно. Это жесткое платформенное ограничение: при открытии внешнего файла обычное приложение пытается отобразить исключительно обычные формы. Если в файле присутствует только управляемая форма, платформа не сможет ее инициализировать.Рассмотрим по шагам, какие требования должны быть выполнены в конфигураторе, чтобы управляемая форма встроенного отчета успешно открывалась в обычном приложении:
Сервис → Параметры → вкладка Общие. Для параметра Редактирование конфигурации для режимов запуска выберем значение Управляемое приложение и обычное приложение. Это позволит управлять свойствами совместимости интерфейсов.Использовать управляемые формы в обычном приложении. Без этого флага управляемые формы внутри обычного приложения открываться не будут.Толстый клиент (обычное приложение), а режим совместимости конфигурации должен быть не ниже версии 8.2.ОткрытьФорму() или ПолучитьФорму().Если перед нами стоит задача запустить отчет с управляемой формой для пользователей обычного приложения, рассмотрим доступные варианты реализации:
.erf, добавим его в дерево метаданных конфигурации. При установленном флаге Использовать управляемые формы в обычном приложении отчет будет открываться без ошибок.Толстый клиент (управляемое приложение) или Тонкий клиент, если функционал используемой конфигурации это поддерживает. В управляемом режиме внешние отчеты с управляемыми формами открываются штатно.