|
Как прочитать ошибку, возникшую в фоновом задании
| ☑ |
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) Зачем возвращать ошибку фонового задания на клиента?
Добавь логирование задания и анализируй логи.
|
|