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

Офлайн-термінали

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

Де шукати: Модулі → Офлайн → Регістри → Офлайн-термінали

Розбір на прикладі

Офлайн-термінал

Каса магазину на Хрещатику заведена як термінал POS1:

Офлайн-термінали

  • Склад СКЛ — саме з нього спишеться товар, коли чеки цієї каси стануть рахунками (якщо в налаштуванні рахунку-фактури увімкнено списання складу; без нього рахунок проводиться, а товар лишається на складі). Це не довідкове поле: без складу конвертація зупиниться з помилкою;
  • Статус «Активний»; інші значення — «Неактивний» і «Заблокований»;
  • Дата останньої синхр. — коли термінал востаннє виходив на зв'язок;
  • таблиця Регістри синхронізації — власне договір про обмін.

Кожен рядок таблиці — один реєстр і правило для нього:

Регістр Напрям Після синхронізації Що це означає
Items ToClient keep товари їдуть на касу і лишаються там
Contacts ToClient keep клієнти теж, лишаються
OfflineSales Full delete чеки їдуть на сервер, а назад приходить статус їх обробки — лише для чеків цієї каси, у той самий чек, який вона створила (за кодом термінала й номером чека); чеки інших кас компанії до неї не приходять. «Після синхронізації» = delete поки зарезервовано й не застосовується: оброблені чеки на касі лишаються

На сервер термінал надсилає лише реєстри, які синхронізує сама система: товари, клієнтів і чеки каси — ті, що в таблиці вище. Рядок з іншим реєстром і напрямом ToServer чи Full нічого не відкриває: сервер відповідає відмовою «Для цього термінала реєстр не дозволений: …» і нічого не записує. Так само — службові журнали й налаштування, які змінює лише роль з окремою дією (Історія товару, відкриті рахунки й історії платежів, «Округлення»), та історія змін записів. Ці записи робить проведення документів — зокрема рахунків, які сервер створює з чеків каси.

Колонка Синхронізовано до № поки не заповнюється. Лічильник того, до якого номера зміни вже забрані, термінал веде в себе — завдяки йому він щоразу довантажує тільки нове, а не весь довідник.

Статус — це вимикач доступу

Термінал працює за довгоживучим ключем, але сервер перевіряє його статус при кожному зверненні. Тому касу, яку загубили чи вивели з обігу, зупиняють не відкликанням ключа, а статусом 2: наступний же сеанс обміну отримає відмову.

Типові ситуації

Заводимо нову касу. Код, опис, склад, статус 1 — і рядки обміну. Далі каса потребує власного діапазону номерів, інакше їй нема чим нумерувати чеки.

Каса не синхронізується. Подивіться статус, потім «Дата останньої синхр.» і «Час останньої синхр.»: якщо вони давно не змінювались, термінал до сервера не достукався. Порожній журнал обміну про це нічого не каже: раунди, у яких нічого не передавалося, він не записує.

Зміни дійшли до каси не одразу. Каса бере лише те, що на сервері вже остаточно записано. Поки там триває довга операція з даними (імпорт, перерахунок), обмін не віддає нічого новішого за її початок — ці зміни прийдуть наступним сеансом, коли вона завершиться. Так каса не пропускає жодної зміни.

Каса переїхала в інший магазин. Змініть склад — нові чеки спишуться вже з нього; раніше створені рахунки не змінюються.

Касу більше не використовують, а термінал не видаляється. Термінал, у якого вже є чеки, діапазон номерів чи рахунки з його чеків, видалити не можна: система відмовляє «Запис реєстру «Офлайн-термінали» використовується в: …» і радить «Щоб вивести термінал з роботи, не видаляючи, поставте статус «Неактивний» чи «Заблокований»: він перестане синхронізуватись». Так і зробіть: історія чеків лишається привʼязаною до своєї каси, а новий термінал із тим самим кодом не підхопить чужих номерів.

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