|
В данной транзакции уже происходили ошибки |
☑ |
0
shamannk
19.09.14
✎
12:20
|
Выполняется обработка в транзакции, в обработке делаю запись в попытке в рег. сведений в котором при записи стоит проверка на отр. остаток, если сработала ставлю отказ истина, в обработке в исключении возникает данная ошибка и система вылетает. Как быть?
Код в обработке:
....
Попытка
Набор.Записать();
Исключение
Отказ = Истина;
КонецПопытки;
Если Отказ Тогда
//Выполнить ряд процедур
....
Код в рег. при записи:
...
Если Результат < 0 Тогда
Отказ = Истина;
КонецЕсли;
...
|
|
1
Maxus43
19.09.14
✎
12:43
|
Вне транзакции делать - предлагать?
|
|
2
Maxus43
19.09.14
✎
12:43
|
точней надо отменить транзакцию, после ошибки в Попытке, и далее делать дальше
|
|
3
shamannk
19.09.14
✎
12:43
|
Не предлагать.
|
|
4
Maxus43
19.09.14
✎
12:45
|
А ещё лучше - до записи проверь "Если Результат < 0 Тогда "
чтобы не бится головой об стену
|
|
5
unregistered
19.09.14
✎
12:58
|
(3) >> Не предлагать
Ну нету в 1С вложенных трнзакций, когда внутри одной транзакции часть вложенных транзакций успешно выполнены, а какая-то часть - отменена.
Либо отказаться от того, чтобы делать всё в одной транзакции.
Либо гарантировать успешность завершения всех вложенных транзакций (проверять корректность записей набора регистра до его записи).
PS И нафига проверять Результат < 0 в "ПриЗаписи"? Обычно это делается в "ПередЗаписью".
|
|