Почему не работает серверная отладка 1С при запуске Конфигуратора на локальном компьютере и как это исправить?

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

При разработке в среде 1С:Предприятие часто возникает ситуация, когда информационная база развернута на удаленном сервере (в клиент-серверном варианте), а программист запускает Конфигуратор на своем локальном рабочем месте. В такой конфигурации стандартная серверная отладка часто «отказывает»: точки останова в серверных модулях игнорируются, хотя клиентская отладка работает исправно. Разберем подробно причины этого поведения и способы настройки стабильной работы.

Понимание механизмов отладки: TCP против HTTP

Прежде всего, проанализируем, как именно 1С осуществляет процесс отладки. Исторически основным протоколом был TCP. Его главная особенность заключается в том, что он требует двустороннего соединения. Это означает следующее:

  1. Конфигуратор на вашем локальном компьютере подключается к серверу 1С.
  2. Как только выполнение кода доходит до точки останова на сервере, уже сервер 1С пытается инициировать обратное соединение с вашим локальным компьютером.

Если между вашим ПК и сервером стоит роутер (NAT), брандмауэр или антивирус, сервер не сможет «достучаться» до Конфигуратора. В результате маркер отладки просто пропадает, и программа продолжает выполнение, не останавливаясь на выбранной строке.

Настройка TCP-отладки и решение проблем с сетевым экраном

Если вы используете классический механизм отладки по TCP, нам необходимо обеспечить доступность портов. По умолчанию сервер 1С использует диапазон портов 1560–1591 для связи с предметами отладки. Выполним следующие шаги для диагностики и настройки:

1. Настройка брандмауэра на локальной машине. Ошибочно полагать, что порты нужно открывать только на сервере. Поскольку сервер инициирует входящее соединение к вам, необходимо добавить исполняемый файл 1cv8.exe в исключения брандмауэра Windows на локальном ПК. Разрешите ему любые входящие соединения для частных и публичных сетей.

2. Разрешение имен через файл hosts. Сервер 1С передает информацию о предметах отладки, используя свое сетевое имя (Hostname). Если ваш компьютер не может преобразовать имя сервера в IP-адрес, отладка не заработает. Проверим и настроим файл hosts по адресу C:\Windows\System32\drivers\etc\hosts, добавив туда строку вида:

192.168.1.100 ИмяВашегоСервера1С

3. Проверка динамических портов. Убедимся, что сетевое оборудование между офисом и серверной не блокирует трафик в указанном диапазоне. Рассмотрим ситуацию, когда в окне «Подключение» (предметы отладки) сервер виден, но точка останова не срабатывает — это верный признак того, что сервер видит клиента, но не может передать ему управление.

Переход на современную HTTP-отладку

Начиная с версии платформы 8.3.7, фирма 1С реализовала более надежный механизм — отладку по протоколу HTTP. Она лишена недостатка с обратным соединением, так как работает через один установленный канал. Это идеальный вариант для работы через VPN или NAT. Рассмотрим, как перевести систему на этот режим.

Шаг 1: Настройка сервера. Необходимо изменить параметры запуска службы агента сервера 1С:Предприятие. Для этого откроем редактор реестра и найдем ветку службы (обычно это HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\1C:Enterprise 8.3 Server Agent). В параметре ImagePath добавим ключи -debug -http.

Пример строки запуска после редактирования:


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

После внесения изменений службу сервера необходимо перезапустить.

Шаг 2: Настройка Конфигуратора. На локальном компьютере в Конфигураторе перейдем в меню Сервис — Параметры. На вкладке Запуск 1С:Предприятия выберем подвкладку Дополнительные. В поле Протокол отладки установим значение HTTP. В поле Адрес отладчика укажем адрес сервера и порт (по умолчанию 1550).

Особенности отладки фоновых заданий в УПП и других конфигурациях

В старых конфигурациях, таких как «Управление производственным предприятием 1.3», многие тяжелые операции (например, Расчет себестоимости) выполняются в фоновых заданиях. Даже если серверная отладка настроена верно, точка останова может не сработать, если Конфигуратор не «подцепился» к фоновому процессу. Разберем, как это исправить:

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

Теперь при старте фонового задания на сервере Конфигуратор автоматически добавит его в список предметов отладки, и вы сможете проанализировать выполнение кода внутри процедуры ОбработкаПроведения или специализированных модулей.

Альтернативное решение: Оптимизация работы через RDP

Иногда сетевые ограничения настолько строги, что настроить прямую отладку с локального ПК невозможно. В этом случае программисты работают непосредственно на сервере через удаленный рабочий стол (RDP). Часто основной жалобой является неудобство работы на одном мониторе. Выясним, как активировать поддержку нескольких мониторов в терминальном сеансе, чтобы работать в Конфигураторе максимально комфортно.

При создании подключения к удаленному рабочему столу (mstsc.exe):

  1. Перейдем на вкладку Экран.
  2. Установим галочку Использовать все мои мониторы для удаленного сеанса.

Это позволит растянуть окно терминала на два и более мониторов, что решит проблему нехватки рабочего пространства и позволит держать Конфигуратор на одном экране, а пользовательский режим — на другом. В этом режиме серверная отладка будет работать «из коробки», так как и клиент, и сервер находятся в рамках одной машины (localhost).

Резюме

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

← На главную