Где в 1С:Предприятии 8.3 лежит программный код и как до него добраться
Содержание
Код в 1С открывают в Конфигураторе: запустите базу в режиме Конфигуратор, выберите Конфигурация → Открыть конфигурацию, найдите объект в дереве и через контекстное меню откройте его модуль. Из пользовательского режима 1С:Предприятие исходный код не открыть никак, сколько ни ищи по меню.
Частое заблуждение: «код хранится в базе, значит, его можно выгрузить как файл и прочитать в Блокноте». Файл .cf или .dt — это контейнер, а не текст. Чтобы получить исходные тексты в читаемом виде, конфигурацию выгружают в файлы XML и .bsl отдельной командой. Ниже — все рабочие способы: Конфигуратор, выгрузка исходников, отладчик, внешние обработки и расширения.
Что нужно, чтобы открыть код 1С
Код открывается только при трёх условиях:
- 🔑 Права. Пользователь должен иметь роль с правом администрирования. В типовых конфигурациях это обычно профиль или роль «Полные права» / «Администратор». Без неё кнопка
Конфигураторв окне запуска есть, но вход отклоняется. - 🖥️ Толстый клиент платформы. Конфигуратор входит в обычную установку платформы 1С:Предприятие 8.3. Через веб-клиент и мобильную версию код не открыть.
- 📂 Исходные тексты в поставке. Часть модулей разработчик может поставить без исходного текста. Тогда модуль существует, работает, но прочитать его нельзя.
Сама работа с кодом на чтение не требует монопольного доступа. Можно открыть Конфигуратор , пока бухгалтеры работают в базе, и спокойно читать модули. Монопольный режим понадобится позже, если решите сохранить изменения и обновить конфигурацию базы данных.
Если базу ведёт программист или обслуживающая фирма, сначала уточните, не подключена ли конфигурация к хранилищу. В хранилище читать код можно свободно, а править — только после захвата объекта.
Как открыть код в 1С через Конфигуратор
Шаг 1. Запуск и открытие дерева
- В окне запуска 1С выделите базу и нажмите
Конфигуратор. - Введите имя пользователя с административными правами.
- В меню выберите
Конфигурация → Открыть конфигурацию. Слева появится дерево метаданных.
Есть второй пункт — Конфигурация → Конфигурация базы данных → Открыть конфигурацию БД. Он показывает ту версию, по которой реально работают пользователи, и открывается только на чтение. Если основная конфигурация уже изменена, но не применена к базе, код в двух окнах будет различаться.
Шаг 2. Где какой модуль
Код в 1С разложен по модулям, и у каждого объекта их может быть несколько. Шпаргалка:
| Что ищете | Где открыть |
|---|---|
| Код при запуске программы | Правой кнопкой по корню дерева → Открыть модуль управляемого приложения |
| Код при старте сеанса | Корень дерева → Открыть модуль сеанса |
| Общие процедуры | Ветка Общие → Общие модули |
| Проведение, запись документа | Документ → правой кнопкой → Открыть модуль объекта |
| Функции списка, печать | Объект → Открыть модуль менеджера |
| Кнопки и поля формы | Откройте форму, внизу редактора вкладка Модуль |
| Код команды | Ветка Команды объекта → модуль команды |
Логика проведения документа почти всегда в модуле объекта, в процедуре ОбработкаПроведения. Поведение кнопок — в модуле формы.
Шаг 3. Навигация по тексту
В открытом модуле работают привычные приёмы:
- 🔎
Ctrl+F— поиск в текущем модуле. - 🌐
Правка → Глобальный поиск(Ctrl+Shift+F) — поиск слова по всем модулям сразу. Удобно, если знаете текст сообщения, которое видит пользователь. - ➡️
F12на имени процедуры — переход к её определению, даже если она в другом общем модуле. - 📋 Список процедур модуля открывается кнопкой на панели редактора — удобно для модулей на тысячи строк.
Над деревом метаданных есть строка поиска. Введите часть имени объекта, например РеализацияТоваров, и дерево отфильтруется.
В базе на поддержке поставщика без включённой возможности изменения модули открываются только на чтение. Это нормально: читать код можно, а правку включают через Конфигурация → Поддержка → Настройка поддержки. Не включайте изменение типовой ради любопытства — это усложнит каждое следующее обновление.
Выгрузка конфигурации в исходные тексты
Когда код нужно читать вне Конфигуратора — сравнить версии в Git, поискать по всей конфигурации через внешний редактор, отдать на проверку — конфигурацию выгружают в файлы.
Из меню Конфигуратора
- Откройте конфигурацию, как описано выше.
- Выберите
Конфигурация → Выгрузить конфигурацию в файлы. - Укажите пустую папку и запустите выгрузку.
Получится иерархия папок по видам объектов: 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 работает с исходниками в файлах напрямую. В ней создают проект импортом из информационной базы или из выгруженной папки. Это вариант для тех, кто разрабатывает постоянно: подсветка, переход по ссылкам и контроль версий там удобнее.
Как открыть код через отладчик и увидеть его в работе
Прочитать модуль мало, если непонятно, какая строка срабатывает. Отладчик показывает код в момент выполнения: какая процедура вызвана и какие значения у переменных.
Запуск отладки
- В Конфигураторе откройте нужный модуль и поставьте точку останова на строке — клавиша
F9. - Нажмите
F5или выберитеОтладка → Начать отладкуи вид клиента. - В открывшемся окне 1С:Предприятия повторите действие пользователя. Выполнение остановится на точке, а Конфигуратор покажет строку кода.
Клавиши отладчика:
| Клавиша | Действие |
|---|---|
F10 | Шаг через вызов |
F11 | Шаг внутрь процедуры |
Shift+F11 | Выйти из текущей процедуры |
F5 | Продолжить до следующей точки |
Shift+F9 | Вычислить выражение |
Подключение к уже работающему сеансу
Если пользователь уже открыл программу, используйте Отладка → Подключение. В окне видны доступные предметы отладки, к нужному сеансу можно подключиться.
В клиент-серверном варианте серверная отладка работает, только если агент сервера 1С запущен с ключом -debug. Ключ добавляют в параметры запуска службы агента.
Чтобы ключ вступил в силу, службу агента сервера 1С перезапускают. При этом обрываются сеансы всех пользователей. Делайте это вне рабочего времени и предупредите людей заранее. На рабочем сервере отладку обычно не держат включённой постоянно.
Как найти нужную строку без поиска по всей базе
Самый быстрый приём практика — окно ошибки. Если действие падает с сообщением, нажмите в нём Подробно. В тексте будет стек вызовов вида {Документ.РеализацияТоваровУслуг.МодульОбъекта(245)}: имя объекта, модуль и номер строки. Откройте этот модуль в Конфигураторе и перейдите на строку через Ctrl+G.
Второй приём — в меню Отладка включите остановку по ошибке. Тогда отладчик сам остановится на строке, где возникло исключение.
Код внешних обработок и отчётов
Внешняя обработка (.epf) и внешний отчёт (.erf) хранятся вне базы, отдельным файлом. Их код читают так:
- Запустите Конфигуратор любой базы. Подойдёт даже пустая учебная.
- Выберите
Файл → Открытьи укажите файл.epfили.erf. - Откроется отдельное дерево обработки. Правой кнопкой по корню —
Открыть модуль объекта, код форм — во вкладкеМодулькаждой формы.
В пользовательском режиме через Файл → Открыть обработка только запускается, кода там не видно.
Для выгрузки обработки в файлы, как и конфигурации, есть пакетная команда:
"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 доработки всё чаще делают не в основной конфигурации, а в расширениях. Отсюда частая ситуация: программист изменил поведение документа, а в модуле объекта основной конфигурации ничего нового нет. Код лежит в расширении.
Где открыть
- В Конфигураторе выберите
Конфигурация → Расширения конфигурации. - В открывшемся списке выделите расширение.
- В меню
Конфигурацияэтого окна откройте конфигурацию расширения. Появится отдельное дерево — модули в нём открываются так же, как в основной конфигурации.
В пользовательском режиме список расширений в Бухгалтерии предприятия есть в разделе Администрирование → Печатные формы, отчеты и обработки → Расширения. Там расширение можно отключить или сохранить в файл .cfe, но код посмотреть нельзя.
Как читать код расширения
Процедуры расширения помечены аннотациями. По ним понятно, как расширение вмешивается в типовую логику:
&Перед("ИмяПроцедуры")— код выполняется до типовой процедуры.&После("ИмяПроцедуры")— после неё.&Вместо("ИмяПроцедуры")— полностью подменяет типовую.&ИзменениеИКонтроль("ИмяПроцедуры")— копия типовой процедуры с правками; добавленные строки обёрнуты в#Вставка … #КонецВставки, удалённые — в#Удаление … #КонецУдаления. Аннотация доступна в новых версиях платформы.
Если документ ведёт себя странно, а основной код чистый, проверьте, нет ли в расширениях процедуры с аннотацией на тот же обработчик. Расширений в базе может быть несколько, и каждое стоит открыть.
Почему не открывается код 1С
Администрирование → Настройки пользователей и прав. Пароль администратора забыт — это отдельная задача, её решают с тем, кто обслуживает базу.Конфигурация → Обновить конфигурацию базы данных (F7). Для этого может понадобиться монопольный доступ, а пользователи перед этим должны выйти. Ещё одна причина — то же поведение переопределено в расширении.Частые вопросы
Можно ли посмотреть код 1С без Конфигуратора?
.bsl, их открывает любой редактор. Сам файл .cf или .dt текстом не читается.Мешает ли открытый Конфигуратор работе пользователей?
Как узнать, в каком модуле код конкретной кнопки?
На каком языке написан код 1С?
Если/If, Процедура/Procedure. В типовых конфигурациях используют русский.Можно ли открыть код в файловой базе на другом компьютере?
1Cv8.1CD, и войдите в Конфигуратор.