Открываем модуль обработки в 1С 8.3: от дерева конфигурации до отладчика
Содержание
Модуль обработки открывается в Конфигураторе: Конфигурация → Открыть конфигурацию, затем в дереве раскрываете ветку Обработки, правой кнопкой по нужной обработке — Открыть модуль объекта. В режиме 1С:Предприятие исходный код посмотреть нельзя — только запустить обработку.
У одной обработки не один, а несколько программных модулей: модуль объекта, модуль менеджера, модули форм и модули команд. Ниже — где какой лежит, чем они отличаются, как добраться до кода внешней обработки из файла .epf и как включить отладчик, чтобы пройти по коду по шагам. Разберём и права, без которых окно обработки не откроется.
Что нужно, чтобы добраться до кода
Чтобы читать и править модули, нужен Конфигуратор. Запускается он из того же окна, что и 1С:Предприятие: в стартере выберите базу и нажмите Конфигуратор. Для входа требуется пользователь с правом администрирования — у рядового оператора пункт «Конфигуратор» либо не пустит в конфигурацию, либо откроет её только на чтение.
Отдельное право нужно для внешних обработок. Чтобы пользователь мог открыть файл .epf прямо в 1С:Предприятии, в его роли должно стоять право Интерактивное открытие внешних обработок (для отчётов — Интерактивное открытие внешних отчётов). Без него команда Файл → Открыть для .epf будет недоступна.
Если база типовая и стоит на поддержке с запретом изменений, встроенные обработки открываются только на просмотр. Чтобы менять код, снимают замок на конфигурации или, что безопаснее, выносят изменения в расширение. Расширения конфигурации появились в платформе 8.3.6.
Перед правкой кода в рабочей базе сделайте резервную копию информационной базы — выгрузку .dt через Администрирование → Выгрузить информационную базу или копию на уровне СУБД. Отменить ошибочную правку модуля бывает дороже, чем сделать бэкап.
Где лежит код встроенной обработки
Откройте Конфигуратор, затем Конфигурация → Открыть конфигурацию. В дереве конфигурации найдите ветку Обработки и раскройте её — внутри список всех обработок базы. Дальше зависит от того, какой именно модуль вам нужен.
Правой кнопкой по строке обработки вызовите контекстное меню:
- 🧩
Открыть модуль объекта— основной код: обработчики, процедуры и функции, экспортные методы, которые вызывают извне. - ⚙️
Открыть модуль менеджера— код уровня менеджера объекта, общие методы без создания экземпляра.
Чтобы добраться до кода формы, раскройте у обработки ветку Формы, дважды щёлкните нужную форму — откроется редактор формы. Код формы — на вкладке Модуль в нижней части редактора. Там лежат клиентские и серверные процедуры: &НаКлиенте, &НаСервере и обработчики событий элементов.
Код команды обработки лежит в ветке Команды: раскройте её, правой кнопкой по команде — Открыть модуль команды.
Быстрый способ не искать обработку глазами: нажмите Ctrl+Alt+F (поиск по дереву) и начните печатать имя. Платформа отфильтрует дерево по подстроке.
Если нужно понять, что и откуда вызывается, поставьте курсор на имя процедуры и нажмите F12 — редактор перейдёт к её определению. Ctrl+- возвращает назад к предыдущему месту.
Как открыть внешнюю обработку из файла .epf
Внешняя обработка — это отдельный файл .epf. Он не хранится в конфигурации, у него своя маленькая структура с собственным деревом объектов.
В Конфигураторе. Выполните Файл → Открыть и выберите файл .epf. Обработка откроется в отдельном окне со своим деревом — там будут её формы, реквизиты, макеты и модуль объекта. Дальше код открывается так же, как у встроенной: правой кнопкой по корню обработки — Открыть модуль объекта, у форм — через ветку Формы.
В режиме 1С:Предприятие. Там же, Файл → Открыть, укажите .epf — обработка запустится как форма, с которой можно работать. Но исходный код в режиме предприятия недоступен: видна только готовая форма, а не процедуры. Чтобы прочитать или поправить код, всё равно нужен Конфигуратор.
Отдельная история — дополнительные обработки, подключённые к базе через справочник. В типовых конфигурациях (например, Бухгалтерия 3.0) их хранят и запускают из раздела Администрирование → Печатные формы, отчёты и обработки → Дополнительные отчёты и обработки. Чтобы достать из такого хранилища исходный файл для просмотра кода, откройте карточку обработки и выгрузите вложенный файл на диск, затем откройте его в Конфигураторе.
| Откуда открываем | Команда | Виден ли код |
|---|---|---|
| Встроенная обработка | Дерево конфигурации → ПКМ → Открыть модуль объекта | Да, в Конфигураторе |
Файл .epf в Конфигураторе | Файл → Открыть | Да |
Файл .epf в 1С:Предприятии | Файл → Открыть | Нет, только форма |
| Дополнительная обработка из базы | Выгрузить файл из карточки → открыть в Конфигураторе | Да |
Отладка кода обработки по шагам
Прочитать код — половина дела. Чтобы понять, что он делает на реальных данных, пройдите по нему отладчиком.
Перед запуском проверьте, что отладка включена: Сервис → Параметры → Запуск 1С:Предприятия → вкладка Отладка. Для файловой базы достаточно отладки в текущем процессе; для клиент-серверной нужно разрешить отладку по протоколу (HTTP или TCP/IP) и включить отладку
на стороне сервера в настройках информационной базы.
Порядок работы с отладчиком:
- Откройте нужный модуль обработки.
- Встаньте курсором на строку, с которой хотите начать разбор, и нажмите
F9— поставится точка останова (красный кружок на полях). - Запустите 1С:Предприятие из Конфигуратора клавишей
F5(запуск в режиме отладки). - Выполните в базе действие, которое дёргает код обработки, — программа остановится на вашей точке.
- Идите по коду:
F11— зайти внутрь вызываемой процедуры,F10— шаг без захода внутрь,F5— продолжить до следующей точки.
Значения переменных смотрят через табло: Отладка → Табло или Ctrl+Alt+W. Чтобы быстро вычислить выражение под курсором, нажмите Shift+F9. Эти инструменты показывают, что реально лежит в переменной в момент остановки, — гадать по коду не нужно.
Если обработка падает с ошибкой, а где — непонятно, включите Отладка → Остановка по ошибке. Тогда отладчик сам встанет на той строке, которая вызвала исключение, и в табло будет видно состояние переменных в момент сбоя. Это быстрее, чем расставлять точки останова вслепую.
Если точка останова не срабатывает, а код явно выполняется, причина чаще всего в том, что отладчик подключён не к тому процессу: для серверного кода проверьте, что отладка на сервере разрешена и Конфигуратор видит предмет отладки в списке Отладка → Подключение.
Проверка и ускорение кода обработки
Когда код открыт и работает, остаётся два вопроса: нет ли в нём явных ошибок и не тормозит ли он. На оба у Конфигуратора есть встроенные инструменты — отдельные программы ставить не нужно.
Синтаксический контроль. Нажмите Ctrl+F7 (Конфигурация → Проверка конфигурации → Синтаксический контроль) — платформа пройдёт по модулям и покажет в окне служебных сообщений строки с ошибками и обращениями к несуществующим процедурам. Дважды щёлкнув по сообщению, попадёте точно на проблемную строку. Это первое, что стоит делать после правки чужого модуля, прежде чем запускать базу.
Синтакс-помощник (Справка → Синтакс-помощник, Ctrl+Shift+F1) расшифровывает любой метод и его параметры. Поставьте курсор на незнакомую функцию, вызовите помощник — увидите описание, а не будете гадать, что делает метод.
Замер производительности. Если обработка выполняется медленно, запустите её под отладчиком и включите Отладка → Замер производительности. Платформа покажет, сколько раз выполнялась каждая строка и сколько времени на неё ушло. Так видно реальное узкое место, а не предполагаемое: обычно это запрос в цикле или лишнее обращение к базе на каждой итерации.
Главный приём оптимизации кода обработки — выносить работу с данными на сервер и минимизировать серверные вызовы из клиента. Циклы с запросами внутри заменяйте одним запросом, собирающим нужные данные сразу. Замер производительности подскажет, где именно это нарушено.
Безопасность и производительность здесь связаны: чем меньше обработка дёргает базу, тем меньше она мешает другим пользователям в клиент-серверном режиме.
Частые ошибки при открытии модуля
Собрал ситуации, на которых чаще всего застревают, когда не могут добраться до кода обработки.
Конфигурация → Поддержка → Настройка поддержки), либо вынесите правку в расширение, чтобы не рвать типовую.Интерактивное открытие внешних обработок. Добавьте его в роль пользователя через Конфигуратор.Открыть модуль объекта), а не на её формах. Модуль формы — отдельно, внутри ветки Формы.Сервис → Параметры → Запуск → Отладка и разрешение отладки на сервере для клиент-серверной базы.Как не навредить рабочей базе
Открыть модуль — операция безопасная, пока вы только читаете. Риск появляется при правке и сохранении.
- 📦 Бэкап до изменений. Выгрузка
.dtили копия средствами СУБД. Один раз перед сессией правок — этого достаточно. - 🧩 Правьте через расширение, а не типовую. Расширение накатывается и откатывается, не ломая обновляемость типовой конфигурации. Загрузка
.cfeи последующееОбновить конфигурацию базы данных— это два отдельных шага. - 🧪 Проверяйте на копии. Серьёзные правки обкатывайте в тестовой копии базы, а не в рабочей, где сидят пользователи.
- 🔒 Не раздавайте право внешних обработок всем. Через внешнюю обработку
можно выполнить произвольный код. Право
Интерактивное открытие внешних обработокоставляйте узкому кругу.
Команда Обновить конфигурацию базы данных (F7) для изменения структуры объектов требует монопольного доступа — активные сеансы пользователей придётся завершить. Планируйте такие операции на время, когда в базе никто не работает, и предупредите пользователей заранее.
Привычка открывать код только на чтение, а любые правки проводить через расширение и на копии, снимает большую часть рисков разработки в живой базе.
Частые вопросы
Чем модуль объекта отличается от модуля формы?
Можно ли открыть модуль обработки без прав администратора?
Как открыть внешнюю обработку, если файл .epf защищён от изменений?
Почему в режиме 1С:Предприятие не виден код обработки?
Как найти, где вызывается процедура из модуля обработки?
F12 — редактор перейдёт к определению. Для поиска всех вхождений по тексту конфигурации используйте глобальный поиск Ctrl+Shift+F (Правка → Глобальный поиск).