Имя: Пароль:
1C
1С v8
Обработчик события для поля надписи управляемой формы
0 albal
 
13.02.12
00:01
Здравствуйте! Решаю учебную задачу. Необходимо реализовать такой функционал: при оформлении документа «Расходная», в случае, если сумма покупки превышает 1000 рублей, должно выдаваться сообщение о возможности предоставления бесплатной доставки.

На управляемой форме документа "Расходная" есть поле надписи "СуммаДокумента", где отражается значение итоговой суммы.
Поле надписи "СуммаДокумента" есть элемент формы с типом "Объект.СоставРасходной.ИтогСумма".

"СоставРасходной" есть табличная часть документа "Расходная".

На первый взгляд решение видится простым: в модуле объекта или модуле формы (где лучше?) разместить обработчик события:

Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
   ЗначениеСуммыДокумента=СоставРасходной.Итог("Сумма");
   Если ЗначениеСуммыДокумента > 1000 Тогда
       Сообщение = Новый СообщениеПользователю;
       Сообщение.Текст = "Вы можете подать заявку на бесплатную доставку товара покупателю!!!";
       Сообщение.Сообщить();        
   КонецЕсли;    
КонецПроцедуры

Обработчик работает, но мне не нравится результат. Сообщение пользователю появляется только после того, как пользователь нажимает кнопку "Записать" или "Провести". Т.е. до этого момента, пользователь не подозревает о том, что у него появилась дополнительная возможность. А если пользователь нажимает кнопку "Провести и закрыть", то и вовсе может не узнать о новой возможности, т.к. документ закрывается и пользователь не видит сообщения. Решать это через отказ проведения как-то грубо.

Очень хочется, чтобы обработчик отрабатывал именно тогда, когда изменяется значение в поле надписи "СуммаДокумента". Посоветуйте, пож-та.
1 Asmody
 
13.02.12
00:26
2 Asmody
 
13.02.12
00:28
(0) событие табличного поля ПриОкончанииРедактирования поможет тебе
3 gudvin77
 
13.02.12
10:45
+ ОбработкаВыбора если используется форма подбора
Ошибка? Это не ошибка, это системная функция.