Поиск в справочниках по "неточному" наименованию

19.12.12

Задачи пользователя - Поиск данных

Часто возникает задача найти элемент справочника по его "неточному" наименованию.
Это может быть:
- при загрузке данных из другой базы или внешнего файла
- при проверке на возможность "двойников" в справочнике
- ....

Обработка пытется решить эту проблему с использованием нескольких способов поиска с постепенным увеличением их сложности

Скачать исходный код

Наименование Файл Версия Размер
неточныйПоиск.epf
.epf 262,46Kb
95
.epf 262,46Kb 95 Скачать

Данная обработка производит поиск в несколько этапов по уровню возрастания сложности:
1 На первом этапе просто ищется  элемент справочника  по наименованию 

2 Если элемент  не найден, строка наименования разбивается на слова и ищется запросом по конструкции  "где наименование подобно "слово1%слово2%слово3%..." . Таким образом решается проблема "лишних пробелов" между словами 

3 Если элемент  не найден, составляется массив всех возможных перестановок слов и процедура п.2 повторяется для каждой из возможных перестановок

4. Если   элемент  не найден, используется поиск по неточному наименованию с использованием внешней компоненты StrMatch.dll. Компонента "зашита" в макет и не  требует копирования и регистрации себя на компьютере пользователя ПРИ УСЛОВИИ НАЛИЧИЯ У ПОЛЬЗОВАТЕЛЯ ПРАВ ЛОКАЛЬНОГО АДМИНИСТРАТОРА. Если у пользователя таких прав нет, тогда необходимо выгрузить  компоненту в файл с помощью кнопки "выгрузить ДЛЛ" и попросить вашего системного администратора поместить ее в папку исполняемых файлов 1С и зарегистрировать командой RegSvr32. 

См. также

Быстрый поиск дублей с четким/нечетким поиском по любому сочетанию реквизитов/реквизитов таб. частей с отбором и быстрой заменой значений в ЛЮБЫХ базах 8.1-8.3 (УТ 10.3, БП 2, ЗУП 2.5, КА 1.1, УТ 11, БП 3, УНФ 1.6/3.0, КА 2, ЗУП 3 и т.д.)

Поиск данных Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Платные (руб)

Обработки помогут Вам легко и, главное, быстро (в 5 раз и быстрее штатной обработки 1С), выполнить поиск дублирующих данных в Ваших базах 1С на платформах 8.1-8.3. Это позволит уменьшить объем лишней информации в справочниках и документах, планах видов характеристик и др., упростит работу с данными пользователям. А так же можно, одним нажатием, узнать в каких ссылочных объектах есть вообще дубли! Понятное расположение команд и настроек, в сочетании с описанием и справкой, еще упростят процесс. А так же обновления Вы получаете бесплатно в течение года с момента приобретения данных обработок! (Обновление от 27.11.2023, версия 6.12)

10800 руб.

14.05.2012    155600    327    252    

559

Журнал изменений с восстановлением состояния ссылочных объектов и архивацией по HTTP / COM (расширение + конфигурация, 8.3.14+, ЛЮБАЯ конфигурация)

Архивирование (backup) Журнал регистрации Поиск данных Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 1С:Управление торговлей 11 Платные (руб)

База данных «сама» меняет данные в документах/справочниках? Тогда данный журнал изменений для Вас! Практически не влияет на скорость записи объектов за счет быстрого алгоритма! Скорость работы почти в 2 раза выше типового механизма "История изменений"! Позволяет следить за изменениями и удалением в любых ссылочных объектах конфигурации, с возможностью архивации по HTTP(!) или COM, и сверткой данных. А так же, может восстановить состояние реквизитов (значения) до момента изменения или удаления объекта из базы. Есть ДЕМО-база где можно самостоятельно протестировать часть функционала! Работает на любых платформах выше 8.3.14+ и любых конфигурациях! Версия 3.1 от 24.08.2023!

21600 руб.

15.05.2017    42641    10    24    

38

Кто такая Мантикора?

Поиск данных Платформа 1С v8.3 Россия Абонемент ($m)

Статья об опыте развертывания и интеграции с базой данных Manticore Search для быстрого полнотекстового поиска.

1 стартмани

30.11.2023    3239    andreysidor4uk    16    

46

PowerOffice

Поиск данных Корректировка данных Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

PowerOffice - обработка для поиска, просмотра и обработки данных для пользователей. Доступ к объектам на просмотр и редактирование данных определяется правами пользователя.

1 стартмани

05.06.2023    1971    23    PowerBoy    1    

15

Получение ссылки по бинарной строке PostgreSQL или MSSQL

Поиск данных Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

Получение ссылки в 1С по бинарной строке из PostgreSQL в виде строки формата bytea или из MSSQL в виде шестнадцатиричной строки. Кроме ссылочных объектов ссылки могут быть получены и для перечислений. Это может быть полезно при анализе логов журнала регистрации или СУБД.

1 стартмани

04.04.2023    2637    2    berserg    2    

12

Поиск документов с ошибками проведения, универсальный

Поиск данных Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

Обработка позволяет найти проведенные документы без движений и, наоборот, НЕ проведенные документы с движениями. Подходит для любой конфигурации.

1 стартмани

18.08.2022    3026    24    KVIKS    3    

10

Поиск и замена значений + Поиск дублирующихся элементов справочников с подключением к внешней базе

Поиск данных Корректировка данных Платформа 1С v8.3 Управляемые формы Платформа 1C v8.2 Конфигурации 1cv8 Платные (руб)

Обработка предназначена для гибкого поиска и дальнейшей замены дублей справочников, документов, а также планов видов расчетов и планов видов характеристик. В обработку включена возможность проверки наличия ссылки во внешней базе (по УИДу), поиска дублей с предварительным отбором, а также произвольной обработки реквизитов перед поиском (например, возможно удалить определенные символы из наименования).

3600 руб.

30.03.2022    8614    3    0    

5
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. aet 54 19.12.12 16:39 Сейчас в теме
А почему у Вас 4 пункт через dll, а не средствами полнотекстового поиска 1с?
+
2. Torin99 283 19.12.12 16:58 Сейчас в теме
Видимо, потому что не очень понимаю как сделать такую работу "средствами полнотекстового поиска". Насколько я понимаю, средства полнотекстового поиска предлагают функционал, схожий с поиском по шаблонам -- это меня не устраивает. ДЛЛ-ка ищет не по шаблону, она предлагает некую метрику подобия двух тестовых строк -- в частности эта ДЛЛ-ка предлагает n-граммную метрику -- это значительно лучше чем любые шаблоны. Сейчас я пишу ДЛЛ-ку на основе т.н. "расстояния Левенштейна" -- она будет работать несколько лучше...
+
3. Torin99 283 19.12.12 17:13 Сейчас в теме
Вот смотрите, цитата
"# - нечеткий поиск слов с заданным количеством отличий от указанного (если не указано, то = 1); пример: запрос "#Система" найдет "систама", "сивтема"; запрос "Система#2" найдет "ситтама", "сеттема";"

А вот найдет ли запрос "Система#2 слово "ситемас" и какое с точки зрения механизма полнотекстового поиска здесь количество отличий? По Левенштейну - ровно 2.
+
4. aet 54 19.12.12 17:41 Сейчас в теме
(3) в нулевом сообщении вопрос, не критика. Думаю, вдруг фишка есть, а неудобства dll известны. Если б я сам хорошо знал механизм полнотекстового поиска, как-то ниразу на 8ке не понадобился. Почему-то думаю там тот же Левенштейн, не встречал что внутри.
Как-то просто написал на 1С его алгоритм для себя, могу найти/кинуть если интересно :)
+
5. Torin99 283 19.12.12 17:51 Сейчас в теме
(4) aet, Вы написали функцию вычисления "расстояния Левенштейна" для двух произвольных строк на 1с-ке? Конечно, нужно. Можно мне на мою почту -- torin11@gmail.com? Если воспользуюсь в следующей обработке, обязательно укажу Вас как соавтора.
А там, к сожалению, не Левенштейн. Во всяком случае "Система#2 слово "ситемас" НЕ НАХОДИТ - а по Левенштейну должно находить...
Кстати, а Вы знаете что Владимир Иосифович Левенштейн до сих пор жив, относительно здоров и спокойно работает в Келдышевском институте?
+
6. Yashazz 4722 19.12.12 18:06 Сейчас в теме
(5) Ну, я писал расстояние Левенштейна на 1С. И полнотекстовый поиск по таблице значений делал. Ещё на 8.1 был грех. Если надо, могу покопаться и прислать.
+
7. aet 54 19.12.12 18:34 Сейчас в теме
(5) Отправил почтой, там функция небольшая, можно тут сообщением выложить.
О личности В.И. Левенштейна к сожалению ничего не знал, спасибо.
+
8. Torin99 283 19.12.12 19:55 Сейчас в теме
Получил, смотрю...
Большое спасибо!!!
+
9. petrov_al 10 20.12.12 14:42 Сейчас в теме
В синтаксе посмотрите МенеджерПолнотекстовогоПоиска и его возможности, скорее все большая часть того что вы придумываете там уже заложена. Ниже отрывок из справки.

МенеджерПолнотекстовогоПоиска.СоздатьСписок (FullTextSearchManager.CreateList)
МенеджерПолнотекстовогоПоиска (FullTextSearchManager)
СоздатьСписок (CreateList)
Синтаксис:

СоздатьСписок(<СтрокаПоиска>, <РазмерПорции>)
Параметры:

<СтрокаПоиска> (необязательный)

Тип: Строка.
Строка для поиска в реквизитах данных (содержит как слова, которые нужно найти, так и поисковые операторы - И, ИЛИ, НЕ, РЯДОМ, скобки, кавычки).
Поиск может осуществляться по нескольким словам, с использованием поисковых операторов и поиском по точной фразе.
В строке ввода допускается использование следующих поисковых операторов:
И (AND или #) - поиск данных, содержащих все слова; пример: "запись И документ" - в реквизитах должны быть и "проведение" и "документ" (с учетом морфологии);
ИЛИ (OR или | или ,) - поиск хотя бы одного слова из перечисленных; пример: "запись ИЛИ документ" - в реквизитах должно быть хотя бы одно из слов "запись" или "документ";
НЕ (NOT или ~) - поиск данных, в реквизитах которых есть первое слово, но нет второго; пример: "закрытие НЕ месяц" - будут найдены все, содержащие "закрытие", но не содержащие слова "месяц". Использование "~" в начале строки не допускается;
РЯДОМ/n (NEAR/[+/-]n) - поиск данных, содержащих в одном реквизите указанные слова с учетом морфологии на расстоянии n слов между словами.
Знак указывает, в каком направлении от первого слова будет искаться второе слово ("+" – после первого; "-" – до первого слова).
Если знак не указан, то будет найдены данные, содержащие указанные слова на дистанции n слов друг о друга. Порядок слов не имеет значения.
"фен РЯДОМ/3 воздух" - будут найдены данные, в которых "воздух" находится не более 3-х слов до или после "фен";
фен РЯДОМ/+3 воздух - будут найдены данные, в которых "воздух" находится не более 3-х слов после "фен";
фен РЯДОМ/-3 воздух - будут найдены данные, в которых "воздух" находится не более 3-х слов перед "фен".
РЯДОМ(NEAR) - упрощенный оператор дистанции: оба слова расположены не далее, чем в 8-ми словах друг от друга; пример: "проведение РЯДОМ документ";
"" (текст в кавычках) - поиск точной с учетом морфологии фразы , пример: "проведение документа" - эквивалентно: проведение /1 документа;
() - группировка слов (сколько угодно уровней вложенности); пример: "(проведение | выписка) # (счета, документа)";
* - поиск с использованием группового символа (замена окончания слова). Должно быть введено более 1 значащего символа; пример: "доку*" - найдет "документ", "документировать", "документальный" и др.;
# - нечеткий поиск слов с заданным количеством отличий от указанного (если не указано, то = 1); пример: запрос "#Система" найдет "систама", "сивтема"; запрос "Система#2" найдет "ситтама", "сеттема";
! - поиск с учетом синонимов русского, английского и украинского языков. "!" ставится перед соответствующим словом; пример: поиск "!красный кафель", найдет еще и "алый кафель" и "коралловый кафель".
Если не указано никаких операторов (слова набраны через пробел), то программа осуществляет поиск всех слов из запроса с использованием оператора И.
Замечание 1. Написание операторов И (AND), ИЛИ (OR), НЕ (NOT), РЯДОМ (NEAR) допускается только в верхнем регистре.
Замечание 2. Операторы не используются как унарные (в начале строки поиска). Например, нельзя сделать выбор всех глав, в которых отсутствует указанный текст.
Ограничение. При использовании нечеткого и группового поиска (операторы "*" и "#") может быть найдено несколько слов. Общее число найденных слов не может превышать 300.
<РазмерПорции> (необязательный)

Тип: Число.
Количество результатов в одной порции. Например, 30.
Значение по умолчанию: 20
Возвращаемое значение:

Тип: СписокПолнотекстовогоПоиска.

Описание:

Создает объект СписокПолнотекстовогоПоиска. После создания необходимо вызвать метод ПерваяЧасть - чтобы получить результаты поиска.

Доступность:

Сервер, толстый клиент, внешнее соединение.
Примечание:

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

Показать
+
10. Torin99 283 20.12.12 15:02 Сейчас в теме
(9) petrov_al, я не хочу с Вами спорить, просто МенеджерПолнотекстовогоПоиска оперирует в терминах Левенштейна только одной операцией "замена" - т.е. (дальше цитата из справки) -- "запрос "Система#2" найдет "ситтама", "сеттема";" -- иными словами все те слова, которые получаются из слова "система" двумя ЗАМЕНАМИ одного символа на другой. Но вот "ситемас" он не найдет - хотя по Левенштейну здесь расстояние равно как раз 2 - только не 2 ЗАМЕНЫ, а 1 ВСТАВКА + 1 УДАЛЕНИЕ = 2.
Поймите, с точки зрения ЧЕЛОВЕЧЕСКИХ ошибок растояние по Левенштейну намного более ПРАВИЛЬНО, чем логика работы Менеджера Полнотекстового Поиска. На самом деле еще точнее работают т.н "фонетические алгоритмы", которые использует, например, Гугл, но как использовать их внутри 1С-ки я пока не понимаю...
Логика "замены" работает только для исправления т.н "ошибок двоечников" - т.е когда человек пишит "Ы" вмести "И", "А" вместо "О". Но в реальности очень большАя часть ошибок -- это "ошибки невнимательности", когда просто пропушена буква или добавлена лишняя из-за ошибок работы с клавиатурой.
+
11. morin 58 13.04.19 00:31 Сейчас в теме
Интересует компонента StrMatch.dll.
Вы как-то дорабатывали её под v8 или на толстом клиенте удалось запустить исходную (которая разрабатывалась по v7.7)? На управляемых формах работать будет? Исходные коды доступны?
+
12. Torin99 283 15.04.19 16:42 Сейчас в теме
Нет, не переделывал, спокойно запускается под толстым клиентом. Будет работать под любым клиентом, но на управляемых формах главное правильно передать условия и получить ответ
+
13. heroinepta 11.11.19 09:45 Сейчас в теме
При поиске по номенклатуре зависает навечно...
Ищу " Метчик ручн.компл. М 4 х0.7 9ХС ТМ*"
В номенклатуре "Метчик ручной 4 х 0,7 2шт.комп."
Но даже если пытаюсь помочь и ищу "Метчик 4 х 0.7" нужный результат в вариантах не высвечивается. К тому же появляются пустые строки. Допиливать и допиливать еще обработку)
+
14. user1340552 14.01.20 13:44 Сейчас в теме
Заинтересованы в реализации чего-то подобного в существующей конфигурации. Свяжитесь со мной, пожалуйста 9923669@bk.ru
+
15. maxxivan 06.12.20 11:32 Сейчас в теме
Для управляемых форм нет реализации ?
+
Оставьте свое сообщение