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

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

Где посмотреть реализацию в 1С: способы найти код и логику конфигурации

Как найти реализацию механизма в 1С: конфигуратор, модули, общий код, запросы, журнал регистрации. Пошаговые способы поиска кода и логики в конфигурации.

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

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

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

Что понимать под «реализацией» в 1С

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

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

Поиск реализации через конфигуратор

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

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

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

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

Глобальный поиск по конфигурации

Если неизвестно, где находится код, используйте глобальный поиск: меню «Правка → Глобальный поиск по тексту» или сочетание Ctrl+Shift+F. Поиск работает по всем модулям, макетам и даже по именам метаданных. Это самый быстрый способ найти реализацию по известному фрагменту: тексту сообщения об ошибке, названию кнопки, заголовку поля.

Практический приём: возьмите точный текст сообщения, которое выдаёт программа (например, «Не указан договор контрагента»), и найдите его глобальным поиском. Вы попадёте прямо в процедуру, которая выполняет проверку, и увидите окружающую логику. Аналогично ищут по имени команды формы или синониму реквизита.

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

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

Отладка: увидеть реализацию в момент выполнения

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

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

В клиент-серверном режиме проверьте, что отладка включена и на сервере (параметр запуска службы сервера 1С), иначе серверный код не остановится на точках останова. Также помните, что фоновые задания отлаживаются через отдельное подключение к сеансу фонового задания.

Где смотреть запросы и движения по регистрам

Многие механизмы реализованы не императивным кодом, а запросами. Тексты запросов лежат в тех же модулях — ищите конструкции вида Запрос.Текст = "ВЫБРАТЬ...". Чтобы понять, какие движения делает документ, откройте его свойства в конфигураторе: закладка «Движения» показывает список регистров, а код формирования записей — в обработке проведения и общих модулях.

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

Для отчётов на СКД реализация лежит в схеме компоновки данных: в конфигураторе откройте отчёт, затем «Основная схема компоновки данных» — там запросы, ресурсы и настройки. Встроенный язык в таких отчётах обычно минимален, вся логика — в запросе схемы.

Ограничения для типовых конфигураций и альтернативы без конфигуратора

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

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

Для анализа чужих внешних обработок и отчётов (файлы .epf/.erf) достаточно открыть их в конфигураторе через «Файл → Открыть» — код и макеты будут доступны так же, как у объектов конфигурации.

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

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

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

Частые ошибки при поиске реализации

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

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

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

Типичные ошибки
01
Искать логику только в модуле формы — основная логика обычно в общих модулях и модуле объекта.
02
Забыть про расширения конфигурации — переопределённый код лежит в расширении, а не в основной конфигурации.
03
Не проверить подписки на события — часть логики срабатывает через обработчики событий, невидимые из модуля документа.
04
Менять типовой код вместо изучения — изменение кода на поддержке ломает обновление; сначала смотрите, потом решайте, как дорабатывать.

Как проверить, что вы нашли нужную реализацию

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

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

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

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

Точка останова в найденной процедуре
Норма

Срабатывает при нужном действии, переменные содержат данные документа

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

Не срабатывает — логика в другом месте или в расширении

Цепочка вызовов
Норма

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

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

Есть разрывы — ищите подписки на события и вызовы через Выполнить/ОбщегоНазначения

Замер производительности
Норма

Найденная процедура есть в списке вызванных

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

Процедуры нет в замере — она не участвует в сценарии

FAQ

Можно ли посмотреть код 1С без конфигуратора?

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

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

Модуль поставляется закрытым — поставщик скрыл исходный текст. Это встречается в некоторых отраслевых решениях и защищённых подсистемах. Посмотреть такой код штатными средствами нельзя; ориентируйтесь на документацию поставщика.

Как найти, где формируется печатная форма документа?

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

Что делать, если механизм работает в фоновом задании?

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

Как понять, переопределён ли механизм расширением?

Откройте «Конфигурация → Расширения конфигурации» и посмотрите список активных расширений. Внутри расширения заимствованные объекты помечены, а изменённые процедуры имеют аннотации &Вместо, &Перед, &После — они показывают, какой код выполняется вместо типового.

Итог

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

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