При разработке и отладке мобильных клиентов или внешних соединений в среде 1С:Предприятие (есть готовый инструмент для пошаговой отладки кода 1С в режиме Предприятие) часто требуется переход с классического протокола TCP/IP на протокол HTTP. Однако этот процесс нередко сопровождается ошибкой: «Не удалось соединиться с сервером отладки по причине: Not found. The requested URL was not found on this server». Ситуация осложняется тем, что ошибка может возникать даже после переустановки платформы или отката на предыдущие версии (8.3.13, 8.3.18, 8.3.20). Рассмотрим подробно, как диагностировать и устранить эту проблему.
Ошибка Not found (404) при попытке инициализации отладки означает, что Конфигуратор 1С пытается отправить HTTP-запрос на определенный адрес и порт, но не получает корректного ответа (поможет сбор и анализ HTTP-запросов для выявления ошибок) от внутреннего веб-сервиса отладки. Это происходит в следующих случаях:
Первым делом проверим, с какими параметрами запускается служба 1C:Enterprise 8.3 Server Agent. Для работы отладки по HTTP недостаточно простого ключа -debug. Проанализируем строку запуска в реестре Windows.
Win + R, введем regedit и перейдем по пути: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\1C:Enterprise 8.3 Server Agent....ImagePath.-debug и -http.Пример корректной строки запуска:
"C:\Program Files\1cv8\8.3.20.1674\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo" -debug -http
Важный момент: Если вы добавили ключи, необходимо перезапустить службу сервера 1С через консоль services.msc, чтобы изменения вступили в силу.
По умолчанию сервер отладки 1С по протоколу HTTP использует порт 1550. Выясним, действительно ли этот порт прослушивается системой и не занят ли он сторонним процессом. Для этого воспользуемся командной строкой.
Выполним команду:
netstat -ano | findstr :1550
Если в ответ система ничего не выводит, значит, сервер отладки не запустился. Если же порт занят процессом с PID, отличным от процесса rmngr.exe или ragent.exe (решается через администрирование кластеров серверов и баз данных 1С), значит, возникает конфликт с другим веб-сервером. В этом случае мы можем принудительно назначить другой порт для отладки, добавив в строку запуска службы ключ -debugServerPort 1560 (или любой другой свободный порт из разрешенного диапазона).
Если ключи установлены, а ошибка Not found сохраняется, нам необходимо понять, куда именно "стучится" система. Настроим технологический журнал для сбора событий отладки — для этого есть анализ технологического журнала и серверов 1С. Создадим файл logcfg.xml в папке C:\Program Files\1cv8\conf (или в папке bin\conf конкретной версии платформы).
Рассмотрим пример настройки logcfg.xml для анализа работы сервера отладки:
<config xmlns="http://v8.1c.ru/v8/tech-log">
<log location="C:\1C_Logs\DebugLog" history="1">
<event>
<eq property="Name" value="DBGS"/>
</event>
<event>
<eq property="Name" value="EXCP"/>
</event>
<property name="all"/>
</log>
</config>
После активации журнала попробуем снова зайти в Конфигуратор и переключить режим отладки. Проанализируем логи в папке C:\1C_Logs\DebugLog. Ищем записи с событием DBGS. Это позволит выяснить точный URL, который вызывает ошибку 404.
Иногда проблема кроется в настройках самого Конфигуратора, который пытается найти сервер отладки по неверному адресу. Проделаем следующие шаги:
Рассмотрим ситуацию с IPv6: В некоторых сетях 1С может пытаться обратиться по адресу http://[::1]:1550, который не обрабатывается корректно. Явное указание IPv4 адреса (например, 127.0.0.1) часто решает проблему.
Если ошибка "залипла", проанализируем состояние локального кэша. Очистим содержимое следующих папок:
%AppData%\1C\1cv8%LocalAppData%\1C\1cv8Также проверим наличие файла debugcfg.xml в каталоге установки платформы. Если этот файл содержит некорректные настройки адреса сервера отладки, он будет иметь приоритет над настройками в интерфейсе Конфигуратора. Попробуем временно переименовать или удалить его.
Даже при отключенном брандмауэре Windows некоторые антивирусы с функцией сетевого экрана могут блокировать специфические HTTP-запросы на нестандартные порты. Выясним, проходят ли пакеты, выполнив проверку через браузер на самом сервере:
Введите в адресную строку: http://localhost:1550/e1debug/. Если сервер отладки запущен корректно, вы должны увидеть техническую информацию в формате XML/JSON, а не стандартную страницу ошибки 404. Если браузер выдает "Not Found", значит проблема в работе самой службы 1С (не подхватились ключи), а если "Не удается получить доступ к сайту" — значит порт закрыт или не прослушивается.
Подводя итог, можно сказать, что исправление ошибки Not found при HTTP-отладке требует комплексного подхода: от проверки ключей запуска -debug -http в реестре до анализа трафика через технологический журнал. Последовательное выполнение описанных шагов позволит вам успешно настроить среду для отладки мобильного клиента.