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

17.05.17

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

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

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Нечеткий поиск по штрихкоду:
.epf 9,41Kb
1 1 850 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Делюсь обработкой, вдруг кому понадобится. Обработка написана для УТ 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С v8.3 1С:Управление торговлей 10 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Рестораны, кафе и фаст-фуд Россия Бухгалтерский учет Управленческий учет Акцизы Платные (руб)

Автоматизация учета ЕГАИС в 1С для оптовой торговли, производства и импорта алкогольной продукции. Получение и отправка ТТН, отправка акта о постановке на баланс и акта о списании. Получение остатков. Загрузка и сопоставление номенклатуры и контрагентов. Оправка в ЕГАИС отчетов о производстве и импорте.

8970 руб.

15.12.2015    179035    1192    374    

416

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

Программа позволяет организовать учет ответственного хранения товаров с весовыми характеристиками, в том числе со сроком годности и личным кабинетом Поклажедателя. Модуль реализован в виде расширения конфигурации, устанавливается в режиме 1С:Предприятие 8 за 5 минут по инструкции, что позволяет оставить конфигурацию 1С на стандартной поддержке и продолжать получать стандартные обновления от фирмы "1С".

89900 руб.

09.06.2020    45801    40    60    

76

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

Решение создано для помощи разработчикам, интеграторам и другим заинтересованным лицам по настройке системы маркировки обуви, одежды, лекарств, табака, фото, молока, духов(парфюма), питьевой воды, велосипедов и шин. Задавайте вопросы по работе с ЦРПТ, GS1, ЭДО, Национальным каталогом, накоплен опыт и знания по данным темам.

24000 руб.

18.03.2019    117716    43    115    

188

SALE! 10%

Загрузка и выгрузка в Excel Оптовая торговля Бухгалтер Пользователь 1С v8.3 Управляемые формы 1C v8.2 1С:Бухгалтерия 2.0 1С:Бухгалтерия 3.0 1С:Управление производственным предприятием 1С:ERP Управление предприятием 2 1С:Управление холдингом 1С:Комплексная автоматизация 1.х 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 1С:Управление торговлей 10 1С:Управление торговлей 11 1С:Розница 2 1С:Розница 3.0 Бухгалтерский учет Управленческий учет Платные (руб)

Универсальная обработка для загрузки документов из Excel в 1С. Забудьте о ручном вводе: загружайте документы из Excel в 1С за секунды! Не требует указания параметров (номера колонок, номер первой строки таблицы и т.д.) и предварительной настройки. Просто выбираете файл эксель, документ 1С и нажимаете кнопку "Загрузить"

8000 руб.

09.11.2016    262331    1160    940    

1087

Информационная безопасность Поиск данных ServiceDesk, HelpDesk Журналы и реестры данных 8.3.14 Россия Бухгалтерский учет Бюджетный учет Налоговый учет Управленческий учет Платные (руб)

Полный контроль над изменениями в 1С без нагрузки на вашу базу. Мгновенный доступ к истории изменений, удобное сравнение и откат данных в один клик. Простой отчет с визуальным отображением изменений Откат на любую версию объекта в два клика История изменения данных хранится во внешней базе

180000 руб.

05.09.2025    1684    1    1    

3

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

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

12240 руб.

29.10.2014    226683    712    528    

481
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. MSConfig 17.05.17 15:27 Сейчас в теме
>> Обработка в цикле перебирает все записи из регистра сведений "Штрихкоды номенклатуры" и для каждого штрихкоды вызывается функция
Вы делали какие-нибудь замеры времени выполнения такого поиска? Сколько будет работать такая функция, если в базе скажем 100 тыс. шк?
2. KazanKokos 11 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 11 18.05.17 09:36 Сейчас в теме
(5) а "ы" "л" "м" это чтобы враг не раскрыл военную тайну?:)
7. harmer 1 18.05.17 11:43 Сейчас в теме
(6) Конечно! Когда в коде присутствуют такие переменные, сложность алгоритма возрастает в несколько раз, что автоматически увеличивает гордость автора =)
4. KazanKokos 11 17.05.17 15:51 Сейчас в теме
автор - посмотри тут http://infostart.ru/public/558079/ . вообще на ИС полно таких запросов. и в комментах еще попроще кинули, но в нем сложно разобраться. может поможет сделать все одни запросом
8. пользователь 23.05.17 10:21
Сообщение было скрыто модератором.
...
Для отправки сообщения требуется регистрация/авторизация