Сервис примерки одежды с помощью ИИ
Сервис, позволяющий пользователю виртуально примерить на себя любую одежду. Технология создает реалистичное изображение для оценки посадки и стиля.
SBX / PROJECT 19
Веб-ТСД на обычном смартфоне: сканирование камерой, пять складских процессов и интеграция с 1С без изменения её интерфейса. Как очередь и локальные копии документов позволяют кладовщику работать, пока 1С отвечает с задержкой.
О решении
Срок: первая рабочая версия — за две недели
Стек: Python / Django (ASGI), PostgreSQL, React + TypeScript (PWA), Docker, Coolify
Мы сделали складское приложение, которое открывается в браузере обычного смартфона и заменяет терминал сбора данных. Кладовщик сканирует штрихкоды камерой телефона или Bluetooth сканером, а приложение работает с учётной системой клиента на 1С. Главное требование было такое: работа система должна работать быстро, даже когда 1С отвечает по 20–30 секунд.
Склады клиента ведут учёт в 1С. Старый ТСД был написан внутри самой 1С и имел ряд проблем.
При этом оригинальную систему, которая работала на основном РЦ заказчика было нельзя. Мы получили 28 HTTP-методов «как есть». Какие запросы они принимают, мы восстановили по исходному коду старого модуля. Что они отвечают, не было записано нигде, поэтому форму ответов пришлось снимать с живой базы.
Между телефоном и 1С мы поставили сервер-посредник. Он берёт скорость и надёжность на себя, а 1С остаётся главной учётной системой.
Мгновенный ответ телефону. Кладовщик сканирует товар, посредник записывает действие у себя и сразу отвечает телефону. Это занимает миллисекунды. Отдельный процесс в фоне доставляет действие в 1С и повторяет попытку, если что-то пошло не так. Действие и задание на отправку сохраняются в базу одной транзакцией, поэтому ситуация «данные записались, а отправка потерялась» исключена самим устройством системы.
Копии документов под рукой. Состав документа хранится у посредника, и телефон получает его без обращения к 1С. После каждой синхронизации 1С перезаписывает копию. Если 1С что-то изменила сама, кладовщик видит пометку «состав обновлён».
Пачки вместо потока запросов. Всё, что кладовщик подряд положил в одну ячейку, уходит в 1С одним документом, а не отдельным запросом на каждый скан. Первые 10 секунд пачку можно отменить или дополнить. Это разгружает 1С и даёт человеку исправить ошибку.
Штрихкоды запоминаются. Выгрузить весь справочник штрихкодов из 1С нельзя, поэтому посредник запоминает каждый распознанный код. Незнакомый код стоит одного медленного запроса, а все следующие сканы того же кода читаются из базы. Пока код распознаётся, работа не стоит: строка появляется сразу и дозаполняется сама.
Самое опасное в работе с учётной системой — дубли. Методы 1С, которые создают документы, нельзя безопасно повторять: повторный запрос создаёт второй документ. Если ответ 1С потерялся, приложение не отправляет запрос вслепую ещё раз. Сначала оно спрашивает у 1С, что получилось на самом деле:
Чтобы проверить всё это до выхода на склад, мы написали эмулятор 1С. Он реализует все 28 методов и умеет намеренно портить обмен: отвечать с задержкой 25 секунд, падать на треть запросов, «терять» ответы после успешной записи и менять состав документа втихую. На нём работают сквозные тесты. Они проверяют не ответы сервера, а итог на складе: товар лёг в нужную ячейку ровно один раз, а потерянный ответ не привёл ни к двойной проводке, ни к дублю документа.
| Процесс | Что делает кладовщик |
|---|---|
| Информация | Сканирует товар или ячейку и видит остатки и места хранения |
| Размещение | Раскладывает товар из приёмки по ячейкам и видит подсказку, где такой товар уже лежит |
| Перемещение | Собирает товар из разных ячеек и раскладывает по другим, всё одним документом |
| Пересчёт | Считает ячейку вслепую по скану и получает итог с расхождениями |
| Отбор | Собирает оптовые заказы по штрихкоду ордера и розничные по дню отгрузки, идёт по маршруту через ячейки |
Боевую учётную систему легко испортить, поэтому мы запускали приложение по шагам:
Пока мы разбирали протокол, мы нашли в HTTP-сервисе 1С девять дефектов. Среди них метод, который падает ровно тогда, когда он нужен, фильтры, которые ничего не фильтруют, разные единицы количества в опте и рознице, а также проводки, которые уводят остатки ячейки в минус. Приложение обходит каждый дефект у себя, а для программиста 1С мы составили список с живыми примерами, чтобы исправить их у источника.
Хотите так же? Мы делаем мобильные и веб-интерфейсы поверх существующих учётных систем, не переписывая их. Обсудить проект
ДАВАЙТЕ ЗНАКОМИТЬСЯ
Расскажите о задаче. Обсудим, как технологии помогут её решить.
info@sbx-it.com+7 (495) 140-81-24