Имя: Пароль:
1C
1С v8
Автоподбор текста как в поисковиках
0 cbat
 
18.08.12
13:03
Всем привет!
Заказчик потребовал реализовать автозаполнение поля справочника на форме подобному тому, как это делается в поисковиках при наборе первых символов, т.е. в поле вводим первые буквы - выпадает список значений начинающийся на эти самые первые буквы. Реализовал так в обработчике поля АвтоПодборТекста():

Процедура РегионАвтоПодборТекста(Элемент, Текст, ТекстАвтоПодбора, СтандартнаяОбработка)
   СтандартнаяОбработка = Ложь;
   
   СЗ = Новый СписокЗначений;
   
   Запрос = Новый Запрос;
   Запрос.Текст =
       "ВЫБРАТЬ
       |    Регионы.Ссылка,
       |    Регионы.Наименование
       |ИЗ
       |    Справочник.Регионы КАК Регионы
       |ГДЕ
       |    Регионы.ЭтоГруппа = ЛОЖЬ
       |    И Регионы.Наименование ПОДОБНО &Наименование";

   Запрос.УстановитьПараметр("Наименование", Текст+"%");
   
   Результат = Запрос.Выполнить();

   ВыборкаДетальныеЗаписи = Результат.Выбрать();
       
   Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
       СЗ.Добавить(ВыборкаДетальныеЗаписи.Ссылка, ВыборкаДетальныеЗаписи.Наименование);
   КонецЦикла;
   
   ЭлементСЗ=ВыбратьИзСписка(СЗ,Элемент);

   Если ЭлементСЗ<>Неопределено Тогда
       Элемент.Значение = ЭлементСЗ.Значение;
   КонецЕсли;
КонецПроцедуры

Все бы хорошо, но когда начинаешь вводить символы при отображении списка поле становится не активным, что не позволяет продолжить ввод текста - приходится кликать по нему чтобы снова активировать его при этом список исчезает. Подскажите как можно исправить данную проблему.
1 SiAl-chel
 
18.08.12
22:18
2 IamAlexy
 
18.08.12
22:20
(0) если не ошибаюсь в той же УТ11 реализовано..
причем как через ввод по строке так и через систему поиска по совпадениям.
3 cbat
 
18.08.12
22:45
SiAl-chel решения данной проблемы в вашей ссылке не нашел.
IamAlexy к сожалению под рукой УТ нет :( может есть где подобная реализация в БП?
4 Jaffar
 
19.08.12
02:44
(3) наверное, намек был, что нужно правильно заполнить Сервер.МассивПодбора.
5 Ranger_83
 
19.08.12
07:38
СЗ подставляй в ТекстАвтоПодбора
а потом в ОбработкаВыбора присваивай выбранное значение твоему элементу
6 cbat
 
19.08.12
11:46
Я видимо плохо объяснил в чем проблема. Попробую еще раз:
Во-первых, я использую режим запуска - обычное приложение.
Во-вторых, у меня все работает как необходимо, проблема лишь в том, что когда отображается выпадающий список с возможными значениями, то фокус переходит на сам список, поэтому продолжить набирать текст не получается пока не кликнешь по нему мышкой, чтобы фокус от списка перешел обратно полю, при этом сам список исчезает:
http://s018.radikal.ru/i522/1208/9b/ae12c1b15e02.png

Пример того, что мне нужно можно посмотреть здесь:
http://www.rgs.ru/products/private_person/auto/casco/calc/index.wbp
Если в поле "регион" начать вбивать текст, то поле ввода остается постоянно активным несмотря на появление списка с подбором.

Если подобную реализацию встречали в стандартных конфах просьба подсказать где.
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.