Многие технические специалисты сталкиваются с ситуацией, когда после планового обновления платформы 1С:Предприятие до версии 8.3.15 (например, 8.3.15.1700) привычная отладка на сервере перестает функционировать. При этом все стандартные действия — установка ключа -debug в параметрах запуска службы — выполнены, но точки останова в серверных процедурах игнорируются, хотя клиентская часть отлаживается без проблем. Разберем детально, почему это происходит и как настроить систему для корректной работы.
Начиная с версии платформы 8.3.15, компания «1С» изменила архитектуру механизмов отладки. Если раньше по умолчанию использовался протокол TCP/IP, то в новых версиях приоритетным стал протокол HTTP. Старый механизм TCP часто работал нестабильно в сложных сетевых инфраструктурах, через NAT или VPN, так как требовал открытия широкого диапазона динамических портов. Переход на HTTP призван решить эти проблемы, однако он требует явного переопределения параметров запуска сервера и настроек клиентского приложения.
Проанализируем ситуацию: если в окне «Подключение» (меню Отладка -> Подключение) вы видите только одну строку (клиентский сеанс) и серверная часть не появляется даже при наличии флага -debug, значит, сервер отладки не может инициализироваться по старому протоколу или блокируется сетевыми правилами. Рассмотрим пошагово, как перевести отладку на рельсы HTTP.
Для серверов под управлением Linux недостаточно просто добавить ключ -debug. Нам необходимо явно указать использование HTTP-протокола. В зависимости от используемого дистрибутива и способа инициализации системы, настройки могут находиться в разных файлах.
Если ваша система использует классический init.d, откроем файл конфигурации службы /etc/init.d/srv1cv83. Найдем строку, отвечающую за параметры запуска (обычно это переменная SRV1CV8_DEBUG или параметры в блоке запуска ragent), и приведем её к следующему виду:
# Пример добавления ключей в конфигурационный файл
SRV1CV8_DEBUG=-debug -http
Однако в современных дистрибутивах (Ubuntu 18.04+, CentOS 7+, Debian 9+) управление службами чаще всего происходит через systemd. В этом случае нам нужно отредактировать unit-файл сервиса. Обычно он расположен по пути /lib/systemd/system/srv1cv83.service. Найдем секцию [Service] и строку ExecStart. Добавим необходимые ключи:
[Service]
ExecStart=/opt/1cv8/x86_64/8.3.15.1700/ragent -daemon -debug -http
После изменения файла systemd обязательно выполним перечитку конфигурации и перезапуск службы, чтобы изменения вступили в силу:
systemctl daemon-reload
systemctl restart srv1cv83
Даже если сервер готов отдавать отладочную информацию по HTTP, Конфигуратор по привычке может пытаться искать сервер отладки по протоколу TCP. Перенастроим клиентское место. Пройдем по шагам:
192.168.1.50:1560).Теперь проверим список подключенных предметов отладки. В меню Отладка — Подключение в верхней части списка должен появиться тип «Сервер» с указанием вашего протокола http://....
Важно помнить, что при использовании HTTP-отладки используются другие порты. По умолчанию для сервера отладки (процесс dbgs) резервируется диапазон портов 1560–1591. Если на вашем Linux-сервере включен iptables или firewalld, необходимо разрешить входящие соединения по этим портам.
Посмотрим на пример команды для firewalld (CentOS/RHEL):
firewall-cmd --permanent --add-port=1560-1591/tcp
firewall-cmd --reload
И для iptables (Ubuntu/Debian):
iptables -A INPUT -p tcp --dport 1560:1591 -j ACCEPT
Важный момент: если клиент (Конфигуратор) и сервер находятся в разных сетях, убедитесь, что маршрутизаторы не блокируют этот трафик. В отличие от TCP, HTTP-отладка более лояльна к сетевым задержкам, но требует четко открытого порта сервера отладки.
Если после выполнения всех настроек отладка все еще не работает, проанализируем следующие факторы:
dbgs. Именно он отвечает за обмен данными между ragent и отладчиком. На Linux это можно сделать командой ps -ef | grep dbgs. Если его нет, попробуйте запустить его вручную для теста с параметрами -http -port 1560.::1, в то время как Windows-клиент обращается по IPv4. В файле /etc/hosts закомментируйте строку ::1 localhost или принудительно укажите IPv4 адрес в параметре -debuggerServerAddr при запуске службы./home/usr1cv8/.1cv8/1C/1cv8/reg_1541/snccn... (в зависимости от вашего пути к данным сервера).usr1cv8 (или того, под которым запущен сервер) есть полные права на запись в каталог с данными сервера. После обновления платформы права иногда могут «слетать», что мешает созданию сессий отладки.Разберем еще один «секретный метод», который иногда выручает при переходе между мажорными версиями платформы: вместо обновления пакетов поверх старых (dpkg -i или rpm -Uvh), полностью удалите старую версию платформы и установите новую «с нуля». Это гарантирует, что конфигурационные скрипты инициализации обновятся корректно и не будут содержать устаревших параметров, мешающих работе ключа -http.
Следуя этой инструкции, мы переведем процесс отладки на современный стек протоколов, что обеспечит стабильную работу разработчика в новых версиях платформы 1С:Предприятие 8.3.15 и выше.