Вычисляемые поля
Что такое вычисляемые поля
Заголовок раздела «Что такое вычисляемые поля»Вычисляемые поля позволяют автоматически создавать новые данные на основе существующих полей DataPacket с помощью формул. Это работает по принципу формул в Excel: вы задаёте выражение, и оно автоматически вычисляется для каждой записи данных.
Вычисляемые поля не тратят токены, так как все операции выполняются локально, без обращения к внешним API.
Из чего состоит формула
Заголовок раздела «Из чего состоит формула»Формула может содержать три типа элементов:
Переменные
Заголовок раздела «Переменные»Ссылки на поля текущего пакета данных, заключённые в двойные фигурные скобки:
{{firstName}} -- значение поля firstName{{company.name}} -- вложенный доступ к даннымФункции
Заголовок раздела «Функции»Вызываются с префиксом $ и принимают аргументы в скобках:
$upper({{name}}) -- верхний регистр$concat({{firstName}}, " ", {{lastName}}) -- объединение строк$if($gt({{age}}, 18), "Взрослый", "Ребёнок") -- условиеПолный список функций описан в разделе Функции шаблонов.
Литералы
Заголовок раздела «Литералы»Константные значения:
- Строки:
"текст"или'текст' - Числа:
42,3.14,-100 - Логические:
true,false - Пустое значение:
null
Порядок выполнения
Заголовок раздела «Порядок выполнения»Вычисляемые поля выполняются последовательно сверху вниз. Это означает, что каждое следующее поле может использовать результаты предыдущих вычислений.
Пример:
- Поле
fullName=$concat({{firstName}}, " ", {{lastName}}) - Поле
greeting=$concat("Здравствуйте, ", {{fullName}}, "!")
Второе поле использует результат первого. Если поменять их местами, greeting не сможет обратиться к ещё не вычисленному fullName.
Как настроить вычисляемые поля
Заголовок раздела «Как настроить вычисляемые поля»Шаг 1: Открыть настройки процессора
Заголовок раздела «Шаг 1: Открыть настройки процессора»Нажмите на иконку редактирования у нужного процессора в воронке.
Шаг 2: Перейти в раздел “Вычисляемые поля”
Заголовок раздела «Шаг 2: Перейти в раздел “Вычисляемые поля”»В настройках процессора найдите раздел “Вычисляемые поля” (Computed Fields).
Шаг 3: Добавить новое поле
Заголовок раздела «Шаг 3: Добавить новое поле»Нажмите кнопку “Добавить поле” и заполните:
| Поле | Описание |
|---|---|
| Имя поля | Название нового поля (латиницей, без пробелов). Например: fullName, totalPrice |
| Формула | Выражение для вычисления. Например: $concat({{firstName}}, " ", {{lastName}}) |
| Описание | Необязательное пояснение для понимания назначения поля |
Шаг 4: Проверить формулу
Заголовок раздела «Шаг 4: Проверить формулу»Система автоматически проверяет формулу при вводе. Индикатор валидации показывает, корректна ли формула или содержит ошибки.
Шаг 5: Сохранить изменения
Заголовок раздела «Шаг 5: Сохранить изменения»Нажмите “Сохранить”. Новое вычисляемое поле будет применяться ко всем новым записям, создаваемым процессором.
Вычисление на существующих данных
Заголовок раздела «Вычисление на существующих данных»Если у вас уже есть данные и вы добавили новое вычисляемое поле, его нужно применить к существующим записям:
- В разделе вычисляемых полей найдите нужное поле.
- Нажмите иконку запуска (треугольник Play) справа от поля.
- Дождитесь завершения — система обработает все существующие записи.
Кнопка запуска активна только для валидных формул.
Удаление вычисляемых полей
Заголовок раздела «Удаление вычисляемых полей»При удалении вычисляемого поля система предлагает два варианта:
- Удалить только настройку — поле не будет вычисляться для новых записей, но существующие вычисленные данные сохранятся в пакетах.
- Удалить настройку и данные — также удалит вычисленные значения из всех существующих записей.
Важные нюансы
Заголовок раздела «Важные нюансы»Порядок полей важен
Заголовок раздела «Порядок полей важен»Поля вычисляются сверху вниз. Если поле B использует результат поля A, то A должно быть выше в списке. Используйте стрелки для изменения порядка полей.
Обработка пустых значений
Заголовок раздела «Обработка пустых значений»Если исходное поле пустое (null), большинство функций вернут null или пустую строку. Используйте функции $default() или $coalesce() для задания значений по умолчанию:
$default({{middleName}}, "Не указано")$coalesce({{phone1}}, {{phone2}}, {{phone3}}, "Нет телефона")Автоматическое преобразование типов
Заголовок раздела «Автоматическое преобразование типов»Функции автоматически преобразуют типы данных при необходимости: строка "123" в числовых функциях станет числом 123, а число 456 в строковых функциях станет строкой "456". Для явного преобразования используйте $toString(), $toNumber(), $toBool().
Ошибки в формулах
Заголовок раздела «Ошибки в формулах»Если формула содержит ошибку при выполнении (например, обращение к несуществующему полю), результат будет содержать текст ошибки. Проверяйте данные после вычислений.
Производительность
Заголовок раздела «Производительность»Сложные вложенные формулы выполняются дольше. При большом объёме данных (10 000+ записей) вычисление может занять некоторое время. Рекомендуется тестировать формулы на небольшой выборке.
Подсказки при вводе
Заголовок раздела «Подсказки при вводе»При вводе формулы доступно автодополнение:
- Введите
/— появится список доступных переменных (полей данных). - Введите
$— появится список доступных функций.
Примеры использования
Заголовок раздела «Примеры использования»Полное ФИО с обработкой пустого отчества
Заголовок раздела «Полное ФИО с обработкой пустого отчества»$concat({{lastName}}, " ", {{firstName}}, $if($isNotEmpty({{middleName}}), $concat(" ", {{middleName}}), ""))Результат: "Петров Иван Сергеевич" или "Петров Иван"
Категория клиента по сумме
Заголовок раздела «Категория клиента по сумме»$if($gte({{totalAmount}}, 1000000), "VIP", $if($gte({{totalAmount}}, 100000), "Premium", $if($gte({{totalAmount}}, 10000), "Standard", "Basic")))Цена со скидкой
Заголовок раздела «Цена со скидкой»$sub({{price}}, $mul({{price}}, $div({{discountPercent}}, 100)))Форматированный телефон
Заголовок раздела «Форматированный телефон»Если телефон хранится как 79991234567:
$concat("+", $substring({{phone}}, 0, 1), " (", $substring({{phone}}, 1, 4), ") ", $substring({{phone}}, 4, 7), "-", $substring({{phone}}, 7, 9), "-", $substring({{phone}}, 9, 11))Результат: "+7 (999) 123-45-67"
Email в нижнем регистре с проверкой
Заголовок раздела «Email в нижнем регистре с проверкой»$if($isNotEmpty({{email}}), $lower($trim({{email}})), "email не указан")Метка с датой создания
Заголовок раздела «Метка с датой создания»$concat("[", $today(), "] ", {{title}})Результат: "[2026-03-02] Название записи"
Следующие шаги
Заголовок раздела «Следующие шаги»- Функции шаблонов — полный справочник всех доступных функций
- Переменные шаблонов — как ссылаться на данные из процессоров
- Система DataPackets — подробнее о структуре данных