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

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