Программная касса
1. Настройка работы
Настройка работы будет состоять из нескольких пунктов, которые касаются настройки оборудования и ERP:
Для работы программной кассы необходимо устройство СКО, программное обеспечение для СКО, чековый принтер и обязательное наличие сети Интернет.
СКО представляет собой USB устройство, размер менее 5 см. С задней стороны корпуса нанесена служебная информация: СКО, СККО и серийный номер. СКО – это Средство Контроля Оператора. СККО – это Система Контроля Кассового Оборудования.
Для настройки программной кассы надо создать доступный каталог, скопировать в него приложение tsrv.x86_64-pc-windows-gnu.exe (или 32 битный аналог). Приложение можно (необязательно) переименовать, например в tsrv.exe, и запустить под правами Администратора Windows с параметрами:
Выполнить настройку сервиса. Минимальная настройка сервиса, это создание конфигурации логирования: log.yaml. Каталог логирования c именем «log» можно создать в каталоге старта сервиса.
Вообще все файлы настроек могут быть размещены в каталоге старта службы. Служба вначале ищет файлы настроек в каталоге своего старта, и только потом во всех прочих.
Для проверки старта сервиса в командной строке набрать команду: sc query tsrv-native.
Параметр STATE (Статус, Состояние) покажет текущее состояние сервиса, где: STOPPED – служба остановлена, RUNNING – служба запущена.
См. также документация: https://tsrv.int.imlab.by/base/windows_service.html
Если настройки выполнены правильно и служба запущена в каталоге, который был определен для логирования, появятся два файла: logs.log (общее логирование, http запросы к службе и ответы) и checks.log (формируемые кассовые документы).
В каталоге старта сервиса создать два технологических файла:
sc.exe stop tsrv-native.
Остановка службы может потребоваться, например, для корректного извлечения СКО.
sc.exe stop tsrv-native
sc.exe start tsrv-native
Перезапуск сервиса иногда необходим, например, в случаях выключения ПК.
На рабочем столе создать ярлыки, которые будут запускаться с правами Администратора.
1.2 Личный кабинет
Программная касса имеет личный кабинет. Для каждого СКО присутствует токен, который позволяет получить доступ к личному кабинету. Запрос к личному кабинету в строке браузера выглядит так: https://lk.test.imlab.by/auth/success?значение_токена
Например: https://lk.test.imlab.by/auth/success?jwt=eyJhbGciOiJIUzUxMiJ9.eyJwcmluY2lwYWwiOnsiaWQiOjExMTI5OTYxOCwidHlwZSI6MH0sInVucCI6MTExMjk5NjE4LCJyb2wiOlsiUk9MRV9DT01QQU5ZX1VTRVIiXSwic3ViIjoiIiwiZXhwIjo0Mjk0OTY3Mjk1fQ.ug0UnvCiMloBQrnCBeG7VKjdu9T2ZK91jVF2RuqtwoYSRdZbZ1_SkMifX3-X59nUs1Z5rZ5brI5-xvcHoJXGzw
1.3 Настройка чекового принтера
Для работы необходим чековый принтер со следующим набором характеристик:
Эта информация может быть получена из self теста принтера и (или) технической документации на устройство.
Self тест для большинства принтеров выполняется следующим образом: выключить принтер, нажать на кнопку «FEED» панели управления принтером, включить принтер и отпустить кнопку «FEED». При этом принтер автоматически напечатает свои характеристики и текущие установки.
Принтер должен быть установлен в системе (его ПО должно быть проинсталлировано) и он должен определяться операционной системой. Имя принтера в системе Windows будет использовано для настройки оборудования программной кассы в ERP.
Важное замечание:
для тестирования подойдет любой чековый принтер, даже не поддерживающий печать QR кодов. Но, для реальной работы нужен принтер, который печатает QR коды, так как это определено законодательно.
См. также документация:
https://tsrv.int.imlab.by/base/printers.html , Очередь печати WIndows
1.4 Настройка оборудования в ERP
В логике проекта в топ файле прописать вызов управляющего модуля программной кассы FiscalTsrv. Например:
Настройка оборудования в ERP выполняется через пункт горизонтального меню Оборудование – Модели касс и Оборудование – Группы касс.
В журнале «Модели касс» необходимо завести модель оборудования с именем, например «Программная касса TSRV» и кодом tsrv (обязательно). Все прочие настройки по умолчанию.
В журнале «Группы касс» необходимо выполнить настройку программной кассы, для чего создать новую запись и выполнить ряд настроек. В обще форме редактировать выбрать модель «Программная касса TSRV» и в гриде «Касса» выполнить ряд настроек.
На рисунке выделены поля, которые необходимо заполнить для работы программной кассы. При этом красным и оранжевым (только Linux) цветом выделены обязательные для заполнения свойства, зеленым цветом выделены необязательные для заполнения свойства.
Примечание:
Если принтер не определен ни под Windows, ни под Linux, то вывод направляется на устройство типа виртуальный принтер (dummy printer). Это не должно использоваться для реальной работы, но может быть использовано для тестов при отсутствии реального принтера.
1.5 Лог кассы
Устройство СКО совместно со своим программным обеспечением ведет свои лог файлы, о которых говорилось в пункте «1.1 Настройка программной кассы». Но, просмотр этих логов не всегда удобен. Можно вести отдельный лог относительно запросов к кассе и получаемых от нее ответов.
Структурно в логе отражается дата-время запроса к кассе, условное название операции и запрос от ERP к СКО. Следующей строкой, через строку символов «-» идет содержание ответа от СКО.
Если значение ключа type равно send, то запрос был выполнен успешно.
Если значение равно error, то ответ будет содержать код и описание ошибки, которое может несколько отличаться от сообщения на экране, что связано с тем, что некоторые оригинальные сообщения идут на английском языке, также отображение некоторых сообщений может быть отдельно интерпретировано под текущую ситуацию.
Пакет сообщений типа «запрос-ответ» разделяется строкой символов «=».
В приводимой картинке приводиться два запроса. 1-й запрос «Получение статуса к СКО» имеет статус ошибки. Второй запрос «Открытие сессии» выполнен успешно.
1.6 Ошибки
В процессе работы могут возникать сообщения или сообщения об ошибках, связанные с работой СКО. Например:
Как правило, если возникла ошибка, то в сообщении указывается Операция, которая вызвала ошибку, текст ошибки, а также код ошибки. Код ошибки может оказаться полезным для получения дополнительной информации или рекомендациям, что предпринять.
См. также документация:
https://tsrv.int.imlab.by/base/errors.html
Есть ошибки, которые требуют рестарта СКО, например:
При возникновении такой ошибки нужно следовать правилу:
Но ошибки, связанные с рестартом СКО, возникать не должны, если не был нарушен порядок работы СКО. На появление такой ошибки не должны влиять также, перезагрузки ПК или его отключение.