Имя: Пароль:
1C
1С v8
Подскажите алгоритм поиска
,
0 lanc2233
 
26.06.12
14:06
Есть строка "АА ББ ВВ" (или массив строк "АА","ББ","ВВ")

Нужно найти все элементы справочника, в названии которого есть "АА","ББ" и "ВВ" именно в этом порядке.

тоесть "1АА24ББ3ВВ" - подходит
"1ББ24АА3ВВ" - не подходит

Как можно реализовать такой фильтр?
1 mikecool
 
26.06.12
14:07
like "%АА%ББ%ВВ%"
2 Ненавижу 1С
 
гуру
26.06.12
14:08
Склеить массив в виде "%"+Массив[0]+"%"+Массив[1]+"%"+Массив[2]+"%"
и передать параметром в условие запроса

Наименование ПОДОБНО &ПараметрПоиска
3 andrewks
 
26.06.12
14:09
или regexp
4 aleks-id
 
26.06.12
14:10
подобно в запросах тормозит не по детски
5 andrewks
 
26.06.12
14:11
3 Найти + 2 Сред
6 _Atilla
 
26.06.12
14:12
Почему бы не использовать поиск данных?
7 mzelensky
 
26.06.12
14:13
(0) если "подобно" не устраивает можно и циклом.

Берешь строку "1АА24ББ3ВВ", ищешь (циклом перебирая) первый элемент "АА", если нашел, то обрезаешь строчку и получаешь "24ББ3ВВ" далее ищешь "ББ", если нашел обрезаешь до "3ВВ" и т.д.

Если до конца дошел, все ОК, если нет - то нет.
8 aleks-id
 
26.06.12
14:13
ПолнотекстовыйПоиск рулит
9 andrewks
 
26.06.12
14:14
(8) хочешь сказать, будет быстрее запроса?
10 aleks-id
 
26.06.12
14:15
(9) будет оптимальнее нежели использование ПОДОБНО
11 andrewks
 
26.06.12
14:20
(10) не замерял, насколько "строкапоиска%" быстрее "строкапоиска1%строкапоиска2%строкапоиска3%"  ?
12 aleks-id
 
26.06.12
14:21
(11) не. но примерно могу сказать что через подобно запрос начинает работать чуть ли не на порядок дольше
13 lanc2233
 
26.06.12
14:26
А можно подробней что такое полнотекстовый поиск?
14 aleks-id
 
26.06.12
14:38
(13) это тебе к ДенисЧ с таким вопросом. он у нас СП барыжит. я ему дорогу переходить в этом опасном бизнесе не буду и тебе не советую
15 lanc2233
 
26.06.12
14:47
Скажите еще, не в запросе, а в таком варианте

ЭлементОтбора.ЛевоеЗначение    = Новый ПолеКомпоновкиДанных(ИмяПоля);
       ЭлементОтбора.ВидСравнения     = ВидСравненияКомпоновкиДанных.Содержит;
       ЭлементОтбора.Использование    = Истина;
       ЭлементОтбора.ПравоеЗначение   = "%АА%ББ%ВВ%";
       ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;

Нормально будет работать?
16 Агент Инфостарта
 
26.06.12
14:51
(15) Вообще не будет работать.