Часто разработчики сталкиваются с ситуацией, когда при попытке отладить HTTP-сервис в 1С точка останова просто не срабатывает, и код выполняется без остановки. Это может сбить с толку, но, как правило, причина кроется в настройках конфигуратора, параметрах публикации на веб-сервере или особенностях запуска информационной базы. Давайте вместе пошагово разберемся, как правильно настроить окружение для комфортной отладки HTTP-сервисов.
Проанализируем ситуацию и выясним, какие шаги необходимо предпринять, чтобы отладчик начал "видеть" вызовы ваших сервисов.
Это наиболее современный и рекомендуемый способ. Он требует настройки на нескольких уровнях: в конфигураторе, при публикации базы и в параметрах подключения. Рассмотрим каждый этап подробно.
Настройка параметров конфигуратора
Первым делом убедимся, что сам конфигуратор готов работать с отладкой по нужному протоколу. Для этого выполним следующие действия:
Откройте меню Сервис → Параметры.
Перейдите на вкладку "Отладка".
В поле Протокол отладки выберите значение "Отладка по протоколу HTTP".
Укажите IP-адрес компьютера, на котором запущен конфигуратор, и диапазон портов для отладки. Стандартный диапазон 1560-1591 обычно подходит.
Корректная публикация на веб-сервере
Отладка не заработает, если при публикации информационной базы вы не разрешили ее явным образом. Проверим и настроим это.
В конфигураторе откройте меню Администрирование → Публикация на веб-сервере.
Перейдите на вкладку "Прочие".
Установите флажок "Разрешена отладка (протокол HTTP)".
Убедитесь, что поле Адрес сервера отладки заполнилось автоматически на основе настроек из предыдущего шага.
После этого обязательно нажмите кнопку "Опубликовать" и перезапустите веб-сервер (например, Apache или IIS).
Важный момент: эти действия приводят к изменениям в файле публикации default.vrd, который находится в каталоге вашей публикации на веб-сервере. В нем должна появиться строка, разрешающая отладку. Посмотрим на пример такой строки:
Вы можете даже внести эти изменения вручную, если по какой-то причине автоматическая публикация не сработала.
Подключение к предметам отладки
Теперь нужно сказать конфигуратору, чтобы он "слушал" вызовы HTTP-сервисов. Это ключевой шаг, который многие пропускают.
Откройте меню Отладка → Подключение.
В открывшемся окне нажмите на кнопку "Автоматическое подключение".
В списке предметов отладки установите флажок напротив пункта "HTTP-сервисы на сервере".
Обратите внимание: иногда эту настройку приходится активировать заново при каждом запуске конфигуратора. Если отладка снова перестала работать, в первую очередь проверьте этот пункт.
Поведение отладчика напрямую зависит от того, работаете вы с файловой или клиент-серверной базой. Причины, по которым не срабатывает точка останова, для них различаются.
Выясним причину для файлового варианта. В этом режиме нет постоянно работающего сервера 1С, который мог бы обрабатывать HTTP-запросы. Эту роль на себя берет активный клиентский сеанс.
Решение: для того чтобы отладка HTTP-сервисов в файловой базе заработала, необходимо запустить хотя бы один сеанс "1С:Предприятие". Этот сеанс будет "хостом" для вашего HTTP-сервиса, и именно к нему подключится отладчик. Без запущенного клиента код сервиса просто некому выполнять, и точка останова никогда не сработает.
В клиент-серверном варианте код HTTP-сервисов выполняется рабочим процессом сервера 1С (rphost). Чтобы отладчик мог к нему подключиться, служба сервера 1С должна быть запущена в режиме отладки.
Решение: необходимо запустить службу Агент сервера 1С:Предприятие со специальным ключом -debug.
Откройте редактор реестра Windows (regedit).
Найдите ветку, отвечающую за запуск службы вашего сервера. Обычно путь выглядит так: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\1C:Enterprise 8.3 Server Agent...
Найдите параметр ImagePath. Его значение — это строка запуска службы.
Добавьте в конец этой строки ключ -debug. Посмотрим на пример, как это должно выглядеть:
"C:\Program Files\1cv8\8.3.XX.XXXX\bin\ragent.exe" -srvc -agent ... -debug
Сохраните изменения и обязательно перезапустите службу "Агент сервера 1С:Предприятие".
Если вы выполнили все шаги, а точка останова по-прежнему игнорируется, проанализируем возможные внешние проблемы:
Брандмауэр или антивирус: Убедитесь, что порты, указанные для отладки (например, 1560-1591), не заблокированы брандмауэром Windows или другим сетевым экраном как на клиенте, так и на сервере.
Перезапуск служб: После любых изменений в настройках публикации или параметрах запуска сервера 1С всегда перезапускайте и веб-сервер (Apache, IIS), и службу "Агент сервера 1С:Предприятие". Это гарантирует, что новые настройки будут применены.
Адрес отладчика: При отладке по TCP/IP убедитесь, что в качестве адреса отладчика указан корректный IP-адрес машины, где запущен конфигуратор.
Инструменты для вызова: Для тестирования и вызова HTTP-сервиса используйте внешние инструменты, такие как Postman. Это поможет исключить ошибки на стороне клиента, который отправляет запрос, и точно убедиться, что запрос доходит до 1С.
Следуя этим шагам, вы сможете настроить отладку и сосредоточиться на разработке логики ваших HTTP-сервисов, а не на борьбе с инструментами.
← К списку