Код IT
← Каталог

Обработка ошибок 1С — Обработка ошибок при массовых операциях

Фрагмент из «Обработка ошибок 1С»: Обработка ошибок при массовых операциях.

1С (BSL) main.bsl
Процедура ОбработатьДокументы(СписокДокументов) Экспорт
    
    Успешно = 0;
    Ошибки = Новый ТаблицаЗначений;
    Ошибки.Колонки.Добавить("НомерДокумента");
    Ошибки.Колонки.Добавить("Ошибка");
    
    Для Каждого Документ Из СписокДокументов Цикл
        
        Попытка
            ЗаписатьДокумент(Документ);
            Успешно = Успешно + 1;
            
        Исключение
            СтрокаОшибки = Ошибки.Добавить();
            СтрокаОшибки.НомерДокумента = Документ.Номер;
            СтрокаОшибки.Ошибка = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
        КонецПопытки;
        
    КонецЦикла;
    
    Сообщить("Обработано успешно: " + Успешно);
    
    Если Ошибки.Количество() > 0 Тогда
        ПоказатьТаблицу(Ошибки, "Список ошибок");
    КонецЕсли;
    
КонецПроцедуры
Процедура ОбработатьДокументы(СписокДокументов) Экспорт
    
    Успешно = 0;
    Ошибки = Новый ТаблицаЗначений;
    Ошибки.Колонки.Добавить("НомерДокумента");
    Ошибки.Колонки.Добавить("Ошибка");
    
    Для Каждого Документ Из СписокДокументов Цикл
        
        Попытка
            ЗаписатьДокумент(Документ);
            Успешно = Успешно + 1;
            
        Исключение
            СтрокаОшибки = Ошибки.Добавить();
            СтрокаОшибки.НомерДокумента = Документ.Номер;
            СтрокаОшибки.Ошибка = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
        КонецПопытки;
        
    КонецЦикла;
    
    Сообщить("Обработано успешно: " + Успешно);
    
    Если Ошибки.Количество() > 0 Тогда
        ПоказатьТаблицу(Ошибки, "Список ошибок");
    КонецЕсли;
    
КонецПроцедуры