|
Помогите с поиском похожих артикулов! |
☑ |
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 тыс. записей (с группами)
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший