Формулу удобно проверить до того, как сохранять её в вычисляемом поле, правиле автоматизации или валидаторе: вычислить её на портале для конкретного элемента и посмотреть результат. Для этого используется метод REST API модуля вычислений:

POST <адрес портала>/api/calc/get/<GUID элемента>
Заголовки:  Authorization: <токен>
            Content-Type: application/json
Тело:       "<формула>"

Ниже описаны два способа: через расширение браузера Talend API Tester (проще для пользователя) и через консоль браузера (не требует установки расширений).

Внимание

Формула выполняется «по-настоящему». Функция Copy создаст копию элемента, функция Inc увеличит счётчик. Проверяйте такие формулы на тестовых элементах и счётчиках.

В обоих способах понадобится GUID элемента, для которого вычисляется формула. Его можно взять из адресной строки при открытой карточке элемента (фрагмент вида .../item/<GUID>).

Способ 1. Talend API Tester

Пример работы с расширением показан в видеороликах ниже.

01_ApiTester_2026-07-09_15-16-10.mp402_ApiTester_2026-07-09_15-18-32.mp4

1.1. Установка расширения

Установите расширение Talend API Tester (Restlet plugin) для Google Chrome или Microsoft Edge. Подойдёт и любой другой REST-клиент: Postman, Insomnia, Bruno.

1.2. Получение токена авторизации из браузера

Токен — идентификатор вашей текущей сессии на портале. Получать его отдельным запросом с логином и паролем не нужно: достаточно взять его из cookie браузера, в котором открыт портал.

  1. Войдите на портал в браузере.
  2. Нажмите F12, чтобы открыть инструменты разработчика.
  3. Перейдите на вкладку Application (в Firefox — Storage), в левой панели раскройте Cookies и выберите адрес портала.
  4. Найдите cookie с именем Authorization и скопируйте значение из столбца Value (двойной щелчок по значению → Ctrl+C). Если в значении встречаются последовательности вида %2B, %2F, включите флажок Show URL-decoded и скопируйте декодированное значение.

Безопасность

Токен даёт доступ к порталу от вашего имени, пока сессия активна. Не передавайте его другим людям, не сохраняйте в общих файлах и не публикуйте на скриншотах. После выхода из портала (Выход) токен перестаёт действовать — для новой сессии скопируйте новый токен.

1.3. Выполнение запроса

  1. Создайте запрос: метод POST, адрес <адрес портала>/api/calc/get/<GUID элемента> (1).
  2. Добавьте заголовок Authorization со значением токена из п. 1.2 (2) и заголовок Content-Type: application/json.
  3. В поле BODY укажите формулу в двойных кавычках (3).
  4. Нажмите Send. В разделе Response отобразится результат вычисления или сообщение об ошибке.

1.4. Как записать формулу в теле запроса

  • Тело запроса — строка JSON: формула заключается в двойные кавычки.
  • Внутри формулы используйте одинарные кавычки — тогда формулу не придётся дополнительно экранировать: "Parent('Проект', 'Шифр')".
  • Если в формуле есть двойные кавычки или обратная косая черта, в JSON их нужно экранировать ещё раз: " → \", \ → \\. Например, формула Select(This('Наблюдатели', true), 'Field(\"Почта\")') в теле запроса записывается как "Select(This('Наблюдатели', true), 'Field(\\\"Почта\\\")')". Именно так записаны формулы с пометкой «Для API Tester» в старых материалах. Сохранять формулу в настройки нужно без этого дополнительного экранирования.

Способ 2. Консоль браузера

Запрос можно выполнить прямо из консоли браузера на открытой вкладке портала. Расширения, логин, пароль и копирование токена не нужны: браузер сам передаёт cookie текущей сессии.

2.1. Подготовка

  1. Войдите на портал в браузере (Google Chrome, Microsoft Edge, Firefox и др.) и оставайтесь на вкладке портала.
  2. Нажмите F12 и перейдите на вкладку Console (Консоль).

Вставка кода в консоль

При первой вставке кода в консоль Chrome и Edge показывают предупреждение и блокируют вставку. Введите в консоли allow pasting и нажмите Enter, после чего вставьте код ещё раз. Вставляйте в консоль только код, происхождение и смысл которого вам понятны.

2.2. Функция для проверки формул

Вставьте в консоль и выполните (Enter) вспомогательную функцию. Она отправляет формулу на портал и выводит в консоль код ответа и результат:

Функция calc
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('Проект'), 'Шифр')), и только потом условия и форматирование.

См. также

  • No labels