Где в 1С:Предприятии 8.3 лежит программный код и как до него добраться

· 9 мин

Содержание

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

Частое заблуждение: «код хранится в базе, значит, его можно выгрузить как файл и прочитать в Блокноте». Файл .cf или .dt — это контейнер, а не текст. Чтобы получить исходные тексты в читаемом виде, конфигурацию выгружают в файлы XML и .bsl отдельной командой. Ниже — все рабочие способы: Конфигуратор, выгрузка исходников, отладчик, внешние обработки и расширения.

Что нужно, чтобы открыть код 1С

Код открывается только при трёх условиях:

  • 🔑 Права. Пользователь должен иметь роль с правом администрирования. В типовых конфигурациях это обычно профиль или роль «Полные права» / «Администратор». Без неё кнопка Конфигуратор в окне запуска есть, но вход отклоняется.
  • 🖥️ Толстый клиент платформы. Конфигуратор входит в обычную установку платформы 1С:Предприятие 8.3. Через веб-клиент и мобильную версию код не открыть.
  • 📂 Исходные тексты в поставке. Часть модулей разработчик может поставить без исходного текста. Тогда модуль существует, работает, но прочитать его нельзя.

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

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

Как открыть код в 1С через Конфигуратор

Шаг 1. Запуск и открытие дерева

  1. В окне запуска 1С выделите базу и нажмите Конфигуратор.
  2. Введите имя пользователя с административными правами.
  3. В меню выберите Конфигурация → Открыть конфигурацию. Слева появится дерево метаданных.

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

Шаг 2. Где какой модуль

Код в 1С разложен по модулям, и у каждого объекта их может быть несколько. Шпаргалка:

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

Логика проведения документа почти всегда в модуле объекта, в процедуре ОбработкаПроведения. Поведение кнопок — в модуле формы.

Шаг 3. Навигация по тексту

В открытом модуле работают привычные приёмы:

  • 🔎 Ctrl+F — поиск в текущем модуле.
  • 🌐 Правка → Глобальный поиск (Ctrl+Shift+F) — поиск слова по всем модулям сразу. Удобно, если знаете текст сообщения, которое видит пользователь.
  • ➡️ F12 на имени процедуры — переход к её определению, даже если она в другом общем модуле.
  • 📋 Список процедур модуля открывается кнопкой на панели редактора — удобно для модулей на тысячи строк.

Над деревом метаданных есть строка поиска. Введите часть имени объекта, например РеализацияТоваров, и дерево отфильтруется.

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

Выгрузка конфигурации в исходные тексты

Когда код нужно читать вне Конфигуратора — сравнить версии в Git, поискать по всей конфигурации через внешний редактор, отдать на проверку — конфигурацию выгружают в файлы.

Из меню Конфигуратора

  1. Откройте конфигурацию, как описано выше.
  2. Выберите Конфигурация → Выгрузить конфигурацию в файлы.
  3. Укажите пустую папку и запустите выгрузку.

Получится иерархия папок по видам объектов: Documents, Catalogs, CommonModules и так далее. Описания объектов лежат в XML, а модули — в текстовых файлах с расширением .bsl внутри подпапок Ext. Например, модуль объекта документа — это файл ObjectModule.bsl, модуль менеджера — ManagerModule.bsl. Их можно открыть любым редактором в кодировке UTF-8.

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

Пакетным запуском

Выгрузку удобно ставить в скрипт, чтобы снимать исходники по расписанию:

"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" DESIGNER /F "D:\Bases\Buh" /N "Администратор" /P "пароль" /DumpConfigToFiles "D:\src\buh" /Out "D:\src\dump.log"

Путь к 1cv8.exe замените на свою версию платформы, для серверной базы вместо /F укажите /S "сервер\база". Результат и ошибки запишутся в файл из параметра /Out.

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

Через 1С:EDT

Среда 1С:Enterprise Development Tools работает с исходниками в файлах напрямую. В ней создают проект импортом из информационной базы или из выгруженной папки. Это вариант для тех, кто разрабатывает постоянно: подсветка, переход по ссылкам и контроль версий там удобнее.

Как открыть код через отладчик и увидеть его в работе

Прочитать модуль мало, если непонятно, какая строка срабатывает. Отладчик показывает код в момент выполнения: какая процедура вызвана и какие значения у переменных.

Запуск отладки

  1. В Конфигураторе откройте нужный модуль и поставьте точку останова на строке — клавиша F9.
  2. Нажмите F5 или выберите Отладка → Начать отладку и вид клиента.
  3. В открывшемся окне 1С:Предприятия повторите действие пользователя. Выполнение остановится на точке, а Конфигуратор покажет строку кода.

Клавиши отладчика:

КлавишаДействие
F10Шаг через вызов
F11Шаг внутрь процедуры
Shift+F11Выйти из текущей процедуры
F5Продолжить до следующей точки
Shift+F9Вычислить выражение

Подключение к уже работающему сеансу

Если пользователь уже открыл программу, используйте Отладка → Подключение. В окне видны доступные предметы отладки, к нужному сеансу можно подключиться.

В клиент-серверном варианте серверная отладка работает, только если агент сервера 1С запущен с ключом -debug. Ключ добавляют в параметры запуска службы агента.

Чтобы ключ вступил в силу, службу агента сервера 1С перезапускают. При этом обрываются сеансы всех пользователей. Делайте это вне рабочего времени и предупредите людей заранее. На рабочем сервере отладку обычно не держат включённой постоянно.

Как найти нужную строку без поиска по всей базе

Самый быстрый приём практика — окно ошибки. Если действие падает с сообщением, нажмите в нём Подробно. В тексте будет стек вызовов вида {Документ.РеализацияТоваровУслуг.МодульОбъекта(245)}: имя объекта, модуль и номер строки. Откройте этот модуль в Конфигураторе и перейдите на строку через Ctrl+G.

Второй приём — в меню Отладка включите остановку по ошибке. Тогда отладчик сам остановится на строке, где возникло исключение.

Код внешних обработок и отчётов

Внешняя обработка (.epf) и внешний отчёт (.erf) хранятся вне базы, отдельным файлом. Их код читают так:

  1. Запустите Конфигуратор любой базы. Подойдёт даже пустая учебная.
  2. Выберите Файл → Открыть и укажите файл .epf или .erf.
  3. Откроется отдельное дерево обработки. Правой кнопкой по корню — Открыть модуль объекта, код форм — во вкладке Модуль каждой формы.

В пользовательском режиме через Файл → Открыть обработка только запускается, кода там не видно.

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

"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" DESIGNER /F "D:\Bases\Empty" /DumpExternalDataProcessorOrReportToFiles "D:\src\obr" "D:\obr\Zagruzka.epf"

Зачем читать код обработки до запуска: внешние обработки из интернета нередко меняют данные без вопросов. Пять минут чтения модуля объекта покажут, пишет ли она что-то в базу и что именно.

Обработку из непроверенного источника не запускайте в рабочей базе. Сначала прочитайте код, затем проверьте на копии.

Работа с кодом расширений конфигурации

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

Где открыть

  1. В Конфигураторе выберите Конфигурация → Расширения конфигурации.
  2. В открывшемся списке выделите расширение.
  3. В меню Конфигурация этого окна откройте конфигурацию расширения. Появится отдельное дерево — модули в нём открываются так же, как в основной конфигурации.

В пользовательском режиме список расширений в Бухгалтерии предприятия есть в разделе Администрирование → Печатные формы, отчеты и обработки → Расширения. Там расширение можно отключить или сохранить в файл .cfe, но код посмотреть нельзя.

Как читать код расширения

Процедуры расширения помечены аннотациями. По ним понятно, как расширение вмешивается в типовую логику:

  • &Перед("ИмяПроцедуры") — код выполняется до типовой процедуры.
  • &После("ИмяПроцедуры") — после неё.
  • &Вместо("ИмяПроцедуры") — полностью подменяет типовую.
  • &ИзменениеИКонтроль("ИмяПроцедуры") — копия типовой процедуры с правками; добавленные строки обёрнуты в #Вставка … #КонецВставки, удалённые — в #Удаление … #КонецУдаления. Аннотация доступна в новых версиях платформы.

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

Почему не открывается код 1С

Диагностика: выберите симптом

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

Можно ли посмотреть код 1С без Конфигуратора?
Да, если конфигурацию заранее выгрузили в файлы. Модули — это текстовые файлы .bsl, их открывает любой редактор. Сам файл .cf или .dt текстом не читается.
Мешает ли открытый Конфигуратор работе пользователей?
Нет, пока вы только читаете код и не применяете изменения к базе. Обновление конфигурации базы данных уже затрагивает работу пользователей.
Как узнать, в каком модуле код конкретной кнопки?
Откройте в Конфигураторе форму, выделите кнопку и посмотрите её команду, а у команды — свойство с обработчиком. Двойной клик по обработчику открывает процедуру в модуле формы.
На каком языке написан код 1С?
На встроенном языке 1С:Предприятия. В нём есть русский и английский вариант ключевых слов: Если/If, Процедура/Procedure. В типовых конфигурациях используют русский.
Можно ли открыть код в файловой базе на другом компьютере?
Да, если у вас есть доступ к папке базы и установлена платформа. Добавьте базу в список запуска, указав путь к каталогу с файлом 1Cv8.1CD, и войдите в Конфигуратор.