Имя: Пароль:
1C
1С v8
Как прочитать ошибку, возникшую в фоновом задании
0 sem4cnt
 
05.09.17
22:28
Делаю так:

&НаСервереБезКонтекста
Функция ПолучитьСтатусФоновогоЗадания(ИдентификаторЗадания)
    
    СтатусФоновогоЗадания = Новый Структура("Состояние, ИнформацияОбОшибке, МассивСообщений");     
    ФоновоеЗадание  = ФоновыеЗадания.НайтиПоУникальномуИдентификатору(ИдентификаторЗадания);
    МассивСообщений = ФоновоеЗадание.ПолучитьСообщенияПользователю(Истина);
    Если ФоновоеЗадание.Состояние <> СостояниеФоновогоЗадания.Активно Тогда
        СтатусФоновогоЗадания.Вставить("Состояние", "НеАктивно");
        Если ФоновоеЗадание.Состояние = СостояниеФоновогоЗадания.ЗавершеноАварийно Тогда            
            СтатусФоновогоЗадания.Вставить("Состояние",          "ЗавершеноАварийно");
            СтатусФоновогоЗадания.Вставить("ИнформацияОбОшибке", ФоновоеЗадание.ИнформацияОбОшибке);             
        КонецЕсли;                 
    КонецЕсли;
    
    Если МассивСообщений <> Неопределено Тогда
        СтатусФоновогоЗадания.Вставить("МассивСообщений", МассивСообщений);
    КонецЕсли;
    
    Возврат СтатусФоновогоЗадания;
    
КонецФункции

Но когда структура возвращается на клиент возникает ошибка "Ошибка отображения типов. Отсутствует отображение для типа ИнформацияОбОшибке"
1 sem4cnt
 
05.09.17
22:30
При этом тип данных "ИнформацияОбОшибке", который приходит в составе структуры с сервера, также доступен на клиенте согласно СП.
2 H A D G E H O G s
 
05.09.17
22:37
(1) Доступность и Сериализация - разные вещи.
рекурсивно расскладывай описаниеошибки и возвращай стэк в массиве структур.
3 sem4cnt
 
05.09.17
22:39
(2) Пффф... Ну ладно. Будем сериализовывать вручную... И зачем такой гемор для 1С-ников устроили разработчики? Получить ошибку можно, а вывести ее пользователю на клиент надо извратом.

Спасибо!
4 1dvd
 
06.09.17
05:47
(3) на то оно и фоновое, чтобы простой смертный о нём не знал. А для непростых есть ЖР
5 VladZ
 
06.09.17
06:26
(0)  Зачем возвращать ошибку фонового задания на клиента?
Добавь логирование задания и анализируй логи.