Поделитесь в соцсетях

подобно в 1с

Содержание[Убрать]

подобно в 1с

1с запрос подобно

Оператор ПОДОБНО в запросе проверяет строковые значения из таблиц на подобие шаблону. 
Используется следующим образом слева от этого оператора помещается проверяемая строка, а справа шаблон.

После проверки возвращает Истина или Ложь, соответственно активно используется в условиях.
Для создания шаблона используются следующие служебные символы:

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

Остальные символы используются по своему прямому назначению. 
Если в качестве символа необходимо передать один из вышеуказанных служебных символов, то ему должен предшествовать <Спецсимвол>. Сам <Спецсимвол> (любой подходящий символ) определяется в этом же операторе после ключевого слова СПЕЦСИМВОЛ.
Например, шаблон “%АБВ[0-9][абвг]\_абв%” СПЕЦСИМВОЛ “\” означает подстроку, состоящую из последовательности символов:
буквы А; буквы Б; буквы В; одной цифры; одной из букв а, б, в или г; символа подчеркивания; буквы а; буквы б; буквы в.
Причем перед этой последовательностью может располагаться произвольный набор символов.

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

Недостаточно прав для комментирования