Имя: Пароль:
1C
1С v8
Поиск элементов справочника
0 LivingStar
 
28.10.11
09:08
Если имеется строка по которой необходимо искать элементы справочника
и если их несколько, каким образом можно производить поиск? Написать функцию рекурсивную?
1 jsmith82
 
28.10.11
09:09
Чёто вообще непонятно. Приведи пример, и чего несколько, строк?
2 luckyluke
 
28.10.11
09:10
(0) можно так "В (&СписокСтрокПоиска)", смотря что требуется.
3 Рэйв
 
28.10.11
09:12
(0)Написать запрос
4 LivingStar
 
28.10.11
09:13
(1)
ну в справочнике есть номенклатура
номенклатура 1.1
номенклатура 2.2
номенклатура 3.3
мне надо найти все такие элементы по строке номенклатура
РезультатПоиска = Справочники.Номенклатура.НайтиПоНаименованию("Номенклатура");
найдет одну строку, для поиска остальных надо писать функцию рекурсивную, и запихивать их в список и возвращать к примеру, какие ещё есть варианты?
5 guitar_player
 
28.10.11
09:13
Наименование Подобно %Номенклатура%
6 LivingStar
 
28.10.11
09:14
(3) использовать функцию ВКЛЮЧАЕТ(), если поиск производится по части наименования, которая есть во всех искомых элементах?
7 LivingStar
 
28.10.11
09:14
(5) а это что?
8 guitar_player
 
28.10.11
09:14
оператор в запросе
9 Рэйв
 
28.10.11
09:15
(5) Запрос +ПОДОБНО.  Ты вообще ответы читаешь или сам с собой тихо ведешь беседу?
10 Рэйв
 
28.10.11
09:15
(9) к (6)
11 Wobland
 
28.10.11
09:15
(6) что за ВКЛЮЧАЕТ()? это же ПОДОБНО
12 Starhan
 
28.10.11
09:15
(4) Варианты есть - Запрос.
И найдет он тебе ен строку а элемент справочника либо вернет пустую ссылку.
13 jsmith82
 
28.10.11
09:16
какая в пипиську рекурсия
у меня такое чувство, что я на острове проклятых
в цикле создай текст запроса и вперёд
14 Рэйв
 
28.10.11
09:16
(7)Ну если у тебя возникают такие вопросы,тогда однозначно - Пригласите специалиста(С)
15 Wobland
 
28.10.11
09:17
(14) да ладно, у меня тоже бывает вопросы возникают. правда я молча лезу в СП ;)
16 Рэйв
 
28.10.11
09:18
(15)Но не знать что такое ПОДОБНО это уже перебор имхо:)
17 luckyluke
 
28.10.11
09:18
(13) а текст запроса в цикле нафуя?
18 Wobland
 
28.10.11
09:19
(0) кстати, какое условие выхода из рекурсии?
19 guitar_player
 
28.10.11
09:20
(18) да какая рекурсия то? он вечно одно и тоже будет возращать,
20 guitar_player
 
28.10.11
09:21
пиши запрос, будь мужиком. Но лучше сделай все по другому, мне кажется ты где то не прав
21 Wobland
 
28.10.11
09:22
(20) а как тут по-другому ещё? перебор справочника разве что
22 LivingStar
 
28.10.11
09:23
(18) не найдено былее элементов, хотя может и не совсем так...

что не так в запросе?

ВЫБРАТЬ
   Номенклатура.Наименование
ИЗ
   Справочник.Номенклатура КАК Номенклатура
ГДЕ
   Номенклатура.Наименование ПОДОБНО "%" &Ном "%"
23 Maxus43
 
28.10.11
09:24
Номенклатура.Наименование ПОДОБНО &Ном

параметр ном = "%Ном%"
24 luckyluke
 
28.10.11
09:24
(21) предлагаешь объявить конкурс на самый изощренный способ решения задачи из (1) ?
25 luckyluke
 
28.10.11
09:25
(23) или так
"ВЫБРАТЬ
   Номенклатура.Наименование
ИЗ
   Справочник.Номенклатура КАК Номенклатура
ГДЕ
   Номенклатура.Наименование ПОДОБНО ""%""+&Ном+""%""";
26 LivingStar
 
28.10.11
09:27
(23)(25)Ок
27 luckyluke
 
28.10.11
09:27
(24) из (0)*
28 Wobland
 
28.10.11
09:27
(24) пятница же ;)
29 luckyluke
 
28.10.11
09:28
(28) тоже верно :)
30 jsmith82
 
28.10.11
09:34
в цикле потому что список строк
подобно этой хрени или подобной той хрени
разуммется, при разумной количестве строк
если же строк до фуя, то вопрос, что лучше, условие из 1000 ИЛИ или цикл с запросом. наверно, второе
31 Wobland
 
28.10.11
09:37
(30) я за тысячу ИЛИ
32 guitar_player
 
28.10.11
09:43
(30)+100500
33 luckyluke
 
28.10.11
09:48
(30) а я думаю, при 1000 подобно сделать таблицу, запихнуть её в параметры, сделать из неё временную и сделать левое соединение на условие подобно.
34 luckyluke
 
28.10.11
09:49
+(33) ну да, каждый дро как хо.
35 catena
 
28.10.11
09:52
Если ориентировать на то, что написано в (0),
НайтиПоНаименованию много раз = Выбрать() с отбором...
36 LivingStar
 
28.10.11
10:00
в 25 норм решение!
37 Wobland
 
28.10.11
10:03
(36) спасибо хоть скажи
38 LivingStar
 
28.10.11
10:06
СПАСИБО !!!