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