Имя: Пароль:
1C
1С v8
В данной транзакции уже происходили ошибки
0 dvrk
 
21.01.21
08:56
УТ 10, при записи контрагента нового выходит эта ошибка, оно из-за потытка исключение ?
1 dvrk
 
21.01.21
09:02
Попытка
                ЗаписатьВФорме();
            Исключение
                ОбщегоНазначения.СообщитьОбОшибке(ОписаниеОшибки(),, "Элемент не записан!");
                ОсновнойДоговорКонтрагента = Справочники.ДоговорыКонтрагентов.ПустаяСсылка();
                Отказ = Истина;
            КонецПопытки;
2 xXeNoNx
 
21.01.21
09:04
Оно из-за второй или третей ошибочной транзакции
3 dvrk
 
21.01.21
09:05
(2) а как мне понять в чем проблема в данном случае ?
4 Fedor-1971
 
21.01.21
09:08
(3) Только отладчиком, записываются дополнительные данные и, где-то там, в дебрях дремучих кода, произошла ошибка

Для начала посмотри в журнал, может в нём что и записано
5 dvrk
 
21.01.21
09:09
(4) ничего в журнале нет
6 Fedor-1971
 
21.01.21
09:09
4+ Поставь "Остановку по ошибке", возможно, что получится отловить место возникновения первой ошибки быстрее
7 xXeNoNx
 
21.01.21
09:14
(2) убрать Отказ = Истина;
может помочь выявить первую ошибку
8 ДенисЧ
 
21.01.21
09:15
(7) Не отказ убрать, а попытку.
9 xXeNoNx
 
21.01.21
09:18
(8) Отказ убрать
10 Вафель
 
21.01.21
09:19

Отказ = Истина;
Возврат;
11 Дык ё
 
21.01.21
09:25
(1) а куда уходит этот отказ, если в итоге ты пытаешься зафиксировать транзакцию?
12 dvrk
 
21.01.21
09:28
(11)  можно попроще спросить
13 Йохохо
 
21.01.21
09:28
(11) это всё же ПриЗаписи )
14 ДенисЧ
 
21.01.21
09:28
Убрать попытку и увидишь, где возникает исходная ошибка.
Это для целей нахождения места...
15 xXeNoNx
 
21.01.21
09:35
(0) Убрать отказ и найдешь место)
16 dvrk
 
21.01.21
09:36
а поч кто-то пишет отказ, а кто-то попытку
17 xXeNoNx
 
21.01.21
09:37
(16) Это как белое и черное, определись на какой  ты стороне
18 xXeNoNx
 
21.01.21
09:38
а что тебе сообщает эта строчка?(ОписаниеОшибки())
19 mikecool
 
21.01.21
09:44
в каждом ИСключение по цепочке добавить ВызватьИсключение
20 xXeNoNx
 
21.01.21
09:45
(19) Зачем? Что бы получить исключение, которые обходишь попыткой?)
21 dka80
 
21.01.21
09:45
(17) не совсем согласен:
1. если ты напишешь Попытку, то ты можешь пользователю сказать, что ты редиска не заполнил чего-то там
2. если ты сделаешь без попытки, то у тебя будет "Произошла ошибка деления на ноль", что для пользователя не совсем понятно где он накосячил или это ошибка программы
22 Дык ё
 
21.01.21
09:46
(12) эта ошибка возникает при попытке фиксации сбойной транзакции. зачем ты её фиксируешь, если Отказ = Истина?
23 dka80
 
21.01.21
09:46
+21 т.е. без попытки пользователь может словить runtime error exception, что для продуктивной системы нехорошо
24 ДенисЧ
 
21.01.21
09:47
(21) Без попытки - на время разработки. Чтобы автырь понял, где он дурак. Исходная ошибка покажет это место.
А если мы её прикроем второй попыткой, то ничего хорошего для такого понимания это не даст
25 xXeNoNx
 
21.01.21
09:47
(21) Да суть не в этом, код скорее всего не тот...
тут в любом случае была выдана бы ошибка, т.к. : "ОбщегоНазначения.СообщитьОбОшибке(ОписаниеОшибки(),, "Элемент не записан!");"

тут не важно что убрать
26 xXeNoNx
 
21.01.21
09:54
В общем, ошибку вложенной транзакции первого уровня можно бы было отловить уже тут "ОбщегоНазначения.СообщитьОбОшибке(ОписаниеОшибки(),, "Элемент не записан!");"
Если ТС ее не нашел, значит все глубже
27 TormozIT
 
гуру
21.01.21
09:56