Общие сведения
Надёжность и безопасность
Покупка лицензии
Начало работы
Роли в системе
Проекты
Концепции
Компоненты
Инструкции
Задачи
Финансы
Ресурсы
Таймшиты
Клиенты
Вики
Затраты
Отчёты и аналитика
FAQ
Типы отчётов
Использование отчётов
Группировка данных источника
Группировка данных в отчёте
Типы виджетов
Общие отчёты и шаблоны
Настройка отчёта
Экспорт отчётов
Пользовательские настройки отчёта
Вычисляемые поля
Особые колонки отчётов с временными рядами
Использование панелей мониторинга
Публикация панелей
Фильтры источников данных
Настройка и администрирование
Типовой порядок настройки системы
Язык формул и выражений
On-premises
API
История изменений
Термины и определения

Язык формул и выражений

Обновлено: 29.08.2025

Язык выражений используется в следующих компонентах системы:

  • Вычисляемые поля аналитики;
  • Шаблоны политик нумерации.

Назначение

Язык формул и выражений предназначен для вычисления функций (выражений). Результатом вычисления может быть:

  • строка;
  • булево значение;
  • число;
  • дата.

Значения ячеек в вычисляемом поле задаются его выражением. В выражении допускаются:

  • ссылки на другие поля в строке данных или сущности (для сущности поддерживаются вложенные свойства, например [Project.Code]);
  • арифметические и логические операторы;
  • встроенные функции.

Синтаксис

  • имена полей и свойств сущности заключаются в квадратные скобки: [ColumnName];
  • порядок вычислений задаётся круглыми скобками: ([ColumnName] - [ColumnName]) * 1.18;
  • допускается применение литералов (фиксированных текстовых строк), которые заключаются в одинарные кавычки: 'Text'.

Операторы

  • логические: ||, &;
  • отношений: ==, !=, <, <=, >, >=;
  • аддитивные: +, -;
  • мультипликативные: *, /, %;
  • унарные: !.

Дополнительно поддерживаются:

  • тернарный оператор: condition ? value1 : value2;
  • оператор проверки типа: is;
  • оператор приведения типа: as.

Функции работы со строками и форматирования

Concat

Concat(string1, string2, ...) — возвращает объединённую строку.

Пример: Concat('Hello', ' ', 'world') = 'Hello world'

Format

Format(template, param1, param2..., paramN) — возвращает отформатированное значение по шаблону.

Пример шаблона: Format('Проект {0} от {1:yyyy}', [ProjectName], [ProjectCreated]]

  • Проект и от — фиксированный текст, который выводится как есть
  • {0} — элемент форматирования с индексом 0. Соответствует первому параметру — полю ProjectName
  • {1:yyyy} — элемент форматирования с индексом 1. Соответствует второму параметру — полю ProjectCreated. Часть :yyyy задаёт формат года.

Каждый элемент форматирования выглядит так: {index[, alignment][: formatString]}

  • index — порядковый номер параметра в списке. Обязательный компонент.

  • alignment — целое число (может быть со знаком). Определяет ширину поля и выравнивание. Необязательный компонент.

    {% note info «Компонент alignment„ %}

    • Если значение alignment меньше длины форматируемой строки, то оно пропускается. В качестве значения ширины поля используется длина форматируемой строки.
    • Если у alignment положительное значение, форматируемые данные выравниваются в поле по правому краю.
    • Если отрицательное значение — данные выравниваются по левому краю.
    • При необходимости отформатированная строка дополняется пробелами.
    • При использовании компонента alignment необходимо поставить запятую.
  • formatString — строка формата, которая зависит от типа данных. Необязательный компонент.

Элемент форматирования обязательно заключается в парные фигурные скобки.

Список часто используемых форматов

Примечание

Для форматов с указанием культуры (например, en-US), конечный результат зависит от языка пользователя, формирующего отчёт или панель показателей.

Для полей с типом «Дата» и «Дата и время»:

  • «d» — 15.06.2009T13:45:30 -> 6/15/2009 (en-US)
  • «D» — 15.06.2009T13:45:30 -> Monday, June 15, 2009
  • «f» — 15.06.2009T13:45:30 -> Monday, June 15, 2009 1:45 PM (en-US)
  • «F» — 15.06.2009T13:45:30 -> Monday, June 15, 2009 1:45:30 PM (en-US)
  • «g» — 15.06.2009T13:45:30 -> 6/15/2009 1:45 PM (en-US)
  • «G» — 15.06.2009T13:45:30 -> 6/15/2009 1:45:30 PM (en-US)
  • «M» — 15.06.2009T13:45:30 -> June 15 (en-US)
  • «Y» — 15.06.2009T13:45:30 -> June, 2009 (en-US)
  • «t» — 15.06.2009T13:45:30 -> 1:45 PM (en-US)
  • «%d» — 01.06.2009T13:45:30 -> 1
  • «dd» — 01.06.2009T13:45:30 -> 01
  • «ddd» — 15.06.2009T13:45:30 -> Mon (en-US)
  • «dddd» — 15.06.2009T13:45:30 -> Monday (en-US)
  • «%M» — 15.06.2009T13:45:30 -> 6
  • «MM» — 15.06.2009T13:45:30 -> 06
  • «MMM» — 15.06.2009T13:45:30 -> Jun (en-US)
  • «MMMM» — 15.06.2009T13:45:30 -> June (en-US)
  • «%y» — 01.01.0001T00:00:00 -> 1
  • «yy» — 01.01.0001T00:00:00 -> 01
  • «yyy» — 01.01.0001T00:00:00 -> 001
  • «yyyy» — 01.01.0001T00:00:00 -> 0001

Для полей с типом «Число» и «Дробное число»:

  • «N» — 1234.567 -> 1,234.57 (en-US)
  • «N0» — 1234.567 -> 1,234 (en-US)
  • «N4» — 1234.567 -> 1,234.5670 (en-US)

Примеры:

  • Format('Наименование: {0} {1}', '001', 'Внедрение ERP') = 'Наименование: 001 Внедрение ERP'
  • Format('{0:MMMM}, [ProjectCreated]) = 'Январь'

Функции работы с числами

Floor

Floor(number) — возвращает ближайшее максимальное целое значение.

Пример: Floor(112.1) = 113

Round

Round(number, precision) — возвращает округлённое значение c заданной точностью.

Пример: Round(112.156, 2) = 112.16

Min

Min(number, number) — возвращает минимальное из двух значений.

Пример: Min(1, 2) = 1

Max

Max(number, number) — возвращает максимальное из двух значений.

Пример: Max(1, 2) = 2

Abs

Abs(number) — возвращает абсолютное значение.

Пример: Abs(-10) = 10

Ceiling

Ceiling(number) — возвращает ближайшее большее целое.

Пример: Ceiling(1.2) = 2

Функции работы с датами

GetDate

GetDate() — возвращает текущую дату.

Пример: GetDate() = '2019-01-01'

Now

Now() — возвращает текущую дату и время.

DateDiff

DateDiff(datepart, startDate, endDate) — возвращает продолжительность между startDate и endDate в заданной единице измерения.

Параметр datepart — строка, которая определяет единицу измерения разницы дат и может принимать значения:

  • year
  • quarter
  • month
  • week
  • day
  • hour

Пример: DateDiff('day', '2019-01-01', '2019-01-10') = 10

Функции условий

Coalesce

Coalesce(object, object, ...) — возвращает первый параметр из списка, значение которого отлично от NULL.

Пример: Coalesce(NULL, NULL, 2) = 2

In

In(value, case1, case2, ...) — возвращает TRUE, если первый параметр равен одному из последующих.

Пример: In('Submitted', 'Draft', 'Submitted') = TRUE

If

If(boolean, result1, result2) — возвращает result1, если первый параметр равен TRUE, и result2 — если иначе.

Пример: If('Draft' == 'Draft', 'It is a draft', 'It is not a draft') = 'It is a draft'

Iif

Iif(condition, truePart, falsePart) — сокращённая форма условного выражения.

Пример: Iif(1 > 0, 'Yes', 'No') = 'Yes'

IsNullOrZero

IsNullOrZero(number) — возвращает TRUE, если параметр равен NULL или 0

Пример: IsNullOrZero(0) = TRUE

IsNull

IsNull(object) — возвращает TRUE, если параметр равен NULL

Пример: IsNullOrZero(0) = FALSE

IsNullOrEmpty

IsNullOrEmpty(string) — возвращает TRUE, если параметр равен NULL или пустой строке.

Пример: IsNullOrEmpty('') = TRUE

Содержание

Назначение Синтаксис Операторы Функции работы со строками и форматирования Concat Format Список часто используемых форматов Функции работы с числами Floor Round Min Max Abs Ceiling Функции работы с датами GetDate Now DateDiff Функции условий Coalesce In If Iif IsNullOrZero IsNull IsNullOrEmpty
Ничего не найдено

Перейти на русскую версию?