1Разделите кассовый и учётный офлайн
Потеря сервера учёта и потеря ОФД — разные события. ККМ должна работать только в поддерживаемом ею автономном режиме, а POS — сохранять локальную очередь продаж.
2Ограничьте операции
В офлайне разрешайте только товары и цены из актуального кэша. Запретите изменение справочников, сомнительные остатки, сложные бонусы и операции, которые нельзя безопасно повторить.
3Используйте уникальные идентификаторы
Каждая продажа получает UUID кассы, чтобы повторная отправка после восстановления обновляла статус, а не создавала дубль.
4Синхронизируйте по порядку
После восстановления сначала передайте чеки ККМ/ОФД, затем продажи и оплаты в учётную систему, разберите конфликты остатков и сверьте смену.