Обновление платформы «1С:Предприятие» — стандартная процедура для системного администратора и разработчика. Однако часто после установки нового релиза пользователи сталкиваются с неприятной проблемой: привычный режим отладки (debug) на сервере перестает работать. Точки останова в серверных модулях конфигурации просто игнорируются, а в списке подключенных предметов отладки серверные сеансы не отображаются.
В этой статье мы подробно разберем, почему возникает эта проблема, проанализируем различные варианты конфигурации строки запуска службы, а также рассмотрим сопутствующие сетевые нюансы и настройки брандмауэра, которые мешают стабильной работе отладчика.
Основная причина, по которой после обновления платформы «ломается» режим отладки, заключается в изменении путей к исполняемым файлам сервера 1С. При установке нового релиза создается новая директория (например, вместо 8.3.13.1513 файлы теперь запускаются из 8.3.13.1690). Служба сервера 1С перерегистрируется в операционной системе, и настройки реестра Windows, отвечающие за параметры запуска, сбрасываются к значениям по умолчанию. Параметр -debug, который ранее был прописан вручную, просто исчезает из строки запуска новой службы.
Кроме того, операционная система и брандмауэр Windows (файрвол) воспринимают исполняемые файлы из новой папки как абсолютно новые приложения, что приводит к блокировке сетевых портов, необходимых для обмена данными между конфигуратором и рабочими процессами.
Для того чтобы сервер 1С:Предприятие запускался в режиме отладки, необходимо добавить соответствующий ключ в параметры запуска службы 1C:Enterprise 8.3 Server Agent. Разберем этот процесс по шагам.
regedit и нажмем Enter.HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\1C:Enterprise 8.3 Server Agent (x86-64)
ImagePath. Этот параметр содержит строку запуска службы агента сервера.ImagePath для его редактирования. Нам необходимо дописать ключ отладки.Рассмотрим подробнее правильный синтаксис строки запуска. Существует два протокола отладки: классический TCP/IP и более современный HTTP. Выбор протокола зависит от вашей сетевой инфраструктуры.
Этот вариант используется по умолчанию. Ключ -debug можно добавить в конец строки. Важно следить за кавычками: путь к исполняемому файлу должен быть в кавычках, а параметры запуска службы — за их пределами.
Пример правильной строки запуска для протокола TCP/IP:
"C:\Program Files\1cv8\8.3.13.1690\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo" -debug
Важное правило позиционирования: вопреки распространенному мнению, ключ -debug может находиться в любом месте строки после исполняемого файла, но безопаснее всего добавлять его в самый конец строки запуска или сразу после параметра -agent.
Начиная с версии платформы 8.3.7, 1С поддерживает отладку по протоколу HTTP. Она работает стабильнее в сложных сетях (например, при подключении разработчиков через VPN). Для ее включения используется комбинация ключей -debug -http.
Пример правильной строки запуска для протокола HTTP:
"C:\Program Files\1cv8\8.3.13.1690\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo" -debug -http
Если вам требуется зафиксировать конкретный порт для сервера отладки (чтобы не открывать динамический диапазон в брандмауэре), используйте дополнительный параметр -debugServerPort. По умолчанию для HTTP-отладки используется порт 1550, но его можно переопределить:
"C:\Program Files\1cv8\8.3.13.1690\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo" -debug -http -debugServerPort 1542
После внесения изменений в реестр обязательно перезапустите службу 1C:Enterprise 8.3 Server Agent через оснастку «Службы» (services.msc) операционной системы.
Иногда служба успешно перезапускается, но режим отладки все равно не активен. Разберем, как проверить, применились ли параметры реестра операционной системой.
Откроем Диспетчер задач на сервере, перейдем на вкладку «Подробности» (Details), найдем процесс ragent.exe. Добавим колонку «Командная строка» (Command Line). Мы должны увидеть полную строку запуска процесса вместе с ключом -debug. Если ключа там нет, значит, служба была запущена по старому пути или изменения в реестре были внесены не в ту ветку (например, если на сервере установлено несколько разных версий 1С).
Проанализируем ситуацию, когда в диспетчере задач ключ присутствует, но отладка на рабочих местах разработчиков все равно не работает. Это явный признак блокировки трафика сетевым экраном.
Когда вы обновляете платформу, исполняемые файлы ragent.exe, rmngr.exe и rphost.exe начинают запускаться из новой папки. Если правила вашего брандмауэра были настроены по принципу «Разрешить программе доступ в сеть» с указанием конкретного пути, они перестанут действовать для новой версии платформы.
Рекомендуется настроить правила брандмауэра по номерам портов, а не по путям к файлам. Для успешной работы отладки на сервере должны быть открыты следующие порты:
-debugServerPort.Если используется классическая отладка по TCP/IP, рабочие процессы сервера 1С инициируют обратное соединение к компьютеру разработчика на динамические порты. В условиях сложной сетевой структуры (маршрутизаторы, NAT, VPN) это соединение почти всегда блокируется. Именно поэтому для удаленной работы настоятельно рекомендуется использовать связку -debug -http, так как в этом случае все сетевые запросы идут в одну сторону — от конфигуратора разработчика к серверу 1С.
Разберем одну неочевидную техническую проблему, с которой сталкиваются администраторы крупных баз данных 1С. В консоли администрирования серверов 1С для локального кластера можно настроить интервал перезапуска рабочих процессов (параметр Интервал перезапуска рабочих процессов).
Если этот параметр отличен от нуля (например, настроен агрессивный перезапуск процессов раз в несколько минут для борьбы с утечками памяти), отладка будет постоянно сбоить или отключаться. При завершении процесса rphost.exe, на котором находился сеанс разработчика, отладочная сессия аварийно закрывается. Для стабильной работы отладки на тестовом сервере этот интервал должен быть равен 0 (перезапуск отключен).
Напоследок убедимся, что настройки самого конфигуратора и клиентского приложения позволяют выполнять отладку:
Выполнив эти шаги по порядку — от настройки реестра и проверки брандмауэра до анализа параметров перезапуска процессов — мы сможем гарантированно восстановить работоспособность режима отладки на сервере 1С после любого обновления платформы.