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

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

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

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

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

Чаще всего разработчику требуется открыть модуль объекта (например, документа «Реализация товаров»), модуль формы (например, формы списка справочника) или общий модуль, где собраны переиспользуемые процедуры и функции. Каждый из этих случаев имеет свой путь в конфигураторе, и знание всех вариантов заметно ускоряет работу.

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

Где в конфигурации находятся модули

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

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

Как открыть модуль объекта через дерево конфигурации

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

Рядом в том же меню доступны пункты «Открыть модуль менеджера» и «Открыть модуль команды» (для команд объекта). После выбора пункта откроется окно редактора кода с текстом модуля. Если модуль пустой, вы увидите пустое окно редактора — это нормально для объектов, где код ещё не писали.

Порядок действий
  1. 1
    Откройте конфигуратор и загрузите нужную информационную базу
  2. 2
    Выполните «Конфигурация → Открыть конфигурацию» и дождитесь построения дерева
  3. 3
    Найдите объект (документ, справочник, обработку) в дереве конфигурации
  4. 4
    Кликните правой кнопкой и выберите «Открыть модуль объекта»
  5. 5
    Проверьте, что окно редактора кода открылось и доступно для редактирования

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

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

В окне конструктора формы есть вкладки внизу: «Форма», «Модуль», «Реквизиты» и другие. Переключитесь на вкладку «Модуль» — откроется код формы. Альтернативный путь: в контекстном меню формы объекта выбрать «Открыть модуль» — конфигуратор сразу покажет код без визуального редактора.

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

Как открыть общий модуль

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

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

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

Быстрые способы: поиск, отладка и переход по коду

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

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

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

Маршрут решения

Какой способ выбрать

Знаете объект и тип модуля (объект, форма, команда)Открывайте через контекстное меню объекта в дереве конфигурации
Знаете только имя процедуры или фрагмент кодаИспользуйте глобальный поиск Ctrl+Shift+F по всей конфигурации
Нужно понять, какой модуль выполняется в режиме предприятияЗапустите отладку с точкой останова и смотрите стек вызовов
Нужен модуль, из которого вызвана текущая процедураУстановите курсор на вызов и нажмите F12 для перехода к определению

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

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

Вторая причина — недостаток прав. Пользователь, под которым вы вошли в конфигуратор, должен иметь право «Администрирование» и право на изменение конфигурации. Третья причина — конфигурация базы данных заблокирована другим сеансом конфигуратора или выполняется обновление. В этом случае изменения временно недоступны.

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

Типичные ошибки при работе с модулями

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

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

Типичные ошибки
01
Размещение обработчика проведения в модуле формы вместо модуля объекта — код просто не вызывается платформой
02
Редактирование модуля без сохранения конфигурации базы данных — изменения видны в конфигураторе, но не работают в режиме предприятия до обновления конфигурации БД (F7)
03
Поиск процедуры вручную по дереву вместо глобального поиска — потеря времени в больших конфигурациях
04
Изменение типового общего модуля вместо создания своего — правки теряются при обновлении

Проверка результата после изменений

После того как модуль открыт и изменён, сохраните конфигурацию (Ctrl+S) и обновите конфигурацию базы данных (F7 или «Конфигурация → Обновить конфигурацию базы данных»). Без этого шага код в режиме предприятия останется старым — это самая частая причина фразы «я поменял, но ничего не изменилось».

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

Контрольные точки

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

Модуль открылся
Норма

Окно редактора показывает код, доступен ввод текста

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

Окно открыто в режиме только чтения или пункт меню неактивен

Изменения применились
Норма

После F7 обновление конфигурации БД завершилось без ошибок

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

Появились сообщения о несохранённых изменениях или блокировке

Код корректен
Норма

Проверка конфигурации не выдаёт ошибок по модулю

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

В окне сообщений ошибки компиляции с указанием строки

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

Как открыть модуль, если конфигурация закрыта на поддержку?

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

Чем отличается модуль объекта от модуля менеджера?

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

Как быстро найти, в каком модуле находится процедура?

Нажмите Ctrl+Shift+F, введите имя процедуры и запустите поиск по всей конфигурации. В результатах будут показаны все модули, где встречается это имя. Двойной клик по строке результата открывает модуль на нужной строке. Если процедура вызывается в уже открытом коде, установите курсор на её имя и нажмите F12.

Почему изменения в модуле не работают в режиме предприятия?

Наиболее вероятная причина — конфигурация базы данных не обновлена. Конфигуратор хранит рабочую конфигурацию отдельно от конфигурации БД; нажмите F7 для обновления. Также проверьте, что вы редактируете ту же базу, которую запускаете, и что код находится в правильном модуле (объекта, а не формы).

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

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

Итог

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

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