Отбор динамического списка по шаблону строки #712015


#0 by neusro84
Приветствую. Можно ли сделать отбор динамического списка по шаблону строки? Пользователь вводит в строке отбора строку ДП%13%1, в базе есть строка с полем, содержащем ДП-13-1, и что бы с помощью стандартного отбора найти эту строку?
#1 by Wobland
можно
#2 by Wobland
только процент поменять
#3 by neusro84
На что поменять?
#4 by Wobland
не помню. а что есть?
#5 by neusro84
% (процент): последовательность, содержащая любое количество произвольных символов _ (подчеркивание): один произвольный символ […] (в квадратных скобках один или несколько символов): любой одиночный символ из перечисленных внутри квадратных скобок В перечислении могут встречаться диапазоны, например a-z, означающие произвольный символ, входящий в диапазон, включая концы диапазона. [^…] (в квадратных скобках значок отрицания, за которым следует один или несколько символов): любой одиночный символ, кроме тех, которые перечислены следом за значком отрицания
#6 by Wobland
молодец
#7 by Cube
Вообще, зачем ты грузишь пользователя этими техническими куевинами, типа знака процента? Ты в Яндексе так же ищешь, с процентами между словами? В чем сложность, чтобы пользователь разделял слова пробелом, а ты уже в коде вместо пробелов поставишь проценты и сунешь эту строку в отбор? Кстати, вначале и вконце строки нехватает процентов...
#8 by neusro84
я не стал загружать вопрос описанием как будет на самом деле, конечно же я буду делать так.
#9 by Cube
Ну, а ответ на твой вопрос я привел в последнем своем предложении...
#10 by neusro84
сейчас попробовал в дин. списке напрямую сделать отбор по шаблону - пишет ошибку "Группа "ПоискПоПодстроке" сформирован с ошибками
#11 by neusro84
перезапустил форму, ошибка исчезла но и отбор не делается
#12 by Cube
Ну, давай скрины...
#13 by neusro84
ошибка не важно, это конфликт отбора из программы и из формы произошел. А вот отбор не работает все равно.
#14 by Cube
Ты вначале поисковой строки и в конце знаки процентов-то добавил?
#15 by neusro84
ДА
#16 by neusro84
вид сравнения - "Содержит" пробовал и  "Равно"
#17 by Cube
Скрин-то дашь?
#18 by neusro84
Скрин чего?
#19 by neusro84
если скрин ошибки, то ее не надо рассматривать. Попробовал в другой форме, где отборы не вынесены на форму, а через настройку списка - задал там отбор через проценты, все равно не срабатывает отбор
#20 by Cube
Скрин отбора для начала...
#21 by neusro84
да его можно попробовать в любой управляемой форме с динамическим списком
#22 by Cube
А че мне его пробовать, если у меня всё работает и так?
#23 by Cube
Хочешь помощи - подавай материал так, как просят помогающие, а не так, как считаешь нужным...
#24 by neusro84
Ладно, поищу помощи в другом месте. Спасибо за участие.
#25 by Cube
Феерично...
#26 by Wobland
ещё один, переименовавший заголовок в "форум м*даков"
#27 by neusro84
Вот что обнаружил интересное когда дин. список формирует запрос, то, если упрощенно и без параметров в 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 by Wobland
ESCAPE '/' ни о чём не говорит?
#29 by neusro84
говорит, но не я же ставлю символ экранирования, а платформа, при формировании запроса
#30 by vde69
тебя не смущает обилие символа %
#31 by neusro84
Обилие? % (процент): последовательность, содержащая любое количество произвольных символов
#32 by hhhh
вопрос про другое вы задали. Cо строкой ДП-13-1 всё нормально. Ошибка в другом
#33 by neusro84
А в чем ошибка? Если что, в базе есть  строки 13-ДП-1 и ДП-13-1
#34 by vde69
по запросу "ДП-13-1" тебя устрои если выдаст "ДП-25-131" ??? маску сделай такую "%ДП_13_1%"
#35 by neusro84
не, не дает отбора в SQL отбор выглядит так %/%ДП/_13/_1/%%, все равно эти символы экранируются
#36 by neusro84
может от платформы зависти, у меня 1С:Предприятие 8.2 (8.2.18.102)
#37 by vde69
вообще мне кажется, что маску внутрь не втащить....
#38 by Cube
не хочешь давать скрин - иди длинным путем: сделай мини-обработку, которую можно запустить на любой конфе и в которой можно воспроизвести твою ошибку...
#39 by neusro84
Мне тоже так кажется, но вот уважаемый Cube утверждает что у него работает. По повод удвоения символов я уже пробовал.
#40 by neusro84
Ошибки нет, просто нет отбора по шаблону строки. Это можно попробовать на любой конфигурации, где есть динамический список
#41 by vde69
да ошибка понятна :) тупо платформа сама конструирует шаблон поиска, при этом она думает, что автор передает ей ВСЕГДА чистый текст поиска, по этому она экранирует все спец символы и добавляет проценты по краям. как обмануть в этом и есть вопрос
#42 by neusro84
ага, но подождем что скажет человек, у которого работает.
#43 by neusro84
Придется сделать на параметре. Другого варианта не вижу.
#44 by Cube
А, епта, вы про пользовательский отбор что ли? Да, точно, там с масками не фурычит, но никто не мешает сделать несколько отборов... А я-то про отбор, который в запрос кладут и передают в ДС уже параметром....
#45 by Wobland
и сам ведь всё знает, только клавиатуру на мисту изводит
#46 by neusro84
А вдруг чего-то не знаю? Действительно, епта, спасибо что отписались, а то я себя полным дураком почувствовал.
#47 by vde69
сделай пользовательский запрос, и внем совое услови...
#48 by blopp
В 8.3.5 добавили вид сравнения "Соответствует шаблону"
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С