Нечеткий поиск по штрихкоду

17.05.17

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

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

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

Наименование Файл Версия Размер
Нечеткий поиск по штрихкоду:
.epf 9,41Kb
1
.epf 9,41Kb 1 Скачать

Делюсь обработкой, вдруг кому понадобится. Обработка написана для УТ 11.2, но подойдет для любой конфигурации, где есть таблица "Штрихкоды номенклатуры" с полями "Штрихкод, Номенклатура".

Для оценки "похожести" строк используется расстояние Левенштейна. Алгоритм достаточно простой, но хорошо показал себя на практике.

Обработка в цикле перебирает все записи из регистра сведений "Штрихкоды номенклатуры" и для каждого штрихкоды вызывается функция, которая возвращает расстояние между словами. Если расстояние не превосходит заданного параметра (для себя установил значение 3), то штрихкод добавляется в таблицу найденных значений.

 При необходимости код можно доработать, добавив условие, которое будет отбразывать заранее неподходящие по длине штрихкоды.

Код основной функции:

Функция РасстояниеЛевенштейна(Строка1, Строка2)
	
	л1 = СтрДлина(Строка1) + 1;
	л2 = СтрДлина(Строка2) + 1;
	
	Если л1 = 1 ИЛИ л2 =1 Тогда
		Возврат 449;
	КонецЕсли;
	
	м = Новый Массив(л1 + 1, л2 + 1);
	
	Для ы = 0 По л1 Цикл
		м[ы][0] = ы;
	КонецЦикла;
	
	Для ы = 0 По л2 Цикл
		м[0][ы] = ы;
	КонецЦикла;
	
	Для ы1 = 1 По л1 Цикл
		Для ы2 = 1 По л2 Цикл
			дифф = Сред(Строка1, ы1, 1) = Сред(Строка2, ы2, 1);
			м[ы1][ы2] = Мин(м[ы1-1][ы2] + 1, м[ы1][ы2-1] + 1, м[ы1-1][ы2-1] + ?(дифф, 0, 1));
		КонецЦикла;
	КонецЦикла;
	
    Возврат м[л1][л2];

КонецФункции

обработка поиск номенклатуры поиск по штрихкоду

См. также

Автоматический заказ поставщику в 1С: загрузка прайсов и анализ цен поставщиков для УТ 10.3, УТ 11, КА2, УНФ, УПП, ERP, Розница 2

Бюджетирование и планирование Оптовая торговля Розничная торговля Логистика, склад и ТМЦ Анализ продаж Платформа 1С v7.7 Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Беларусь Украина Россия Казахстан Управленческий учет Платные (руб)

Система управления запасами для 1С помогает работать с запасами правильно: автоматически рассчитывает потребность и делает заказ поставщику, загружает прайсы, перемещает товары по филиалам, анализирует продажи и позволяет управлять ассортиментом.

28500 руб.

21.04.2017    91193    111    40    

199

ЕГАИС++. Опт, производство, импорт

Оптовая торговля Розничная торговля Обмен с ГосИС Платформа 1С v8.3 1С:Управление торговлей 10 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Рестораны, кафе и фаст-фуд Россия Бухгалтерский учет Управленческий учет Акцизы Платные (руб)

Полнофункциональное расширение (ранее известное как Модуль 1С-ЕГАИС) для взаимодействия типовых конфигураций 1С и ЕГАИС, предоставляющее максимум возможностей по работе с УТМ. Получение и отправка ТТН, отправка акта о постановке на баланс и акта о списании. Получение остатков. Загрузка и сопоставление номенклатуры и контрагентов. Оправка в ЕГАИС отчетов о производстве и импорте.

8970 руб.

15.12.2015    166765    705    362    

391

Загрузка номенклатуры из Excel в УТ11, КА 2, ERP 2, Розница 2. Дополнительные реквизиты и сведения, характеристики, картинки, цены, остатки

Загрузка и выгрузка в Excel Розничная торговля Логистика, склад и ТМЦ Ценообразование, анализ цен Прайсы Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Розница 2 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Управленческий учет Платные (руб)

Загрузка из файлов xls, xlsx, ods, csv, mxl в УТ11, КА 2, ERP 2, Розница 2. Задействованы все возможности конфигурации - заполнение реквизитов номенклатуры, дополнительных реквизитов и сведений, характеристики, доп.реквизиты и сведения характеристик. Дополнительные обработки для расширения возможностей.

10560 руб.

29.10.2014    211695    630    526    

446

AS WMS: автоматизация склада с адресным хранением с помощью ТСД

Логистика, склад и ТМЦ Платформа 1С v8.3 Россия Платные (руб)

Подсистема управления складом AS WMS для конфигураций на платформе 1С 8. AS WMS – готовое решение для эффективного управления адресным складом. Внедрение системы AS WMS способствует быстрому отбору товара, ускорению инвентаризации, снижению зависимости от персонала, исключению пересорта. AS WMS встраивается в любую конфигурацию на платформе 1С 8 и работает как единая система без обменов. В учетной системе нет необходимости менять процессы под AS WMS (например, вводить ордерную схему), AS WMS использует стандартные документы по товародвижению вашей учетной системы.

40000 руб.

26.07.2023    3762    14    0    

11

Модуль "Ответственное хранение" или фулфилмент (FBS / FBO) для 1С:УТ 11.5, КА 2.5, ERP 2.5

Логистика, склад и ТМЦ Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Оптовая торговля, дистрибуция, логистика Управленческий учет Платные (руб)

Модуль "Ответственное хранение" для 1С (УТ 11.5, КА 2.5, ERP 2.5) позволяет организовать учет ответственного хранения товаров с весовыми характеристиками, в том числе со сроком годности и личным кабинетом Поклажедателя. Модуль реализован в виде расширения конфигурации, устанавливается в режиме 1С:Предприятие 8 за 5 минут по инструкции, что позволяет оставить конфигурацию 1С на стандартной поддержке и продолжать получать стандартные обновления от фирмы "1С".

60000 руб.

09.06.2020    35076    27    57    

54

SALE! 10%

Перенос данных из УТ 10.3 в УТ 11 / КА 2 / ERP 2. Переносятся документы, справочники и остатки

Обмен между базами 1C Взаиморасчеты Оптовая торговля Логистика, склад и ТМЦ Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 1С:Управление торговлей 10 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Управленческий учет Платные (руб)

Можно проверить до покупки, оставьте заявку! Воспользовались более 268 компаний! Перенос в продаже с 2015г., и мы постоянно работаем над его развитием. Перенос данных из УТ 10.3 в УТ 11 | из УТ 10.3 в КА 2 | из УТ 10.3 в ERP. Предлагаем качественное и проверенное временем решение для перехода с УТ 10.3. Можно перенести начальные остатки, нормативно-справочную информацию и все возможные документы. При выгрузке можно установить отбор по периоду, организациям и складам. При выходе новых релизов конфигураций 1C оперативно выпускаем обновление переноса данных.

50722 45650 руб.

24.04.2015    191017    270    239    

270
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. MSConfig 17.05.17 15:27 Сейчас в теме
>> Обработка в цикле перебирает все записи из регистра сведений "Штрихкоды номенклатуры" и для каждого штрихкоды вызывается функция
Вы делали какие-нибудь замеры времени выполнения такого поиска? Сколько будет работать такая функция, если в базе скажем 100 тыс. шк?
2. KazanKokos 10 17.05.17 15:29 Сейчас в теме
(1) вопрос хороший :) а вообще если посмотреть на код, его легко можно всунуть в запрос. тогда проблемы скорости не будет )
3. MSConfig 17.05.17 15:35 Сейчас в теме
(2) да, вариант с запросом был бы более интересным.
5. harmer 1 17.05.17 19:57 Сейчас в теме
(1)
В рабочей базе порядка 20к записей, алгоритм на глаз отрабатывает за 4-5 сек (более точного анализа не производилось, так как время работы устраивает). При увеличении количества ШК время будет увеличиваться пропорционально, поэтому на объемах данных порядка 100к придется задуматься об оптимизации (выбрать другой алгоритм или оптимизировать данный). Возможно, когда мы достигнем такого объема, кто-то уже напишет решение в комментариях).

(2)
Обработка в основном используется при ревизии, когда сотрудники вручную забивают ШК или переписывают их на листок. Естественно, в таких случаях возможны ошибки. Обработка используется пару раз в месяц для поиска одного-двух штрихкодов, поэтому спортивного интереса минимизировать время работы не возникало.

Спасибо за ссылку. Разборы строк в запросе выглядит ужасно и требует гораздо бОльшего времени на разработку, чем переписать известный алгоритм на 1С. Если кто-то решит перенести все в запрос, скажу ему огромное спасибо и попробую сравнить скорость работы.
6. KazanKokos 10 18.05.17 09:36 Сейчас в теме
(5) а "ы" "л" "м" это чтобы враг не раскрыл военную тайну?:)
7. harmer 1 18.05.17 11:43 Сейчас в теме
(6) Конечно! Когда в коде присутствуют такие переменные, сложность алгоритма возрастает в несколько раз, что автоматически увеличивает гордость автора =)
4. KazanKokos 10 17.05.17 15:51 Сейчас в теме
автор - посмотри тут http://infostart.ru/public/558079/ . вообще на ИС полно таких запросов. и в комментах еще попроще кинули, но в нем сложно разобраться. может поможет сделать все одни запросом
8. пользователь 23.05.17 10:21
Сообщение было скрыто модератором.
...
Оставьте свое сообщение