Имя: Пароль:
1C
 
Заполнить справочник в фоновом задании
0 yyyuuu
 
04.02.21
08:27
Всем привет друзья
У Меня есть Табличная часть справочника. В ней находятся данные на отправку электронной почты. Документ на отправку, номер и куда.
Отправку делает в цикле, то есть 6 раз запускаю фоновое задание.
Фоновое задание отправки запускает фоновое задание проверки. Передает параметры, ключ фонового задания и ссылку на справочник.
По ключу нахожу фоновое задание, жду завершение если норм. То захожу в справочник на против отправляемой строки сталю ОК записываю.
И так делают остальные.

Но только это не работает. То блокировка то записать не может по иным причинам.
Подскажите как правильно сделать?

Процедура Проверка(СписокФайловНаУдаление,Ключ,Ссылка = Неопределено) Экспорт
    //    
    ПараметрыОтбора = Новый Структура("Наименование", "Отправка паспортов качества");    
    СписокФоновыхЗаданий = ФоновыеЗадания.ПолучитьФоновыеЗадания(ПараметрыОтбора);

    СправочникПаспортаКачества = Ссылка.ПолучитьОбъект();
    ПараметрыОтбора = Новый Структура("Ключ",Ключ );
    СписокФоновыхЗаданий = ФоновыеЗадания.ПолучитьФоновыеЗадания(ПараметрыОтбора);
    
    ФоновыеЗадания.ОжидатьЗавершения(СписокФоновыхЗаданий);
    
    Для Каждого Список Из СписокФоновыхЗаданий Цикл
        Для Каждого СписокУдаления Из СписокФайловНаУдаление Цикл
            Если Ссылка.ТАбличнаяЧастьПК.НАйти(СписокУдаления.Представление)<>Неопределено
                Тогда
                    //---
                    Если Список.Состояние = СостояниеФоновогоЗадания.Завершено
                        Тогда
                            СправочникПаспортаКачества.ТАбличнаяЧастьПК.НАйти(СписокУдаления.Представление).Статус   = Истина;    
                        Иначе
                            СправочникПаспортаКачества.ТАбличнаяЧастьПК.НАйти(СписокУдаления.Представление).Статус   = Ложь;
                            СправочникПаспортаКачества.ТАбличнаяЧастьПК.НАйти(СписокУдаления.Представление).Отправка   ="Не выполненно";
                            СправочникПаспортаКачества.ТАбличнаяЧастьПК.НАйти(СписокУдаления.Представление).ДатаИВремя = ТекущаяДата();            
                            //---
                    КонецЕсли;
        
                    СправочникПаспортаКачества.ТАбличнаяЧастьПК.НАйти(СписокУдаления.Представление).Отправка   = Список.Состояние;
                    СправочникПаспортаКачества.ТАбличнаяЧастьПК.НАйти(СписокУдаления.Представление).ДатаИВремя = ТекущаяДата();
                    
                    СправочникПаспортаКачества.ЗАписать();
                КонецЕсли;
        КонецЦикла;    
    КонецЦикла;
1 butterbean
 
04.02.21
08:38
(0) почему не сделать одно фоновое задание на один элемент справочника? и в нём же запись отметок в ТЧ и в нём же проверку, хотя она видимо будет не нужна
2 yyyuuu
 
04.02.21
08:39
(1) Нужно отслеживать отправку каждого из Тч и понимать какой не ушел. Если будет общая, тогда при сбое можно считать не отправленными все даже те которые ушли
3 yyyuuu
 
12.02.21
14:36
Я сделал, всем спасибо за советы