0
ghostrid3r
08.05.15
✎
17:24
|
Подскажите плз, что я делаю не так. Подбирает значение только когда полностью введено наименование, и то не корректно выбирает только первое.
Например вводим юбка, он и подставляет юбка, а в системе есть еще юбка короткая, юбка длинная, он их не показывает для выбора.
Код данной фигни такой, особо не ругайте.
&НаКлиенте
Процедура ТипТовараАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Если НЕ ПустаяСтрока(Текст) Тогда
ДанныеВыбора = ПолучитьСписокЗначенийДляПодстановки(Текст, "ТипТовара");
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ТипТовараОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Если НЕ ПустаяСтрока(Текст) Тогда
ДанныеВыбора = ПолучитьСписокЗначенийДляПодстановки(Текст, "ТипТовара");
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция ПолучитьСписокЗначенийДляПодстановки(Текст, Свойство=Неопределено)
Список = Новый СписокЗначений;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ЗначенияСвойствОбъектов.Ссылка,
| ЗначенияСвойствОбъектов.Представление
|ИЗ
| Справочник.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
|ГДЕ
| ЗначенияСвойствОбъектов.Владелец В(&ВладелецСписок)
| И (ЗначенияСвойствОбъектов.Наименование ПОДОБНО &Имя
| ИЛИ ЗначенияСвойствОбъектов.Наименование ПОДОБНО &ИмяСПробелами)";
Запрос.УстановитьПараметр("Имя", "%" + Текст);
Запрос.УстановитьПараметр("ИмяСПробелами", "%" + Текст + "[ ]%");
Если Свойство = "ТипТовара" Тогда
ВладелецСписок= Новый Массив;
ВладелецСписок.Добавить(ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоКоду("000000001"));
ВладелецСписок.Добавить(ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоКоду("000000004"));
КонецЕсли;
Запрос.УстановитьПараметр("ВладелецСписок",ВладелецСписок);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Список.Добавить(Выборка.Ссылка, Выборка.Представление);
КонецЦикла;
Возврат Список;
КонецФункции
В данном примере список значений данные выбора пустой, если уберу отбор на Подобно, то выбирается все по владельцу. Или подскажите как по другому сделать, стандартная обработка данного события не подходит, так как нужно выбирать определенные свойства товаров.
|
|