Имя: Пароль:
1C
1С v8
Как сделать "возврат" в процедуре изменения поля ввода на форме?
,
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) Ну да, хотелось бы включить событие "НачалоВыбора()", но в нем не получается запретить дальнейшее срабатывание выбора подразделения.
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn