При ручном вводе данных в колонку табличной части платформа 1С по умолчанию предлагает выпадающий список с ранее выбранными значениями или автоматически ищет совпадения в справочнике. В некоторых сценариях работы этот механизм может мешать пользователям или замедлять ввод. Разберем подробно, почему возникают всплывающие подсказки и как их полностью отключить разными способами.
Выясним причину такого поведения платформы. Всплывающий список при наборе текста формируется под воздействием нескольких независимых механизмов 1С:
Номенклатура) настроен поиск по наименованию, коду или артикулу. При вводе символов с клавиатуры платформа ищет совпадающие элементы в базе данных.ПолеВвода.Рассмотрим основной способ отключения персональных подсказок через Конфигуратор. У каждого реквизита объекта или табличной части есть свойство, отвечающее за хранение недавних выборов.
Номенклатура).ИсторияВыбораПриВводе.После этого платформа прекратит запоминать и выводить историю прошлых выборов пользователя для этого поля.
В интерфейсе «Такси» отключения только истории выбора может быть недостаточно: платформа оставляет выпадающее меню со служебной кнопкой «Показать все». Чтобы полностью скрыть выпадающее окно при вводе текста, настроим комбинацию свойств элемента формы табличной части:
ИсторияВыбораПриВводе — установим значение Не использовать.КнопкаВыпадающегоСписка — выставим значение Нет.БыстрыйВыбор — установим в Ложь.КнопкаВыбора — укажем Да.ОтображениеКнопкиВыбора — выставим В поле ввода.Такая комбинация параметров позволяет сохранить возможность интерактивного выбора элемента из формы справочника по кнопке, но полностью блокирует всплывающий список при наборе текста с клавиатуры.
Проанализируем ситуацию, когда подсказки продолжают появляться из-за поиска по наименованию или коду. Если требуется запретить автоматический поиск объектов при наборе текста на уровне всей системы, изменим свойства объекта метаданных:
Номенклатура).Наименование, Код, Артикул).Очистка этого списка запрещает платформе выполнять автоматический подбор элементов справочника по начальным буквам.
Посмотрим на пример программного перехвата ввода. События НачалоВыбора или НачалоВыбораИзСписка срабатывают только при нажатии кнопки выбора или клавиши F4. За ввод символов с клавиатуры отвечает событие АвтоПодбор.
Чтобы заблокировать подбор на уровне кода формы, создадим обработчик события АвтоПодбор для элемента колонки табличной части:
&НаКлиенте
Процедура ТаблицаТоваровНоменклатураАвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
КонецПроцедуры
Установка параметра СтандартнаяОбработка = Ложь предотвращает заполнение списка ДанныеВыбора и полностью отключает вызов стандартного выпадающего списка подбора.
Если ранее выпадающий список уже сформировал историю и подтягивает старые значения из системного кэша, их можно очистить программно. Для этого на сервере используется объект ХранилищеСистемныхНастроек:
ХранилищеСистемныхНастроек.Удалить("ИсторияВыбора", , ИмяПользователя);
Данный вызов удаляет сохраненную историю выбора для указанного пользователя, после чего выпадающие подсказки перестанут отображаться.