Имя: Пароль:
1C
 
Поиск запросом строки в другой строке?
0 u571
 
21.05.10
11:12
Всем привет!
Как запросом найти Код в Комментарии?

Комментарий: "Товар особый (4567)"
Код:  "(4567)"

Пробовал так:

ВЫБРАТЬ
   Номенклатура.Ссылка КАК Номенклатура
ИЗ
   Справочник.Номенклатура КАК Номенклатура
ГДЕ
   Номенклатура.Комментарий ПОДОБНО &Код

Не работает!
1 Megas
 
21.05.10
11:13
УстановитьПараметр(кОД,%4567%)
2 Ненавижу 1С
 
гуру
21.05.10
11:14
ВЫБРАТЬ
   Номенклатура.Ссылка КАК Номенклатура
ИЗ
   Справочник.Номенклатура КАК Номенклатура
ГДЕ
   &Код ПОДОБНО "%"+Номенклатура.Комментарий+"%"
3 u571
 
21.05.10
11:20
Ругается на запрос!

Функция ПоискНоменклатуры(Код)
   
   Запрос = Новый Запрос;
   Запрос.УстановитьПараметр("Код", Код);
   
   Запрос.Текст = "ВЫБРАТЬ
                  |    Номенклатура.Ссылка КАК Номенклатура
                  |ИЗ
                  |    Справочник.Номенклатура КАК Номенклатура
                  |ГДЕ
                  |    &Код ПОДОБНО "%"+Номенклатура.Комментарий+"%";
                 
   Выборка = Запрос.Выполнить().Выбрать();
   Выборка.Следующий();
   
   Возврат Выборка.Номенклатура;
   
КонецФункции
4 Живой Ископаемый
 
21.05.10
11:22
и что, никого не смутила конструкция:
&Код ПОДОБНО "%"+Номенклатура.Комментарий+"%";

?
параметр сравнивается с шаблоном? офигеть! это должно повлиять на выборку?
5 Темный
 
21.05.10
11:23
А комментарий какой длины? Запросы не работают с неограниченной, вроде.
6 u571
 
21.05.10
11:24
неограниченной
7 Темный
 
21.05.10
11:25
Наверно тогда можно попробовать "ВЫРАЗИТЬ КАК СТРОКА"
8 Агент
 
21.05.10
11:26
(4) нет, всё нормально.
9 Агент
 
21.05.10
11:27
" же тоже никого не смущает.
10 u571
 
21.05.10
11:33
Запрос.Текст = "ВЫБРАТЬ
                  |    Номенклатура.Ссылка КАК Номенклатура
                  |ИЗ
                  |    Справочник.Номенклатура КАК Номенклатура
                  |ГДЕ
                  |    &Код ПОДОБНО "%"+Номенклатура.Комментарий+"%";

У меня ругается на синтаксис запроса
11 Ненавижу 1С
 
гуру
21.05.10
11:35
(10) дятел?

Запрос.Текст = "ВЫБРАТЬ
                  |    Номенклатура.Ссылка КАК Номенклатура
                  |ИЗ
                  |    Справочник.Номенклатура КАК Номенклатура
                  |ГДЕ
                  |    &Код ПОДОБНО ""%""+Номенклатура.Комментарий+""%""";
12 lxs
 
21.05.10
11:35
Запрос.Текст = "ВЫБРАТЬ
                  |    Номенклатура.Ссылка КАК Номенклатура
                  |ИЗ
                  |    Справочник.Номенклатура КАК Номенклатура
                  |ГДЕ
                  |    &Код ПОДОБНО ""%"+Номенклатура.Комментарий+"%""";
13 u571
 
21.05.10
11:39
{Форма.Форма.Форма(76)}: Ошибка при вызове метода контекста (Выполнить): {(6, 22)}: Неверные параметры "+"
&Код ПОДОБНО "%"+<<?>>Номенклатура.Комментарий+"%"
   Выборка = Запрос.Выполнить().Выбрать();
по причине:
{(6, 22)}: Неверные параметры "+"
&Код ПОДОБНО "%"+<<?>>Номенклатура.Комментарий+"%"
14 Ненавижу 1С
 
гуру
21.05.10
11:40
(13) дятел
15 Живой Ископаемый
 
21.05.10
11:42
погодите, может от меня что-то ускользает, ено почему вы не пишите так:

Запрос.Текст = "ВЫБРАТЬ
                  |    Номенклатура.Ссылка КАК Номенклатура
                  |ИЗ
                  |    Справочник.Номенклатура КАК Номенклатура
                  |ГДЕ
                  |    Номенклатура.Комментарий ПОДОБНО &Код";
Запрос.УстановитьПараметр("Код","%"+Код+"%");
?

ведь строка
&Код ПОДОБНО ""%""+Номенклатура.Комментарий+""%""";
означает что мы ищем в(или его) (4567) строку (или в ней) вида "%Товар особый (4567)%"

что несколько неожиданно, разве нет?
16 lxs
 
21.05.10
11:46
(15) Однако ))
17 u571
 
21.05.10
11:55
(15) Спасибо помогло!
Ненавижу 1С - дебил!
18 Живой Ископаемый
 
21.05.10
11:56
2(17) не скажу что мы по вам будем скучать
19 Агент
 
21.05.10
11:57
(11) а ты типа не дятел? в (4) же намекнули понятно.
20 Ненавижу 1С
 
гуру
21.05.10
11:58
(19) да что-то утро не задалось, мне тут резко вдруг приспичило сделать маршбросок на полторы тыщи километров на родину, вот озадачен
21 Ненавижу 1С
 
гуру
21.05.10
11:59
+(20) так что я тоже дятел
22 Живой Ископаемый
 
21.05.10
12:09
если уж совсем быть справедливым - самый недятел - это (1) - он дал правильный ответ и сделал это первым.. а остальыне повели себя как настояшие одинэсники...