IFiscalCore
интерфейс фискального ядра
Интерфейс фискального ядра IFiscalCore

Введение

Данная документация описывает интерфейс фискального ядра (ФЯ) предназначена для разработчиков, выполняющих интеграцию учётных программ с фискальным ядром. Необходимы базовые знания Adnroid, Activity, Application, Intent, services, AIDL

Перед началом работы

Ознакомьтесь с примерами для Android- и VisualStudio

Загрузите и добавьте в проект файлы описания интерфейсов *.aidl

Вы можете модифицировать проекты с примерами, но не забудьте обновить файлы описания интерфейсов!

Изучите наш QA, там все ответы на самые частые вопросы.

Поддерживаемые модели

В настоящий момент Фискальное ядро установлено на следующие модели ККТ: MSPOS-K, MSPOS-T-Ф, MSPOS-Е-Ф, MSPOS-D-Ф, MSPOS-kiosk-Ф.

Им соответствуют строковые константы моделей (Build.MODEL) устройств:

MSPOS-K: "V1S-G", "V1S", "V2"

MSPOS-T-Ф: "T1MINI-G", "T1MINI"

MSPOS-Е-Ф: "P1_4G", "P1_4G-G", "P1_4G-EU", "P1_4G-R"

MSPOS-D-Ф: "P2_PRO"

MSPOS-kiosk-Ф: "K1"

Подключение к фискальному ядру

Подключение к интерфейсу фискального ядра IFiscalCore осуществляется при помощи Intent

Имя пакета (packageName) для подключения: "com.multisoft.drivers.fiscalcore"

Имя компонента (componentName) для подключения: "com.multisoft.fiscalcore"

Наименование действия (action) для Intent: "com.multisoft.drivers.fiscalcore.IFiscalCore"

После получения интерфейса ФЯ необходимо дождаться его инициализации при помощи функции IFiscalCore.IsReady.

После успешной инициализации можно начинать межпроцессное взаимодействие с ФЯ вызовом функций AIDL.

Подключение к дисплею покупателя ILCD

Интерфейс дисплея покупателя ILCD

MSPOS-T-Ф имеет дисплей покупателя.

Подключение производится аналогично IFiscalCore, за исключением:

Наименование действия (action) для Intent: "com.multisoft.drivers.fiscalcore.ILCD"

Используемые перечисления

com.multisoft.drivers.fiscalcore

Общая информация

Если в процессе выполнения функции произошло прерывание, вызывается переданный в неё коллбек IExceptionCallback (если объявлен и не null), В этом случае на на выход функции передаётся, по возможности, заведомо некорректное значение. Для целочисленных переменных это -1, для строк - пустая строка, для булевых - false.

Структура

Основные команды ядра

В этом блоке находятся команды запроса версии, проверки готовности интерфейса фискального ядра и автотестирования

IFiscalCore.IsReady

IFiscalCore.GetAidlVersion

IFiscalCore.SelfTest

Сервисные команды

IFiscalCore.SetSerial

В том числе команды для внутреннего использования (на момент 1.5.24):

IFiscalCore.GetUUID

IFiscalCore.GetFiscalModuleVersion

IFiscalCore.FNResetDebug

IFiscalCore.LoggerControl

IFiscalCore.DirectIO

Локализация

Опционально: установка локализации перед началом работы.

По умолчанию: Ru-ru

Поддерживаемые локализации: Ru-ru, в разработке En-en

Запрос локализации осуществляется через IFiscalCore.GetLang

Установка локализации осуществляется через Intent.PutExtras перед подключением к ядру

Статус ККТ

IFiscalCore.GetRegNum

IFiscalCore.GetSerial

IFiscalCore.GetAppVersion

IFiscalCore.GetTaxId

IFiscalCore.GetKKTRegisteredName

IFiscalCore.GetDayPayTotalByDocType

IFiscalCore.GetFiscalMemoryFiscalized

IFiscalCore.GetGrandTotalsSalesGross

IFiscalCore.GetCurrentFfdVersion

IFiscalCore.GetKktVersion

IFiscalCore.GetKktFfdVersion

IFiscalCore.GetDeviceSn

Чтение статуса ФН

IFiscalCore.FNGetNumber

IFiscalCore.FNGetState

IFiscalCore.FNGetWarningFlags

IFiscalCore.FNGetCurrentDocType

IFiscalCore.FNGetDocDataStatus

IFiscalCore.FNGetLastDocDateTime

IFiscalCore.FNGetSoftwareVersion

IFiscalCore.FNGetFirmwareType

IFiscalCore.FNGetLastFDNumber

IFiscalCore.FNGetLifetime

IFiscalCore.FNGetRegistrationsMade

IFiscalCore.FNGetRegistrationsLeft

IFiscalCore.FNGetRegTimeFirst

IFiscalCore.FNGetRegTimeByNum

IFiscalCore.FNGetLastFDNum

IFiscalCore.FNGetLastFiscalSign

IFiscalCore.FNGetRegTaxSystemByNum

IFiscalCore.FNGetOpModeByNum

IFiscalCore.FNGetRegFDByNum

IFiscalCore.GetAgentTag

IFiscalCore.FNGetFnFfdVersion

IFiscalCore.GetFnSupportedSkipOISMCheck

IFiscalCore.GetFnSupportedNewBitsInTag1290

Состояние ОФД

IFiscalCore.OFDGetConnectionStatus

IFiscalCore.OFDGetQueuedMessagesCount

IFiscalCore.OFDGetMessageStatus

IFiscalCore.OFDGetFirstQueuedDocNumber

IFiscalCore.OFDGetLastNotSentDocTime

Состояние ОИСМ

IFiscalCore.QueryNotificationStatus

IFiscalCore.NotificationStatusOut_GetStatus

IFiscalCore.NotificationStatusOut_GetCount

IFiscalCore.NotificationStatusOut_GetCurrentNumber

IFiscalCore.NotificationStatusOut_GetFillPercentage

IFiscalCore.NotificationStatusOut_GetCurrentDateTime

Состояние смены

IFiscalCore.GetDayState

IFiscalCore.GetDayNumber

IFiscalCore.GetDayLastReceiptNumber

Состояние смены: отчёты

IFiscalCore.PrintXReport

IFiscalCore.GetDayCanceledTotal

IFiscalCore.GetDayPayCount

IFiscalCore.GetDayOpenDateTime

IFiscalCore.GetDayPayTotal

IFiscalCore.GetPayTotal

Регистрация

IFiscalCore.Register

IFiscalCore.Register1_1

IFiscalCore.Register1_2

IFiscalCore.Register1_2_A

IFiscalCore.CorrectRegistration

IFiscalCore.CorrectRegistration1_1

IFiscalCore.CorrectRegistration1_2

IFiscalCore.CorrectRegistration1_2_A

IFiscalCore.CloseFiscalMode

IFiscalCore.CloseFiscalModeWithDateTime

Смена

IFiscalCore.OpenDay

IFiscalCore.CloseDay

IFiscalCore.PrintCalculationsReport

IFiscalCore.CloseDayWithDateTime

Чек

IFiscalCore.OpenRec

IFiscalCore.GetRecType

IFiscalCore.GetRecState

IFiscalCore.SetTaxationUsing

IFiscalCore.GetTaxation

IFiscalCore.CloseRec

IFiscalCore.PrintRecItemPay

IFiscalCore.PrintLine

IFiscalCore.RecVoid

IFiscalCore.SetQRParam

IFiscalCore.PrintQRCode

IFiscalCore.PrintBarCode

IFiscalCore.Feed

IFiscalCore.SetTagAttribute

IFiscalCore.SetSTLVTagAttribute

IFiscalCore.SetAgentTagUsing

IFiscalCore.SetFont

IFiscalCore.PrintRaster

IFiscalCore.PrintLineAligned

IFiscalCore.OpenDrawer

IFiscalCore.SetPaperWidth

IFiscalCore.SetTagByteAttribute

IFiscalCore.SetItemTaxes

IFiscalCore.SetShowTaxes

IFiscalCore.PrintRecItem

IFiscalCore.SetCompactMode

IFiscalCore.GetCompactMode

IFiscalCore.GetLastQRCodeValue

IFiscalCore.PrintRecCopy

Маркировка

IFiscalCore.SendMarkupCodeFnCheck

IFiscalCore.SendMarkupCodeOismCheck

IFiscalCore.SaveMarkupCodeCheckResult

IFiscalCore.ClearAllMarkupCodeCheckResult

IFiscalCore.GetMarkupCodeOismResult

IFiscalCore.SendMarkupCodeVolumeVarietal

Итог

IFiscalCore.GetRecTotal

IFiscalCore.CheckDrawerCash

IFiscalCore.PrintRecTotal

IFiscalCore.GetRecPayTotal

IFiscalCore.PrintRecTotalRound

Чек коррекции

IFiscalCore.FNMakeCorrectionRec

IFiscalCore.SetSumTaxes

IFiscalCore.AddCorrectionRecItem1_1

Запрос информации о подтверждении документа от ОФД

IFiscalCore.QueryOFDReceiptByNum

IFiscalCore.OfdOut_GetTime

IFiscalCore.OfdOut_GetFDNumber

IFiscalCore.OfdOut_GetFiscalSign

IFiscalCore.OfdOut_GetSize

Работа с архивом ФН

IFiscalCore.QueryFiscalDocInfo

IFiscalCore.FDI_GetDocType

IFiscalCore.FDI_GetConfirmFromOFD

IFiscalCore.FDI_GetDataArray

IFiscalCore.FDI_GetFiscalSign

IFiscalCore.FDI_GetDate

IFiscalCore.FDI_GetDocJSON

IFiscalCore.GetRegistrationParameter

Печать из архива

IFiscalCore.FNPrintDocFromArchive

Запрос и установка параметров

Данный блок методов позволяет настраивать параметры ККТ в режиме реального времени.

Чтобы при следующей загрузке ядра настройки были применены, их нужно сохранить функцией IFiscalCore.SaveOptions

Порядок изменения параметров, указанных при регистрации: http://wiki.multisoft.ru:8881/redmine/projects/mspos-k/wiki/QA#Q11

В этом блоке находятся методы для настройки аппарата перед регистрацией.

Под "пользователем" следует понимать организацию - пользователя ККТ

Параметры ОФД

Установка параметров ОФД

IFiscalCore.SetOfdHost

IFiscalCore.SetOfdPort

IFiscalCore.SetOfdName

IFiscalCore.SetOfdTaxId

Запрос параметров ОФД

IFiscalCore.GetOfdHost

IFiscalCore.GetOfdPort

IFiscalCore.GetOfdName

IFiscalCore.GetOfdTaxId

Параметры ОИСМ

Установка параметров ОИСМ

IFiscalCore.SetOismHost

IFiscalCore.SetOismPort

Запрос параметров ОИСМ

IFiscalCore.GetOismHost

IFiscalCore.GetOismPort

Параметры АС ОКП

Установка параметров АС ОКП

IFiscalCore.SetKeyServerHost

IFiscalCore.SetKeyServerPort

Запрос параметров АС ОКП

IFiscalCore.GetKeyServerHost

IFiscalCore.GetKeyServerPort

Основные настройки

Установка основных настроек

IFiscalCore.SetOrgName

IFiscalCore.SetOrgAddress

IFiscalCore.SetPhysicalAddress

IFiscalCore.SetSenderEmail

IFiscalCore.SetReceiptCheckURI

IFiscalCore.SetFnsServerAddress

IFiscalCore.SetFLC

IFiscalCore.GetFLC

Запрос основных настроек

IFiscalCore.GetOrgName

IFiscalCore.GetOrgAddress

IFiscalCore.GetPhysicalAddress

IFiscalCore.GetSenderEmail

IFiscalCore.GetReceiptCheckURI

IFiscalCore.GetFNSServerAddress

IFiscalCore.GetCashierTaxId

IFiscalCore.GetExtendedAutotest

IFiscalCore.GetVendingSerial

Дополнительные настройки

Нужны при регистрации ККТ только в некоторых режимах работы.

Если испольльзуются, их необходимо указывать до вызова функции регистрации/перерегистрации.

Установка дополнительных настроек

IFiscalCore.SetCashierTaxId

IFiscalCore.SetVendingSerial

IFiscalCore.SetExtendedAutotest

IFiscalCore.SetTransferOperatorName

IFiscalCore.SetTransferOperatorTaxId

IFiscalCore.SetTransferOperatorTelNum

IFiscalCore.SetTransferOperatorAddress

IFiscalCore.SetPaymentAgentTelNum

IFiscalCore.SetPaymentAgentOperation

IFiscalCore.SetCommissionAgentTelNum

IFiscalCore.SetContractorTelNum

IFiscalCore.SetCutType

IFiscalCore.SetHeaderLines

IFiscalCore.SetTrailerLines

IFiscalCore.SetPrePrintHeaderLines

IFiscalCore.SetDayCloseAutoPayOut

IFiscalCore.SetPrintZReportWithoutInternalCounters

IFiscalCore.SetMuteAutotest

Запрос дополнительных настроек

IFiscalCore.GetTransferOperatorName

IFiscalCore.GetTransferOperatorTaxId

IFiscalCore.GetTransferOperatorTelNum

IFiscalCore.GetTransferOperatorAddress

IFiscalCore.GetPaymentAgentTelNum

IFiscalCore.GetPaymentAgentOperation

IFiscalCore.GetCommissionAgentTelNum

IFiscalCore.GetContractorTelNum

IFiscalCore.GetPrintZReportWithoutInternalCounters

IFiscalCore.GetMuteAutotest

IFiscalCore.GetHeaderLines

IFiscalCore.GetTrailerLines

Применение настроек

Используется для сохранения настроек в памяти ККТ. При удалении фискального ядра, а также сбросе к заводским настройкам сохранённые данные стираются.

IFiscalCore.SaveOptions

Основные настройки должны быть установлены и сохранены перед регистрацией ККТ.

Временные настройки

Команды данной группы имеют ограниченное действие, например, только для текущего документа. Либо устанавливают одиночное значение, и не имеют действия при повторном вызове.

IFiscalCore.SetDateTime

IFiscalCore.SetUserName

IFiscalCore.SendClientAddress

IFiscalCore.ForcePrintForm

IFiscalCore.SetTagPrintForm

IFiscalCore.FreezeDateTime

IFiscalCore.ContinueDateTime

IFiscalCore.GetUserName