Как отключить подсказки и выпадающий список при вводе данных в табличную часть 1С?

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

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

Причины появления всплывающих подсказок при вводе

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

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

Отключение истории выбора при вводе у реквизита

Рассмотрим основной способ отключения персональных подсказок через Конфигуратор. У каждого реквизита объекта или табличной части есть свойство, отвечающее за хранение недавних выборов.

  1. Откроем Конфигуратор и найдем нужный объект (документ или справочник).
  2. Перейдем к дереву реквизитов табличной части и откроем палитру свойств целевого реквизита (например, Номенклатура).
  3. В разделе Расширение поля ввода найдем свойство ИсторияВыбораПриВводе.
  4. Установим значение свойства в Не использовать.

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

Комплексная настройка элементов формы в управляемом интерфейсе

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

  1. ИсторияВыбораПриВводе — установим значение Не использовать.
  2. КнопкаВыпадающегоСписка — выставим значение Нет.
  3. БыстрыйВыбор — установим в Ложь.
  4. КнопкаВыбора — укажем Да.
  5. ОтображениеКнопкиВыбора — выставим В поле ввода.

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

Отключение механизма "Ввод по строке" у объекта метаданных

Проанализируем ситуацию, когда подсказки продолжают появляться из-за поиска по наименованию или коду. Если требуется запретить автоматический поиск объектов при наборе текста на уровне всей системы, изменим свойства объекта метаданных:

  1. Откроем свойства справочника, на который ссылается колонка (например, Номенклатура).
  2. Перейдем на вкладку Данные.
  3. В поле Ввод по строке очистим список выбранных полей (удалим Наименование, Код, Артикул).

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

Программная отмена подбора через событие АвтоПодбор

Посмотрим на пример программного перехвата ввода. События НачалоВыбора или НачалоВыбораИзСписка срабатывают только при нажатии кнопки выбора или клавиши F4. За ввод символов с клавиатуры отвечает событие АвтоПодбор.

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


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

Установка параметра СтандартнаяОбработка = Ложь предотвращает заполнение списка ДанныеВыбора и полностью отключает вызов стандартного выпадающего списка подбора.

Программная очистка накопленной истории пользователей

Если ранее выпадающий список уже сформировал историю и подтягивает старые значения из системного кэша, их можно очистить программно. Для этого на сервере используется объект ХранилищеСистемныхНастроек:

ХранилищеСистемныхНастроек.Удалить("ИсторияВыбора", , ИмяПользователя);

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

← На главную