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

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

Как открыть модуль формы в 1С

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

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

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

Что такое модуль формы и где он находится

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

Физически модуль формы — это часть описания формы внутри файла конфигурации. Поэтому открыть его можно только штатными средствами конфигуратора, а не через файловый менеджер. Исключение — выгрузка конфигурации в файлы, где модуль формы сохраняется как отдельный bsl-файл, но для повседневной работы этот путь не используется.

Открытие модуля через дерево конфигурации

Это основной и самый надёжный способ. Запустите конфигуратор, выполните вход под пользователем с правами на изменение конфигурации и откройте дерево конфигурации через меню «Конфигурация → Открыть конфигурацию» или комбинацией Ctrl+Shift+O (в ряде версий — через кнопку на панели инструментов).

Далее действуйте по шагам: найдите нужный тип объекта — например, «Справочники» или «Документы», разверните конкретный объект, внутри него разверните ветку «Формы». Выделите нужную форму (например, «ФормаЭлемента») двойным щелчком — откроется редактор формы. На панели инструментов редактора есть кнопка с изображением листа кода, либо используйте вкладку «Модуль» внизу окна редактора формы. Нажатие открывает текст модуля.

Порядок действий
  1. 1
    Откройте конфигуратор и дерево конфигурации
  2. 2
    Найдите объект и разверните ветку «Формы»
  3. 3
    Дважды щёлкните по нужной форме — откроется редактор
  4. 4
    Нажмите кнопку «Модуль» на панели или вкладку «Модуль» внизу окна
  5. 5
    Внесите изменения и сохраните конфигурацию (F7 или Ctrl+S с последующим обновлением)

Если у объекта несколько форм (форма списка, форма элемента, форма выбора), у каждой свой отдельный модуль. Убедитесь, что открываете именно ту форму, поведение которой хотите изменить. Форма, назначенная основной, помечена в дереве жирным начертанием.

Быстрые способы: контекстное меню и горячие клавиши

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

Когда редактор формы уже открыт, самый быстрый переход к коду — клавиша F9 или кнопка «Модуль» на панели инструментов. Обратный переход из модуля к визуальному редактору выполняется через вкладки в нижней части окна: «Форма», «Модуль», а для управляемых форм также «Командный интерфейс».

Ещё один быстрый путь — глобальный поиск по конфигурации (Ctrl+Shift+F). Если вы знаете имя процедуры или фрагмент кода из модуля формы, поиск приведёт прямо к нужной строке, и двойной щелчок по результату откроет модуль в нужной позиции.

Открытие модуля обычной и управляемой формы: различия

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

В управляемых формах структура редактора другая: внизу расположены вкладки «Форма» и «Модуль», а сам модуль структурирован по областям — обработчики событий формы, команды, служебные процедуры. Навигацию по большому модулю удобно вести через выпадающий список процедур и функций в верхней части окна или через Ctrl+O (список методов модуля в ряде версий платформы).

Если конфигурация работает в режиме совместимости и содержит оба типа форм, способ открытия модуля определяется типом конкретной формы, а не настройками всей базы. Тип формы виден в палитре свойств формы в дереве конфигурации.

Почему модуль формы не открывается: частые причины

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

Вторая причина — объект поставки закрыт для редактирования. В этом случае форму можно открыть, но изменения будут заблокированы. Решение — включить возможность изменения через «Конфигурация → Поддержка → Настройка поддержки», понимая, что это усложнит будущие обновления. Более безопасная альтернатива — расширение конфигурации, где модуль формы дорабатывается без снятия объекта с поддержки.

Третья ситуация — у объекта вообще нет созданной формы. Если в ветке «Формы» пусто, платформа генерирует форму автоматически, и модуля как такового нет. Нужно сначала создать форму через конструктор (правый клик по ветке «Формы» → «Добавить»), и только после этого у неё появится собственный модуль.

Работа с модулем через расширение конфигурации

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

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

Способы доработки модуля формы

Прямое изменение в конфигурации

Быстро, но требует снятия объекта с поддержки; усложняет обновления типовой конфигурации

Расширение конфигурации

Сохраняет поддержку и простое обновление; ограничения — не все элементы формы и обработчики можно переопределить

Внешняя обработка

Подходит для отдельных инструментов, но не для доработки существующих форм объектов

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

После внесения изменений выполните проверку модуля: меню «Конфигурация → Проверка конфигурации» с включённой проверкой логической целостности и синтаксиса модулей. Синтаксическая ошибка подсвечивается и в окне сообщений сразу при попытке сохранения.

Сохраните конфигурацию (Ctrl+S) и обновите конфигурацию базы данных (F7), если изменения затрагивают структуру. Затем запустите режим предприятия и откройте доработанную форму: она должна открываться без ошибок, а добавленная логика — срабатывать на ожидаемых действиях.

Типичные ошибки
01
Правка не той формы: изменили форму списка, а проверяли форму элемента — изменения «не видны»
02
Код вставлен без учёта директивы: серверный вызов в процедуре &НаКлиенте приводит к ошибке компиляции
03
Забыто обновление конфигурации БД: в режиме предприятия работает старая версия модуля
04
Изменение типового модуля вместо расширения: при очередном обновлении доработка стирается
Контрольные точки

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

Открытие формы в режиме предприятия
Норма

Форма открывается без сообщений об ошибках

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

Ошибка компиляции или «Процедура не обнаружена»

Срабатывание обработчика
Норма

Код выполняется при нужном событии, проверено отладчиком

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

Точка останова не срабатывает — обработчик не привязан к событию

Состояние поддержки
Норма

Объект на поддержке, доработка в расширении

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

Объект снят с поддержки ради мелкой правки

Частые вопросы

Можно ли открыть модуль формы из режима «Предприятие»?

Нет, модуль формы доступен только в конфигураторе. Из пользовательского режима максимум можно посмотреть текст ошибки с указанием строки модуля, а затем найти это место в конфигураторе через глобальный поиск.

Как найти нужную процедуру в большом модуле формы?

Используйте выпадающий список процедур и функций над текстом модуля, поиск по Ctrl+F внутри модуля или глобальный поиск Ctrl+Shift+F по всей конфигурации, если неизвестно, в какой именно форме находится код.

Почему в модуле формы нет нужного обработчика события?

Обработчики создаются через палитру свойств: выделите форму или элемент, найдите нужное событие в списке событий и нажмите кнопку с лупой — платформа создаст шаблон процедуры в модуле с правильной директивой компиляции.

Что делать, если кнопка «Модуль» неактивна?

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

Можно ли редактировать модуль формы внешним редактором?

Штатно — нет, модуль хранится внутри конфигурации. Возможна выгрузка конфигурации в файлы, где модуль формы станет отдельным bsl-файлом, но обратная загрузка требует аккуратности и не подходит для повседневной работы.

Изменения в модуле не видны пользователям — почему?

Чаще всего не выполнено обновление конфигурации базы данных (F7) или пользователи работают в старом сеансе. Попросите их перезапустить клиентское приложение после обновления.

Итог

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

Модуль формы открывается из редактора формы в конфигураторе кнопкой «Модуль» или клавишей F9. Для типовых конфигураций правки безопаснее вносить через расширение, а любые изменения сначала проверять на копии базы с обязательной проверкой синтаксиса.