Рассчитать график платежей с точным итогом
Робот «Рассчитать график платежей с точным итогом» распределяет переданную сумму по датам и весам, сохраняя точный итог в выбранной валюте.

Видимая часть формы настройки в Битрикс24. Скриншот показывает поля действия; он не подтверждает выполнение учебного примера.
Для кого и какую задачу решает
Менеджеру договоров и администратору процесса, который рассчитывает аванс и последующие платежи с точным сохранением общей суммы.
При делении суммы на доли копейки могут потеряться. Робот распределяет минимальные денежные единицы по весам и явно разрешает равенство остатков по ID. График остаётся расчётом: счета и платёжные документы автоматически не создаются.
Параметры и подготовка
| Поле | Как заполнить |
|---|---|
Единая валюта, код из трех латинских букв (CURRENCY) |
Обязательное поле |
Число дробных знаков: 0–6 (SCALE) |
Обязательное поле |
Политика распределения (ALLOCATION) |
Обязательное поле. Пропорционально весам, затем наибольшие остатки (largest_remainders) |
Равные остатки (TIE_BREAK) |
Обязательное поле. По возрастанию ID как строки (id_asc) |
Общая сумма (TOTAL) |
Обязательное поле |
Платежи JSON с ID, датой, весом и валютой (PAYMENTS) |
Обязательное поле |
Перед настройкой выберите, откуда процесс получит каждое значение: постоянная настройка, поле карточки или результат предыдущего шага. Подписи в таблице соответствуют полям робота. Коды в скобках помогают различать похожие параметры при передаче данных между шагами.
Как использовать
- Укажите TOTAL, общую валюту и SCALE от 0 до 6. Готовая сумма должна точно соответствовать выбранной точности.
- Передайте PAYMENTS с уникальными id, явными датами due, относительными весами weight и currency. Вес не обязан быть процентом, но должен быть неотрицательным.
- Выберите ALLOCATION=largest_remainders и TIE_BREAK=id_asc. При равных остатках меньший ID сравнивается как строка, а не как число.
- После выполнения проверьте точный итог, число платежей и amounts в paymentsJson. Передайте согласованный график следующему действию оформления документов.
Как заполнить JSON-поля
Платежи JSON с ID, датой, весом и валютой (PAYMENTS)
[
{
"id": "advance",
"due": "2026-10-15",
"weight": "30",
"currency": "RUB"
},
{
"id": "final",
"due": "2026-11-15",
"weight": "70",
"currency": "RUB"
}
]
До 1000 записей; id уникальны, due явно заданная дата или время с offset, weight неотрицательный, currency совпадает с CURRENCY. [] допустим только при нулевой общей сумме.
Это массив: внешние квадратные скобки обязательны. Пустой массив [] отличается от объекта {}; возможность пустого списка определяется правилами этого поля, описанными ниже.
Учебный пример и ожидаемый результат
TOTAL=100.00, CURRENCY=RUB, SCALE=2. PAYMENTS=[{"id":"advance","due":"2026-10-15","weight":"30","currency":"RUB"},{"id":"final","due":"2026-11-15","weight":"70","currency":"RUB"}]. При выбранных правилах ожидаются 30.00 и 70.00, общий итог 100.00. Даты взяты для учебного графика и не рассчитываются от стадии сделки.
Пример показывает подготовленные учебные данные. Фактический результат зависит от переданных значений и доступных данных вашего процесса.
Что возвращает и как продолжить процесс
- «График JSON с точными суммами» (
paymentsJson). - «Точный итог» (
total). - «Валюта» (
currency). - «Дробных знаков» (
scale). - «Платежей» (
count).
Порядок вывода совпадает с входным списком. Суммы по конкретным ID не меняются при перестановке строк, потому что равные остатки разрешаются по ID. Итог возвращается отдельно для сверки с исходной суммой.
Выход «Статус выполнения» проверяйте перед передачей результата дальше. При отрицательном статусе прочитайте «Пояснение ошибки» и направьте процесс на исправление исходных данных. Успешный статус подтверждает выполнение действия; содержательные признаки результата проверяйте отдельно.
Ограничения и разбор ошибок
PAYMENTS: [{"id":"advance","due":"2026-10-15","weight":"30","currency":"RUB"}]. Вес относительный, не обязательно процент; веса от нуля. Правило largest_remainders и разрешение равенств id_asc задаются явно: сначала целые минимальные денежные единицы вниз, затем остатки по убыванию дробной доли, при равенстве: по возрастанию ID как Unicode-строки. Перестановка строк не меняет суммы по ID. Порядок вывода соответствует входу. Даты задаются явно: YYYY-MM-DD либо время с обязательным offset, которое возвращается в UTC. Нулевая сумма допускает пустой график/нулевые веса; положительная: нет. Возвращает расчёт, не создает счета и не загружает данные сделки. Денежные суммы неотрицательные, каждая меньше 10^24; до 36 значащих и 18 дробных цифр. Все строки обязаны содержать currency, совпадающую с выбранной. Код валюты проверяется по форме, не по внешнему справочнику. SCALE задается явно от 0 до 6; готовые денежные суммы должны точно соответствовать ему. До 1000 строк в каждом массиве; ID внутри массива: уникальная строка от 1 до 100 символов без крайних пробелов. Входные JSON и каждый строковый результат ограничены 1 МБ. Расчет не подтверждает бухгалтерскую достоверность.
Положительную сумму нельзя распределить по пустому графику или нулевым весам. Для нулевой суммы такие варианты допустимы. Робот не определяет даты договора, не проверяет банковские дни и не подтверждает поступление оплаты.