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