Имя: Пароль:
1C
1С v8
Поиск по имени в списке
,
0 skally
 
03.02.15
15:11
Здравствуйте! Помогите, пожалуйста, разобраться с задачей. Есть список клиентов. Реквизит "Наименование" представлен в виде "Иванов Иван 8-111-111-11-11". Как осуществить поиск по полному имени клиента? Например,если вбить в поиск "Иван", то он должен выдать всех Иванов, а если вбить "Ива" или "н", то ничего не должен выдать. То есть только по цельному слову должен искать.
Пробовала делать отбор в динамическом списке. Но только если строка поиска содержится в наименовании. Не совсем верно получается... Заранее спасибо!
1 vicof
 
03.02.15
15:13
ПОДОБНО "Иван%"
2 skally
 
03.02.15
15:16
Сейчас у меня отбор так стоит
ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Наименование");
    ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Содержит;
    ЭлементОтбора.Использование = Истина;
    ЭлементОтбора.ПравоеЗначение = ИмяКлиента;
3 vicof
 
03.02.15
15:25
ЭлементОтбора.ПравоеЗначение = ИмяКлиента + "%";
4 skally
 
03.02.15
15:27
(3) я так пробовала, так вообще ничего не выводит
5 vicof
 
03.02.15
15:34
Тады запрос. В запросе выбираешь все имена по условию (1), выгружаешь в список, затем видсравнения = всписке, правое значение список.
6 skally
 
03.02.15
15:53
(5) Подскажите, пожалуйста, а где именно в запросе это нужно указать? Прямо в условии это надо прописывать? или же при установке параметров?
7 FIXXXL
 
03.02.15
15:56
(1) тогда уж
ПОДОБНО "%Иван%"
8 vicof
 
03.02.15
15:57
(7) Я понял суть задачи именно так, хотя в описании полно противоречий, и авторша сама еще не понимает, что хочет. Но принцип, думаю, понятен.
9 FIXXXL
 
03.02.15
15:59
(8) на "Петров Иван" должно же работать? ;)
а вариант (1) непрокатит
10 skally
 
03.02.15
15:59
(8) нужно, чтобы поиск осуществлялся по цельному слову. Вроде бы все понятно.
11 FIXXXL
 
03.02.15
16:01
(10) цельное слово - Иванов
Петров Иван -мимо

цельное слово - Иван
попадут и Иванов и Петров
12 skally
 
03.02.15
16:03
(11) Если среди Иванов и Петров искать Иван, то ничего не должно выдать
13 vicof
 
03.02.15
16:05
(10) Так и надо говорить.
А что ты считаешь цельным словом? Отделенное от других пробелами, или одним пробелом, если в начале, или конце строки. Вот тебе алгоритм, действуй, с учетом (5)
14 FIXXXL
 
03.02.15
16:10
(12) глупая затея на самом деле
лучше один раз разведи по полям Имя Фамилия и что там у тебя еще в наименовании и ищи по этим отдельным полям