0
SeiOkami
25.07.19
✎
16:23
|
Добрый день.
Есть элемент "КоррСчет", в котором выбирают банковский счет из заданного списка.
У элемента стоит "РежимВыбораИзСписка".
Список указан в "СписокВыбора".
Каждый элемент списка имеет значение - ссылка на счет, представление "Код - Наименование".
Стандартное поведение в такой ситуации - пользователь вводит код и видит список с подходящими элементами. Так делает платформа.
При этом, если пользователь вводит наименование счета, то никакой из элементов не подбирается. Потому что стандартный поиск у платформы - по началу строки. А в начале строки у нас Код.
Как сделать так, чтобы платформа искала по любой части строки? И подсвечивала эту часть (как стандартно делает при поиске).
Добавил обработчик события АвтоПодбор. И сделал такой механизм (ниже). Однако, в таком случае нет подсветки выделенной части. Думаю, не делаю ли велосипед. Может как-то подсказать платформе, что нужно искать именно по любой части строки в списке значений?
&НаКлиенте
Процедура КоррСчетАвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ДанныеВыбора = ДанныеВыбораСчета(Элемент.СписокВыбора, Текст);
КонецПроцедуры
&НаСервереБезКонтекста
Функция ДанныеВыбораСчета(Знач ДоступныеСчета, СтрокаПоиска)
ПараметрыПолучения = Новый Структура;
ПараметрыПолучения.Вставить("СтрокаПоиска", СтрокаПоиска);
ПараметрыПолучения.Вставить("СпособПоискаСтроки", СпособПоискаСтрокиПриВводеПоСтроке.ЛюбаяЧасть);
ПараметрыПолучения.Вставить("Отбор", Новый Структура("Ссылка", ДоступныеСчета));
НайденныеСчета = ПолучитьДанныеВыбора(Тип("ПланСчетовСсылка.Бухгалтерский"), ПараметрыПолучения);
Для Каждого НайденныйСчет Из НайденныеСчета Цикл
ЗаполнитьЗначенияСвойств(НайденныйСчет, ДоступныеСчета.НайтиПоЗначению(НайденныйСчет.Значение));
КонецЦикла;
Возврат НайденныеСчета;
КонецФункции
|
|