При разработке в среде 1С:Предприятие часто возникает ситуация, когда информационная база развернута на удаленном сервере (в клиент-серверном варианте), а программист запускает Конфигуратор на своем локальном рабочем месте. В такой конфигурации стандартная серверная отладка часто «отказывает»: точки останова в серверных модулях игнорируются, хотя клиентская отладка работает исправно. Разберем подробно причины этого поведения и способы настройки стабильной работы.
Прежде всего, проанализируем, как именно 1С осуществляет процесс отладки. Исторически основным протоколом был TCP. Его главная особенность заключается в том, что он требует двустороннего соединения. Это означает следующее:
Если между вашим ПК и сервером стоит роутер (NAT), брандмауэр или антивирус, сервер не сможет «достучаться» до Конфигуратора. В результате маркер отладки просто пропадает, и программа продолжает выполнение, не останавливаясь на выбранной строке.
Если вы используете классический механизм отладки по 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. Проверка динамических портов. Убедимся, что сетевое оборудование между офисом и серверной не блокирует трафик в указанном диапазоне. Рассмотрим ситуацию, когда в окне «Подключение» (предметы отладки) сервер виден, но точка останова не срабатывает — это верный признак того, что сервер видит клиента, но не может передать ему управление.
Начиная с версии платформы 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», многие тяжелые операции (например, Расчет себестоимости) выполняются в фоновых заданиях. Даже если серверная отладка настроена верно, точка останова может не сработать, если Конфигуратор не «подцепился» к фоновому процессу. Разберем, как это исправить:
Отладка — Подключение.Теперь при старте фонового задания на сервере Конфигуратор автоматически добавит его в список предметов отладки, и вы сможете проанализировать выполнение кода внутри процедуры ОбработкаПроведения или специализированных модулей.
Иногда сетевые ограничения настолько строги, что настроить прямую отладку с локального ПК невозможно. В этом случае программисты работают непосредственно на сервере через удаленный рабочий стол (RDP). Часто основной жалобой является неудобство работы на одном мониторе. Выясним, как активировать поддержку нескольких мониторов в терминальном сеансе, чтобы работать в Конфигураторе максимально комфортно.
При создании подключения к удаленному рабочему столу (mstsc.exe):
Это позволит растянуть окно терминала на два и более мониторов, что решит проблему нехватки рабочего пространства и позволит держать Конфигуратор на одном экране, а пользовательский режим — на другом. В этом режиме серверная отладка будет работать «из коробки», так как и клиент, и сервер находятся в рамках одной машины (localhost).
Для исправления работы серверной отладки мы проанализировали три пути: настройку исключений брандмауэра для TCP, полный переход на более стабильный протокол HTTP и активацию автоматического подключения фоновых заданий. Использование HTTP-отладки является наиболее рекомендуемым методом для современных версий платформы 1С:Предприятие 8.3, так как он минимизирует влияние сетевых экранов и настроек маршрутизации на процесс разработки.