Имя: Пароль:
1C
 
Запросы использование оператора "ПОДОБНО"
0 TCD85
 
05.08.09
17:05
Нужно написать запрос который при выполнении выдаст номенклатурные позиции справочника, наименование которых состоит из трех слов.

P.S. Может кто решал подобную задачу. Я чтот ладу не могу дать.

Написал следующий запрос.

Выбрать
   Наименование

Из  Справочник.Номенклатура

Где Наименование Подобно "%[^ ]%[^ ]%"
1 Gandharva
 
05.08.09
17:07
может через И))
2 Живой Ископаемый
 
05.08.09
17:07
ПОДОБНО % % %
3 Живой Ископаемый
 
05.08.09
17:08
А в чем прикол?
4 TCD85
 
05.08.09
17:12
Там фильтр над правельный задать.
1. Если % % % то тогда не имеет значение сколько там слов в наименовании.
2. А как ты придлагаеш через И.
3. Прикол в том что нужно выцепить 3-и слова из наименование и проверить на признак конца строки. Как это сделать фильтром-шаблоном???
5 Живой Ископаемый
 
05.08.09
17:12
это конечно при условии что словом считаем любую последовательность символов не содержащих пробелов. Слова разделяют пробелы... Точки, всякие запятйые и другие тильды - считаем частью слова, а не разделителем...
6 73
 
05.08.09
17:12
(2) Это выберет те, где больше трех слов
7 Живой Ископаемый
 
05.08.09
17:13
"1. Если % % % то тогда не имеет значение сколько там слов в наименовании"
почему?
8 TCD85
 
05.08.09
17:13
Хорошо давай считать разделителями строки пробелы. Тогда как фильтр задать?
9 Живой Ископаемый
 
05.08.09
17:14
ПОДОБНО "% % %" И НЕ ПОДОБНО "% % % %"
10 TCD85
 
05.08.09
17:15
Диск сцепления нажимной (корзина) леп. УАЗ УМЗ Вот например что выдает после фильтра.
Где Наименование Подобно "%%%"
11 Живой Ископаемый
 
05.08.09
17:16
(10) проверь (9) быстро!
12 Живой Ископаемый
 
05.08.09
17:19
совсем кстати забыл, этот же вопрос кандидатам на собеседовании задавал.. :)
13 Широкий
 
05.08.09
17:19
ВЫБРАТЬ
   Номенклатура.Наименование
ИЗ
   Справочник.Номенклатура КАК Номенклатура
ГДЕ
   Номенклатура.Наименование = ПОДСТРОКА(Номенклатура.Наименование, 1, 3)
   И (НЕ Номенклатура.Наименование = ПОДСТРОКА(Номенклатура.Наименование, 1, 2))
14 TCD85
 
05.08.09
17:20
Где (Наименование ПОДОБНО "% % %") И (Наименование НЕ ПОДОБНО "% % % %")
Тогда выбираются строки содержащие и меньше 3-х слов " Ручка дверная"
15 Живой Ископаемый
 
05.08.09
17:21
2(14) Из-за того, что перед словом "Ручка" пробел?
16 Живой Ископаемый
 
05.08.09
17:22
2(14) Но согласись, что мы на правильном пути - с 4-мя словами уже не попадают ведь?
17 TCD85
 
05.08.09
17:22
Да вроде нет )))
18 TCD85
 
05.08.09
17:23
Как теперь задать фильтр чтоб не меньше трех.
19 Широкий
 
05.08.09
17:23
(16) Странно что такие задания на собеседовании даешь.. сам же и не справился
20 Живой Ископаемый
 
05.08.09
17:23
2(19) не странно, мне можно забыть, я уже с работой...
21 Широкий
 
05.08.09
17:24
(18) Соответственно поставить НЕ
22 Широкий
 
05.08.09
17:25
+(21) Хотя вру
23 Живой Ископаемый
 
05.08.09
17:25
и потом - тебе на будущее - задание - это не повод отсеять человека если он ответил неправильно.. а повод поговорить с ним, и выяснить почему он так думает
24 Живой Ископаемый
 
05.08.09
17:25
(18) Ну уж напрягись
25 Широкий
 
05.08.09
17:25
(23) Ты меня еще поучи
26 Живой Ископаемый
 
05.08.09
17:26
2(25) только за деньги
27 Mort
 
05.08.09
17:27
ПОДОБНО "[^ ]% % %[^ ] И НЕ ПОДОБНО "[^ ]% % % %[^ ]
28 Mort
 
05.08.09
17:28
тока не прокатит если с пробела начинается или заканчивается..
29 Живой Ископаемый
 
05.08.09
17:29
(28) НЕ ПОДОБНО " %"
НЕ ПОДОБНО "% "
30 Широкий
 
05.08.09
17:29
ВЫБРАТЬ
   Номенклатура.Ссылка
ИЗ
   Справочник.Номенклатура КАК Номенклатура
ГДЕ
   НЕ Номенклатура.Наименование = ПОДСТРОКА(Номенклатура.Наименование, 1, 3)
31 Живой Ископаемый
 
05.08.09
17:31
(30)
У меня выбрал:
"201 Сырье и Материалы"  - тут сколько слов? 3 или больше?
32 TCD85
 
05.08.09
17:32
Больше и можно смело считать словом.
33 Широкий
 
05.08.09
17:32
тьфу.. а я то думал речь идет про 3 буквы
34 TCD85
 
05.08.09
17:33
НЕ Номенклатура.Наименование = ПОДСТРОКА(Номенклатура.Наименование, 1, 3)
Рез = Изолента Х/Б
Так что не катит.
35 Широкий
 
05.08.09
17:34
(34) Да понял уже.. невнимательно прочитал
36 TCD85
 
05.08.09
17:36
ПОДОБНО "[^ ]% % %[^ ] И НЕ ПОДОБНО "[^ ]% % % %[^ ]
Этот пример ничего не выбирает.
37 Живой Ископаемый
 
05.08.09
17:40
ВЫБРАТЬ
   Номенклатура.Наименование
ИЗ
   Справочник.Номенклатура КАК Номенклатура
ГДЕ
   Номенклатура.Наименование ПОДОБНО "[^ ]% % %[^ ]"
   И (НЕ Номенклатура.Наименование ПОДОБНО "[^ ]% % % %[^ ]")
У меня выбирает именно с 3-мя словами, Морт прав
38 Живой Ископаемый
 
05.08.09
17:43
Наверное так будет совсем правильно:
ВЫБРАТЬ
   Номенклатура.Наименование,
   Номенклатура.Ссылка
ИЗ
   Справочник.Номенклатура КАК Номенклатура
ГДЕ
   Номенклатура.Наименование ПОДОБНО "% % %"
   И (НЕ Номенклатура.Наименование ПОДОБНО "[^ ]% % % %[^ ]")
39 TCD85
 
05.08.09
17:45
Выбрать
Наименование
Из Справочник.Номенклатура
Где Наименование ПОДОБНО "[^ ]% % %[^ ]"
   И (НЕ Наименование ПОДОБНО "[^ ]% % % %[^ ]")

Работает и в таком исполнении. Спасибо.
40 Живой Ископаемый
 
05.08.09
17:46
2(39) Там просто если наименование начинается или заканчивается пробелом, оно не попадет в выборку, хотя и будет состоять из трех слов...
41 TCD85
 
05.08.09
17:47
Ну это уже частный случай. Всем спасибо за активное участие в обсуждении.
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший