В данной транзакции уже происходили ошибки #667384


#0 by EugeniaK
Есть 2 связанных документа. ПриходныйДокумент по которому формируется ОтчетПроизводстваЗаСмену (ОПЗС) Ссылка на сформированный ОПЗС записывается в ПриходныйДокумент. Необходимо при проведении ПриходногоДокумента дополнительно проводить связанный ОПЗС. Однако в некоторых случаях при проведении ОПЗС происходит ошибка проведения. Т.е. его провести нельзя в связи с недозаполненностью каких-либо данных. При этом оба документа должны остаться непроведенными. Однако в этом случае выскакиеват сообщение  "В данной транзакции уже происходили ошибки", которое пугает пользователя. Насколько я понимаю, ошибка связана с тем, что происходит отмена транзакции внутри транзакции. Собственно вопрос, как убрать сообщение об ошибке  "В данной транзакции уже происходили ошибки"  и заменить на более корректное?
#1 by EugeniaK
Ошибка при вызове метода контекста (Записать): В данной транзакции уже происходили ошибки!
#2 by hhhh
наверно при первой ошибке забыли отменить транзакцию
#3 by EugeniaK
Первая ошибка заключается в том, что в ОбработкеПроведения ОПЗС записали Отказ=Истина. Т.е. ошибка как таковой и не было. При проведении связанного документа не прошли проверки и проведение отменилось. Соответственно и проведение исходного документа должно отмениться.
#4 by hhhh
значит были ошибки, раз она говорит. Может это не первая ошибка, а вторая ошибка в цикле повторяется?
#5 by EugeniaK
В проведении документа есть команда вида ДокументОПЗС.Записать(РежимЗаписи.Проведение) Вот в случае если вложенное проведение не прошло (Отказ = Истина) и возникает ошибка. До этого ошибок никаких нет. Кстати, "Отказ = Истина" это вообще классифицируется как ошибка или как корректная отмена проведения?
#6 by ИсчадиеADO
вложенная транзакция с попыткой. Если в попытке срабатывает исключение, то возникает ошибка
#7 by Славен
+100
#8 by Emilio
у мебя часто наблюдал эту ошибку из-за неправильных блокировок.
#9 by Emilio
*себя
#10 by ICWiner
В исключении юзай ИнформацияОбОшибке, посмотри в СП синтаксис.
#11 by Web00001
Что вы понимаете под "корректная отмена проведения"? Документ либо провелся и сделал движения, либо нет. Ну и как бы да. Если отказ проведения штатная ситуация, просто используй исключение в момент записи и отрабатывай ошибочную ситуацию, как тебе удобно.
#12 by EugeniaK
Корректная отмена проведения - при проведении какая-то проверка показала, что проводить нельзя. Некорректная отмена - произошла исключительная ситуация (блокировка в базе, деление на ноль или что-то еще нестандартное) Попробую
#13 by ИсчадиеADO
Женя, нет ли вложенной транзакции? Если есть,то
#14 by EugeniaK
Там получается транзакция, в ней попытка и в этой попытке снова транзакция. Вынесла проведение связанного документа ОПЗС в процедуру ПередЗаписью модуля формы. Ничего лучше не придумала. В модуле объекта в любом случае получается транзакция в транзакции.
#15 by acsent
попытка Записать исключение Отказ = Итсина Конец
#16 by acsent
в этом вся фишка то и есть, что в одной транзакции все происходит
#17 by EugeniaK
Так и стояло изначально. Просто транзакция уже начата, находимся в ОбработкеПроведения. При вызове Записать(Режим.Проведение) открывается вложенная транзакция. И если в команде Записать(Режим.Проведение) проведение неудачно (т.е. внутри Отказ = Истина), то ошибка. "Попытка" не спасает. Все равно "В данной транзакции уже происходили ошибки"
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С