Операторы языка запросов
В данном примере операторы Условие использованы для фильтрации в запросе только выбранных значений параметров отчета:
Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(Квоты) |Товар = Регистр.КвотыТоваров.Товар; |Отдел = Регистр.КвотыТоваров.Отдел; |Сотрудник = Регистр.КвотыТоваров.Сотрудник; |Партнер = Регистр.КвотыТоваров.Партнер; |Количество = Регистр.КвотыТоваров.КвотаТовара; |Группировка Товар; |Группировка Отдел; |Группировка Сотрудник; |Группировка Партнер; |Функция Кол_во = КонОст(Количество); |Условие(Товар.ПринадлежитГруппе(ВыбТовар) = 1); |Условие(Отдел = ВыбОтдел); |Условие(Сотрудник = ВыбСотрудник.Сотрудник); |"//}}ЗАПРОС ; // Если ошибка в запросе, то выход из процедуры Если Запрос.Выполнить(ТекстЗапроса)= 0 Тогда Возврат; КонецЕсли;
В параметре оператора Условие, в принципе, можно записывать логические выражения любой сложности (по правилам встроенного языка 1С:Предприятие), используя любые логические операторы (>, <, =, >=, <>, И, ИЛИ, НЕ и другие), при этом в качестве операндов могут участвовать как внутренние, так и внешние переменные запроса (если существуют внутренняя и внешняя переменные с одинаковым именем, то использоваться по данному имени будет внутренняя переменная).
Пример:
Условие(Цена > 23.5); Условие((Товар.ПринадлежитГруппе(ВыбТовар) = 1) И (Товар.Розн_Цена = 100));
Если в описании запроса использовано несколько операторов Условие, то они объединяются по логическому "И".
Пример:
Использование двух операторов:
Условие(Товар.Наименование <> "Стол"); Условие(Товар.Наименование <> "Шкаф");
…аналогично записи одного оператора:
Условие((Товар.Наименование <> "Стол") И (Товар.Наименование<> "Шкаф"));