![]() |
Где ошибка? Убился искать. Двойные кавычки в запросе. Новичек в этом деле. Задача вставить значение параметра в кавычках. Пишу сл. запрос. ЗпрТекст= "Выбрать * Из Справочник.Спр1.ДополнительныеРеквизиты Где Справочник.Спр1.ДополнительныеРеквизиты.Значение подобно &ПЗнач" ПЗнач должны быть строкой в кавычках, т.е. "%пример%". Делал так (Значение - Строка которую набирает пользователь в форме.) Зпр = Новый Запрос (ЗпрТекст); ПП=Символ(34)+"%"+СОКРЛП(Значение)+"%"+Символ(34); Зпр.УстановитьПараметр("ПЗнач",ПП); Выборка = Зпр.Выполнить().Выбрать(); Пока Выборка.Следующий()Цикл ..... КонецЦикла; Но запрос не отрабатывает и в цикл я не попадаю. Где туплю? |
СпрНоменклатура.Наименование ПОДОБНО ""%"" + &Наименование + ""%"" |
попробуй ПП="""%"+СОКРЛП(Значение)+"%"""; |
попробывал два варианта, не помогло (( |
Не может быть, это проверенный вариант контекстного поиска. В моем варианте нужно передавать параметром в запрос саму подстроку без всяких символов |
Копипастю код ЗпрТекст="Выбрать * Из Справочник.Спр1.ДополнительныеРеквизиты Где Справочник.Спр1.ДополнительныеРеквизиты.Значение подобно ""%""" + "&ПЗнач" + ""%"" ; Зпр = Новый Запрос (ЗпрТекст); ПП=СОКРЛП(Значение); Зпр.УстановитьПараметр("ПЗнач",ПП); Выборка = Зпр.Выполнить().Выбрать(); Пока Выборка.Следующий()Цикл Ругается что преобразование значения к типу Число не может быть выполнено (( |
Значит сравнение подобно не подходит, тк число хранится в дополнительных реквизитах. Используйте равно.... Но тогда точное сравнение |
Можно дополнительные реквизиты преобразовать через команду запроса "выразить", это как вариант и оставить мою конструкцию в запросе |
ЗпрТекст="Выбрать * Из Справочник.Спр1.ДополнительныеРеквизиты Где (ВЫРАЗИТЬ(Справочник.Спр1.ДополнительныеРеквизиты.Значение КАК СТРОКА(100))) подобно ""%""" + "&ПЗнач" + ""%"" ; Зпр = Новый Запрос (ЗпрТекст); ПП=СОКРЛП(Значение); Зпр.УстановитьПараметр("ПЗнач",ПП); Выборка = Зпр.Выполнить().Выбрать(); Пока Выборка.Следующий()Цикл |
Запрос = Новый Запрос; Запрос.Текст = "Выбрать * Из Справочник.Спр1.ДополнительныеРеквизиты Где (ВЫРАЗИТЬ(Справочник.Спр1.ДополнительныеРеквизиты.Значение КАК СТРОКА(100))) подобно ""%""+&ПЗнач+""%"" ; Запрос.УстановитьПараметр("ПЗнач",СокрЛП(ПП) ); ВыборкаДетальныеЗаписи = Запрос.Выполнить().Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий()Цикл КонецЦикла; |
Михаил спасибо. Буду завтра дальше копать и попробую Ваши варианты. |
| Текущее время: 08:38. Часовой пояс GMT +3. |