Имя: Пароль:
1C
1С v8
Отказ ПередУдалением вызывает исключение
,
0 murr_2012
 
09.02.16
18:22
При программном удалении документа

ТекРН = РН.ПолучитьОбъект();
ТекРН.Удалить();

выполняется в процедуре модуля объекта ПередУдалением(Отказ) некая проверка, результат которой Отказ = Истина;

В итоге после выдачи заданного в процедуре проверки сообщения, выдается на экран форма исключения.

При интерактивном удалении (по Shift+Del) исключения в аналогичных условиях не происходит.

Это стандартное поведение системы или что-то мною упущено?
1 Господин ПЖ
 
09.02.16
18:23
>что-то мною упущено?

почему "упущено"? рукож.пие на месте...
2 murr_2012
 
09.02.16
18:25
(1) Содержательно.
3 Fragster
 
гуру
09.02.16
18:32
текст исключения мы должны угадать?
4 Fragster
 
гуру
09.02.16
18:32
может там "в данной транзакции уже происходили ошибки", а код этот - в обработке проведения или записи другого объекта
5 murr_2012
 
09.02.16
18:40
(3) Не удалось удалить документ ..........
ОК Подробно

Трассировка показывает, что при программном удалении, что при интерактивном выполняются ровно одни и теже процедуры.

Суть простая: "Отказ" в процедуре объекта должен вызывать исключение при программном удалении или нет?
6 Сильф
 
09.02.16
18:41
(5) нажми "Подробно", текст оттуда - сюда
7 murr_2012
 
09.02.16
18:42
(6) {Документ.Заказ.Форма.ФормаВводаРН.Форма(67)}: Ошибка при вызове метода контекста (Удалить)
                    ТекРН.Удалить();
по причине:
Не удалось удалить "Расх. накл. на прод. MRAA-009676 от 02.02.2016 16:50:50"!
8 mehfk
 
09.02.16
18:42
Значит исполнение программы при программном удалении и при интерактивном отличается.
9 mehfk
 
09.02.16
18:42
Трассируй и сравнивай, для этого тебе отладчик и дан.
10 Kamelot
 
09.02.16
18:44
(5)>>Суть простая: "Отказ" в процедуре объекта должен вызывать исключение

программное удаление может быть на сервере, и кому сервер покажет предупреждение об ошибке или сообщение выкинет? вот и кидает он исключение... все правильно сделали...
11 ВРедная
 
09.02.16
18:45
(0) "При интерактивном удалении (по Shift+Del) исключения в аналогичных условиях не происходит. "

А что происходит? Молча не ставится пометка удаления? Догадайтесь сами то ли кнопка делит сломалась, то ли монитор медленно обновляется?
12 Nuobu
 
09.02.16
18:47
(11) Две кнопки сломались.
13 murr_2012
 
09.02.16
18:50
(11) Причем пометка удаления к Shift+Del?
При попытке непосредственного удаления документ выдает описанное мною в процедуре ПередУдалением сообщение и больше ничего.
14 Господин ПЖ
 
09.02.16
18:50
>Shift+Del

фигасе... в базе разрешено непосредственное удаление
15 murr_2012
 
09.02.16
18:52
(10) Спасибо. Об этом не подумал. Только учусь.
16 Kamelot
 
09.02.16
18:52
(0)
1. так и должно быть см (10)
2. если не нравиться то что в 1. возюми Удалить() в попытку и сообщай пользователю.
17 murr_2012
 
09.02.16
19:02
(14) У меня (правда в 77 самописной базе) 10 лет люди так работают.

Как раз в ПередУдаленем и чистятся/контролируются критичные ссылки.

Вручную разбираться с перекрестными ссылками при "удалении помеченных" нет возможности - 500-800 документов в день. Некому и некогда.
18 Dен
 
09.02.16
21:05
(17) А если организацию удалить, по ссылкам вся база будет удалена?
19 Dен
 
09.02.16
21:09
И удаление всех связанных объектов - это нифига не стандартное поведение системы.