1с язык запросов подобно

Оператор ПОДОБНО позволяет сравнить в запросе данные строкового типа, находящиеся слева от оператора с данными строкового типа находящимися справа от оператора. Результат сравнения принимает значения «Истина» или «Ложь», таким образом сравнение можно применять в виде условия.

Для оператора ПОДОБНО предусмотрены специальные служебные символы, которые не воспринимаются как строка:

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

Если необходимо для сравнения указать один из вышеперечисленных спецсимволов, необходимо воспользоваться ключевым словом «СПЕЦСИМВОЛ»

Особенности использования с различными СУБД

В случае использования СУБД «IBM DB2» справа от оператора ПОДОБНО может располагаться только параметр. Шаблонные символы только «_» (подчеркивание означающее любой символ) и «%» (процент означающий последовательность любых символов).
В случае использования СУБД «PostgreSQL» или «Oracle Database» спецсимволы «квадратные скобки [. ]» воспринимаются только если указаны текстом в запросе, а НЕ передаются параметром в запрос.

Таким образом, в файловой базе спецсимволы будут всегда восприниматься одинаково, и по разному в зависимости от используемой СУБД в клиент-серверном варианте.

Иногда возникает ситуация, когда в 1С 8.3 или 8.2 нужно сделать выборку, например, из справочника Номенклатура всех элементов, у которых в наименовании имеется слово «глазурь». Или из справочника Контрагенты выбрать всех контрагентов, в фамилии которых встречается слово «Иван». В общем, проверить какое-нибудь строковое значение.

Для этого существует оператор в запросах 1С 8.3 и 8.2 — «Подобно». Используется он, соответственно, в условиях:

Получите 267 видеоуроков по 1С бесплатно:

Как пользоваться шаблонами в запросах 1С?

Чтобы сформировать условие отбора, в качестве параметра нужно передать некий шаблон. Для создания шаблона существуют так называемые служебные символы.

Например, символ «%» допускает любую последовательность произвольных символов:

Существуют и другие специальные символы:

  • % (процент) — допускает любую последовательность произвольных символов;
  • _ (нижнее подчеркивание) — любой один символ;
  • […] – один произвольный символ из перечисленных внутри скобок. Кроме перечисления символов можно использовать диапазоны. Пример: а-о;
  • [^…] – то же самое, что и предыдущее, но наоборот. Знак «^» означает отрицание.

Смотрите также небольшое видео про этот оператор:

Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):

К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.

Рассмотрим назначение и использование условного оператора ПОДОБНО(eng. LIKE) в языке запроса 1С в примерах.

Предназначение

Проверить на соответствие строкового значения в запросе указанному шаблону — возвращает значение Булево-типа (ИСТИНА или ЛОЖЬ).

  • Проверка регистро — независима.
  • При запросе используются индексы таблиц — не связано с индексами полнотекстового поиска.
  • Может долго выполнятся при больших таблицах.
  • Строки неограниченной длины следует привести функцией ПОДСТРОКА

Места использования

  • В условиях оператора ГДЕ
  • В условиях конструкции ВЫБОР КОГДА <> ТОГДА «» ИНАЧЕ «» КОНЕЦ
  • В полях выборки (например: Наименование ПОДОБНО &ПараметрПодобно как СтрокаПодходит)

Описание синтаксиса оператора ПОДОБНО

Параметр оператора должен быть строкой: может задаться константой, либо передан как параметр запроса.

Литералы(маски), указанные ниже, допускается использовать совместно и по отдельности.

Точное указание строки

ВЫБРАТЬ первые 10
Ключи.Наименование
ИЗ
Справочник.Ключи КАК Ключи
ГДЕ
Ключи.Наименование ПОДОБНО «1»//Равносильно Ключи.Наименование =»1″

Результат:

% — литерал, означающий произвольное количество любых символов

ВЫБРАТЬ первые 10
Ключи.Наименование
ИЗ
Справочник.Ключи КАК Ключи
ГДЕ
Ключи.Наименование ПОДОБНО «%»

Результат: любые 10 наименований

_ (подчеркивание): литерал, соответствующий одному любому символу

Пример №1:

ВЫБРАТЬ первые 10
Ключи.Наименование
ИЗ
Справочник.Ключи КАК Ключи
ГДЕ
Ключи.Наименование ПОДОБНО «_»

Пример №2: начинающиеся на любой символ, затем следует «1», а дальше любые символы

ВЫБРАТЬ первые 10
Ключи.Наименование
ИЗ
Справочник.Ключи КАК Ключи
ГДЕ
Ключи.Наименование ПОДОБНО «_1%»

Результат:

[] (в квадратных скобках один или несколько символов)

  • Каждый литерал, соответствующий одному любому символу — используется как ИЛИ.
    Допустимо указание диапазона, например a-z,0-5, означающее произвольный символ из заданного диапазона

Пример

ВЫБРАТЬ первые 10
Ключи.Наименование
ИЗ
Справочник.Ключи КАК Ключи
ГДЕ
Ключи.Наименование ПОДОБНО «[лз]%»

Результат: 10 начинающихся на «л» или «з»

Пример: начинающиеся на 5,6,7

ВЫБРАТЬ первые 10
Ключи.Наименование
ИЗ
Справочник.Ключи КАК Ключи
ГДЕ
Ключи.Наименование ПОДОБНО «[5-7]%»

Результат:

[^] (в квадратных скобках значок исключения ^, за которым следует один или несколько символов)

Равносильно любому символу (_) кроме указанных ([])

Пример

ВЫБРАТЬ первые 10
Ключи.Наименование
ИЗ
Справочник.Ключи КАК Ключи
ГДЕ
Ключи.Наименование ПОДОБНО «8.[^012]%»//не включаем 8.0,8.1,8.2

Результат: все начинающиеся на «8.» исключая указанные

СПЕЦСИМВОЛ — команда для указания в запросе зарегистрированных выше символов

В качестве служебного символа допустимо использовать как минимум: #,

Пример:

ВЫБРАТЬ первые 10
Ключи.Наименование
ИЗ
Справочник.Ключи КАК Ключи
ГДЕ
Ключи.Наименование ПОДОБНО «#_» СПЕЦСИМВОЛ «#»

Результат:

Применимость в платформах

  • 8.0
  • 8.1
  • 8.2
  • 8.3
  • 8.4

Неверные параметры ПОДОБНО >

  • Передается параметр не строкового типа: например число 1 вместо строки «1»
  • Сравнивается поле не строкового типа с верной маской (например ссылка) или при соединении значение не проверяется на ЕстьNUL

Обратите внимание на текст ошибки, где выводится вопрос:

>Ключи.Ссылка ПОДОБНО «1»

Ключи.Наименование ПОДОБНО >&L

Реклама – самая интересная и самая трудная форма литературы.

Оцените статью
Добавить комментарий