Разработка и Конфигурация · 10 мин
Как посмотреть код документа в 1С
Как посмотреть код документа в 1С: открытие модуля объекта, формы и менеджера в конфигураторе, просмотр обработчиков событий, отладка и поиск по коду.
Под «кодом документа» в 1С обычно понимают программный код на встроенном языке, который хранится в модулях объекта конфигурации: модуле объекта, модуле формы, модуле менеджера. Посмотреть его можно только в конфигураторе — в пользовательском режиме «1С:Предприятие» код недоступен. Для этого нужны права на запуск конфигуратора и, как минимум, право просмотра конфигурации.
Код документа отвечает за логику проведения, заполнение реквизитов, проверки при записи, формирование движений по регистрам и поведение формы документа. Если документ работает не так, как ожидается — не проводится, не создаёт движения, выдаёт ошибку при записи — первым делом смотрят именно его модули.
Ниже разобраны способы открыть код документа в конфигураторе, какие модули у документа бывают, как найти нужный обработчик события и как безопасно изучать код, не повредив рабочую базу.
Где хранится код документа: какие модули бывают
У объекта конфигурации «Документ» код распределён по нескольким модулям, и важно понимать, какой из них открывать под конкретную задачу. Модуль объекта содержит серверную логику: обработчики ОбработкаПроведения, ОбработкаЗаполнения, ПередЗаписью, ПриЗаписи, ОбработкаПроверкиЗаполнения. Именно здесь формируются движения по регистрам.
Модуль формы отвечает за поведение формы документа на клиенте и на сервере: обработчики ПриОткрытии, ПриСозданииНаСервере, обработчики изменения реквизитов, команды формы. Модуль менеджера содержит код, который работает без конкретного объекта — например, формирование печатных форм и получение данных для отчётов.
ОбработкаПроведения, ПередЗаписью, движения по регистрам
ПриОткрытии, обработчики реквизитов, команды формы
Печатные формы, запросы к данным документов
Обработчики команд, связанных с документом
Как открыть конфигуратор и найти документ
Запустите конфигуратор через ярлык «1С:Предприятие» — в окне выбора информационной базы выделите нужную базу и нажмите кнопку «Конфигуратор». Если кнопка неактивна, у пользователя нет права «Администрирование» или соответствующих прав на запуск конфигуратора — уточните это у администратора базы.
После входа откройте конфигурацию: меню Конфигурация → Открыть конфигурацию. Если конфигурация закрыта для изменения и находится на поддержке, откроется окно просмотра — для чтения кода этого достаточно. В дереве конфигурации разверните ветку «Документы» и найдите нужный вид документа, например «РеализацияТоваровУслуг».
- 1Запустите конфигуратор для нужной базы
- 2Откройте конфигурацию: Конфигурация → Открыть конфигурацию
- 3В дереве конфигурации разверните ветку «Документы»
- 4Найдите нужный вид документа по имени
- 5Щёлкните по нему правой кнопкой мыши
- 6Выберите нужный пункт: «Открыть модуль объекта», «Открыть модуль формы» или «Открыть модуль менеджера»
Как открыть модуль объекта и посмотреть код проведения
Щёлкните правой кнопкой мыши по документу в дереве конфигурации и выберите «Открыть модуль объекта». Откроется редактор кода, где размещены обработчики событий объекта. Главный из них — ОбработкаПроведения: здесь обычно находятся запросы к табличным частям и формирование записей в регистры через коллекцию Движения.
Чтобы быстро перейти к нужной процедуре, используйте выпадающий список процедур и функций в верхней части окна модуля (сочетание Ctrl+Alt+P в большинстве версий платформы) либо поиск по тексту — Ctrl+F. Если модуля много, удобно искать по имени обработчика, например «ПередЗаписью».
Если документ типовой, код может быть «размазан» по общим модулям: из ОбработкаПроведения вызываются процедуры вида ПроведениеДокументов.ОбработкаПроведенияДокумента(...) или подписки на события. Тогда установите курсор на имя вызываемой процедуры и нажмите F12 — конфигуратор перейдёт к её определению.
Как посмотреть код формы документа
Для просмотра кода формы щёлкните правой кнопкой по документу и выберите «Открыть основную форму документа» (или «Формы» → нужная форма, если их несколько). Откроется редактор формы. Чтобы перейти к коду, нажмите вкладку «Модуль» в нижней части окна редактора формы либо кнопку с изображением модуля на панели инструментов.
В модуле формы обратите внимание на директивы компиляции: &НаКлиенте, &НаСервере, &НаСервереБезКонтекста. Они показывают, где выполняется код. Ошибки вида «Процедура или функция с указанным именем не определена» часто возникают именно из-за вызова серверной процедуры из клиентского контекста.
Чтобы узнать, какой обработчик привязан к элементу формы (например, к полю «Контрагент»), выделите элемент в дереве элементов формы и посмотрите его свойства: события вроде «ПриИзменении» содержат имя процедуры-обработчика. По этому имени легко найти код в модуле через поиск.
Как посмотреть код без изменения конфигурации
Просмотр кода не требует снятия конфигурации с поддержки и не меняет базу: открытие модулей на чтение безопасно. Главное — не нажимать «Обновить конфигурацию базы данных» и не сохранять изменения, если задача — только изучить логику. Редактор модуля позволяет свободно читать, искать и копировать текст.
Если прав на конфигуратор нет совсем, часть логики можно увидеть косвенно: через «Ещё → Изменить форму» в режиме предприятия видны настройки формы, а движения документа видны через кнопку «Движения документа» (панель навигации проведённого документа). Но сам программный код без конфигуратора не открыть.
Отладка: как посмотреть код в действии
Чтение кода часто дополняют отладкой, чтобы увидеть, какие ветки кода реально выполняются. Включите отладку: Сервис → Параметры → отладка в конфигураторе должна быть разрешена, а в настройках базы — включён режим отладки (для серверных баз отладку включает администратор на сервере 1С).
Установите точку останова клавишей F9 на строке в ОбработкаПроведения, запустите отладку (F5), проведите документ в открывшемся сеансе предприятия — выполнение остановится на точке. Дальше пошагово (F11 — с заходом в процедуры, F10 — без захода) можно пройти код и смотреть значения переменных через «Вычислить выражение» (Shift+F9) или табло (Alt+F2).
Как проверить результат
Виден текст программы с обработчиками событий
Сообщение «Модуль недоступен» — нет прав или объект поставщика закрыт
Открывается определение вызываемой процедуры
Ничего не происходит — процедура в недоступном модуле или имя устарело
Выполнение останавливается на точке останова
Точка не срабатывает — отладка отключена или код выполняется на сервере без отладки
Типичные ошибки и ограничения
Частая ситуация — пользователь ищет код в режиме «1С:Предприятие» и не находит: там его нет по определению, нужен конфигуратор. Вторая ошибка — поиск логики проведения только в модуле объекта, тогда как в типовых конфигурациях она вынесена в общие модули и подписки на события. Подписки видны в ветке «Общие → Подписки на события», где источником указан тип «ДокументОбъект.<Имя>».
Ещё одно ограничение: модули объектов поставщика могут быть поставлены «без исходных текстов» — тогда при открытии появится сообщение о недоступности модуля. Обойти это штатными средствами нельзя. Также помните, что расширения конфигурации могут переопределять обработчики: если поведение документа отличается от кода в основной конфигурации, проверьте список подключённых расширений.
Частые вопросы
Можно ли посмотреть код документа без конфигуратора?
Нет, программный код модулей доступен только в конфигураторе. В режиме «1С:Предприятие» можно посмотреть лишь результат работы кода: движения документа по регистрам, сообщения об ошибках, настройки формы через «Ещё → Изменить форму».
Почему при открытии модуля появляется сообщение «Модуль недоступен»?
Объект поставлен на поддержку без исходных текстов модуля — поставщик закрыл код. Штатно просмотреть его нельзя. Также проверьте, что у пользователя есть права на просмотр конфигурации.
Где искать код, который формирует движения документа?
Начните с обработчика ОбработкаПроведения в модуле объекта. В типовых конфигурациях оттуда вызываются процедуры общих модулей — переходите к ним клавишей F12. Дополнительно проверьте подписки на события с источником этого документа.
Как найти, какой код выполняется при изменении реквизита на форме?
Откройте форму документа в конфигураторе, выделите элемент формы, в палитре свойств найдите событие (например, «ПриИзменении») — там указано имя процедуры-обработчика. Найдите её в модуле формы через поиск (Ctrl+F).
Опасно ли просто открывать и читать модули в рабочей базе?
Нет, просмотр кода на чтение безопасен и не влияет на работу пользователей. Риск появляется только при сохранении изменений в конфигурации и обновлении конфигурации базы данных — этого следует избегать без резервной копии.
Что делать, если поведение документа не совпадает с кодом в модуле?
Проверьте подключённые расширения конфигурации — они могут переопределять обработчики. Также посмотрите подписки на события и общие модули, вызываемые из обработчиков: реальная логика может находиться там.
Что важно запомнить
Код документа смотрят в конфигураторе через контекстное меню объекта: модуль объекта — проведение и запись, модуль формы — поведение формы, модуль менеджера — печать и общие процедуры. Для навигации по типовому коду используйте F12, для анализа выполнения — отладку. Чтение кода безопасно, изменения — только после резервной копии.