Имя: Пароль:
1C
 
Странное поведение &Перед("ПередЗаписью")
0 mikecool
 
13.10.20
10:47
Хочу запретить ручное создание контрагентов, использую перехват
&Перед("ПередЗаписью")
Процедура ПередПередЗаписью(Отказ)
бла-бла
Отказ = Истина

срабатывает дважды
1) стек вызовов только ПередПередЗаписью(Отказ = Ложь)
2) стек вызовов ПередЗаписью(ОТказ = Истина) и ПередПередЗаписью(Отказ = Ложь)

все бы ладно, что два раза, но почему во второй раз по стеку не приходит значение отказа?
1 mikecool
 
13.10.20
10:49
во втором случае стек вообще прикольно смотрится, после выхода из ПередПередЗаписью:
ПередЗаписью
ПередЗаписью
2 mikecool
 
13.10.20
10:59
обошел через допсвойства
3 mikecool
 
13.10.20
11:24
самое веселое, что на первой итерации есть допсвойства объекта, которые установились до записи
а на второй - только те, что могу определить в перехватчике (((
словно они обнуляются
4 hhhh
 
13.10.20
11:25
(0) а справочник Партнеры тоже есть?
5 mikecool
 
13.10.20
11:25
(4) нет, это бухня
6 RomanYS
 
13.10.20
11:27
(3) объект то один и тот же?
7 mikecool
 
13.10.20
11:28
(6) да
8 PCcomCat
 
13.10.20
14:23
(0) А расширение одно?
9 hhhh
 
13.10.20
14:48
(5) ну, часто бывает в справочниках 2 раза записать. Например, чтобы указывать владельца у подчиненного справочника. Например, номенклатура и единица измерения.
10 youalex
 
13.10.20
14:59
+ ПередЗаписью() могли использовать чтобы перехватить  это событие (установив Отказ = Истина) , задать какой-нибудь вопрос, и программно вызвать Записать() (или не вызвать)
11 hhhh
 
13.10.20
15:04
(0) да, лучше делайте

&После("ПередЗаписью")

потому что в других ПередЗаписью кто-то спокойно может поставить Отказ = Ложь;

поэтому важно, чтобы ваша процедура выполнялась потом.