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

Администрирование · 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С. После перезапуска сервер будет принимать подключения отладчика.

Порядок действий на Windows
  1. 1
    Откройте regedit и найдите службу агента сервера 1С в ветке Services
  2. 2
    В параметре ImagePath добавьте ключ -debug (и -http при необходимости)
  3. 3
    Сохраните изменения в реестре
  4. 4
    Перезапустите службу агента сервера через services.msc
  5. 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 — в выводе должны отображаться добавленные ключи.

bash
ps aux | grep ragent | grep debug

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

После перезапуска службы откройте конфигуратор и перейдите в меню «Сервис → Параметры» на вкладку «Отладка». Здесь выбирается протокол отладки: «Отладка по TCP» или «Отладка по HTTP». Выбранный протокол должен совпадать с тем, что включён на сервере.

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

Далее откройте «Отладка → Подключение» и проверьте список доступных предметов отладки. Если настройка выполнена верно, в списке появятся серверные процессы (рабочие процессы rphost, фоновые задания, сеансы пользователей). Включите автоматическое подключение к нужным типам предметов отладки — например, к фоновым заданиям и серверным вызовам.

Маршрут решения

Как выбрать протокол отладки

Конфигуратор и сервер в одной локальной сети, веб-сервер не используетсяВыбирайте отладку по TCP — достаточно ключа -debug
Работа идёт через веб-сервер или тонкий/веб-клиент подключается через публикациюВключайте отладку по HTTP — добавьте ключ -http и настройте публикацию
Нужно отлаживать и серверные вызовы, и веб-сервисы одновременноВключайте оба ключа: -debug и -http

Как проверить, что отладка заработала

Самый надёжный способ проверки — поставить точку останова в серверной процедуре, например в обработчике проведения документа на сервере, и выполнить соответствующее действие в клиенте. Если отладка включена корректно, конфигуратор остановит выполнение на точке останова.

Дополнительно проверьте список предметов отладки в окне подключения: наличие в нём рабочих процессов сервера означает, что агент запущен с ключом отладки. Если список пуст или содержит только клиентские сеансы, серверная отладка не активна.

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

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

Строка запуска службы
Норма

В ImagePath или ExecStart присутствует ключ -debug

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

Ключ отсутствует или добавлен не в тот параметр

Список предметов отладки в конфигураторе
Норма

Видны рабочие процессы сервера и фоновые задания

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

Список пуст или только клиентские сеансы

Точка останова в серверной процедуре
Норма

Выполнение останавливается в конфигураторе

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

Точка останова игнорируется, код выполняется без остановки

Типичные ошибки и ограничения

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

Вторая частая проблема — несовпадение протокола: на сервере включён только TCP, а в конфигураторе выбрана отладка по HTTP, или наоборот. Третья — блокировка портов отладки межсетевым экраном: для TCP-отладки должны быть открыты порты диапазона отладки, для HTTP — порт веб-сервера.

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

Типичные ошибки
01
Изменили реестр, но не перезапустили службу — параметры не применились
02
В конфигураторе выбран другой протокол, чем включён на сервере
03
Порты отладки закрыты брандмауэром — предметы отладки не появляются
04
Отладку оставили включённой на продуктивном сервере — лишняя нагрузка и риск безопасности
05
Версии платформы на сервере и в конфигураторе различаются — подключение невозможно

Отключение отладки после завершения работ

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

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

Итог

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

Отладка сервера включается ключом -debug (и -http для отладки по HTTP) в параметрах запуска службы агента 1С, требует перезапуска службы и совпадающего протокола в настройках конфигуратора. Проверяйте результат через список предметов отладки и точку останова, а после работы отключайте режим на продуктивном сервере.

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

Можно ли включить отладку без перезапуска службы агента?

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

Почему точки останова в серверных процедурах не срабатывают?

Чаще всего причины такие: служба запущена без ключа -debug, в конфигураторе выбран другой протокол отладки, не включено автоматическое подключение к серверным предметам отладки или код фактически выполняется на клиенте, а не на сервере.

Чем отличается отладка по TCP от отладки по HTTP?

Отладка по TCP работает через прямое подключение к серверу отладки и подходит для локальной сети. Отладка по HTTP идёт через веб-сервер и нужна, когда клиенты подключаются через публикацию, а также когда прямые TCP-соединения к серверу закрыты сетевой политикой.

Влияет ли включённая отладка на производительность сервера?

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

Как отладить фоновое задание на сервере?

Включите отладку на сервере, затем в конфигураторе в окне «Отладка → Подключение» отметьте автоматическое подключение к фоновым заданиям. Когда задание запустится, конфигуратор подключится к нему, и точки останова в его коде начнут срабатывать.

Нужны ли особые права в самой информационной базе для отладки?

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