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

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

Ситуация, когда точка останова в процедуре с префиксом &НаСервере или в серверном модуле не срабатывает, знакома многим разработчикам. При этом в клиентском коде отладка может работать исправно. Разберем по шагам, почему это происходит и как настроить сервер 1С для полноценной работы отладчика.

Проверка параметров запуска службы сервера 1С

Первым делом проанализируем настройки самой службы 1С:Предприятия. По умолчанию отладка на сервере выключена в целях производительности. Для её включения необходимо добавить специальный ключ в строку запуска службы.

Рассмотрим порядок действий для Windows-сервера:

  1. Откроем редактор реестра (regedit).
  2. Перейдем по пути: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\1C:Enterprise 8.3 Server Agent... (имя ветки зависит от версии и экземпляра сервера).
  3. Найдем параметр ImagePath.
  4. В конец строки добавим параметр -debug.

Важный нюанс: часто возникают споры о том, использовать дефис (-debug) или прямой слэш (/debug). На практике, как показывают обсуждения специалистов, платформа воспринимает оба варианта. Однако критически важно после внесения изменений выполнить полный перезапуск службы сервера 1С через консоль services.msc. Без перезапуска новые параметры не вступят в силу.

Выбор между протоколами TCP и HTTP

Начиная с версии 8.3.7, платформа поддерживает два режима отладки. Выясним, какой из них подходит в вашем случае.

Отладка по протоколу TCP: используется по умолчанию при наличии ключа -debug. В этом режиме серверный процесс rphost сам инициирует соединение с вашим Конфигуратором. Это отлично работает в локальной сети, но часто вызывает проблемы, если между сервером и компьютером разработчика есть брандмауэр или VPN.

Отладка по протоколу HTTP: включается связкой ключей -debug -http. В этом режиме используется специальный сервис отладки. Рассмотрим пример строки запуска для HTTP-отладки:


"C:\Program Files\1cv8\8.3.18.1208\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo" -debug -http

Если вы решили использовать HTTP-отладку, не забудьте изменить настройки в самом Конфигураторе: Сервис — Параметры — Отладка, выберите протокол HTTP и при необходимости укажите адрес сервера отладки.

Настройка брандмауэра и сетевых доступов

Проанализируем ситуацию: флаг установлен, служба перезапущена, но отладка на сервере всё равно не "залетает". Одной из самых частых причин является блокировка входящих соединений на стороне клиентского компьютера (машины разработчика).

При использовании TCP-отладки сервер пытается "постучаться" к вам на порты из диапазона 1560–1591. Если при первом запуске 1С вы случайно нажали "Отмена" в окне системного брандмауэра Windows с запросом разрешений для 1cv8.exe, отладка работать не будет. Нам необходимо:

Отладка фоновых заданий

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

  1. В Конфигураторе зайдем в меню Отладка — Подключение.
  2. Нажмем кнопку Настройка....
  3. Установим флажок «Автоматическое подключение: Фоновые задания».
  4. Также проверим в Сервис — Параметры — Запуск 1С:Предприятия — Дополнительно, чтобы стояла галочка «Устанавливать режим отладки».

Без этих настроек, даже при идеально настроенном сервере, точки останова в фоновых заданиях срабатывать не будут.

Специфические проблемы платформы и кэша

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

Разберем дополнительные меры спасения:

Подводя итог, можно сказать, что решение проблемы серверной отладки — это всегда последовательная проверка цепочки: Ключ в реестре -> Перезапуск службы -> Разрешение в брандмауэре -> Настройка автоматического подключения в Конфигураторе. Выполнив эти действия, мы гарантированно получим работающий инструмент для анализа кода.

← На главную