Программа для коммерческих предложений формирует КП не в Word или Excel, а из общего каталога и прайс-листа и фиксирует, кому ушло каждое предложение, по какой цене, в какой версии и с каким результатом. Короткий ответ: главная польза не в красивом PDF, а в том, что предложения становятся записью, по которой можно искать, а принятое КП превращается в заказ без повторного ввода.
Чем плохи коммерческие предложения в Excel?
Шаблон Excel справляется с первыми предложениями. Проблемы начинаются, когда предложений и людей становится больше: каждый менеджер работает со своей копией и старыми ценами, скидки меняются без согласования, а вопрос "что мы предлагали этому клиенту в прошлом месяце?" решается поиском по почте. Когда КП принято, те же строки второй раз вручную вводятся в заказ или счёт.
- Прайс-лист не в одном месте: в каждом файле своя копия.
- Неизвестно, какая версия какого предложения у клиента.
- Нет лимита скидки: проблема с маржой видна уже после отправки.
- Открытые, проигранные и выигранные предложения нельзя проанализировать.
- Принятые КП вручную переносятся в заказы и счета.
Что должно быть в хорошей программе для КП
Основная запись это не предложение, а каталог и прайс-лист. Строки КП выбираются из него; менеджер не вводит цену произвольно и даёт скидку только в пределах своего лимита. Скидка сверх лимита переводит предложение в статус "ожидает согласования", и PDF не создаётся, пока руководитель не одобрит. Одно это правило не даёт марже незаметно таять.
- Товары, услуги и прайс-листы (по группе клиентов и валюте).
- Скидка, ставка НДС и срок действия для каждой строки.
- Лимиты скидок по ролям и процесс согласования.
- Номер версии: отправленное КП не меняется, создаётся новая версия.
- PDF в фирменном стиле и отправка по почте.
- Статусы: черновик, отправлено, принято, отклонено, истекло; код причины отказа.
Отправленное предложение никогда не редактируется. Изменение это новая версия. Иначе PDF у клиента и запись в системе расходятся, и в споре вы не докажете, какой вариант действует.
Расчёт суммы и версии: небольшой пример
Хранение сумм целыми числами в копейках не даёт ошибкам округления сдвигать итог. Новая версия копирует существующую запись и увеличивает номер; старая версия остаётся как была.
type Line = { qty: number; unitPriceMinor: number; discountPct: number; vatPct: number };
function quoteTotals(lines: Line[]) {
let netMinor = 0;
let vatMinor = 0;
for (const l of lines) {
const gross = l.qty * l.unitPriceMinor;
const net = Math.round(gross * (1 - l.discountPct / 100));
netMinor += net;
vatMinor += Math.round((net * l.vatPct) / 100);
}
return { netMinor, vatMinor, totalMinor: netMinor + vatMinor };
}
// A sent quote is frozen: a new revision copies it, never edits it.
function revise(q: { no: string; rev: number; lines: Line[] }) {
return { ...q, rev: q.rev + 1, lines: q.lines.map(l => ({ ...l })), status: 'draft' as const };
}От предложения к заказу и дебиторке
Ценность программы проявляется в момент принятия КП. Строки принятого предложения становятся заказом с теми же артикулами; дальше программа учёта заказов берёт на себя склад и отгрузку, а учёт дебиторской задолженности задолженность по счёту. Если вы уже ведёте переговоры с клиентами в CRM, модуль КП нужно связать с ней; второй список клиентов означает две системы, которые со временем расходятся.
Готовая программа или разработка под заказ?
Компании, которая продаёт стандартные товары в одной валюте, обычно достаточно готового модуля КП. Разработка под заказ оправдана, если цена зависит от конфигурации (размер, материал, опции), если себестоимость считается внутри предложения или если КП нужно связать с существующей ERP и бухгалтерией. Перед решением посмотрите на последние предложения: сколько из них уложились в шаблон, а сколько потребовали ручного расчёта?
Итог
Программа для КП окупается, когда привязывает прайс-лист к одному источнику, скидки к согласованию, отправленные предложения к неизменяемым версиям, а принятые к заказам. Если хотите разобрать процесс подготовки предложений вместе с вашими системами, загляните на страницу корпоративных решений или напишите нам через форму запроса.