При работе в конфигурации 1С:Управление производственным предприятием ред. 1.3 (УПП) разработчики часто сталкиваются со следующей проблемой: создается внешняя обработка, у нее создается управляемая форма, выставляется флаг основной формы, но в режиме Предприятия эта форма упорно отказывается открываться. При попытке открыть файл через меню «Файл — Открыть» ничего не происходит либо открывается пустая область. В этой статье мы подробно разберем, почему возникает данная проблема и какими способами можно обойти это системное ограничение платформы.
Для того чтобы понять корень проблемы, проанализируем архитектуру запуска решений на платформе 1С. Конфигурация УПП 1.3 — это классическое решение, работающее по умолчанию в режиме обычного приложения (толстый клиент). Платформа 1С:Предприятие накладывает жесткое ограничение на работу с внешними файлами обработок (.epf) и отчетов (.erf) в этом режиме.
Даже если в свойствах корня конфигурации установлен флаг Использовать управляемые формы в обычном приложении, это свойство распространяется исключительно на встроенные объекты метаданных (те, которые добавлены непосредственно в дерево конфигурации). На внешние обработки данное свойство не влияет. При попытке интерактивного открытия внешнего файла в обычном приложении платформа всегда ищет у внешней обработки обычную форму. Если такой формы нет, либо она не назначена основной, запуск не произойдет. Это документированное ограничение платформы 1С.
Тем не менее существует несколько эффективных способов решения этой задачи. Разберем их по шагам.
Это самый популярный и изящный способ обхода ограничения, не требующий изменения конфигурации базы данных. Суть метода заключается в том, что мы создаем обычную форму, которая будет служить «мостом» для программного вызова нашей управляемой формы.
Рассмотрим пошаговый алгоритм настройки:
ФормаОбычная) и одну управляемую (например, с именем ФормаУправляемая).ФормаОбычная в качестве основной формы обработки. Это необходимо, чтобы платформа при открытии файла запускала именно её.ПриОткрытии() код для вызова управляемой формы и закрытия текущей заглушки.Применим следующий код в модуле обычной формы:
Процедура ПриОткрытии()
// Получаем управляемую форму этой же внешней обработки
УправФорма = ПолучитьФорму("ВнешняяОбработка.ИмяВашейОбработки.Форма.ФормаУправляемая");
// Открываем управляемую форму на экране
УправФорма.Открыть();
// Закрываем обычную форму-заглушку, чтобы она не мешала пользователю
ЭтаФорма.Закрыть();
КонецПроцедуры
Важное примечание: Строку ИмяВашейОбработки необходимо заменить на то имя, которое указано у вашей внешней обработки в свойствах в поле «Имя» (не путать с именем файла на диске). Платформа разрешает программное открытие управляемой формы из контекста запущенного обычного приложения, если этот вызов инициирован внутри обычной формы.
Если конфигурация вашей базы данных открыта для редактирования (находится на поддержке с возможностью изменения), вы можете полностью избавиться от ограничений внешнего файла, сделав обработку встроенной.
Рассмотрим подробнее этот процесс:
Обработки, нажмите правой кнопкой мыши и выберите пункт «Вставить внешнюю обработку, отчет...».Использовать управляемые формы в обычном приложении.После встраивания обработки в конфигурацию её управляемая форма будет открываться в обычном приложении стандартным образом без создания дополнительных форм-переходников.
Если в вашей конфигурации УПП 1.3 внедрена Библиотека Стандартных Подсистем (БСП) либо настроен встроенный механизм дополнительных отчетов и обработок, можно использовать его:
Если вам нужно запустить управляемую форму внешней обработки в исходном виде (например, для административных целей или разовой выгрузки данных), мы можем просто изменить режим запуска самого сеанса 1С:
Сервис — Параметры.Запуск 1С:Предприятия.Тонкий клиент или Толстый клиент (управляемое приложение).Также для быстрого запуска в режиме управляемого приложения вы можете создать ярлык для запуска базы и прописать в его свойствах дополнительный параметр запуска: /RunModeManagedApplication.
Чтобы в вашей базе УПП 1.3 в принципе могли отображаться и функционировать управляемые формы (как встроенные, так и внешние через переходники), проверьте следующие глобальные настройки в конфигураторе:
Использовать управляемые формы в обычном приложении активен.Сервис — Параметры — вкладка Общие. В разделе «Редактирование конфигурации для режимов запуска» должен быть установлен вариант Управляемое приложение и обычное приложение. Только при такой настройке платформа корректно компилирует оба типа форм.Используя предложенные методики, вы сможете эффективно разрабатывать современные управляемые формы и успешно интегрировать их в повседневную работу с базами на обычных формах, такими как УПП 1.3.