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

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

Где посмотреть код в 1С: все способы для разработчика и пользователя

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

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

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

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

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

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

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

Где лежит код документа, справочника или другого объекта

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

Модуль объекта

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

Модуль формы

Откройте ветку «Формы» внутри объекта, дважды щёлкните по нужной форме (например, «ФормаДокумента») — откроется конструктор формы. Перейдите на вкладку «Модуль» внизу окна или нажмите Ctrl+Alt+M. В модуле формы находится код, реагирующий на действия пользователя: нажатия кнопок, изменение полей, открытие формы (ПриСозданииНаСервере, ПриОткрытии).

Модуль менеджера

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

Как открыть модуль объекта
  1. 1
    Запустите базу в режиме конфигуратора
  2. 2
    Выполните Конфигурация → Открыть конфигурацию
  3. 3
    В дереве метаданных раскройте нужную ветку, например Документы
  4. 4
    Щёлкните правой кнопкой по объекту и выберите «Открыть модуль объекта»
  5. 5
    Найдите нужную процедуру через список процедур (Ctrl+Alt+P) или поиск по тексту (Ctrl+F)

Где находятся общие модули и код приложения

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

Код, который выполняется при запуске и завершении программы, находится в модуле управляемого приложения и модуле обычного приложения. Щёлкните правой кнопкой по корню дерева конфигурации (самая верхняя строка с названием конфигурации) и выберите «Открыть модуль управляемого приложения». Там обрабатываются события ПередНачаломРаботыСистемы, ПриНачалеРаботыСистемы и подобные.

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

Как найти нужный код через глобальный поиск

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

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

Для навигации внутри уже открытого модуля используйте список процедур и функций (Ctrl+Alt+P) — он показывает все методы модуля и позволяет быстро перейти к нужному. Поиск внутри одного модуля — обычный Ctrl+F.

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

Как посмотреть код через отладчик

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

Перед выполнением действия поставьте точку останова в предполагаемом месте кода (щелчок по полю слева от строки или F9). Выполните действие в режиме предприятия — выполнение остановится на точке, и вы увидите стек вызовов, значения переменных и сможете шагать по коду (F10 — шаг через, F11 — шаг внутрь).

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

Как посмотреть код внешней обработки, отчёта и расширения

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

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

Если конфигурация поставляется без исходного кода модуля (такое встречается у защищённых решений), вместо текста вы увидите сообщение о том, что модуль поставляется без исходных текстов. Обойти эту защиту штатными средствами нельзя — это осознанное ограничение поставщика.

Где искать код в зависимости от задачи

Модуль объекта

Логика проведения, записи, заполнения документа или справочника. Не подходит для кода, реагирующего на клики по форме

Модуль формы

Реакция на действия пользователя, видимость элементов, команды формы. Не содержит серверной логики проведения

Общие модули

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

Расширения

Доработки без изменения типовой конфигурации. Код виден только внутри самого расширения

Частые ошибки при поиске кода

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

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

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

Как проверить, что вы нашли нужный код

Текст сообщения или надписи
Норма

Строка из ошибки дословно найдена в модуле

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

Найден похожий, но другой текст — продолжайте поиск

Вызов процедуры
Норма

Через F12 переходите по цепочке вызовов до реальной логики

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

Процедура только передаёт управление дальше — вы ещё не в нужном месте

Реальное выполнение
Норма

Точка останова в найденном месте срабатывает при действии пользователя

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

Точка не срабатывает — код не выполняется, ищите другой обработчик

Ответы на частые вопросы

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

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

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

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

Как быстро найти, где формируется сообщение об ошибке?

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

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

Модуль объекта работает с данными на сервере: проведение, запись, проверки заполнения. Модуль формы отвечает за интерфейс: реакцию на нажатия, видимость элементов, открытие и закрытие формы. Одно и то же действие (например, проведение документа) может затрагивать оба модуля, но основная бизнес-логика обычно в модуле объекта.

Опасно ли просто смотреть код в рабочей базе?

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

Как посмотреть код, который выполняет регламентное задание?

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

Итог

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

Код 1С открывается через конфигуратор: дерево метаданных → правый клик по объекту → нужный модуль. Логика проведения — в модуле объекта, реакция на действия пользователя — в модуле формы, общая логика — в общих модулях и подписках на события. Быстрее всего искать код глобальным поиском (Ctrl+Shift+F) и проверять догадки отладчиком, а эксперименты безопаснее проводить на копии базы.