При работе в конфигураторе 1С:Предприятие разработчики часто сталкиваются с неприятным уведомлением: «Для выполнения отладки необходимо включить поддержку сетевого протокола TCP/IP». Эта проблема блокирует возможность полноценной отладки программного кода, что критично для исправления ошибок и разработки нового функционала. Ошибка может возникать как в файловом, так и в клиент-серверном варианте работы. Давайте подробно разберем причины возникновения этой ситуации и пошагово рассмотрим все способы её решения, от самых простых до глубокой настройки системных параметров.
Для начала проанализируем ситуацию: почему 1С требует включения протокола, который и так обычно работает в системе? Основная причина кроется в механизме взаимодействия между отладчиком (конфигуратором) и предметом отладки (клиентским приложением или рабочим процессом сервера). По умолчанию 1С использует диапазон портов 1560:1591 для обмена данными по протоколу TCP/IP. Если эти порты заняты другими процессами или заблокированы сетевыми экранами, конфигуратор не может установить связь и выдает указанную ошибку.
Часто в серверных решениях 8.3 наблюдается избыточное размножение рабочих процессов rphost. Каждый такой процесс занимает порт, и когда их количество исчисляется сотнями, свободные порты в стандартном диапазоне просто заканчиваются. Также причина может быть в некорректном разрешении имени localhost или конфликтах сетевых служб Windows.
Это одно из самых надежных решений. Мы можем вручную указать платформе, какие порты и протоколы использовать для отладки. Для этого нам потребуется создать или отредактировать файл конфигурации.
Рассмотрим по шагам процесс настройки:
C:\Program Files\1cv8\conf\ или C:\Program Files (x86)\1cv8\conf\.debugcfg.xml.
<config xmlns="http://v8.1c.ru/7.4/config">
<debugconf proto="tcp" range="1560:1591"/>
</config>
Если диапазон 1560:1591 уже занят процессами rphost, попробуем расширить его, например, до 1560:2000. После внесения изменений необходимо обязательно перезапустить конфигуратор, а в некоторых случаях и службу сервера 1С.
Проанализируем ситуацию на сервере. Если процессов rphost слишком много, они «съедают» все доступные порты. Посмотрим, как можно «культурно» устранить это безобразие:
В экстренных случаях, если конфигурационные файлы кластера уже повреждены и содержат записи о тысячах процессов, можно отредактировать файл 1CV8Clst.lst (находится в папке srvinfo). Мы должны найти описание процессов, удалить лишние и поправить счетчик процессов, установив его в значение 1. Будьте осторожны: перед редактированием файлов srvinfo службу 1C:Enterprise Server нужно остановить. Для предотвращения повторного разрастания пула процессов на платформе 8.3.27 можно использовать обработку для формирования CRON-расписания перезапуска рабочих процессов кластера.
Иногда отладчик не может найти предмет отладки, потому что имя localhost не сопоставляется с адресом 127.0.0.1. Это часто случается в современных ОС с приоритетом IPv6.
Разберем, как это исправить:
C:\Windows\System32\drivers\etc\hosts.127.0.0.1 localhost. Если она закомментирована знаком #, уберем его.::1 localhost, попробуем её закомментировать, чтобы принудительно использовать IPv4.После сохранения файла попробуйте снова запустить отладку. Этот метод часто помогает, если проблема возникла внезапно на стабильно работающей системе.
В современных версиях платформы (начиная с 8.3.7) реализован более стабильный механизм отладки через протокол HTTP. Он работает через специальный сервис dbgs.
Проанализируем, как переключиться на него:
/debug -http.-debug.Использование HTTP часто снимает все вопросы с блокировкой портов в диапазоне 1500+, так как отладка идет через стандартный для этого сервиса порт (по умолчанию 1550).
Если вышеуказанные методы не помогают, возможно, проблема кроется в «зависших» сетевых сокетах или поврежденном кэше платформы. Рассмотрим радикальные, но эффективные меры:
Очистка кэша: Удалим содержимое папок %AppData%\Local\1C\1cv8 и %AppData%\Roaming\1C\1cv8. Это сбросит настройки сессий и временные идентификаторы, которые могли конфликтовать при запуске отладки.
Сброс сетевых настроек Windows: Выполним в командной строке (CMD) от имени администратора следующую команду:
netsh winsock reset
Эта команда сбрасывает каталог Winsock к состоянию по умолчанию. После её выполнения обязательно требуется перезагрузка компьютера. Также в некоторых случаях помогает перезапуск службы сетевого окружения через PowerShell:
net stop hns
net start hns
Проанализируем сетевое окружение. Установка систем виртуализации (Hyper-V, VirtualBox, VMware) или VPN-клиентов (Cisco AnyConnect, OpenVPN) создает виртуальные сетевые адаптеры. 1С может пытаться установить соединение для отладки через такой «неправильный» адаптер.
Попробуем следующее:
ragent.exe, rmngr.exe и rphost.exe.Иногда решение бывает совсем простым. Рассмотрим еще несколько вариантов, которые помогали коллегам:
ibases.v8i и может исправить параметры подключения.sfc /scannow для восстановления системных файлов, которые могут отвечать за работу сетевых протоколов.Подводя итог, можно сказать, что в большинстве случаев проблема решается либо расширением портов в debugcfg.xml, либо наведением порядка в рабочих процессах сервера. Мы рекомендуем начинать с самых простых действий (перезапуск службы, очистка кэша) и постепенно переходить к более сложным системным настройкам. Если оперативно настроить отладку на сервере не удаётся, для анализа данных подойдёт расширение для отладки СКД и запросов под пользователем.