Имя: Пароль:
1C
1С v8
Порядок выполнения процедур - обработчиков событий
0 nbutt
 
26.06.13
04:31
Здравствуйте! 1с 8.2, Управление торговлей 10.3, доработанная конфигурация.
Столкнулся вот с каким делом. При проведении документа Перемещение Товаров, не важно из формы или из списка документов без открытия, выполняется сначала процедура ПередЗаписью(), привязанная к этому событию, а затем вместо процедуры ОбработкаПроведения() (тоже привязанная, к соответствующему событию), выполняется процедура из модуля набора записей регистра ТоварыНаСкладах, которая контролирует остаток, собственно до обработки проведения.

Разве так и должно быть, и если нет, то как так вышло.
1 goodzone
 
26.06.13
05:11
да
2 Cyberhawk
 
26.06.13
05:20
"процедура ПередЗаписью(), привязанная к этому событию" как это понимать?
3 vicof
 
26.06.13
05:28
(2) из формы записывает
4 goodzone
 
26.06.13
05:32
ну естественно, регистры должны быть записаны раньше чем документ (или, что тоже естественно, наоборот), но ведь это - транзакция.
5 goodzone
 
26.06.13
05:32
берешь 1С-ну вписываешь в нее все интересующие процедуры, ставишь точки останова и ЧЕТКО и ЯСНО выясняешь что и как работает )))
в принципе, проц ПередЗаписью содержит в себе
6 Нуф-Нуф
 
26.06.13
05:41
Поставь точку в регистре при записи и смотри через стек вызовов откуда он туда пришел
7 ИсчадиеADO
 
26.06.13
05:47
(0) у тебя скорее всего стоит галка на документе: очищать записи по регистрам перед проведением
8 ИсчадиеADO
 
26.06.13
05:48
+(7) в 8.2 подход несколько изменился и на новые доки по умолчанию она не ставится
9 nbutt
 
26.06.13
06:21
Примерно поискал еще с вашей помощью, кучи точек останова, в самых разных местах, нашел вот чего. Стоит подписка на событие ПриЗаписиКонтрольОстаткаПоПартиям, обработка которого и происходит в первую очередь. Здесь же и проверяется контроль остатков, еще по сути до обработки проведения.

Получается, сначала выполняется обработка события ПриЗаписи, потом обработка события, на которое подписны (ПриЗаписиКонтрольОстаткаПоПартиям), а уже затем ОбработкаПроведения. Так?
10 НаборДанных
 
26.06.13
07:21
В подписки на события и загляни, там все написано в свойствах ее.
11 nbutt
 
26.06.13
07:25
(10) в сути все нашел.
Узнал, что сначала происходит событие модуля объекта, потом событие из Подписок. и так на каждый шаг.
Всем спасибо.
12 Mitriy
 
26.06.13
08:18
(9) сначала записывается документ со всеми вытекающими подписками, потом очищаются его движения (записываются пустые наборы) со всеми вытекающими подписками, затем только начинается проведение... все это в одной транзакции...