Режим Построитель выражений

Режим Построитель выражения позволяет строить сколько угодно сложные выражения, используя при этом элементы структуры объекта базы данных, константы, функции и операторы.
В редакторе выражения доступен быстрый поиск его составных элементов.
Режим Построитель выражения вызывается в окне свойств атрибута, содержащего выражение (например, для задания значения глобального показателя базы данных).
Для перехода к окну редактирования выражения необходимо щёлкнуть на кнопку вычисляемого свойства.

Окно Построитель выражений содержит:

  1. списки компонентов выражений, в том числе объекты базы данных, функции, константы, операторы, распределенные по вкладкам Атрибуты и Операции,
  2. поле построителя выражения, где необходимо ввести выражение вручную либо добавить компоненты, дважды щёлкнув по ним мышью,
  3. поле подсказки со сведениями о выбранном компоненте выражения: синтаксис, описание, пример.
  4. настройка автоматического вывода подсказки. При включении данной настройки по мере ручного ввода компонента (идентификатора, функции и т. д.) будет отображаться список возможных значений. В этом случае можно продолжать ручной ввод, либо выбрать, дважды щёлкнув мышью, необходимое значение в списке. Также можно использовать клавиши со стрелками вверх и вниз, чтобы выбрать нужное значение, а затем нажать клавишу Enter, чтобы добавить его в выражение. Например, если вы начнёте вводить ??Dat??, в раскрывающемся списке отобразятся все функции, имена которых начинаются со значения Dat.

Компоненты выражений:
1. Атрибуты:

Синтаксис Описание [тип данных] Пример [Результат]
Объект.ID Идентификатор текущего объекта: документа или справочника[Число] Объект.ID[100500]
Объект.Наименование Наименование текущего объекта: документа или справочник [Строка] Объект.Наименование[Ввод заявки]
Пользователь.ID Идентификатор текущего пользователя[Число] Пользователь.ID
Объект.ID Идентификатор текущего объекта: документа или справочника[Число] Объект.ID[100500]
Объект.Наименование Наименование текущего объекта: документа или справочник [Строка] Объект.Наименование[Ввод заявки]
Пользователь.ID Идентификатор текущего пользователя[Число] Пользователь.ID [326]
Пользователь.ФИО ФИО текущего пользователя[Строка] Пользователь.ФИО[Иванов Иван Иванович]
Пользователь.Логин Логин текущего пользователя[Строка] Пользователь.Логин[ivanov]
Расчетная_дата Текущая расчётная дата[Дата] Расчетная_дата[26.11.2019] Начало расчётного периода[Дата] Расчетный_период.Начало[01.01.2019]
Расчетный_период.Конец Конец расчётного периода[Дата] Расчетный_период.Конец[31.12.2019]
ФормаРедактирования.ID Идентификатор текущей формы редактирования.[Число] ФормаРедактирования.ID[4033]

2. Операции - список выполняемых действий:

Функции

Категория

Синтаксис

Описание [тип данных]

Пример [Результат]

Дата и время

DATE

DATE(x), DATE(year, month, day),

где x - строковое значение даты в формате [dd.MM.yyyy];

year, month, day - целочисленные значениягода, месяца и дня. результат - значение даты

Возвращает дату исходя из входных параметров

Date(??31.12.2016??) или Date(2016, 12, 31) [результат 31 декабря 2016]

NOW

NOW(), результат - значение Даты

Возвращает значение текущих даты и времени данного компьютера, выраженные как местное время.

now() [результат типа ??01.01.2016 00:00:00??]

TODAY

TODAY(), результат - значение Даты

Возвращает текущую дату (не расчетную) в формате местного времени

today() [результат типа ??01.01.2016??]

YEAR

YEAR(x), где x - дата; результат - целочисленное значение

Возвращает значение года для даты x

now() [результат типа ??01.01.2016 00:00:00??]

MONTH

MONTH(x), где x - дата; результат - целочисленное значение

Возвращает значение месяца для даты x

month(??2016-02-01 00:00:00??) [результат 2]

DAY

DAY(x), где x - дата; результат - целочисленное значение

Возвращает день месяца для даты x

day(??01.02.2016??) [результат 1]

WEEK_DAY

WEEK_DAY(x), где x - дата; результат - целочисленное значение

Возвращает число от 0 (вск) до 6 (сб) - день недели даты x

week_day(??2016-01-02??) [результат 6]

DATE_DIFF

DATE_DIFF(x,y), где x,y - выражения даты; результат - целочисленное значение

Вычитает указанную дату y из указанной даты x и возвращает временной интервал в количестве дней

DATE_DIFF(??2016-01-02??, ??01.01.2016??) [результат 1]

DATE_ADD

DATE_ADD(x,y,m,d,h,min,s), где x - выражение даты, y,m,d,h,min,s - целочисленые выражения; результат - дата

Возвращает дату x, к которой добавлено заданное число лет y, месяцев m, дней d, часов h, минут min, секунд s

DATE_ADD(??2016-01-01??, 0,0,1,0,0,1) [результат ??2016-01-02 00:00:01??]

Математические

ABS

ABS(expr), где expr - числовое выражение; результат - числовое значение

Возвращает абсолютное значение заданного числа

ABS(БАОЧГ1)

SQRT

SQRT(expr), где expr - числовое выражение; результат - дробное числовое значение

Возвращает абсолютное значение заданного числа

ABS(БАОЧГ1)

SIN

SIN(expr), где expr - числовое выражение; результат - дробное числовое значение

Возвращает синус указанного угла в радианах

SIN(7.981)

COS

COS(expr), где expr - числовое выражение; результат - дробное числовое значение

Возвращает косинус указанного угла в радианах

COS(0.128)

ROUND

ROUND(expr), ROUND(expr, digits), где expr - числовое выражение; digits - целое числовое выражение; результат - целое и дробное числовые значение соответсвенно

Округляет числовое значение expr до ближайшего числа с заданным количеством дробных разрядов digits или до ближайшего целого

ROUND(5.8) [результат 6];

ROUND(5.123, 2) [результат 5.12]

POWER

POWER(x,y), где x,y - числовые выражения; результат - числовые значение

Возвращает указанное выражение x, возведённое в указанную степень y

POWER(БАОЧГ1, 2)

CEILING

CEILING(expr), где expr - числовое выражение; результат - целое числовое выражение

Округляет число в большую сторону до ближайшего целого

CEILING(5.2) [результат 6]

Текстовые

ISNULL

ISNULL(x), где x - выражение; результат - логическое значение

Указывает, является ли выражение пустым

ISNULL(??атрибут??)

ISNULLOREMPTY

ISNULLOREMPTY(x), где x - строковое выражение; результат - строковое значение

Указывает, является ли указанная строка пустой.

(Устаревшее. Не рекомендуется к использованию.)

ISNULLOREMPTY(????)

LEN

LEN(x), где x - строковое выражение; результат - целое числовое значение

Возвращает число знаков в текущем объекте x

len(??БАОЧГ??) [результат 5]

LCASE

LCASE(x), где x - строковое выражение; результат - строковое значение

Возвращает копию данной строки, переведённую в нижний регистр

lcase(??КОММЕНТАРИИ??) [результат ??комментарии??]

UCASE

UCASE(x), где x - строковое выражение; результат - строковое значение

Возвращает копию этой строки, переведённую в верхний регистр

ucase(??комментарии??) [результат ??КОММЕНТАРИИ??]

IS_NUMERIC

IS_NUMERIC(x), где x - строковое выражение; результат - логическое значение

Указывает, является ли указанная строка строкой приводимой в число

IS_NUMERIC(??123.456??) [результат ??ИСТИНА??]; IS_NUMERIC(??123ABC??) [результат ??ЛОЖЬ??]

LEFT

LEFT(x,y), где x - строковое выражение, y - положительное целочисленное выражение; результат - строковое значение

Возвращает подстроку из строки x длиной у от начала строки

left(??АБВ??,2) [результат ??АБ??]

RIGHT

RIGHT(x,y), где x - строковое выражение, y - положительное целочисленное выражение; результат - строковое значение

Возвращает подстроку из строки x длиной у от конца строки

right(??АБВ??,2) [результат ??БВ??]

REMOVE

REMOVE(x,y,z), где x - строковое выражение, y,z - положительные целочисленные выражения; результат - строковое значение

Возвращает строку, в которой было удалено указанное число символов z в указанной позиции y

remove(??АБВ---абв??,3,3) [результат ??АБВабв??]

REPLACE

REPLACE(x,y,z), где x,y,z - строковые выражения; результат - строковое значение

Возвращает строку, в которой все вхождения заданной строки y в строке x заменены другой заданной строкой z

replace(??АБВ123абв??,??123??,??9??) [результат ??АБВ9абв??]

CONTAINS

CONTAINS(x,y), где x,y - строковые выражения; результат - логическое значение

Возвращает значение, указывающее, содержит ли указанная строка x значение подстроки у, переданной в качестве параметра

CONTAINS(??123??,??1??) [результат ??ИСТИНА??]

TRIM

TRIM(x), TRIM(x,y), где x,y - строковые выражения; результат - строковое значение

Удаляет все начальные и конечные символы-разделители или вхождения набора знаков, заданного в виде строки y, из текущей строки x

trim(??_abc.??, ??._??) [результат ??abc??]

LTRIM

LTRIM(x), LTRIM(x,y), где x,y - строковые выражения; результат - строковое значение

Удаляет все начальные символы-разделители или вхождения набора знаков, заданного в виде строки y, из текущей строки x

ltrim(??_abc??, ????) [результат ??abc??]

RTRIM

RTRIM(x), RTRIM(x,y), где x,y - строковые выражения; результат - строковое значение

Удаляет все конечные символы-разделители или вхождения набора знаков, заданного в виде строки y, из текущей строки x

rtrim(??abc??, ????) [результат ??abc??]

CONCAT

CONCAT(p1,p2,p3,...,pi), где p1,p2,p3,...,pi - строковые выражения; результат - строковое значение

Сцепляет строки p1,p2,p3,...,pi в одну строку

CONCAT(??а??, ??б??) [результат ??аб??]

STR

STR(x), где x - числовое или логическое выражения; результат - строковое значение

Преобразовывает явно числовое или логическое значение x в эквивалентное ему строковое представление

STR(12) [результат ??12??]

SUBSTR

SUBSTR(x,y,z), где x - строковое выражение, y,z - неотрицательные целочисленные выражения; результат - строковое значение

Извлекает подстроку из строки x. Подстрока начинается с указанной позиции y и имеет указанную длину z

substr(??abc??, 2, 1) [результат ??b??]

CHAR

CHAR(x), где x - целое число

Возвращает символ Unicode по коду x

CHAR(65) [результат ??A??]

ASC

ASC(x), где x строка; результат - целочисленное значение

Возвращает код первого символа входной строки x или -1, если строка имела значение NULL

ASC(??A??) [результат 65]

Агрегирующие

SUM

SUM(p1,...,pi), где p1,...,pi - числовые выражения; результат - числовое значение

Вычисляет сумму последовательности выражений p1,...,pi

SUM(1,2,3) [результат 6]

AVG

AVG(p1,...,pi), где p1,...,pi - числовые выражения; результат - числовое значение

Вычисляет среднее последовательности выражений p1,...,pi

AVG(1,2,3) [результат 3]

MEDIAN

MEDIAN(p1,...,pi), где p1,...,pi - числовые выражения; результат - числовое значение

Вычисляет медиану последовательности выражений p1,...,pi

MEDIAN(1,2,3) [результат 2]; MEDIAN(1,2,3,4) [результат 2.5]

MIN

MIN(p1,...,pi), где p1,...,pi - числовые или строковые выражения; результат - числовые или строковые значение, в зависимости от типа передаваемых параметров

Возвращает минимальное значение последовательности выражений p1,...,pi

MIN(1,2,3) [результат 1]

MAX

MAX(p1,...,pi), где p1,...,pi - числовые или строковые выражения; результат - числовые или строковые значение, в зависимости от типа передаваемых параметров

Возвращает максимальное значение последовательности выражений p1,...,pi

MAX(1,2,3) [результат 3]

FIRST

FIRST(p1,...,pi), где p1,...,pi - числовые или строковые выражения; результат - числовые или строковые значение, в зависимости от типа передаваемых параметров

Возвращает первый элемент последовательности выражений p1,...,pi

FIRST(1,2,3) [результат 1]

LAST

LAST(p1,...,pi), где p1,...,pi - числовые или строковые выражения; результат - числовые или строковые значение, в зависимости от типа передаваем