Периодические глюки транзакции в 1с #719408


#0 by Сергиус
Есть конструкция вида: Так вот..периодически(в рандомном порядке) в случае ошибки проведения при попытке исполнить код в строчке ОтменитьТранзакцию возникает системное исключение "В данной транзакции уже происходили ошибки..." и 1с вылетает с исключением, а бывает, что отмена завершается корректно и выполнение программы продолжается... Что это такое может быть? На глюк платформы похоже? 8.2.19.80
#1 by Ёпрст
нет вложенных транзакций, писать НачатьТранзакцию в этом коде лишнее
#2 by Сергиус
А где вложенная транзакция? Или ты хочешь сказать, что Попытка организует свою?
#3 by Ёпрст
проведение - это всегда транзакция, если че..
#4 by Сергиус
Согласен..это еще объяснимо. Но почему тогда периодически такое разное поведение?
#5 by Сергиус
+Т.е. исключение возникает всегда, но вот "В данной транзакции уже происходили ошибки..." выскакивает от раза к разу..
#6 by Сергиус
И следует тогда такой вопрос..как же тогда быть..когда, допустим, помимо создания документа, надо еще удалить что-ть(произвольные записи в регистре сведений)..Если я не буду использовать НачатьТранзакцию, то получится, что записи из регистра удалятся...а документ не создастся... Что же делать в таком случае, чтобы все таки все вместе было в одной транзакции?
#7 by Леха Дум
Попробуй для начала перенести НачатьТранзакцию до попытки
#8 by Maxus43
НачатьТранзакцию Попытка
#9 by Леха Дум
а условие "Если ТранзакцияАктивна Тогда"  убери
#10 by Сергиус
НачатьТранзакцию
#11 by Maxus43
я так делаю, на автомате уже НачатьТранзакцию
#12 by Сергиус
Спасибо за совет.
#13 by Сергиус
Попробовал такую конструкцию..и опять та же история..в одном случае все прошло нормально, т.е. было выброшено исключение, сообщение об ошибке..в другом опять словил "В данной транзакции уже происходили ошибки".
#14 by Maxus43
Док = Документы.Документ1.СоздатьДокумент; вынеси за попытку вверх
#15 by Maxus43
возможно причина в проведении самого документа, там есть конструкции Попытка (пальцем в небо, в качестве бреда)?
#16 by Сергиус
Нет, там внутри ничего такого нет. Просто в обработке проведения документа идет проверка определенных условий, и если они нарушаются то ставится Отказ = Истина.
#17 by Maxus43
Ошибка "В данной транзакции уже происходили ошибки" возникает либо при "повторной ошибке" в рамках одной транзакции, либо при ОБРАЩЕНИИ к БД, после первой ошибки в рамках транзакции. Код точно весь в ?
#18 by Сергиус
Да, это весь код.
#19 by Сергиус
+ После попытки проведения сразу валится в исключение, а там уж как повезет - либо отмена транзакции, либо ошибка..
#20 by Maxus43
ну не верю (с) не понятно что-то...
#21 by Йохохо
а в ты про что? про подписки?
#22 by Сергиус
Я ж говорю..такая ошибка возникает не постоянно, а "плавающая"..вот и спросил - может это быть глюком платформы?
#23 by Сергиус
Ну это у меня была мысль потом так сделать..но пока даже в простом варианте "непонятки".
#24 by Сергиус
Пока мне видится вариант..вообще убрать НачатьТранзакцию, но  чую, что могут быть "траблы"..
#25 by Сергиус
+ "траблы" - если я усложню код..допустим удаление записей регистра, то тогда без транзакции не обойтись.
#26 by Йохохо
а пока все происходит в ПриЗаписи?
#27 by Сергиус
ПередЗаписью - там стоит обычное условие Если РеквизитДокумента <> Перечисления.Перечисление1.Вариант1 Тогда Отказ = Истина КонецЕсли;
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С