Нередко разработчики сталкиваются с ситуацией, когда точки останова в конфигураторе 1С перестают срабатывать: ни в типовых модулях конфигурации, ни во внешних обработках. Сеанс запускается, но отладчик его просто игнорирует. Разберем по шагам причины такого поведения платформы 1С:Предприятие 8.3 в клиент-серверном режиме и выясним, как правильно настроить отладку на сервере и клиенте.
Если точки останова не работают даже в стандартных документах и справочниках конфигурации, дело не в коде конкретной обработки, а в глобальных параметрах сервера или настройках среды разработки. Проанализируем цепочку взаимодействия отладчика и серверных процессов:
ragent по умолчанию запускается без разрешения отладки серверных вызовов.Рассмотрим подробнее настройку службы агента сервера 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, передавая параметры отладки в специальном скрипте установки.
Проверим настройки подключения отладчика непосредственно в конфигураторе 1С. Выполним следующие действия:
Также проверим соответствие используемого протокола в файле конфигурации conf.cfg. В нем может быть явно задана директива:
DefaultDebug = http
Если сервер ожидает HTTP-подключение, а клиент настроен на TCP (или наоборот), отладчик не сможет сопоставить исполняемые модули.
Выясним, выполнены ли требования к сеансу «1С:Предприятие»:
Отладка. Без него процесс не появится в списке доступных предметов отладки./debug.Когда отладка в конфигурации заработала, перейдем к внешним отчетам и обработкам. Рассмотрим два надежных сценария работы с ними:
Способ 1. Открытие через «Файл — Открыть»
Если обработка открывается через главное меню клиентского приложения, соблюдайте важное правило: файл, открытый в конфигураторе для расстановки точек останова, и файл, выбранный пользователем на диске через «Файл — Открыть», должны быть одним и тем же файлом. Если после открытия обработки файл был пересохранен из другой папки или перекомпилирован без перезапуска формы в клиенте, контрольные суммы модулей разойдутся, и точки останова станут неактивными («прозрачными»).
Способ 2. Отладка обработки из справочника «Дополнительные отчеты и обработки»
Если внешняя обработка подключена к подсистеме БСП (в ЗУП 3.1):
Обратите внимание на флаг безопасного режима при регистрации дополнительной обработки: если безопасный режим включен, серверные вызовы с привилегированным режимом блокируются, что может изменить ветку исполнения программного кода и привести к обходу процедур, где установлена точка останова.