|
Как сделать "возврат" в процедуре изменения поля ввода на форме? | ☑ | ||
---|---|---|---|---|
0
snegovik
01.04.13
✎
03:10
|
На форме документа имеется поле выбора реквизита документа (Подразделение). При изменении подразделения задаю вопрос пользователю, и если ответ отрицательный, то хотелось бы, чтобы подразделение не менялось. Как реализовать эту достаточно простую вещь? Вот что написал в процедуре:
Процедура ПодразделениеПриИзменении(Элемент) Если Вопрос("Будут очищены скидки! Продолжить?", РежимДиалогаВопрос.ДаНет) = КодВозвратаДиалога.Да Тогда ОчиститьСкидки(); Иначе Возврат; //вот тут хочу, чтобы новое подразделение не выбиралось, а возвращалось старое. КонецЕсли; КонецПроцедуры |
|||
1
ЧашкаЧая
01.04.13
✎
03:24
|
Объявляешь переменную модуля формы ПредыдущееПодразделение, кидаешь ее обновление в процедуры ПриОткрытии, ПодразделениеПередИзменением, и вот тебе предудущее значение подразделения.
|
|||
2
alexei366
01.04.13
✎
03:27
|
Попробуй процедуру окончание редактирования, тама есть и старое значение и новое вроде как
|
|||
3
snegovik
01.04.13
✎
03:34
|
(2) Нет такого события у элемента... ПриОкончанииРедактирования есть только у табличного поля, насколько понимаю.
|
|||
4
vicof
01.04.13
✎
04:01
|
(0) Перенеси свой код в процедуру НачалоВыбора()
|
|||
5
golden-pack
01.04.13
✎
04:48
|
Что там в Элемент.Значение ?
|
|||
6
snegovik
01.04.13
✎
20:15
|
(4) В этом случае после этого события выходит форма выбора справочника подразделений и пользователь всё равно может выбрать другое подразделение.
Поизвращаться можно, конечно, запоминая в переменных текущее подразделение и затем манипулируя и сравнивая подставлять нужное или запретить подставлять нужное. Но кажется странным, что нет процедуры, в которой можно было бы кратко написать: Отказ = Истина и при этом бы процедура закрылась без возможности выбора и дальнейшего выполнения (как это сделано в событии ПередНачаломИзменения(Элемент, Отказ) |
|||
7
Mort
01.04.13
✎
21:07
|
ПолеВвода.ОбработкаВыбора (TextBox.ChoiceProcessing)
ПолеВвода (TextBox) ОбработкаВыбора (ChoiceProcessing) Синтаксис: ОбработкаВыбора(<ВыбранноеЗначение>, <СтандартнаяОбработка>) Параметры: <ВыбранноеЗначение> Тип: Произвольный. Выбранное значение, которое будет установлено как значения поля ввода. <СтандартнаяОбработка> Тип: Булево. В данный параметр передается признак выполнения стандартной (системной) обработки события. Если в теле процедуры-обработчика установить данному параметру значение Ложь, стандартная обработка события производиться не будет. Фактически это означает, что выбор произведен не будет. Значение по умолчанию: Истина Описание: Возникает после выполнения выбора при: обработке выбора из списка выбора; обработке выбора из всех модальных диалогов выбора (например, календаря, калькулятора); обработке немодального выбора (например, из списка справочника). |
|||
8
Mort
01.04.13
✎
21:08
|
Тока всё это криво
|
|||
9
Serg_1960
01.04.13
✎
21:21
|
(0) Вообще-то, предупреждать надо "до того как", а не "в процессе" или "после". Имхо, перед выбором предупреждать. Когда ещё ничего не было изменено.
|
|||
10
snegovik
01.04.13
✎
21:36
|
(9) Ну да, хотелось бы включить событие "НачалоВыбора()", но в нем не получается запретить дальнейшее срабатывание выбора подразделения.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |