|
присвоение текущего элемента на УФ | ☑ | ||
---|---|---|---|---|
0
Droning1C
13.08.20
✎
11:08
|
на УФ присутствует поле ввода "ПоискКарточки", куда вбиваются несколько серийников подряд для дальнейшей обработки. Серийники могут вводиться один за одним, поэтому нужно сделать так, чтобы после ввода в это поле курсор был зафиксирован на нем. Пишу в обработчике события "ПриИзменении" код -
ТекущийЭлемент = Элементы.ПоискКарточки; В итоге курсор все равно перескакивает на следующее поле ввода. Нигде больше на форме текущий элемент не присваивается, присвоение моим кодом происходит вне условий в самом конце события "ПриИзменении" Что я делаю не так? |
|||
1
acht
13.08.20
✎
11:16
|
Сообщи изнутри ПриИзменении текущий элемент и все поймешь
|
|||
2
Droning1C
13.08.20
✎
11:22
|
я без сообщить отладчиком смотрел через табло. Один фиг ТекущийЭлемент.Имя = "ПоискКарточки"
|
|||
3
Василий Алибабаевич
13.08.20
✎
11:28
|
(0) После каждого ввода вызывать однократно ПодключитьОбработчикОжидания() с минимальным периодом ожидания. И там уже устанавливать текущийэлемент.
|
|||
4
Droning1C
13.08.20
✎
11:29
|
И ведь вроде как событие "ПриИзменении" на УФ является последним по срабатыванию, не понимаю, что не так.
|
|||
5
Droning1C
13.08.20
✎
11:34
|
(3) &НаКлиенте
Процедура ПоискКарточкиПриИзменении(Элемент) Блаблабла всякая кривая писанина; ЭтаФорма.ПодключитьОбработчикОжидания("УстановитьТекущийЭлемент",0.1,Истина); КонецПроцедуры &НаКлиенте Процедура УстановитьТекущийЭлемент() ТекущийЭлемент = Элементы.ПоискКарточки; КонецПроцедуры |
|||
6
Droning1C
13.08.20
✎
11:35
|
(3) Сделал так, действительно работает, но видно, как курсор перескакивает на другое поле, а потом возвращается обратно... Можно как-то это победить?
|
|||
7
Ёпрст
13.08.20
✎
11:49
|
всем реквизитам установить свойство "пропускать при вводе" в да
|
|||
8
acht
13.08.20
✎
11:53
|
(6) Используй вместо ПриИзменении событие ОкончаниеВводаТекста с выставлением СтандартнаяОбработка = Ложь.
Реквизиту формы значение присвоишь вручную, и возможно придется поставить ОбновлениеТекстРедактированяи в НеИспользовать |
|||
9
acht
13.08.20
✎
11:54
|
Ну и без контекстных серверных вызовов ессно
|
|||
10
Droning1C
13.08.20
✎
12:02
|
(8) насколько я знаю "ОкончаниеВводаТекста" срабатывает только тогда, когда пользователь нажимает Таб или Энтер моментально после ввода, не дожидаясь, когда система предложит список выбора. Если пользователь делает паузу, то срабатывает событие "Автоподбор". Тоесть придется писать в оба обработчика событий, а после этого все равно уже сработает "ПриИзменении".
|
|||
11
Droning1C
13.08.20
✎
12:05
|
(8) Поэтому я думаю, что ошибка не в событии в котором я пишу код. Может быть в свойствах поля ввода?
|
|||
12
Droning1C
13.08.20
✎
12:18
|
(3) (5) (6) Насколько я понимаю такое срабатываение говорит о том, что после события "ПриИзменении" программа переводит курсор на следующее поле ввода в порядке обхода (в УФ на следующий элемент в дереве элементов). Возможно ли как-то повлиять на этот переход?
|
|||
13
Droning1C
13.08.20
✎
12:47
|
(7) Дико извиняюсь, не обратил внимания на ваш комментарий. Помогло. Как раз то свойство, которое я искал.
|
|||
14
acht
13.08.20
✎
13:19
|
(10) > насколько я знаю
ОкончаниеВводаТекста возникает при формировании значения по отредактированному тексту. Например, в момент перехода на другой элемент управления формы, при закрытии формы и т.д. Список выбора там переопределяется. Автоподбор тебе не нужен вообще. Ты попробуй, что-ли. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |