Почему в файловой базе 1С:ЗУП 3 не срабатывает отладка серверного кода и как ее настроить?

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

При разработке и сопровождении конфигурации 1С:Зарплата и управление персоналом 3.1 (а также других конфигураций на базе БСП) в файловом режиме разработчики часто сталкиваются с ситуацией, когда точки останова срабатывают исключительно в клиентском контексте (модули форм, клиентские общие модули), а серверные процедуры и функции полностью игнорируются отладчиком.

Проанализируем причины такого поведения платформы 1С:Предприятие 8.3 и подробно разберем по шагам все способы решения этой проблемы.

Причины, по которым отладчик пропускает серверный код

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

Рассмотрим основные способы гарантированного включения отладки серверных вызовов и фоновых заданий.

Способ 1. Запуск в режиме толстого клиента и настройка автоматического подключения

Это наиболее надежный и быстрый способ, подтвержденный на практике. В режиме Толстый клиент (управляемое приложение) эмуляция сервера происходит в рамках того же процесса, что упрощает перехват серверных модулей конфигуратором.

Разберем по шагам, как выполнить данную настройку:

  1. Откроем меню конфигуратора: Сервис → Параметры.
  2. Перейдем на вкладку Запуск 1С:Предприятия и далее в раздел Основные.
  3. В поле выбора режима запуска установим значение Толстый клиент (управляемое приложение).
  4. Нажмем кнопку Применить и закроем окно настроек.
  5. Откроем верхнее меню конфигуратора: Отладка → Подключение...
  6. В открывшемся окне нажмем кнопку Настройка автоматического подключения.
  7. Установим флажки напротив пунктов: Клиентские и внешние соединения на сервере, а также Фоновые задания.
  8. Нажмем ОК и запустим сеанс отладки клавишей F5.

Способ 2. Использование параметров запуска БСП

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

Настроим параметры запуска сеанса:

  1. Откроем в конфигураторе меню: Сервис → Параметры.
  2. Перейдем на вкладку Запуск 1С:Предприятия → Основные.
  3. В поле Параметр запуска введем строку: РежимОтладки.
  4. В качестве альтернативы для некоторых редакций БСП можно использовать параметр: ЗапуститьФоновыеЗаданияВТекущемСеансе.
  5. Сохраним настройки и перезапустим сеанс Предприятия.

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

Способ 3. Проверка сетевого протокола отладки и брандмауэра

Начиная с версии платформы 8.3.7, отладка может осуществляться по двум различным протоколам: TCP/IP и HTTP. Если серверные соединения не появляются в списке доступных предметов отладки при использовании тонкого клиента, выполним следующие проверки:

  1. Откроем меню конфигуратора: Сервис → Параметры → вкладка Отладка.
  2. Проверим используемый протокол. Если выбран протокол HTTP, попробуем переключить его на TCP/IP, или наоборот.
  3. Убедимся, что адрес отладки указан как localhost или 127.0.0.1.
  4. Проверим настройки локального сетевого экрана (Брандмауэра Windows) и антивируса. Сетевые порты диапазона отладки не должны блокироваться для исполняемого файла 1cv8.exe, так как даже локальный файловый сервер использует внутренние сетевые сокеты для передачи управляющих сигналов отладчика.

Способ 4. Очистка кэша и принудительная синхронизация кода

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

Для устранения этой неполадки рекомендуется:

  1. Завершить все запущенные процессы 1cv8.exe и 1cv8c.exe.
  2. Очистить каталоги временных файлов пользователя: %LOCALAPPDATA%\1C\1cv8 и %APPDATA%\1C\1cv8.
  3. Перезапустить конфигуратор и заново установить требуемые точки останова.

Альтернативные методы диагностики серверных алгоритмов

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


ПараметрыЗаписи = Новый Структура("Сотрудник, СуммаРасчета", Выборка.Сотрудник, РезультатРасчета);
ЗаписьЖурналаРегистрации(
    "ОтладкаАлгоритма",
    УровеньЖурналаРегистрации.Информация,
    ,
    ,
    ЗначениеВСтрокуВнутр(ПараметрыЗаписи)
);

Таким образом, сочетание запуска сеанса через Толстый клиент (управляемое приложение) с включенным автоматическим подключением фоновых заданий и параметром РежимОтладки обеспечивает стабильную работу отладчика во всех серверных процедурах файловой базы ЗУП 3.

← На главную