Работа с СКО
Для корректного запуска приложения и работы с СКО, требуется объявление
переменной окружения OPERATOR_CODE
с указанием кода оператора. На основании
кода оператора будут доступны устройства с соответствующим кодом оператора.
Доступные коды оператора:
5
-dev
окружение iKassa910000001
-stage
окружение iKassa, используемое Республиканским Унитарным Предприятием "Информационно-Издательский Центр Министерства по Налогам и Сборам" (РУП ИИЦ МНС)1
-prod
окружение iKassa, используемое на реальных торговых точках
В случае компрометации устройства, либо по решению РУП ИИЦ МНС или Оператора
Программной Кассы СКО может быть заблокировано для совершения всех фискальных
операций, кроме операции изъятия и
закрытия смены. Все операции, в случае
блокировки, будут отдавать ошибку TSRV_TOKEN_NOT_ACTIVE
Запросить текущий статус СКО можно с помощью метода get_status
Важно: статус СКО по умолчанию - unknown
и, если нет подключения к интернету,
либо сервера iKassa недоступны, из текущей сети, использование СКО невозможно
и требуется подключение к интернету.
Важно: на старте приложения осуществляется поиск доступного СКО.
Приложение работает и принимает запросы в асинхронном режиме, однако работа с СКО осуществляется в синхронном режиме, соответственно любое действие с СКО блокирует возможность выполнения других действий с ним.
По причине, описанной выше, скорость при выполнении команд может падать при некоторых обстоятельствах. Ниже описаны способы ускорения работы
Приостановка отправки документов
Приложение опрашивает все СКО на предмет наличия неотправленных документов 1 раз в 3 секунды
. Процесс удаления документов состоит из трех этапов:
- Запрос документа из СКО
- Попытка отправки документа
- В случае успешной отправки - запрос в СКО на удаление документа
Соответственно в момент отправки происходит 2 блокировки.
В ряде случае может потребоваться максимальная производительность при совершении операций и для этого имеется метод приостановки отправки документов и соответственно метод возобновления отправки документов.
Важно: СКО может работать до 7 дней без отправки документов, однако это не означает, что отправка документов должна быть отключена 7 дней и включаться по необходимости и данные о кассовых документах должны уходить по мере возможности. Сервер Оператора Программной Кассы, а так же Система Контроля Кассового Оборудования так или иначе получают информацию о работе СКО и, соответственно, имеют возможность отслеживания "блокировки отправки" на срок 7 дней при наличии возможности отправки документов
Обновление списка СКО
Важно помнить, что список доступных СКО обновляется в ручном режиме,
путем передачи заголовка tokens.refresh
со значением "true"
.
Обновление списка так же может вести к потенциальным блокировкам и замедлению работы, т.к. происходит поиск СКО с последующей проверкой регистрационных данных СКО, которое точно так же блокирует возможность мгновенно совершить действие с СКО.
Исходя из изложенного выше, стоит передавать tokens.refresh
исключительно
в том случае, если СКО не было найдено, либо по какой-то причине команда
отдала ошибку TSRV_TOKEN_NOT_FOUND
Кэширование данных
Мы очень заботимся о скорости выполнения операций и потому существует кэширование части информации для максимально быстрых запросов без обращения к СКО. Список методов, которые отдают кэшированные данные: