Имя: Пароль:
1C
1С v8
Выполнение обработки после отмены проведения.
0 Shalun
 
28.11.21
16:08
Всем привет! Есть задача: Выполнить некие действия ПОСЛЕ отмены проведения документа. Т.е. Сначала документ должен отменить все проводки, а потом выполнить требуемые действия. Как это сделать? ОбработкаУдаленияПроведения вызывается до удаления движений объекта.
1 Мимохожий Однако
 
28.11.21
16:24
Регламентное или фоновое задание можно запустить, либо запустить обработку ожидания с вызовом процедуры с требуемыми действиями.
2 pechkin
 
28.11.21
16:34
Руками очищать движения в обработке отмены
3 hhhh
 
28.11.21
17:22
(0) можно в процедуре ПослеЗаписи на форме документа.
4 Смотрящий
 
28.11.21
17:25
Подписка, не?
5 pechkin
 
28.11.21
17:26
(2) да и вообще сейчас в типовых движения автоматом не удаляются
6 ДедМорроз
 
28.11.21
17:57
В обработке проведения мы имеем еще не записанные в базу движения,почему в обработке удаления проведения должно быть по-другому ?
7 mistеr
 
28.11.21
18:13
(0) В подписке. А какие действия?
8 Shalun
 
28.11.21
20:10
По идее, да, подписка на событие выполняется после, но! Почемуто при выполнении подписки движения остаются. :-(
9 vde69
 
28.11.21
20:14
(8) по тому как не вызывалось

Движения.Записать()
10 Shalun
 
28.11.21
20:54
(9) Спасибо, помогло! Но в таком случае, и после строки Движения.Зписать() обработка выполняется как надо. Можно и без Подписки обойтись.
11 vde69
 
28.11.21
21:13
(10) там может быть нюанс, часть движений могут меняться в подписках (то есть после твоего Записать() ), по этому советую повнимательнее глянуть...
12 ДедМорроз
 
28.11.21
21:18
Если хочется гарантированно после что-то сделать,то мы дрлжны запустить фоновое задание,которое сначала прочитает наш документ (в управляемых блокировках - выставит ту же блокировку),а потом выполняет то,что нужно,еще в него можно передать версию объекта,чтобы знать - завершилась транзакция или нет.
В подписке,как и в самой процедуре мы не знаем,что будет в следующих за нами подписках,поэтому,можно ожидать отмену,даже если мы ее не делали.
13 Shalun
 
29.11.21
09:35
Чет ничего не пойму, вчера работало, сегодня нет. :-(
В подписке, после выполнения отмены проведения (Движения.Записать()), движения объекта все равно есть в регистре.
(12) Задача довольно таки простая, нужно прочитать состояние регистра, после проведении\отмены проведения документа. По этому, заморачиваться с фоновым заданием, не совсем то.
14 Мимохожий Однако
 
29.11.21
09:37
(13) Запусти обработку ожидания
15 hhhh
 
29.11.21
09:58
(11) тогда будет просто Записать два раза.
16 vde69
 
29.11.21
09:59
(14) обработка ожидания - это клиент, а транзакция выполняется строго на сервере.