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

· 9 мин

Содержание

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

Сам код хранится не в отдельных файлах, а внутри базы. Поэтому «открыть код» в 1С 8.3 — это всегда работа с конфигурацией: основной, расширения или внешней обработки. Ниже по порядку: запуск, права, поиск нужной процедуры, отладка и ошибки, которые мешают зайти в модуль или сохранить правку.

Запуск Конфигуратора для файловой и серверной базы

Порядок для обеих разновидностей баз одинаковый:

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

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

Разница между типами базы — в том, откуда берутся данные:

Тип базыГде лежитЧто указано в настройках списка
ФайловаяПапка с файлом 1Cv8.1CDПуть к каталогу
Клиент-сервернаяКластер серверов 1С + СУБДИмя сервера и имя базы в кластере

Конфигуратор можно открыть и из командной строки. Это удобно, когда базу нужно открыть под конкретным пользователем без окна выбора:

:: файловая база
"C:\Program Files\1cv8\8.3.xx.xxxx\bin\1cv8.exe" DESIGNER /F "D:\Bases\Buh" /N "Администратор" /P "пароль"

:: серверная база
"C:\Program Files\1cv8\8.3.xx.xxxx\bin\1cv8.exe" DESIGNER /S "srv1c\buh" /N "Администратор" /P "пароль"

Вместо 8.3.xx.xxxx подставьте номер установленной платформы — он виден в названии папки внутри C:\Program Files\1cv8.

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

Права пользователя и режимы работы с конфигурацией

Кнопка Конфигуратор в окне запуска видна всем, но войти получится не у каждого. Нужна роль с правом «Администрирование». В типовых конфигурациях на БСП это роли «Полные права» и «Администратор системы».

Если в базе нет ни одного пользователя, Конфигуратор откроется без пароля. Как только в списке появился хотя бы один пользователь, вход идёт по учётной записи.

Где назначать права:

  • 👤 В пользовательском режиме — Администрирование → Настройки пользователей и прав → Пользователи, у пользователя включите профиль группы доступа «Администраторы».
  • 🛠 В Конфигураторе — Администрирование → Пользователи, вкладка «Прочие», флажок у роли «Полные права».

Дальше важно понять, в каком режиме открыт код. Типовая конфигурация стоит на поддержке поставщика, и по умолчанию её объекты закрыты для правки.

РежимЧто видно в деревеМожно ли менять код
На поддержке, изменения запрещеныЗамочки у объектовТолько чтение
Изменения разрешены, объект редактируется с сохранением поддержкиЗамочек с карандашомДа, обновления потом сравниваются
Объект снят с поддержкиБез значковДа, но обновлять его придётся вручную
Подключено хранилищеОбъекты не захваченыТолько после захвата в хранилище

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

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

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

Как найти нужный модуль в дереве метаданных

В дереве конфигурации код живёт в нескольких местах. Чтобы не искать вслепую, держите в голове эту карту:

  • 📦 Модуль объекта — логика одного документа или элемента справочника: проведение, проверки при записи. Правый щелчок по объекту → Открыть модуль объекта.
  • 🗂 Модуль менеджера — процедуры для всего вида объектов: печать, выборки. Правый щелчок → Открыть модуль менеджера.
  • 🪟 Модуль формы — реакция на кнопки и поля. Раскройте объект → «Формы» → откройте форму → вкладка Модуль внизу редактора.
  • 🔧 Общие модули — ветка Общие → Общие модули. Здесь большая часть кода типовых конфигураций.
  • 🚀 Модули приложения и сеанса — правый щелчок по корню дерева (имени конфигурации).

Поиск по имени объекта

Встаньте в дерево и начните печатать имя — курсор перескочит на совпадение. Для поиска по части имени используйте строку поиска над деревом.

Имя объекта удобно подсмотреть в пользовательском режиме. Откройте нужный список или документ, затем в адресной строке окна или в меню Все функции будет видно, к какому объекту метаданных он относится. Команда Все функции включается в Главное меню → Сервис → Параметры, флажок «Отображать команду “Все функции”».

Поиск по тексту во всех модулях

Правка → Глобальный поиск (Ctrl+Shift+F) ищет строку во всех модулях сразу. Так находят место, где выводится конкретное сообщение пользователю: скопируйте кусок текста ошибки и вставьте его в поиск.

Навигация внутри модуля

КлавишиЧто делает
Ctrl+FПоиск в текущем модуле
F12Перейти к определению процедуры или функции
Ctrl+Alt+PСписок процедур и функций модуля
Ctrl+GПерейти к строке по номеру

Справка по встроенному языку — Справка → Синтаксис-помощник. Там описан каждый метод и тип с примерами.

Отладчик: как выполнить код по шагам

Читать код полезно, но причину ошибки быстрее найти в отладчике. Он показывает, какая строка выполняется и какие значения у переменных в этот момент.

Порядок для файловой базы:

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

Управление на остановке:

КлавишаДействие
F10Следующая строка без захода в процедуры
F11Зайти внутрь вызываемой процедуры
Shift+F11Выйти из текущей процедуры
Shift+F9Вычислить выражение (значение переменной, таблицы)
F5Продолжить до следующей точки

Чтобы останавливаться на любой ошибке, включите Отладка → Остановка по ошибке. Отладчик встанет ровно на той строке, где возникло исключение, даже если код обёрнут в Попытка … Исключение.

Отладка серверной базы

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

Чтобы добавить ключ, службу агента придётся перезапустить. Все сеансы пользователей при этом оборвутся — делайте это вне рабочего времени и предупредите людей заранее. На рабочем сервере отладку после разбора лучше снова выключить.

Подключиться к уже запущенному клиенту можно через Отладка → Подключение: там видны все предметы отладки, доступные этому Конфигуратору.

Замер производительности

Если вопрос не «где ошибка», а «почему тормозит», используйте Отладка → Замер производительности. Запустите замер, выполните медленное действие и остановите замер. Получите список строк с количеством вызовов и долей времени — самые тяжёлые строки окажутся вверху.

Код внешней обработки и расширения конфигурации

Не весь код живёт в основной конфигурации. Часть доработок специально выносят наружу, чтобы не снимать типовую с поддержки.

Внешняя обработка или отчёт (.epf, .erf)

Открыть код внешней обработки :

  1. В Конфигураторе выберите Файл → Открыть и укажите файл .epf или .erf.
  2. Откроется окно обработки со своим деревом: реквизиты, формы, макеты.
  3. Модуль объекта — правый щелчок по корню дерева обработки → Открыть модуль объекта.
  4. После правки сохраните файл (Ctrl+S).

Для этого не нужна сама база — подойдёт любая, даже пустая. Но обработка, написанная под БП 3.0, при запуске в другой конфигурации упадёт на первом же обращении к отсутствующему объекту.

В пользовательском режиме внешнюю обработку запускают через Главное меню → Файл → Открыть. Это требует права на интерактивное открытие внешних обработок; в типовых конфигурациях на БСП при первом открытии ещё появится предупреждение защиты от опасных действий. Постоянное подключение — Администрирование → Печатные формы, отчёты и обработки → Дополнительные отчёты и обработки.

Расширение конфигурации (.cfe)

Расширения появились в платформе 8.3.6 и сейчас стали основным способом дорабатывать типовые без снятия с поддержки.

  • 📂 Открыть список: Конфигурация → Расширения конфигурации.
  • ✏️ Открыть код расширения: дважды щёлкните по расширению в списке — откроется его отдельное дерево.
  • 🔗 Перенести объект основной конфигурации в расширение: правый щелчок по объекту в основном дереве → Добавить в расширение.
  • 🎯 Изменить типовую процедуру: в модуле расширения откройте нужный метод через правый щелчок в основной конфигурации и выберите вариант аннотации — &Перед, &После, &Вместо или &ИзменениеИКонтроль.

Пример перехвата: дописать проверку перед записью документа, не трогая типовой модуль.

&Перед("ПередЗаписью")
Процедура Расш1_ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
	Если Не ЗначениеЗаполнено(Комментарий) Тогда
		Сообщить("Заполните комментарий перед записью.");
		Отказ = Истина;
	КонецЕсли;
КонецПроцедуры

После правки расширения выполните Конфигурация → Обновить конфигурацию базы данных (F7) — так изменения попадут в базу. Загрузку готового файла .cfe и обновление базы платформа делает отдельными шагами: просто загрузить файл недостаточно.

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

Почему код не открывается или правка не сохраняется

Большинство затруднений сводится к нескольким ситуациям. Подберите свою:

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

Ошибки, которые портят базу

  • ❌ Правка рабочей базы в разгар дня. Изменения кода на сервере применяются при обновлении конфигурации БД, и у работающих людей могут появиться ошибки. Отлаживайте на копии.
  • ❌ Снятие объекта с поддержки «чтобы не мешало». Код больше не обновляется автоматически, каждое обновление превращается в ручное сравнение.
  • ❌ Точки останова на рабочем сервере. Остановка по точке подвешивает сеанс пользователя, который вызвал этот код. Снимайте все точки командой Отладка → Список точек останова перед выходом.
  • ❌ Работа без хранилища вдвоём. Если два разработчика правят одну конфигурацию без хранилища, при сохранении побеждает последний — изменения первого пропадают.

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

Можно ли посмотреть код 1С без Конфигуратора?
Частично. Конфигурацию можно выгрузить в файлы XML (Конфигурация → Выгрузить конфигурацию в файлы) и читать модули в любом текстовом редакторе. Править и запускать код всё равно придётся через Конфигуратор или 1С:EDT.
Что такое 1С:EDT и чем она отличается от Конфигуратора?
Это отдельная среда разработки на базе Eclipse. Она хранит конфигурацию как набор файлов, удобно работает с Git и подсказывает ошибки при наборе. Для единичной правки в типовой проще Конфигуратор.
Как узнать, какой модуль вызывается при нажатии кнопки?
Откройте форму в Конфигураторе, выделите кнопку и посмотрите её команду, а у команды — свойство «Действие». Щелчок по лупе рядом с обработчиком переводит прямо в процедуру модуля формы.
Как сравнить свою доработку с типовой конфигурацией?
Конфигурация → Сравнить конфигурации, затем выберите основную конфигурацию и конфигурацию поставщика. Отчёт покажет все изменённые модули и строки.