Полнотекстовый поиск в справочнике Партнеры

в 1С ERP (как минимум в моей не самой свежей версии) в форме списка справочника "Партнеры" присутствует поле поиска:

 ... подобие "полнотекстового поиска" в 1С! Думаю, многие сталкивались с такой ситуацией: вводишь первые несколько символов слова и ожидаешь, что вот... сейчас(!) ... я увижу список партнеров, которые в наименовании содержат часть этого слова... НО... ничего не выходит.

А все потому, что поиск в этом случае не работает, вернее, работает не так, как ожидается. Если введете слово целиком, то результат получите. А если часть слова... то ничего не получите.

Покопавшись в обработчике в коде, из процедуры 

СтрокаПоискаПриИзменении(Элемент)

можно дойти до того места, где будет формироваться список найденных элементов:

СписокПоиска = ПолнотекстовыйПоиск.СоздатьСписок(СтрокаПоиска, РазмерПорции);

А далее, уже в справке самой же 1С для метода СоздатьСписок менеджера  МенеджерПолнотекстовогоПоиска можно увидеть, что в строке поиска допускается использование поисковых операторов, таких как: И, ИЛИ, НЕ, * и т.д. (см. справку 1С). Но если операторы не указаны, то в данном случае метод отрабатывает как поиск слова целиком, а не части слова. Поэтому, необходимо, чтобы поиск работал корректно с точки зрения пользователя, в конце части слова всегда приписывать  *-ку. Т.е. не "Партне", а "Партне*". 

Или немного модифицировать код: 

СписокПоиска = ПолнотекстовыйПоиск.СоздатьСписок(СтрокаПоиска + "*", РазмерПорции);

При желании можно сделать и красивее, но смысл, думаю, понятен.

ЗЫ: самое интересное, что поиск в списке справочника по CTR+F отрабатывает и по части слова. Поэтому, либо не нужно было выводить поле поиска на видное место списка, либо сделать, чтобы оно корректно отрабатывало.

 


Печать   E-mail

Оставлять комментарии могут только зарегистрированные пользователи

Если заметили ошибку, выделите фрагмент текста и нажмите Ctrl+Enter

Еще почитать: