Поочередный запуск фонового задания с разными параметрами

1. muzzombie 26.06.24 21:04 Сейчас в теме
Здравствуйте!
Имеется самописное задание, которое запускается в фоновом режиме - все хорошо. Однако теперь понадобилось запускать это фоновое задание поочереди с разными параметрами в цикле. Трудность в том, что 1С не дожидается завершения задания с параметром1 и уже запускает задание с параметром2. Соответственно задание с параметром1 не выполняется и результат получается только для параметра2. Как можно решить эту проблему без переписывания фонового задания? Процедуру "
ДлительныеОперацииКлиент.ОжидатьЗавершение
" использую, но она не помогает - программа все равно не останавливается на строке с таким кодом, продолжает цикл и запускает фоновое задание с последующим параметром, прервав предыдущее.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
16. starik-2005 3087 26.06.24 23:20 Сейчас в теме
(1)
Имеется самописное задание, которое запускается в фоновом режиме - все хорошо.

Ба, фоновое задание! Офигеть!
Народ, вы правда не в курсе, что фоновое задание - это просто в фоне запущенная процедура общего модуля.
Однако теперь понадобилось запускать это фоновое задание поочереди с разными параметрами в цикле.
Ну и?
Для каждого Парметр ИЗ Параметры Цикл
  ОбщийМодуль.ИмяПроцедурыФоновогоЗадания(Параметр);
КонецЦикла;
ЗЫ: офигеваю от современных программистов...
2. Zevzm 26.06.24 21:07 Сейчас в теме
5. muzzombie 26.06.24 21:31 Сейчас в теме
(2) Попробовал, как там предлагают, добавить строку

ПодключитьОбработчикОжидания("ПроверитьПрогрессВыполнения", 0.3, Истина);


и соответствующие ей процедуры. В цикле программа все равно шагает дальше.
3. karamazoff 118 26.06.24 21:18 Сейчас в теме
Фон запускает процедуру общего модуля, либо из обработки, может самый простой вариант в этой процедуре запускать последовательно с нужными параметрами несколько раз?
starik-2005; +1 Ответить
6. muzzombie 26.06.24 21:33 Сейчас в теме
(3) тогда придется переписывать фоновое задание, а именно этого и не хочется.
8. user2033930 26.06.24 21:35 Сейчас в теме
(6) В любом случае придется переписывать. Потому что оно всё равно должно где-то отмечать (выдавать результат) факт своего выполнения, чтобы дать триггер для следующего запуска.
9. karamazoff 118 26.06.24 21:37 Сейчас в теме
(6)не фоновое а процедуру, которую она вызывает, да, придется, фон он на то и фон, он не ждет
4. user2033930 26.06.24 21:29 Сейчас в теме
Передавать в качестве одного из параметров в фоновое задание массив параметров для всех последующих запусков. Как только фоновое задание заканчивается - оно запускает второй экземпляр фонового задания с параметрами из массива.
И так, пока массив параметров не закончится.
7. muzzombie 26.06.24 21:35 Сейчас в теме
(4) А как вновь запущенное фоновое задание поймет, с каким именно параметром из списка в массиве ей стартовать?
10. karamazoff 118 26.06.24 21:39 Сейчас в теме
(7)вновь запущенное фоновое задание никак не поймет что оно уже работает по запущенному ранее
15. user2033930 26.06.24 23:06 Сейчас в теме
(10) А зачем ему это знать? Всё, что ему надо знать - это что запускать после окончания самого себя.
11. Zevzm 26.06.24 21:45 Сейчас в теме
(4) Нельзя ли писать факт запуска и идентификатор первого задания в РС, второе будет находить запись о первом и по его идентификатору проверять выполнено ли оно, если нет подключать обработчик ожидания?
12. karamazoff 118 26.06.24 21:51 Сейчас в теме
(11)Можно все, мы же программисты, но так никто не делает, это совсем через опу
13. Zevzm 26.06.24 21:53 Сейчас в теме
(12) Зато все следы останутся. Когда стартовало, когда закончилось и т.п.
14. karamazoff 118 26.06.24 21:59 Сейчас в теме
(13)следы можно делать в журнал регистрации, если надо разнести запуски - либо последовательно вызов в процедуре, либо разнести по времени, чтобы не пересекалось
17. muzzombie 26.06.24 23:31 Сейчас в теме
Всем спасибо за помощь! Переписал фоновое задание, в которое теперь сразу таблица параметров передается.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот