Имя: Пароль:
1C
1С v8
В данной транзакции уже происходили ошибки
0 EugeniaK
 
02.06.13
21:06
Есть 2 связанных документа.
ПриходныйДокумент по которому формируется ОтчетПроизводстваЗаСмену (ОПЗС)
Ссылка на сформированный ОПЗС записывается в ПриходныйДокумент.
Необходимо при проведении ПриходногоДокумента дополнительно проводить связанный ОПЗС.
Однако в некоторых случаях при проведении ОПЗС происходит ошибка проведения. Т.е. его провести нельзя в связи с недозаполненностью каких-либо данных.
При этом оба документа должны остаться непроведенными.
Однако в этом случае выскакиеват сообщение  "В данной транзакции уже происходили ошибки", которое пугает пользователя.
Насколько я понимаю, ошибка связана с тем, что происходит отмена транзакции внутри транзакции. Собственно вопрос, как убрать сообщение об ошибке  "В данной транзакции уже происходили ошибки"  и заменить на более корректное?
1 EugeniaK
 
02.06.13
21:14
Ошибка при вызове метода контекста (Записать): В данной транзакции уже происходили ошибки!
2 hhhh
 
02.06.13
21:25
(1) наверно при первой ошибке забыли отменить транзакцию
3 EugeniaK
 
02.06.13
21:28
(2) Первая ошибка заключается в том, что в ОбработкеПроведения ОПЗС записали Отказ=Истина.
Т.е. ошибка как таковой и не было. При проведении связанного документа не прошли проверки и проведение отменилось.
Соответственно и проведение исходного документа должно отмениться.
4 hhhh
 
02.06.13
21:31
значит были ошибки, раз она говорит. Может это не первая ошибка, а вторая ошибка в цикле повторяется?
5 EugeniaK
 
02.06.13
21:48
(4) В проведении документа есть команда вида
ДокументОПЗС.Записать(РежимЗаписи.Проведение)
Вот в случае если вложенное проведение не прошло (Отказ = Истина) и возникает ошибка.
До этого ошибок никаких нет.
Кстати, "Отказ = Истина" это вообще классифицируется как ошибка или как корректная отмена проведения?
6 ИсчадиеADO
 
02.06.13
21:53
вложенная транзакция с попыткой. Если в попытке срабатывает исключение, то возникает ошибка
7 Славен
 
02.06.13
21:54
(6)+100
8 Emilio
 
02.06.13
23:45
(0) у мебя часто наблюдал эту ошибку из-за неправильных блокировок.
9 Emilio
 
02.06.13
23:45
(8) *себя
10 ICWiner
 
03.06.13
04:36
В исключении юзай ИнформацияОбОшибке, посмотри в СП синтаксис.
11 Web00001
 
03.06.13
05:10
(5)Что вы понимаете под "корректная отмена проведения"?
Документ либо провелся и сделал движения, либо нет.
Ну и как бы да. Если отказ проведения штатная ситуация, просто используй исключение в момент записи и отрабатывай ошибочную ситуацию, как тебе удобно.
12 EugeniaK
 
03.06.13
10:39
(11) Корректная отмена проведения - при проведении какая-то проверка показала, что проводить нельзя.
Некорректная отмена - произошла исключительная ситуация (блокировка в базе, деление на ноль или что-то еще нестандартное)
(10) Попробую
13 ИсчадиеADO
 
03.06.13
11:06
Женя, нет ли вложенной транзакции? Если есть,то (6)
14 EugeniaK
 
03.06.13
16:48
(13) Там получается транзакция, в ней попытка и в этой попытке снова транзакция.
Вынесла проведение связанного документа ОПЗС в процедуру ПередЗаписью() модуля формы. Ничего лучше не придумала.
В модуле объекта в любом случае получается транзакция в транзакции.
15 acsent
 
03.06.13
16:49
попытка Записать() исключение Отказ = Итсина Конец
16 acsent
 
03.06.13
16:50
(14) в этом вся фишка то и есть, что в одной транзакции все происходит
17 EugeniaK
 
03.06.13
17:24
(15) Так и стояло изначально.
Просто транзакция уже начата, находимся в ОбработкеПроведения. При вызове Записать(Режим.Проведение) открывается вложенная транзакция.
И если в команде Записать(Режим.Проведение) проведение неудачно (т.е. внутри Отказ = Истина), то ошибка.
"Попытка" не спасает.
Все равно "В данной транзакции уже происходили ошибки"
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn