При разработке и сопровождении информационных систем на платформе 1С:Предприятие часто возникает необходимость в удаленной отладке кода. Ситуация, когда отладка корректно функционирует при работе через RDP-сессию непосредственно на сервере, но отказывается работать при попытке подключения с удаленного рабочего места по сети, является достаточно распространенной и требует системного подхода к диагностике. В этой статье мы подробно разберем возможные причины такого поведения и предложим пошаговые инструкции для решения проблемы.
Мы выясним, почему игнорируются точки останова, когда все, казалось бы, настроено правильно, и как добиться стабильной работы отладчика 1С в распределенной среде.
Первое, на что мы обращаем внимание при проблемах с сетевым взаимодействием, — это средства сетевой безопасности. Даже если вы считаете, что брандмауэр или антивирус отключены, настоятельно рекомендуем выполнить тщательную проверку и, при необходимости, создать явные разрешающие правила.
1540: Основной порт агента сервера 1С (ragent.exe).1541: Порт менеджера кластера 1С (rmngr.exe).1550: Этот порт является критически важным для сервера отладки (по умолчанию) в клиент-серверном варианте при использовании протокола TCP/IP. Без него отладка не будет работать.1560-1591: Диапазон портов, используемый для рабочих процессов 1С и непосредственно отладчиком.1560-1591: Эти порты должны быть разрешены как для TCP, так и для UDP соединений, чтобы отладчик мог взаимодействовать с сервером.Если стандартный диапазон портов 1560-1591 занят или недостаточен, мы можем настроить дополнительный диапазон в файле debugcfg.xml, расположенном в каталоге bin установленной платформы 1С. Это может помочь избежать ошибки "Для выполнения отладки необходимо включить поддержку сетевого протокола TCP/IP".
Сервер 1С должен быть запущен в режиме отладки, чтобы Конфигуратор мог к нему подключиться. Мы проанализируем, как это проверить и настроить.
-debug для ragent.exe: Убедимся, что служба "Агент сервера 1С:Предприятия" запущена с параметром -debug. Автор темы предоставил пример запуска:
"C:\Program Files\1cv8\8.3.22.1709\bin\ragent.exe" -instsrvc -debug -http -tcp -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo"
Важно не просто добавить этот параметр, но и убедиться, что он был применен. Если вы добавляли его в реестр (например, в ветку HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\1C:Enterprise 8.3 Server Agent (x86-64) в значение ImagePath), после этого необходимо обязательно перезапустить службу "Агент сервера 1С:Предприятия" или перезагрузить сервер. Некорректный синтаксис (например, использование /debug вместо -debug или наоборот) также может быть причиной проблемы.
debugcfg.xml: В некоторых случаях, особенно если отладка не подключается, но явных ошибок нет, мы можем проверить или создать файл debugcfg.xml в каталоге bin платформы 1С на сервере. Он позволяет настроить специфические параметры отладки, включая дополнительный диапазон портов. Например, если основной диапазон 1560-1591 занят, мы можем добавить:
<?xml version="1.0" encoding="UTF-8"?>
<debug-config xmlns="http://v8.1c.ru/platform/debug-config">
<debug-range-start>1600</debug-range-start>
<debug-range-end>1631</debug-range-end>
</debug-config>
После изменения этого файла также потребуется перезапустить службу сервера 1С.
Далее мы сосредоточимся на настройках, которые необходимо выполнить в Конфигураторе 1С на удаленном клиентском компьютере.
hosts на клиентском компьютере (обычно C:\Windows\System32\drivers\etc\hosts), сопоставив IP-адрес сервера с его сетевым именем. Пример записи:
192.168.1.100 My1CServer
где 192.168.1.100 - IP-адрес сервера 1С, а My1CServer - его сетевое имя.
/debug.Одним из частых источников проблем при работе с 1С является несоответствие версий. Мы тщательно проверим версии платформы.
Для корректной работы отладчика пользователь, под которым осуществляется подключение к информационной базе, должен иметь соответствующие права. Мы проверим этот аспект.
Общая сетевая связность между клиентским компьютером и сервером 1С является фундаментом для удаленной отладки. Мы проанализируем основные методы проверки.
ping с клиентского компьютера на IP-адрес и сетевое имя сервера 1С, чтобы убедиться в базовой сетевой доступности.
ping <IP-адрес сервера>
ping <Сетевое_Имя_Сервера>
Если пинг по IP-адресу проходит, а по имени нет, это указывает на проблемы с DNS или разрешением имен, что может быть устранено добавлением записи в файл hosts, как мы уже упоминали.
telnet (или Portqry, если Telnet недоступен) для проверки доступности конкретных портов сервера 1С с клиентского компьютера.
telnet <IP-адрес сервера> 1540
telnet <IP-адрес сервера> 1541
telnet <IP-адрес сервера> 1550
telnet <IP-адрес сервера> 1560
Если соединение устанавливается (черный экран Telnet), значит, порт открыт и доступен. Если нет (ошибка "Could not open connection to the host"), это указывает на блокировку порта брандмауэром или его недоступность по другим сетевым причинам.
Неочевидная, но иногда критичная деталь, касающаяся регистрации информационной базы.
MY_DB, то и в стартере клиента должно быть MY_DB, а не my_db или My_Db. Платформа 1С может быть чувствительна к регистру в некоторых случаях, что может повлиять на успешное подключение отладчика.Проанализировав все эти шаги и внимательно проверив каждую из настроек, мы с высокой вероятностью сможем выявить и устранить причину неработоспособности удаленной отладки в 1С:Предприятии. Главное — это методичный подход и пошаговая проверка каждого элемента системы.