В данной транзакции уже происходили ошибки #779357


#0 by Zombi
УТ 10.3 с модулем автосервиса от БИТа. Провожу документ Заказ-наряд. В процессе проведения этот документ создает списание товаров: Вылетает ошибка - "В данной транзакции уже происходили ошибки" при попытке Документ.Записать(РежимЗаписиДокумента.Проведение). Документ это списание. Отладчиком прошелся, в документе списание товаров при этом срабатывает и нормально отрабатывает процедура "ПередЗаписью", потом несколько процедур, связанных с обменом данными так же нормально отрабатывают, до ОбработкаПроведения дело не доходит, попытка вываливается в исключение. Как отловить косяк?
#1 by Stepa86
Транзакцию рвет что то, что в исключение вываливается и видимо ловится попыткой. Поставь галку "Останавливаться на ошибке" и смотри. В идеале внутри транзакций не должно быть ни одной Попытка Исключение КонецПопытки
#2 by Cyberhawk
Не совсем так: главное, чтобы внутри транзакции в попытке не пытались ловить ошибки БД. Любые другие ошибки (не БД) - можно.
#3 by Cyberhawk
Автор, добавь в исключение вывод описания ошибки
#4 by assasu
ошибка где то выше по коду. у нас та же конфа, как правило это не заполнен реквизит какойто или документ не может записаться
#5 by Zombi
Остановка по ошибке останавливается на строке Документ.Записать(РежимЗаписиДокумента.Проведение);
#6 by Stepa86
Я один раз такую ошибку (в данной транзакции уже пошло что то не так) ловил на преобразовании строки в число через попытку. С тех пор категоричен в этом вопросе. Может это была ошибка платформы, а может еще чего, но попытки я не люблю с тех пор очень сильно.
#7 by Zombi
До попытки? Там вроде происходит запись списания, потом он заполняется данными.
#8 by Cyberhawk
Автор, тебе точно надо создавать-записывать новый документ в процессе проведения текущего? Если документ не создался, т текущий не проведется - так и надо? Или можно разделить этот процесс?
#9 by Cyberhawk
*т текущий = то текущий
#10 by Stepa86
Значит в документе где то Отказ в истину устанавливается, проведение документа отменяется, вызывается исключение и транзакция рвется
#11 by Zombi
Это в модуле автосервиса БИТ так написал. Переписывать все что то не хочется. Да и остальные документы работают, с этим какой то косяк. До попытки Отказ в отладчике показывает Ложь. Истина устанавливается только в исключении кода в
#12 by Stepa86
Отказ устанавливается где то внутри документа, что записываешь в 5 строке, или в передзаписью, или в призаписи, или еще где
#13 by Zombi
Перед записью отрабатывает нормально, после нее отказ = ложь, при записи нет у списания товаров, до обработки проведения не доходит дело. Мож еще подписка какая нить? Как все подписки отловить?
#14 by Zombi
Нашел, вываливается мое списание после вот этой процедуры: При проведении других документов, после этой процедуры еще ряд процедур, потом обработка проведения. А в косячном документе отладчий после КонецПроцедуры попадает в исключение попытки Отказ там = Ложь. Какого ему надо?
#15 by Cyberhawk
Под полными правами все выполняется?
#16 by Zombi
Я под полными правами все делаю. Галка ПрименятьДатуЗапретаДляПолныхПрав не стоит.
#17 by Cyberhawk
В ЖР можнт чего пишется?
#18 by Zombi
В жр проведение документа заказ-наряд, проведение документа списание товаров и откат этих транзакций.
#19 by Cyberhawk
Тогда ищи исключения в транзакции проведения родительского документа
#20 by Cyberhawk
+ Ну т.е. с дочерним документом и вложенной транзакцией все ОК, просто глобальная транзакция не фиксируется, т.к. ошибка БД в ней уже была _не внутри вложенной транзакции_...
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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