Как отменять вложенную транзакцию не трогая основную?

1. Fe9_min 50 25.02.21 14:54 Сейчас в теме
День добрый!
Платформа 8.3.17.1851.
Есть проведение документ Реализация, но в подписке на событие "после проведения" или в расширение "после проведения" необходимо создавать и проводить документ Поступление. По ряду причин он может не проводится, тогда с Поступление ничего делать не надо.
Но при попытке проведения Поступления выдаётся Отказ и выпадает исключение, которое влечёт за собой ошибку: "в данной транзакции уже происходили ошибки", после чего даже Реализация не проводится.
Вопрос, есть ли возможность при не проведение Поступления, всё равно проводить Реализацию? метод с транзакциями пробовал.

Процедура ОбработкаПроведения(Отказ, РежимПроведения)// Проведение Реализации
	ДокПоступление = ПолучитьДокПоступления();
	//НачатьТранзакцию();
	Попытка

		ДокПоступление.Записать(РежимЗаписиДокумента.Проведение);
		//ЗафиксироватьТранзакцию();
	Исключение
		//ОтменитьТранзакцию();
	КонецПопытки;
КонецПроцедуры
Показать
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. spacecraft 25.02.21 15:03 Сейчас в теме
(1) в таком виде это не решаемо.
Как вариант, использовать отложенное проведение. Можно создать РС, в который помещать ссылку на документ, который необходимо провести (в данном случае это документ поступления) и периодически (можно регламентным заданием) проверять этот РС. Если есть записи, то пытаться провести нужный документ. Это в общих чертах.
3. Fe9_min 50 25.02.21 15:25 Сейчас в теме
(2) вот и я так думаю, спасибо!
4. DJDUH 17 25.02.21 16:20 Сейчас в теме
5. Fe9_min 50 25.02.21 16:39 Сейчас в теме
(4) не проверял, потому как для меня вопрос стоит именно с проведениями. Исключение вложенной транзакции должно сыпать и основную, будь то запись или проведение
6. sivin-alexey 511 26.02.21 10:00 Сейчас в теме
Отменить вложенную транзакцию не отменяя основную - никак.

Выход: перед проведением поступления нужно на 100% убедиться, что он будет проведен (проверить правильность заполения документа, может потребуются ещё какие-нибудь проверки), и только потом проводить. Если проверка поступления не прошла, то не нужно пытаться его провести.

Другими словами - не допустить возникновения ошибки.

Подробнее на ИТС: https://its.1c.ru/db/metod8dev#content:2313:hdoc
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот