Каталог решений - Поиск по схожести наименования

Поиск по схожести наименования

Поиск по схожести наименования

В наличии

Данная публикация содержит обработку по поиску ссылок справочника по схожести наименований, либо других текстовых реквизитов.
Тестировалось на версии 1С:Предприятие 8.3 (8.3.24.1368).
Написана как для управляемых, так и для обычных форм.

Категория:

Описание

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

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

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

Возникает вопрос: что значит "схожесть" наименований? Если два элемента названы одинаково то очевидно что схожесть очевидно присутствует. Но часто бывает, что пользователи делают ошибку и функция НайтиПоНаименованию не срабатывает. В Итоге создается два элемента справочника, которые являются по сути одним предметом.

Какие ошибки заполнения могут быть?

1. Замена схожих внешне латинских символов кириллицей и наоборот, например буквы "С". Внешне это выглядит одинаково, но функция НайтиПоНаименованию такого не найдет.

2. Перестановка слов.

3. Синтаксические ошибки

4. Неполное название.

Данная обработка позволяет это найти с некоторыми оговорками.

Принцип работы обработки основан на использования оператора "ПОДОБНО" в запросе к справочнику. Она составляет  необходимый шаблон поиска, согласно настройкам.

Настройки работают следующим образом.

 

 

"Поиск по шаблону" — настройка, которая выполняет запрос по шаблону заданному в строке поиска. При включенной настройке остальные не работают.

"Точное соответствие" — Ищет по точному соответствию строки поиска.

"Игнорирование пробелов" — пробелы при поиске заменяются на "%"

"Игнорировать знаки препинания" — знаки препинания при поиске заменяются на "%"

"Игнорирование схожих латинских символов" — настраивает поиск так, чтобы символы из набора "кеуаросх" считались одинаковыми как на латинице, так и на кириллице. Например, слова "слава" и "cлaвa" считались одинаковыми. Хотя это не так. Первое слово полностью набрано на кириллице, а во втором символы "c","а" — набраны на латинице. При выключенной настройке найдутся оба слова.

"Поиск от каждого слова" — разбивает предложение, набранное в строке поиска на слова и ищет по каждому слову, используя все настройки, кроме "Игнорирование пробелов" и "Игнорировать знаки препинания", поскольку они и будут разбивать предложение на подстроки.

"Точность слева" и "Точность справа", "Точная длина слова" — работают совместно. Они применимы для каждого слова в предложении.

"Точность слева" и "Точность справа" — показывает, сколько букв в процентном выражении слева и справа от половины длины слова будут оставлены, а остальные будут не учитываться.

При этом параметр "Точная длина слова" говорит о том, как будет сопоставлена средняя часть слова.

Пример: "Точность слева" = 80,Точность справа" = 80. "Точная длина слова" = Да.

Возьмем строку поиска: "Самый вкусный арбуз".

Поставим настройку "Поиск от каждого слова" — "Нет". Тогда обработка будет искать по всей строке писка, но при этом в каждом слове будут сопостовляться не все буквы, а только их часть по такому шаблону:

"С___й вк___ый а___з". И кроме наименования "Самый вкусный арбуз" найдется например "Сытый вкусный артуз" и прочие элементы у которых будет одинаковое число букв с одинаковым началом и окончанием. Если выберем "Точная длина слова" = Нет. Тогба шаблоп поиска будет таким "С%й вк%ый а%з". И кроме элемента "Самый вкусный арбуз", "Сытый вкусный артуз" и прочих, ранее найденных, найдутся те, у которых длина слова не совпадает, но совпадают начало и окончание. Например "Сый вкоторый арз".

Обработка тестировалась на 1С:Предприятие 8.3 (8.3.24.1368). На некоторых версиях более младших может работать некорректно, т.к. в них нет функций работы с регулярными выражениями. Но доработать это не сложно. Вам надо исправить только функцию "ЭтоБуква" в модуле объекта, которая возвращает ИСТИНА, если символ является буквой.

Если набор "кеуаросх" вас не устраивает, тогда его можно отредактировать в функциях "ВернутьСхожиеСимволыКириллица" ,"ВернутьСхожиеСимволыЛатиница".

Удачи!

has been added to your cart:
Оформление заказа