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

Офлайн

Модуль решает одну задачу: торговать, когда связи нет. Обычная касса при каждом действии ходит на сервер — за остатком, ценой, скидкой. Автономная касса так не может: интернет в сельском магазине пропал, а очередь стоит.

Решение — разделить роли. Терминал держит локальную копию справочников и оформляет чеки сам; сервер, когда связь появилась, забирает эти чеки и превращает их в полноценные счета-фактуры с движением склада и проводками. Касса не ведёт учёта — она фиксирует факт продажи, а учёт делают уже на сервере.

Маршрут: от автономного чека до документа

Настройки офлайн-синхронизации (общие правила обмена)
        ↓
Офлайн-терминал (рабочее место) + офлайн-серия номеров (свой диапазон чеков)
        ↓
Торговля без связи: чек = товары, количество, цена, наличные
        ↓
Синхронизация: ← справочники на кассу   ·   чеки на сервер →
        ↓
Офлайн-продажи → счета-фактуры: склад, проводки, выручка
        ↓
Журнал офлайн-синхронизации: когда, какой терминал, сколько записей
  1. Настройки офлайн-синхронизации — что сервер подставляет в чеки, в которых чего-то не хватает: клиента и условия оплаты по умолчанию. Адрес сервера, интервал и таймаут касса отсюда сейчас не берёт — их задают в конфигурации кассового приложения.
  2. Офлайн-терминал — карточка автономного рабочего места.
  3. Офлайн-серия номеров — собственный диапазон номеров чеков для терминала, чтобы не столкнуться с сервером и соседними кассами.
  4. Офлайн-продажи — журнал чеков, пришедших с касс. Из них сервер и делает документы учёта.
  5. Журнал офлайн-синхронизации — протокол обмена: когда, какой терминал, по какому регистру, в какую сторону и сколько записей.

Что важно понимать

Чек с кассы ничего не двигает. Ни склада, ни бухгалтерии — это просто факт продажи. Всё остальное делает сервер при синхронизации. Поэтому «продажи есть в кассе, но их нет в отчётах» почти всегда означает, что обмен не прошёл, а не что чек потерялся.

Номер чека — не общий счётчик, а диапазон. Каждому терминалу выдают свой, и в нём больше никто не работает. Это единственный способ нумеровать документы без связи и не получить двух чеков с одинаковым номером.

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

Справочники едут на кассу, чеки — на сервер. Обмен двусторонний: что касса получает и что отдаёт, задаёт вкладка «Регистры синхронизации» карточки терминала. Обычно товары и контакты едут на кассу, продажи — на сервер; счета-фактуры сервер делает только из офлайн-продаж.

Обмен включают на сервере, а не в интерфейсе. Пока в конфигурации сервера не включена офлайн-синхронизация (OFFLINE_SYNC_ENABLED), касса до него не достучится — на каждый запрос обмена сервер отвечает кодом 404, и ни один чек не придёт, хотя пункты меню модуля на месте.

Офлайн-касса — отдельное приложение, а не режим экрана кассы. На кассовом компьютере стоит офлайн-клиент ERPJS со своей базой, и продажу оформляют записью офлайн-продажи — без кнопок и смен POS и без фискализации. Модуль добавляет автономность и правила обмена.

С чего начать в новой базе

  1. Настройки офлайн-синхронизации — клиент и условия оплаты по умолчанию.
  2. Офлайн-терминалы — по карточке на каждое автономное рабочее место.
  3. Офлайн-серии номеров — диапазон каждому терминалу, с запасом.
  4. Подключить кассу и проверить первый обмен в журнале.

Частые задачи

Нужно Куда идти
добавить автономную кассу Офлайн-терминалы
выдать кассе номера чеков Офлайн-серии номеров
посмотреть продажи автономных касс Офлайн-продажи
понять, почему продажи не дошли Журнал офлайн-синхронизации
изменить правила обмена Настройки офлайн-синхронизации

Все объекты модуля

Документы: офлайн-продажи

Справочники: офлайн-терминалы · офлайн-серии номеров

Журналы: журнал офлайн-синхронизации

Настройки: настройки офлайн-синхронизации

Куда смотреть дальше