Запросы 1С:Предприятие 8. Параметры запроса и операторы сравнения

Оглавление:

  1. Основы работы.
  2. Параметры и операторы сравнения.
  3. Условия отбора.
  4. Группировки.
  5. Итоги.
  6. Вложенные запросы.

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

Параметры выделяются в тексте запроса символом &.

В качестве параметра можно передавать любой фрагмент текста запроса. Обычно в качестве параметров передаются значения для сравнений, операторы сравнений и источники запросов.

Использование в качестве источника передаваемой в запрос таблицы значений мы рассмотрим в отдельной статье. В остальных случаях синтаксис использования параметров в запросе 1С выглядит так:

Запрос.Текст="ВЫБРАТЬ
|   КурсыВалютСрезПервых.Период,
|   КурсыВалютСрезПервых.Валюта,
|   КурсыВалютСрезПервых.Курс,
|ИЗ
|   РегистрСведений.КурсыВалют.СрезПервых КАК КурсыВалютСрезПервых
|ГДЕ
| КурсыВалютСрезПервых.Курс &ТипСравнения &ЗначениеСравнения"
;
Запрос.УстановитьПараметр("ТипСравнения", ">=");
Запрос.УстановитьПараметр("ЗначениеСравнения", 40);

В этом примере в запрос передается и знак сравнения и значение, с которым нужно сравнивать курс валюты.

Задавая условия в запросах 1С, мы сравниваем одно значение с другим(и). В платформе 1С:Предприятие предусмотрены следующие виды сравнений:

  • Равно — обозначается знаком = ;
  • Не равно — обозначается знаком <> ;
  • Больше — обозначается знаком > ;
  • Больше или равно — обозначается знаком >= ;
  • Меньше — обозначается знаком < ;
  • Меньше или равно — обозначается знаком <= ;
  • Между — используется, когда нужно одновременно применить условия Больше или равно и Меньше или равно, то есть задаются две границы значений.
    Запрос.Текст="ВЫБРАТЬ
    |   КурсыВалютСрезПервых.Период,
    |   КурсыВалютСрезПервых.Валюта,
    |   КурсыВалютСрезПервых.Курс,
    |ИЗ
    |   РегистрСведений.КурсыВалют.СрезПервых (, Курс МЕЖДУ 30 И 40) КАК КурсыВалютСрезПервых"
  • ПОДОБНО — проверяет соответствие строки некоему шаблону. Шаблон может содержать следующие специальные символы:
    • % — любое количество произвольных символов;
    • _ — один произвольный символ;
    • [abc] — любой из символов, перечисленных в квадратных скобках (можно указывать диапазоны, например [0-9]);
    • [^abc] — любой из символов, кроме перечисленных в квадратных скобках.

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

    Запрос.Текст="ВЫБРАТЬ
    |   КурсыВалютСрезПервых.Период,
    |   КурсыВалютСрезПервых.Валюта,
    |   КурсыВалютСрезПервых.Курс,
    |ИЗ
    |   РегистрСведений.КурсыВалют.СрезПервых КАК КурсыВалютСрезПервых
    |ГДЕ
    | КурсыВалютСрезПервых.Валюта ПОДОБНО "
    "%\_"" СПЕЦСИМВОЛ """""

    Такой запрос показал бы курсы валют, названия которых заканчивается на знак подчеркивания.

  • В и В ИЕРАРХИИ — проверяет наличие элемента в некотором списке. Если используется оператор В, то проверяется только сам список, а если В ИЕРАРХИИ, то еще и элементы, подчиненные элементам списка.
    В качестве списка может использоваться массив, список значений, таблица значений. Оператор В дополнительно может работать с результатом вложенного запроса при условии, что в нем выбирается только одно поле.
    Синтаксис для сравнения с массивом, списком значений или таблицей значений, которые передаются в запрос в виде параметра:

    Запрос.Текст="ВЫБРАТЬ
    |   КурсыВалютСрезПервых.Период,
    |   КурсыВалютСрезПервых.Валюта,
    |   КурсыВалютСрезПервых.Курс,
    |ИЗ
    |   РегистрСведений.КурсыВалют.СрезПервых КАК КурсыВалютСрезПервых
    |ГДЕ
    | КурсыВалютСрезПервых.Валюта В (&amp;ПереченьВалют)

    Синтаксис для сравнения с результатом вложенного запроса:

    Запрос.Текст="ВЫБРАТЬ
    |   КурсыВалютСрезПервых.Период,
    |   КурсыВалютСрезПервых.Валюта,
    |   КурсыВалютСрезПервых.Курс,
    |ИЗ
    |   РегистрСведений.КурсыВалют.СрезПервых КАК КурсыВалютСрезПервых
    |ГДЕ
    |   КурсыВалютСрезПервых.Валюта В (ВЫБРАТЬ
    |                                    Валюты.Ссылка,
    |                                    ИЗ
    |                                    Справочник.Валюты КАК Валюты)
  • ССЫЛКА — проверяет принадлежность элемента к определенному объекту конфигурации. Применяется, когда проверяемое поле имеет составной тип данных.
    Запрос.Текст="ВЫБРАТЬ
    |   ОстаткиТоваров.Номенклатура
    |ИЗ
    |   РегистрНакопления.ОстаткиТоваров КАК ОстаткиТоваров
    |ГДЕ
    |   ОстаткиТоваров.Регистратор ССЫЛКА Документ.ПоступлениеТоваров

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *