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

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

Справочник автономных касс. Каждая запись — одно рабочее место, которое торгует без постоянной связи с сервером и время от времени с ним обменивается: забирает товары и контакты, отдаёт свои чеки.

Где искать: Модули → Офлайн → Регистры → Офлайн-терминалы

Разбор на примере

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

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

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

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

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

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

На сервер терминал отправляет только регистры, которые синхронизирует сама система: товары, клиентов и чеки кассы — те, что в таблице выше. Строка с другим регистром и направлением ToServer или Full ничего не открывает: сервер отвечает отказом «Для этого терминала регистр не разрешен: …» и ничего не записывает. Так же — служебные журналы и настройки, которые меняет только роль с отдельным действием (История товара, открытые счета и истории платежей, «Округление»), и история изменений записей. Эти записи делает проведение документов — в том числе счетов, которые сервер создаёт из чеков кассы.

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

Статус — это выключатель доступа

Терминал работает по долгоживущему ключу, но сервер проверяет его статус при каждом обращении. Поэтому кассу, которую потеряли или вывели из оборота, останавливают не отзывом ключа, а статусом 2: следующий же сеанс обмена получит отказ.

Типичные ситуации

Заводим новую кассу. Код, описание, склад, статус 1 — и строки обмена. Дальше кассе нужен собственный диапазон номеров, иначе ей нечем нумеровать чеки.

Касса не синхронизируется. Посмотрите статус, затем «Дата последней синхр.» и «Время последней синхр.»: если они давно не менялись, терминал до сервера не достучался. Пустой журнал обмена об этом ничего не говорит: раунды, в которых ничего не передавалось, он не записывает.

Изменения дошли до кассы не сразу. Касса берёт только то, что на сервере уже окончательно записано. Пока там идёт долгая операция с данными (импорт, пересчёт), обмен не отдаёт ничего новее её начала — эти изменения придут следующим сеансом, когда она завершится. Так касса не пропускает ни одного изменения.

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

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

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