Имя: Пароль:
1C
1С v8
Вложенные транзакции
0 shamannk
 
14.03.12
11:03
Написал обработку простую что разобрать эту гадость:
НачатьТранзакцию();
      НачатьТранзакцию();
     
      ОтменитьТранзакцию();
      Сообщить(ТранзакцияАктивна());
ОтменитьТранзакцию();
Сообщение выдает истина
В статье http://www.stavanalit.ru/metod/programmistu/nemnogo-o-tranzakcziyax….html написанно
...Таким образом, отмена изменений, выполняемая во «вложенной» транзакции, будет приводить, в конечном счете, не к отмене изменений самой «вложенной» транзакции, а к отмене всех изменений транзакции верхнего уровня.... Вопрос почему транзакция активна тогда? если внутринние отменять все транзакции должны?
1 vde69
 
14.03.12
11:04
1с не работает со вложеными транзакциями
2 rs_trade
 
14.03.12
11:06
(0) че ты за херню читаешь. почитай лучше проф. разработку. там все популярно расписано.
3 Maxus43
 
14.03.12
11:06
Сообщить - интерактивное, ты во вложенной Данные измени, и увидиш что откатилось.
чо он тут должен сообщение из окна откатить?)
4 shamannk
 
14.03.12
11:11
Так а на вопрос ответить?
5 Maxus43
 
14.03.12
11:12
(5) ТранзакцияАктивна() - выдаёт состояние транзакции. Да, она активна, но будет отменена, неазирая на последнее отменить, ибо отмена вложеной отменяет всю
6 vde69
 
14.03.12
11:32
(5) отмена вышестоящей отменяет зафиксированую вложеную?
7 Maxus43
 
14.03.12
11:40
(6) да. по сути вложеной просто нет, 1с с ними не работает
8 Maxus43
 
14.03.12
11:42
ЕМНИП там просто флаг/указатель что транзакция начата. после этого хоть 500 раз начинай ещё транзакции, толку нет
9 fisher
 
14.03.12
13:42
РТФМ.
Откат вложенной транзакции в 1С откатывает все вышестоящие.
Любая ошибка во вложенной транзакции ведет к откату всего.
Ошибка, обработанная в исключении, также ведет к откату всего т.к. попытка/исключение также реализовано как вложенная транзакция.