|
Как может быть ошибка "Транзакция не активна", если ТранзакцияАктивна() = истина 🠗 (Волшебник 05.02.2025 10:51) | ☑ | ||
---|---|---|---|---|
0
ИС-2
naïve
03.02.25
✎
13:59
|
Есть простой кусок кода
Если ТранзакцияАктивна() Тогда ЗафиксироватьТранзакцию(); КонецЕсли; Как получается, что метод ТранзакцияАктивна() вернул истина, но на ЗафиксироватьТранзакцию() вылетает с ошибкой. Подозрение на неявную транзакцию где-то в коде... |
|||
1
Волшебник
03.02.25
✎
14:03
|
чудес не бывает
|
|||
2
youalex
03.02.25
✎
14:07
|
неявная (необъявленная) транзакция например при записи объекта возникает.
|
|||
3
Волшебник
03.02.25
✎
14:09
|
вангую: ошибка вылетает на другой строке
|
|||
4
Eiffil123
03.02.25
✎
16:58
|
транзакция объявлена во внешней процедуре, например. зафиксировать ее не получится. Начало транзакции и ее фиксация (отмена) должны происходить в контексте одного метода
|
|||
5
BaZZiL
03.02.25
✎
17:40
|
Не все транзакции одинаково активны.
|
|||
6
TormozIT
гуру
03.02.25
✎
17:51
|
(4) Ошибаешься. Образовывайся https://infostart.ru/1c/articles/1026771/
|
|||
7
mikecool
03.02.25
✎
21:06
|
(6) плюсанул, оказывается я это могу ))
|
|||
8
Eiffil123
04.02.25
✎
16:01
|
(6) официальная документация 1С:
https://its.1c.ru/db/v8std/content/783/hdoc 1.2. Начало транзакции и ее фиксация (отмена) должны происходить в контексте одного метода |
|||
9
Волшебник
04.02.25
✎
16:04
|
(8) вложенные вызовы всё ещё находятся в контексте внешнего
|
|||
10
DiMel_77
04.02.25
✎
16:35
|
(8) Плевать они хотели на свои стандарты:
|
|||
11
Волшебник
04.02.25
✎
16:36
|
(10) да, неочевидненько
|
|||
12
TormozIT
гуру
04.02.25
✎
17:55
|
(8) Так это рекомендация, а не требование среды выполнения. Поэтому по-другому тоже "получится", но делать так без веской причины не рекомендуется. В статье (6) тоже есть такая рекомендация.
|
|||
13
Ненавижу 1С
гуру
05.02.25
✎
08:35
|
Если ваш код запущен из событий ПередЗаписью/ПриЗаписи (и прочих) при записи объекта, то вы находитесь в неявно объявленной транзакции и ТранзакцияАктивна() будет истина, однако отменять неявные транзакции явно через ЗафиксироватьТранзакцию/ОтменитьТранзакцию нельзя
|
|||
14
eddy_n
05.02.25
✎
10:47
|
Ждем-с, когда вместо невнятного сообщения "В данной транзакции уже происходили ошибки" вендор удосужится вывести что-нибудь человеческое.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |