Как включить отладку на сервере 1С:Предприятие и настроить отладку внешних обработок в ЗУП 3.1?

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

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

Анализ проблемы: почему не срабатывают точки останова

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

  1. Служба агента кластера серверов ragent по умолчанию запускается без разрешения отладки серверных вызовов.
  2. При обновлении платформы параметры запуска службы Windows часто перезаписываются на значения по умолчанию, из-за чего ранее работавшая отладка внезапно «слетает».
  3. Конфигуратор и клиентское приложение могут использовать разные порты или несовпадающие протоколы отладки (устаревший TCP или современный HTTP).
  4. В параметрах подключения отладчика могут быть выключены флаги автоматического подключения к фоновым заданиям и сеансам.

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

Рассмотрим подробнее настройку службы агента сервера 1С. Для того чтобы серверные вызовы перехватывались конфигуратором, в строке запуска службы 1C:Enterprise 8.3 Server Agent должен присутствовать специальный ключ.

В реестре Windows параметры службы находятся по пути ветки системных служб. В параметре ImagePath к исполняемому файлу ragent.exe необходимо добавить флаг -debug, а также протокол и сетевой порт при необходимости. Разберем два варианта настройки протоколов:

1. Отладка по протоколу HTTP (рекомендуемый современный стандарт):

Для включения HTTP-отладки службе передаются параметры:

-debug -http

По умолчанию для HTTP-отладки используется сетевой порт 1550. Все клиентские и серверные процессы подключаются к нему, что снимает проблемы с блокировкой динамических портов брандмауэром разработчика.

2. Отладка по протоколу TCP (классический режим):

Для работы по протоколу TCP службе передается параметр:

-debug -tcp

После изменения параметров реестра или параметров командной строки службу сервера 1С необходимо обязательно перезапустить через оснастку services.msc.

Чтобы параметры отладки не сбрасывались после очередного обновления платформы, администраторам рекомендуется автоматизировать регистрацию службы через утилиту ragent.exe с ключом -instsrv, передавая параметры отладки в специальном скрипте установки.

Шаг 2. Настройка конфигуратора и автоматического подключения

Проверим настройки подключения отладчика непосредственно в конфигураторе 1С. Выполним следующие действия:

  1. Откроем главное меню: Отладка — Подключение.
  2. Нажмем кнопку Настройка автоматического подключения.
  3. Установим все флаги: клиентские приложения, серверные вызовы, фоновые задания и веб-сервисы. Это гарантирует, что конфигуратор будет автоматически цепляться к стартующим потокам выполнения.
  4. Если сеансы предприятия не определяются автоматически, нажмем Искать предметы на удаленном компьютере и укажем явное сетевое имя или IP-адрес сервера 1С, а также порт отладки.

Также проверим соответствие используемого протокола в файле конфигурации conf.cfg. В нем может быть явно задана директива:

DefaultDebug = http

Если сервер ожидает HTTP-подключение, а клиент настроен на TCP (или наоборот), отладчик не сможет сопоставить исполняемые модули.

Шаг 3. Проверка прав пользователя и параметров клиента

Выясним, выполнены ли требования к сеансу «1С:Предприятие»:

  1. У пользователя информационной базы, под которым осуществляется вход в режиме предприятия, в конфигураторе в составе назначенных ролей обязательно должно быть включено право Отладка. Без него процесс не появится в списке доступных предметов отладки.
  2. В дополнительных параметрах запуска информационной базы (или в настройках отладки в меню «Сервис — Параметры — Запуск 1С:Предприятия») должен быть указан ключ /debug.
  3. В сетевом экране (брандмауэре) на стороне рабочей станции и сервера должны быть открыты используемые порты (порт 1550 для HTTP-отладки или диапазон рабочих портов кластера 1560–1591 для TCP).

Шаг 4. Особенности отладки внешних обработок в ЗУП 3.1

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

Способ 1. Открытие через «Файл — Открыть»

Если обработка открывается через главное меню клиентского приложения, соблюдайте важное правило: файл, открытый в конфигураторе для расстановки точек останова, и файл, выбранный пользователем на диске через «Файл — Открыть», должны быть одним и тем же файлом. Если после открытия обработки файл был пересохранен из другой папки или перекомпилирован без перезапуска формы в клиенте, контрольные суммы модулей разойдутся, и точки останова станут неактивными («прозрачными»).

Способ 2. Отладка обработки из справочника «Дополнительные отчеты и обработки»

Если внешняя обработка подключена к подсистеме БСП (в ЗУП 3.1):

  1. Зайдем в раздел Администрирование — Печатные формы, отчеты и обработки — Дополнительные отчеты и обработки.
  2. Откроем карточку нужной обработки и переведем переключатель режима использования в состояние Отладка (или режим доступности разработчику).
  3. Сохраним обработку из карточки в файл на жесткий диск.
  4. Откроем этот сохраненный файл в конфигураторе, расставим точки останова и запустим выполнение команды в сеансе пользователя.

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

← На главную