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