Имя: Пароль:
1C
1С v8
Полнотекстовый поиск в поле ввода
0 Wefast
 
04.02.21
11:54
ЗУП 3

Поле ввода начислений.

У начислений стоит поиск по любой части строки.

Поиск в поле ввода все равно происходит только по началу строки.
При этом в форме списка поиск нормально работает.

Включить использование полнотекстового поиска. Ничего не изменилось.
Обновил индекс полнотекстового поиска - ничего не изменилось
Программно в событие поля АвтоПодбор прописал использования полнотекстового поиска и поиска по любой части строк. Ничего не изменилось.

Что я собственно делаю не так?
1 vde69
 
04.02.21
11:58
поиск и полнотекстовый поиск - это разные механизмы, и у них даже формы разные...

попробуй открыть специальную форму для полнотекстового поиска и там поискать
2 Wefast
 
04.02.21
12:19
(1) ясно, а в поле ввода как подобие полнотекстового поиска сделать?
3 vde69
 
04.02.21
12:29
(2) штатно - никак

можешь вывести элемент отбора с условием "подобно", но во первых его не везде можно наложить, во вторых он будет работать только по одному полю.

еще можно переделать форму и сделать свой динамический список с параметрами (много где видел, но работает не очень дружественно)

еще можно использовать стандартный механизм "критерии отбора"
4 Wefast
 
04.02.21
12:30
В событие АвтоПодбор

&НаКлиенте
Процедура РаботыВидОплатыАвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)
    МассивНачислений = ВидОплатыСписок(Текст);
    
    ДанныеВыбора = Новый СписокЗначений;
    ДанныеВыбора.ЗагрузитьЗначения(МассивНачислений);
    СтандартнаяОбработка = Ложь;
КонецПроцедуры

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