|
Мониторинг регл. заданий | ☑ | ||
---|---|---|---|---|
0
AlphaSpec
02.06.17
✎
10:25
|
Доброго дня. Суть проблемы: есть регл. задание по выгрузке данных в другую базу через COM. Есть желание вести мониторинг этого задания. Для этого я создал внешнюю обработку, которая запускается планировщиком Винды по расписанию через vbs. Обработка смотрит заполнено ли свойство ИнформацияОбОшибке фонового задания регламентного задания. И если, например, вообще удалить COM-компоненту, то обработка выгрузки уходит в эксепшн, и свойство должно бы заполниться, но этого не происходит... Интересует в каком случае при выполнении фонового задания заполняется его свойство ИнформацияОбОшибке.
|
|||
1
AlphaSpec
02.06.17
✎
12:13
|
Ап!
|
|||
2
Skylark
02.06.17
✎
12:57
|
(0) Я думаю, что если в обработке у тебя прописана попытка-исключение, то даже если срабатывает исключение, то это означает, что регзадание завершилось. Т.е. типа возникшие ошибки ты сам обработал.
А вот если попытки-исключения нет, то регзадание завершиться аварийно и получит информацию об ошибке. |
|||
3
AlphaSpec
02.06.17
✎
13:31
|
(2) В синтакс-помошнике говорится именно об исключении. ИнформацияОбОшибке (ErrorInfo)
Описание: Предназначен для представления структурированной информации об ошибке (исключении). |
|||
4
AlphaSpec
02.06.17
✎
13:33
|
Но исключение должно возникнуть именно в процедуре обработчике регламентного задания. Поэтому возникает другой вопрос: Возможно ли каким-то образом выполняя программно(не интерактивно) обмен данными обработкой УниверсальныйОбменДанными определить - возникали ли исключения в обработке? В составе реквизитов обработки ничего похожего не увидел. Есть ФлагОшибок, но он не информативен, и не во всех исключительных ситуациях взводится. Хочется выполняя обмен программно иметь данные об возникших ошибках обработки. Не меняя код обработки, полагаю - невозможно?
|
|||
5
Skylark
02.06.17
✎
14:15
|
(4)
Процедура Регзадание() Попытка / код основного функционала / Исключение / код обработки ошибки / КонецПопытки КонецПроцедуры Фоновое задание с такой процедурой будет выполняться успешно ВСЕГДА. Даже если произойдет ошибка в коде основного функционала, фоновое задание завершится успешно (ну если только ошибки не будет уже в коде обработки ошибки). Если в коде обработки ошибки ты вызовешь метод ИнформацияОбОшибке (ErrorInfo), то получишь эту информацию и сможешь с ней что-нибудь сделать - отправить сообщение об ошибке по почте или записать в специально созданный для этого регистр/справочник/..., чтобы потом проанализировать. |
|||
6
Skylark
02.06.17
✎
14:16
|
Процедура Регзадание()
/ код основного функционала / КонецПроцедуры А вот так, если в основном коде будет ошибка, то фоновое задание завершится со статусом "Аварийно" и где-нибудь в его свойствах будет информация об ошибке. |
|||
7
Skylark
02.06.17
✎
14:19
|
(4) УниверсальныйОбменДанными при интерактивной работе выдает же сообщения об ошибках? Посмотри этот кусок, вполне вероятно, что при программной работе информация об ошибках также где есть.
|
|||
8
AlphaSpec
02.06.17
✎
14:50
|
(7) Смотрел. В интерактивном режиме при ошибках вызывается исключение, в котором просто формируется строка и сообщается пользователю. Больше никуда ничего не пишет. Программно похоже не получить без изменений обработки. Что достаточно странно для такой серьезной типовой обработки.
|
|||
9
Skylark
02.06.17
✎
17:58
|
(8) Не знаю, куда ты смотрел. Я сейчас глянул - в этой обработке предусмотрена целая система вывода сообщений в протокол. Половина закладки "Дополнительные настройки" этому посвящена.
Сто пудов это можно сделать и программно - получить экземпляр обработки, установить соответствующие настроечные реквизиты и вперед. По завершении обмена получить от обработки протокол. |
|||
10
AlphaSpec
05.06.17
✎
08:18
|
(9) И я не знаю, куда Вы смотрели ) В протокол обмена типовым функционалом обработки не предусмотрен вывод сообщений об ошибках подключения к ИБ приемнику.
|
|||
11
AlphaSpec
05.06.17
✎
16:00
|
Вопрос сейчас в другом - есть обработка в справочнике внешних обработок. У обработки есть команда с типом ВыполнениеСерверногоМетода. Для команды настроено расписание выполнения. У меня не получается сэмулировать такие условия, при которых у фонового задания выполнения этой обработки статус был - ЗавершенАварийно. Прописываю полнейшую ересь в коде, но фоновое задание не завершается аварийно. С чем это может быть связано и при каком условии будет статус ЗавершенАварийно?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |