Три точки, один файл Excel, никакой связи с фискальником.
Остатки жили в таблицах Excel, которые вручную копировали между точками. Касса не знала, что лежит на складе, и ничего не общалось с фискальным принтером — каждый чек перебивали заново на отдельном устройстве.
Ошибки в подсчётах накапливались: продажа в одном магазине не видела резерв в другом.
Одна схема, один бинарник, offline с самого начала.
Единая схема PostgreSQL как источник истины для остатков, цен и документов; десктопный клиент говорит с ней через тонкий слой Express. Клиент работает в зале и продолжает работать, когда сеть падает.
Фискальный принтер был самой трудной частью: управляется по serial, из того же действия, которое закрывает продажу, — чтобы чек никогда не мог разойтись с записанной транзакцией.
Десктопный клиент на настоящей базе данных.
Оболочка Electron, React 19 с TypeScript, Zustand для локального состояния и TanStack Query для серверного кеша. За ними Express и Sequelize, PostgreSQL с 43 таблицами: точки, движения, документы, аудит.
От продажи до фискального чека одним нажатием.
Остаток снова одно число. Фискальный чек печатается из той же транзакции, которая записывает продажу, поэтому магазин и налоговый учёт больше не могут разойтись.
Нужно что-то похожее?
Начать проект