Настройка отладки программного кода, исполняемого на стороне сервера, часто вызывает трудности даже у опытных разработчиков. Типичная ситуация: ключ в реестре прописан, служба перезапущена, но точки останова в серверных модулях «не отрабатывают». Разберем последовательно все этапы настройки и выясним, какие нюансы мешают полноценной работе отладчика.
Первым делом проанализируем настройки службы сервера 1С. Чтобы сервер позволял подключаться к своим процессам для отладки, его необходимо запустить со специальным ключом -debug. Рассмотрим, как это сделать правильно:
regedit) на сервере, где установлена серверная часть 1С.HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\1C:Enterprise 8.3... (название зависит от конкретной версии платформы).ImagePath. Это строка запуска исполняемого файла службы.-debug. Важный момент: если путь к файлу обрамлен кавычками, ключ должен стоять после закрывающей кавычки через пробел.Пример правильной строки в реестре:
"C:\Program Files\1cv8\8.3.13.1513\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo" -debug
После внесения изменений обязательно перезапустим службу 1C:Enterprise 8.3 Server Agent. Без перезапуска новые параметры реестра не вступят в силу.
Проанализируем сетевое взаимодействие. Часто разработчики забывают, что при классической TCP-отладке (используемой по умолчанию) соединение инициируется не только от клиента к серверу, но и от сервера к клиенту. Если между ними стоит сетевой экран (брандмауэр), он может блокировать входящий пакет от сервера.
Разберем, какие порты должны быть открыты:
1560–1591.Выясним причину ситуации, когда сеансы в окне «Подключение» видны, но точка останова остается пустой или игнорируется. Это часто связано с тем, что конфигуратор не «подцепил» серверный вызов или фоновое задание автоматически. Рассмотрим по шагам, как это исправить в конфигураторе:
Серверные вызовы и Фоновые задания.Если серверный процесс все равно не появляется в списке, нажмем кнопку Искать на удаленном компьютере и явно укажем IP-адрес сервера 1С.
Начиная с версии 8.3.7, платформа поддерживает отладку по протоколу HTTP. Рассмотрим подробнее, почему это удобнее: она работает через фиксированный порт и лучше проходит через NAT и сложные сетевые настройки. Чтобы включить этот режим, вместо -debug (или в дополнение к нему) можно использовать запуск сервера отладки dbgs.
В настройках конфигуратора (Сервис — Параметры — Отладка) выберем способ отладки «Протокол HTTP». Укажем адрес сервера отладки (обычно это адрес сервера 1С) и порт (по умолчанию 1550). Это решение часто оказывается более стабильным в распределенных сетях.
Посмотрим на ситуацию, когда сервер имеет несколько сетевых интерфейсов или подключен через VPN. Проанализируем, как 1С определяет адрес клиента. Если сервер видит клиента под одним IP, а конфигуратор ожидает соединения на другом — отладка не сработает.
Рекомендуем проверить файл hosts на сервере (C:\Windows\System32\drivers\etc\hosts). Добавим туда запись, жестко связывающую имя компьютера разработчика с его актуальным IP-адресом:
192.168.1.7 MY-DEV-PC
Это исключит ошибки разрешения имен, которые часто мешают обратному подключению сервера к отладчику конфигуратора.
Для успешной отладки на сервере необходимо выполнить три критических условия:
-debug в строке запуска службы и последующий рестарт службы.1560-1591 в обе стороны в настройках брандмауэра.Автоматического подключения серверных вызовов в самом конфигураторе.