Разработка и Конфигурация · 11 мин
Как открыть форму обработки в 1С: практические способы
Как открыть форму обработки в 1С: через меню, программно методами ОткрытьФорму и ПолучитьФорму, открытие внешних обработок, передача параметров, типичные ошибки.
Форма обработки в 1С открывается несколькими способами: через интерфейс пользователя, программно из модуля, а также из файла внешней обработки. Выбор способа зависит от того, кто выполняет действие — пользователь, администратор или разработчик, и где находится обработка: внутри конфигурации или в отдельном файле с расширением .epf.
В управляемом приложении основным методом программного открытия служит ОткрытьФорму(), а устаревший ПолучитьФорму() применяется в обычном приложении и в старом коде. Путаница между этими двумя механизмами — самая частая причина ошибок у начинающих разработчиков.
Ниже разобраны все рабочие сценарии: открытие из меню «Файл», программный вызов с параметрами, работа с внешними обработками, а также проверка результата и типичные ошибки с пояснениями.
Как открыть обработку через интерфейс пользователя
Самый простой случай — обработка уже встроена в конфигурацию и выведена в интерфейс. Тогда она находится в подсистеме, которую определил разработчик: чаще всего это разделы «Администрирование», «Сервис» или специализированные разделы прикладного решения. Достаточно перейти в нужный раздел и щёлкнуть по команде.
Если обработка есть в конфигурации, но не выведена в интерфейс, воспользуйтесь командой «Все функции». В типовых конфигурациях она открывается через круглую кнопку меню в левом верхнем углу или сочетанием клавиш (зависит от настроек). В списке «Все функции» раскройте ветку «Обработки», найдите нужную и дважды щёлкните по ней — форма откроется.
Обратите внимание: пункт «Все функции» может быть скрыт настройками пользователя или правами. Если его нет, проверьте роль пользователя — для работы со многими сервисными обработками требуются права администратора или включённый режим технического специалиста.
Как открыть внешнюю обработку из файла
Внешняя обработка — это файл с расширением .epf, который не входит в состав конфигурации. Такие файлы распространяются отдельно: разработчиками, на порталах поддержки, внутри компании. Чтобы открыть её, не меняя конфигурацию, используется стандартное меню.
Порядок действий: откройте меню «Файл» → «Открыть» (или нажмите Ctrl+O), в диалоге выберите файл .epf и подтвердите открытие. Платформа загрузит обработку и покажет её основную форму. Если у обработки несколько форм, откроется та, что назначена основной в её настройках.
При первом открытии файла платформа может показать предупреждение о безопасности — это нормально для файлов, полученных извне. Открывайте внешние обработки только из доверенных источников: код внутри .epf выполняется с правами текущего пользователя и может читать или изменять данные информационной базы.
Как открыть форму обработки программно в управляемом приложении
В управляемом приложении используется глобальный метод ОткрытьФорму(). Минимальный вызов выглядит так:
ОткрытьФорму("Обработка.МояОбработка.Форма");
Строка имени формы строится по шаблону: Обработка.<ИмяОбработки>.Форма.<ИмяФормы>. Если имя формы не указано, откроется основная форма обработки. Имя обработки — это имя объекта метаданных в конфигураторе, а не заголовок, который видит пользователь.
Метод поддерживает передачу параметров, владельца формы и режима открытия. Например, открытие с параметром и блокировкой окна владельца:
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("Организация", ТекущаяОрганизация);
ОткрытьФорму("Обработка.МояОбработка.Форма",
ПараметрыФормы,
ЭтаФорма,
Новый УникальныйИдентификатор,
,
,
,
РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
Переданные параметры доступны в модуле открываемой формы через свойство Параметры в обработчике ПриСозданииНаСервере. Это стандартный способ передать в обработку отборы, ссылки на документы или режимы работы.
ОткрытьФорму("Обработка.МояОбработка.Форма", ПараметрыФормы, ЭтаФорма);Как открыть форму внешней обработки программно
Открытие внешней обработки из кода сложнее: сначала файл нужно подключить к сеансу. В управляемом приложении для этого используется менеджер внешних обработок:
ИмяОбработки = ВнешниеОбработки.Подключить("C:\Обработки\МояОбработка.epf");
ОткрытьФорму("ВнешняяОбработка." + ИмяОбработки + ".Форма");
Метод Подключить() возвращает временное имя, под которым обработка зарегистрирована в сеансе. Именно это имя подставляется в строку открытия формы. При работе в файловой базе указывается путь к файлу; в клиент-серверном варианте обычно применяют хранение двоичных данных обработки в базе и подключение через временное хранилище.
Учитывайте ограничение: в безопасном режиме и при определённых настройках профиля безопасности подключение внешних обработок может быть запрещено. В этом случае вызов Подключить() завершится ошибкой, которую стоит обрабатывать через попытку-исключение.
- 1Подключите файл через ВнешниеОбработки.Подключить() и сохраните возвращённое имя
- 2Сформируйте строку вида ВнешняяОбработка.<Имя>.Форма
- 3Вызовите ОткрытьФорму() с этой строкой
- 4Проверьте, что форма открылась и параметры переданы корректно
Открытие формы в обычном приложении и модальном режиме
В обычном приложении (толстый клиент старого режима) применяется связка ПолучитьФорму() и методов формы:
Форма = Обработки.МояОбработка.ПолучитьФорму();
Форма.Открыть();
Для модального открытия, когда выполнение кода приостанавливается до закрытия формы, используется ОткрытьМодально(). Однако в современных конфигурациях модальный режим по умолчанию запрещён настройками совместимости, и такой вызов вызовет ошибку. Вместо него в управляемом приложении применяют ОткрытьФорму() с описанием оповещения о закрытии:
Оповещение = Новый ОписаниеОповещения("ПослеЗакрытияОбработки", ЭтотОбъект);
ОткрытьФорму("Обработка.МояОбработка.Форма", , ЭтаФорма, , , , Оповещение,
РежимОткрытияОкнаФормы.БлокироватьВесьИнтерфейс);
Процедура ПослеЗакрытияОбработки получит результат закрытия формы. Это асинхронный аналог модального открытия — единственный корректный подход в управляемом интерфейсе.
Сравнение вариантов
Стандарт для управляемого приложения. Поддерживает параметры, оповещения, режимы открытия. Работает в тонком и веб-клиенте.
Только обычное приложение и толстый клиент. Позволяет обратиться к форме до открытия, но не работает в современных клиентах.
Для ручного запуска внешних .epf без изменения кода. Не подходит для автоматизации.
Как проверить, что форма открылась правильно
После вызова ОткрытьФорму() убедитесь, что форма действительно отобразилась: метод возвращает ссылку на открытую форму, и если она равна Неопределено, открытие не состоялось. Проверка особенно важна при программных вызовах из фоновых процедур, где ошибки не видны пользователю напрямую.
Если форма открылась, но ведёт себя неправильно — пустые поля, неверные отборы — проверьте передачу параметров. В модуле формы обработки поставьте точку останова в ПриСозданииНаСервере и посмотрите содержимое объекта Параметры. Несовпадение ключей структуры с ожидаемыми именами — частая причина «молчаливых» сбоев.
Как проверить результат
Ссылка на объект формы
Неопределено — форма не открылась
Все ключи структуры доступны через Параметры.Свойство()
Ключи отсутствуют — ошибка в именах при передаче
Подключить() вернул имя, форма открылась
Ошибка безопасности или файл не найден
Типичные ошибки и ограничения
Ошибка «Объект метаданных не найден» при вызове ОткрытьФорму() почти всегда означает опечатку в строке имени: проверьте точное имя обработки в конфигураторе и не перепутайте Обработка с Обработки — в строке имени формы используется единственное число.
Вторая распространённая ситуация — попытка открыть форму на сервере. Метод ОткрытьФорму() доступен только на клиенте: вызов из серверной процедуры или фонового задания приведёт к ошибке. Интерактивные действия всегда выполняются в клиентском контексте.
Третья группа проблем связана с правами и безопасностью: у пользователя нет права «Просмотр» на обработку, запрещено открытие внешних файлов, либо обработка заблокирована антивирусом при загрузке из сети. Диагностируйте такие случаи по тексту ошибки в журнале регистрации.
Что важно запомнить
В управляемом приложении форму обработки открывают через ОткрытьФорму() на клиенте, внешние .epf — через Файл → Открыть или подключение кодом. Параметры передаются структурой, результат открытия проверяется по возвращаемому значению, модальный режим заменяется описанием оповещения.
Частые вопросы
Чем ОткрытьФорму() отличается от ПолучитьФорму()?
ОткрытьФорму() — метод управляемого приложения: он сразу открывает форму и возвращает ссылку на неё. ПолучитьФорму() сначала создаёт объект формы, который потом открывается отдельным методом, и работает только в обычном приложении. В тонком и веб-клиенте ПолучитьФорму() недоступен.
Как открыть форму обработки и дождаться её закрытия?
Передайте в ОткрытьФорму() описание оповещения — объект, указывающий на процедуру, которая выполнится после закрытия формы. Результат, возвращённый формой при закрытии, будет доступен в параметрах этой процедуры. Прямое модальное ожидание в управляемом приложении не применяется.
Почему внешняя обработка не открывается через Файл → Открыть?
Проверьте три причины: файл повреждён или имеет неверный формат; у пользователя нет права на открытие внешних обработок и отчётов; настройки безопасности или антивирус блокируют запуск. Текст конкретной ошибки платформа выводит в сообщении, а подробности фиксируются в журнале регистрации.
Как передать в открываемую обработку ссылку на документ?
Сформируйте структуру с нужным ключом, например Новый Структура("Документ", СсылкаНаДокумент), и передайте её вторым параметром в ОткрытьФорму(). В модуле формы обработки прочитайте значение через Параметры.Документ в обработчике ПриСозданииНаСервере.
Можно ли открыть форму обработки из фонового задания?
Нет. Интерактивные методы, включая ОткрытьФорму(), недоступны на сервере и в фоновых заданиях. Фоновое задание может подготовить данные, после чего клиентская процедура по оповещению или по расписанию ожидания откроет форму и передаст ей результат.
Что делать, если обработки нет в списке «Все функции»?
Убедитесь, что обработка существует в конфигурации и у вашего пользователя есть на неё права. Если обработка внешняя, она не появится в списке — её открывают через Файл → Открыть или добавляют в справочник дополнительных отчётов и обработок, после чего она становится доступна в разделах интерфейса.