Где в 1С 8.3 лежит программный код и как до него добраться
Содержание
Код 1С открывается в режиме Конфигуратор: в окне запуска выберите базу, нажмите Конфигуратор, затем Конфигурация → Открыть конфигурацию. Слева появится дерево объектов, а модуль любого справочника, документа или формы открывается двойным щелчком или через контекстное меню объекта.
Сам код хранится не в отдельных файлах, а внутри базы. Поэтому «открыть код» в 1С 8.3 — это всегда работа с конфигурацией: основной, расширения или внешней обработки. Ниже по порядку: запуск, права, поиск нужной процедуры, отладка и ошибки, которые мешают зайти в модуль или сохранить правку.
Запуск Конфигуратора для файловой и серверной базы
Порядок для обеих разновидностей баз одинаковый:
- Запустите ярлык «1С:Предприятие» — откроется список информационных баз.
- Выделите нужную базу.
- Нажмите кнопку
Конфигураторсправа. - Введите имя пользователя и пароль.
- В открывшемся окне выполните
Конфигурация → Открыть конфигурацию.
Пока конфигурация не открыта, меню почти пустое и дерева объектов нет. Это частая точка путаницы: человек зашёл в Конфигуратор, но «кода не видит».
Разница между типами базы — в том, откуда берутся данные:
| Тип базы | Где лежит | Что указано в настройках списка |
|---|---|---|
| Файловая | Папка с файлом 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 | Перейти к строке по номеру |
Справка по встроенному языку — Справка → Синтаксис-помощник. Там описан каждый метод и тип с примерами.
Отладчик: как выполнить код по шагам
Читать код полезно, но причину ошибки быстрее найти в отладчике. Он показывает, какая строка выполняется и какие значения у переменных в этот момент.
Порядок для файловой базы:
- Откройте модуль и поставьте курсор на нужную строку.
- Нажмите F9 — слева появится красная точка останова.
- Запустите
Отладка → Начать отладку → 1С:Предприятие(F5). - В открывшемся клиенте повторите действие пользователя: проведите документ, нажмите кнопку.
- Выполнение остановится на точке, Конфигуратор выйдет на передний план.
Управление на остановке:
| Клавиша | Действие |
|---|---|
| F10 | Следующая строка без захода в процедуры |
| F11 | Зайти внутрь вызываемой процедуры |
| Shift+F11 | Выйти из текущей процедуры |
| Shift+F9 | Вычислить выражение (значение переменной, таблицы) |
| F5 | Продолжить до следующей точки |
Чтобы останавливаться на любой ошибке, включите Отладка → Остановка по ошибке. Отладчик встанет ровно на той строке, где возникло исключение, даже если код обёрнут в Попытка … Исключение.
Отладка серверной базы
Код, который выполняется на сервере 1С, в клиент-серверном варианте отлаживается, только если отладка разрешена на сервере. Для этого служба агента сервера должна быть запущена с ключом -debug.
Чтобы добавить ключ, службу агента придётся перезапустить. Все сеансы пользователей при этом оборвутся — делайте это вне рабочего времени и предупредите людей заранее. На рабочем сервере отладку после разбора лучше снова выключить.
Подключиться к
уже запущенному клиенту можно через Отладка → Подключение: там видны все предметы отладки, доступные этому Конфигуратору.
Замер производительности
Если вопрос не «где ошибка», а «почему тормозит», используйте Отладка → Замер производительности. Запустите замер, выполните медленное действие и остановите замер. Получите список строк с количеством вызовов и долей времени — самые тяжёлые строки окажутся вверху.
Код внешней обработки и расширения конфигурации
Не весь код живёт в основной конфигурации. Часть доработок специально выносят наружу, чтобы не снимать типовую с поддержки.
Внешняя обработка или отчёт (.epf, .erf)
Открыть код внешней обработки :
- В Конфигураторе выберите
Файл → Открытьи укажите файл.epfили.erf. - Откроется окно обработки со своим деревом: реквизиты, формы, макеты.
- Модуль объекта — правый щелчок по корню дерева обработки →
Открыть модуль объекта. - После правки сохраните файл (Ctrl+S).
Для этого не нужна сама база — подойдёт любая, даже пустая. Но обработка, написанная под БП 3.0, при запуске в другой конфигурации упадёт на первом же обращении к отсутствующему объекту.
В пользовательском режиме внешнюю обработку
запускают через Главное меню → Файл → Открыть. Это требует права на интерактивное открытие внешних обработок; в типовых конфигурациях на БСП при первом открытии ещё появится предупреждение защиты от опасных действий. Постоянное подключение — Администрирование → Печатные формы, отчёты и обработки → Дополнительные отчёты и обработки.
Расширение конфигурации (.cfe)
Расширения появились в платформе 8.3.6 и сейчас стали основным способом дорабатывать типовые без снятия с поддержки.
- 📂 Открыть список:
Конфигурация → Расширения конфигурации. - ✏️ Открыть код расширения: дважды щёлкните по расширению в списке — откроется его отдельное дерево.
- 🔗 Перенести объект основной конфигурации в расширение: правый щелчок по объекту в основном дереве →
Добавить в расширение. - 🎯 Изменить типовую процедуру: в модуле расширения откройте нужный метод через правый щелчок в основной конфигурации и выберите вариант аннотации —
&Перед,&После,&Вместоили&ИзменениеИКонтроль.
Пример перехвата: дописать проверку перед записью документа, не трогая типовой модуль.
&Перед("ПередЗаписью")
Процедура Расш1_ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
Если Не ЗначениеЗаполнено(Комментарий) Тогда
Сообщить("Заполните комментарий перед записью.");
Отказ = Истина;
КонецЕсли;
КонецПроцедуры
После правки расширения выполните Конфигурация → Обновить конфигурацию базы данных (F7) — так изменения попадут в базу. Загрузку готового файла .cfe и обновление базы платформа делает отдельными шагами: просто загрузить файл недостаточно.
В пользовательском режиме БСП расширения видны в Администрирование → Печатные формы, отчёты и обработки → Расширения. Оттуда их подключают без открытия Конфигуратора.
Почему код не открывается или правка не сохраняется
Большинство затруднений сводится к нескольким ситуациям. Подберите свою:
Ошибки, которые портят базу
- ❌ Правка рабочей базы в разгар дня. Изменения кода на сервере применяются при обновлении конфигурации БД, и у работающих людей могут появиться ошибки. Отлаживайте на копии.
- ❌ Снятие объекта с поддержки «чтобы не мешало». Код больше не обновляется автоматически, каждое обновление превращается в ручное сравнение.
- ❌ Точки останова на рабочем сервере. Остановка по точке подвешивает сеанс пользователя, который вызвал этот код. Снимайте все точки командой
Отладка → Список точек остановаперед выходом. - ❌ Работа без хранилища вдвоём. Если два разработчика правят одну конфигурацию без хранилища, при сохранении побеждает последний — изменения первого пропадают.
Частые вопросы
Можно ли посмотреть код 1С без Конфигуратора?
Конфигурация → Выгрузить конфигурацию в файлы) и читать модули в любом текстовом редакторе. Править и запускать код всё равно придётся через Конфигуратор или 1С:EDT.Что такое 1С:EDT и чем она отличается от Конфигуратора?
Как узнать, какой модуль вызывается при нажатии кнопки?
Как сравнить свою доработку с типовой конфигурацией?
Конфигурация → Сравнить конфигурации, затем выберите основную конфигурацию и конфигурацию поставщика. Отчёт покажет все изменённые модули и строки.