Имя: Пароль:
1C
1С v8
Форма поиска документа по реквизитам
,
0 podkovka_
udachi
 
16.01.15
12:39
доброго времени суток! ( 1С 8.3 )
Есть документ личное дело с различными реквизитами, предположим пока только
- фамилия
- имя
- отчество.
Необходимо, чтобы при запуске приложения на главном экране была представлена форма поиска этих личных дел,
причем вариант поиска можно выбрать:
- простой ( поиск осуществляется только по фамилии и /или имени)
- расширенный ( поиск осуществляется по ВСЕМ реквизитам документа сразу или выборочно по некоторым).
Также, если набрать несколько символов из реквизиты, результат должен выводить все подходящие строки
(например, при вводе "ива" в параметр фамилия, выводится должны все "ивановы", "ивашкины" "иващуки" итд)
Результат должен быть представлен в виде таблицы, из которой можно перейти в нужный найденный документ "личное дело".

Попробовала сделать это просто на форме обработки, режим поиска через радиогруппу. И также попробовала через СКД, где режим поиска варьируется через варианты настроек отчета .

В обоих случаях использовала запрос с параметрами по сути один и тот же:

ВЫБРАТЬ
    ЛичноеДело.Ссылка,
    ЛичноеДело.Фамилия,
    ЛичноеДело.Имя,
    ЛичноеДело.Отчество,
ИЗ
    Документ.ЛичноеДело КАК ЛичноеДело
ГДЕ
    (ЛичноеДело.Фамилия = &Фамилия
            ИЛИ ЛичноеДело.Имя = &Имя
            ИЛИ ЛичноеДело.Отчество = &Отчество)

Работает некорректно. Пробовала в скд как то применить отбор...не получилось. Выводятся все документы где есть и фамилия, и имя и отчество, указанные в параметрах. А нужно чтобы совпадали данные по всем указанным реквизитам в рамках одного документа ( стандартный поиск по сути).
А по поводу вхождения части параметра ф реквизит документа, пробовала применить "подобно" результат тоже нулевой.

Что делаю не так?
1 Cube
 
16.01.15
12:41
(0) Че за пережитки прошлого? Делай поиск как в Яндексе - с одной строкой, которая ищет везде.
2 FIXXXL
 
16.01.15
12:44
Не надо через параметры, делай через Построитель и ПостроительОтбор выведи на форму
3 podkovka_
udachi
 
16.01.15
12:45
(1) с помощью чего это можно сделать? направьте в нужную сторону
4 Cube
 
16.01.15
12:47
+(1) Как-то так (ищем Петю Заточкина):

    ПодстрокаПоиска = "Пет Зат";

    Запрос = Новый Запрос("ВЫБРАТЬ
                          |    ЛичноеДело.Ссылка
                          |ИЗ
                          |    Документ.ЛичноеДело КАК ЛичноеДело
                          |ГДЕ
                          |    ЛичноеДело.Фамилия + "" "" + ЛичноеДело.Имя + "" "" + ЛичноеДело.Отчество + "" "" ПОДОБНО &ПодстрокаПоиска");
    Запрос.УстановитьПараметр("ПодстрокаПоиска", "%" + СтрЗаменить(ПодстрокаПоиска, " ", "%") + "%");
5 Адский плющ
 
16.01.15
12:50
Стандартный ДС со стандартным поиском чем не угодил?
6 Cube
 
16.01.15
12:51
+(4) Это просто пример. Для нормальной реализации нужно учесть, что слова могут располагаться в произвольном порядке. Для этого в запросе строку в которой будет производиться поиск надо делать с учетом этого (по несколько раз включать одно и то же поле, например).

И ещё не забудь, что строки неограниченной длины объединить просто так нельзя, юзавй ВЫРАЗИТЬ(ЛичноеДело.Фамилия КАК Строка(200)).

А ещё проще перейти на Такси, там поис работает и так, как в Яндексе.
7 Cube
 
16.01.15
12:52
+(6) Подробнее здесь: http://v8.1c.ru/o7/201401ls/index.htm
8 podkovka_
udachi
 
16.01.15
13:00
(7) спасибо очень хорошие идеи, так еще не пробовала, буду изучать!
9 Cube
 
16.01.15
13:02
(8) О, ты погоди))) Я ж не знал, что ты девушка. Тут у нас принято девушкам сначала фотку в личную карточку вставлять, а потом уже спрашивать! :))

Так что исправляйся прямо щас!)
10 podkovka_
udachi
 
16.01.15
13:19
(9) Я же подковка *)))
11 Cube
 
16.01.15
13:23
(10) Без фотки помогающих будет меньше. Вот я, например, буду вредничать :)
12 palpetrovich
 
16.01.15
13:27
(0) можно обойтись вообще без программного кода, смотри тему
Выбор элемента справочника в поле ввода по реквизиту
пост (5)
13 podkovka_
udachi
 
16.01.15
13:39
(11) готово)
(12) у меня там нет вариантов для добавления, что значит "индексированные реквизиты"?
14 palpetrovich
 
16.01.15
13:45
(13) микроконфинурация http://www.fayloobmennik.net/4479426
в открывающейся обработке, в поле выбора документа, введи "петр" или "иван"
15 Cube
 
16.01.15
13:46
(13) "готово)"
Ну вот и молодец :)
16 Cube
 
16.01.15
13:47
(14) А если ввести "Пет Зат"?
Можешь не отвечать. Твой вариант - это поиск по одному слову, значит в утиль.
17 palpetrovich
 
16.01.15
13:48
(16) в утиль - так в утиль, я не возражаю :)
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан