Имя: Пароль:
1C
1С v8
Ошибки транзакции
0 Stim
 
23.10.12
14:47
как заменить  код:

начатьТранзакцию();
ОбнаруженыОшибки = ЛОЖЬ;

Попытка
<код>
Исключение
ОбнаруженыОшибки = ИСТИНА;
КОнецПопытки;

если НЕ ОбнаруженыОшибки Тогда
ЗафиксироватьТранзакцию();
Иначе
ОтменитьТранзакцию();
конецЕсли;

на такой, чтобы  при попадании в исключение предприятие не выдавало ошибку "в данной транзакции уже происходили ошибки" ?
1 1Страх
 
23.10.12
14:50
значит ошибка была ранее
2 Stim
 
23.10.12
14:52
(1) спасибо, кэп. ошибка была раннее, раз прошел переход в исключение
3 1Страх
 
23.10.12
14:55
(2) до этого ошибок в транзакции не было?
4 Stim
 
23.10.12
15:01
(3) были, ты прав.
5 Reset
 
23.10.12
15:04
(0) чтобы не выдавало ошибку "в данной транзакции уже происходили ошибки"

Не обращаться к данным, пока транзакция не отменится
6 Stim
 
23.10.12
15:08
(5) это как? я документ записываю в попытке
7 hhhh
 
23.10.12
15:11
(6) ну значит ранее забыли написать ОтменитьТранзакцию();
8 Reset
 
23.10.12
15:12
(6) Из контекста (0) понятно, что ты что-то делаешь, что вызывает ошибку при работе с БД. В такой транзакции уже ничего нельзя делать с данными. В иключении ты, очвидно, каку-то диагностику выводишь, типа не провдиться документ по Ссыылка.Контрагент - это вызывает ошибку.
9 Reset
 
23.10.12
15:13
много опечаток :(
10 Stim
 
23.10.12
15:17
(8) я записываю док два раза, в двух попытках. в первой - с  одним номером, если сваливается в исключение - записываю с уникальным номером и во второй попытке пытаюсь записать с нормальным номером.
11 Reset
 
23.10.12
15:17
(10) После первой попытки придется отменять транзакцию
12 Reset
 
23.10.12
15:18
Или заранее проверять номер так, чтобы не происходило исключение
13 Stim
 
23.10.12
15:19
Reset, спасибо, второй вариант больше нравится