1С ERP

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

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

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

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

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

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

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

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

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

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

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

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

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

 

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

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

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