Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

1С ошибка при обмене данными

1С ошибка при обмене данными
Я
   andryscha1c
 
18.10.21 - 11:15
есть внешняя обработка, которая по расписанию раз в день выполняет обмен, а именно, отправляет и принимает через HTTP данные с внешней системы.
Возникло следующее: в какой то момент при загрузке документа, может к примеру, возникнуть ошибка (пользователь номер например забыл вбить) и тогда вся выгрузка падает и обмен прекращается. Можно ли как то реализовать так, что бы при ошибке выгрузка продолжала работать дальше и не падала?
   бомболюк
 
1 - 18.10.21 - 11:23
Ну например обрабатывать возникающую ошибку самостоятельно, при помощи конструкции Попытка - Исключение - КонецПопытки
   ДенисЧ
 
2 - 18.10.21 - 11:25
Есть такое слово "Попытка исключение конецпопытки"
   andryscha1c
 
3 - 18.10.21 - 11:31
(1) тогда придется всю выгрузку описывать в таких конструкциях, и необходимо заранее самостоятельно предполагать, где может возникнуть ошибка
   Serg_1960
 
4 - 18.10.21 - 11:34
Чисто теоретически, в принципе, во внешней обработке можно установить обмен в режиме загрузки данных - всё бесконтрольно принимается "как есть"...
   SleepyHead
 
5 - 18.10.21 - 11:36
А можно описать структуру загружаемых данных так, чтобы было понятно, загружено значение из файла обмена или нет. Незагруженные значения отрабатывать до записи данных в базу.

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

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.