Для того, чтобы пользователю не приходилось тапать по полю ввода, чтобы ввести в него значение с клавиатуры (или сканера штрихкода, что весьма актуально), разработчики 1С реализовали функцию "НачатьРедактированиеЭлемента", которая, по-хорошему, должна это делать программно.
Однако, отрабатывает эта функция некорректно: достаточно изменить любой другой элемент управления на форме(изменить надпись, переключить текущую страницу или что-либо другое), и фокус ввода теряется без возможности вернуть его на место свойством "ТекущийЭлемент" формы и вызовом функции "НачатьРедактированиеЭлемента". Фокус просто ничего не слушается.
Три дня ломая голову над этой проблемой, нащупал быстрое и действенное решение, позволяющее вернуть фокус в то поле, которое нам нужно, и корректно вызвать функцию "НачатьРедактированиеЭлемента": для того, чтобы это сделать, нужно ПОСЛЕ всех изменений на форме отключить видимость необходимого нам поля ввода, затем снова включить, выставить это поле в качестве текущего, и уж только после этого вызвать функцию "НачатьРедактированиеЭлемента". Выполнять эти действия достаточно прямо &НаКлиенте.
Я достаточно жестко "веду" пользователя своего приложения, постоянно указывая следующее действие (такая специфика приложения), и написал следующую процедуру, которую вызываю каждый раз по окончании всех действий на форме:
&НаКлиенте
Процедура ПодготовитьПолеВвода()
ОчиститьПолеВводаНаСервере();
Элементы.ПолеВвода.ОбновитьТекстРедактирования();
Элементы.ПолеВвода.Видимость = Ложь;
Элементы.ПолеВвода.Видимость = Истина;
ЭтаФорма.ТекущийЭлемент = Элементы.ПолеВвода;
#Если МобильноеПриложениеКлиент Тогда
НачатьРедактированиеЭлемента();
#КонецЕсли
КонецПроцедуры
&НаСервере
Процедура ОчиститьПолеВводаНаСервере()
ПолеВвода = "";
КонецПроцедуры
У меня поиск этого решения занял долгие два дня ломания головы о монитор.
Кстати, чур не смеяться над тем, зачем я хожу на сервер, чтобы очистить поле ввода. Это ухищрение нужно для того, чтобы можно было корректно очистить поле ввода на форме при отключенном автообновлении этого элемента. А это в свою очередь необходимо, чтобы поле ввода не "дурило" при изменении других элементов формы. В общем - всё непросто в мобильном приложении. Сырой продукт еще. Но нужный! Так что, мыши плакали и кололись...
Буду очень рад, если кому-то этот опыт пригодится!
PS: столкнулся с данной проблемой на последней на данный момент версией мобильной платформы: 8.3.13.45.