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

· 10 мин

Содержание

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

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

Как открыть Конфигуратор и какие права для этого нужны

Конфигуратор запускается из того же окна, что и обычная работа.

  1. В списке баз выделите нужную информационную базу.
  2. Нажмите кнопку «Конфигуратор» справа (не «1С:Предприятие»).
  3. Введите пользователя и пароль.
  4. В открывшемся окне выберите Конфигурация → Открыть конфигурацию. Слева появится дерево объектов.

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

Кто может войти

  • 🔑 Пользователю нужна роль с правом «Администрирование». В типовых конфигурациях это роль «Полные права» или «Администратор системы».
  • 👤 Если список пользователей в базе пуст, Конфигуратор открывается без пароля.
  • 🚫 Рядовой бухгалтер с обычным набором ролей при попытке входа получит отказ по правам.

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

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

Дерево метаданных: где лежит код объектов и форм

Программный код в 1С 8.3 хранится в модулях. Модуль привязан к конкретному месту дерева, и от этого зависит, когда он выполняется.

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

Пример: где искать проведение документа

Допустим, нужно понять, как «Поступление (акты, накладные, УПД)» формирует проводки в БП 3.0.

  1. Раскройте ветку Документы.
  2. Найдите документ «ПоступлениеТоваровУслуг». В дереве показываются имена объектов, а не синонимы, поэтому ищите по имени без пробелов.
  3. Правый клик → «Открыть модуль объекта».
  4. Найдите процедуру ОбработкаПроведения.

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

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

Горячие клавиши и поиск по тексту модулей

Читать модуль сверху вниз долго: в типовых конфигурациях модули на тысячи строк. Эти сочетания экономят больше всего времени.

КлавишиДействие
Ctrl+FПоиск в текущем модуле
Ctrl+HПоиск и замена в текущем модуле
Ctrl+Shift+FГлобальный поиск по всей конфигурации
F12Перейти к определению процедуры или функции
Ctrl+GПерейти к строке по номеру
Ctrl+Alt+PСписок процедур и функций модуля
F9Поставить или снять точку останова
F5Начать отладку

Глобальный поиск

Ctrl+Shift+F (меню Правка → Глобальный поиск) ищет строку сразу во всех модулях, а при желании и в формах, макетах и свойствах объектов. Результаты выводятся списком внизу, двойной щелчок открывает модуль на нужной строке.

Практичные приёмы поиска:

  • 🔍 Ищите по тексту ошибки, которую видит пользователь. Сообщения в типовых конфигурациях пишутся в коде, и поиск по куску фразы выводит прямо на проверку.
  • 🔍 Ищите по заголовку кнопки или поля формы, если хотите понять, какой код за ней стоит.
  • 🔍 Ищите по имени процедуры со словом Процедура или Функция впереди, чтобы найти её объявление, а не вызовы.

Где используется объект

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

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

Отладчик: как увидеть код в момент выполнения

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

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

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

Что делать в точке останова

  • ▶️ F10 — выполнить строку и перейти к следующей.
  • ⤵️ F11 — зайти внутрь вызываемой процедуры.
  • ⤴️ Shift+F11 — выйти из текущей процедуры.
  • 🧮 Shift+F9 — окно «Вычислить выражение», где видно значение любой переменной.
  • 📚 Окно стека вызовов (Отладка → Стек вызовов) показывает, через какие процедуры пришли к текущей строке.

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

Клиент-серверная база

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

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

Не отлаживайте в рабочей базе действия, которые записывают данные: каждая остановка держит транзакцию и блокировки. Сделайте копию базы и воспроизводите ошибку на ней.

Закрытый код: поставка без исходников и защита

Иногда модуль открывается, а текста нет. У этого три причины, и только одна решается на вашей стороне.

Конфигурация на поддержке

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

Модули без исходного текста

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

Коммерческая защита

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

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

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

Внешние обработки, отчёты и расширения

Код может лежать не в самой конфигурации. Если в дереве ничего похожего нет, проверьте три места.

Внешняя обработка или отчёт в файле

Файлы .epf (обработка) и .erf (отчёт) открываются прямо в Конфигураторе.

  1. Выберите Файл → Открыть.
  2. Укажите файл обработки.
  3. В отдельном окне откроется её дерево: модуль объекта (правый клик по корню → «Открыть модуль объекта»), формы и макеты.

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

Обработка, подключённая в базу

В типовых конфигурациях дополнительные обработки хранятся внутри базы, в разделе Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки. Чтобы посмотреть их код:

  1. Откройте карточку нужной обработки в пользовательском режиме.
  2. Сохраните её в файл командой выгрузки (она находится в командной панели карточки, в меню «Ещё»).
  3. Откройте полученный файл в Конфигураторе, как описано выше.

Расширения конфигурации

Расширения (файлы .cfe) меняют поведение типовых объектов, не трогая их код. Если модуль документа выглядит правильно, а работает иначе, проверьте расширения: Конфигурация → Расширения конфигурации. Двойной щелчок по расширению открывает его собственное дерево. Заимствованные объекты там помечены, а их процедуры с аннотациями &Перед, &После или &Вместо выполняются вместе с типовым кодом или вместо него.

Где ещё может быть код, если в модуле объекта его нет
Выполнено: 0 / 6

Последний пункт часто упускают. Подписка на событие (Общие → Подписки на события) вызывает процедуру общего модуля при записи или проведении объекта. В модуле самого документа об этом ни слова.

Когда код не открывается: ошибки и их причины

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

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

Можно ли посмотреть код без Конфигуратора?
Да, если выгрузить конфигурацию в файлы: модули сохраняются как текст .bsl. Для выгрузки всё равно нужен один запуск Конфигуратора. Альтернатива для разработчиков — среда 1С:EDT, где код хранится в виде файлов проекта.
Сломаю ли я что-нибудь, если просто открою модуль?
Нет. Просмотр не меняет базу. Риск появляется, только если вы что-то исправили и сохранили, а затем обновили конфигурацию базы данных.
Как сравнить код двух релизов?
Откройте конфигурацию и выберите Конфигурация → Сравнить конфигурации. Можно сравнить основную конфигурацию с конфигурацией базы данных, поставщика или файлом .cf. В отчёте видны изменённые модули и строки.
Почему в дереве имена без пробелов, а в программе другие названия?
В дереве показываются имена объектов, по которым к ним обращается код. Пользователь видит синонимы. Синоним объекта можно посмотреть в его свойствах.
Можно ли смотреть код, пока бухгалтеры работают в базе?
Можно. Чтение модулей и даже отладка на копии не требуют монопольного режима. Монопольный доступ нужен для обновления структуры базы данных.