Как настроить отладку по протоколу HTTP в 1С 8.3 и что делать, если служба сервера останавливается?

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

Начиная с версий платформы 1С:Предприятие 8.3.7 и выше, разработчикам стал доступен новый механизм отладки по протоколу HTTP. В отличие от классического варианта (TCP), этот метод позволяет более гибко настраивать отладку в сложных сетевых инфраструктурах, через прокси-серверы и при работе с мобильными приложениями. Однако многие системные администраторы и программисты сталкиваются с тем, что после добавления необходимых параметров в реестр служба 1C:Enterprise 8.3 Server Agent (ragent) перестает запускаться или самопроизвольно останавливается. Проанализируем причины этого поведения и разберем пошагово, как заставить отладку работать корректно.

Разбор механизма работы HTTP-отладки

Для начала выясним причину, по которой классический способ включения отладки может приводить к сбою. При использовании ключа -debug без дополнительных уточнений сервер работает по протоколу TCP. В этом режиме отладочные сообщения передаются напрямую между процессами rphost и конфигуратором. Когда же мы добавляем ключ -http, за процесс отладки начинает отвечать отдельный компонент — сервер отладки (исполняемый файл dbgs.exe, находящийся в папке bin платформы).

Проблема остановки службы чаще всего связана с тем, что ragent пытается инициировать запуск dbgs.exe, но тот не может занять необходимый сетевой порт или не имеет прав на регистрацию URL в системе. В результате основная служба сервера 1С получает сигнал об ошибке и прекращает свою работу.

Шаг 1. Базовая настройка реестра Windows

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

  1. Остановим службу 1C:Enterprise 8.3 Server Agent через консоль services.msc.
  2. Запустим редактор реестра regedit.
  3. Перейдем в ветку: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\1C:Enterprise 8.3 Server Agent.
  4. Найдем параметр ImagePath.

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


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

Чтобы включить отладку по протоколу HTTP, нам нужно добавить ключи -debug и -http. Проанализируем правильную последовательность ключей:


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

Шаг 2. Решение проблемы остановки службы (Конфликт портов)

Если после внесения изменений служба не запускается, это главный признак конфликта. По умолчанию HTTP-отладчик пытается занять порт 1550. Если на сервере установлено несколько версий платформы (например, 8.3.8 и 8.3.9) или порт занят другим приложением, служба упадет. Выясним, как назначить конкретный порт для отладки.

Для этого используем параметр -debugServerPort. Мы рекомендуем выбирать порт, отличный от стандартного, например 1555 или 2550. Итоговая строка в реестре должна принять следующий вид:


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

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

Шаг 3. Настройка прав доступа к URL (HTTP.sys)

В операционных системах Windows для работы HTTP-сервисов требуется разрешение на регистрацию адреса. Если служба 1С запущена от имени обычного пользователя (а не Local System), у нее может не быть прав на открытие порта. Чтобы решить эту проблему, запустим командную строку (CMD) от имени администратора и выполним команду:

netsh http add urlacl url=http://+:1555/ user="ИмяПользователяСлужбы1С"

Здесь 1555 — порт, указанный вами ранее, а ИмяПользователяСлужбы1С — логин учетной записи, под которой работает сервер 1С.

Шаг 4. Настройка брандмауэра и сети

Проанализируем сетевые ограничения. Для успешной отладки по HTTP недостаточно открыть только порты рабочих процессов (1560–1591). Необходимо выполнить следующие настройки в Firewall:

  1. Разрешить входящие соединения по TCP для порта отладчика (в нашем примере 1555).
  2. Разрешить работу приложению dbgs.exe, которое находится в директории bin соответствующей версии платформы.
  3. Если сервер имеет несколько сетевых интерфейсов, полезно явно указать адрес сервера отладки ключом -debugServerAddr [IP_адрес] в строке запуска реестра.

Шаг 5. Очистка серверного кэша

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

  1. Остановим службу 1С.
  2. Перейдем в каталог srvinfo (путь к нему указан в ключе -d в реестре).
  3. Найдем папку snccntxt и удалим её содержимое. Это кэш сеансовых данных, в котором могут блокироваться дескрипторы отладки.
  4. Запустим службу заново.

Шаг 6. Настройка Конфигуратора

После того как сервер запущен с нужными ключами, необходимо переключить сам Конфигуратор в режим использования HTTP-отладки. Разберем, где находятся эти настройки:

  1. Откроем Конфигуратор.
  2. Меню Сервис — Параметры.
  3. Вкладка Отладка.
  4. Установим переключатель в положение Протокол HTTP.
  5. В поле Адрес отладчика укажем адрес нашего сервера, например: http://имя_сервера:1555.

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

Резюме по использованию методов

Мы рассмотрели основные причины падения службы ragent при включении отладки. Выяснили, что ключом к успеху является правильное распределение портов и корректное указание параметров в реестре. Помните, что использование -debugServerPort — это самый эффективный способ избежать конфликтов при наличии нескольких экземпляров серверов 1С на одной машине. Проанализировав все шаги, вы сможете настроить стабильную среду для разработки и тестирования ваших решений.

← На главную