Как настроить отладку серверных процедур 1С, если сервер находится на другом компьютере?

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

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

Шаг 1. Включение режима отладки на сервере 1С

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

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

Пример того, как должна выглядеть строка запуска после редактирования:


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

После внесения изменений обязательно перезагрузим службу сервера 1С через оснастку "Службы" (services.msc). Без перезапуска изменения в реестре не вступят в силу.

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

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

На стороне сервера: Необходимо разрешить входящие соединения для диапазона портов, указанных в параметре -range (по умолчанию это 1560-1591). Эти порты используются процессом rphost для обмена данными с отладчиком.

На стороне клиентского компьютера: Это критический момент, который часто упускают. Брандмауэр на компьютере программиста должен разрешать входящие подключения от сервера 1С. Выясним причину: в режиме TCP сервер сам "стучится" к клиенту. Мы рекомендуем добавить исполняемый файл 1cv8.exe в список исключений брандмауэра Windows или создать правило для входящих подключений по диапазону портов 1560-1591.

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

Теперь перейдем к настройкам самого Конфигуратора на локальном компьютере. Нам нужно указать системе, где именно искать предметы отладки. Рассмотрим порядок действий:

  1. Откроем меню Сервис — Параметры.
  2. Перейдем на вкладку Запуск 1С:Предприятия, далее выберем подпункт Дополнительные.
  3. Убедимся, что установлены флажки "Устанавливать режим отладки" и "Использовать текущие настройки при запуске".
  4. Далее воспользуемся меню Отладка — Подключение....
  5. В открывшемся окне нажмем кнопку Настройка.
  6. Здесь крайне важно проверить список "Искать предметы отладки на удаленных компьютерах". Нам нужно добавить в этот список имя или IP-адрес нашего сервера 1С.

Если все настроено верно, в списке "Доступные предметы отладки" должны появиться сеансы, запущенные на сервере.

Шаг 4. Современный метод: Отладка по протоколу HTTP

Начиная с версии платформы 8.3.7, появился более надежный механизм — отладка через HTTP. Выясним, почему этот способ предпочтительнее. В отличие от TCP, здесь используется централизованный сервер отладки (процесс dbgs), и нет необходимости открывать обратные порты на клиенте. Это идеальное решение для работы через NAT или VPN.

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

В этом случае в брандмауэре сервера достаточно открыть один порт — 1550.

Шаг 5. Особенности отладки фоновых заданий

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

Чтобы отладчик автоматически останавливался в коде фоновых заданий, выполним следующие шаги:

  1. В конфигураторе зайдем в меню Отладка — Подключение.
  2. Нажмем кнопку Настройка.
  3. В разделе "Автоматическое подключение" установим флажок напротив пункта Фоновые задания.

Важный совет: Если фоновое задание выполняется мгновенно, отладчик может не успеть инициализировать соединение. В таких случаях для целей отладки можно временно добавить в начало кода задания небольшую паузу, используя КомандаСистемы("timeout /t 5") или аналогичные методы, чтобы дать время сеансу отобразиться в списке предметов отладки.

Резюме и проверка стабильности

Посмотрим на итоговый чек-лист для запуска отладки:

  1. Параметр -debug (или -http) в реестре сервера добавлен, служба перезапущена.
  2. Порты 1560-1591 (для TCP) или 1550 (для HTTP) открыты в обе стороны.
  3. В конфигураторе в окне подключений добавлен адрес удаленного сервера.
  4. Для управляемых форм в самом клиенте ("Сервис - Параметры") включено разрешение отладки в текущем сеансе.

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

← На главную