Иллюстрированный самоучитель по языку системы 1С:Предприятие

Операторы языка запросов

В данном примере операторы Условие использованы для фильтрации в запросе только выбранных значений параметров отчета:

Запрос = СоздатьОбъект("Запрос");

ТекстЗапроса =

"//{{ЗАПРОС(Квоты)

|Товар = Регистр.КвотыТоваров.Товар;

|Отдел = Регистр.КвотыТоваров.Отдел;

|Сотрудник = Регистр.КвотыТоваров.Сотрудник;

|Партнер = Регистр.КвотыТоваров.Партнер;

|Количество = Регистр.КвотыТоваров.КвотаТовара;

|Группировка Товар;

|Группировка Отдел;

|Группировка Сотрудник;

|Группировка Партнер;

|Функция Кол_во = КонОст(Количество);

|Условие(Товар.ПринадлежитГруппе(ВыбТовар) = 1);

|Условие(Отдел = ВыбОтдел);

|Условие(Сотрудник = ВыбСотрудник.Сотрудник);

|"//}}ЗАПРОС

;

// Если ошибка в запросе, то выход из процедуры

Если Запрос.Выполнить(ТекстЗапроса)= 0 Тогда

Возврат;

КонецЕсли;

В параметре оператора Условие, в принципе, можно записывать логические выражения любой сложности (по правилам встроенного языка 1С:Предприятие), используя любые логические операторы (>, <, =, >=, <>, И, ИЛИ, НЕ и другие), при этом в качестве операндов могут участвовать как внутренние, так и внешние переменные запроса (если существуют внутренняя и внешняя переменные с одинаковым именем, то использоваться по данному имени будет внутренняя переменная).

Пример:

Условие(Цена > 23.5);

Условие((Товар.ПринадлежитГруппе(ВыбТовар) = 1) И (Товар.Розн_Цена = 100));

Если в описании запроса использовано несколько операторов Условие, то они объединяются по логическому "И".

Пример:

Использование двух операторов:

Условие(Товар.Наименование <> "Стол");

Условие(Товар.Наименование <> "Шкаф");

…аналогично записи одного оператора:

Условие((Товар.Наименование <> "Стол") И (Товар.Наименование<> "Шкаф"));
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.