Перейти к основному содержимому

Типы, доступные в языке запросов

Некоторые типы, поддерживаемые в языке запросов, позволяют обращаться к свойствам, вызывать методы и выполнять выражения, которые определены для этих типов во встроенном языке. Далее перечислены типы и та функциональность, которая доступна для них в языке запросов.

Null

Тип Null имеет единственное значение: Null.

примечание

Во встроенном языке для работы со значениями Null, получаемыми из языка запросов или внешних баз данных, используется тип Null пространства имен Стд::БазаДанных.

В языке запросов значение Null обозначает отсутствие данных. Например, когда при соединении таблиц для поля первой таблицы невозможно подобрать ни одной записи из второй таблицы, которая удовлетворяла бы условию связи. В этом случае поле второй таблицы будет иметь значение Null.

Если не сказано иного, в языке запросов любое выражение с участием NULL возвращает NULL:

  • 2 + NULL дает NULL
  • Контрагент == NULL дает NULL

Есть две операции, которые позволяют определить, является ли указанное значение значением Null:

При сортировке по возрастанию Null всегда идет первым на всех СУБД.

Булевы операции со значением Null:

  • Null или Ложь дает Null

  • Null или Истина дает Истина

  • Null и Ложь дает Ложь

  • Null и Истина дает Null

  • не Null дает Null

При использовании в агрегатных функциях значения Null игнорируются, кроме функции Количество(*).

Байты

Используется для работы с двоичными данными (байтовыми строками).

Литерал

Соответствует литералу типа Байты встроенного языка. Пример:

Байты{DEADBEEF}

Для записи шестнадцатеричного числа допускается использование как нижнего, так и верхнего регистра.

Булево

Поддерживаются все свойства и методы типа Булево встроенного языка.

Литерал

Соответствует литералу типа Булево во встроенном языке. Пример:

Документ.ПометкаУдаления == Ложь

Время

Поддерживаются все свойства и методы типа Время встроенного языка.

Реализовано вычитание и сложение:

  • Время - Время = Длительность
  • Время + Длительность = Время

Литерал

Соответствует литералу типа Время во встроенном языке. Пример:

Время{00:00:00}
Время{12:34:56.789}

Ограничения:

  • Минимальное допустимое значение времени — 00:00:00.000.
  • Максимальное допустимое значение времени — 23:59:59.999.

Дата

Поддерживаются все свойства и методы типа Дата встроенного языка.

Реализовано вычитание и сложение:

  • Дата - Дата = Длительность
  • Дата + Длительность = Дата

Литерал

Соответствует литералу типа Дата во встроенном языке. Пример:

Дата{2024-01-01}

Ограничения:

  • Минимальное допустимое значение даты — 01.01.0001.
  • Максимальное допустимое значение даты — 31.12.9999.

ДатаВремя

Поддерживаются все свойства и методы типа ДатаВремя встроенного языка.

дополнительно

При выполнении метода ВМомент() смещение часового пояса будет вычтено из значения ДатаВремя. Запросы с использованием этого метода могут работать гораздо медленнее.

Реализовано вычитание и сложение:

  • ДатаВремя - ДатаВремя = Длительность
  • ДатаВремя + Длительность = ДатаВремя

Реализован конструктор:

ДатаВремя(дата)
ДатаВремя(дата, время)

Литерал

Соответствует литералу типа ДатаВремя во встроенном языке. Пример:

ДатаВремя{2024-01-01 00:00:00}

Ограничения:

  • Минимальное допустимое значение даты — 01.01.0001 00:00.
  • Максимальное допустимое значение даты — 31.12.9999 23:59:59.999.

Длительность

Поддерживаются все свойства и методы типа Длительность встроенного языка.

Реализовано сложение со значениями других типов:

  • Дата + Длительность = Дата
  • Время + Длительность = Время
  • ДатаВремя + Длительность = ДатаВремя

Литерал

Соответствует литералу типа Длительность во встроенном языке. Пример:

5мс
-2ч

Ограничения:

  • Минимальное допустимое значение длительности — (-1018 + 1) миллисекунд.
  • Максимальное допустимое значение длительности — (1018 - 1) миллисекунд.

Момент

Реализован метод ВДатаВремя()

дополнительно

При выполнении метода ВДатаВремя() смещение часового пояса будет прибавлено к значению Момент. Запросы с использованием этого метода могут работать гораздо медленнее

Литерал

Соответствует литералу типа Момент во встроенном языке. Пример:

Момент{2024-01-01T00:00:00Z}

Ограничения:

  • Минимальное допустимое значение момента — 01.01.0001 00:00 UTC.
  • Максимальное допустимое значение момента — 31.12.3999 23:59 UTC.

Неопределено

Используется для работы со значением Неопределено.

Литерал

Соответствует литералу типа Неопределено во встроенном языке. Пример:

ДокументыПродаж.Договор == Неопределено

Ссылочный тип

Используется для работы со ссылками на записи ссылочных таблиц. Определяется именем и типом идентификатора ссылки. Например, имя-справочника.Ссылка.

Реализован конструктор имя-справочника.Ссылка(), который позволяет создать новую ссылку по Ууид:

Товары.Поставщик == Контрагенты.Ссылка(Ууид{fec3140a-5f2b-11e8-9c2d-fa7ae01bbebc})

Литерал

Литерала нет. Вместо литерала следует использовать конструирование ссылки как структуры (см. пример выше).

Строка

Значения типа Строка в языке запросов сравниваются без учета регистра букв (т. е. е и Е будут считаться равными), но с учетом акцентов (т. е. е и ё будут считаться различными)

Литерал

Соответствует литералу типа Строка во встроенном языке. Поддерживаются управляющие последовательности. Пример:

Товары.Наименование == "Валенки"

Тип

Используется для оперирования значениями типа, например для проверки типа значения.

Литерал

Соответствует литералу типа Тип во встроенном языке. Пример:

Тип<ФизическиеЛица.Ссылка> == Товары.Поставщик.ПолучитьТип()

Тип перечисления

Используется для работы с перечислениями.

Литерал

Синтаксис:

<ИмяТипаПеречисления>.<ИмяЗначенияПеречисления>

Поддерживаются все доступные на сервере перечисления: системные, объявленные в проекте, объявленные в серверных модулях. Имя типа перечисления, объявленного в модуле, задается так же, как во встроенном языке — Подсистема::Модуль.Перечисление. Пример:

ОстаткиТоваров.ВидДвижения == ВидДвиженияНакопления.Приход

УникальныйИдентификатор

Используется для работы с уникальными идентификаторами.

Литерал

Соответствует литералу типа Ууид во встроенном языке. Пример:

Ууид{2C1E3646-90d4-4125-8D2C-7E4DE12323cE}

ЧасовойПояс

Реализовано свойство Имя.

Литерал

Соответствует литералу типа ЧасовойПояс во встроенном языке. Пример:

ЧасовойПояс{Europe/Moscow}

Число

Реализованы методы ЦелаяЧасть() и Округлить().

Литерал

Соответствует десятичному литералу типа Число во встроенном языке. Пример:

Товары.Цены > 15000.500