Разработка и Конфигурация · 11 мин
Как запустить отладку внешней обработки в 1С
Как запустить отладку внешней обработки в 1С: настройка конфигуратора, точки останова, отладка фоновых заданий и серверного кода. Пошаговая инструкция.
Отладка внешней обработки (файл .epf) в 1С — стандартная задача разработчика, но у новичков она часто вызывает затруднения: точки останова не срабатывают, конфигуратор «не видит» запущенный сеанс, а серверный код вообще выполняется мимо отладчика. Причина почти всегда в неверной настройке режима отладки или в том, что обработка запущена не тем способом.
Главный принцип прост: чтобы отлаживать внешнюю обработку, нужно открыть её в конфигураторе, включить отладку в клиентском приложении и запустить обработку из той же информационной базы, к которой подключён конфигуратор. Для файловой базы это делается за пару минут, для клиент-серверной — потребуется дополнительно разрешить отладку на сервере 1С.
Ниже разобраны все рабочие сценарии: отладка в файловом и клиент-серверном варианте, отладка обработок, подключённых через «Дополнительные отчеты и обработки» (БСП), отладка фоновых заданий и типичные ошибки, из-за которых точки останова не срабатывают.
Что нужно подготовить перед отладкой
Для запуска отладки внешней обработки потребуется три вещи: сам файл обработки с расширением .epf, конфигуратор 1С, подключённый к той же информационной базе, где будет запускаться обработка, и права на запуск внешних обработок у пользователя. Если учётной записи запрещено открытие внешних файлов (права «Интерактивное открытие внешних отчетов и обработок»), отладка в пользовательском режиме не начнётся.
Убедитесь, что версия платформы, под которой запускается клиентское приложение, совпадает с версией конфигуратора. При работе через сервер 1С проверьте, что отладка на сервере разрешена администратором — без этого серверные процедуры и функции будут выполняться без остановки.
Также важно понимать, где именно исполняется код: на клиенте, на сервере или в фоновом задании. От этого зависит, какой предмет отладки нужно подключить и какие настройки включать.
Как открыть внешнюю обработку в конфигураторе
Запустите конфигуратор и подключитесь к информационной базе, в которой планируется тестирование. Далее выберите в меню «Файл» пункт «Открыть» и укажите файл .epf. Обработка откроется в виде дерева объектов: формы, модули, макеты.
Чтобы попасть в модуль объекта или модуль формы, щёлкните правой кнопкой по нужному элементу и выберите «Открыть модуль объекта» или откройте форму и перейдите на вкладку «Модуль». Именно в этих модулях расставляются точки останова.
Обратите внимание: конфигуратор при этом не обязан быть запущен в режиме отладки сам — достаточно, чтобы он был открыт с этой базой. Отладчик подхватит сеанс клиентского приложения, если тот запущен с разрешённой отладкой.
Настройка отладки в клиентском приложении
Откройте 1С в режиме «Предприятие» под тем же пользователем базы. Перейдите в меню «Сервис» → «Параметры» (в интерфейсе «Такси» — кнопка меню в левом верхнем углу → «Сервис и настройки» → «Параметры»). В разделе «Запуск 1С:Предприятия» включите флажок «Разрешить отладку» и выберите протокол отладки — обычно «по TCP/IP».
После изменения настроек клиентское приложение нужно перезапустить: отладка подключается к сеансу при его старте. Это частая причина «неработающих» точек останова — флажок поставили, а сеанс не перезапустили.
- 1Откройте конфигуратор и загрузите .epf через Файл → Открыть
- 2Поставьте точки останова в нужных строках модуля (F9 или клик по полю слева от строки)
- 3В режиме Предприятия включите отладку: Сервис → Параметры → Разрешить отладку, перезапустите сеанс
- 4Откройте обработку в пользовательском режиме: Файл → Открыть → выберите тот же .epf
- 5Выполните действие, вызывающее код с точкой останова — выполнение остановится, и управление перейдёт в конфигуратор
Запуск обработки и работа с точками останова
Точка останова ставится нажатием F9 на нужной строке модуля или двойным кликом по серой области слева от строки. Красный кружок означает активную точку. Выполняться остановка будет только на исполняемых строках — точки на комментариях и объявлениях переменных не сработают.
После того как обработка открыта в режиме «Предприятие» (через «Файл» → «Открыть»), выполните действие, которое вызывает отлаживаемый код: нажмите кнопку на форме, запустите заполнение и т.д. Конфигуратор автоматически активируется на строке с точкой останова.
Дальше доступны стандартные команды отладчика: «Шагнуть через» (F10), «Шагнуть в» (F11), «Идти до курсора» (Shift+F10), «Продолжить» (F5). Значения переменных смотрятся через «Вычислить выражение» (Shift+F9) или табло (Ctrl+Alt+W).
Отладка в клиент-серверном варианте
В клиент-серверной базе код с директивами &НаСервере исполняется на сервере 1С, и по умолчанию отладка там запрещена. Чтобы её включить, администратор должен перезапустить службу агента сервера 1С с ключом отладки: в параметрах запуска службы добавляется -debug (и при необходимости -debugServerPort для указания диапазона портов).
После перезапуска службы в конфигураторе откройте «Отладка» → «Подключение» и проверьте, что в списке предметов отладки видны серверные сеансы. В настройках отладки («Отладка» → «Настройка») включите автоматическое подключение к нужным типам предметов отладки: «Клиент», «Сервер», при необходимости «Фоновое задание».
Отладка обработки, подключённой через БСП
Если обработка подключена к базе через справочник «Дополнительные отчеты и обработки» (механизм БСП), её код выполняется не из вашего файла, а из копии, сохранённой в базе. Точки останова в файле .epf, открытом в конфигураторе, в этом случае не сработают.
Есть два рабочих подхода. Первый — временно запускать обработку напрямую через «Файл» → «Открыть», отладить логику, а затем загрузить исправленную версию в справочник дополнительных обработок. Второй — отладить типовой вызов: поставить точку останова в коде конфигурации, который вызывает дополнительную обработку, и пошагово пройти до момента исполнения её команд.
Для глобальных команд и обработок заполнения табличных частей БСП может выполнять код в фоновом задании (длительные операции). Тогда в настройках отладки нужно включить автоподключение к фоновым заданиям, иначе остановки не произойдёт.
Как выбрать способ отладки
Почему точки останова не срабатывают
Самая частая причина — клиентский сеанс запущен без разрешённой отладки или не перезапущен после изменения настроек. Вторая по популярности — в конфигураторе открыт один файл обработки, а в режиме «Предприятие» запущен другой (другая версия или копия в другом каталоге).
Третья группа причин связана с местом исполнения кода: серверная отладка не включена на сервере 1С, фоновые задания не подключены автоматически, либо код исполняется в сеансе другого пользователя (например, обработку запустил другой сотрудник, а вы ждёте остановки в своём конфигураторе).
Проверьте также, что в конфигураторе в меню «Отладка» → «Подключение» сеанс реально подключён: предмет отладки должен отображаться в списке подключённых. Если его там нет — включите автоматическое подключение или подключите вручную.
Проверка результата и ограничения
Признак успешной настройки — при выполнении действия в обработке конфигуратор активируется, строка с точкой останова подсвечивается жёлтым, а в окне «Вычислить выражение» доступны актуальные значения переменных. Если этого не произошло, пройдите по контрольному списку ниже.
Помните об ограничениях: отладка замедляет выполнение кода, остановленный сеанс держит транзакции и блокировки (в клиент-серверной базе длительная остановка может мешать другим пользователям), а на сервере без ключа -debug серверный код отладить невозможно в принципе. Все эксперименты безопаснее проводить на копии базы.
Как проверить результат
В Отладка → Подключение сеанс виден и подключён
Список пуст или сеанс не подключён — проверьте настройки отладки и перезапуск клиента
Выполнение останавливается, строка подсвечена, переменные доступны
Код выполняется до конца без остановки — проверьте файл, место исполнения и режим отладки
В конфигураторе и в режиме Предприятия открыт один и тот же файл .epf
Запущена копия из другого каталога или из справочника дополнительных обработок
Частые вопросы
Можно ли отлаживать внешнюю обработку без конфигуратора?
Нет. Отладчик встроен в конфигуратор, поэтому без него пошаговое выполнение недоступно. Альтернатива — временно вставить в код вывод сообщений через Сообщить() или запись в журнал регистрации, но это заменитель, а не полноценная отладка.
Как отладить обработку, которая запускается регламентным заданием?
В конфигураторе откройте «Отладка» → «Настройка» и включите автоматическое подключение предметов отладки типа «Фоновое задание». Дождитесь очередного запуска задания или запустите его принудительно — выполнение остановится на точке останова. Для клиент-серверной базы отладка на сервере должна быть включена.
Почему конфигуратор не видит запущенный сеанс 1С:Предприятия?
Чаще всего сеанс запущен без включённой отладки или не перезапущен после изменения параметров. Также проверьте, что клиент и конфигуратор подключены к одной и той же базе и используют один протокол отладки (TCP/IP), а брандмауэр не блокирует порты отладки.
Можно ли отлаживать внешнюю обработку в тонком клиенте и веб-клиенте?
В тонком клиенте — да, настройки аналогичны: включите отладку в параметрах запуска и подключите предмет отладки в конфигураторе. Веб-клиент также поддерживает отладку, но требует корректной публикации и разрешённой отладки на сервере; на практике удобнее отлаживать в тонком клиенте.
Что делать, если обработка падает с ошибкой до достижения точки останова?
Включите в конфигураторе остановку по ошибке: «Отладка» → «Остановка по ошибке». Тогда выполнение прервётся в момент возникновения исключения, и вы увидите стек вызовов и значения переменных в проблемном месте.
Что важно запомнить
Отладка внешней обработки сводится к трём условиям: файл .epf открыт в конфигураторе, клиентский сеанс запущен с разрешённой отладкой, а для серверного кода и фоновых заданий включены соответствующие режимы. Если точки останова не срабатывают — проверяйте совпадение файла, перезапуск сеанса и подключение предметов отладки. Все эксперименты выполняйте на копии базы.