Професия - 1C - Стартиране на фонова задача програмно
Програмно стартиране на фонова работа
рубрики: Регулаторни задачи Дата: 19 ноември 2016 г
По правилофоновите задачи в 1C:Enterprise се стартират от планираната задача.
Тоест в началото насрочената задача генерира фонова. Но ако е необходимо, можем да стартираме фоновата задача програмно. В същото време той може да използва всякакви методи и свойства, налични на сървъра. и се изпълнява на сървъра. Всъщност самото фоново задание не прави нищо. Той стартира само за изпълнение на процедура от общ модул. Ако процедурата използва параметри, те също могат да бъдат предадени при стартиране на фоновото задание.
Нека разгледаме най-простия пример. Нека създадем обработка, която ще изпълнява фоново задание, което от своя страна ще записва в дневника.
Тъй като за фоновата работа се нуждаем от споделена модулна процедура, нека създадем този споделен модул с възможността да изпълнява своите процедури на сървъра.

Както можете да видите, в процедурата има параметри. Това означава, че фоновата работа трябва да ги прехвърли по някакъв начин към процедурата.
Сега нека създадем обработка, с която ще изпълним фонова задача.
Нека го направим на управлявана форма, но няма да има фундаментална разлика за обикновените форми, използват се същите методи. Нека създадем прост формуляр с една команда:

Фоново задание се стартира с помощта на методаRun() на мениджъра на фонови задания.
Първият параметър на този метод е името на общия модул и името на процедурата, която ще бъдебъде изпълнен, типът е низ. Вторият параметър е масив със стойности на параметри за извиканата процедура. Редът на елементите в масива трябва да съответства на реда на параметрите в процедурата. Ключът и името на фоновото задание също могат да бъдат посочени.
Сега нека тестваме обработката. Нека го отворим в режим 1C:Enterprise и да го стартираме за изпълнение. След това отваряме дневника за регистрация и виждаме, че задачата е завършена успешно и прави съответен запис в дневника.
