Профессия — 1С

Рукопашный бой Карташ

Категории

Отладка фоновых заданий

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

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




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

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

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

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

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


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

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

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




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


Srvr="Server1C:1541";Ref="Test";

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


Srvr="Server1C";Ref="Test";

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




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




Процедура ЗаписатьВЖурналСтрокуПодключения() Экспорт

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

КонецПроцедуры

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




&НаСервере
Процедура ЗаписатьСтрокуПодключенияНаСервере()
	ФоновыеЗадания.Выполнить("ФоновыеЗаданияСервер.ЗаписатьВЖурналСтрокуПодключения");
КонецПроцедуры

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

3 комментария на «“Отладка фоновых заданий”»

  1. Сергей:

    Огромное спасибо!!!!

  2. Дмитрий:

    Спасибо. Я забыл о флаге в окне настройки. Прочитал и вспомнил!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

   

2018г. Профессия — 1С. Обмен опытом по программированию в 1С