Условие в запросе 1С 8.3. ГДЕ. ПОДОБНО. МЕЖДУ. ИМЕЮЩИЕ

ГДЕ

Фильтрация записей выполняется в предложении ГДЕ. Например:

Данный запрос выберет все документы списания с банковского счета, где сумма списания равна 1000.

В условии запроса можно использовать любые поля таблицы, не только те которые есть в списке полей выборки:

В условии может быть несколько полей, соединенных между собой логическими операторами И, ИЛИ, НЕ:

Данный запрос выберет все документы, где сумма списания равна 1000 или 2000 и счет не равен «1234567890».

Приоритеты логических операторов в запросах:

  1. Не
  2. И
  3. ИЛИ

Приоритет может быть изменен с помощью скобок.

Можно использовать различные логические выражения:

Запрос выберет все документы, где сумма списания больше или равна 500 и меньше 4000.

В условии можно обращаться к полям табличных частей:

Запрос выберет все документы, где в табличной части СписокДоговоров договор называется «Основной». При этом в качестве таблицы-источника была указана основная таблица документа, к таблице табличной части обращались только в предложении ГДЕ.

При сравнении строк регистр не имеет значения:

Также не учитываются пробелы в конце строки

И если наоборот, у контрагента в наименовании будут в конце пробелы, а в условии запроса нет.

Но пробелы в начале строки учитываются:

Данный запрос не вернет ни одной записи.

ПОДОБНО

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

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

  • % — любое количество символов
  • _ — один произвольный символ
  • [ ] — один из символов внутри скобок, можно диапазон a-z
  • [^ ] — один из символов кроме указанных внутри скобок

Например нужно выбрать все документы с контрагентами, где первая буква наименования контрагента равна «П», вторая «р», третья может быть «и» или «о», четвертая не равна «а», дальше могут быть любые буквы и цифры:

Или нужно отобрать все документы, где в наименовании контрагента первые 3 буквы могут быть произвольными, четвертая является цифрой и всего в наименовании может быть 6 букв:

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

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

МЕЖДУ

Оператор МЕЖДУ позволяет проверить на вхождение в диапазон. Например, нужно отобрать все документы, где сумма списания находится в диапазоне между 100 и 2500:

ИМЕЮЩИЕ

В предложении ГДЕ нельзя использовать агрегатные функции. Для того чтобы выполнить проверку условия после применения агрегатной функции нужно использовать предложение ИМЕЮЩИЕ.

Например, в базе есть 4 документа:

Нужно выбрать тех контрагентов, у которых общая сумма списания больше или равна 300. Если выполнить такой запрос, то он не вернет ничего, хотя по контрагенту «Привезу все» общая сумма равна 300.

Потому что сначала были выбраны документы с суммой больше или равной 300 (а таких документов нет), а потом результат выборки был свернут по контрагенту. В этом случае можно воспользоваться предложением ИМЕЮЩИЕ:

В этом случае проверка условия выполняется после группировки.


Подписывайтесь на группу ВКонтакте , где я публикую ссылки на новые статьи с данного сайта, а также интересные материалы с других ресурсов по программированию в 1С
Понравилась статья? Поделиться с друзьями:
Используя этот сайт, Вы даете согласие на использование cookies. На данном этапе Вы можете отказаться от использования cookies, настроив необходимые параметры в своем браузере.
ok