Имя: Пароль:
1C
1С v8
Отбор динамического списка по шаблону строки
0 neusro84
 
23.06.14
06:25
Приветствую.

Можно ли сделать отбор динамического списка по шаблону строки?

Пользователь вводит в строке отбора строку ДП%13%1, в базе есть строка с полем, содержащем ДП-13-1, и что бы с помощью стандартного отбора найти эту строку?
1 Wobland
 
23.06.14
06:25
можно
2 Wobland
 
23.06.14
06:26
только процент поменять
3 neusro84
 
23.06.14
06:28
На что поменять?
4 Wobland
 
23.06.14
06:28
(3) не помню. а что есть?
5 neusro84
 
23.06.14
06:29
% (процент): последовательность, содержащая любое количество произвольных символов
_ (подчеркивание): один произвольный символ
[…] (в квадратных скобках один или несколько символов): любой одиночный символ из перечисленных внутри квадратных скобок
В перечислении могут встречаться диапазоны, например a-z, означающие произвольный символ, входящий в диапазон, включая концы диапазона.
[^…] (в квадратных скобках значок отрицания, за которым следует один или несколько символов): любой одиночный символ, кроме тех, которые перечислены следом за значком отрицания
6 Wobland
 
23.06.14
06:30
молодец
7 Cube
 
23.06.14
06:30
(0) Вообще, зачем ты грузишь пользователя этими техническими куевинами, типа знака процента? Ты в Яндексе так же ищешь, с процентами между словами?
В чем сложность, чтобы пользователь разделял слова пробелом, а ты уже в коде вместо пробелов поставишь проценты и сунешь эту строку в отбор?
Кстати, вначале и вконце строки нехватает процентов...
8 neusro84
 
23.06.14
06:31
я не стал загружать вопрос описанием как будет на самом деле, конечно же я буду делать так.
9 Cube
 
23.06.14
06:33
(8) Ну, а ответ на твой вопрос я привел в последнем своем предложении...
10 neusro84
 
23.06.14
06:33
сейчас попробовал в дин. списке напрямую сделать отбор по шаблону - пишет ошибку "Группа "ПоискПоПодстроке" сформирован с ошибками
11 neusro84
 
23.06.14
06:34
перезапустил форму, ошибка исчезла но и отбор не делается
12 Cube
 
23.06.14
06:37
(10) Ну, давай скрины...
13 neusro84
 
23.06.14
06:39
ошибка не важно, это конфликт отбора из программы и из формы произошел.

А вот отбор не работает все равно.
14 Cube
 
23.06.14
06:41
(13) Ты вначале поисковой строки и в конце знаки процентов-то добавил?
15 neusro84
 
23.06.14
06:41
(14) ДА
16 neusro84
 
23.06.14
06:42
вид сравнения - "Содержит" пробовал и  "Равно"
17 Cube
 
23.06.14
06:43
(16) Скрин-то дашь?
18 neusro84
 
23.06.14
06:44
(17) Скрин чего?
19 neusro84
 
23.06.14
06:46
(16) если скрин ошибки, то ее не надо рассматривать.

Попробовал в другой форме, где отборы не вынесены на форму, а через настройку списка - задал там отбор через проценты, все равно не срабатывает отбор
20 Cube
 
23.06.14
06:47
(18) Скрин отбора для начала...
21 neusro84
 
23.06.14
06:48
да его можно попробовать в любой управляемой форме с динамическим списком
22 Cube
 
23.06.14
06:51
(21) А че мне его пробовать, если у меня всё работает и так?
23 Cube
 
23.06.14
06:52
(21) Хочешь помощи - подавай материал так, как просят помогающие, а не так, как считаешь нужным...
24 neusro84
 
23.06.14
07:02
Ладно, поищу помощи в другом месте. Спасибо за участие.
25 Cube
 
23.06.14
07:03
(24) Феерично...
26 Wobland
 
23.06.14
07:04
ещё один, переименовавший заголовок в "форум м*даков"
27 neusro84
 
23.06.14
08:07
Вот что обнаружил интересное
когда дин. список формирует запрос, то, если упрощенно и без параметров в SQL формируется такой запрос
Я на вход подаю 13%ДП%1 (кстати, уважаемый Cube, в запрос платформа сама подставила крайние %)
SELECT
T1._Description

FROM _Reference609 T1 WITH(NOLOCK)
WHERE (T1._Fld3380 LIKE N'%13/%ДП/%1%' ESCAPE '/')
При выполнении которого не возвращается результат.

А во такой запрос возвращает результат

SELECT
T1._Description

FROM _Reference609 T1 WITH(NOLOCK)
WHERE (T1._Fld3380 LIKE N'%13%ДП%1%')
28 Wobland
 
23.06.14
08:13
ESCAPE '/' ни о чём не говорит?
29 neusro84
 
23.06.14
08:15
говорит, но не я же ставлю символ экранирования, а платформа, при формировании запроса
30 vde69
 
модератор
23.06.14
08:26
тебя не смущает обилие символа %
31 neusro84
 
23.06.14
08:29
(30) Обилие?
% (процент): последовательность, содержащая любое количество произвольных символов
32 hhhh
 
23.06.14
08:34
вопрос про другое вы задали. Cо строкой ДП-13-1 всё нормально. Ошибка в другом
33 neusro84
 
23.06.14
08:36
(32) А в чем ошибка?

Если что, в базе есть  строки 13-ДП-1 и ДП-13-1
34 vde69
 
модератор
23.06.14
08:37
(31) по запросу "ДП-13-1" тебя устрои если выдаст "ДП-25-131" ???

маску сделай такую "%ДП_13_1%"
35 neusro84
 
23.06.14
08:39
(34)
не, не дает отбора
в SQL отбор выглядит так
%/%ДП/_13/_1/%%, все равно эти символы экранируются
36 neusro84
 
23.06.14
08:39
может от платформы зависти, у меня 1С:Предприятие 8.2 (8.2.18.102)
37 vde69
 
модератор
23.06.14
08:41
"ДП__13__1" а так?

вообще мне кажется, что маску внутрь не втащить....
38 Cube
 
23.06.14
08:42
neusro84 не хочешь давать скрин - иди длинным путем: сделай мини-обработку, которую можно запустить на любой конфе и в которой можно воспроизвести твою ошибку...
39 neusro84
 
23.06.14
08:43
(37) Мне тоже так кажется, но вот уважаемый Cube утверждает что у него работает. По повод удвоения символов я уже пробовал.
40 neusro84
 
23.06.14
08:45
(38) Ошибки нет, просто нет отбора по шаблону строки. Это можно попробовать на любой конфигурации, где есть динамический список
41 vde69
 
модератор
23.06.14
08:45
(38) да ошибка понятна :) тупо платформа сама конструирует шаблон поиска, при этом она думает, что автор передает ей ВСЕГДА чистый текст поиска, по этому она экранирует все спец символы и добавляет проценты по краям.

как обмануть в этом и есть вопрос
42 neusro84
 
23.06.14
08:47
(41) ага, но подождем что скажет человек, у которого работает.
43 neusro84
 
23.06.14
08:52
Придется сделать на параметре. Другого варианта не вижу.
44 Cube
 
23.06.14
08:53
А, епта, вы про пользовательский отбор что ли? Да, точно, там с масками не фурычит, но никто не мешает сделать несколько отборов...

А я-то про отбор, который в запрос кладут и передают в ДС уже параметром....
45 Wobland
 
23.06.14
08:54
(43) и сам ведь всё знает, только клавиатуру на мисту изводит
46 neusro84
 
23.06.14
08:58
(45) А вдруг чего-то не знаю?
(44) Действительно, епта, спасибо что отписались, а то я себя полным дураком почувствовал.
47 vde69
 
модератор
23.06.14
09:00
сделай пользовательский запрос, и внем совое услови...
48 blopp
 
23.06.14
10:20
(0) В 8.3.5 добавили вид сравнения "Соответствует шаблону"
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.