Администрирование · 9 мин
Как включить отладку на сервере 1С
Как включить отладку на сервере 1С: настройка службы агента, ключи -debug, отладка по HTTP и TCP, типичные ошибки и проверка результата.
Отладка на сервере 1С нужна, когда код выполняется в контексте сервера — в серверных процедурах, фоновых заданиях, регламентных операциях и web-сервисах. Без включённого режима отладки агент сервера просто не передаёт управление конфигуратору, и точки останова в серверных модулях игнорируются. Это одна из самых частых причин, почему «отладка не работает» у начинающих администраторов и разработчиков.
Включение отладки выполняется на уровне службы агента сервера 1С:Предприятие. Потребуются права администратора на сервере, где развёрнут кластер, и перезапуск службы агента — это единственный способ заставить сервер принять новые параметры запуска. Все активные сеансы пользователей при перезапуске будут разорваны, поэтому работу планируют на время минимальной нагрузки или заранее предупреждают пользователей.
Ниже разобраны два основных варианта — отладка по протоколу TCP (классический способ) и по HTTP (требуется для работы через веб-сервер и в некоторых современных сценариях), а также настройка конфигуратора, проверка результата и типичные ошибки.
Что нужно подготовить перед включением отладки
Перед изменением параметров службы убедитесь, что у вас есть права локального администратора на сервере, где работает агент сервера 1С:Предприятие. Без этих прав изменить параметры запуска службы и перезапустить её не получится.
Определите, какой протокол отладки вам нужен. Отладка по TCP подходит для классической схемы, когда конфигуратор и сервер находятся в одной сети. Отладка по HTTP необходима, если работа идёт через веб-сервер, если используется отладка фоновых заданий в отдельных сценариях или если сетевая инфраструктура блокирует прямые TCP-подключения к серверу отладки.
Также проверьте, что версия платформы на сервере и на компьютере с конфигуратором совпадают или совместимы. Расхождение версий — частая причина того, что предметы отладки не появляются в списке подключения.
Включение отладки на сервере под Windows
На Windows параметры запуска службы агента сервера 1С хранятся в реестре. Откройте редактор реестра (regedit) и перейдите в ветку HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services, где найдите службу агента сервера 1С — её имя обычно содержит версию платформы, например «1C:Enterprise 8.3 Server Agent».
Найдите параметр ImagePath — это строка запуска исполняемого файла ragent.exe. Добавьте в конец строки ключ -debug для отладки по TCP. Если нужна отладка по HTTP, добавьте также -http. В результате строка будет выглядеть примерно так:
"C:\Program Files\1cv8\8.3.x.xxxx\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo" -debug -http
Сохраните изменение, откройте оснастку «Службы» (services.msc) и перезапустите службу агента сервера 1С. После перезапуска сервер будет принимать подключения отладчика.
- 1Откройте regedit и найдите службу агента сервера 1С в ветке Services
- 2В параметре ImagePath добавьте ключ -debug (и -http при необходимости)
- 3Сохраните изменения в реестре
- 4Перезапустите службу агента сервера через services.msc
- 5Проверьте доступность отладки из конфигуратора
Включение отладки на сервере под Linux
На Linux параметры запуска агента сервера задаются в systemd-юните или в скрипте запуска. Если используется systemd, откройте файл юнита (обычно он называется srv1cv8.service или похожим образом) командой systemctl edit или напрямую в каталоге юнитов.
Найдите строку ExecStart с вызовом ragent и добавьте в неё ключи -debug и при необходимости -http. После редактирования выполните перечитывание конфигурации и перезапуск службы:
sudo systemctl daemon-reload
sudo systemctl restart srv1cv8
Проверить, что служба запустилась с нужными параметрами, можно командой ps aux | grep ragent — в выводе должны отображаться добавленные ключи.
ps aux | grep ragent | grep debugНастройка конфигуратора для подключения к серверной отладке
После перезапуска службы откройте конфигуратор и перейдите в меню «Сервис → Параметры» на вкладку «Отладка». Здесь выбирается протокол отладки: «Отладка по TCP» или «Отладка по HTTP». Выбранный протокол должен совпадать с тем, что включён на сервере.
Для отладки по HTTP дополнительно укажите адрес информационной базы или сервера отладки. В некоторых конфигурациях потребуется, чтобы на веб-сервере была опубликована база с разрешённой отладкой.
Далее откройте «Отладка → Подключение» и проверьте список доступных предметов отладки. Если настройка выполнена верно, в списке появятся серверные процессы (рабочие процессы rphost, фоновые задания, сеансы пользователей). Включите автоматическое подключение к нужным типам предметов отладки — например, к фоновым заданиям и серверным вызовам.
Как выбрать протокол отладки
Как проверить, что отладка заработала
Самый надёжный способ проверки — поставить точку останова в серверной процедуре, например в обработчике проведения документа на сервере, и выполнить соответствующее действие в клиенте. Если отладка включена корректно, конфигуратор остановит выполнение на точке останова.
Дополнительно проверьте список предметов отладки в окне подключения: наличие в нём рабочих процессов сервера означает, что агент запущен с ключом отладки. Если список пуст или содержит только клиентские сеансы, серверная отладка не активна.
Как проверить результат
В ImagePath или ExecStart присутствует ключ -debug
Ключ отсутствует или добавлен не в тот параметр
Видны рабочие процессы сервера и фоновые задания
Список пуст или только клиентские сеансы
Выполнение останавливается в конфигураторе
Точка останова игнорируется, код выполняется без остановки
Типичные ошибки и ограничения
Наиболее распространённая ошибка — забыть перезапустить службу после изменения реестра. Параметры запуска читаются только при старте процесса, поэтому без перезапуска изменения не вступают в силу.
Вторая частая проблема — несовпадение протокола: на сервере включён только TCP, а в конфигураторе выбрана отладка по HTTP, или наоборот. Третья — блокировка портов отладки межсетевым экраном: для TCP-отладки должны быть открыты порты диапазона отладки, для HTTP — порт веб-сервера.
Учтите и ограничение безопасности: включённая отладка на продуктивном сервере снижает производительность и создаёт потенциальный канал доступа к данным. Рекомендуется включать отладку только на время диагностики и отключать после завершения работ, либо использовать для отладки отдельную копию базы на тестовом сервере.
Отключение отладки после завершения работ
После окончания диагностики удалите ключи -debug и -http из параметров запуска службы и снова перезапустите агент сервера. Это вернёт сервер в штатный режим работы без дополнительной нагрузки на обработку отладочных подключений.
Если отладка нужна регулярно, удобнее держать отдельный тестовый сервер с постоянно включённым режимом отладки, а продуктивный кластер оставить в защищённой конфигурации.
Что важно запомнить
Отладка сервера включается ключом -debug (и -http для отладки по HTTP) в параметрах запуска службы агента 1С, требует перезапуска службы и совпадающего протокола в настройках конфигуратора. Проверяйте результат через список предметов отладки и точку останова, а после работы отключайте режим на продуктивном сервере.
Частые вопросы
Можно ли включить отладку без перезапуска службы агента?
Нет. Параметры командной строки процесс ragent читает только при запуске, поэтому перезапуск службы обязателен. Альтернатива без остановки продуктивного кластера — развернуть отдельный тестовый сервер с копией базы и отлаживаться там.
Почему точки останова в серверных процедурах не срабатывают?
Чаще всего причины такие: служба запущена без ключа -debug, в конфигураторе выбран другой протокол отладки, не включено автоматическое подключение к серверным предметам отладки или код фактически выполняется на клиенте, а не на сервере.
Чем отличается отладка по TCP от отладки по HTTP?
Отладка по TCP работает через прямое подключение к серверу отладки и подходит для локальной сети. Отладка по HTTP идёт через веб-сервер и нужна, когда клиенты подключаются через публикацию, а также когда прямые TCP-соединения к серверу закрыты сетевой политикой.
Влияет ли включённая отладка на производительность сервера?
Да, режим отладки добавляет накладные расходы на обработку отладочных подключений и может замедлять выполнение серверного кода, особенно при активных точках останова. На продуктивных системах его рекомендуется включать только на время диагностики.
Как отладить фоновое задание на сервере?
Включите отладку на сервере, затем в конфигураторе в окне «Отладка → Подключение» отметьте автоматическое подключение к фоновым заданиям. Когда задание запустится, конфигуратор подключится к нему, и точки останова в его коде начнут срабатывать.
Нужны ли особые права в самой информационной базе для отладки?
Да. Пользователю, от имени которого выполняется отладка, должно быть доступно право на режим отладки — оно задаётся в ролях конфигурации. Для подключения к чужим сеансам и фоновым заданиям могут потребоваться административные права в кластере серверов.