Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Помогите с поиском похожих артикулов!

Помогите с поиском похожих артикулов!
Я
   tciban
 
23.04.21 - 14:29
Уважаемые коллеги! Есть база со справочником Номенклатура, есть реквизит Артикул. И есть задачка от клиента, сформулированная так:
"Нужно контролировать ввод Артикула. Совпадающим считать артикул если набор символов без знаков препинания точно совпадает с набором символов без знаков препинания артикула, который уже есть в базе

Знаки препинания, которые игнорируются: пробел, двойные кавычки, апостроф (одинарные кавычки), скобки, дефис, тире, слеш, обратный слеш, звездочка, плюс, запятая, точка с запятой, решетка, точка

Пример: в базе есть NPort 5110-T/W(1)
Будет ошибка, если оператор набирает:
NPort5110TW1

NPort 5110 T-W1

Nport-5110-T/W(1)
и тп"

Подскажите пути решения?! Как сделать? Через Подобно в запросе? Тогда какой шаблон? Есть еще идея сохранять артикул, очищенный от "знаков препинания" в отдельном реквизите (или в регистре сведений) и там потом искать. Но если б сделать через Подобно - было б проще и красивее.
   программистище
 
1 - 23.04.21 - 14:34
Подобно медленно, второй вариант с реквизитом предпочтительнее
   Chameleon1980
 
2 - 23.04.21 - 14:35
сохраняй дополнительно артикул без знаков в доп реквизит
пере записью ищи запросом на равенство нового артикула без знаков
   Базис
 
3 - 23.04.21 - 14:35
У тебя нормально написано, так и делай. Реестр ещё нормализуй. Потом, если мало будет, расстояние Левенштейна считай для каждого существующего, но это сильно больше рассчётов.
   SSSSS_AAAAA
 
4 - 23.04.21 - 14:38
(0)
Примерно так:
СтрЗам(Артикул, "'()-\|/*+,;#. "+симв(39), "")
   Garykom
 
5 - 23.04.21 - 14:41
(0) Замены символов УЧИTЫBATЬ ?
   Garykom
 
6 - 23.04.21 - 14:42
(5)+ рус/лат одинаковые могут быть

А задачка решается через https://ru.wikipedia.org/wiki/Хеш-таблица
   Garykom
 
7 - 23.04.21 - 14:43
(0) через подобно не пойдет, точнее можно но слишком долго искать будет
   Garykom
 
8 - 23.04.21 - 14:43
(6) "Есть еще идея сохранять артикул, очищенный от "знаков препинания" в отдельном реквизите (или в регистре сведений) и там потом искать." - вот это оно самое
   tciban
 
9 - 23.04.21 - 14:49
(6) "рус/лат одинаковые могут быть " - Я не стал писать, но сначала идет проверка что бы не было кирилицы в артикуле.
   tciban
 
10 - 23.04.21 - 14:52
(8) Ок, если сохранять "очищенный артикул" то куда лучше - реквизит в справочнике или все ж регистр сведений для скорости? Впрочем справочник не слишком большой, за скорость можно не убиваться. 92 тыс. записей (с группами)

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.