Имя: Пароль:
1C
1С v8
Активизация поля ввода в управляемой форме
,
0 Dmitrith
 
25.10.16
19:44
Пишу тут простенькое сканирование. Есть поле "ШК", куда вбивается штрихкод. Если ШК корректный, вбиваются данные о количестве и после этого фокус передается обратно на поле ШК так:
ЭтаФорма.ТекущийЭлемент = ЭтаФорма.Элементы.ШК;
Тут все нормально, вопросов нет. Но если у меня введен неверный ШК хочется выдавать предупреждение, очищать данные и оставаться в этом поле ввода.
Проблема в том, что в обработчиках ПриИзменении и ОкончаниеВводаТекста текущийЭлемент уже равен ШК, и перепозиционирование как я понимаю происходит платформой уже после работы обработчиков, что естественно перемещает курсор в следующее поле. Обработчик НачалоВыбора (так же поле ввода) в следующем поле не срабатывает.
В ОкончаниеВводаТекста СтандартнаяОбработка = Ложь так же нужного результата не приносит.
Как мне красиво остаться в текущем поле после редактирования?
1 iceman2112
 
25.10.16
19:59
(0) а ВнешнееСобытие() почему не использовали?
2 Dmitrith
 
25.10.16
20:03
(1) еще не дошел до такого варианта.
3 iceman2112
 
25.10.16
20:06
как так? вы выбрали создать поле с постоянной активностью вместо обработчика события ВнешениеСобытие формы, которое предназначено для обработки ШК, с который пользователю не нужно "быть на стреме" у вашего поля.
4 iceman2112
 
25.10.16
20:06
ну ваше вопрос "ОбработчикОжидания" но это костыль
5 Dmitrith
 
25.10.16
20:13
(1) Проверил вариант с ОбработчикОповещения() Так же в нем ТекущийЭлемент = ШК
6 Dmitrith
 
25.10.16
20:16
(1) Внешнее событие подразумевает же использование внешней компоненты, а у меня обычное поле ввода и обычная клавиатура
7 iceman2112
 
25.10.16
20:20
самописная конфигурация чтоли?
8 Dmitrith
 
25.10.16
20:23
(7) угу
9 RomanYS
 
25.10.16
20:41
10 Dmitrith
 
26.10.16
09:53
Апну немного.
В общем извратился через ОбработкуОжидания раз в полсекунды. Но некрасиво...
Ошибка? Это не ошибка, это системная функция.