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

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

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

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

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

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

Работа ведётся в конфигураторе 1С, поэтому у пользователя должны быть права на запуск конфигуратора и, как правило, административные права в базе. Перед любыми изменениями обязательно сделайте резервную копию базы или выгрузку конфигурации.

Что такое модуль документа и какие модули бывают

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

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

Как открыть конфигуратор и конфигурацию

Запустите ярлык 1С и в окне выбора информационных баз выделите нужную базу. Вместо кнопки «1С:Предприятие» нажмите кнопку «Конфигуратор». Если база защищена, введите логин и пароль пользователя с правами на работу в конфигураторе.

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

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

Пошаговое открытие модуля объекта документа

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

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

Альтернативный путь: выделите документ в дереве и нажмите F4 или дважды щёлкните по строке «Модуль объекта» в палитре свойств, если она открыта. В некоторых версиях платформы пункт доступен и из окна редактирования объекта: откройте документ двойным щелчком и перейдите на вкладку «Прочее» → «Модуль объекта».

Порядок действий
  1. 1
    Запустите конфигуратор и войдите в нужную базу
  2. 2
    Откройте конфигурацию через меню «Конфигурация» → «Открыть конфигурацию»
  3. 3
    В дереве объектов разверните ветку «Документы» и найдите нужный документ
  4. 4
    Щёлкните правой кнопкой и выберите «Открыть модуль объекта»
  5. 5
    Для кода экранной формы выберите «Открыть основную форму» и перейдите на вкладку «Модуль»
  6. 6
    Просмотрите код, внесите правки и сохраните через «Конфигурация» → «Сохранить конфигурацию»

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

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

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

Если основная форма не назначена, пункт меню может отсутствовать. Тогда разверните документ в дереве, найдите подветку «Формы» и откройте нужную форму из списка вручную.

Как найти нужное место в модуле

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

Для поиска по тексту нажмите Ctrl+F и введите имя обработчика или фрагмент кода, например «ОбработкаПроведения» или текст сообщения об ошибке, которое показывает программа. Поиск по тексту ошибки — самый быстрый способ найти место, где она формируется.

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

Основные обработчики событий модуля документа

Чтобы быстро ориентироваться в модуле, полезно знать назначение стандартных обработчиков. Их можно вставить через меню «Текст» → «Процедуры и функции» или шаблоны, а можно набрать вручную.

ОбработчикКогда выполняетсяТипичное применение
ОбработкаПроведенияПри проведении документаФормирование движений по регистрам, контроль остатков
ОбработкаЗаполненияПри создании документаЗаполнение реквизитов по умолчанию, заполнение на основании
ПередЗаписьюПеред сохранением документаПроверки и подготовка данных до записи
ОбработкаПроверкиЗаполненияПри проверке обязательных реквизитовСобственные проверки и сообщения об ошибках
ОбработкаУдаленияПроведенияПри отмене проведенияОчистка связанных данных, дополнительные контроли
bsl
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
	// Пример: запрет проведения без склада
	Если Не ЗначениеЗаполнено(Склад) Тогда
		Сообщить("Не указан склад. Проведение отменено.");
		Отказ = Истина;
	КонецЕсли;
КонецПроцедуры

Типичные ошибки и ограничения

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

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

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

Типичные ошибки
01
Правка модуля формы вместо модуля объекта — проверка не срабатывает при проведении из списка или фоновым заданием
02
Отсутствие резервной копии — синтаксическая ошибка в модуле блокирует проведение всех документов этого вида
03
Забытое обновление конфигурации базы данных — изменения сохранены, но в режиме предприятия не видны
04
Прямая правка типового модуля вместо расширения — при обновлении конфигурации изменения теряются или блокируют обновление
Контрольные точки

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

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

Окно редактора кода открыто, виден текст модуля или пустой модуль

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

Пункт меню неактивен — конфигурация закрыта или нет прав

Синтаксис после правки
Норма

Проверка через «Текст» → «Проверка синтаксиса» не выдаёт ошибок

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

В окне сообщений ошибки компиляции модуля

Работа в режиме предприятия
Норма

Документ проводится, новая логика срабатывает

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

Ошибка при проведении или старое поведение — не выполнено обновление конфигурации БД

FAQ: частые вопросы о модуле документа

Почему пункт «Открыть модуль объекта» неактивен?

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

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

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

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

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

Модуль документа пустой — это нормально?

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

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

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

Что делать, если после правки модуля документы перестали проводиться?

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

Итог

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

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