При разработке и сопровождении конфигурации 1С:Зарплата и управление персоналом 3.1 (а также других конфигураций на базе БСП) в файловом режиме разработчики часто сталкиваются с ситуацией, когда точки останова срабатывают исключительно в клиентском контексте (модули форм, клиентские общие модули), а серверные процедуры и функции полностью игнорируются отладчиком.
Проанализируем причины такого поведения платформы 1С:Предприятие 8.3 и подробно разберем по шагам все способы решения этой проблемы.
В современных конфигурациях большинство ресурсоемких серверных операций выполняется в асинхронном режиме через фоновые задания (механизм длительных операций БСП). В файловом варианте информационной базы при запуске через обычный Тонкий клиент серверный контекст и фоновые потоки функционируют как отдельные процессы файлового сервера. Если конфигуратор не подключен к данным потокам по сети отладки, остановка выполнения не произойдет.
Рассмотрим основные способы гарантированного включения отладки серверных вызовов и фоновых заданий.
Это наиболее надежный и быстрый способ, подтвержденный на практике. В режиме Толстый клиент (управляемое приложение) эмуляция сервера происходит в рамках того же процесса, что упрощает перехват серверных модулей конфигуратором.
Разберем по шагам, как выполнить данную настройку:
F5.Библиотека стандартных подсистем предоставляет встроенный функционал, позволяющий отключить фоновое выполнение длительных операций и принудительно выполнять их синхронно в текущем клиентском сеансе.
Настроим параметры запуска сеанса:
РежимОтладки.ЗапуститьФоновыеЗаданияВТекущемСеансе.При наличии параметра РежимОтладки программный код конфигурации перестает вызывать фоновые потоки через модуль ДлительныеОперации и выполняет расчеты прямо в текущем сеансе, что позволяет точке останова сработать без дополнительных сетевых настроек.
Начиная с версии платформы 8.3.7, отладка может осуществляться по двум различным протоколам: TCP/IP и HTTP. Если серверные соединения не появляются в списке доступных предметов отладки при использовании тонкого клиента, выполним следующие проверки:
HTTP, попробуем переключить его на TCP/IP, или наоборот.localhost или 127.0.0.1.1cv8.exe, так как даже локальный файловый сервер использует внутренние сетевые сокеты для передачи управляющих сигналов отладчика.Если ранее база обновлялась динамически, исполняемый сервером байт-код может не соответствовать тексту модуля в конфигураторе, из-за чего точки останова становятся неактивными (отображаются белым или не перехватываются).
Для устранения этой неполадки рекомендуется:
1cv8.exe и 1cv8c.exe.%LOCALAPPDATA%\1C\1cv8 и %APPDATA%\1C\1cv8.Если конфигурация работает в изолированной среде и доступ к интерактивной отладке ограничен, для контроля значений переменных на сервере можно использовать запись событий в журнал регистрации:
ПараметрыЗаписи = Новый Структура("Сотрудник, СуммаРасчета", Выборка.Сотрудник, РезультатРасчета);
ЗаписьЖурналаРегистрации(
"ОтладкаАлгоритма",
УровеньЖурналаРегистрации.Информация,
,
,
ЗначениеВСтрокуВнутр(ПараметрыЗаписи)
);
Таким образом, сочетание запуска сеанса через Толстый клиент (управляемое приложение) с включенным автоматическим подключением фоновых заданий и параметром РежимОтладки обеспечивает стабильную работу отладчика во всех серверных процедурах файловой базы ЗУП 3.