При отладке клиент-серверных приложений 1С разработчики часто сталкиваются с ситуацией, когда точки останова корректно отрабатывают в клиентском коде (модули форм, клиентские модули), но полностью игнорируются при вызове серверных процедур и функций. Попытки переключить протокол отладки на HTTP нередко приводят к ошибкам вида «не удалось соединиться с сервером отладки по причине: Не указан сервер отладки». Рассмотрим подробно, почему возникают подобные проблемы и как настроить полноценную серверную отладку.
Проанализируем работу механизма HTTP-отладки. Возможность использования протокола HTTP для отладки появилась в платформе 1С:Предприятие начиная с версии 8.3.7. Однако возможность работы данного механизма напрямую зависит от свойства Режим совместимости конфигурации.
Если в конфигурации установлен режим совместимости с версией 8.2.16 (или любой другой версией ниже 8.3.7), протокол HTTP-отладки работать не будет, даже если сама платформа обновлена до версии 8.3.9 или выше. В этом случае попытка использовать HTTP-сервер отладки кластера вернет ошибку о том, что сервер отладки не указан.
Решение: при режиме совместимости ниже 8.3.7 необходимо использовать стандартный протокол отладки TCP/IP, либо повысить (или отключить) режим совместимости конфигурации в окне свойств дерева конфигурации.
Для работы отладки в серверных вызовах по протоколу TCP/IP служба агента сервера 1С (ragent.exe) должна быть принудительно запущена с параметром -debug. Если этот параметр отсутствует, серверный процесс rphost.exe не передает информацию о выполнении кода отладчику конфигуратора.
Проверим и настроим запуск службы сервера 1С по шагам:
regedit).
HKLM\SYSTEM\CurrentControlSet\Services\1C:Enterprise 8.3 Server Agent...
ImagePath и убедимся, что среди ключей запуска указан ключ -debug. Пример правильной строки запуска:
"C:\Program Files\1cv8\8.3.x.xxxx\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -debug -d "C:\ProgramData\1C\1CEstart"
-debug отсутствует, добавим его через пробел (рекомендуется указывать его в начале списка ключей после пути к ragent.exe) и перезапустим службу 1C:Enterprise 8.3 Server Agent.Даже при успешном запуске сервера с ключом отладки конфигуратор может не перехватывать серверные вызовы из-за выключенных опций подключения предметов отладки.
Рассмотрим порядок настройки конфигуратора:
8.3.7).Отладка по протоколу TCP/IP требует двухсторонней сетевой связности: не только конфигуратор подключается к серверу 1С, но и рабочие процессы сервера (rphost.exe) устанавливают обратное соединение с компьютером разработчика.
Рассмотрим основные сетевые проблемы и способы их устранения:
1540–1591, 1550, 1562), а также добавлены в исключения процессы 1cv8.exe, ragent.exe, rmngr.exe и rphost.exe.hosts на локальном компьютере:
192.168.1.100 server-1c-name