Где в Конфигураторе 1С 8.3 лежат модули и как до них добраться

· 9 мин

Содержание

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

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

1. Вход в Конфигуратор из окна выбора базы

Самый обычный способ — через стартовое окно, которое открывается ярлыком «1С:Предприятие».

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

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

В дереве объекты разложены по веткам: «Общие», «Константы», «Справочники», «Документы», «Регистры сведений» и так далее. Код спрятан внутри этих объектов.

Какие модули бывают и где их искать

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

Если ошибка возникает при проведении документа, почти всегда смотрят модуль объекта (обработчик ОбработкаПроведения) и модуль менеджера. Если ошибка выскакивает при нажатии кнопки на форме — модуль формы.

2. Как найти нужный модуль, если знаете только экран

Чаще всего программист знает не имя объекта в метаданных, а то, что видит пользователь: «документ Реализация, кнопка Заполнить». Перевести это на язык Конфигуратора помогают три приёма.

Навигационная ссылка. Откройте документ в пользовательском режиме и нажмите Shift+F11 (команда «Получить ссылку»). В ссылке вида e1cib/data/Документ.РеализацияТоваровУслуг?ref=... после слова «Документ.» стоит точное имя объекта в дереве метаданных.

Текст ошибки. Сообщение об ошибке в 1С 8.3 обычно содержит путь к модулю и номер строки, например {Документ.РеализацияТоваровУслуг.МодульОбъекта(245)}. Это прямой адрес: объект, модуль, строка. Откройте модуль и нажмите Ctrl+G, чтобы перейти к строке 245.

Глобальный поиск. Если известен только текст на экране или фрагмент сообщения, выполните Правка → Глобальный поиск (Ctrl+Shift+F). Введите фразу и отметьте, где искать: в модулях, в формах, в макетах. Поиск пройдёт по всей конфигурации и покажет список совпадений внизу окна.

Внутри открытого модуля пригодятся ещё несколько клавиш:

  • 🔎 Ctrl+F — поиск по тексту текущего модуля;
  • 📍 Ctrl+G — переход к строке по номеру;
  • 🧭 F12 — переход к определению процедуры или функции, на которой стоит курсор;
  • 📚 Ctrl+F1 — Синтакс-помощник по слову под курсором.

Список процедур модуля удобно смотреть через панель «Процедуры и функции» в меню модуля или по выпадающему списку над текстом. Так в модуле на 5000 строк вы найдёте ПередЗаписью за секунды.

3. Запуск Конфигуратора из командной строки

Командная строка выручает, когда базы нет в списке, когда нужно открыть Конфигуратор на сервере без лишних окон или запустить что-то пакетно по расписанию. Запускают не 1cestart.exe, а исполняемый файл конкретной версии платформы, например C:\Program Files\1cv8\8.3.24.1691\bin\1cv8.exe (номер каталога — ваш номер установленной версии).

Файловая база:

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

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

"C:\Program Files\1cv8\8.3.24.1691\bin\1cv8.exe" DESIGNER /S "srv1c\buh_main" /N "Администратор" /P "пароль"

Основные параметры:

ПараметрЧто делает
DESIGNERЗапуск в режиме Конфигуратора (для пользовательского режима — ENTERPRISE)
/F "путь"Каталог файловой базы
/S "сервер\база"Сервер и имя базы в кластере
/N, /PИмя пользователя и пароль
/ClearCacheОчистить клиентский кэш перед запуском
/DisableStartupMessagesНе показывать стартовые предупреждения
/Out "файл"Писать служебные сообщения в файл (для пакетного режима)

Пароль в bat-файле лежит открытым текстом. Не оставляйте такие файлы в общих папках и не кладите их в планировщик под учётной записью, к которой имеют доступ все.

Полный список ключей запуска есть в документации к платформе и в справке 1cv8.exe. Не подставляйте параметры «по памяти» из старых статей про 8.2: часть ключей там работала иначе.

4. Какие права нужны для входа в Конфигуратор

Окно Конфигуратора откроется не каждому. Пользователю нужна роль с правом «Администрирование». В типовых конфигурациях на БСП это роль «Полные права» (её дают профилем «Администратор»).

Где проверить права:

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

Три частых сценария:

  1. В базе нет пользователей вообще. Конфигуратор откроется без пароля. Так обычно бывает с только что созданной демонстрационной или пустой базой.
  2. Пользователь есть, но у него нет нужной роли. Платформа откажет во входе. Назначить права может только администратор базы.
  3. Пароль администратора забыт. Варианты легальные и скучные: спросить у того, кто внедрял базу, или восстановить базу из резервной копии с известным паролем. Сторонние «утилиты сброса» правят файлы базы напрямую и могут её повредить.

Не создавайте второго администратора «на всякий случай» с пустым паролем. Любой, кто откроет такую базу, получит доступ и к коду, и к данным.

5. Просмотр и изменение кода: поддержка, хранилище, монопольный режим

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

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

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

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

База в хранилище конфигурации

Если база подключена к хранилищу (так работают команды из нескольких программистов), объект перед правкой нужно захватить: ПКМ по объекту → «Захватить в хранилище». Без захвата модуль доступен только для чтения. После правки объект помещают обратно в хранилище.

Когда нужен монопольный режим

Сохранить изменённый модуль (Ctrl+S) можно, пока пользователи работают. Монопольный доступ к базе нужен в конкретных операциях:

  • 🔁 обновление конфигурации базы данных (F7), если изменения затрагивают структуру таблиц;
  • 📦 загрузка информационной базы из файла .dt;
  • 🩺 тестирование и исправление информационной базы.

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

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

6. Отладка: как увидеть код в работе

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

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

Дальше пригодятся:

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

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

Для поиска медленного кода есть Отладка → Замер производительности. Включите замер, выполните медленную операцию, остановите замер — получите список строк с временем выполнения и числом вызовов.

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

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

Изменение параметров службы требует её перезапуска. При этом оборвутся сеансы всех пользователей всех баз на этом сервере. Делайте это в нерабочее время и на тестовом сервере, а не на рабочем.

7. Ошибки при входе в Конфигуратор и при открытии кода

Сообщения, с которыми сталкиваются чаще всего, — с причиной и действием.

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

Если не помогло

Когда базу не удаётся открыть в Конфигураторе вообще, а код посмотреть нужно срочно, есть обходной путь. Возьмите свежую выгрузку .dt или файл .cf, загрузите в отдельную пустую базу на своём компьютере и откройте код там. Рабочую базу вы при этом не трогаете.

Для внешних обработок и отчётов база не нужна совсем: в Конфигураторе выполните Файл → Открыть и выберите файл .epf или .erf. Код откроется в редакторе так же, как модуль обработки в конфигурации.

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

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