Как запретить документ регистратор писать движения в регистр?

1. Avartia 30.01.24 12:17 Сейчас в теме
Возникла задача запретить записывать в регистр документам до определенной даты. То есть если дата документа < какой то даты, то новые движения не записываем. Как можно сделать это не косо-криво через модуль проведения. Подписка на событие или что-то вроде того?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
15. wertep 24 02.02.24 10:34 Сейчас в теме
(1) Типовой механизм обработки проведения должен заполнить реквизит объекта "Движения", дальше платформа сама их запишет. У нужного регистра по выбранному вами условию в этом реквизите установите свойство "Записывать" в ложь. Сделать это в конце обработки проведения.
2. user1278383 4 30.01.24 12:51 Сейчас в теме
анализировать движения в модуле набора записей регистра
nomad_irk; +1 Ответить
3. Avartia 31.01.24 09:14 Сейчас в теме
(2) ну хорошо, допустим я это делаю перед записью/при записи. вот набор есть? могу его обнулить, и тогда записи по регистратору затрутся. а это нехорошо
4. nomad_irk 76 31.01.24 09:25 Сейчас в теме
(3)Не нужно обнулять, нужно всего лишь сделать
Отказ = Истина

либо, если нужно, чтобы в регистре остались предыдущие данные, но произошла запись в этот регистр и остальные, то запросом выбрать все записи из регистра и перезаполнить текущий набор ими
6. user2033930 31.01.24 10:02 Сейчас в теме
(4) Отказ действует на всю обработку проведения, то есть на все регистры. А ТС хочет только на некоторые.
7. nomad_irk 76 31.01.24 10:05 Сейчас в теме
(6)вообще не факт. ТС пока молчит о том, какую цель преследует.
8. Avartia 02.02.24 08:21 Сейчас в теме
(7) Да нет, user2033930 прав) Отказ же просто запретит провести, а мне нужно чтобы документ провелся, но в один из регистров не записался бы.
10. nomad_irk 76 02.02.24 09:02 Сейчас в теме
(8)Это второй описанный вариант в (4)
13. Avartia 02.02.24 10:00 Сейчас в теме
(10) хм. второй вариант может и сработать - когда подменять записи? перед записью в регистр?
16. nomad_irk 76 02.02.24 11:04 Сейчас в теме
(13)
когда подменять записи? перед записью в регистр?

да, в модуле набора записей регистра/подписке на событие "ПередЗаписью"
5. soft_wind 31.01.24 09:50 Сейчас в теме
в процедуре проведения, проверяйте дату и чистите нужное движение
(в самом конце процедуры)
Если Дата < ...
движения.ВашРегистр.Очистить();
9. Avartia 02.02.24 08:22 Сейчас в теме
(5) Это я знаю, но хочется как то поумнее, а то это придется во всех регистраторах регистра писать.
11. soft_wind 02.02.24 09:56 Сейчас в теме
(9) вопрос был как в одном документе запретить запись в один регистр
но если надо по всем документам регистраторам
тогда в модуле самого регистра в событии ПередЗаписью проверять Набор записей
и Если Период < ... просто чистить этот набор
12. Avartia 02.02.24 09:59 Сейчас в теме
(11) я так тоже пробовала - проведешь старый документ, набор записей очистится вообще, а я хочу чтобы старый остался, а новый не записывался.
14. soft_wind 02.02.24 10:10 Сейчас в теме
(13) я же написал, надо сделать проверку (ПРАВИЛЬНО)
Если Период < ... просто чистить этот набор


период в регистре это как правило дата документа,
например вам надо НЕ писать движения в регистр за последние 30 дней

лкДатаПроверки = ТекущаяДата() - 30 * 24 * 3600; //получаем дату 30 дней назад
...
Если лкПериод > лкДатаПроверки Тогда НаборЗаписей.Очистить() КонецЕсли;

при проведении свежих/новых документов записей в регистре не будет!
а при перепроведении старых документов - записи появятся (ну или останутся без изменения)

(вообще первый раз подобную задачу вижу, с таким "отложенным проведением")
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот