Почему не срабатывает точка останова при отладке HTTP-сервиса в 1С и как это исправить?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← К списку

Часто разработчики сталкиваются с ситуацией, когда при попытке отладить HTTP-сервис в 1С точка останова просто не срабатывает, и код выполняется без остановки. Это может сбить с толку, но, как правило, причина кроется в настройках конфигуратора, параметрах публикации на веб-сервере или особенностях запуска информационной базы. Давайте вместе пошагово разберемся, как правильно настроить окружение для комфортной отладки HTTP-сервисов.

Проанализируем ситуацию и выясним, какие шаги необходимо предпринять, чтобы отладчик начал "видеть" вызовы ваших сервисов.

Решение 1: Комплексная настройка отладки по протоколу HTTP

Это наиболее современный и рекомендуемый способ. Он требует настройки на нескольких уровнях: в конфигураторе, при публикации базы и в параметрах подключения. Рассмотрим каждый этап подробно.

  1. Настройка параметров конфигуратора

    Первым делом убедимся, что сам конфигуратор готов работать с отладкой по нужному протоколу. Для этого выполним следующие действия:

    1. Откройте меню Сервис → Параметры.

    2. Перейдите на вкладку "Отладка".

    3. В поле Протокол отладки выберите значение "Отладка по протоколу HTTP".

    4. Укажите IP-адрес компьютера, на котором запущен конфигуратор, и диапазон портов для отладки. Стандартный диапазон 1560-1591 обычно подходит.

  2. Корректная публикация на веб-сервере

    Отладка не заработает, если при публикации информационной базы вы не разрешили ее явным образом. Проверим и настроим это.

    1. В конфигураторе откройте меню Администрирование → Публикация на веб-сервере.

    2. Перейдите на вкладку "Прочие".

    3. Установите флажок "Разрешена отладка (протокол HTTP)".

    4. Убедитесь, что поле Адрес сервера отладки заполнилось автоматически на основе настроек из предыдущего шага.

    5. После этого обязательно нажмите кнопку "Опубликовать" и перезапустите веб-сервер (например, Apache или IIS).

    Важный момент: эти действия приводят к изменениям в файле публикации default.vrd, который находится в каталоге вашей публикации на веб-сервере. В нем должна появиться строка, разрешающая отладку. Посмотрим на пример такой строки:

    
    
    

    Вы можете даже внести эти изменения вручную, если по какой-то причине автоматическая публикация не сработала.

  3. Подключение к предметам отладки

    Теперь нужно сказать конфигуратору, чтобы он "слушал" вызовы HTTP-сервисов. Это ключевой шаг, который многие пропускают.

    1. Откройте меню Отладка → Подключение.

    2. В открывшемся окне нажмите на кнопку "Автоматическое подключение".

    3. В списке предметов отладки установите флажок напротив пункта "HTTP-сервисы на сервере".

    Обратите внимание: иногда эту настройку приходится активировать заново при каждом запуске конфигуратора. Если отладка снова перестала работать, в первую очередь проверьте этот пункт.

Решение 2: Учет особенностей типа информационной базы

Поведение отладчика напрямую зависит от того, работаете вы с файловой или клиент-серверной базой. Причины, по которым не срабатывает точка останова, для них различаются.

Для файловой базы

Выясним причину для файлового варианта. В этом режиме нет постоянно работающего сервера 1С, который мог бы обрабатывать HTTP-запросы. Эту роль на себя берет активный клиентский сеанс.

Решение: для того чтобы отладка HTTP-сервисов в файловой базе заработала, необходимо запустить хотя бы один сеанс "1С:Предприятие". Этот сеанс будет "хостом" для вашего HTTP-сервиса, и именно к нему подключится отладчик. Без запущенного клиента код сервиса просто некому выполнять, и точка останова никогда не сработает.

Для клиент-серверной базы

В клиент-серверном варианте код HTTP-сервисов выполняется рабочим процессом сервера 1С (rphost). Чтобы отладчик мог к нему подключиться, служба сервера 1С должна быть запущена в режиме отладки.

Решение: необходимо запустить службу Агент сервера 1С:Предприятие со специальным ключом -debug.

  1. Откройте редактор реестра Windows (regedit).

  2. Найдите ветку, отвечающую за запуск службы вашего сервера. Обычно путь выглядит так: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\1C:Enterprise 8.3 Server Agent...

  3. Найдите параметр ImagePath. Его значение — это строка запуска службы.

  4. Добавьте в конец этой строки ключ -debug. Посмотрим на пример, как это должно выглядеть:

    "C:\Program Files\1cv8\8.3.XX.XXXX\bin\ragent.exe" -srvc -agent ... -debug

  5. Сохраните изменения и обязательно перезапустите службу "Агент сервера 1С:Предприятие".

Что еще проверить, если ничего не помогает?

Если вы выполнили все шаги, а точка останова по-прежнему игнорируется, проанализируем возможные внешние проблемы:

Следуя этим шагам, вы сможете настроить отладку и сосредоточиться на разработке логики ваших HTTP-сервисов, а не на борьбе с инструментами.

← К списку