HelpF.pro

Запрос по вхождению искомой строки в наименования элементов справочника

В данной статье я расскажу вам как быстро найти в справочнике элементы у которых в наименовании присутствует вхождение искомой нами строки:

Текст запроса будет выглядеть так:

Код 1C v 8.х
 Запрос = Новый Запрос;
Запрос.Текст = 
"ВЫБРАТЬ
| Номенклатура.Ссылка,
| Номенклатура.Наименование
|ИЗ
| Справочник.Товары КАК Номенклатура
|ГДЕ
| Номенклатура.Наименование ПОДОБНОПараметрСтрокаПоиска";

Запрос.УстановитьПараметр("ПараметрСтрокаПоиска", ПараметрСтрокаПоиска);

РезультатЗапроса = Запрос.Выполнить();

ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
// Вставить обработку выборки ВыборкаДетальныеЗаписи
КонецЦикла;

где оператор запроса ПОДРОБНО как раз и будет искать вхождения ПараметрСтрокаПоиска по всем элементам справочника Номенклатура.

Установить значение параметра ПараметрСтрокаПоиска можно командой:

Код 1C v 8.х
 РезультатПоиска.Параметры.УстановитьЗначениеПараметра("ПараметрСтрокаПоиска", "%" + СтрокаПоиска + "%");   

Подобным образом можно организовать поиск по точному вхождению строки. Такой способ подходит для поиска элемента справочника например по коду. Строка запроса изменится и будет выглядеть так:

|Номенклатура.Наименование ПОДОБНОПараметрСтрокаПоиска

Оператор ПОДОБНО позволяет сравнить значение выражения, указанного слева от него, со строкой шаблона, указанной справа. Значение выражения должно иметь тип строка. Если значение выражения удовлетворяет шаблону – результатом оператора будет ИСТИНА, иначе – ЛОЖЬ.

Следующие символы в строке шаблона являются служебными и имеют смысл, отличный от символа строки:

  • % (процент): последовательность, содержащая любое количество произвольных символов
  • _ (подчеркивание): один произвольный символ
  • […] (в квадратных скобках один или несколько символов): любой одиночный символ из перечисленных внутри квадратных скобок. В перечислении могут встречаться диапазоны, например a-z, означающие произвольный символ, входящий в диапазон, включая концы диапазона.
  • [^…] (в квадратных скобках значок отрицания, за которым следует один или несколько символов): любой одиночный символ, кроме тех, которые перечислены следом за значком отрицания


Опубликовано на сайте: https://HelpF.pro
Прямая ссылка: https://HelpF.pro/faq82/view/1660.html