1С:Управление производственным предприятием
1С:Управление торговлей 10
1С:Управление торговлей 11
1С:Бухгалтерия 7.7
Запросы
Доброе утро!
Есть очень старая проблема, с которой все точно сталкивались - это поиск номенклатуры, но по наименованию контрагента.
Например, наименование контрагента "Дренажный насос WR 830 PV", а в вашей номенклатуре есть позиция "Насос дренаж. WR 830 PV"
Вопрос как сделать интеллектуальный поиск, который наибольшей вероятностью укажет на нужную позицию в вашем справочнике?
Пока пришла только идея:
1) разбить наименование поставщика на составляющие: "Дренажный", "насос", "WR", "830", "PV"
2) поискать каждую часть отдельно
3) в результате предложить номенклатуру с наибольшим совпадениям по частям
Просьба №2: Помогите оптимизировать запрос, пожалуйста
Есть очень старая проблема, с которой все точно сталкивались - это поиск номенклатуры, но по наименованию контрагента.
Например, наименование контрагента "Дренажный насос WR 830 PV", а в вашей номенклатуре есть позиция "Насос дренаж. WR 830 PV"
Вопрос как сделать интеллектуальный поиск, который наибольшей вероятностью укажет на нужную позицию в вашем справочнике?
Пока пришла только идея:
1) разбить наименование поставщика на составляющие: "Дренажный", "насос", "WR", "830", "PV"
2) поискать каждую часть отдельно
3) в результате предложить номенклатуру с наибольшим совпадениям по частям
Просьба №2: Помогите оптимизировать запрос, пожалуйста
ВЫБРАТЬ
Номенклатура.Ссылка КАК Ссылка
ПОМЕСТИТЬ табЧасть1
ИЗ
Справочник.Номенклатура КАК Номенклатура
ГДЕ
Номенклатура.Наименование ПОДОБНО "%" + &Наименование + "%"
И НЕ Номенклатура.ЭтоГруппа
И НЕ Номенклатура.ПометкаУдаления
ИНДЕКСИРОВАТЬ ПО
Ссылка
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
Номенклатура.Ссылка КАК Ссылка
ПОМЕСТИТЬ табЧасть2
ИЗ
Справочник.Номенклатура КАК Номенклатура
ГДЕ
Номенклатура.Наименование ПОДОБНО "%" + &Наименование1 + "%"
И НЕ Номенклатура.ЭтоГруппа
И НЕ Номенклатура.ПометкаУдаления
ИНДЕКСИРОВАТЬ ПО
Ссылка
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
Номенклатура.Ссылка КАК Ссылка
ПОМЕСТИТЬ табЧасть3
ИЗ
Справочник.Номенклатура КАК Номенклатура
ГДЕ
Номенклатура.Наименование ПОДОБНО "%" + &Наименование2 + "%"
И НЕ Номенклатура.ПометкаУдаления
И НЕ Номенклатура.ЭтоГруппа
ИНДЕКСИРОВАТЬ ПО
Ссылка
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
Номенклатура.Ссылка КАК Ссылка
ПОМЕСТИТЬ табЧасть4
ИЗ
Справочник.Номенклатура КАК Номенклатура
ГДЕ
Номенклатура.Наименование ПОДОБНО "%" + &Наименование3 + "%"
И НЕ Номенклатура.ПометкаУдаления
И НЕ Номенклатура.ЭтоГруппа
ИНДЕКСИРОВАТЬ ПО
Ссылка
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
Подзапрос.Ссылка КАК Номенклатура,
Подзапрос.Вес КАК Вес
ИЗ
(ВЫБРАТЬ
Номенклатура.Ссылка КАК Ссылка,
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ табЧасть1.Ссылка) + КОЛИЧЕСТВО(РАЗЛИЧНЫЕ табЧасть2.Ссылка) + КОЛИЧЕСТВО(РАЗЛИЧНЫЕ табЧасть3.Ссылка) + КОЛИЧЕСТВО(РАЗЛИЧНЫЕ табЧасть4.Ссылка) КАК Вес
ИЗ
Справочник.Номенклатура КАК Номенклатура
ЛЕВОЕ СОЕДИНЕНИЕ табЧасть1 КАК табЧасть1
ПО Номенклатура.Ссылка = табЧасть1.Ссылка
ЛЕВОЕ СОЕДИНЕНИЕ табЧасть2 КАК табЧасть2
ПО Номенклатура.Ссылка = табЧасть2.Ссылка
ЛЕВОЕ СОЕДИНЕНИЕ табЧасть3 КАК табЧасть3
ПО Номенклатура.Ссылка = табЧасть3.Ссылка
ЛЕВОЕ СОЕДИНЕНИЕ табЧасть4 КАК табЧасть4
ПО Номенклатура.Ссылка = табЧасть4.Ссылка
ГДЕ
(НЕ табЧасть1.Ссылка ЕСТЬ NULL
ИЛИ НЕ табЧасть2.Ссылка ЕСТЬ NULL
ИЛИ НЕ табЧасть3.Ссылка ЕСТЬ NULL
ИЛИ НЕ табЧасть4.Ссылка ЕСТЬ NULL)
СГРУППИРОВАТЬ ПО
Номенклатура.Ссылка
ИМЕЮЩИЕ
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ табЧасть1.Ссылка) + КОЛИЧЕСТВО(РАЗЛИЧНЫЕ табЧасть2.Ссылка) + КОЛИЧЕСТВО(РАЗЛИЧНЫЕ табЧасть3.Ссылка) + КОЛИЧЕСТВО(РАЗЛИЧНЫЕ табЧасть4.Ссылка) > 1) КАК Подзапрос
ГДЕ
НЕ Подзапрос.Ссылка.ЭтоГруппа
И НЕ Подзапрос.Ссылка.ПометкаУдаления
УПОРЯДОЧИТЬ ПО
Вес УБЫВ
ПоказатьПо теме из базы знаний
- Загрузка прайс-листов из Эксель-таблиц. Имеет мощную поисковую функцию по товарам.
- Обмен прайс-листами и анализ ценовой политики конкурентов, партнёров и поставщиков в программе 1С:Предприятие
- Добавление новой схемы поиска участника банковской операции в Клиенте-банке
- Интеллектуальная загрузка в 1С счетов, накладных из файлов электронных таблиц (типа XLS), не требующая настроек, с указанием номеров строк и колонок. Для примера обработка загрузки в документ "Поступление товаров и услуг" для "Управление Торговлей 10.3"
- Умная Загрузка Номенклатуры - с автопоиском реквизитов из Excel, загрузка изображений и документов
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Полнотекстовый поиск работает в бухне - примером может являться контрагент.
Для реализации Вашего метода можно использовать временную таблицу с наименованиями контрагентов, например, и функцию повторного использования, которая получает эту таблицу. Искать по таблице можно хть в 1С (если не очень много контрагентов), хоть в SQL.
Я делал так: пробел, точка, дефис - новое слово. все буквы делал маленькие. В контрагенте сделал табличную часть, там сохранял маленькими буквами наименование, включая транслитерацию, удалял пробелы, точки, дефисы и прочие спецсимволы. Ну а дальше на подобно все отрезки, в дальше сортировал по позиции соответствия каждого слова (чем меньше позиция - тем выше в рейтинге вывод). Меньше трех букв не искал. Экономический эффект - на 90% сократился подбор "неправильных" контрагентов (300к штук было).
Для реализации Вашего метода можно использовать временную таблицу с наименованиями контрагентов, например, и функцию повторного использования, которая получает эту таблицу. Искать по таблице можно хть в 1С (если не очень много контрагентов), хоть в SQL.
Я делал так: пробел, точка, дефис - новое слово. все буквы делал маленькие. В контрагенте сделал табличную часть, там сохранял маленькими буквами наименование, включая транслитерацию, удалял пробелы, точки, дефисы и прочие спецсимволы. Ну а дальше на подобно все отрезки, в дальше сортировал по позиции соответствия каждого слова (чем меньше позиция - тем выше в рейтинге вывод). Меньше трех букв не искал. Экономический эффект - на 90% сократился подбор "неправильных" контрагентов (300к штук было).
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот