При разработке и доработке конфигураций 1С:Предприятие с помощью расширений разработчики часто сталкиваются с ситуацией: после активации функциональности «Внешние пользователи» (клиенты, контрагенты, портальные пользователи) точки останова в модулях расширения перестают срабатывать, а в Конфигураторе точка останова автоматически становится серой.
На первый взгляд кажется, что само расширение полностью перестало функционировать для клиентов. Однако в большинстве случаев проблема кроется не в исполнении кода, а в специфике работы механизма отладки 1С при подключении сеансов внешних пользователей. Проанализируем причину этого явления и разберем по шагам, как вернуть возможность полноценной отладки.
Серая точка останова в Конфигураторе 1С указывает на то, что текущий предмет отладки (конкретный исполняемый сеанс или поток) не подключен к отладчику. Когда мы включаем режим работы с внешними пользователями в типовых решениях (например, 1С:Управление торговлей, 1С:ERP или 1С:Комплексная автоматизация), меняется сценарий подключения пользователей к базе:
ОбластьДанныхОсновныеДанные и ОбластьДанныхВспомогательныеДанные). Сеансы в разделенных областях данных требуют разрешения перехвата разделенных сеансов в настройках отладчика.rphost) запущена без параметра -debug, код, исполняемый на стороне сервера, не останавливается на точках останова.Чтобы убедиться, исполняется ли код расширения на самом деле, достаточно добавить запись в журнал регистрации с помощью функции ЗаписатьИндексПротокола() или функции ЗаписьЖурналаРегистрации(). Если запись появляется, значит, расширение работает исправно, а проблема заключается исключительно в отладке.
Рассмотрим порядок действий для того, чтобы Конфигуратор автоматически перехватывал сеансы внешних пользователей и веб-клиентов при традиционной TCP-отладке:
После применения этих настроек при выполнении кода внешним пользователем через веб-клиент Конфигуратор попытается автоматически подключиться к созданному предмету отладки.
Традиционная отладка по протоколу TCP/IP (использующая диапазон портов 1560–1591) часто теряет связь с процессами rphost при перенаправлении сеансов внешних пользователей или при работе через веб-сервер. Начиная с платформы 8.3.7, 1С предоставляет более стабильный механизм — HTTP-отладку.
Рассмотрим основные преимущества HTTP-отладки по сравнению с классической TCP-отладкой:
dbgs), что исключает блокировку диапазонов TCP-портов сетевыми экранами.Для перевода кластера 1С:Предприятие на работу по протоколу HTTP необходимо выполнить настройку службы агента сервера:
ragent.exe.
-debug -http
-debugServerAddr.После переключения на HTTP-протокол отладки точки останова в модулях расширений перестанут становится серыми при вызове процедур и функций под сеансами внешних пользователей, обеспечивая комфортную и стабильную разработку.