Формулу удобно проверить до того, как сохранять её в вычисляемом поле, правиле автоматизации или валидаторе: вычислить её на портале для конкретного элемента и посмотреть результат. Для этого используется метод REST API модуля вычислений:
POST <адрес портала>/api/calc/get/<GUID элемента>
Заголовки: Authorization: <токен>
Content-Type: application/json
Тело: "<формула>"
Ниже описаны два способа: через расширение браузера Talend API Tester (проще для пользователя) и через консоль браузера (не требует установки расширений).
Внимание
Формула выполняется «по-настоящему». Функция Copy создаст копию элемента, функция Inc увеличит счётчик. Проверяйте такие формулы на тестовых элементах и счётчиках.
В обоих способах понадобится GUID элемента, для которого вычисляется формула. Его можно взять из адресной строки при открытой карточке элемента (фрагмент вида .../item/<GUID>).
Способ 1. Talend API Tester
Пример работы с расширением показан в видеороликах ниже.
1.1. Установка расширения
Установите расширение Talend API Tester (Restlet plugin) для Google Chrome или Microsoft Edge. Подойдёт и любой другой REST-клиент: Postman, Insomnia, Bruno.
1.2. Получение токена авторизации из браузера
Токен — идентификатор вашей текущей сессии на портале. Получать его отдельным запросом с логином и паролем не нужно: достаточно взять его из cookie браузера, в котором открыт портал.
- Войдите на портал в браузере.
- Нажмите F12, чтобы открыть инструменты разработчика.
- Перейдите на вкладку Application (в Firefox — Storage), в левой панели раскройте Cookies и выберите адрес портала.
- Найдите cookie с именем Authorization и скопируйте значение из столбца Value (двойной щелчок по значению → Ctrl+C). Если в значении встречаются последовательности вида %2B, %2F, включите флажок Show URL-decoded и скопируйте декодированное значение.
Безопасность
Токен даёт доступ к порталу от вашего имени, пока сессия активна. Не передавайте его другим людям, не сохраняйте в общих файлах и не публикуйте на скриншотах. После выхода из портала (Выход) токен перестаёт действовать — для новой сессии скопируйте новый токен.
1.3. Выполнение запроса
- Создайте запрос: метод POST, адрес
<адрес портала>/api/calc/get/<GUID элемента>(1). - Добавьте заголовок Authorization со значением токена из п. 1.2 (2) и заголовок Content-Type: application/json.
- В поле BODY укажите формулу в двойных кавычках (3).
- Нажмите Send. В разделе Response отобразится результат вычисления или сообщение об ошибке.
1.4. Как записать формулу в теле запроса
- Тело запроса — строка JSON: формула заключается в двойные кавычки.
- Внутри формулы используйте одинарные кавычки — тогда формулу не придётся дополнительно экранировать:
"Parent('Проект', 'Шифр')". - Если в формуле есть двойные кавычки или обратная косая черта, в JSON их нужно экранировать ещё раз:
"→\",\→\\. Например, формулаSelect(This('Наблюдатели', true), 'Field(\"Почта\")')в теле запроса записывается как"Select(This('Наблюдатели', true), 'Field(\\\"Почта\\\")')". Именно так записаны формулы с пометкой «Для API Tester» в старых материалах. Сохранять формулу в настройки нужно без этого дополнительного экранирования.
Способ 2. Консоль браузера
Запрос можно выполнить прямо из консоли браузера на открытой вкладке портала. Расширения, логин, пароль и копирование токена не нужны: браузер сам передаёт cookie текущей сессии.
2.1. Подготовка
- Войдите на портал в браузере (Google Chrome, Microsoft Edge, Firefox и др.) и оставайтесь на вкладке портала.
- Нажмите F12 и перейдите на вкладку Console (Консоль).
Вставка кода в консоль
При первой вставке кода в консоль Chrome и Edge показывают предупреждение и блокируют вставку. Введите в консоли allow pasting и нажмите Enter, после чего вставьте код ещё раз. Вставляйте в консоль только код, происхождение и смысл которого вам понятны.
2.2. Функция для проверки формул
Вставьте в консоль и выполните (Enter) вспомогательную функцию. Она отправляет формулу на портал и выводит в консоль код ответа и результат:
async function calc(id, formula) {
const response = await fetch('/api/calc/get/' + id, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(formula)
});
const text = await response.text();
console.log(response.status, text);
return text;
}
Функция действует до перезагрузки вкладки. Запрос выполняется от имени текущего пользователя.
2.3. Вычисление формулы
Вызовите функцию, подставив GUID элемента и формулу:
calc('<GUID элемента>', "This('Название')");
calc('<GUID элемента>', "Field(Parent('Проект'), 'Шифр')");
calc('<GUID элемента>', String.raw`Select(This('Исполнитель', true), 'Field(\'Почта\')')`);
- Если в формуле только одинарные кавычки, заключите её в двойные:
"This('Название')". - Если в формуле есть двойные кавычки или обратная косая черта (экранирование
\',\"), заключите её в обратные апострофы с префиксомString.raw— тогда формулу можно вставить ровно в том виде, в каком она будет сохранена в настройках, без дополнительного экранирования.
Разбор результата
| Результат | Что означает |
|---|---|
200 и ожидаемое значение | Формула корректна для этого элемента. Проверьте её ещё на 2–3 элементах с разными данными (заполненные и пустые атрибуты, разные типы). |
200 и пустая строка "" | Чаще всего — ошибка внутри функции: опечатка в названии атрибута, типа элемента, типа связи, справочника, либо элемент не найден. Проверяйте формулу по частям. |
500 (ошибка сервера) | Синтаксическая ошибка: скобки, кавычки, запятые, неизвестный оператор или функция (имена чувствительны к регистру). См. Проверка перед сохранением. |
401, переадресация или HTML страницы входа | Сессия завершена или токен устарел. Войдите на портал заново; для API Tester скопируйте новый токен. |
Сложные формулы отлаживайте по частям: сначала внутренние функции (Parent('Проект')), затем внешние (Field(Parent('Проект'), 'Шифр')), и только потом условия и форматирование.


