Как правильно настроить отладку на сервере 1С:Предприятие 8.3?

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

Настройка отладки программного кода, исполняемого на стороне сервера, часто вызывает трудности даже у опытных разработчиков. Типичная ситуация: ключ в реестре прописан, служба перезапущена, но точки останова в серверных модулях «не отрабатывают». Разберем последовательно все этапы настройки и выясним, какие нюансы мешают полноценной работе отладчика.

Шаг 1. Активация режима отладки в реестре Windows

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

  1. Откроем редактор реестра (regedit) на сервере, где установлена серверная часть 1С.
  2. Перейдем в ветку: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\1C:Enterprise 8.3... (название зависит от конкретной версии платформы).
  3. Найдем параметр ImagePath. Это строка запуска исполняемого файла службы.
  4. Добавим в конец строки ключ -debug. Важный момент: если путь к файлу обрамлен кавычками, ключ должен стоять после закрывающей кавычки через пробел.

Пример правильной строки в реестре:


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

После внесения изменений обязательно перезапустим службу 1C:Enterprise 8.3 Server Agent. Без перезапуска новые параметры реестра не вступят в силу.

Шаг 2. Настройка брандмауэра и портов

Проанализируем сетевое взаимодействие. Часто разработчики забывают, что при классической TCP-отладке (используемой по умолчанию) соединение инициируется не только от клиента к серверу, но и от сервера к клиенту. Если между ними стоит сетевой экран (брандмауэр), он может блокировать входящий пакет от сервера.

Разберем, какие порты должны быть открыты:

  1. Диапазон портов: По умолчанию для отладки используется диапазон 1560–1591.
  2. Направление: Эти порты должны быть открыты как на сервере 1С, так и на рабочем компьютере разработчика для входящих и исходящих соединений.
  3. Проверка: В качестве диагностической меры попробуем временно полностью отключить брандмауэр Windows (или сторонний антивирусный сетевой экран) на обеих машинах. Если отладка «залетала», значит, проблема была именно в правилах фильтрации трафика.

Шаг 3. Автоматическое подключение предметов отладки

Выясним причину ситуации, когда сеансы в окне «Подключение» видны, но точка останова остается пустой или игнорируется. Это часто связано с тем, что конфигуратор не «подцепил» серверный вызов или фоновое задание автоматически. Рассмотрим по шагам, как это исправить в конфигураторе:

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

Если серверный процесс все равно не появляется в списке, нажмем кнопку Искать на удаленном компьютере и явно укажем IP-адрес сервера 1С.

Шаг 4. Использование протокола HTTP (современный метод)

Начиная с версии 8.3.7, платформа поддерживает отладку по протоколу HTTP. Рассмотрим подробнее, почему это удобнее: она работает через фиксированный порт и лучше проходит через NAT и сложные сетевые настройки. Чтобы включить этот режим, вместо -debug (или в дополнение к нему) можно использовать запуск сервера отладки dbgs.

В настройках конфигуратора (Сервис — Параметры — Отладка) выберем способ отладки «Протокол HTTP». Укажем адрес сервера отладки (обычно это адрес сервера 1С) и порт (по умолчанию 1550). Это решение часто оказывается более стабильным в распределенных сетях.

Шаг 5. Тонкие моменты: DNS и несколько сетевых карт

Посмотрим на ситуацию, когда сервер имеет несколько сетевых интерфейсов или подключен через VPN. Проанализируем, как 1С определяет адрес клиента. Если сервер видит клиента под одним IP, а конфигуратор ожидает соединения на другом — отладка не сработает.

Рекомендуем проверить файл hosts на сервере (C:\Windows\System32\drivers\etc\hosts). Добавим туда запись, жестко связывающую имя компьютера разработчика с его актуальным IP-адресом:

192.168.1.7 MY-DEV-PC

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

Резюме

Для успешной отладки на сервере необходимо выполнить три критических условия:

  1. Наличие ключа -debug в строке запуска службы и последующий рестарт службы.
  2. Доступность портов 1560-1591 в обе стороны в настройках брандмауэра.
  3. Включенные настройки Автоматического подключения серверных вызовов в самом конфигураторе.
← На главную