Всем доброе время суток!
Необходимо отключить стандартный поиск в управляемой форме списка 8.2 (поиск по вхождению подстроки в строку) и установить поиск по первым символам (как в обычном приложении). Возможно ли это реализовать и каким средствами?
Могу попробовать подсказать (работать наверно будет, но придется допиливать).
1. Убрать с командной панели стнадартный значок с лупой. 2. На командную панель навесить поле поиска (строка) и рядом кнопки для поиска(вперед, назад).
3. Код может выглядеть примерно так:
&НаКлиенте Процедура НайтиПоВхождению(Команда)
Порядок = Строка(Список.Порядок); Текстрока = Элементы.Список.ТекущаяСтрока;
&НаСервереБезКонтекста Функция НайтиСледующийЭлемент(СсылкаНаТекЭлемент,СтрокаПоиска,Порядок) Если Порядок = "Наименование" Тогда
Запрос = Новый Запрос; Запрос.Текст ="ВЫБРАТЬ | ОбъектыЗатрат.Ссылка |ИЗ | Справочник.ОбъектыЗатрат КАК ОбъектыЗатрат | |УПОРЯДОЧИТЬ ПО | ОбъектыЗатрат.Наименование"; ТЗ = Запрос.Выполнить().Выгрузить(); НачатьПоиск = Ложь; Для Каждого стрТЗ из ТЗ Цикл Если стрТЗ.Ссылка = СсылкаНаТекЭлемент Тогда НачатьПоиск = Истина; КонецЕсли;
Если Не НачатьПоиск Тогда Продолжить; КонецЕсли;
НаименованиеЭлементаСправочника = стрТЗ.Ссылка.Наименование; УрезанноеДляПоискаНаименование = Лев(НаименованиеЭлементаСправочника,СтрДлина(СтрокаПоиска)); Если ВРЕГ(УрезанноеДляПоискаНаименование) = ВРЕГ(СтрокаПоиска) Тогда Возврат стрТЗ.ссылка; КонецЕсли; КонецЦикла; КонецЕсли; КонецФункции
(3) не ice :(
Убрать из состава команд - это еще не все. Как только в списке начать набор символов, то поиск сам взлетает и просится помочь. И отловить никак его (во всяком случае я пока события не нашел).
(4) по ходу так. Сейчас через франч отправил вопрос в 1С.
ИМХО а так даже лучше, выводятся все похожие товары это раз, во вторых очень быстро
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс