![]() |
![]() |
|
в данной транзакции уже происходили ошибки проведение доков | ☑ | ||
---|---|---|---|---|
0
Strimteam
28.06.11
✎
17:02
|
При проведении документа, иногда (!), возникает такая ошибка. В форме указано только эта надпись без других пояснений на код.
Конфигурация допиленая "Торговка", документ заказ покупателя. Просмотрел на наличие вложенных транзакций - не нашёл. В чём ещё может быть причина такой ошибки? |
|||
1
Господин ПЖ
28.06.11
✎
17:03
|
в проведении происходит ошибка
|
|||
2
Axel2009
28.06.11
✎
17:06
|
(0) вложенные для кого? для вас или 1с?
|
|||
3
Maxus43
28.06.11
✎
17:08
|
Попытка
Исключение поищи при выполнении. или остановку по ошибке включи |
|||
4
Dem1urg
28.06.11
✎
17:09
|
Если в транзакции возникает ошибка обращения к СУБД даже если место возникновения ошибки находилось внутри Попытка...Исключение транзакция завершена не будет и вывалится по ошибке.
|
|||
5
Господин ПЖ
28.06.11
✎
17:09
|
>или остановку по ошибке включи
это ничего не даст... она имеет свойство вываливаться не там где был косяк |
|||
6
Strimteam
28.06.11
✎
17:11
|
Пробовал остановку по ошибке - не увидел ошибок.
Получается что любые функции, которые идут после запуска ОбработкаПроведения, в которых есть попытки будут при исключении выпадать в такую ошибку? Если правильно понимаю, то ОбработкаПроведения начинает транзакцию (неявно). |
|||
7
Maxus43
28.06.11
✎
17:13
|
(5) Если дело в попытке-исключении, то остановка там встаёт, это самый распространёный случай обычно
|
|||
8
Господин ПЖ
28.06.11
✎
17:13
|
не есть попытки... а выпадение в исключение. вложенные транзакции - ошибка во вложенной приводит к отмене верхней
|
|||
9
Strimteam
28.06.11
✎
17:15
|
(8) ну я и имел ввиду при попадании в исключение срабатывает такая ошибка.
Получается нужно выкидывать все конструкции попытки из обработки проведения? |
|||
10
Axel2009
28.06.11
✎
17:26
|
(6) конечно начинает.
|
|||
11
Dem1urg
28.06.11
✎
17:33
|
(6) Не все. Только невосстановимые. К ним относятся все ошибки связанные с СУБД. Попытка вывалившаяся в исключение из-за деления на 0 пройдет нормально.
|
|||
12
Strimteam
28.06.11
✎
17:37
|
Ну получается что нужно убирать все попытки с возможным исключение по ошибке СУБД.
Ещё есть варианты, при которых выпадает такая ошибка кроме вложенных транзакций и попыток в другую транзакцию? |
|||
13
Strimteam
28.06.11
✎
17:42
|
Дурацкий пример, но всё же - предположим, что при проведении одного документа вызывается проведение другого документа. При проведении второго документа вызывается отмена транзакции - первый док получается вывалиться с этой ошибкой?
|
|||
14
Axel2009
28.06.11
✎
17:45
|
(13) это пример вложенных транзакций.
|
|||
15
ИС-2
28.06.11
✎
17:46
|
скорее всего, где-то в коде происходит запись документа, регистра. Посмотри для успешных документов журнал регистрации. Или сделай подписку для всех объектов ПередЗаписью, что посмотреть что затрагивается при проведении.
|
|||
16
Strimteam
28.06.11
✎
17:51
|
(15) дык вся соль в том, что отказ транзакции срабатывает только в 1 из 150 документов (грубо на вскидку) - поймать практически нереально.
(15) про регистры - но это только, если ещё установлены какие-то обработки в модуле регистра, иначе не вижу смысл зачем туда смотреть. |
|||
17
Jolly Roger
28.06.11
✎
17:59
|
(16) >отказ транзакции срабатывает только в 1 из 150 документов (грубо на вскидку) - поймать практически нереально.
нереально, если не использовать обработку исключения... |
|||
18
Strimteam
28.06.11
✎
18:01
|
(17) это если попытка. Уже везде (где нашёл) добавил сообщения при обработке исключения.
|
|||
19
Jolly Roger
28.06.11
✎
18:07
|
(18) а если не попытка, автору по рукам...
|
|||
20
sda553
28.06.11
✎
18:12
|
Способ смоделировать такую ошибку искуственно:
Создаем в конфигураторе документ1, у него в процедуре ПриЗаписи в модуле документа пишем Процедура ПриЗаписи() ВызватьИсключение "Не хочу записываться"; КонецПроцедуры Создаем в конфигураторе документ2 у него в модуле в ОбреботкеПроведения пишем Док = Документы.Документ1.СоздатьДокумент(); Попытка Док.Записать(); Исключение КонецПопытки ВОт и все, теперь каждый раз при проведении будет выдаваться как у него в данной транзакции уже происходили ошибки |
|||
21
Господин ПЖ
28.06.11
✎
18:14
|
забористее всего себя ведет отладчик... у меня все переменные в нет принимали значение "в данной транзакции уже происходили ошибки".
функция в проведении которая хотела Структура.Дата очень на это дело удивлялась... |
|||
22
Strimteam
07.07.11
✎
11:04
|
Если в транзакции произойдёт обращение к несуществующей перменной а-ля
Если Ложь Тогда переменная1 = 0; КонецЕсли выбратьконф = перменная1; как это будет обработано? |
|||
23
sda553
07.07.11
✎
14:35
|
Переменная не определена (перменная1)
выбратьконф = <<?>>перменная1; |
|||
24
sda553
07.07.11
✎
14:35
|
(22) А транзакция отменится
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |