CRM роботы 2.0 + AI (300+ роботов)

Проверить маржу по переданным позициям и себестоимости

Робот «Проверить маржу по переданным позициям и себестоимости» сравнивает расчетную маржу переданного состава с заданным порогом и показывает нехватку себестоимости.

Настройки робота «Проверить маржу по переданным позициям и себестоимости» в Битрикс24

Видимая часть формы настройки в Битрикс24. Скриншот показывает поля действия; он не подтверждает выполнение учебного примера.

Для кого и какую задачу решает

Руководителю продаж и администратору согласования, который проверяет порог маржи для подготовленного набора позиций.

Неполная себестоимость создаёт ложное впечатление высокой прибыли. Робот отличает известные затраты от полного расчёта и не подставляет ноль вместо отсутствующей цены закупки. Нулевая выручка также отмечается как неопределённая маржа.

Параметры и подготовка

Поле Как заполнить
Единая валюта, код из трех латинских букв (CURRENCY) Обязательное поле
Число дробных знаков: 0–6 (SCALE) Обязательное поле
Позиции с количеством, ценой и согласованной себестоимостью JSON (LINES) Обязательное поле
Дополнительные затраты JSON (EXTRA_COSTS) Необязательное поле. по умолчанию []
Округление сумм строк (LINE_ROUNDING) Обязательное поле. Только точная сумма (exact); Ближайшее, половина вверх (half_up); Вниз (down); Вверх (up)
Минимальная маржа, % от выручки (MIN_MARGIN_PERCENT) Обязательное поле

Перед настройкой выберите, откуда процесс получит каждое значение: постоянная настройка, поле карточки или результат предыдущего шага. Подписи в таблице соответствуют полям робота. Коды в скобках помогают различать похожие параметры при передаче данных между шагами.

Как использовать

  1. Передайте LINES с id, quantity, unitPrice, unitCost и currency. Цена и согласованная себестоимость должны быть на одной налоговой базе.
  2. При необходимости заполните EXTRA_COSTS объектами id/amount/currency. Если дополнительных затрат нет, оставьте [].
  3. Укажите SCALE, обязательное LINE_ROUNDING и MIN_MARGIN_PERCENT от 0 до 100. Округление применяется отдельно к произведениям по каждой строке.
  4. После статуса проверьте complete и marginDefined. Для решения используйте thresholdResult: pass, below, unknown либо undefined.

Как заполнить JSON-поля

Позиции с количеством, ценой и согласованной себестоимостью JSON (LINES)

[
  {
    "id": "A",
    "quantity": "2",
    "unitPrice": "100.00",
    "unitCost": "60.00",
    "currency": "RUB"
  }
]

До 1000 позиций; id уникальны, quantity неотрицательно, цены точные строки на согласованной налоговой базе. Отсутствующая/null unitCost означает неизвестную себестоимость. [] даёт нулевую выручку и неопределённую маржу.

Это массив: внешние квадратные скобки обязательны. Пустой массив [] отличается от объекта {}; возможность пустого списка определяется правилами этого поля, описанными ниже.

Дополнительные затраты JSON (EXTRA_COSTS)

[]

Пустой массив означает отсутствие допзатрат. Для затрат используйте [{"id":"delivery","amount":"10.00","currency":"RUB"}]. id уникальны внутри этого списка, amount точно соответствует SCALE.

Это массив: внешние квадратные скобки обязательны. Пустой массив [] отличается от объекта {}; возможность пустого списка определяется правилами этого поля, описанными ниже.

Учебный пример и ожидаемый результат

LINES=[{"id":"A","quantity":"2","unitPrice":"100.00","unitCost":"60.00","currency":"RUB"}], EXTRA_COSTS=[], CURRENCY=RUB, SCALE=2, LINE_ROUNDING=exact, MIN_MARGIN_PERCENT=30. Ожидаются выручка 200.00, себестоимость 120.00, прибыль 80.00, маржа 40% и pass. Если unitCost отсутствует, полный итог и маржа останутся пустыми, результат порога будет unknown.

Пример показывает подготовленные учебные данные. Фактический результат зависит от переданных значений и доступных данных вашего процесса.

Что возвращает и как продолжить процесс

  • «Выручка переданного состава» (revenue).
  • «Известная себестоимость с дополнительными затратами» (knownCost).
  • «Полная себестоимость, если известна» (totalCost).
  • «Прибыль, если известна» (profit).
  • «Маржа %, если определена» (marginPercent).
  • «Все себестоимости переданы» (complete).
  • «Маржа определена» (marginDefined).
  • «pass/below/unknown/undefined» (thresholdResult).
  • «ID строк без себестоимости JSON» (missingCostIdsJson).
  • «Валюта» (currency).
  • «Дробных знаков» (scale).

Порог сравнивается с точной маржой до округления отображаемого процента. knownCost показывает только известную часть с дополнительными затратами. Не используйте его как полную себестоимость при complete=N.

Выход «Статус выполнения» проверяйте перед передачей результата дальше. При отрицательном статусе прочитайте «Пояснение ошибки» и направьте процесс на исправление исходных данных. Успешный статус подтверждает выполнение действия; содержательные признаки результата проверяйте отдельно.

Ограничения и разбор ошибок

LINES: [{"id":"A","quantity":"2","unitPrice":"100.00","unitCost":"60.00","currency":"RUB"}]. EXTRA_COSTS: [{"id":"delivery","amount":"10.00","currency":"RUB"}], по умолчанию []. Цены и согласованная себестоимость должны быть переданы на одной налоговой базе; налоги не рассчитываются. LINE_ROUNDING обязателен: exact/half_up/down/up; применяется отдельно к произведениям количества на цену/себестоимость. MIN_MARGIN_PERCENT задается явно от 0 до 100. Порог сравнивается точно до округления показателя; marginPercent для отображения округляется до 6 знаков, половина вверх. Пропущенная/null unitCost означает unknown, complete=N: итоговая себестоимость, прибыль и маржа пустые. Нулевая выручка означает неопределенную маржу, а не 0%; пустой состав дает валидный ноль и undefined. Ничего не загружает из CRM/склада и не проверяет полноту реальной сделки. Суммы неотрицательные и меньше 10^24; до 36 значащих и 18 дробных цифр. Готовые суммы соответствуют SCALE 0–6. До 1000 записей; ID уникальны. Вход и каждый результат до 1 МБ.

Робот не загружает реальные закупочные цены и не доказывает полноту состава сделки. При нулевой выручке marginDefined выключен и verdict undefined, а не 0%. Расчёт не заменяет бухгалтерский учёт и не меняет цены товаров.