Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
29 сен 2024, 01:35

Перевод курсора на поле ввода

Автор MrLvovsky, 10 мар 2017, 17:12

0 Пользователей и 1 гость просматривают эту тему.

MrLvovsky

Добрый день коллеги.
Подскажите пожалуйста.

Есть поле ввода, в которое вводится некоторая строка.
После окончания ввода запускается код (ПолеВводаПриОкончанииВвода), который это поле обрабатывает.
Как после отработки этого кода перевести курсор обратно на это поле, что бы можно было сразу продолжить ввод?

Заранее спасибо.

LexaK

в управляемых формах просто добавьте команду см.прим.
только выход из этого поля будет интересный, по ESC
или допрограммируте логику выхода

&НаКлиенте
Процедура КомментарийОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка)
    //ваш код
    СтандартнаяОбработка = Ложь; //оставляет фокус ввода в текущем поле
КонецПроцедуры
если помогло нажмите: Спасибо!

MrLvovsky

Цитата: LexaK от 11 мар 2017, 11:12

&НаКлиенте
Процедура КомментарийОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка)
    //ваш код
    СтандартнаяОбработка = Ложь; //оставляет фокус ввода в текущем поле
КонецПроцедуры


К сожалению, не сработало(
Точнее, теперь когда код НЕ отрабатывает, он курсор оставляет, но после отработки курсор все равно переходит на другой элемент.
Сейчас буду смотреть, мб в коде есть переход (нет =)).

LexaK

попробуйте пере выходом из процедуры добавить такую команду

&НаКлиенте
Процедура КомментарийОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
    //ваш код
   
    //добавьте эту команду, если доходит до конца процедуры
ТекущийЭлемент = Элемент;
КонецПроцедуры
если помогло нажмите: Спасибо!

MrLvovsky

Цитата: LexaK от 13 мар 2017, 13:14
попробуйте пере выходом из процедуры добавить такую команду...

Примерно это и написано =) Не помогает(
Процедура СтрокаШКОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ОбработатьВводШК(СОКРЛП(Текст));
ТекущийЭлемент = Элементы.СтрокаШК;
КонецПроцедуры


Причем если не модифицировать данные на форме и на объекте (Например стоит Возврат, если ШК не той длины), то курсор остается на поле. Пока что пытаюсь как то это обыграть.

LexaK

Попробуйте другие события поля использовать
ПриИзменении и др.
если помогло нажмите: Спасибо!

MrLvovsky

Цитата: LexaK от 13 мар 2017, 14:08
Попробуйте другие события поля использовать
ПриИзменении и др.
Суть та же, только срабатывает на каждую цифру

LexaK

попробуйте это событие

&НаКлиенте
Процедура КомментарийАвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)
   //что-то обработали, сбросили старый текст, курсор остается в поле ввода
   Объект.Комментарий = "";
КонецПроцедуры
если помогло нажмите: Спасибо!

alex0402

Так это для получения Штрихкода? Нужно поднять еще одно окно ВВестиЗначение или ВВодЗначенияПоказать. После получения непустого значения, поднять еще раз.
Спасибо за Сказать спасибо

MrLvovsky

Цитата: LexaK от 13 мар 2017, 14:27
попробуйте это событие

&НаКлиенте
Процедура КомментарийАвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)
   //что-то обработали, сбросили старый текст, курсор остается в поле ввода
   Объект.Комментарий = "";
КонецПроцедуры

Огонь! То, что надо! Спасибо большое (тыкнул), шли со мной до конца =)
Казалось бы, такая тривиальная задача, а сколько поту =)

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск