Имя: Пароль:
1C
1С v8
Подписка на событие "ПриЗаписи" или "ПередЗаписью" для регистра накопления.
0 Rollam
 
24.08.16
18:10
Создал подписку на событие для корректировки записей регистра.
Событие "ПриЗаписи" (далее пытался воспользоваться событием "ПередЗаписью").
Процедура подписки отрабатывает как надо, но возникла такая проблема... запись регистра уходит в рекурсию. Если сначала в модуле события присутствовала строка "НаборЗаписей.Записать()", что, теоретически, могло интерпретироваться, как новый вызов события "ПриЗаписи", но после ее удаления проблема не исчезла.
Сталкивался ли кто-нибудь с необходимостью редактировать записи регистра при записи? Можно ли как-нибудь обойти эту рекурсию при вызове перезаписи в подписке на событие? Не хотелось бы корректировать код в модуле записи регистра.
1 shuhard
 
24.08.16
18:12
(0) при использовании перед записью проблем нет
2 Fragster
 
гуру
24.08.16
18:12
надо использовать ПередЗаписью, и не вызывать Записать() в обработчике, а просто модифицировать записи
3 Cyberhawk
 
24.08.16
18:32
Для самых изысканных кодеров: в подписке вызывать запись с доп. свойством-маркером, а выше анализировать этот маркер - если он взведен, то код подписки не выполнять
4 Mort
 
24.08.16
18:40
"Изысканный кодер" это типа вместо запрещенного "г***кодер". Надо запомнить.
5 Cyberhawk
 
24.08.16
18:59
(4) Ну да, с прицелом на это был совет
6 Rollam
 
25.08.16
09:23
(2) Использовал. И "Записать()" убирал. Все равно рекурсия.
7 hhhh
 
25.08.16
09:55
ну покажи код
8 Rollam
 
25.08.16
10:15
Пришел утром, все заработало. Может кэш... Цензурных слов нет!
Программист всегда исправляет последнюю ошибку.