К статье
Практический материал

Разработка и Конфигурация · 9 мин

Как запустить форму в 1С: пошаговая инструкция для пользователя и разработчика

Как запустить форму в 1С: открытие форм объекта, списка и обработки в режиме предприятия, программный вызов ОткрытьФорму, передача параметров и частые ошибки.

Форма в 1С — это экранный интерфейс, через который пользователь работает с данными: списком документов, карточкой элемента справочника, обработкой или отчётом. Запустить форму можно несколькими способами: через интерфейс прикладного решения, из конфигуратора, программным вызовом во встроенном языке или по навигационной ссылке. Выбор способа зависит от того, кто вы — пользователь, администратор или разработчик — и какая именно форма нужна.

Для пользователя самый простой путь — стандартная навигация по разделам меню. Для разработчика основной инструмент — метод ОткрытьФорму(), который позволяет открыть любую форму с передачей параметров, отбором и контролем результата. Ниже разобраны оба сценария с конкретными действиями, примерами кода и проверкой результата.

Как пользователю открыть форму через интерфейс

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

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

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

Как запустить форму внешней обработки или отчёта

Внешние обработки (файлы с расширением .epf) и отчёты (.erf) открываются через главное меню: «Файл → Открыть», затем укажите файл на диске. Форма обработки запустится в текущем сеансе. Этот способ подходит для разовых сервисных операций: загрузки данных, групповой обработки, тестирования.

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

Программное открытие формы методом ОткрытьФорму

Основной способ запуска формы из кода — глобальный метод ОткрытьФорму(). В простейшем варианте ему достаточно передать полное имя формы:

ОткрытьФорму("Справочник.Номенклатура.ФормаСписка");

ОткрытьФорму("Документ.РеализацияТоваровУслуг.ФормаОбъекта");

Имя формы строится по шаблону: тип объекта, имя объекта, вид формы. Если у объекта несколько форм одного вида, указывается конкретное имя: Справочник.Контрагенты.Форма.ФормаЭлементаРасширенная. Для внешних обработок используется префикс ВнешняяОбработка.ИмяОбработки.Форма.

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

1c
ПараметрыФормы = Новый Структура("Ключ", СсылкаНаДокумент);
ОткрытьФорму("Документ.РеализацияТоваровУслуг.ФормаОбъекта", ПараметрыФормы);

Передача параметров и получение результата

Чтобы открыть форму конкретного объекта, передайте в параметрах ключ Ключ со ссылкой на объект. Для формы списка можно передать структуру Отбор — список откроется уже отфильтрованным. Произвольные параметры с любыми именами обрабатываются в модуле формы в обработчике ПриСозданииНаСервере через коллекцию Параметры.

Если форма должна вернуть результат (например, форма подбора), открывайте её с описанием оповещения: создайте объект ОписаниеОповещения с именем процедуры-обработчика и передайте его в ОткрытьФорму(). Форма в этом случае обычно открывается модально, а после закрытия управление возвращается в вашу процедуру с выбранным значением.

1c
Оповещение = Новый ОписаниеОповещения("ПослеВыбораКонтрагента", ЭтотОбъект);
ОткрытьФорму("Справочник.Контрагенты.ФормаВыбора", , ЭтотОбъект, , , , Оповещение, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);

Параметр «владелец» важен не только для модальности: при закрытии формы-владельца платформа автоматически закрывает и подчинённые формы. Если владельца не указать, открытая форма может остаться висеть после закрытия родительского окна.

Открытие формы из конфигуратора при разработке

Во время разработки форму удобно запускать прямо из конфигуратора. Откройте конфигурацию, запустите режим предприятия через «Сервис → 1С:Предприятие» (или клавишей F5 для отладки). В режиме отладки точки останова в модуле формы сработают при её открытии, что позволяет пошагово проверить обработчики ПриСозданииНаСервере и ПриОткрытии.

Если нужно открыть конкретную форму сразу при старте, используйте параметр командной строки запуска или обработчик ПриНачалеРаботыСистемы в модуле управляемого приложения — там можно вызвать ОткрытьФорму() для нужного объекта. Это удобно для тестирования форм, до которых долго добираться через меню.

Порядок действий при отладке формы
  1. 1
    Откройте конфигуратор и нужную форму объекта
  2. 2
    Поставьте точку останова в обработчике ПриСозданииНаСервере
  3. 3
    Запустите отладку клавишей F5
  4. 4
    В режиме предприятия откройте форму штатным способом
  5. 5
    Проверьте значения параметров и переменных в остановившемся сеансе

Проверка результата и типичные ошибки

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

Вторая частая причина — отсутствие прав. Если у пользователя нет права просмотра объекта, форма не откроется, а в журнале регистрации появится сообщение о нарушении прав доступа. Третья группа проблем — ошибки в обработчиках самой формы: исключение в ПриСозданииНаСервере прерывает открытие, и пользователь видит сообщение об ошибке вместо окна.

Типичные ошибки
01
Неверное полное имя формы — платформа выдаёт ошибку «Форма не найдена»
02
Передача параметра Ключ без ссылки — форма объекта открывается пустой или падает с ошибкой
03
Игнорирование владельца — подчинённые формы остаются открытыми после закрытия родителя
04
Открытие формы в серверном контексте — ОткрытьФорму работает только на клиенте
05
Отсутствие проверки прав — пользователь получает ошибку доступа вместо понятного сообщения
Контрольные точки

Как проверить результат

Форма открылась
Норма

Окно появилось, данные и отборы соответствуют переданным параметрам

Тревожный признак

Ошибка «Форма не найдена» или пустое окно

Параметры применены
Норма

В ПриСозданииНаСервере коллекция Параметры содержит переданные ключи

Тревожный признак

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

Права доступа
Норма

Форма открывается под целевым пользователем

Тревожный признак

Сообщение о нарушении прав в журнале регистрации

FAQ: частые вопросы о запуске форм в 1С

Как открыть форму существующего документа, а не нового?

Передайте в параметрах формы структуру с ключом «Ключ», значением которого является ссылка на документ. Без этого параметра форма объекта откроется для создания нового элемента.

Можно ли открыть форму по ссылке из браузера или письма?

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

Почему ОткрытьФорму не работает в серверной процедуре?

Интерактивные методы доступны только в клиентском контексте. Вынесите вызов в клиентскую процедуру, а серверную логику оставьте в отдельном серверном вызове, который вернёт нужные данные для открытия формы.

Как запретить открытие нескольких копий одной формы?

Передайте в параметр «Уникальность» произвольное значение — например, ссылку на объект. Если форма с таким ключом уникальности уже открыта, платформа активирует существующее окно вместо создания нового.

Как открыть форму внешней обработки программно?

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

Что делать, если форма открывается, но сразу закрывается?

Проверьте обработчики ПриСозданииНаСервере и ПриОткрытии: в них может стоять явный вызов Закрыть() или возникает исключение. Запустите сеанс под отладчиком и посмотрите, на какой строке прерывается выполнение.

Итог

Что важно запомнить

Пользователь открывает формы через меню разделов и команду «Все функции», разработчик — методом ОткрытьФорму с полным именем формы, структурой параметров и владельцем. Перед запуском незнакомых внешних обработок делайте резервную копию, а результат всегда проверяйте под учётной записью целевого пользователя.