ОтменитьВыполнениеЗадания (БСП)

Автор: 1С
ОбщийМодуль.ДлительныеОперации
БСП

Отменить выполнение задания. Отменяет выполнение фонового задания по переданному идентификатору.

// Отменяет выполнение фонового задания по переданному идентификатору.
// При этом если в длительной операции открывались транзакции, то будет произведен откат последней открытой транзакции.
//
// Таким образом, если длительная операция выполняет обработку (запись) данных, то для полной отмены всей операции
// следует выполнять запись в одной транзакции (в таком случае, будет отменена вся транзакция целиком).
// Если же достаточно, чтобы длительная операция была не отменена целиком, а прервана на достигнутом этапе,
// то, напротив, открывать одну длинную транзакцию не требуется.
// 
// Параметры:
//  ИдентификаторЗадания - УникальныйИдентификатор - идентификатор фонового задания, полученный при запуске 
//                                                   длительной операции. См. ДлительныеОперации.ВыполнитьВФоне.
// 
Процедура ОтменитьВыполнениеЗадания(Знач ИдентификаторЗадания) Экспорт 
	
	Если Не ЗначениеЗаполнено(ИдентификаторЗадания) Тогда
		Возврат;
	КонецЕсли;
	
	УстановитьПривилегированныйРежим(Истина);
	Если ПараметрыСеанса.ОтмененныеДлительныеОперации.Найти(ИдентификаторЗадания) = Неопределено Тогда
		ОтмененныеДлительныеОперации = Новый Массив(ПараметрыСеанса.ОтмененныеДлительныеОперации);
		ОтмененныеДлительныеОперации.Добавить(ИдентификаторЗадания);
		ПараметрыСеанса.ОтмененныеДлительныеОперации = Новый ФиксированныйМассив(ОтмененныеДлительныеОперации);
	КонецЕсли;
	УстановитьПривилегированныйРежим(Ложь);
	
	Задание = НайтиЗаданиеПоИдентификатору(ИдентификаторЗадания);
	Если Задание = Неопределено	Или Задание.Состояние <> СостояниеФоновогоЗадания.Активно Тогда
		Возврат;
	КонецЕсли;
	
	Попытка
		Задание.Отменить();
	Исключение
		// Возможно задание как раз в этот момент закончилось и ошибки нет.
		ЗаписьЖурналаРегистрации(НСтр("ru = 'Длительные операции.Отмена выполнения фонового задания'", ОбщегоНазначения.КодОсновногоЯзыка()),
			УровеньЖурналаРегистрации.Информация, , , КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
	КонецПопытки;
	
КонецПроцедуры

///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются 
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////

Рекомендации

Похожие публикации

ОтменитьВыполнениеВсехПотоков (БСП)

ПриОтменеПотокаОтложенногоОбработчика (БСП)

ОтменитьФоновоеЗадание (БСП)

ОтменитьОбновлениеДоступаНаУровнеЗаписей (БСП)

ПриНачалеВыполненияРегламентногоЗадания (БСП)

ОтменитьЗагрузку (БСП)

СостояниеЗадания (БСП)

ПриОтменеПотокаПоискаПорцииДляОбновления (БСП)

TurboConf - расширение Конфигуратора 1С