Ошибка использования транзакции - Транзакция не активна #701715


#0 by Gorr
Почему возникает ошибка? как правильно использовать транзакцию совместно с конструкцией попытка?
#1 by Maxus43
...
#2 by Gorr
+ ЗафиксироватьТранзакцию; находится перед Исключением
#3 by timurhv
ТранзакцияАктивна
#4 by Добрый хачик
#5 by Maxus43
Пихать в попытку команды транзакций - моветон короче, так не работает
#6 by Господин ПЖ
ее кто-то в документе закрыл уже...
#7 by Господин ПЖ
>так не работает если руки с ж.пы...
#8 by Maxus43
это фича, зависит от того ещё что между Попытка/Исключение. Чтобы вобще об этом не задумываться - делают
#9 by Господин ПЖ
>это фича, зависит от того ещё что между Попытка/Исключение. в 1с вложенных транзакций нету...
#10 by Господин ПЖ
только попытка, только хардкор!!!
#11 by DS
Гулять так гулять:
#12 by Maxus43
>>в 1с вложенных транзакций нету вложенных нет, но же работает, сохраняя логику, которую хочет автор
#13 by Господин ПЖ
будет падать на ЗафиксироватьТранзакцию
#14 by Maxus43
не будет никуда падать, перед "попытка" конечно надо НачатьТранзакцию ещё, 100500 раз проверено
#15 by Добрый хачик
в типовых схема из , остальное от лукавого
#16 by Господин ПЖ
в происходит нечто вроде: Куда совать ЗафиксироватьТранзакцию в пределах КнопкаВыполнитьНажатие - пофиг, свалится...
#17 by Господин ПЖ
где НачатьТранзакцию тоже роли не играет
#18 by fisher
"Попытка Исключение" реализована как неявная транзакция в 1С. Также в 1С псевдо-вложенные транзакции. Т.е. исключение уже ведет к откату вышестоящей транзакции. В итоге ты пытаешься откатить транзакцию которая уже откатилась.
#19 by Gorr
Кароче имеем два варианта: Вариант1 (попытка внутри транзакции): Вариант2: Почему-то думается, что в первом варианте все равно будет ошибка. Тоже склоняюсь к тому, что не должно быть разницы где начинается транзакция.
#20 by Господин ПЖ
кстати да... если количество начать/зафиксировать не равно друг другу + переход между клиент <> cервер 1с вызывает неявно ОтменитьТранзакцию и автор получает граблей по спине, отменяя то чего уже нет...
#21 by Господин ПЖ
Использование явного вызова транзакций Метод НачатьТранзакцию позволяет открыть транзакцию. После этого все изменения информации базы данных, выполняемые последующими операторами, могут быть либо целиком приняты, либо целиком отвергнуты. Для принятия всех выполненных изменений используется метод ЗафиксироватьТранзакцию. Для того чтобы отменить все изменения, выполнявшиеся в открытой транзакции, используется метод ОтменитьТранзакцию. Если количество вызовов метода НачатьТранзакцию превышает количество вызовов методов ЗафиксироватьТранзакцию или ОтменитьТранзакцию, то система выполнит неявный вызов метода ОтменитьТранзакцию в следующих случаях: ? при окончании выполнения встроенного языка (обработчик события, внешнее соединение, automation-сервер); ? при передаче управления с сервера на клиента. Если количество вызовов методов ЗафиксироватьТранзакцию или ОтменитьТранзакцию превышает количество вызовов метода НачатьТранзакцию, то при выполнении лишнего вызова метода ЗафиксироватьТранзакцию или ОтменитьТранзакцию будет порождено исключение. Таким образом, схема работы с транзакцией в общем виде может выглядеть следующим образом: Попытка
#22 by fisher
Не, гоню. Вечно путаюсь в транзакциях и попытках.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

Похожие вопросы 1С