Разработка и Конфигурация · 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Откройте конфигуратор нужной базы
- 2Нажмите F5 или Отладка → Начать отладку
- 3Установите точку останова в нужном модуле (F9)
- 4Воспроизведите действие в клиентском приложении
- 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
Отдельная частая ситуация — отладчик «не видит» изменённый код. Если вы правили модуль, но точка стоит на старой строке, перезапустите отладку: конфигуратор должен обновить конфигурацию базы данных, иначе исполняется прежняя версия кода.
Что проверить, если отладка всё равно не работает
Пройдите по цепочке: клиент запущен с /debug → на сервере есть ключ -debug и служба перезапущена → в конфигураторе включено автоподключение к нужным типам процессов → точка останова активна, а конфигурация базы обновлена. В подавляющем большинстве случаев проблема находится на одном из этих четырёх шагов.
Что важно запомнить
В файловом режиме debug прописывается параметром /debug в строке запуска или включается запуском через F5 из конфигуратора. На сервере 1С нужен ключ -debug в параметрах службы агента с обязательным перезапуском. После работы на продуктиве отладку следует отключить.
Частые вопросы
Куда именно прописывать /debug в ярлыке запуска?
В свойствах ярлыка, в поле «Объект», допишите /debug в конец строки после закрывающей кавычки пути к 1cv8.exe и остальных параметров. Параметр относится к платформе, а не к пути базы.
Нужен ли /debug тонкому клиенту при работе через веб-сервер?
Да, для отладки клиентского кода тонкий клиент тоже запускается с параметром /debug. Серверный код при этом отлаживается только если на кластере включён ключ -debug.
Служба сервера не стартует после добавления -debug. Что делать?
Проверьте синтаксис строки ImagePath: ключ пишется через пробел, без опечаток, пути в кавычках должны остаться нетронутыми. Если ошибку найти не удаётся, верните сохранённую исходную строку, запустите службу и добавьте ключ заново аккуратно.
Можно ли отлаживать код без остановки пользователей?
Да, если заранее включить -debug на сервере и работать в отдельной тестовой базе того же кластера. Точки останова ставятся в вашем сеансе и не блокируют других, но сама перезагрузка службы для включения ключа сеансы всё же разорвёт.
Почему точка останова отображается серым и не срабатывает?
Серая точка означает, что модуль не загружен в отлаживаемый процесс: либо код ещё не выполнялся, либо конфигурация базы не обновлена после правок. Обновите конфигурацию базы данных (F7 в конфигураторе) и повторите действие.