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

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

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

Выясним причину: почему управляемая форма внешней обработки не открывается?

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

Даже если в свойствах корня конфигурации установлен флаг Использовать управляемые формы в обычном приложении, это свойство распространяется исключительно на встроенные объекты метаданных (те, которые добавлены непосредственно в дерево конфигурации). На внешние обработки данное свойство не влияет. При попытке интерактивного открытия внешнего файла в обычном приложении платформа всегда ищет у внешней обработки обычную форму. Если такой формы нет, либо она не назначена основной, запуск не произойдет. Это документированное ограничение платформы 1С.

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

Решение 1. Использование «обычной» формы-переходника (моста)

Это самый популярный и изящный способ обхода ограничения, не требующий изменения конфигурации базы данных. Суть метода заключается в том, что мы создаем обычную форму, которая будет служить «мостом» для программного вызова нашей управляемой формы.

Рассмотрим пошаговый алгоритм настройки:

  1. Откройте вашу внешнюю обработку в конфигураторе.
  2. Создайте в ней две формы: одну обычную (например, с именем ФормаОбычная) и одну управляемую (например, с именем ФормаУправляемая).
  3. Установите обычную форму ФормаОбычная в качестве основной формы обработки. Это необходимо, чтобы платформа при открытии файла запускала именно её.
  4. Откройте модуль созданной обычной формы и пропишите в событии ПриОткрытии() код для вызова управляемой формы и закрытия текущей заглушки.

Применим следующий код в модуле обычной формы:


Процедура ПриОткрытии()
    
    // Получаем управляемую форму этой же внешней обработки
    УправФорма = ПолучитьФорму("ВнешняяОбработка.ИмяВашейОбработки.Форма.ФормаУправляемая");
    
    // Открываем управляемую форму на экране
    УправФорма.Открыть();
    
    // Закрываем обычную форму-заглушку, чтобы она не мешала пользователю
    ЭтаФорма.Закрыть();
    
КонецПроцедуры

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

Решение 2. Встраивание обработки в конфигурацию

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

Рассмотрим подробнее этот процесс:

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

После встраивания обработки в конфигурацию её управляемая форма будет открываться в обычном приложении стандартным образом без создания дополнительных форм-переходников.

Решение 3. Регистрация обработки через справочник БСП

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

  1. Зайдите в режим «1С:Предприятие».
  2. Перейдите в справочник «Дополнительные отчеты и обработки» (в разных интерфейсах путь может отличаться).
  3. Добавьте новый элемент и загрузите файл вашей внешней обработки.
  4. При запуске обработки из этого справочника механизмы БСП выполняют загрузку файла во временное хранилище на сервере и инициализируют форму через специальные процедуры, что позволяет успешно открывать управляемые формы.

Решение 4. Запуск 1С в режиме тонкого или управляемого клиента

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

  1. В конфигураторе перейдите в меню Сервис — Параметры.
  2. Выберите вкладку Запуск 1С:Предприятия.
  3. В разделе «Приложение» переключите переключатель на Тонкий клиент или Толстый клиент (управляемое приложение).
  4. Запустите режим Предприятия. Теперь ваша база запустится в интерфейсе управляемого приложения, и внешняя управляемая форма откроется без каких-либо ошибок напрямую.

Также для быстрого запуска в режиме управляемого приложения вы можете создать ярлык для запуска базы и прописать в его свойствах дополнительный параметр запуска: /RunModeManagedApplication.

Чек-лист для проверки настроек конфигурации

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

Используя предложенные методики, вы сможете эффективно разрабатывать современные управляемые формы и успешно интегрировать их в повседневную работу с базами на обычных формах, такими как УПП 1.3.

← На главную