Кассовое ПО Artix имеет встроенные инструменты для восстановления текущего чека в случае аварийного завершения работы программы. Программа контролирует текущее состояние документа и процесс регистрации чека в фискальном регистраторе.

Сохранение образа чека

Информация о текущем чеке сохраняется в формате json в файле /linuxcash/cash/data/tmp/check.img. Сохранение образа чека выполняется автоматически после выполнения любой операции: добавление или удаление позиции, добавление карты лояльности, переход в режим оплаты и т.д. После закрытия чека файл образа перемещается в директорию /linuxcash/logs/documents/, сохраненные образы именуются по правилу <смена>-<чек>.img. Здесь: смена – номер смены, чек – номер чека.

Для обеспечения максимальной надежности выполняется принудительный сброс дискового кэша. Для устройств с низкой скоростью записи синхронизация может существенно увеличить время реакции кассы. Для отключения принудительной синхронизации служит параметр synchroniseImageWithDisk в конфигурационном файле /linuxcash/cash/conf/ncash.ini в секции [Check].

Параметры сохранения образа чека

НаименованиеТип данныхВозможные значенияОписаниеПримечания
synchroniseImageWithDiskлогический
  • true
  • false
Включить принудительный сбор дискового кэшаПо умолчанию true
Пример настроек
[Check]
;Включить принудительный сбор дискового кэша
synchroniseImageWithDisk = true

Восстановление чека из образа

В случае аварийного завершения работы программы восстановление чека из образа выполняется автоматически при входе в монитор кассира.

В случае успешного восстановления чека, на экран будет выведено сообщение – "Восстановлен незавершенный чек", работа кассовой программы продолжается в том режиме, в котором работала касса на момент сбоя (работа с товарной частью чека, оплата и т.д.).

При возникновении ошибки во время восстановления чека (например, нарушена структура образа чека), на экран будет выведено сообщение – "Ошибка при восстановлении незавершенного чека", касса перейдет в режим формирования нового документа, а образ будет перемещен в директорию /linuxcash/logs/documents/.

Наличие образа незавершенного чека блокирует возможность закрытия смены. Перед закрытием смены необходимо восстановить чек из файла после чего закрыть или аннулировать.

Восстановление при сбое во время печати чека продажи/возврата/возврата по чеку продажи

При печати чека касса сохраняет специальный файл транзакции. Этот файл содержит все действия, которые были выполнены фискальным регистратором, в процессе печати чека. Файлы транзакции сохраняются в директории /linuxcash/logs/current/trs, именуются по правилу <номер чека>.<временная метка>. После успешного завершения печати и регистрации данных в памяти ФР файл транзакции переносится в директорию /linuxcash/logs/current/trs/commited/

В случае, если во время печати чека произошло выключение кассы или аварийное завершение работы программы, программа попытается закрыть чек при следующем запуске после сбоя. Программа определяет необходимость выполнения действий, если обнаружен файл транзакции в директории /linuxcash/logs/current/trs

В зависимости от состояния транзакции, программа выполняет действия над чеком, перемещает файл транзакции в соответствующую директорию, записывает статус документа в БД Documents таблицу Document. При восстановлении транзакции возможны следующие ситуации:

  1. Не удалось восстановить файл транзакции (нарушена структура)
    • Файл транзакции перемещается в директорию /linuxcash/logs/current/trs/critical.
    • В базе данных для чека устанавливается статус "невозможно восстановить транзакцию". 
    • На экран выводится сообщение "Некорректный файл состояния ФР".
  2. Чек не закрыт в ФР. Например, выполнилась только печать строк.
    • Файл транзакции перемещается в директорию /linuxcash/logs/current/trs/canceled.
    • При запуске монитора кассира чек будет восстановлен из образа.
  3. Чек закрыт в ФР, но обнаружено расхождение счетчиков ФР и транзакции.
    • Файл транзакции перемещается в директорию /linuxcash/logs/current/trs/critical.
    • В базе данных для чека устанавливается статус "расхождение счетчиков"
    • На экран выводится сообщение "Ошибка при закрытии чека. Возможно расхождение сумм по программе и ККМ".
  4. Чек закрыт в ФР, изменение счетчиков ФР и транзакции совпадают. 
    • Файл транзакции перемещается в директорию /linuxcash/logs/current/trs/commited.
    • В базе данных для чека устанавливается статус "документ восстановлен перед закрытием".
  5. Если транзакция успешно восстановлена, но не найден образ чека
    • Файл транзакции перемещается в директорию /linuxcash/logs/current/trs/commited.
    • В базе данных для чека устанавливается статус "не восстановлен из образа".
    • На экран выводится сообщение "Ошибка при закрытии чека. Возможно расхождение сумм по программе и ККМ".
  6. Чек не зарегистрирован в ККМ.

    Например, на кассе есть два отдела: отдел 1 закрывает чеки в ФР 1, отдел 2 закрывает чеки в ФР 2. Если чек частично закрыт (например на ФР 1, а на ФР 2 – нет), то производится попытка автоматического закрытия чека на оставшихся ФР.

    При успешном закрытии документа производится подтверждение операций бонусных систем для этого документа.

    Возможные ошибки

    • Если в процессе закрытия чека будет обнаружено отсутствие бумаги в ФР, то на экран будет выведено сообщение "Нет бумаги в ФР<номер_ФР>. Вставьте бумагу и повторите". Сообщение будет выводиться на экран до тех пор, пока проблема не будет устранена.

    • Если в ФР недостаточно наличности, то на экран будет выведено сообщение "Недостаточно средств в ФР<номер_ФР>". Сообщение будет выводиться на экран до тех пор, пока проблема не будет устранена.

      Реализовано для ФР Штрих и Атол 5.0.
    • Если присутствует иная ошибка ФР, то в базе данных для чека устанавливается статус "не зарегистрирован в ККМ".

      В ФР такой чек не будет закрыт, это может привести к расхождению счётчиков.

      Файл транзакции будет перемещен в директорию /linuxcash/logs/current/trs/commited.

В случае обнаружения проблем сообщение о возможном расхождении также отображается при попытке закрыть смену.

Используемые коды статусов регистрации чека:

КодОписание
0Выполнено успешно
1Невозможно восстановить транзакцию
2Документ восстановлен перед закрытием
4Расхождение счетчиков
5Чек не восстановлен из образа
6Чек не зарегистрирован в ККМ
  • No labels