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

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

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

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

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

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

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

Что нужно перед началом: права и режим запуска

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

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

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

Как открыть конфигурацию и найти нужный модуль

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

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

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

Быстрый поиск нужного места в коде

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

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

Просмотр кода типовой конфигурации

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

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

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

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

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

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

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

Порядок просмотра кода обработки
  1. 1
    Запустите конфигуратор на тестовой или пустой базе
  2. 2
    Откройте файл через Файл → Открыть
  3. 3
    Изучите модуль объекта и модуль формы через контекстное меню
  4. 4
    Проверьте обращения к файловой системе и внешним ресурсам
  5. 5
    Только после проверки запускайте обработку — сначала на копии базы

Просмотр кода через отладчик в режиме предприятия

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

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

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

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

Что делать, если код закрыт или недоступен

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

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

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

Типичные ошибки
01
Поиск кода в файлах базы: код хранится внутри конфигурации, а не в отдельных текстовых файлах — открывать 1Cv8.1CD блокнотом бессмысленно
02
Попытка открыть обработку двойным щелчком из проводника: .epf-файлы открываются только из конфигуратора или режима предприятия
03
Редактирование кода в рабочей базе без копии: одна синтаксическая ошибка при обновлении конфигурации может остановить работу всех пользователей
04
Игнорирование модуля формы: логика кнопок и полей находится там, а не в модуле объекта

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

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

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

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

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

Модуль открылся и содержит текст процедур и функций
Норма

Код читается, есть комментарии и структура

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

Модуль пустой или с пометкой о защите — исходный текст недоступен

Соответствие кода поведению программы
Норма

Найденный обработчик совпадает с действием в интерфейсе

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

Код найден, но при отладке не срабатывает — смотрите другую версию конфигурации или обработки

Статус конфигурации
Норма

Основная конфигурация и конфигурация базы данных совпадают

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

Есть необновлённые изменения — код в конфигураторе отличается от рабочего

Частые вопросы

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

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

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

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

Как найти код, который выдаёт конкретную ошибку?

Включите в конфигураторе «Отладка → Остановка по ошибке», запустите отладку и воспроизведите ошибку. Платформа остановится на проблемной строке и покажет место в коде. Альтернатива — глобальный поиск по тексту сообщения об ошибке (Ctrl+Shift+F).

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

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

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

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

Как посмотреть код обработки, защищённой паролем?

Легального штатного способа нет — пароль установлен автором именно для защиты кода. Запросите исходники у разработчика обработки или замените её аналогом с открытым кодом.

Итог

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

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