При разработке и сопровождении конфигураций разработчикам регулярно требуется анализировать выполнение серверного кода с помощью точек останова. По умолчанию служба агента сервера 1С:Предприятие запускается в стандартном режиме, и отладка серверных модулей отключена. Попытка включить режим отладки через редактирование параметра службы в реестре Windows нередко приводит к тому, что служба 1C:Enterprise 8.3 Server Agent попросту перестает запускаться. Разберем основные причины этой проблемы, проанализируем синтаксис строки запуска и рассмотрим правильный порядок настройки отладки на сервере.
Самая распространенная и труднозаметная ошибка при копировании инструкций с веб-сайтов или документации — замена стандартного символа дефиса на длинное тире или короткое тире (en-dash). Разберем, что происходит в операционной системе: исполняемый файл ragent.exe ожидает строго стандартный ASCII-дефис (код 45 / 0x2D). Если скопировать строку вида –debug (где применен символ en-dash или em-dash), парсер параметров командной строки 1С не сможет распознать ключ. В результате служба аварийно завершает свою работу сразу при старте.
Для исправления ситуации выполним следующие шаги:
regedit от имени администратора.HKLM\SYSTEM\CurrentControlSet\services\1C:Enterprise 8.3 Server Agent (x86-64) (или без суффикса разрядности для 32-битного сервера).ImagePath.-debug.Вторая частая ошибка — нарушение структуры параметров командной строки. Параметр ImagePath содержит пути к исполняемому файлу и рабочему каталогу кластера, которые содержат пробелы и обязательно обрамляются двойными кавычками. Ключ отладки должен находиться за пределами этих кавычек.
Посмотрим на корректный пример строки запуска службы агента:
"C:\Program Files\1cv8\8.3.24.1761\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo" -debug
Обратим внимание: ключ -debug отделен от закрывающей кавычки пути к каталогу srvinfo одиночным пробелом и не заключен в кавычки.
В технологической платформе 1С:Предприятие 8.3 реализовано два механизма отладки: классический по протоколу TCP и современный по протоколу HTTP. Выясним разницу между ними и особенности настройки строки запуска:
-debug. Использует динамические TCP-порты для подключения отладчика к сеансам. Часто создает трудности при работе через межсетевые экраны.-debug -http. Данный протокол обязателен при использовании среды разработки 1C:Enterprise Development Tools (EDT), а также поддерживается современными версиями Конфигуратора. Он работает через выделенный порт отладки (по умолчанию 1550).Если для работы требуется HTTP-отладка, строка параметров в ImagePath дополняется соответствующим флагом:
"C:\Program Files\1cv8\8.3.24.1761\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo" -debug -http
Прямое редактирование реестра не всегда удобно и несет риск случайного повреждения параметров. Зарегистрировать отладку можно штатными средствами самого сервера 1С через командную строку Windows. Для этого запустим командную строку от имени администратора, перейдем в каталог bin установленной платформы и выполним перерегистрацию службы:
ragent.exe -rmsrvc
ragent.exe -instsrvc -usr ".\USR1CV8" -pwd "Password" -port 1540 -regport 1541 -range 1560:1591 -seclev 0 -d "C:\Program Files\1cv8\srvinfo" -debug
Включение режима отладки на сервере влечет за собой несколько важных технических аспектов, о которых необходимо помнить администраторам и разработчикам:
-debug при этом автоматически сбрасывается. Прописывать ключ отладки потребуется повторно.Фоновые задания.