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

17.05.17

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

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

Файлы

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

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

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

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

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

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

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

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

1091 руб.

15.12.2015    187391    1387    374    

420

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

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

50200 руб.

24.04.2015    209852    180    253    

299

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

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

20900 руб.

18.03.2019    126589    82    115    

207

Оптовая торговля Розничная торговля НДС 22% 1С 8.3 1С:Управление торговлей 10 Россия Платные (руб)

Пакет обновлений и продолжения поддержки Управление торговлей, редакция 10.3.- обновление которое предоставляет пользователям новые функции, исправления ошибок и т.д.

14640 руб.

19.12.2025    10279    92    74    

86

Логистика, склад и ТМЦ 1С:Предприятие 8 Россия Платные (руб)

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

50000 руб.

26.07.2023    13012    63    0    

14

Логистика, склад и ТМЦ Бухгалтер Пользователь 1С:Предприятие 8 Сельское хозяйство и рыболовство Строительство Горнодобывающая промышленность Розничная и сетевая торговля (FMCG) Транспорт, автопарки, такси Оптовая торговля, дистрибуция, логистика Лесное и деревообрабатывающее хозяйство Управленческий учет Платные (руб)

Позволяет автоматизировать процесс взвешивания ТМЦ в организациях, осуществляющих приемку и отгрузку различным транспортом, для ведения складского учета и контроля остатков на складах. Конфигурация позволяет фиксировать вес вручную, напрямую с весов, а также управлять дополнительным оборудованием и контролировать движение транспорта.

40000 руб.

24.03.2015    139866    356    118    

146
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
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
Сообщение было скрыто модератором.
...
Для отправки сообщения требуется регистрация/авторизация