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