Контекст
Документ «Заказ клиента» у клиента используется как основа для формирования коммерческого предложения и счета на оплату. При этом пользователи могли формировать и отправлять документы даже при неполностью заполненных или некорректных данных. В результате клиентам уходили счета без ключевой информации: адреса доставки, корректных условий оплаты или подтвержденной готовности заказа. Внутри системы при этом существовали дублирующие поля, что создавало путаницу при заполнении.
Что мешало в работе
Документ не ограничивал пользователя в действиях. Счет можно было сформировать даже при неподготовленном заказе: без проведения, со статусом «на согласовании» или без заполненных обязательных полей. Контроль происходил уже после отправки — либо внутри команды, либо со стороны клиента. Дополнительно система не различала сценарии работы: коммерческое предложение и счет формировались одинаково, хотя по процессу это разные этапы с разными требованиями к заполнению.
Задача
Сделать заказ клиента управляющим элементом процесса и встроить контроль корректности данных. Важно было ограничить формирование счета до момента полной готовности заказа, сохранить гибкость на этапе КП и упростить работу пользователей внутри документа.
Решение
Логику построили вокруг проверки готовности данных перед печатью. Для счета на оплату внедрили механизм блокировки: система проверяет статус документа и заполненность ключевых полей — склад, график оплаты, комментарий, параметры доставки. Если условия не выполнены, печать блокируется, а пользователь получает конкретную причину.
Коммерческое предложение оставили доступным для печати без жестких ограничений, чтобы не мешать работе с клиентом на ранних этапах. Дополнительно переработали структуру документа: убрали дублирующее поле «условие оплаты», чтобы зафиксировать единый источник данных и снизить вероятность ошибок.
Также добавили подсказки при проведении документа — система теперь не просто блокирует действие, а объясняет, что именно нужно исправить.
Реализация
Работа шла через тестовую базу с последующим переносом в рабочую. После уточнения требований реализовали проверки на уровне печати документа и логики проведения. Каждое ограничение было связано с конкретным условием и текстом ошибки, чтобы пользователь мог быстро исправить данные.
Параллельно доработали печатные формы: оставили только используемые и убрали лишние варианты, чтобы сократить количество действий при работе. После тестирования изменения были перенесены в рабочую базу с учетом актуального релиза.
Результат
Счет на оплату формируется только при корректно заполненном заказе, а пользователь сразу понимает, что нужно исправить. Коммерческое предложение при этом можно готовить без ограничений на ранних этапах.
Это снизило количество ошибок в документах и убрало необходимость дополнительной проверки перед отправкой клиенту. Для бизнеса это означает меньше возвратов и уточнений по счетам, быстрее согласование и более стабильный процесс работы с клиентами.
Когда система контролирует момент, в который формируется финансовый документ, снижается риск ошибок на выходе. В этом кейсе контроль встроен прямо в точку принятия решения — печать счета.
Это позволяет компании быстрее двигать сделки и не тратить время на исправление ошибок уже после отправки документов клиенту.
Если у вас похожая ситуация с заказами и счетами — можем разобрать ваш процесс и показать, где теряются данные и как встроить контроль без усложнения работы.