Имя: Пароль:
1C
1С v8
"В данной транзакии уже происходили ошибки" при ОтменитьТранзакцию()
0 Fragster
 
гуру
15.07.13
14:57
Ошибка из сабжа при (было большое, сократил код, все равно ошибка):

НачатьТранзакцию();
Попытка
   мОбъект.Записать(РежимЗаписиДокумента.Проведение);
   ЗафиксироватьТранзакцию();
Исключение
   ИнформацияОбОшибке = ИнформацияОбОшибке(); // тут в причине - Не удалось провести...
   Если ТранзакцияАктивна() Тогда
       ОтменитьТранзакцию(); // тут ошибка про "в данной транзакции"
   КонецЕсли;
КонецПопытки;
1 Fragster
 
гуру
15.07.13
14:57
что-то начинаю в себе сомневаться :(
2 Fragster
 
гуру
15.07.13
14:58
в конце процедуры проведения - отказ = ложь
3 mikecool
 
15.07.13
14:59
пошаговую отладку не предлагать?
4 Fragster
 
гуру
15.07.13
15:00
(3) ты не поверишь...
5 acsent
 
15.07.13
15:01
транзакция на 1 документ?
6 Fragster
 
гуру
15.07.13
15:01
(5) сейчас - да
7 acsent
 
15.07.13
15:01
может быть внутри проведения нельзя отменять транзакцию1?
8 Maxus43
 
15.07.13
15:01
а так?
Попытка

Исключение
ЕстьОшибки = Истина
....

Если ЕстьОшибки Тогда
ОтменитьТранзакцию()
Иначе зафиксировать
9 Fragster
 
гуру
15.07.13
15:02
(8) т.е. отменять не в попытке? сейчас попробую.
10 Fragster
 
гуру
15.07.13
15:07
(7) это не внутри проведения, это внутри внешней обработки (т.е. на момент начала кода ТранзакцияАктивна() = Ложь)
11 Maxus43
 
15.07.13
15:08
(9) я всегда так делаю, внутри попытки это несколько неэстетично на мой взгляд
12 acsent
 
15.07.13
15:08
так транзакция уже отменена обработкой проведения
13 Fragster
 
гуру
15.07.13
15:09
(12) когда нет транзакции ошибка "Транзакция не активна"
14 Fragster
 
гуру
15.07.13
15:11
блин. (8) работает. вопрос - какого фига??
15 Ёпрст
 
15.07.13
15:12
Можешь еще фиксировать и отменять в своей попытке..
16 Ёпрст
 
15.07.13
15:13
в другой, отличной от попытки проведения
17 Поросенок Петр
 
15.07.13
15:18
Вероятно в проведении тоже есть попытка, обработанная через задницу.
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.