1с отладка фоновых заданий на сервере

Иногда возникает необходимость отладить фоновое (регламентное) задание. Как раз с этим-то, зачастую, и возникает проблема. И проблема эта заключается в том, что отладчику не удается подключиться к процессу исполняемому на стороне сервера.

Для решение этой проблемы нам необходимо решить две задачи:

1. Включить отладку на сервере 1С. По умолчанию отладка на сервере выключена и чтобы ее включить, необходимо:Запустить реестр Windows, прописав в «Выполнить» команду REGEDIT. Найти строчку

«C:Program Files1cv81in
agent.exe» -srvc -agent

(взятую из параметров запуска службы Агент сервера 1С:Предприятия 8.1). (это для версии платформы 8.1)

Дописать в конец ключ -debug (не забываем перед ключом -debug ставить пробел)

Пример
. [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices1C:Enterprise 8.1 Server Agent] «ImagePath»= было «С:Program Files1cv81in
agent.exe» -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d «С:Program Files1cv81server»
ставим «С:Program Files1cv81in
agent.exe» -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -debug -d «С:Program Files1cv81server»

Перезапустить агент сервера. Готово. Теперь нам доступна отладка серверных потоков исполнения.

2. Регистр букв имени сервера и имени базы в соединение клиента с сервером 1С должен в точности совпадать.

Правильное подключение:
Фоновое задание — Srvr=»SERVER-NAME»;Ref=»Base_Name»; Клиент — Srvr=»SERVER-NAME»;Ref=»Base_Name»;

Как же узнать, с какими параметрами фоновое задание соединяется с базой? Можно придумать разные способы, одним из которых являетс запись в журнал регистрации этих параметров во время выполнения фонового задания.

Код следующий:

Процедура ЗаписатьСоединениеСБазой () Экспорт
ЗаписьЖурналаРегистрации (. СтрокаСоединенияИнформационнойБазы ());
КонецПроцедуры

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

Далее необходимо указать эти параметры в настройках запуска клиентского приложения С УЧЕТОМ РЕГИСТРА СИМВОЛОВ.

Теперь указываем автоматическое подключение к фоновым заданиям.

После проведения таких манипуляций можно производить отладку фоновых заданий.

1С Как включить режим отладки фоновых заданий

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

Отладка — Подключение . — нажать кнопку Автоматическое подключение и в открывшейся форме установить флажок Фоновые задания.

И тогда точка останова будет срабатывать даже на коде который запущен, как фоновое задание.

рубрики: Регламентные задания | Дата: 17 Май, 2017

В современных конфигурациях 1С:Предриятия очень широко используются фоновые задания.

В частности во всех типовых конфигурациях многие отчеты формируются в фоновом режиме, что позволяет во время формирования отчета продолжать работать в той же самой сессии 1С не дожидаясь завершения выполнения отчета. И конечно же возникает необходимость отладки кода во время выполнения фоновых заданий. Для успешного запуска отладки фоновых заданий необходимо выполнить несколько условий.

Включить режим отладки на сервере 1С:Предприятия.

Первое, что необходимо сделать — это убедиться в том, сервер 1С:Предприятия запущен в режиме отладки. Если отладка на сервере не включена, необходимо остановить службу ragent и повторно запустить ее с параметром /debug

Настроить автоматическое подключение фоновых заданий в конфигураторе

Поскольку фоновое задание не имеет клиентской части, в конфигураторе выполняется настройка автоматического подключения к фоновым заданиям. Для этого необходимо в меню выбрать пункт Отладка —> Подключение


В открывшемся диалоговом окне нажать кнопку Автоматическое подключение и в следующем окне установить флажок Фоновые задания

Правильно прописать строку подключения к базе 1С

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

Дело в том, что строка подключения для запуска конфигуратора должна в точности совпадать со строкой подключения фонового задания. Причем совпадение должно быть посимвольным. Учитывается даже регистр букв. Ведь при добавлении базы в список информационных баз мы можем прописать кластер серверов для одной и той же базы несколькими разными способами: с помощью IP-адреса, через имя сервера, с указанием порта и без него. И все эти разные строки подключения могут срабатывать одинаково успешно. Но при отладке фоновых заданий могут начаться проблемы. Так, например, я столкнулся с тем, что в списке баз у меня была прописана строка подключения с использованием порта

А фоновое задание почему-то запускалось без указания порта

Поэтому пришлось изменить строку подключения в списке баз соответствующим образом.
Но тут сразу же возникает вопрос. Как узнать строку подключения фонового задания? Здесь нам может прийти на помощь журнал регистрации. Ведь в момент выполнения фонового задания мы можем программно делать записи в журнал регистрации. А с помощью процедуры СтрокаСоединенияИнформационнойБазы() мы сможем получить строку подключения.

Таким образом, делаем в подходящем общем модуле (у меня это будет ФоновыеЗаданияСервер) вот такую процедуру

А теперь выполним эту процедуру запустив программно фоновое задание:

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

Оцените статью
Добавить комментарий