Как отключить автоматическое раскрытие выпадающего списка при активизации поля ввода в управляемых формах 1С?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При работе с управляемыми формами в платформе «1С:Предприятие 8.3» разработчики часто сталкиваются с ситуацией, когда при получении фокуса (активизации) полем ввода автоматически раскрывается выпадающий список или история последних значений. В некоторых сценариях это мешает пользователям быстро перемещаться по полям с помощью клавиш или мыши. Разберем основные причины такого поведения и способы его отключения.

Выясним причины автоматического открытия списка

Автоматическое выпадание списка или формы выбора при получении фокуса элементом формы регулируется несколькими свойствами платформы. Проанализируем ключевые из них:

  1. История выбора при вводе (ИсторияВыбораПриВводе): по умолчанию платформа запоминает ранее введенные значения и показывает их при активизации элемента.
  2. Быстрый выбор (БыстрыйВыбор): если это свойство включено у элемента формы или объекта метаданных, платформа автоматически вызывает процедуру выбора при фокусировке мышью.
  3. Автовыбор незаполненного (АвтоВыборНезаполненного): если свойство установлено в значение Истина, пустое поле ввода при активизации инициирует выбор из списка или открытие формы выбора.

Способ 1. Отключение истории выбора

Если автораскрытие выпадающего списка вызвано отображением ранее введенных пользователем значений, необходимо отключить историю выбора.

Рассмотрим пошагово, как это сделать:

  1. Откроем управляемую форму в конфигураторе.
  2. Выделим нужное поле ввода и перейдем в палитру свойств.
  3. Найдем свойство ИсторияВыбораПриВводе и установим его значение в НеИспользовать.

Обратите внимание: если у реквизита или объекта метаданных это свойство включено, значение Авто на элементе формы продолжит наследовать включенное состояние. Поэтому рекомендуется явно задавать НеИспользовать.

Способ 2. Отключение быстрого выбора

Свойство БыстрыйВыбор также влияет на автоматический вызов списка выбора при клике на элемент мышью.

  1. Перейдем к свойствам элемента формы.
  2. Найдем свойство БыстрыйВыбор и переведем его в значение Ложь.
  3. Проверим свойство БыстрыйВыбор у соответствующего объекта метаданных (например, справочника). Если там включен быстрый выбор, его также необходимо отключить на уровне объекта или реквизита.

Способ 3. Отключение автовыбора незаполненного поля

Если поле является пустым, платформа может автоматически вызывать выбор. Чтобы предотвратить это поведение, настроим свойство АвтоВыборНезаполненного:


// Программное отключение автовыбора незаполненного реквизита
Элементы.ПолеВводаИмя.АвтоВыборНезаполненного = Ложь;

Способ 4. Перехват события «НачалоВыбора»

Для полного контроля над поведением поля ввода можно отключить стандартное открытие выпадающего списка при помощи обработчика события НачалоВыбора.


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

При использовании этого способа выпадающий список или форма выбора не будут открываться автоматически при активизации. Чтобы предоставить пользователю возможность выбора только по клику на кнопку выборки, можно открывать форму выбора или вызывать список программно.

← На главную