0
ildary
22.08.18
✎
06:33
|
Уважаемые специалисты, подскажите пожалуйста, как правильно сделать так, чтобы рег.задание не могло повторно запуститься, если оно еще не отработало? Я прочитал про параметр Ключ, но не совсем уверен, что он будет работать для одного и того задания (в документации сказано что это для объединения нескольких в группу). 1С 8.3.10 последняя, УФ, самописка, сервер приложений находится в облаке (не фреш), подобное (одновременное выполнение рег.задания) случается редко (фактически впервые). ТЖ будет настроен, но боюсь, что он даст причину, но не даст способ решения его (например внезапный рестарт процесса rphost). Поможет ли Ключ или самый правильный способ - это внутри самого рег.задания ввести собственный флаг при запуске и контролировать его? Задание связано с импортом данных в 1С и при одновременном запуске - задваиваются загруженные документы.
|
|
2
Мимохожий Однако
22.08.18
✎
07:05
|
Попробуй код
Процедура ВыполнитьЗадание()
ПараметрыЗадания=Новый Структура;
ПараметрыЗадания.Вставить("Состояние",СостояниеФоновогоЗадания.Активно);
ПараметрыЗадания.Вставить("Ключ",Ключ);
Если фоновоеЗаданиеУжеЗапущено(ПараметрыЗадания) Тогда
Возврат;
КонецЕсли;
//далее задание
//...........
КонецПроцедуры
Функция ФоновоеЗаданиеУжеЗапущено(ПараметрыЗадания)
МассивЗаданий = ФоновыеЗадания.ПолучитьФоновыеЗадания(ПараметрыЗадания);
Если МассивЗаданий.Количество() > 1 Тогда
Возврат Истина;
КонецЕсли;
Возврат Ложь;
КонецФункции // ЗаданиеУжеЗапущено()
|
|