@SteepNET

Обойти условие обработки проведения при ручном проведении?

Добрый день! Ут 11.5 ,Расширение
Замысле такой в обработке проведения документа в модуле объекта в расширении дописал условие проведения, оно работает:
&После("ОбработкаПроведения")
Процедура КЦ_ОбработкаПроведения(Отказ, РежимПроведения)	
Если НЕ ЭтотОбъект.Ссылка.РасшифровкаПлатежа[0].ОснованиеПлатежа.СуммаДокумента = ЭтотОбъект.Ссылка.РасшифровкаПлатежа[0].Сумма Тогда 
		Сообщение = Новый СообщениеПользователю;
		Сообщение.Текст = "Не проведен...";
		Сообщение.Сообщить();
		Отказ = Истина;
	   	Возврат;
	КонецЕсли;   	
КонецПроцедуры


Но как обойти это условие при ручном проведении документа? Что бы можно было провести документ руками!

Весь замысел что бы когда документы "поступление безналичных ДС" загружались из банка то они при возникновении этого условия не проводились, но можно было бы их провести руками ...
  • Вопрос задан
  • 57 просмотров
Пригласить эксперта
Ответы на вопрос 2
Sgr_A
@Sgr_A
Думаю выбран не верный подход в целом. Как такового понятия "ручное проведение" нет. Документ в целом просто может проводиться, а вот точка инициации этого события может быть разная.
Если нужно менять поведение именно при загрузке документов из банка, то там и нужно дорабатывать, вводя какой-нибудь доп. параметр/доп. свойство, опираясь на которое реализовывать нужную логику.
Ответ написан
Комментировать
@Dementor
программист, архитектор, аналитик
При загрузке из клиент-банка ставьте маркер в доп.свойствах:

ПлатежкаОбъект.ДополнительныеСвойства.Вставить("ЗагрузкаИзБанка");

а в обработчике проведения делайте вашу проверку только при наличии нужного ключа в доп.свойствах объекта:

Если ЭтотОбъект.ДополнительныеСвойства.Свойство("ЗагрузкаИзБанка") Тогда
...
КонецЕсли;


Если НЕ ЭтотОбъект.Ссылка.РасшифровкаПлатежа[0].ОснованиеПлатежа.СуммаДокумента = ЭтотОбъект.Ссылка.РасшифровкаПлатежа[0].Сумма Тогда


Использование ссылки тут лишнее - у вас все нужные реквизиты и табличные части уже в памяти и доступны через ЭтотОбъект. Вы делаете лишнее чтение, занимаете лишнюю память и удлиняете время транзакции.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы