Разработка и Конфигурация · 9 мин
Как открыть модуль формы документа в 1С
Как открыть модуль формы документа в 1С: через конфигуратор, команду «Перейти к модулю», сочетания клавиш. Разбор ошибок и отличий управляемых и обычных форм.
Модуль формы документа в 1С — это программный код на встроенном языке, который обрабатывает события формы: открытие, запись, изменение реквизитов, нажатие кнопок. Чтобы его открыть, нужно работать в конфигураторе с правами на изменение конфигурации и понимать, где именно находится форма — в составе объекта «Документ» или в общих формах.
Способ открытия зависит от задачи. Если нужно просто посмотреть код обработчиков, достаточно пары кликов по дереву конфигурации. Если форма открывается программно из другого модуля — потребуется найти вызов ОткрытьФорму() или ПолучитьФорму() и перейти к нужному объекту. Ниже разобраны оба сценария, а также типичные ошибки, из-за которых модуль «не открывается» или открывается пустым.
Где находится модуль формы документа
В дереве конфигурации каждый документ содержит несколько служебных веток: «Данные», «Нумераторы», «Движения», «Последовательности», «Журналы», «Печать», «Ввод на основании», «Права», «Макеты», «Команды», «Формы» и «Модули». Именно ветка «Формы» хранит экранные представления документа — форму документа, форму списка, форму выбора.
У каждой формы есть два связанных компонента: визуальное описание (расположение элементов, реквизиты, команды) и модуль — программный код обработчиков. В управляемом приложении модуль формы хранится отдельным файлом внутри конфигурации, в обычном приложении — как вкладка в окне редактирования формы.
Важно не путать модуль формы с модулем объекта документа. Модуль объекта содержит обработчики событий самого документа (запись, проведение, заполнение) и находится в ветке «Модули» → «Модуль объекта». Модуль формы отвечает только за поведение экранной формы: видимость элементов, реакцию на ввод, оформление.
Открытие модуля формы через конфигуратор
Стандартный путь выглядит так. Запустите конфигуратор, откройте конфигурацию (меню «Конфигурация» → «Открыть конфигурацию»). В дереве объектов разверните ветку «Документы», найдите нужный документ, разверните его и откройте ветку «Формы».
Дважды щёлкните по нужной форме (например, «ФормаДокумента») — откроется редактор формы. Для управляемых форм в нижней части окна редактора есть вкладки: «Форма», «Модуль», «Реквизиты» и другие. Перейдите на вкладку «Модуль» — перед вами код формы.
Альтернативный вариант: щёлкните правой кнопкой по форме в дереве конфигурации и выберите пункт контекстного меню, открывающий модуль напрямую (в разных версиях платформы он может называться «Открыть модуль» или быть доступен через подменю). Это удобно, когда визуальную часть менять не нужно.
- 1Откройте конфигуратор и загрузите конфигурацию (Конфигурация → Открыть конфигурацию)
- 2В дереве найдите: Документы → нужный документ → Формы → нужная форма
- 3Откройте форму двойным щелчком и перейдите на вкладку «Модуль»
- 4Внесите изменения и проверьте синтаксис (Ctrl+F7 или кнопка проверки модуля)
- 5Сохраните конфигурацию (Ctrl+S) и при необходимости обновите конфигурацию базы данных (F7)
Открытие модуля из режима отладки и из кода
Переход к модулю во время отладки
Если форма уже открыта в режиме предприятия под отладкой, можно попасть в её модуль через стек вызовов. Установите точку останова в известном обработчике (например, в «ПриОткрытии»), запустите отладку — конфигуратор остановится именно в модуле этой формы, и вы увидите его код целиком.
Этот способ полезен, когда форма генерируется динамически или вы не уверены, какая именно форма используется: основная, дополнительная или форма из расширения конфигурации.
Поиск места программного открытия формы
Когда форма документа открывается программно, в коде встречаются вызовы вида:
ОткрытьФорму("Документ.РеализацияТоваровУслуг.Форма.ФормаДокумента", ПараметрыФормы);Чтобы найти все места открытия конкретной формы, используйте глобальный поиск по конфигурации (Ctrl+Shift+F) со строкой имени формы или фрагментом «Документ.ИмяДокумента.Форма». По результатам поиска можно перейти к каждому вызову и понять логику передачи параметров.
Отличия управляемых и обычных форм
В обычном приложении (режим совместимости с версиями 8.2 и ранее) редактор формы совмещает диалог, модуль и табличный документ в одном окне с закладками внизу. Модуль открывается вкладкой «Модуль» или кнопкой на панели инструментов редактора форм.
В управляемом приложении структура иная: форма описывается декларативно, а модуль содержит директивы компиляции — &НаКлиенте, &НаСервере, &НаСервереБезКонтекста. Открыв модуль, проверяйте директиву каждой процедуры: код клиента не видит серверных данных напрямую, и наоборот.
Сравнение вариантов форм
Вкладка «Модуль» в редакторе формы, директивы &НаКлиенте/&НаСервере. Используется в большинстве современных конфигураций.
Закладки «Диалог/Модуль» в одном окне, без директив компиляции. Встречается в старых конфигурациях и режиме совместимости.
Открывается из дерева расширения, а не основной конфигурации. Изменения в основной форме могут конфликтовать с расширением.
Почему модуль может не открываться или быть пустым
Самая частая причина «пустого» модуля — форма создана автоматически платформой и не имеет явного описания в конфигурации. Если у документа нет собственной формы, 1С генерирует её на лету, и открывать в дереве конфигурации нечего. Решение — создать форму явно: правой кнопкой по ветке «Формы» → «Добавить», выбрать тип «Форма документа» и пройти шаги конструктора.
Вторая причина — недостаток прав. Если вы работаете под пользователем без права «Администрирование» или без доступа к конфигуратору, открыть модуль не получится. Также конфигурация может быть закрыта паролем или поставляться без исходных текстов модулей — тогда вместо кода вы увидите сообщение о защите.
Третья ситуация — форма находится в расширении конфигурации. Если основная форма не содержит нужного кода, проверьте подключённые расширения: «Конфигурация» → «Расширения конфигурации». Модуль расширения открывается из дерева самого расширения.
Проверка результата и безопасное внесение изменений
После открытия и правки модуля обязательно выполните проверку синтаксиса: в редакторе модуля нажмите Ctrl+F7 или используйте кнопку проверки на панели инструментов. Ошибки компиляции подсвечиваются в окне сообщений с указанием строки.
Перед изменениями в рабочей базе сделайте выгрузку конфигурации в файл (Конфигурация → Сохранить конфигурацию в файл) или убедитесь, что база подключена к хранилищу конфигурации. Это позволит откатить правки, если форма перестанет открываться у пользователей.
Финальная проверка: запустите режим предприятия (желательно под отладкой), откройте документ, выполните основные действия — запись, проведение, изменение реквизитов, нажатие добавленных кнопок. Если форма ведёт себя как ожидалось и в окне сообщений нет ошибок, изменения можно переносить в рабочую среду.
Как проверить результат
Форма открывается без сообщений об ошибках
Ошибка «Процедура или функция не обнаружена» или форма не открывается
Окно сообщений пустое
Есть строки с ошибками компиляции
ПриОткрытии и команды выполняются, данные обновляются
Код написан, но не срабатывает — проверьте директивы и привязку обработчиков к событиям
Частые вопросы
Можно ли открыть модуль формы из режима 1С:Предприятие?
Нет. Модуль формы доступен только в конфигураторе. В режиме предприятия можно лишь остановиться в нём отладчиком, если отладка разрешена и конфигуратор запущен с подключением к этой же базе.
Почему в ветке «Формы» у документа пусто?
Значит, форма не создана явно и платформа генерирует её автоматически. Добавьте форму через контекстное меню ветки «Формы» → «Добавить», выберите тип формы — после этого появятся и редактор формы, и её модуль.
Чем модуль формы отличается от модуля объекта документа?
Модуль объекта работает с самим документом и его событиями (ОбработкаПроведения, ПередЗаписью) и доступен без формы. Модуль формы управляет только экранным представлением и существует, пока форма открыта. Один и тот же код в разных модулях даст разный результат.
Как открыть модуль формы, если конфигурация на поддержке?
Если объект не на полной поддержке, модуль открывается и редактируется обычно. При полной поддержке без возможности изменения сначала снимите объект с поддержки или включите режим изменений через «Конфигурация» → «Поддержка» → «Настройка поддержки». Учтите, что это усложнит будущие обновления.
Открываю модуль, а кода обработчиков нет — это нормально?
Да. Платформа создаёт заготовки обработчиков только при подключении их к событиям через палитру свойств формы или элемента. Пустой модуль означает, что ни одно событие ещё не обработано. Добавьте обработчик через свойства события — заготовка процедуры появится автоматически.
Что важно запомнить
Модуль формы документа открывается в конфигураторе через ветку «Формы» нужного документа и вкладку «Модуль» в редакторе. Не путайте его с модулем объекта, проверяйте расширения конфигурации, после правок выполняйте проверку синтаксиса и обновляйте конфигурацию базы данных только после тестирования на копии.