Перейти до змісту

Офлайн

Модуль розв'язує одну задачу: торгувати, коли зв'язку немає. Звичайна каса при кожній дії ходить на сервер — за залишком, ціною, знижкою. Автономна каса так не може: інтернет у сільському магазині зник, а черга стоїть.

Розв'язок — розділити ролі. Термінал тримає локальну копію довідників і оформлює чеки сам; сервер, коли зв'язок з'явився, забирає ці чеки й перетворює їх на повноцінні рахунки-фактури з рухом складу й проводками. Каса не веде обліку — вона фіксує факт продажу, а облік роблять уже на сервері.

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

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

Що важливо розуміти

Чек із каси нічого не рухає. Ані складу, ані бухгалтерії — це просто факт продажу. Усе інше робить сервер при синхронізації. Тому «продажі є в касі, але їх немає у звітах» майже завжди означає, що обмін не пройшов, а не що чек загубився.

Номер чека — не спільний лічильник, а діапазон. Кожному терміналу видають свій, і в ньому більше ніхто не працює. Це єдиний спосіб нумерувати документи без зв'язку й не отримати двох чеків з однаковим номером.

Журнал синхронізації — перше місце, куди дивитися. Він показує, чи взагалі був обмін, у який бік і скільки записів пройшло. Записи веде сервер, руками туди нічого не вносять.

Довідники їдуть на касу, чеки — на сервер. Обмін двобічний: що каса отримує і що віддає, задає вкладка «Регістри синхронізації» картки терміналу. Типово товари й контакти їдуть на касу, продажі — на сервер; рахунки-фактури сервер робить лише з офлайн-продажів.

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

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

З чого почати в новій базі

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

Часті задачі

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

Усі об'єкти модуля

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

Довідники: офлайн-термінали · офлайн-серії номерів

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

Налаштування: налаштування офлайн-синхронізації

Куди дивитися далі