Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   Где ошибка? Убился искать. Двойные кавычки в запросе. (http://forums.kuban.ru/f1040/gde_oshibka_ubilsya_iskat-_dvojnye_kavychki_v_zaprose-2999342.html)

Andronav 30.08.2012 12:06

Где ошибка? Убился искать. Двойные кавычки в запросе.
 
Новичек в этом деле. Задача вставить значение параметра в кавычках. Пишу сл. запрос.
ЗпрТекст=
"Выбрать * Из Справочник.Спр1.ДополнительныеРеквизиты Где Справочник.Спр1.ДополнительныеРеквизиты.Значение подобно &ПЗнач"

ПЗнач должны быть строкой в кавычках, т.е. "%пример%".
Делал так
(Значение - Строка которую набирает пользователь в форме.)


Зпр = Новый Запрос (ЗпрТекст);
ПП=Символ(34)+"%"+СОКРЛП(Значение)+"%"+Символ(34);

Зпр.УстановитьПараметр("ПЗнач",ПП);
Выборка = Зпр.Выполнить().Выбрать();
Пока Выборка.Следующий()Цикл
.....
КонецЦикла;

Но запрос не отрабатывает и в цикл я не попадаю. Где туплю?

zidane_rus 30.08.2012 12:09

СпрНоменклатура.Наименование ПОДОБНО ""%"" + &Наименование + ""%""

angro 30.08.2012 12:09

попробуй ПП="""%"+СОКРЛП(Значение)+"%""";

Andronav 30.08.2012 12:20

попробывал два варианта, не помогло ((

zidane_rus 30.08.2012 12:22

Не может быть, это проверенный вариант контекстного поиска. В моем варианте нужно передавать параметром в запрос саму подстроку без всяких символов

Andronav 30.08.2012 12:26

Копипастю код

ЗпрТекст="Выбрать * Из Справочник.Спр1.ДополнительныеРеквизиты Где Справочник.Спр1.ДополнительныеРеквизиты.Значение подобно ""%""" + "&ПЗнач" + ""%"" ;
Зпр = Новый Запрос (ЗпрТекст);
ПП=СОКРЛП(Значение);
Зпр.УстановитьПараметр("ПЗнач",ПП);
Выборка = Зпр.Выполнить().Выбрать();
Пока Выборка.Следующий()Цикл


Ругается что преобразование значения к типу Число не может быть выполнено ((

zidane_rus 30.08.2012 12:29

Значит сравнение подобно не подходит, тк число хранится в дополнительных реквизитах. Используйте равно.... Но тогда точное сравнение

zidane_rus 30.08.2012 12:32

Можно дополнительные реквизиты преобразовать через команду запроса "выразить", это как вариант и оставить мою конструкцию в запросе

zidane_rus 30.08.2012 12:40

ЗпрТекст="Выбрать * Из Справочник.Спр1.ДополнительныеРеквизиты Где (ВЫРАЗИТЬ(Справочник.Спр1.ДополнительныеРеквизиты.Значение КАК СТРОКА(100))) подобно ""%""" + "&ПЗнач" + ""%"" ;
Зпр = Новый Запрос (ЗпрТекст);
ПП=СОКРЛП(Значение);
Зпр.УстановитьПараметр("ПЗнач",ПП);
Выборка = Зпр.Выполнить().Выбрать();
Пока Выборка.Следующий()Цикл

zidane_rus 30.08.2012 12:44

Запрос = Новый Запрос;
Запрос.Текст = "Выбрать * Из Справочник.Спр1.ДополнительныеРеквизиты Где (ВЫРАЗИТЬ(Справочник.Спр1.ДополнительныеРеквизиты.Значение КАК СТРОКА(100))) подобно ""%""+&ПЗнач+""%"" ;
Запрос.УстановитьПараметр("ПЗнач",СокрЛП(ПП) );
ВыборкаДетальныеЗаписи = Запрос.Выполнить().Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий()Цикл
КонецЦикла;

Andronav 30.08.2012 14:02

Михаил спасибо. Буду завтра дальше копать и попробую Ваши варианты.


Текущее время: 08:38. Часовой пояс GMT +3.