Функции шаблонов
Что такое функции шаблонов
Заголовок раздела «Что такое функции шаблонов»Функции шаблонов позволяют выполнять вычисления и преобразования данных непосредственно в текстовых полях процессоров и в формулах вычисляемых полей. Функции можно комбинировать с переменными для построения сложных выражений.
Синтаксис
Заголовок раздела «Синтаксис»Функция вызывается с префиксом $ и аргументами в скобках:
$functionName(arg1, arg2, ...)Типы аргументов
Заголовок раздела «Типы аргументов»- Строки:
"текст"или'текст' - Числа:
42,3.14 - Boolean:
true,false - Null:
null - Переменные:
{{processorName.field}}
Вложенные функции
Заголовок раздела «Вложенные функции»Функции можно вкладывать друг в друга:
$upper($concat({{search.firstName}}, " ", {{search.lastName}}))$if($gt({{enrichment.revenue}}, 1000000), "Крупная компания", "Малый бизнес")Дата и время
Заголовок раздела «Дата и время»| Функция | Описание | Пример результата |
|---|---|---|
$now() | Текущая дата и время | 2026-03-02 14:30:00 |
$today() | Текущая дата | 2026-03-02 |
$time() | Текущее время | 14:30:00 |
$dayOfWeek() | День недели на русском | Понедельник |
$month() | Название месяца на русском | Март |
$year() | Текущий год | 2026 |
$timestamp() | Unix timestamp в секундах | 1772611800 |
$formatDate(date, format) | Форматирование даты | см. ниже |
Форматирование дат
Заголовок раздела «Форматирование дат»Функция $formatDate принимает дату и шаблон формата:
| Токен | Описание |
|---|---|
YYYY | Год (4 цифры) |
MM | Месяц (01-12) |
DD | День (01-31) |
HH | Часы (00-23) |
mm | Минуты (00-59) |
ss | Секунды (00-59) |
Примеры:
$formatDate({{proc.date}}, "DD.MM.YYYY") --> 03.12.2024$formatDate({{proc.datetime}}, "DD.MM.YYYY HH:mm") --> 03.12.2024 10:30| Функция | Описание | Пример |
|---|---|---|
$concat(a, b, ...) | Объединение строк | $concat({{firstName}}, " ", {{lastName}}) —> "Иван Петров" |
$upper(text) | Верхний регистр | $upper("hello") —> "HELLO" |
$lower(text) | Нижний регистр | $lower("HELLO") —> "hello" |
$trim(text) | Удаление пробелов по краям | $trim(" текст ") —> "текст" |
$length(text) | Длина строки | $length("Привет") —> 6 |
$substring(text, start, end?) | Извлечение подстроки (с 0) | $substring("hello world", 0, 5) —> "hello" |
$replace(text, search, replacement) | Замена всех вхождений | $replace("a-b-c", "-", " ") —> "a b c" |
$split(text, delimiter, index) | Разделение и выбор элемента | $split("a,b,c", ",", 1) —> "b" |
$join(delimiter, a, b, ...) | Объединение через разделитель | $join(", ", "один", "два") —> "один, два" |
$contains(text, search) | Проверка вхождения | $contains("hello", "ell") —> true |
$startsWith(text, prefix) | Начинается с | $startsWith({{phone}}, "+7") —> true/false |
$endsWith(text, suffix) | Заканчивается на | $endsWith({{email}}, ".ru") —> true/false |
$padStart(text, length, char?) | Дополнение слева | $padStart("42", 5, "0") —> "00042" |
$padEnd(text, length, char?) | Дополнение справа | $padEnd("42", 5, "0") —> "42000" |
Математика
Заголовок раздела «Математика»| Функция | Описание | Пример |
|---|---|---|
$add(a, b) | Сложение | $add({{price}}, {{tax}}) |
$sub(a, b) | Вычитание | $sub({{total}}, {{discount}}) |
$mul(a, b) | Умножение | $mul({{price}}, {{quantity}}) |
$div(a, b) | Деление (0 при делении на 0) | $div({{total}}, {{count}}) |
$mod(a, b) | Остаток от деления | $mod({{number}}, 2) —> 0 или 1 |
$abs(n) | Абсолютное значение | $abs(-5) —> 5 |
$round(n, decimals?) | Округление | $round(3.14159, 2) —> 3.14 |
$floor(n) | Округление вниз | $floor(3.9) —> 3 |
$ceil(n) | Округление вверх | $ceil(3.1) —> 4 |
$min(a, b, ...) | Минимальное значение | $min(5, 3, 8) —> 3 |
$max(a, b, ...) | Максимальное значение | $max(5, 3, 8) —> 8 |
$random(min, max) | Случайное целое число | $random(1, 100) |
$randomChoice(a, b, ...) | Случайный выбор из списка | $randomChoice("А", "Б", "В") |
$sum(a, b, ...) | Сумма всех аргументов | $sum(1, 2, 3, 4, 5) —> 15 |
$avg(a, b, ...) | Среднее арифметическое | $avg(10, 20, 30) —> 20 |
$pow(base, exp) | Возведение в степень | $pow(2, 3) —> 8 |
$sqrt(n) | Квадратный корень | $sqrt(16) —> 4 |
| Функция | Описание | Пример |
|---|---|---|
$if(condition, then, else) | Условный выбор | $if($gt({{age}}, 18), "Взрослый", "Ребёнок") |
$eq(a, b) | Равно | $eq({{status}}, "active") —> true/false |
$neq(a, b) | Не равно | $neq({{status}}, "deleted") —> true/false |
$gt(a, b) | Больше | $gt({{amount}}, 1000) —> true/false |
$lt(a, b) | Меньше | $lt({{stock}}, 10) —> true/false |
$gte(a, b) | Больше или равно | $gte({{age}}, 18) —> true/false |
$lte(a, b) | Меньше или равно | $lte({{price}}, 100) —> true/false |
$and(a, b, ...) | Логическое И | $and($gt({{x}}, 0), $lt({{x}}, 100)) |
$or(a, b, ...) | Логическое ИЛИ | $or($eq({{role}}, "admin"), $eq({{role}}, "manager")) |
$not(a) | Логическое отрицание | $not($eq({{status}}, "deleted")) |
$isNull(value) | Проверка на null | $isNull({{optionalField}}) —> true/false |
$isNotNull(value) | Проверка на не-null | $isNotNull({{email}}) —> true/false |
$isEmpty(value) | Пустая строка или null | $isEmpty({{comment}}) —> true/false |
$isNotEmpty(value) | Не пустое значение | $isNotEmpty({{name}}) —> true/false |
$switch(value, case1, result1, ..., default) | Множественный выбор | см. ниже |
Пример $switch:
$switch({{status}}, "new", "Новый", "active", "Активный", "closed", "Закрыт", "Неизвестно")Утилиты
Заголовок раздела «Утилиты»| Функция | Описание | Пример |
|---|---|---|
$coalesce(a, b, ...) | Первое не-null и не-пустое | $coalesce({{phone}}, {{mobile}}, "Не указан") |
$default(value, defaultValue) | Значение по умолчанию | $default({{comment}}, "Без комментария") |
$typeof(value) | Тип значения | $typeof(42) —> "number" |
$toString(value) | Преобразование в строку | $toString(42) —> "42" |
$toNumber(value) | Преобразование в число | $toNumber("42") —> 42 |
$toBool(value) | Преобразование в boolean | $toBool("yes") —> true |
$json(value) | Сериализация в JSON | $json({{data}}) —> {"key": "value"} |
$uuid() | Генерация UUID v4 | $uuid() —> "550e8400-e29b-..." |
$hash(value) | Хеш строки (hex) | $hash("hello") —> "5d41402a" |
$encode(value) | URL-кодирование | $encode("привет мир") |
$decode(value) | URL-декодирование | $decode("%D0%BF%D1%80...") —> "привет" |
$first(value) | Первый элемент/символ | $first("hello") —> "h" |
$last(value) | Последний элемент/символ | $last("hello") —> "o" |
Практические примеры
Заголовок раздела «Практические примеры»Форматирование имени клиента
Заголовок раздела «Форматирование имени клиента»$upper($concat({{search.lastName}}, " ", $substring({{search.firstName}}, 0, 1), "."))Результат: ПЕТРОВ И.
Определение категории по сумме
Заголовок раздела «Определение категории по сумме»$if($gte({{enrichment.revenue}}, 1000000), "Крупная", $if($gte({{enrichment.revenue}}, 100000), "Средняя", "Малая"))Генерация номера записи
Заголовок раздела «Генерация номера записи»$concat("LEAD-", $today(), "-", $padStart({{search.id}}, 6, "0"))Результат: LEAD-2026-03-02-000123
Подстановка со значением по умолчанию
Заголовок раздела «Подстановка со значением по умолчанию»$if($isNotEmpty({{enrichment.phone}}), $concat("Тел: ", {{enrichment.phone}}), "Телефон не указан")Следующие шаги
Заголовок раздела «Следующие шаги»- Переменные шаблонов — как ссылаться на данные из процессоров
- Вычисляемые поля — как использовать функции для создания новых полей данных