Имя: Пароль:
1C
1С v8
Помогите создать строку шаблона для оператора ПОДОБНО
0 Karamzin
 
14.05.13
12:58
Добрый день!
Есть следующая задача - модифицировать быстрый отбор в справочнике Номенклатура в УПП. Необходимо исключить из поиска "шум", то есть не учитывать при поиске ряд символов " ", ",", ".", ":" и т.п.
Например, пользователь заводит строку поиска "12345", в результате должны отобраться элементы справочника с наименованиями: "1.2345", "1 .2345", "1.2.345", "1.,2:34 5", "  1234567" и тому подобное.
Пытаюсь модифицировать типовой механизм в УПП, в нем отбор идет, естественно, через оператор ПОДОБНО в запросе.
Пытаюсь создать универсальную строку шаблона для использования и пока не получается. Должно быть что-то типа %[1 ,.:][12 ,.:][123 ,.:][1234 ,.:][12345 ,.:]%, но это неправильно, так как 11111 явно не должно быть в отборе.
1 НЕА123
 
14.05.13
13:02
(0)
новый реквизит без шумов
?
2 Karamzin
 
14.05.13
13:06
(1) хорошая идея, только если клиент захочет варьировать "шум", то есть добавить или убрать символы, что делать? каждый раз переформировывать реквизит у всей номенклатуры
3 Волшебник
 
14.05.13
13:07
(2) да
4 Karamzin
 
14.05.13
13:08
(1) но если шаблон не смогу создать, то буду пробивать это решение, спасибо!
5 Галахад
 
гуру
14.05.13
13:08
Полнотекстовый поиск.
6 Волшебник
 
14.05.13
13:08
(4) твой шаблон будет жутко тормозить
7 Karamzin
 
14.05.13
13:09
(6) это решающий довод
8 User_Agronom
 
14.05.13
13:10
(2) Пусть клиент подробно изложит это на бумаге.
Если задание нечётко сформировано (клиент ещё не уверен что хочет или захочет) - это означает, что клиент ещё не созрел и задачи как таковой нет.
9 Волшебник
 
14.05.13
13:11
(7) быстро работают шаблоны типа таких:
LIKE 123%

причём, если реквизит индексирован.
Если шаблон типа 123%1, то он уже будет тормозить, а если %123, то жутко тормозить
10 Karamzin
 
14.05.13
13:14
(8) не поверишь - все изложено на бумаге
только им надо такой поиск не только по наименованию, но и по артикулу, и по характеристикам
придется для каждого поля поиска делать дублирующий реквизит
11 Karamzin
 
14.05.13
13:15
как сказал клиент: "у меня даже телефон подобное может" :)
12 Волшебник
 
14.05.13
13:17
(10) Это нормально.

(11) Пусть он ведёт учёт на телефоне
13 Волшебник
 
14.05.13
13:18
(10) Заведи регистр "ИндексПоиска" с измерением "Индекс" и полем "ссылка". Все строки очищаешь от мусора и загоняешь в индекс.
14 _Demos_
 
14.05.13
13:18
(0) может так     НЕ %[А-я]%
15 Karamzin
 
14.05.13
13:20
всё понял, спасибо за советы, буду реализовывать
(14) точно не так
16 User_Agronom
 
14.05.13
13:33
Наверное, запросом не получиться.
Нужна функция, которая будет очищать от шума.
И, кроме перебора, путей решения я не вижу((
17 Karamzin
 
14.05.13
13:39
(16) а чем тебе не нравится решение с отдельным реквизитом?
18 User_Agronom
 
14.05.13
14:00
(17) И загнать туда и наименование, и артикул, и характеристики?
Я применял уже это решение, но там задача чуть-чуть по другому стояла.
(16) - Мысли были про запрос без существенных (а создание и заполнение реквизита - это существенная доработка) доработок. Кроме того, нужно будет следить за актуальностью содержимого этого реквизита.
19 orefkov
 
14.05.13
14:09
(18)
Тогда только перебором.
Кэшируешь в ТЗ ссылки и очишенный реквизит. Ищешь перебором в ТЗ.
20 Karamzin
 
14.05.13
14:09
(19) придется сделать три разных реквизита
я тоже хотел отделаться малой кровью, но будет действительно сильно тормозить, даже если удастся создать шаблон поиска, про перебор уже и не говорю
21 Волшебник
 
14.05.13
14:09
(18) Можно создать новый регистр и подписку на событие. Это несущественная доработка, не мешающая обновлению
22 Karamzin
 
14.05.13
14:10
(20) (19)-(18)
23 Karamzin
 
14.05.13
14:11
(21) точно
24 orefkov
 
14.05.13
14:13
Либо перебором и регэкспом
1[\s,.:;]*2[\s,.:;]*3[\s,.:;]*4[\s,.:;]*5[\s,.:;]*
А вообще постановка на нехилый бардак в конторе намекает.
25 Dzenn
 
гуру
14.05.13
14:22
Я сделал через табличную часть номенклатуры под названием "Ключи поиска". Обновляется в процедуре ПередЗаписью модуля объекта, но позволяет также вводить ключи поиска и вручную. Автоматические и ручные ключи поиска отличаются реквизитом "Сформировано автоматически", и перезаполняются только они.
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший