Столкнулся с проблемой при организации быстрого поиска по таблице на управляемой форме.

Есть заранее подготовленная таблица товаров и есть поле ввода, в котором нужно выбирать товары из этой таблицы. Чтобы облегчить выбор решил сделать подсказку - по мере набора текста предлагать товары в названии которых есть набранное сочетание символов.
Для этого по событию ИзменениеТекстаРедактирования() заполняю список выбора найденными позициями.

Например, пользователь набрал "моло"
Я добавляю в список:
Молочный шоколад
Птичье молоко

Но в выпадающем списке появляются только те позиции, которые начинаются с набранных символов. В данном примере будет только молочный шоколад.

Причем сам список выбора формируется правильно. И это видно если в событии ИзменениеТекстаРедактирования() использовать контекстный вызов сервера, то текст в поле очищается и выпадает полный список. Но в этом случае нельзя продолжить набор текста

Собственно, вопрос как отключить подбор по первым символам в выпадающем списке, чтобы в список выводились все позиции, которые были в нем есть.

Ниже картинка, как выглядит вариант выпадающего списка без вызова сервера и с вызовом. В идеале нужно чтобы текст в поле оставался, как на первой картинке, а список выводился полностью, как на второй.
---
Подразумевает.
Вот такое пишем в форме:

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

Вот такое в справочнике:

```1c
    Процедура ОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка)

    СтандартнаяОбработка = Ложь;

    Склад = Неопределено;
    Параметры.Отбор.Свойство("Склад", Склад);
    Если ЗначениеЗаполнено(Склад) Тогда
    //Тут делаем что-то полезное
    КонецЕсли;

    КонецПроцедуры
```
---
Если нужно только в этой форме, то используйте событие АвтоПодбор поля ввода, в нем в зависимости от Текст заполняйте ДанныеВыбора.
Если нужно везде и выбираются данные ссылочного типа, то используйте ОбработкаПолученияДанныхВыбора из модуля менеджера соответствующего объекта метаданных.

И в том, и в другом случае у вас не будет зеленой подсветки совпадения, увы
---
Для поиска в выпадающем списке в модуле менеджера справочника есть процедура 'ОбработкаПолученияДанныхВыбора'
---
ОбработкаПолученияДанныхВыбора работает со всем справочником, в котором могут быть тысячи ненужных позиций, а мне нужно выбирать только из ограниченного списка, который я заранее собираю при открытии обработки.
---
удалил. не внимательно прочитал вопрос
---
Если нужно только в этой форме, то используйте событие АвтоПодбор поля ввода, в нем в зависимости от Текст заполняйте ДанныеВыбора.
Если нужно везде и выбираются данные ссылочного типа, то используйте ОбработкаПолученияДанныхВыбора из модуля менеджера соответствующего объекта метаданных.

И в том, и в другом случае у вас не будет зеленой подсветки совпадения, увы
---
АвтоПодбор почти то, но что нужно, но подсказку удобно видеть пока набираешь текст, чтобы понимать можно уже переходить к выбору из списка или еще рано + если остался только один вариант, то его можно сразу подставить, не дожидаясь выбора пользователя. А Автоподбор срабатывает только на паузу в наборе.

ОбработкаПолученияДанныхВыбора работает со всем справочником в котором могут быть тысячи ненужных позиций, а мне нужно выбирать только из ограниченного списка, который я заранее собираю при открытии обработки. Насколько я понимаю, это событие не предусматривает получения параметров из формы, которая его вызвала.
---
Подразумевает.
Вот такое пишем в форме:

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

Вот такое в справочнике:

```1c
    Процедура ОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка)

    СтандартнаяОбработка = Ложь;

    Склад = Неопределено;
    Параметры.Отбор.Свойство("Склад", Склад);
    Если ЗначениеЗаполнено(Склад) Тогда
    //Тут делаем что-то полезное
    КонецЕсли;

    КонецПроцедуры
```
---
не успел дописать аналогичный коммент)
---
Поработал с АвтоПодбором - оказалось, что в большинстве ситуаций его все-таки хватает. Мало пользователей печатает совсем без пауз. Пока остановился на нем.

и спасибо за наводку про параметр в ОбработкаПолученияДанныхВыбора. Не думал об использовании отбора в таком ключе - передавать через него подготовленный список
---
У справочника можно поставить свойство ВВОД ПО СТРОКЕ ""
---
Есть, и в нем выбрано "Наименование"
Так же там есть свойство "Способ поиска строки при вводе по строке" и в нем выбрано "Любая часть"
---
Пока решил вопрос добавлением пробела в начало представления элементов в списке выбора.
Решение не слишком красивое, но работает.