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

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

Категории

Запуск фонового задания программно

рубрики: Регламентные задания | Дата: 19 Ноябрь, 2016

Как правило фоновые задания в 1C:Предприятии запускаются из-под регламентного.




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

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




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

Создадим в этом общем модуле процедуру, которая будет делать запись в журнал
регистрации



Процедура ЗаписьВЖурналРегистрации(пар_ИмяСобытия, пар_Комментарий) Экспорт
	
    ЗаписьЖурналаРегистрации(пар_ИмяСобытия,,,, пар_Комментарий);

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

Как видим в процедуре есть параметры. Значит фоновое задание должно их будет каким-то
образом в процедуру передать.

Теперь создадим обработку с помощью которой будем запускать фоновое задание.




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

В модуле формы пишем следующий код:



&НаСервере
Процедура ЗаписьЖРНаСервере()

	МассивПараметров = Новый Массив;
	МассивПараметров.Добавить("Событие. Фоновое задание отработало успешно");
	МассивПараметров.Добавить("Комментарий. Проверка работы фонового задания");
	
	ФоновыеЗадания.Выполнить("professia1c_ru_РегламентныеЗадания.ЗаписьВЖурналРегистрации", МассивПараметров);
	
КонецПроцедуры

&НаКлиенте
Процедура ЗаписьЖР(Команда)
	ЗаписьЖРНаСервере();
КонецПроцедуры

Запускается фоновое задание при помощи метода Выполнить()
менеджера фоновых заданий.




В качестве первого параметра этого метода указывается
имя общего модуля и имя процедуры, которая будет выполняться, тип — строка.
Второй параметр — это массив со значениями парметров для вызываемой процедуры.
Порядок следования элементов в массиве должен совпадать с порядком параметров в
процедуре.
Могут еще указываться Ключ и Наименование фонового задания.

А теперь протестируем работу обработки. Откроем ее в режиме 1С:Предприятия и
запустим на выполнение. Далее открываем журнал регистрации и видим, что задание
отработало успешно и сделало в журнале соответствующую запись.

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

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

   

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