Имя: Пароль:
1C
1С v8
Запрет проводки документа при совпадении даты, номера, ИНН
0 DmitryLukin
 
02.12.19
08:45
Всем привет. Необходимо реализовать вышенаписанное, прошу подсказки, откуда начать и через что. Это будет функция в общих модулях с вызовом из документов? Поисх совпадений лучше делать в базе или регистрах? Какое решение оптимально с точки зрения быстродействия? Как бы сделали вы?
1 Irbis
 
02.12.19
08:50
Запрет имеет смысл делать в момент выбора контрагента, а не проведения созданного документа.
2 Ёпрст
 
02.12.19
08:50
Обычная проверка в ПередЗаписью, если нужно для нескольких разных видов объектов, то в подписке
3 DmitryLukin
 
02.12.19
08:57
(1) Общую логику понимаю, я сейчас в раздумьях, где, грубо говоря, писать процедуру проверки. В общих модулях? Потом в каждом документе делать ее вызов?
4 Ёпрст
 
02.12.19
08:59
(3)в подписке же
5 DmitryLukin
 
02.12.19
09:11
(4) Понял, спасибо. А с точки зрения производительности/здравого смысла, откуда лучше брать данные для сравнения (база, регистры, ...)?
6 hhhh
 
02.12.19
09:58
(5) бери из регистров
7 SergTheGreat
 
02.12.19
09:58
Можно использовать обработчик события "ПередЗаписью" в модуле набора записей нужного регистра.
Да он отработает позже чем "ОбработкаПроведения" документа или подписки, но, во-первых, там будут уже готовые данные для сравнения, а, во-вторых, не нужно думать о видах документов - проверка будет в одном месте.

(5) Конечно, сравнивать нужно с данными того же регистра, по которому надо запретить проведение.