|
Проверка корректности данных в поле ввода | ☑ | ||
---|---|---|---|---|
0
Программисточка
02.08.11
✎
17:10
|
Подскажите, пожалуйста, как правильно реализовать проверку значений, введеных на форме. Мне нужен такой механизм: пользователь вводит значение, я его проверяю и если оно не правильное, то вывожу сообщение об ошибке и не даю выйти из поля ввода, пока не будет введено корректное значение или пользователь вообще откажется от ввода. Такой механизм автоматически реализован при вводе ссылочных типов. Основная проблема у меня в том, чтобы пользователь не мог выйти из поля, введя некорректное значение, и чтобы введеное им значение не затиралось и могло быть исправлено.
|
|||
1
Alexey87
02.08.11
✎
17:11
|
(0)без фото не взлетит
|
|||
2
Maxus43
02.08.11
✎
17:13
|
надо поиграть с событием обработка выбора, точно не скажу
|
|||
3
Программисточка
02.08.11
✎
17:14
|
Как буду дома, поищу обязательно фото :)
|
|||
4
Maxus43
02.08.11
✎
17:15
|
(3) тут аудитория требовательная. фото с пляжа обязательно)
|
|||
5
Программисточка
02.08.11
✎
17:24
|
что-то не вижу чем мне может помочь обработка выбора, кроме того, при заполнении текстового поля она не отработает, а мне нужно проверять текст и даты.
Вначале я думала, что СтандартнаяОбработка = Ложь в окончании ввода текста и обработке выбора будет работать так, как мне надо, но что-то не получается |
|||
6
Maxus43
02.08.11
✎
17:26
|
(5) да, согласен, тут выбора нет, в окончании ввода текста надо, только сомневаюсь что получится не затирать неправильное или не выйти из поля
|
|||
7
Программисточка
02.08.11
✎
17:28
|
Ну вот у меня и получается, что пользователь вводит номер договора длинный и сложный, поставил в конце какую-нибудь каку, а я ему "ты фигню ввел" и все стёрла, как-то не по-человечески :)
|
|||
8
Программисточка
02.08.11
✎
17:29
|
тем более, что он видит, что в других полях (ссылочных) работает по-человечески и обижается :)
|
|||
9
patapum
02.08.11
✎
17:30
|
проверять при записи, не давать записывать
|
|||
10
Staffa
02.08.11
✎
17:30
|
(7) запомни в локальной переменной то, что он ввел перед проверкой
|
|||
11
Программисточка
02.08.11
✎
17:34
|
(9) вариант, но хочется, чтобы он сразу видел где и какая ошибка, а не тогда, когда уже понаделал десяток и решил наконец-то сохраниться. Ну и больше всего смущает наличие такого механизма при стандартной работе системы, нуежели нельзя повторить то, что уже реализовано... Заказчик же видит, как уже работает и гвоорит: "хочу, чтобы в этом поле работало так же, как в том"
|
|||
12
kosts
02.08.11
✎
17:37
|
(11) При ошибочном вводе, сделай поле ввода красным цветом.
|
|||
13
Программисточка
02.08.11
✎
17:37
|
(10) запомню, а как мне не позволить ему продолжить редактировать другие поля и оставить в нем некорректное значение. Потом ещё и при записи все на второй раз проверять?
|
|||
14
Программисточка
02.08.11
✎
17:37
|
(12) о, круто
|
|||
15
patapum
02.08.11
✎
17:38
|
(11) Заказчик же видит, как уже работает и говорит "хочу, чтобы - предложи ему реализовать, прочитай внушительную лекцию про ссылочные и примитивные типы (только чтоб на свой счет не принял...)
в конце концов после ввода поля выведи предупреждение, и при записи тоже. (12) тоже отлично |
|||
16
Программисточка
02.08.11
✎
17:39
|
получается, что все советы направлены на другие способы решения, т.е. повторить встроенный механизм совсем не реально? :(
|
|||
17
patapum
02.08.11
✎
17:41
|
(16) советы направлены на достижение цели, а не на достижение цели заданным способом. раз никто не советует как повторить, значит никто не видит возможности. да и опять же, зачем?
|
|||
18
Программисточка
02.08.11
✎
17:42
|
ладно, значит будем раскрашивать и сохранять признак ошибки, чтоб при записи поругаться :)
заказчик-то у меня лояльный, ему маленькой лекции хватит, но здорово же, когда все однотипно работает, а не для каждого поля свой механизм |
|||
19
Staffa
02.08.11
✎
17:42
|
я один не понимаю, о каком "встроенный механизм" идет речь?
|
|||
20
Программисточка
02.08.11
✎
17:45
|
(19) ну вот берешь поле "Контрагент", вводишь туда "Карпупкин" и если у тебя в базе нет карапупкина, то выводится сообщение
"В поле введены некорректные данные. Отменить ввод? Нажмите "Да" для отмены ввода или "Нет" для продолжения редактирования" |
|||
21
Программисточка
02.08.11
✎
17:46
|
после ввода Enter нажимаешь :)
|
|||
22
Staffa
02.08.11
✎
17:49
|
)))) теперь понял
|
|||
23
Staffa
02.08.11
✎
17:51
|
есть замечательное событие: ОкончаниеВводаТекста
|
|||
24
patapum
02.08.11
✎
17:55
|
(23) оно не позволит запретить дальше перейти
|
|||
25
patapum
02.08.11
✎
17:58
|
Процедура НаименованиеПриИзменении(Элемент)
Если Найти(Наименование, 1) = 0 Тогда ЭтаФорма.ТекущийЭлемент = ЭлементыФормы.Наименование; КонецЕсли; КонецПроцедуры Но срабатывает только при одной попытке уйти с поля. Вторая уже не контролируется - при изменении не возникает |
|||
26
Fragster
гуру
02.08.11
✎
18:02
|
а при обновлении?
|
|||
27
Программисточка
02.08.11
✎
18:02
|
у меня уже была мысль запоминать признак ошибки и в каком поле и при положительном признаке насильно это поле активизировать :) но это аццкий бред
|
|||
28
Программисточка
02.08.11
✎
18:05
|
я думала может вообще есть какая стандартная функция или другой какой механизм, о котором я не знаю. А то городить такой огород по этому поводу не хочется
|
|||
29
Fragster
гуру
02.08.11
✎
18:09
|
проверять все поля надо перед записью и скопом выдавать. запрещать выходить из поля при неправильном значении - феерический бред
|
|||
30
Fragster
гуру
02.08.11
✎
18:09
|
тем более, что в 8.2 можно привязывать сообщения к полям ввода
|
|||
31
Alexandr Puzakov
03.08.11
✎
05:52
|
Вот, еще один гордый одноэсник девушкой прикинулся, чтобы спросить :)
|
|||
32
Erhov_egor
03.08.11
✎
06:38
|
Где фотка?
|
|||
33
John83
03.08.11
✎
16:01
|
(32) наивный - они же все так говорят :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |