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

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

Как посмотреть код программы в 1С

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

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

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

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

Что понадобится перед началом работы

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

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

Третий момент — определите, что именно вы хотите смотреть: типовую конфигурацию (например, «Управление торговлей» или «Бухгалтерию»), доработанную конфигурацию, расширение или внешнюю обработку (.epf) или отчёт (.erf). Способы открытия немного различаются, и дальше каждый вариант разобран отдельно.

Как открыть конфигуратор и найти нужный объект

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

Откройте дерево конфигурации: меню «Конфигурация → Открыть конфигурацию» (или сочетание Ctrl+Shift+O в зависимости от версии платформы). Появится иерархическое дерево: «Общие», «Константы», «Справочники», «Документы», «Регистры», «Отчёты», «Обработки» и другие ветки. Код распределён по модулям этих объектов.

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

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

Где какой код лежит: карта модулей конфигурации

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

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

Тип модуляГде находитсяЧто обычно содержит
Модуль объектаОбъект → правой кнопкой → «Открыть модуль объекта»Проведение, запись, заполнение
Модуль формыФорма объекта → «Открыть модуль»Реакции на кнопки, открытие, ввод данных
Модуль менеджераОбъект → «Открыть модуль менеджера»Печать, подбор, создание на основании
Общий модульВетка «Общие → Общие модули»Общая прикладная логика
Модуль командыКоманда объекта → модуль командыДействие при нажатии команды

Как посмотреть код формы и обработчики событий

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

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

Полезный приём — список процедур и функций модуля: в редакторе модуля нажмите Ctrl+Alt+P (или используйте выпадающий список над текстом, в зависимости от версии платформы). Появится перечень всех процедур и функций текущего модуля с возможностью быстрого перехода. Это заметно ускоряет навигацию в больших модулях типовых конфигураций, где тысячи строк кода.

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

Как искать код по всей конфигурации

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

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

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

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

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

Знаете текст ошибки или сообщенияГлобальный поиск Ctrl+Shift+F по фрагменту текста
Знаете имя процедуры, но не место её объявленияПоставьте курсор на вызов и нажмите F12
Нужно понять, где используется справочник или документПравой кнопкой на объекте — «Поиск ссылок»
Нужно найти все места изменения реквизитаГлобальный поиск по имени реквизита с включённым поиском в модулях

Как открыть код внешней обработки или отчёта

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

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

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

Выгрузка кода в файлы и просмотр без конфигуратора

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

Файлы .bsl — обычные текстовые файлы, их можно открыть в любом редакторе: блокноте, VS Code, Notepad++. Для VS Code существуют расширения с подсветкой синтаксиса языка 1С, что делает чтение кода комфортнее. Поиск по выгруженным файлам работает стандартными средствами ОС или редактора — это удобно для массового анализа.

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

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

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

Модуль открылся в редакторе
Норма

Виден текст с процедурами, функциями и подсветкой синтаксиса

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

Появился запрос пароля — модуль закрыт поставщиком

Глобальный поиск нашёл совпадения
Норма

В окне результатов указаны объект, модуль и строка

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

Поиск пуст — проверьте, включён ли поиск по модулям и корректен ли фрагмент

Выгрузка модулей в файлы
Норма

В указанном каталоге появилась структура папок с файлами .bsl

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

Каталог пуст — проверьте права на запись и путь выгрузки

Частые ошибки и ограничения при просмотре кода

Самая распространённая проблема — пользователь открывает модуль формы, а искомая логика находится в модуле объекта или общем модуле. Признак: в модуле формы только короткие обработчики-прокладки. Решение — переходить по вызовам через F12, пока не дойдёте до содержательного кода.

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

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

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

FAQ: частые вопросы о просмотре кода в 1С

Можно ли посмотреть код без прав администратора?

Да, если у пользователя есть право на запуск конфигуратора и доступ к конфигурации. Полные административные права не обязательны для чтения кода, но на практике право «Конфигуратор» обычно выдают вместе с административными. Если кнопка «Конфигуратор» в окне запуска недоступна — попросите администратора выдать соответствующее право.

Почему модуль запрашивает пароль при открытии?

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

Как посмотреть код запроса, который формирует отчёт?

Откройте отчёт в дереве конфигурации, перейдите в «Основная схема компоновки данных» — текст запроса находится на вкладке «Наборы данных». Для отчётов, построенных программно, текст запроса ищите в модуле объекта отчёта или в общих модулях через глобальный поиск по ключевым словам «ВЫБРАТЬ» и именам таблиц.

Чем отличается просмотр кода в обычном и управляемом приложении?

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

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

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

Можно ли посмотреть код конфигурации без установленной платформы?

Нет, для чтения кода из базы или файла конфигурации (.cf) нужна платформа 1С. Исключение — модули, уже выгруженные в текстовые файлы .bsl: их можно читать любым редактором. Поэтому при передаче конфигурации на анализ часто просят именно выгрузку модулей в файлы.

Итог

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

Код в 1С открывается через конфигуратор: дерево конфигурации → объект → модуль. Логика распределена между модулями объекта, формы, менеджера и общими модулями — ищите через F12 и глобальный поиск Ctrl+Shift+F. Внешние обработки открывайте через «Файл → Открыть», проверяйте расширения конфигурации, а перед любыми изменениями делайте резервную копию базы.