К статье
Практический материал

Разработка и Конфигурация · 8 мин

Где прописать debug в 1С: все способы включения отладки

Где прописать debug в 1С: параметр /debug, отладка в конфигураторе, настройка сервера 1С:Предприятие, отладка HTTP-сервисов и фоновых заданий. Пошаговая инструкция.

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

Ключевой момент: в 1С нет единого переключателя «включить debug». Отладка активируется либо параметром командной строки /debug, либо настройкой в конфигураторе, либо ключом реестра/параметром службы агента сервера. Ниже разобраны все варианты с точными действиями.

Где прописать debug для файловой базы и тонкого клиента

Самый простой сценарий — файловая информационная база. Здесь достаточно запустить платформу с параметром /debug в командной строке. Без этого параметра клиентское приложение игнорирует точки останова, и конфигуратор не сможет подключиться к процессу.

Строка запуска выглядит примерно так:

"C:\Program Files\1cv8\8.3.22.1750\bin\1cv8.exe" ENTERPRISE /F"D:\Bases\Trade" /debug

Обратите внимание на номер версии платформы в пути — он должен соответствовать установленной у вас версии. Параметр /debug можно комбинировать с /debughttp, если планируете отлаживать код, вызываемый через HTTP.

Включение отладки через конфигуратор

Если вы запускаете базу прямо из конфигуратора, прописывать командную строку не нужно. Откройте меню Сервис → Параметры, перейдите на вкладку Запуск 1С:Предприятия и убедитесь, что отладка разрешена. При запуске через Отладка → Начать отладку (клавиша F5) платформа сама стартует клиент в отладочном режиме.

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

Как включить отладку на сервере 1С:Предприятие

Для клиент-серверного варианта параметр /debug у клиента недостаточен: серверные процедуры выполняются в рабочих процессах кластера, и отладку нужно разрешить на самом сервере. Для этого в параметры запуска службы агента сервера добавляется ключ -debug.

На Windows это делается через реестр. Откройте ветку HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\1C:Enterprise 8.3 Server Agent (точное имя службы зависит от версии и порта) и найдите параметр ImagePath. В строку запуска добавьте -debug:

"C:\Program Files\1cv8\8.3.22.1750\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -debug -d "C:\Program Files\1cv8\srvinfo"

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

Отладка на Linux-сервере

На Linux ключ -debug добавляется в скрипт запуска агента сервера (обычно /opt/1cv8/.../srv1cv8 или unit-файл systemd). Отредактируйте строку запуска демона, добавьте ключ и выполните systemctl restart для соответствующей службы. Логика та же, что и на Windows: параметр действует с момента старта процесса.

Настройка подключения отладчика в конфигураторе

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

Также проверьте настройку Отладка → Настройка отладки: там задаётся, какие виды предметов отладки искать автоматически. Если серверный код не останавливается на точках, чаще всего причина именно здесь — либо не включён поиск серверных процессов, либо сервер запущен без ключа -debug.

Контрольные точки

Как проверить результат

Список в Отладка → Подключение
Норма

Видны клиентский процесс и рабочие процессы сервера

Тревожный признак

Список пуст или виден только клиент

Точка останова в серверном модуле
Норма

Точка активная (красная), выполнение останавливается

Тревожный признак

Точка серая/неактивная — код не загружен отладчиком

Служба агента сервера
Норма

В параметрах запуска есть ключ -debug

Тревожный признак

Ключа нет — серверная отладка не сработает

Отладка HTTP-сервисов, веб-сервисов и фоновых заданий

Код, вызываемый извне — через HTTP-сервисы, веб-сервисы или планировщик заданий, — не привязан к интерактивному сеансу, поэтому его отладка настраивается отдельно. Для HTTP- и веб-сервисов в конфигураторе включите Отладка → Настройка отладки → Автоматическое подключение и отметьте соответствующий тип предметов отладки. При обращении к сервису отладчик подхватит вызов и остановится на точке.

Фоновые задания отлаживаются через то же окно подключения: дождитесь появления задания в списке предметов отладки и подключитесь к нему. Для удобства часто временно заменяют фоновое выполнение синхронным вызовом процедуры — так код проще пройти по шагам в обычном сеансе.

Если HTTP-сервис отвечает быстро, а точка не срабатывает, проверьте, что публикация на веб-сервере указывает на ту же базу, что и конфигуратор, и что в файле default.vrd не отключена отладка (параметр debug).
ПЗ
Практическое замечание

Типичные ошибки при включении debug

Типичные ошибки
01
Запуск клиента без /debug и ожидание, что точки сработают — сеанс невидим для отладчика
02
Добавление -debug на сервер без перезапуска службы — ключ не применяется к уже работающему процессу
03
Опечатка в ImagePath реестра — служба агента перестаёт стартовать, всегда сохраняйте исходную строку
04
Отладка на продуктиве без возврата настроек — лишняя нагрузка и риск остановки рабочих процессов
05
Поиск серверного кода при отключённом автоподключении к рабочим процессам в настройках отладки

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

Что проверить, если отладка всё равно не работает

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

Итог

Что важно запомнить

В файловом режиме debug прописывается параметром /debug в строке запуска или включается запуском через F5 из конфигуратора. На сервере 1С нужен ключ -debug в параметрах службы агента с обязательным перезапуском. После работы на продуктиве отладку следует отключить.

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

Куда именно прописывать /debug в ярлыке запуска?

В свойствах ярлыка, в поле «Объект», допишите /debug в конец строки после закрывающей кавычки пути к 1cv8.exe и остальных параметров. Параметр относится к платформе, а не к пути базы.

Нужен ли /debug тонкому клиенту при работе через веб-сервер?

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

Служба сервера не стартует после добавления -debug. Что делать?

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

Можно ли отлаживать код без остановки пользователей?

Да, если заранее включить -debug на сервере и работать в отдельной тестовой базе того же кластера. Точки останова ставятся в вашем сеансе и не блокируют других, но сама перезагрузка службы для включения ключа сеансы всё же разорвёт.

Почему точка останова отображается серым и не срабатывает?

Серая точка означает, что модуль не загружен в отлаживаемый процесс: либо код ещё не выполнялся, либо конфигурация базы не обновлена после правок. Обновите конфигурацию базы данных (F7 в конфигураторе) и повторите действие.