Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

присвоение текущего элемента на УФ

присвоение текущего элемента на УФ
Я
   Droning1C
 
13.08.20 - 11:08
на УФ присутствует поле ввода "ПоискКарточки", куда вбиваются несколько серийников подряд для дальнейшей обработки. Серийники могут вводиться один за одним, поэтому нужно сделать так, чтобы после ввода в это поле курсор был зафиксирован на нем. Пишу в обработчике события "ПриИзменении" код -

ТекущийЭлемент = Элементы.ПоискКарточки;

В итоге курсор все равно перескакивает на следующее поле ввода. Нигде больше на форме текущий элемент не присваивается, присвоение моим кодом происходит вне условий в самом конце события "ПриИзменении" Что я делаю не так?
   acht
 
1 - 13.08.20 - 11:16
Сообщи изнутри ПриИзменении текущий элемент и все поймешь
   Droning1C
 
2 - 13.08.20 - 11:22
я без сообщить отладчиком смотрел через табло. Один фиг ТекущийЭлемент.Имя = "ПоискКарточки"
   Василий Алибабаевич
 
3 - 13.08.20 - 11:28
(0) После каждого ввода вызывать однократно ПодключитьОбработчикОжидания() с минимальным периодом ожидания. И там уже устанавливать текущийэлемент.
   Droning1C
 
4 - 13.08.20 - 11:29
И ведь вроде как событие "ПриИзменении" на УФ является последним по срабатыванию, не понимаю, что не так.
   Droning1C
 
5 - 13.08.20 - 11:34
(3) &НаКлиенте
Процедура ПоискКарточкиПриИзменении(Элемент)
     Блаблабла всякая кривая писанина;
     ЭтаФорма.ПодключитьОбработчикОжидания("УстановитьТекущийЭлемент",0.1,Истина);
КонецПроцедуры

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

Ты попробуй, что-ли.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.