Имя: Пароль:
1C
 
1С Конвертация. Попытка/исключение в "После загрузки". Проведение документа
0 maslov_ilya
 
02.11.23
10:11
Часто в правилах обмена в обработчике ПКО "После загрузки" встречаю конструкции типа:
Если Объект.Проведен Тогда
Попытка
     Объект.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Неоперативный);
        Исключение
     Объект.Проведен = Ложь;
КонецПопытки;
КонецЕсли;

Хочется разобраться нормально ли для целей попытки проведения использовать конструкцию Попытка/Исключение?

Вопрос возник на фоне текущей ситуации:
Выгружается документ и при попытке проведения возникает ошибка, которая останавливает весь обмен с ошибкой:

Ошибка выполнения запроса
по причине:
В данной транзакции уже происходили ошибки!

Если убираю проведение в "После загрузки" - ошибка уходит, но пытаться перепроводить документы надо. Единственным решением пока вижу, добавлять документы в отложенное проведение и потом уже проводить регламентом.

Уже не первый раз сталкиваюсь с проблемой что Попытка/исключение не всегда работает как надо, но регулярно вижу как в уроках по КД говорят так делать и делают люди...может я чего не понимаю?
1 MaxS
 
02.11.23
10:32
>Выгружается документ и при попытке проведения возникает ошибка
Загружается, может быть? Пользователю допустимо так выражаться, но не программисту. )

>Единственным решением пока вижу, добавлять документы в отложенное проведение и потом уже проводить регламентом.
Вроде так и работает... в универсальном формате обмена. И специально программисту не нужно писать код для проведения, это есть в типовых механизмах БСП.
Всё записывается, потом работает отложенное проведение и там теоретически возможно "В данной транзакции уже происходили ошибки!" но данные записаны и пмсм обмен критически не прерывается после этого. База источник получает информацию, что пакет доставлен.
2 maslov_ilya
 
02.11.23
10:38
Видимо надо уточнить.
Загрузка в УПП 1.3
Конвертация 2.1
Автоматически ничего не добавляется в отложенные