Операторы языка запросов
Логический оператор принадлежности
Кроме обычных логических операторов (>, <, =, >=, <=, <>, И, ИЛИ, НЕ) в операторе "Условие …" языка запросов можно использовать дополнительный оператор – логический оператор принадлежности.
Синтаксис:
В
Англоязычный синоним:
In
Описание:
Оператор языка запросов "Условие (А в Б);" говорит о том, что условие истинно, когда значение А является подмножеством значения Б.
Следует особо отметить, что если значение Б пустое (объект не выбран), то условие является истинным, в отличии от оператора "=" (равно).
Если на принадлежность проверяется значение типа элемент справочника, то проверка выполняется с учетом его возможного вхождения в группу справочника. Аналогично, проверка на принадлежность субсчета осуществляется с учетом его возможного вхождения в счет-группу.
В качестве включающего подмножества логического оператора принадлежности (второй параметр после слова "в") может выступать как простое значение, так и список значений. В этом случае проверка выполняется с учетом вы-шеотмеченных особенностей для каждой строки списка значений.
Скорость выполнения запросов оптимизирована под использование оператора принадлежности, как в клиент-серверной, так и в файл-серверной версии системы 1С:Предприятие.
Внимание
Логический оператор принадлежности не поддерживается встроенным языком системы 1С:Предприятие, а применяется только в языке запросов.
Оператор принадлежности существенно облегчает написание текстов запроса, делает их более понятными.
Пример:
Без использования логического оператора принадлежности:
Текст3апроса = ... | Товар = Документ.ВидДокумента.Товар;"; ... Если ВыбТовар.Выбран() = 1 Тогда Если ВыбТовар.ЭтоГруппа() = 1 Тогда ТекстЗапроса = ТекстЗапроса + "Условие(Товар.ПринадлежитГруппе(ВыбТовар) = 1);"; Иначе ТекстЗапроса = ТекстЗапроса + "Условие(Товар = ВыбТовар);"; КонецЕсли КонецЕсли;
С использованием логического оператора принадлежности:
Текст3апроса= ... |Товар = Документ.ВидДокумента.Товар;"; ... |Условие (Товар в ВыбТовар); ...