При активной работе в управляемом интерфейсе («Такси») платформа 1С автоматически запоминает значения, которые пользователь ранее выбирал в различных полях ввода. Это ускоряет работу, предлагая быстрые подсказки в выпадающем списке без необходимости открывать форму выбора справочника. Однако если один из ранее выбранных элементов был физически удален из информационной базы, в списке подсказок начинает отображаться некрасивая строка вида <Объект не найден> (уникальный_идентификатор).
Разберем, почему стандартная очистка локального кэша и обновление индекса полнотекстового поиска не помогают в этой ситуации, где именно хранится история подбора и как ее очистить.
Проанализируем механизм работы подсказок в платформе 1С:Предприятие 8.3:
ХранилищеСистемныхНастроек с системным ключом ИсторияВыбора индивидуально для каждого пользователя.Рассмотрим самый надежный способ сброса списка подсказок. Для этого не требуется снимать конфигурацию с поддержки или изменять саму структуру метаданных. Достаточно выполнить небольшой фрагмент программного кода на стороне сервера (например, через внешнюю обработку или обработку «Групповое изменение реквизитов» с возможностью исполнения произвольного алгоритма).
Для удаления накопленной истории выбора только у текущего активного пользователя выполним следующий код:
ХранилищеСистемныхНастроек.Удалить("ИсторияВыбора", , ПользователиИнформационнойБазы.ТекущийПользователь().Имя);
Если требуется очистить историю подсказок для всех пользователей информационной базы, выполним обход списка пользователей в цикле:
Для Каждого ПользовательИБ Из ПользователиИнформационнойБазы.ПолучитьПользователей() Цикл
ХранилищеСистемныхНастроек.Удалить("ИсторияВыбора", , ПользовательИБ.Имя);
КонецЦикла;
Обратите внимание: Платформа 1С не поддерживает точечное удаление одной конкретной ссылки из истории. Вызов метода Удалить очищает сохраненные подсказки быстрого ввода сразу по всем полям выбранного пользователя, после чего список начнет наполняться заново по мере работы.
Разберем вариант очистки без написания программного кода, используя типовой функционал Библиотеки стандартных подсистем (присутствует в конфигурациях «Управление торговлей», «ERP», «Комплексная автоматизация», «Бухгалтерия предприятия» и др.):
Рассмотрим поведение механизма подсказок в повседневной работе. В истории выбора для конкретного реквизита хранится фиксированное небольшое количество наиболее часто и недавно используемых элементов (как правило, от 5 до 10 значений).
Если нет возможности запустить обработку или очистить настройки пользователя, достаточно последовательно выбрать в проблемном поле несколько других корректных существующих значений. По мере добавления новых записей старая битая ссылка автоматически вытеснится из очереди и перестанет появляться в выпадающем списке.
Если для конкретного реквизита или элемента формы быстрый подбор из истории вообще не требуется, мы можем управлять этим поведением разработчика. За это отвечает свойство ИсторияВыбораПриВводе, которое доступно у объектов метаданных, их реквизитов и элементов формы типа ПолеВвода. Установка данного свойства в значение Не использовать полностью отключает сохранение и отображение предыдущих вариантов выбора для элемента.