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