Перейти к основному содержимому

Расчёт отправки

Раздел Расчёт отправки — это калькулятор: система считает стоимость и показывает, из чего эта сумма получилась.

Калькуляция, просчёт, тарификация — это всё сюда

Раздел называется «Расчёт отправки», но задачу, которую он решает, называют по-разному: калькуляция перевозки, просчёт стоимости, прикидка цены, тарификация груза, котировка для клиента. Отдельного раздела «Калькуляция» в системе нет — всё перечисленное делается здесь.

У калькулятора два режима, они переключаются вкладками над формой:

ВкладкаКогда нужна
По заявкеЗаявка уже заведена. Вес и объём берутся из неё.
Без заявкиКлиент звонит и спрашивает «сколько будет 300 кг до Алматы». Вес и объём вводятся руками, заявка не нужна и не создаётся.

Он отвечает на вопрос «сколько это будет стоить по такому-то тарифу сегодня». Ничего не сохраняет и не меняет: ни заявку, ни счёт. Это «прикидка» перед разговором с клиентом или перед выбором тарифа в заявке.

Расчёт ничего не записывает

Калькулятор — только просмотр. Чтобы зафиксировать ставку за заявкой, тариф нужно выбрать в самой заявке; чтобы получить сумму в документе — добавить позицию в счёт. См. Тариф в заявке и счёте.

Кому доступен раздел​

РольДоступ
Администратор, РуководительПолный: расчёт по любой заявке и любому тарифу + управление тарифами
МенеджерРасчёт по любой заявке и любому тарифу, просмотр тарифов; создавать и менять тарифы нельзя
КлиентРасчёт по своим заявкам и по доступным ему тарифам (оба режима); тарифы только на просмотр
КладовщикРаздел не виден
Что видит клиент в списках

Обоих списка формы это касается по-разному, но принцип один — клиент работает только со «своим»:

  • Заявки — только те, где он указан заказчиком. Ровно как на странице Заявки: чужие заявки в поиске не находятся.
  • Тарифы — публичные плюс те, что проставлены в его заявках. Подробнее — Что видит клиент.

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

Мобильной версии у раздела нет — расчёт делается на десктопе. Клиенту, открывшему /calculation с телефона, система покажет мобильную версию системы, а не калькулятор.

Экран раздела​

Слева — вкладки «По заявке» / «Без заявки» и под ними форма «Параметры расчёта», справа — карточка результата. Вверху справа — кнопка «Тарифы», открывающая справочник тарифов.

Пока расчёт не выполнен, справа стоит подсказка: «Расчёт ещё не выполнен».

При смене вкладки результат очищается

Это сделано специально: иначе справа осталась бы сумма, посчитанная по форме, которой на экране уже нет, — и её легко принять за результат текущей формы.

Как посчитать по заявке​

  1. Заявка — выберите заявку. Поиск в списке идёт по номеру заявки; рядом с номером показывается клиент.
  2. Тариф — выберите тариф. Поиск — по названию; под названием видна ставка («1200.00 EUR за 100.000 кг»).
  3. Нажмите «Рассчитать».
В списке — только активные тарифы

Комбобокс тарифов показывает только тарифы с флагом «Активен» — чтобы нельзя было случайно посчитать по отменённой ставке. Об этом же говорит подпись под полем: «В списке только активные тарифы».

Оба поля обязательны: без заявки или без тарифа форма покажет ошибку под полем и запрос не отправит.

Как посчитать без заявки​

Режим для входящих вопросов «сколько будет столько-то килограммов» — когда заявки ещё нет и заводить её незачем.

  1. Перейдите на вкладку «Без заявки».
  2. Тариф — выберите тариф. Список тот же, что и в первом режиме.
  3. Введите вес и/или объём — какие именно поля появятся, зависит от выбранного тарифа.
  4. Нажмите «Рассчитать».
Поля появляются по тарифу, а не все сразу

Что нужно ввести, решает сам тариф — и подсказка под ним говорит это прямо:

ТарифПоляПодсказка
По весу, объёмный вес выключентолько Вес«Этот тариф считает по весу»
По весу, объёмный вес включёнВес и Объём«Этот тариф считает по объёмному весу — нужны и вес, и объём»
По объёмутолько Объём«Этот тариф считает по объёму»

Поле, которое на цену не влияет, не показывается вовсе — чтобы не пришлось выдумывать число, которое никуда не пойдёт.

Числа можно вводить и через запятую, и через точку: «1,2» и «1.2» — одно и то же.

Блок «Посчитать по местам»​

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

Одна строка — один тип места:

ПолеЧто вводить
Длина / Ширина / Высотагабариты одного места, в сантиметрах — по крайним точкам, вместе с паллетой и обрешёткой
Вес одного меставес одной штуки, а не всей группы
Одинаковых местсколько таких же штук в партии

Справа в строке система сразу показывает, что из этого получилось: 90 кг · 1.920 м³.

Вес — за одно место, а не за всю группу

Это главная ловушка при вводе. Если ввести вес поддона 600 кг и поставить количество 5, партия получится 3 000 кг — система именно так и посчитает. Поэтому сверяйтесь с числом справа в строке: там стоит вес всей группы, и ошибка видна сразу.

Кнопки в строке: ⧉ — дублировать (удобно, когда коробка такая же, а вес другой), ✕ — удалить. У единственной строки крестик её не удаляет, а очищает.

Внизу блока — итог «Итого: 12 мест · 210 кг · 2.220 м³» и кнопка «Подставить вес и объём». Она переносит оба числа в поля расчёта, после чего можно нажать «Рассчитать».

  • Количество мест на цену не влияет — оно нужно, чтобы вы могли сверить обмер с накладной клиента.
  • Подстановка происходит только по кнопке: пока вы её не нажали, введённое руками остаётся нетронутым. После подстановки значения тоже можно поправить — считается всегда то, что стоит в полях «Вес» и «Объём».
  • Если поля разошлись с таблицей, блок об этом скажет: «Считаем по полям выше. Итог по местам: …». Ничего не блокируется — просто чтобы вы не удивились цифре.
  • Если тариф считает только по весу, колонки габаритов не показываются: они на цену не влияют, а блок всё равно полезен — он суммирует вес по местам.
  • Enter добавляет новую строку, Ctrl+Enter запускает расчёт.
Почему в строке места нет её стоимости

Объёмный вес применяется к отправке целиком, а не к каждому месту по отдельности. Если посчитать «оплачиваемый вес» отдельно для каждого места и сложить, сумма почти всегда получится больше реальной — на данных этой системы расхождение доходило до +32 %. Строку такой таблицы легко принять за цену отдельной отправки и ошибиться на десятки процентов, поэтому денег на уровне места в системе нет и не будет.

По той же причине не стоит делить итог на количество мест: «цены за место» в такой перевозке просто не существует.

Чем режим «без заявки» отличается​

  • В карточке результата нет бейджей «факт» / «заявлено»: у введённых руками величин нет ни того, ни другого источника.
  • Результат никуда не сохраняется и не может стать позицией счёта. Чтобы выставить счёт, заявка всё-таки нужна — см. Тариф в заявке и счёте.
  • Расчёт всегда идёт на сегодня и по услуге, указанной в тарифе: выбрать другую дату или другую услугу нельзя.

Как читать результат​

Карточка результата состоит из двух блоков.

Количество в расчёте​

Крупное число — то количество (кг или м³), от которого посчитаны деньги. Под ним подпись «Сумма посчитана от этого количества».

Справа — бейджи-источники, отдельно по весу и по объёму:

БейджЧто значит
Вес: фактВ расчёт пошёл фактический вес заявки (взвешенный складом).
Вес: заявленоФактического веса нет, взят заявленный (со слов клиента).
Объём: факт / Объём: заявленоТо же для объёма.

Правило простое: фактическое значение вытесняет заявленное. Как только склад проставил факт. вес — считаем по нему; пока не проставил — по заявленному. Вес и объём при этом независимы: бывает «Вес: факт» и одновременно «Объём: заявлено».

Если у тарифа включён объёмный вес, блок показывает обе величины — физический и объёмный вес — рядом, и подсвечивает победившую с подписью «Применён объёмный вес»:

Физический вес 100,00 кг · Объёмный вес 375,00 кг — объёмный больше физического, поэтому в расчёт пошёл он.

Это сделано специально: «250 кг» в ответе при физических 80 кг выглядит как ошибка, пока не видно, откуда взялись 250.

Стоимость​

СтрокаЧто показывает
Стоимость в валюте тарифаСумма по ставке, до конвертации.
Курс«1 EUR = 95,0000 RUB». Если валюты совпадают — вместо курса стоит «Валюта тарифа и валюта услуги совпадают — конвертация не нужна».
Дата расчётаДата, на которую запрошен курс (для калькулятора — сегодня).
Курс на датуДата курса, который реально применён. Если на запрошенную дату курса нет, берётся ближайший предыдущий — и тогда эта дата отличается от даты расчёта.
Объём в расчётеОбъём, из которого получен объёмный вес. Показывается, когда сработал объёмный вес — чтобы было видно, откуда он взялся.
Стоимость в валюте услугиИтог — та сумма, которую вы поставите в счёт.
Цена за единицу«12,00 RUB за 1 кг» — цена, из которой сложился итог.

Если расчёт сделан по таблице мест, под итогом стоит подпись «За всю партию: 12 мест · 210.00 кг · 2.220 м³». Она не декоративная: по телефону сумма после перечисления мест почти всегда слышится как цена за одно место — подпись снимает этот вопрос заранее.

Под карточкой стоит оговорка: «Предварительный расчёт, не является офертой». При расчёте партии к ней добавляется вторая строка — о том, что расчёт не учитывает ограничений по отдельному месту, надбавок за негабарит, минимальной партии и дополнительных услуг.

Кнопка «Скопировать расчёт»​

Копирует расчёт готовым текстом — тариф, состав партии, применённый вес, итог, дату и обе оговорки. Текст можно сразу вставить в мессенджер или письмо клиенту.

Не удаляйте оговорку из скопированного текста

Она уезжает вместе с суммой намеренно. Цифра без оговорки, отправленная клиенту, читается как обещание цены.

Названная клиенту цифра — ещё не цена

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

Расчёт также не проверяет ограничения по отдельному месту: перевес на одно место, негабарит, невозможность штабелирования. Партия 2 000 кг одним местом и десятью местами — это разные перевозки, и калькулятор об этом не знает.

Иногда дат курса две

Если и валюта тарифа, и валюта услуги отличаются от базовой валюты компании, курсы для них ищутся независимо и могут прийти с разных дат. Тогда вместо одной строки показываются две: «Курс EUR на дату» и «Курс USD на дату».

Формула​

количество = вес или объём заявки (факт вытесняет заявленное),
при объёмном весе: max(физический вес, объём × коэффициент)
цена за ед. = (ставка ÷ «за количество») × курс
стоимость = цена за единицу × количество

Порядок и округления зафиксированы:

  • Количество округляется до 2 знаков, и именно от него считаются деньги — «цена за единицу × количество» всегда сходится с итогом, ручной пересчёт совпадёт с экраном.
  • Деньги — 2 знака, курс — 4 знака, округление арифметическое (0,5 вверх).

Пример. Заявка: факт. вес 240 кг, объём 1,5 м³. Тариф: 1 200 EUR за 100 кг, объёмный вес 250 кг/м³, услуга в RUB, курс 95,0000.

  • объёмный вес = 1,5 × 250 = 375 кг → больше 240, значит количество = 375,00 кг;
  • цена за единицу = (1200 ÷ 100) × 95 = 1 140,00 RUB за 1 кг;
  • стоимость = 1 140,00 × 375 = 427 500,00 RUB.

Почему расчёт может не выполниться​

Отказ показывается на месте результата в блоке «Расчёт не выполнен» — с конкретной причиной.

СообщениеЧто делать
«В заявке №N не заполнен вес»Тариф считает по весу, а в заявке нет ни фактического, ни заявленного веса. Заполните вес.
«В заявке №N не заполнен объём»То же для тарифа за объём.
«В заявке №N не заполнен объём — тариф «…» считает по объёмному весу»У тарифа включён объёмный вес; без объёма считать нельзя.
«Не указан вес» / «Не указан объём»То же самое в режиме без заявки: величину нужно ввести в форму.
«Не задан курс EUR на 10.08.2026»Курса нет ни на эту дату, ни раньше. Внесите курс — см. Справочники → Валюты. Если курс на более раннюю дату есть, расчёт пройдёт по нему, и отказа не будет.
«Курс EUR на 09.08.2026 равен нулю или отрицателен»В справочник попал нулевой или отрицательный курс. Исправьте значение: считать по такому курсу система откажется, чтобы не обнулить сумму.
«Кросс-курс EUR → PLN на 10.08.2026 округляется до нуля — расчёт по тарифу невозможен»Обе валюты небазовые, и их соотношение вырождается в ноль после округления. Проверьте оба курса в справочнике.
«У компании не задана базовая валюта — расчёт по тарифам невозможен»Отметьте одну из валют как валюту «по умолчанию».
«У заявки №N не заполнен снапшот тарифа — выберите тариф в заявке»Заявка попала на путь «Добавить по тарифу», не имея выбранного тарифа. Откройте заявку и выберите тариф.
«Валюта EUR из снапшота заявки №N отсутствует в справочнике — пере-выберите тариф»Валюту, зафиксированную в заявке, удалили или переименовали в справочнике. Откройте заявку и выберите тариф заново — снимок обновится.
«Ставка тарифа меньше 0.01 в валюте услуги — позиция счёта была бы нулевой»Ставка после конвертации вырождается в ноль. Проверьте «за количество» и курс.
«Цена за единицу превышает лимит позиции счёта» / «Сумма позиции превышает лимит»Слишком крупные числа для позиции счёта: разбейте отправку или укажите цену вручную.
«Расчёт по тарифу не выражается ценой за единицу»Редкий случай микроставок: цена за единицу после округления слишком сильно расходится с точной суммой. Позицию нужно ввести вручную.
Расчёт — по актуальному справочнику, а не по заявке

Калькулятор всегда берёт текущие параметры тарифа из справочника. Если у заявки уже выбран тариф, её собственные (замороженные) условия могут отличаться — именно по ним считается позиция счёта. См. Снимок условий тарифа.

Что дальше​