0
albal
13.02.12
✎
00:01
|
Здравствуйте! Решаю учебную задачу. Необходимо реализовать такой функционал: при оформлении документа «Расходная», в случае, если сумма покупки превышает 1000 рублей, должно выдаваться сообщение о возможности предоставления бесплатной доставки.
На управляемой форме документа "Расходная" есть поле надписи "СуммаДокумента", где отражается значение итоговой суммы.
Поле надписи "СуммаДокумента" есть элемент формы с типом "Объект.СоставРасходной.ИтогСумма".
"СоставРасходной" есть табличная часть документа "Расходная".
На первый взгляд решение видится простым: в модуле объекта или модуле формы (где лучше?) разместить обработчик события:
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
ЗначениеСуммыДокумента=СоставРасходной.Итог("Сумма");
Если ЗначениеСуммыДокумента > 1000 Тогда
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Вы можете подать заявку на бесплатную доставку товара покупателю!!!";
Сообщение.Сообщить();
КонецЕсли;
КонецПроцедуры
Обработчик работает, но мне не нравится результат. Сообщение пользователю появляется только после того, как пользователь нажимает кнопку "Записать" или "Провести". Т.е. до этого момента, пользователь не подозревает о том, что у него появилась дополнительная возможность. А если пользователь нажимает кнопку "Провести и закрыть", то и вовсе может не узнать о новой возможности, т.к. документ закрывается и пользователь не видит сообщения. Решать это через отказ проведения как-то грубо.
Очень хочется, чтобы обработчик отрабатывал именно тогда, когда изменяется значение в поле надписи "СуммаДокумента". Посоветуйте, пож-та.
|
|