Типы, доступные в языке запросов
Некоторые типы, поддерживаемые в языке запросов, позволяют обращаться к свойствам, вызывать методы и выполнять выражения, которые определены для этих типов во встроенном языке. Далее перечислены типы и та функциональность, которая доступна для них в языке запросов.
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
.
Длительность
Поддерживаются все свойства и методы типа Длительность
встроенного языка.
Реализовано сложение со значениями других типов:
Дата
+Длительнос ть
=Дата
Время
+Длительность
=Время
ДатаВремя
+Длительность
=ДатаВремя
Литерал
Соответствует литералу типа Длительность
во встроенном языке. Пример:
1д2ч3м4с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})