Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слева Предыдущая версия | |||
|
vypolnenie_procedury_v_fone_cherez_dlitelnye_operacii [2021/02/26 11:51] tro |
vypolnenie_procedury_v_fone_cherez_dlitelnye_operacii [2021/02/26 11:54] (текущий) tro |
||
|---|---|---|---|
| Строка 112: | Строка 112: | ||
| КонецПроцедуры | КонецПроцедуры | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | & | ||
| + | Функция | ||
| + | |||
| + | Задание = ФоновыеЗадания.НайтиПоУникальномуИдентификатору(ИдЗадания); | ||
| + | СтрокаТаблицы = ИдЗадания; | ||
| + | |||
| + | Если Задание = Неопределено Тогда | ||
| + | // | ||
| + | Выполнено = Истина; | ||
| + | // | ||
| + | Возврат Выполнено; | ||
| + | КонецЕсли; | ||
| + | | ||
| + | Состояние = Задание.Состояние; | ||
| + | | ||
| + | Если Состояние = СостояниеФоновогоЗадания.Завершено Тогда | ||
| + | |||
| + | МассивСообщений = Задание.ПолучитьСообщенияПользователю(Истина); | ||
| + | Если МассивСообщений = Неопределено Тогда | ||
| + | Иначе | ||
| + | Если МассивСообщений.Количество() > 0 Тогда | ||
| + | |||
| + | ПоследняяЗапись = МассивСообщений.Количество()-1; | ||
| + | |||
| + | Для Каждого Сообщ Из МассивСообщений Цикл | ||
| + | // | ||
| + | // | ||
| + | // | ||
| + | КонецЦикла; | ||
| + | |||
| + | КонецЕсли; | ||
| + | КонецЕсли; | ||
| + | |||
| + | ВыполненыВсеЗадания = Истина; | ||
| + | | ||
| + | Сообщение = Новый СообщениеПользователю; | ||
| + | Сообщение.Текст = " | ||
| + | Сообщение.Сообщить(); | ||
| + | | ||
| + | ИначеЕсли Состояние = СостояниеФоновогоЗадания.ЗавершеноАварийно Тогда | ||
| + | |||
| + | ОшибкаЗадания = Задание.ИнформацияОбОшибке; | ||
| + | Если ОшибкаЗадания <> Неопределено Тогда | ||
| + | ЗаписьЖурналаРегистрации(НСтр(" | ||
| + | УровеньЖурналаРегистрации.Ошибка,,, | ||
| + | ПодробноеПредставлениеОшибки(ОшибкаЗадания)); | ||
| + | Иначе | ||
| + | ЗаписьЖурналаРегистрации(НСтр(" | ||
| + | УровеньЖурналаРегистрации.Ошибка,,, | ||
| + | НСтр(" | ||
| + | КонецЕсли; | ||
| + | | ||
| + | МассивСообщений = Задание.ПолучитьСообщенияПользователю(Истина); | ||
| + | Если МассивСообщений = Неопределено Тогда | ||
| + | // | ||
| + | Иначе | ||
| + | Если МассивСообщений.Количество() > 0 Тогда | ||
| + | ПоследняяЗапись = МассивСообщений.Количество()-1; | ||
| + | КонецЕсли; | ||
| + | | ||
| + | ЗаписьЖурналаРегистрации(НСтр(" | ||
| + | УровеньЖурналаРегистрации.Ошибка,,, | ||
| + | Строка(ПоследняяЗапись));// | ||
| + | |||
| + | // | ||
| + | Сообщение = Новый СообщениеПользователю; | ||
| + | Сообщение.Текст = ПодробноеПредставлениеОшибки(ОшибкаЗадания); | ||
| + | Сообщение.Сообщить(); | ||
| + | |||
| + | КонецЕсли; | ||
| + | ВыполненыВсеЗадания = Ложь; | ||
| + | Возврат Неопределено; | ||
| + | |||
| + | Иначе | ||
| + | | ||
| + | МассивСообщений = Задание.ПолучитьСообщенияПользователю(Истина); | ||
| + | Если МассивСообщений = Неопределено Тогда | ||
| + | // | ||
| + | Иначе | ||
| + | Если МассивСообщений.Количество() > 0 Тогда | ||
| + | | ||
| + | ПоследняяЗапись = МассивСообщений.Количество()-1; | ||
| + | | ||
| + | Для Каждого Сообщ Из МассивСообщений Цикл | ||
| + | | ||
| + | Если СтрНайти(Сообщ.Текст," | ||
| + | СтрНайти(Сообщ.Текст," | ||
| + | // | ||
| + | ИначеЕсли СтрНайти(Сообщ.Текст," | ||
| + | // | ||
| + | попытка | ||
| + | ИндикаторОбработкиExcel = число(СтрЗаменить(Сообщ.Текст," | ||
| + | Исключение | ||
| + | КонецПопытки; | ||
| + | Иначе | ||
| + | Сообщение = Новый СообщениеПользователю; | ||
| + | Сообщение.Текст = Сообщ.Текст;// | ||
| + | Сообщение.Сообщить(); | ||
| + | КонецЕсли; | ||
| + | | ||
| + | КонецЦикла; | ||
| + | | ||
| + | КонецЕсли; | ||
| + | КонецЕсли; | ||
| + | ВыполненыВсеЗадания = Ложь; | ||
| + | | ||
| + | КонецЕсли; | ||
| + | | ||
| + | Возврат ВыполненыВсеЗадания; | ||
| + | |||
| + | КонецФункции | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | & | ||
| + | Процедура ПрекратитьВыполнениеНаСервере(ИдЗадания) | ||
| + | | ||
| + | //Для каждого СтрокаТаблицы Из ТаблицаИдентификаторовЗаданий Цикл | ||
| + | Задание = ФоновыеЗадания.НайтиПоУникальномуИдентификатору(ИдЗадания); | ||
| + | Задание.Отменить(); | ||
| + | // | ||
| + | | ||
| + | КонецПроцедуры | ||
| </ | </ | ||