Разработка и Конфигурация · 11 мин
Где посмотреть реализацию в 1С: способы найти код и логику конфигурации
Как найти реализацию механизма в 1С: конфигуратор, модули, общий код, запросы, журнал регистрации. Пошаговые способы поиска кода и логики в конфигурации.
Когда нужно понять, как работает тот или иной механизм в 1С — расчёт налога, проведение документа, формирование отчёта, — возникает вопрос: где именно посмотреть реализацию. Ответ зависит от того, что вы ищете: программный код, структуру метаданных, запрос к базе данных или настройку подсистемы. В большинстве случаев основной инструмент — конфигуратор, но у него есть альтернативы для пользователей без прав разработчика.
Реализация в 1С распределена по нескольким уровням: объекты метаданных (документы, справочники, регистры), модули с программным кодом (модули объектов, форм, общие модули), запросы, макеты и роли. Механизм, который кажется пользователю единым действием — например, «провести накладную», — обычно собирается из обработчика проведения документа, общих модулей подсистемы учёта и процедур формирования движений по регистрам.
Ниже разобраны практические способы найти код и логику конкретного механизма: через конфигуратор, поиск по конфигурации, отладку, журнал регистрации и внешние инструменты. Отдельно рассмотрены ограничения для типовых конфигураций на поддержке и варианты для тех, у кого нет доступа к конфигуратору.
Что понимать под «реализацией» в 1С
Под реализацией обычно имеют в виду одно из трёх. Первое — программный код на встроенном языке 1С, который выполняет расчёт или обработку. Второе — структуру метаданных: какие реквизиты у документа, по каким регистрам он делает движения, какие у него табличные части. Третье — настройки типовой конфигурации: включённые функциональные опции, параметры учётной политики, которые определяют поведение механизма без изменения кода.
Прежде чем искать, определите, что именно вам нужно. Если вопрос «почему документ провёлся с такими суммами» — ищите код проведения и запросы. Если «можно ли добавить свой реквизит» — смотрите структуру метаданных и расширения. Если «почему кнопка недоступна» — проверяйте функциональные опции, права и роли, а не код.
Поиск реализации через конфигуратор
Конфигуратор — основной инструмент. Запустите его из каталога базы (ярлык «Конфигуратор» рядом с режимом предприятия) и откройте конфигурацию через меню «Конфигурация → Открыть конфигурацию». Дерево метаданных в левой части окна показывает все объекты: справочники, документы, регистры, отчёты, общие модули.
Чтобы посмотреть код конкретного объекта, выделите его в дереве, нажмите правую кнопку мыши и выберите нужный модуль: «Модуль объекта», «Модуль менеджера», «Модуль формы» (форма открывается через пункт «Формы»). Для документа логика проведения обычно находится в процедуре ОбработкаПроведения модуля объекта.
Обратите внимание: в типовых конфигурациях значительная часть логики вынесена в общие модули. Например, обработчик проведения документа может состоять из нескольких строк, которые вызывают процедуры из общих модулей проведения. Переходить к вызываемой процедуре удобно через контекстное меню — «Перейти к определению» (по умолчанию F12).
- 1Запустите конфигуратор и откройте конфигурацию (Конфигурация → Открыть конфигурацию).
- 2В дереве метаданных разверните ветку «Документы» и найдите нужный документ.
- 3Кликните правой кнопкой → «Модуль объекта» и найдите процедуру ОбработкаПроведения.
- 4Для вызовов из общих модулей используйте «Перейти к определению» (F12) на имени процедуры.
- 5Сохраните путь: запишите, в каких модулях лежит логика, чтобы вернуться позже.
Глобальный поиск по конфигурации
Если неизвестно, где находится код, используйте глобальный поиск: меню «Правка → Глобальный поиск по тексту» или сочетание Ctrl+Shift+F. Поиск работает по всем модулям, макетам и даже по именам метаданных. Это самый быстрый способ найти реализацию по известному фрагменту: тексту сообщения об ошибке, названию кнопки, заголовку поля.
Практический приём: возьмите точный текст сообщения, которое выдаёт программа (например, «Не указан договор контрагента»), и найдите его глобальным поиском. Вы попадёте прямо в процедуру, которая выполняет проверку, и увидите окружающую логику. Аналогично ищут по имени команды формы или синониму реквизита.
Учитывайте ограничение: поиск ищет литеральное совпадение. Если сообщение собирается из частей или берётся из макета, прямой поиск может не дать результата — тогда ищите по уникальному слову из фразы или используйте отладку.
Перед глобальным поиском сузьте область: отметьте поиск только по модулям, если ищете код, или только по макетам, если ищете текст печатной формы. Это заметно ускоряет поиск в больших конфигурациях.
Отладка: увидеть реализацию в момент выполнения
Отладка показывает реализацию «вживую»: вы видите, какие процедуры реально выполняются при действии пользователя. Включите отладку в конфигураторе («Отладка → Подключение» и настройка автоматического подключения, либо запуск предприятия из конфигуратора по F5), поставьте точку останова в предполагаемом месте и выполните действие в режиме предприятия.
Если вы не знаете, куда ставить точку останова, используйте замер производительности («Отладка → Замер производительности»): выполните действие, остановите замер — и получите список всех вызванных процедур с количеством вызовов и временем. Это самый надёжный способ найти реальный путь выполнения, когда код размазан по десяткам общих модулей.
В клиент-серверном режиме проверьте, что отладка включена и на сервере (параметр запуска службы сервера 1С), иначе серверный код не остановится на точках останова. Также помните, что фоновые задания отлаживаются через отдельное подключение к сеансу фонового задания.
Где смотреть запросы и движения по регистрам
Многие механизмы реализованы не императивным кодом, а запросами. Тексты запросов лежат в тех же модулях — ищите конструкции вида Запрос.Текст = "ВЫБРАТЬ...". Чтобы понять, какие движения делает документ, откройте его свойства в конфигураторе: закладка «Движения» показывает список регистров, а код формирования записей — в обработке проведения и общих модулях.
Дополнительный практический способ — посмотреть фактический результат: в режиме предприятия откройте проведённый документ и через «Ещё → Движения документа» (в типовых конфигурациях) посмотрите записи в регистрах. Сопоставив состав регистров с кодом проведения, вы быстро локализуете процедуры формирования каждого набора записей.
Для отчётов на СКД реализация лежит в схеме компоновки данных: в конфигураторе откройте отчёт, затем «Основная схема компоновки данных» — там запросы, ресурсы и настройки. Встроенный язык в таких отчётах обычно минимален, вся логика — в запросе схемы.
Ограничения для типовых конфигураций и альтернативы без конфигуратора
Типовая конфигурация может быть закрыта от изменений (на полной поддержке) — это не мешает смотреть код, но мешает его менять. Однако встречаются поставки с закрытыми модулями: такие модули отображаются как «текст модуля недоступен», и посмотреть их реализацию штатными средствами нельзя. Это легальное ограничение поставщика.
Если у вас нет доступа к конфигуратору, остаются косвенные способы. Журнал регистрации («Администрирование → Обслуживание → Журнал регистрации» в типовых) покажет, какие действия и с какими данными выполнялись. Функциональность подсистем и настройки учётной политики объясняют поведение без чтения кода. Движения документов и стандартные отчёты по регистрам показывают результат работы механизма.
Для анализа чужих внешних обработок и отчётов (файлы .epf/.erf) достаточно открыть их в конфигураторе через «Файл → Открыть» — код и макеты будут доступны так же, как у объектов конфигурации.
Как выбрать способ поиска
Частые ошибки при поиске реализации
Первая ошибка — искать логику только в модуле формы. Форма содержит интерфейсную часть; прикладная логика в типовых конфигурациях почти всегда вынесена в общие модули и модули менеджеров. Если в форме пусто — смотрите, какие общие модули она вызывает.
Вторая ошибка — изучать основную конфигурацию, когда база работает на расширениях. Если механизм переопределён расширением, код в основной конфигурации может вообще не выполняться. Проверьте список подключённых расширений («Конфигурация → Расширения конфигурации») и ищите реализацию там.
Третья ошибка — игнорировать подписки на события. Проведение документа может запускать обработчики подписок (например, ПриЗаписи, ОбработкаПроведения через подписку), которые лежат в общих модулях и не видны из модуля документа. Список подписок смотрите в ветке «Общие → Подписки на события», фильтруя по типу источника.
Как проверить, что вы нашли нужную реализацию
Признак того, что вы нашли правильное место, — воспроизводимость: точка останова в найденной процедуре срабатывает именно при нужном действии пользователя, а значения переменных в табло соответствуют данным документа. Если точка не срабатывает, логика выполняется в другом месте — возвращайтесь к замеру производительности.
Дополнительная проверка — трассировка вверх и вниз: через «Поиск вызовов» (контекстное меню на имени процедуры) посмотрите, кто вызывает найденную процедуру и что вызывает она. Полная цепочка от команды интерфейса до записи в регистр подтверждает, что реализация понята целиком.
Как проверить результат
Срабатывает при нужном действии, переменные содержат данные документа
Не срабатывает — логика в другом месте или в расширении
Прослеживается путь от команды формы до записи в регистр
Есть разрывы — ищите подписки на события и вызовы через Выполнить/ОбщегоНазначения
Найденная процедура есть в списке вызванных
Процедуры нет в замере — она не участвует в сценарии
FAQ
Можно ли посмотреть код 1С без конфигуратора?
Штатно — нет, программный код открывается только в конфигураторе. Без него доступны косвенные данные: журнал регистрации, движения документов, настройки функциональности. Для чтения кода нужен пользователь с правами на конфигурирование.
Почему модуль открывается пустым или с надписью о недоступности?
Модуль поставляется закрытым — поставщик скрыл исходный текст. Это встречается в некоторых отраслевых решениях и защищённых подсистемах. Посмотреть такой код штатными средствами нельзя; ориентируйтесь на документацию поставщика.
Как найти, где формируется печатная форма документа?
Найдите макет печатной формы в ветке «Макеты» документа или в общих макетах, затем глобальным поиском по имени макета найдите процедуру, которая его заполняет. В типовых конфигурациях печать часто вынесена в модуль менеджера документа и общие модули подсистемы печати.
Что делать, если механизм работает в фоновом задании?
Найдите регламентное задание в ветке «Общие → Регламентные задания» — там указан метод (процедура общего модуля), который выполняется. Для отладки подключитесь к сеансу фонового задания через диалог «Отладка → Подключение».
Как понять, переопределён ли механизм расширением?
Откройте «Конфигурация → Расширения конфигурации» и посмотрите список активных расширений. Внутри расширения заимствованные объекты помечены, а изменённые процедуры имеют аннотации &Вместо, &Перед, &После — они показывают, какой код выполняется вместо типового.
Что важно запомнить
Реализацию в 1С ищут в конфигураторе: модули объекта, общие модули, глобальный поиск и отладка с замером производительности. Проверяйте расширения и подписки на события — типовой код может не выполняться. Без конфигуратора доступны только косвенные данные: журнал регистрации, движения документов и настройки.