Почему внешняя обработка с управляемой формой не открывается в 1С:УПП 1.3?

Программист 1С v8.3 (Обычные формы) IT и автоматизация бизнеса
← На главную

При переходе к разработке на управляемых формах в конфигурациях предыдущих поколений, таких как «Управление производственным предприятием» (УПП 1.3) или «Комплексная автоматизация» 1.1, разработчики часто сталкиваются с неожиданным поведением платформы: внешняя обработка (*.epf) с управляемой формой просто не запускается либо открывает пустую форму. При этом обычные формы открываются без нареканий. Разберем по шагам, почему так происходит, какие скрытые ограничения накладывает платформа «1С:Предприятие» и как правильно решить эту задачу, не нарушая работоспособность всей базы данных.

В чем кроется причина проблемы

Проанализируем ситуацию и выясним внутреннюю механику работы платформы в режиме совместимости. В типовой конфигурации УПП 1.3 основным режимом запуска является «Обычное приложение» (толстый клиент). В конфигурации может быть включено свойство Использовать управляемые формы в обычном приложении, благодаря которому некоторые типовые документы и отчеты конфигурации действительно открываются на управляемых формах прямо в толстом клиенте.

Однако для внешних файлов действуют строгие ограничения платформы:

  1. Свойство конфигурации не действует на внешние файлы: настройка Использовать управляемые формы в обычном приложении распространяется строго на объекты, включенные в дерево метаданных конфигурации. Внешние обработки (*.epf) и отчеты (*.erf) не подпадают под действие этого флага.
  2. Механизм интерактивного открытия через системное меню: когда пользователь выполняет команду Файл — Открыть в сеансе обычного приложения, платформа пытается найти форму того типа, который соответствует текущему режиму запуска приложения. Она ожидает обычную форму. Управляемая форма внешнего файла игнорируется платформой (даже если в свойствах внешней обработки она назначена основной). В результате обработка либо тихо завершает открытие без вывода интерфейса, либо генерирует пустую форму по умолчанию.

Почему нельзя просто переключить базу в управляемый режим

Переключение режима запуска конфигурации или конкретного пользователя на «Управляемое приложение» (или запуск тонкого клиента) действительно позволит открыть внешнюю обработку. Однако для типовой базы УПП 1.3 это действие несет критические риски:

  1. Неработоспособность большинства типовых документов: подавляющее большинство справочников, документов и регистров в УПП 1.3 разработано исключительно на обычных формах. Тонкий клиент и управляемый режим их просто не поддерживают — пользователи не смогут с ними работать.
  2. Ошибки компиляции и исполнения: модули типовых документов УПП не адаптированы под клиент-серверное разделение (отсутствуют директивы &НаКлиенте, &НаСервере, переменные контекста используются неразделенно). При проведении или открытии документов в управляемом сеансе возникнут фатальные ошибки выполнения.

Поэтому менять режим запуска всей базы ради одной внешней обработки категорически не рекомендуется. Рассмотрим надежные и проверенные альтернативные варианты решения.

Вариант 1. Создание обычной формы для обработки (рекомендуемый способ)

Если обработка предназначена для повседневной работы пользователей внутри их основного рабочего сеанса УПП, наиболее стабильным решением является добавление обычной формы:

  1. Откроем внешнюю обработку в конфигураторе.
  2. В ветке Формы добавим обычную форму (толстый клиент).
  3. Назначим созданную форму Основной для толстого клиента/обычного режима, а управляемую оставим для управляемого режима.

В одной внешней обработке могут сосуществовать формы обоих типов: платформа сама определит, какую форму вывести, исходя из режима сеанса.

Вариант 2. Запуск отдельного целевого сеанса под тонким клиентом

Если алгоритм внешней обработки требует именно управляемого интерфейса (например, используются специфические элементы интерфейса, динамические списки или вызовы процедур, разработанных строго под управляемый режим), можно организовать запуск обработки в отдельном сеансе:

  1. Создадим отдельный ярлык запуска информационной базы для пользователя или администратора.
  2. В дополнительных параметрах запуска ярлыка пропишем специальный ключ платформы: /RunModeManagedApplication. Также можно напрямую использовать исполняемый файл тонкого клиента 1cv8c.exe вместо 1cv8.exe.
  3. При таком запуске сеанс откроется в режиме управляемого приложения, и внешняя управляемая обработка откроется корректно. При этом основной рабочий сеанс пользователя останется нетронутым в обычном приложении.

Вариант 3. Использование механизма расширений конфигурации

Если информационная база работает на платформе «1С:Предприятие 8.3» с режимом совместимости не ниже 8.3.6, мы можем обойти ограничение платформы на внешние файлы с помощью расширения:

  1. Создадим новое расширение конфигурации (*.cfe).
  2. Добавим нашу обработку с управляемой формой непосредственно в дерево метаданных этого расширения, а не открываем её как внешний файл через меню Файл — Открыть.
  3. Поскольку платформа воспринимает объекты из расширений как внутренние метаданные, на них начинает распространяться флаг Использовать управляемые формы в обычном приложении. В результате управляемая форма откроется прямо в обычном приложении толстого клиента, при этом сама конфигурация УПП останется на полной типовой поддержке без необходимости снятия замка.
← На главную