BORNLI
BORNLI / Материалы / Приложение для фармдистрибьютора: партии и заказы

BORNLI / о разработке по делу

Приложение для оптовых поставок лекарств: заказ и партии.

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

Редакция BORNLI ·

Кому подходит

Клиентский заказ — поверх работающего отраслевого учёта.

Приложение для фармдистрибьютора имеет смысл, когда закупщику неудобно оформлять и согласовывать B2B-заказ, а менеджер вручную переносит условия между письмами и учётной системой. В первой версии можно связать заказ, проверку подходящей партии и подтверждение резерва. Создавать заново весь отраслевой учёт для этого не требуется.

Начните с проверки своей системы. В официальном описании «1С:Управление аптечной сетью» предусмотрены партионный учёт с серией и сроком годности, а также обмен с МДЛП в рамках поддерживаемой функциональности. Это возможности названного продукта, а не подтверждение совместимости с вашей конфигурацией. Если существующий кабинет уже решает задачу, разумнее настроить его.

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

Модельный сценарий · концепция BORNLI

120 упаковок — это ещё не все условия заказа.

Для статьи мы собрали демонстрационный интерфейс заказа. Покупатель, товар, партии и события условные; реальная учётная система и МДЛП не подключены. Это концепция рабочего процесса, не клиентское внедрение и не рекомендация лекарственного препарата.

В заказе PO-204 указано 120 упаковок тестовой позиции F-204. Плановая поставка — 9 ноября 2026 года. Модельный покупатель требует, чтобы на эту дату оставалось не менее 12 месяцев до окончания срока годности. Для примера минимальная дата — 9 ноября 2027 года. Эти 12 месяцев являются условием данного заказа, а не нормой для всех препаратов или покупателей.

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

Заказ PO-204 на 120 упаковок и условие по сроку годности
Заказ: количество, дата поставки и условие по сроку сохраняются вместе. Концепция BORNLI: модельный сценарий, все данные условные; внешние системы не подключены.

Проверка доступности

На складе 130 упаковок. Подходят только 90.

В демонстрации есть две серии. B-22 содержит 90 упаковок со сроком годности до 30 апреля 2028 года. A-14 содержит 40 упаковок до 31 декабря 2026 года. Общий остаток равен 130, но вторая серия не проходит по условию покупателя. Для этого заказа подходящий объём — 90; ещё 30 не покрыты.

Интерфейс показывает причину ограничения непосредственно в таблице партий. Менеджеру не нужно вычислять её по отдельному файлу, а закупщик не получает обещания полной поставки только потому, что общий остаток больше заказа. В этом сценарии система предлагает частичное согласование. Другую серию или аналог позиции она автоматически не подставляет.

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

Сравнение партий: B-22 подходит, A-14 не проходит по сроку
Партии: общий остаток 130 не означает 120 подходящих упаковок; в примере подходят 90. Концепция BORNLI: модельный сценарий, все данные условные; внешние системы не подключены.

Подтверждение и остаток

Согласовали 90. Оставшиеся 30 не исчезли.

В прототипе менеджер отмечает, что покупатель подтвердил частичный объём. Только после этой отметки доступна кнопка согласования. Модель возвращает резерв R-204: 90 упаковок B-22 по второй версии PO-204. Оставшиеся 30 показаны отдельно как количество без резерва. Отгрузка не выполнена, заказ целиком не закрыт.

Для рабочего приложения предлагаем хранить основание согласования, сотрудника, время, версию условий и ответ учётной системы. Кнопка «Отправить» подтверждает лишь действие пользователя; номер резерва появляется после положительного ответа принимающей системы. Если ответа нет, нужен отдельный статус проверки, а не преждевременное «Готово».

Повторная проверка в нашей демонстрации возвращает тот же R-204 по ключу PO-204-v2. Она не добавляет второй резерв. В реальном проекте сначала нужно проверить, умеет ли учётная система находить результат прежней операции и предотвращать повторную запись. Если такой гарантии нет, неопределённый ответ требует ручного разбора до новой отправки.

Резерв R-204 на 90 упаковок и 30 без резерва
Подтверждение: один резерв на 90; оставшиеся 30 не закрыты, отгрузки ещё нет. Концепция BORNLI: модельный сценарий, все данные условные; внешние системы не подключены.

Источники и ответственность

У каждой цифры и каждого действия должен быть владелец.

Данные или решениеПредлагаемый источникЧто проверить до разработки
Позиция, серия, срок годностиДействующая учётная системаИдентификаторы, качество справочника, права на чтение
Условия конкретного заказаЗафиксированное решение покупателяВерсии, согласование частичного объёма, допустимые изменения
Доступный остаток и резервСерверная операция в учётеКонкурирующие заказы, повтор, отмена, поиск результата
Отгрузка и связанные документыУстановленный процесс заказчикаКакие подтверждения можно показывать клиенту и когда

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

Мы здесь не задаём юридические нормы, правила отпуска или медицинские рекомендации. Пример ограничен B2B-заказом и согласованием партии. Если требуется изменить регулируемый процесс, его сначала описывают и проверяют специалисты, а затем он становится частью технического задания.

Первая версия

Проверить исключения до подключения всех покупателей.

Первый объём можно ограничить одним типом покупателя, одним способом заказа и одной учётной системой. Согласуйте, кто оформляет запрос, кто подтверждает частичный объём и где хранится результат. Нативное мобильное приложение стоит выбирать после проверки роли и условий работы; для закупщика, который работает за компьютером, может быть достаточно удобного веб-кабинета.

  1. Неполный подходящий остаток. Заказ на 120 не должен превратиться в обещание 120, когда подходящих упаковок только 90.
  2. Изменение условий. Новая дата поставки или правило по сроку требует повторной проверки.
  3. Конкурирующий резерв. Между просмотром и подтверждением остаток мог измениться; сервер возвращает актуальный исход.
  4. Потерянный ответ. Повтор не создаёт ещё один резерв, а сначала выясняет результат прежней операции.
  5. Отзыв согласования. Отмена имеет явный результат; нельзя скрыть незавершённую отмену сменой статуса в кабинете.

Пользу будущего пилота оцениваем по времени согласования, числу исправлений и расхождениям между обещанным и подтверждённым объёмом. В этой концепции эти показатели не измерялись. Стоимость и срок зависят от обмена, правил и исключений, а не от одного количества экранов.

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

От идеи к конкретике

Покажем, как может работать ваш продукт.

Обсудим задачу и материалы, затем подготовим бесплатный кликабельный прототип за 24 часа. До договора.

Обсудить прототип ↗