|
1С ошибка при обмене данными | ☑ | ||
---|---|---|---|---|
0
andryscha1c
18.10.21
✎
11:15
|
есть внешняя обработка, которая по расписанию раз в день выполняет обмен, а именно, отправляет и принимает через HTTP данные с внешней системы.
Возникло следующее: в какой то момент при загрузке документа, может к примеру, возникнуть ошибка (пользователь номер например забыл вбить) и тогда вся выгрузка падает и обмен прекращается. Можно ли как то реализовать так, что бы при ошибке выгрузка продолжала работать дальше и не падала? |
|||
1
бомболюк
18.10.21
✎
11:23
|
Ну например обрабатывать возникающую ошибку самостоятельно, при помощи конструкции Попытка - Исключение - КонецПопытки
|
|||
2
ДенисЧ
18.10.21
✎
11:25
|
Есть такое слово "Попытка исключение конецпопытки"
|
|||
3
andryscha1c
18.10.21
✎
11:31
|
(1) тогда придется всю выгрузку описывать в таких конструкциях, и необходимо заранее самостоятельно предполагать, где может возникнуть ошибка
|
|||
4
Serg_1960
18.10.21
✎
11:34
|
Чисто теоретически, в принципе, во внешней обработке можно установить обмен в режиме загрузки данных - всё бесконтрольно принимается "как есть"...
|
|||
5
SleepyHead
гуру
18.10.21
✎
11:36
|
А можно описать структуру загружаемых данных так, чтобы было понятно, загружено значение из файла обмена или нет. Незагруженные значения отрабатывать до записи данных в базу.
Тогда попытка-исключение не понадобятся |
|||
6
andryscha1c
18.10.21
✎
11:38
|
(4) вот это я и видел в типовых, только в какой момент это описать и куда, если обработка с нуля написана, да и планов обмена нет.
|
|||
7
andryscha1c
18.10.21
✎
11:39
|
(5) это интересно, то есть если структура обязательных полей не заполнена, то объект не записывать а базу?
|
|||
8
Kassern
18.10.21
✎
11:41
|
(3) всего то нужно несколько попыток. Первая при получении данных с сервиса, вторая при записи документа.
|
|||
9
Serg_1960
18.10.21
✎
11:47
|
(6) Не зная алгоритмы обработки - сложно что-либо подсказать. Если обработка "с нуля" - то нужно найти место в алгоритме, где объект записывается и там внести изменение (запись через попытку, а если исключение - регистрация ошибки в протоколе обмена и запись через "Объект.ОбменДанными.Загрузка = Истина;". Как-то вот так.
|
|||
10
andryscha1c
18.10.21
✎
12:33
|
(8) (9) а что если ошибка типа "Поле объекта не обнаружено" которая возникает динамически, за счет неверного выбора элемента пользователем
|
|||
11
Kassern
18.10.21
✎
12:43
|
(10) Если это json то без проблем можете прочитать в соответствие и проверять наличие свойства перед обработкой.
|
|||
12
Kassern
18.10.21
✎
12:53
|
(11) Если это XML то можно через фабрику XDTO прочитать, на выходе будет ОбъектXDTO у которого есть метод Свойства(), который выводит текущие свойства у объекта. Так что тоже можно исключить подобные ошибки
|
|||
13
fisher
18.10.21
✎
13:00
|
(10) Падать по ошибке такого рода - это нормальная практика. fail fast называется. Сразу увидел, сразу разобрался, сразу починил и живешь дальше без проблем. В противном случае у тебя возникает гамбуз отложенных проблем с высокими рисками просрочить критичные.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |