Кассовое ПО Artix имеет встроенные инструменты для восстановления текущего чека в случае аварийного завершения работы программы. Программа контролирует текущее состояние документа и процесс регистрации чека в фискальном регистраторе.
Сохранение образа чека
Информация о текущем чеке сохраняется в формате json в файле /linuxcash/cash/data/tmp/check.img
. Сохранение образа чека выполняется автоматически после выполнения любой операции: добавление или удаление позиции, добавление карты лояльности, переход в режим оплаты и т.д. После закрытия чека файл образа перемещается в директорию /linuxcash/logs/documents/
, сохраненные образы именуются по правилу <смена>-<чек>.img
. Здесь: смена – номер смены, чек – номер чека.
Для обеспечения максимальной надежности выполняется принудительный сброс дискового кэша. Для устройств с низкой скоростью записи синхронизация может существенно увеличить время реакции кассы. Для отключения принудительной синхронизации служит параметр synchroniseImageWithDisk
в конфигурационном файле /linuxcash/cash/conf/ncash.ini
в секции [Check]
.
Параметры сохранения образа чека
Наименование | Тип данных | Возможные значения | Описание | Примечания |
---|---|---|---|---|
synchroniseImageWithDisk | логический |
| Включить принудительный сбор дискового кэша | По умолчанию true |
[Check] ;Включить принудительный сбор дискового кэша synchroniseImageWithDisk = true
Восстановление чека из образа
В случае аварийного завершения работы программы восстановление чека из образа выполняется автоматически при входе в монитор кассира.
В случае успешного восстановления чека, на экран будет выведено сообщение – "Восстановлен незавершенный чек", работа кассовой программы продолжается в том режиме, в котором работала касса на момент сбоя (работа с товарной частью чека, оплата и т.д.).
При возникновении ошибки во время восстановления чека (например, нарушена структура образа чека), на экран будет выведено сообщение – "Ошибка при восстановлении незавершенного чека", касса перейдет в режим формирования нового документа, а образ будет перемещен в директорию /linuxcash/logs/documents/
.
Восстановление при сбое во время печати чека продажи/возврата/возврата по чеку продажи
При печати чека касса сохраняет специальный файл транзакции. Этот файл содержит все действия, которые были выполнены фискальным регистратором, в процессе печати чека. Файлы транзакции сохраняются в директории /linuxcash/logs/current/trs
, именуются по правилу <номер чека>.<временная метка>
. После успешного завершения печати и регистрации данных в памяти ФР файл транзакции переносится в директорию /linuxcash/logs/current/trs/commited/
.
В случае, если во время печати чека произошло выключение кассы или аварийное завершение работы программы, программа попытается закрыть чек при следующем запуске после сбоя. Программа определяет необходимость выполнения действий, если обнаружен файл транзакции в директории /linuxcash/logs/current/trs
.
В зависимости от состояния транзакции, программа выполняет действия над чеком, перемещает файл транзакции в соответствующую директорию, записывает статус документа в БД Documents
таблицу Document
. При восстановлении транзакции возможны следующие ситуации:
- Не удалось восстановить файл транзакции (нарушена структура)
- Файл транзакции перемещается в директорию
/linuxcash/logs/current/trs/critical
. - В базе данных для чека устанавливается статус "невозможно восстановить транзакцию".
- На экран выводится сообщение "Некорректный файл состояния ФР".
- Файл транзакции перемещается в директорию
- Чек не закрыт в ФР. Например, выполнилась только печать строк.
- Файл транзакции перемещается в директорию
/linuxcash/logs/current/trs/canceled
. - При запуске монитора кассира чек будет восстановлен из образа.
- Файл транзакции перемещается в директорию
- Чек закрыт в ФР, но обнаружено расхождение счетчиков ФР и транзакции.
- Файл транзакции перемещается в директорию
/linuxcash/logs/current/trs/critical
. - В базе данных для чека устанавливается статус "расхождение счетчиков"
- На экран выводится сообщение "Ошибка при закрытии чека. Возможно расхождение сумм по программе и ККМ".
- Файл транзакции перемещается в директорию
- Чек закрыт в ФР, изменение счетчиков ФР и транзакции совпадают.
- Файл транзакции перемещается в директорию
/linuxcash/logs/current/trs/commited
. - В базе данных для чека устанавливается статус "документ восстановлен перед закрытием".
- Файл транзакции перемещается в директорию
- Если транзакция успешно восстановлена, но не найден образ чека
- Файл транзакции перемещается в директорию
/linuxcash/logs/current/trs/commited
. - В базе данных для чека устанавливается статус "не восстановлен из образа".
- На экран выводится сообщение "Ошибка при закрытии чека. Возможно расхождение сумм по программе и ККМ".
- Файл транзакции перемещается в директорию
Чек не зарегистрирован в ККМ.
Например, на кассе есть два отдела: отдел 1 закрывает чеки в ФР 1, отдел 2 закрывает чеки в ФР 2. Если чек частично закрыт (например на ФР 1, а на ФР 2 – нет), то производится попытка автоматического закрытия чека на оставшихся ФР.При успешном закрытии документа производится подтверждение операций бонусных систем для этого документа.
Возможные ошибки
Если в процессе закрытия чека будет обнаружено отсутствие бумаги в ФР, то на экран будет выведено сообщение "Нет бумаги в ФР<номер_ФР>. Вставьте бумагу и повторите". Сообщение будет выводиться на экран до тех пор, пока проблема не будет устранена.
Если в ФР недостаточно наличности, то на экран будет выведено сообщение "Недостаточно средств в ФР<номер_ФР>". Сообщение будет выводиться на экран до тех пор, пока проблема не будет устранена.
Реализовано для ФР Штрих и Атол 5.0.Если присутствует иная ошибка ФР, то в базе данных для чека устанавливается статус "не зарегистрирован в ККМ".
В ФР такой чек не будет закрыт, это может привести к расхождению счётчиков.Файл транзакции будет перемещен в директорию
/linuxcash/logs/current/trs/commited
.
Используемые коды статусов регистрации чека:
Код | Описание |
---|---|
0 | Выполнено успешно |
1 | Невозможно восстановить транзакцию |
2 | Документ восстановлен перед закрытием |
4 | Расхождение счетчиков |
5 | Чек не восстановлен из образа |
6 | Чек не зарегистрирован в ККМ |