Имя: Пароль:
1C
1С v8
Программный запуск регламентного задания (8.3)
0 Cancell
 
11.05.17
22:30
Всем доброго времени суток, кто-нибудь сталкивался с такой задачей или похожей?

Суть следующая, есть внешняя обработка, которая настроена работать по расписанию, но бывают случаи когда ее надо запустить по определенному событию...

Так я могу получить регламентное задание:
ИД = Новый УникальныйИдентификатор("347105c3-7204-4c54-a54f-e58866a797c4");

    Задание = РегламентныеЗадания.НайтиПоУникальномуИдентификатору(ИД);

Но как его стартануть?
1 Cyberhawk
 
11.05.17
22:35
Стартануть может только фоновое задание
2 Cyberhawk
 
11.05.17
22:35
СП по объекту ФоновыеЗадания тебе в помощь
3 Cancell
 
12.05.17
12:17
(2)
МенеджерФоновыхЗаданий (BackgroundJobsManager)
Выполнить (Execute)
Синтаксис:

Выполнить(<ИмяМетода>, <Параметры>, <Ключ>, <Наименование>)
Параметры:

<ИмяМетода> (обязательный)

Тип: Строка.
Имя экспортируемой процедуры или функции неглобального общего модуля, который может быть выполнен на сервере, в форме ИмяМодуля.ИмяМетода

Но у меня не экспортируемая процедура и не функция... у меня подключенная внешняя обработка работающая по расписанию. Как до нее достучаться?
4 mehfk
 
12.05.17
12:19
Перенести код из внешней обработки в общий модуль.
5 Cancell
 
12.05.17
12:22
(4) там такой код что уже проще обработку встроить, а этого бы не хотелось.
6 mehfk
 
12.05.17
12:23
Встрой ее в расширение.
7 mehfk
 
12.05.17
12:27
Ну или узнать как организован запуск внешних обработок по расписанию в этой конфигурации и сделать так же, но стартовав вручную фоновое.
8 Cancell
 
12.05.17
13:41
(7) Спс.

Есть Регламентное задание "ЗапускДополнительныхОбработок"
Оттуда вытащил код и сделал -

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

Запустил его из внешней обработки, но проблема в том что задание запустилось не в фоне... и сижу жду пока отработает. А мне надо чтобы оно в фоне работало.
9 Cancell
 
12.05.17
13:44
Мне нужно запуск этой внешней обработки стартовать по определенному событию при http-запросе, и если оно не в фоне будет, то http-сервис будет ждать ответа пока не выполнится обработка, а это может быть долго...
10 mehfk
 
12.05.17
16:18
Файловая база что-ли?
11 Cyberhawk
 
12.05.17
20:21
Ты для начала огласи, в каком месте должно порождаться фоновое задание
12 Cyberhawk
 
12.05.17
20:21
В модуле операции ХТТП-запроса?
13 Cyberhawk
 
12.05.17
20:22
Ну так добавь туда экспортный метод, помести в него код из (8) и вызывай через ФЗ
14 Cancell
 
14.05.17
17:53
(13) Супер, спасибо большое, получилось :)
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн