Переход фокуса ввода (1С)

Для ускорения ввода данных можно добавить автоматический переход фокуса ввода на следующий элемент, после окончания ввода текущего (нажатия Enter или выбора значения из списка мышкой).

Это эффективно, например, для заполнения таблиц.

Для задания нужного элемента текущим используется свойство ТекущийЭлемент  у формы.

Его можно менять, например, при изменении значения текущего элемента, в обработчике  соытия  ПриИзменении.

Чтобы начать непосредственный ввод в ячейку таблицы формы, существует метод  ИзменитьСтроку() .

Но есть одна проблема. Если вызвать  ИзменитьСтроку() сразу после изменения свойства  ТекущийЭлемент , то ничего не произойдет. Фишка в том, что нужно сделать паузу, чтобы текущий элемент успел “установиться” к моменту начала “изменения строки”. Для этого можно воспользоваться процедурой ПодключитьОбработчикОжидания().

Также, если нужно ввести данные последовательно в несколько колонок таблицы, можно обрабатывать событие ПриИзменении у самой таблицы (а не отдельной колонки), определяя какая колонка была изменена с помощью параметра  Элемент, а с помощью простой структуры ( СтруктураПерехода) задать алгоритм перехода фокуса ввода между колонками.

Пример:

Работает на платформе 8.3.17 в режиме совместимости с 8.3.14.

0

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *