Имя: Пароль:
1C
1С v8
В данной транзакции уже происходили ошибки
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 в "ПриЗаписи"? Обычно это делается в "ПередЗаписью".
Закон Брукера: Даже маленькая практика стоит большой теории.