Package ru.nilsoft.tm
Class TMCommand
java.lang.Object
ru.nilsoft.tm.TMCommand
Класс контейнер для формирования и распаковки команд контроллера ФН (поддерживаются протоколы ФФД 1.05, ФФД 1.1, ФФД 1.2).
Протокол работы с контроллером ФН
Формат запроса
- [Стартовый символ:
TMCommand.symbols.START] - [Префикс/пароль передачи данных:
cmdPrefix] - [Идентификационный/отличительный байт:
cmdThisId] - [Код команды (H2):
TMCommand.commands] - [Разделитель полей/параметров команды:
TMCommand.symbols.FIELD_END] - [Поле 1 - 1ый параметр команды: Форматы полей/параметров]
- [Разделитель полей/параметров команды:
TMCommand.symbols.FIELD_END] - ...
- [Поле N - Nый параметр команды: Форматы полей/параметров]
- [Разделитель полей/параметров команды:
TMCommand.symbols.FIELD_END] - [Завершающий символ:
TMCommand.symbols.END] - [BCC (проверочная сумма):
CalcBCC(byte[], int, int)]
Формат ответа
- [Стартовый символ:
TMCommand.symbols.START] - [Идентификационный/отличительный байт:
cmdThisId] - [Код команды (H2):
TMCommand.commands] - [Разделитель полей/параметров команды:
TMCommand.symbols.FIELD_END] - [Поле 1 (H2) "Постоянный статус ККТ":
GetHardStatus()] - [Разделитель полей/параметров команды:
TMCommand.symbols.FIELD_END] - [Поле 2 (H4) "Текущий статус ККТ":
GetDynamicStatus()] - [Разделитель полей/параметров команды:
TMCommand.symbols.FIELD_END] - [Поле 3 (H4) "Результат выполнения команды": первый байт - код ошибки
GetMainError(), второй байт - дополнительный кодGetSubError()] - [Разделитель полей/параметров команды:
TMCommand.symbols.FIELD_END] - [Поле 4 (H10) "Состояние печатающего устройства": ]
- [Разделитель полей/параметров команды:
TMCommand.symbols.FIELD_END] - [Поле 5 - 1ый параметр ответа: Форматы полей/параметров]
- [Разделитель полей/параметров команды:
TMCommand.symbols.FIELD_END] - ...
- [Поле N+4 - Nый параметр ответа: Форматы полей/параметров]
- [Разделитель полей/параметров команды:
TMCommand.symbols.FIELD_END] - [Завершающий символ:
TMCommand.symbols.END] - [BCC (проверочная сумма):
CalcBCC(byte[], int, int)]
Форматы полей/параметров
| Тип поля | Обозначение | Функции | Пример |
| Строковое поле | S[максимальная длина поля в байтах] | GetFieldString(int)MakeString(java.lang.String) |
"Сигареты ~11Salem~01 легкие" |
| Денежное поле | M[максимальная длина поля в байтах] | GetFieldValue(int)MakeValue(java.lang.String) |
"12306" "123.06" |
| Числовое поле | N[максимальная длина поля в байтах] | GetFieldValue(int)MakeValue(java.lang.String) |
"12306" "123.06" |
| Произвольные (hex) данные | H[максимальная длина поля в байтах] | GetFieldBin(int)MakeBin(byte[]) |
Число 27: "1B" Число 437: "B501" Битовая цепочка 11010101: "D5" |
| Байтовое поле | B, B2, H2 | GetFieldHexB(int)MakeHexB(byte) |
Число 27: "1B" |
| Слово | H4 | GetFieldHexW(int)MakeHexW(short) |
Число 1: "0100" |
| Двойное слово | W, W8, H8 | GetFieldHexDW(int)MakeHexDW(int) |
Число 1: "01000000" |
| Поле-дата | D, D6 | MakeDate() |
01.09.2002 "010902" 25.11.2005 "251105" |
| Поле-время | T, T4 | MakeTime() |
00:55 "0055" |
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final classПризнак агента по предмету расчёта (тег 1222).static final classДополнительные команды сервиса ключей АС ОКП (смотри функцииCmdServiceUpdateKeys(byte))static final classТипы штрихкодов (смотри функциюCmdReceiptBarcode(byte, byte, byte, byte, byte, java.lang.String))static final classПризнаки способа расчета (тэг 1214).static final classПризнаки предмета рассчета (тэг 1212).static final classКоды команд фискального регистратора.static final classstatic final classПараметр1 документов (смотри функцииCmdGetParams(),CmdSetParams(short, short, short)).static final classПараметр2 документов (смотри функцииCmdGetParams(),CmdSetParams(short, short, short)).static final classПараметр4 документов - дополнительные параметры (смотри функцииCmdGetParams(),CmdSetParams(short, short, short)).static final classФлаги динамического статуса контроллера ФН.static final classКоды ошибок выполнения команд.static final classРежим получения документа ФН (смотри функциюCmdFNGetDoc(int, byte)).static final classФлаги предупреждения ФН (смотриCmdFNGetStatus()).static classКласс описатель произвольного фискального документаstatic final classФлаги постоянного статуса контроллера ФН.static final classРежим регистрации ККТ (тэг 1290) [ФФД 1.2 и выше].static final classРежимы работы ККТ (смотриCmdRegistration_1_05(java.lang.String, java.lang.String, byte, java.lang.String, short, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, byte, byte, byte, java.lang.String, java.lang.String, java.lang.String, java.lang.String),CmdRegistration_1_1(java.lang.String, java.lang.String, byte, java.lang.String, short, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, byte, byte, byte, java.lang.String, java.lang.String, java.lang.String, java.lang.String, int),CmdRegistration_1_2(java.lang.String, java.lang.String, byte, java.lang.String, int, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, byte, byte, byte, java.lang.String, java.lang.String, java.lang.String, java.lang.String, int, java.lang.String, java.lang.String)).static final classСтатус информационного обмена (смотриCmdFNGetCommStatus()).static final classИндексы видов платежей (0..4 - предопрелены в КФН, 6..15 - определяемые).static final classЗначение реквизита "Планируемый статус товара" (тег 2003), "Присвоенный статус товара" (тег 2110) [ФФД 1.2 и выше].static final classВерсия протокола ФФД (тэг 1209).static final classstatic final classКоды причин изменения сведений о ККТ (тег 1205, ФФД 1.1 и выше, смотриCmdRegistration_1_1(java.lang.String, java.lang.String, byte, java.lang.String, short, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, byte, byte, byte, java.lang.String, java.lang.String, java.lang.String, java.lang.String, int),CmdRegistration_1_2(java.lang.String, java.lang.String, byte, java.lang.String, int, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, byte, byte, byte, java.lang.String, java.lang.String, java.lang.String, java.lang.String, int, java.lang.String, java.lang.String)).static final classКоды причины регистрации/перерегистрации ККТ (смотриCmdRegistration_1_05(java.lang.String, java.lang.String, byte, java.lang.String, short, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, byte, byte, byte, java.lang.String, java.lang.String, java.lang.String, java.lang.String),CmdRegistration_1_1(java.lang.String, java.lang.String, byte, java.lang.String, short, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, byte, byte, byte, java.lang.String, java.lang.String, java.lang.String, java.lang.String, int),CmdRegistration_1_2(java.lang.String, java.lang.String, byte, java.lang.String, int, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, byte, byte, byte, java.lang.String, java.lang.String, java.lang.String, java.lang.String, int, java.lang.String, java.lang.String)).static final classФлаги реквизита «результат проверки сведений о товаре» (тег 2106) [ФФД 1.2 и выше].static final classТипы серверов (смотри функцииCmdOFDGetParamExt(byte),CmdOFDSetParamExt(java.lang.String, short, short, short, short, byte))static final classБазовые символы сообщений.static final classИндексы налогов, предопределены в КФН.static final classТипы систем налогообложения (там где используется несколько систем - номер бита [начиная с 1], там где одна система - значение).static final classЗначения реквизита «мера количества предмета расчета» (тег 2108) [ФФД 1.2 и выше]. -
Field Summary
FieldsModifier and TypeFieldDescriptionБуфер для команд.protected intКоличество полей.protected static byteСчетчик для генерации проверочного байта.protected static StringТекущий префикс команды.protected byteТекущий проверочный байт.static final intМаксимальный номер отдела, поддерживаемый КФН (командыCmdGetDepNames(),CmdSetDepNames(java.util.Map<java.lang.Byte, java.lang.String>)).static final intМаксимальное количество отделов, поддерживаемых КФН (командыCmdGetDepNames(),CmdSetDepNames(java.util.Map<java.lang.Byte, java.lang.String>)).static final intРазмер буфера для получения данных для отправки в ОФД (командаCmdFNRead(short, short)).static final intМаксимальное количество видов платежей (командыCmdGetPayment(byte),CmdSetPayment(byte, java.lang.String, boolean, boolean, byte, byte, java.lang.String)). -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic byte[]BytesToHex(byte[] src, int srcLen) Конвертирование байтов в HEX-представление.static byte[]ByteToHex(byte src) Конвертирование байта в HEX-представление.static byteByteToHexNibble(byte src, int part) Byte to hex-nibble conversion.static intCalcBCC(byte[] buf, int startIndex, int len) Подсчет контрольной суммы.intПересчитать количество полей в пакете.intCmdBar2Dprepare(byte options, byte param, String tAdd, String tCode) Сборка команды "Подгтовка к печати 2D штрихкода" [1E].intCmdCertification(String tSerNum) Сборка команды "Сертификация" [92].intCmdCertification(String tSerNum, String tCode) Сборка команды "Сертификация" [92].intCmdCorrection(byte receiptType, String tUserName, String tUserINN, byte copies, byte taxType, String tTotal, String tCash, String tCard, String tAdvance, String tCredit, String tOncoming, byte corrType, String tDescription, int date, String tNumDoc, byte taxIndex) Deprecated.intCmdCorrection(String tDate, String tTime, byte receiptType, String tUserName, String tUserINN, byte copies, byte taxType, String tTotal, String tCash, String tCard, String tAdvance, String tCredit, String tOncoming, byte corrType, String tDescription, int date, String tNumDoc, byte taxIndex) Deprecated.intСборка команды "Стирание РПКУ" [85].intСборка команды "Запрос параметров РПКУ" [49].intCmdEJNoDoc(short DocNo, byte Over) Сборка команды "Документ по номеру из РПКУ" [7F].intCmdEJNoReport(short DocStart, short DocEnd, byte Over) Сборка команды "Отчёт из РПКУ по номерам документов" [7E].intCmdEJPrint(short ShiftNo) Сборка команды "Печать РПКУ" [84].intCmdEJShiftCloseReport(short ShiftNo) Сборка команды "Печать 'Отчёта закрытия смены' из РПКУ" [7С].intCmdEJTimeReport(String tTimeStart, String tTimeEnd, String tDate) Сборка команды "Отчёт из РПКУ по времени" [7D].intCmdFNClose(String tOperatorName, String tOperatorINN) Deprecated.intCmdFNClose(String tOperatorName, String tOperatorINN, byte mode) Сборка команды "Закрытие ФН" [8D].intCmdFNClose(String tDate, String tTime, String tOperatorName, String tOperatorINN) Deprecated.intCmdFNClose(String tDate, String tTime, String tOperatorName, String tOperatorINN, byte mode) Сборка команды "Закрытие ФН" [8D].intСборка команды "Получить из ФН статус обмена с ОФД" [2B].intCmdFNGetDoc(int numDoc, byte mode) Сборка команды "Документ по номеру из ФН" [8B].intСборка команды "Запрос последних ошибок ФН" [2A].intCmdFNGetRegParam(short tlvId) Сборка команды "Запрос параметров регистрации" [88].intСборка команды "Запрос статуса ФН" [29].intCmdFNGetTotal(byte numReg, boolean bPrint) Сборка команды "Итоги регистрации" [8F].intCmdFNRead(short offSet, short size) Сборка команды "Чтение блока документа из ФН" [5B].intСборка команды "Отмена чтения документа из ФН" [5C].intСборка команды "Завершение чтения документа" [5D].intСборка команды "Начать чтение документа из ФН" [5A].intCmdFNSetCommStatus(boolean bConn) Сборка команды "Установить в ФН статус обмена с ОФД" [5F].intCmdFNWriteScript(byte[] data) Сборка команды "Сохранение квитанции полученой от ОФД" [5E].intCmdFromCash(String tSum, String tUserName) Сборка команды "Инкассация" [33].intCmdFromCash(String tDate, String tTime, String tSum, String tUserName) Сборка команды "Инкассация" [33].intСборка команды "Получение текущих номеров документов" [35].intСборка команды "Чтение времени и даты" [43].intСборка команды "Получение данных по отделам" [61].intСборка команды "Запрос счётчиков документов" [3D].intСборка команды "Чтение заголовка документа" [9A].intСборка команды "Получение информации о ККТ" [97].intСборка команды "Получить электронный отчёт" [34].intCmdGetMoney(String tDate, String tTime) Сборка команды "Получить электронный отчёт" [34].intСборка команды "Чтение параметров документа" [4D].intCmdGetPayment(byte index) Сборка команды "Получение данных о виде платежа" [4B].intСборка команды "Информация о свободных ресурсах" [03].intCmdGetResources(String tDate, String tTime) Сборка команды "Информация о свободных ресурсах" [03].intСборка команды "Получение заводского номера ККТ" [96].intСборка команды "Чтение окончания документа" [9B].intСборка команды "Запрос количества неподтверждённых фискальных документов" [39].intCmdKMCheck(byte type, byte[] code, byte offsetGS1_91, byte offsetGS1_92) Собрать команду "Передать код маркировки для проверки в ФН" [26].intСобрать команду "Очистить КМ из ФН" [23].intСобрать команду "Запрос статуса КМ" [20].intCmdKMGetStatus(byte dopCode) Собрать команду "Запрос статуса КМ"[20] c дополнительным параметром.intCmdKMNotifCreate(byte plannedStatus, byte unitId, String sQty, String sLotSize) Собрать команду "Создать уведомление КМ" [24].intCmdKMNotifCreate(byte plannedStatus, byte unitId, String sQty, String sLotSize, byte sendOverKKT) Собрать команду "Создать уведомление КМ" [24].intCmdKMOISMResp(byte[] resp) Собрать команду "Отправить ответ ОИСМ в ФН" [25].intCmdKMSaveResult(boolean isSave) Собрать команду "Сохранить результаты проверки КМ" [22]
В ответе на эту команду возращаются следующие поля: Поле 5: (H2) Возвращаемое значение соответствует реквизиту ФФД 2106, возвращается только в случае сохраненияintCmdKMTransfer(short tag, byte[] code, byte IDproduct, byte offsetGS1, byte typeCode, byte plannedStatus, byte processMode, byte status) Собрать команду "Передача КМ" [21].intСборка команды "Закрытие отчётного документа на чековой ленте" [52].intСборка команды "Печать нефискального произвольного чека" [70].intСборка команды "Печать строки отчёта на чековой ленте" [51].intCmdNonFiscalLines(String[] t) Сборка команды "Печать строк отчёта на чековой ленте" [56].intСборка команды "Начало формирования отчётного документа на чековой ленте" [50].intCmdNonFiscalOpen(String tDate, String tTime) Сборка команды "Начало формирования отчётного документа на чековой ленте" [50].intCmdNotifAutoConfirm(byte addCmd, int numReq, short crc) Собрать команду "Подтвердить выгрузку уведомления или получить информацию по неподтверждённым уведомлениям (автономный режим)" [87].intCmdNotifAutoNext(byte addCmd) Собрать команду "Перейти к следующему уведомлению, или получить параметры текущего уведомления (автономный режим)" [8A].intCmdNotifAutoReadData(short offset, short size) Собрать команду "Прочитать блок данных текущего уведомления (автономный режим)" [89].intCmdNotifAutoReadStart(byte addCmd) Собрать команду "Начать сессию выгрузку уведомлений, или получить состояние текущей сессии (автономный режим)" [80].intСобрать команду "Получить число уведомлений КМ" [27].intCmdNotifRead(short offset, short size) Собрать команду "Прочитать блок данных уведомления" [2C].intСобрать команду "Отменить чтение уведомления" [2D].intСобрать команду "Завершить чтение уведомления" [2E].intСобрать команду "Начать чтение уведомления" [28].intCmdNotifWriteReceipt(byte[] data) Собрать команду "Передать квитанцию на уведомление (Передать квитанцию из ОИСМ в ФН)" [2F].intСборка команды "Получение адреса проверки чеков" [6E].intСборка команды "Получить параметры обмена с ОФД" [67].intCmdOFDGetParamExt(byte index) Сборка команды "Получить параметры обмена с сервером ОФД/ОИСМ/AC ОКП" [67].intСборка команды "Отчет о текущем состоянии расчетов" [3B].intCmdOFDGetTicket(int numDoc, boolean bPrint) Сборка команды "Запрос Квитанции ОФД из ФН" [3A].intCmdOFDSetInfoUrl(String tURL) Сборка команды "Установка адреса проверки чеков" [6D].intCmdOFDSetParam(String tAddress, short port, short timeConn, short timeRecv, short timeSend) Сборка команды "Установить параметры обмена с ОФД" [66].intCmdOFDSetParamExt(String tAddress, short port, short timeConn, short timeRecv, short timeSend, byte index) Сборка команды "Установить параметры обмена с ОФД/ОИСМ/AC ОКП" [66].intCmdOnOffUPD(boolean on) Сборка команды "Включение/выключение встроенного УПД" [65].intСборка команды "Печать заголовка чека" [1D].intCmdReceiptAddTLV(short TLVId, String tData) Сборка команды "Добавление TLV структуры в документ" [6A].intCmdReceiptBarcode(byte barType, byte barMode, byte barFont, byte height, byte width, String tBarcode) Сборка команды "Печать штрих-кода" [1A].intСборка команды "Аннулирование" [17].intСборка команды "Закрытие документа" [14].intCmdReceiptComission(boolean isDiscount, String tPercent, String tSumma, String tName) Сборка команды "Скидка/Наценка" [15].intCmdReceiptComment(String tComment) Сборка команды "Строка комментария" [1С].intСборка команды "Произвольный фискальный чек" [73].intCmdReceiptItem(String tName, String tCode, String tPrice, String tQty, String tUnit, byte taxIndex, byte calcMethod, byte calcObject, byte agentType, byte depIndex, String tDepName, String tComment) Сборка команды "Оформление позиции товара/услуги" [11].intCmdReceiptOpen(byte receiptType, String tCashier, String tCashierINN, String tTableNum, String tPlaceNum, byte copies, byte taxMode, String tAccount, String tComment) Сборка команды "Начало формирования кассового чека на чековой ленте" [10].intCmdReceiptOpen(String tDate, String tTime, byte receiptType, String tCashier, String tCashierINN, String tTableNum, String tPlaceNum, byte copies, byte taxMode, String tAccount, String tComment) Сборка команды "Начало формирования кассового чека на чековой ленте" [10].intCmdReceiptSubtotal(String tComment) Сборка команды "Подитог" [16].intCmdReceiptTax(byte taxIndex, String tComment) Сборка команды "Налоговая ставка" [1B].intCmdReceiptTender(byte payIndex, String tSumma, String tAdd, String tComment) Сборка команды "Расчёт" [13].intCmdReceiptTotal(String tComment) Сборка команды "Итог по чеку" [12].intCmdRegistration_1_05(String tFirmName, String tFirmINN, byte taxTypes, String tRegKKT, short mode, String tAutoNum, String tOperatorName, String tOperatorINN, String tAddress, String tOfdINN, String tRegNum, byte reason, byte specific, byte agent, String tOfdName, String tEmail, String tOfdURL, String tPlace) Сборка команды "Регистрация (Перерегистрация)" ФФД1.05 [04].intCmdRegistration_1_05(String tDate, String tTime, String tFirmName, String tFirmINN, byte taxTypes, String tRegKKT, short mode, String tAutoNum, String tOperatorName, String tOperatorINN, String tAddress, String tOfdINN, String tRegNum, byte reason, byte specific, byte agent, String tOfdName, String tEmail, String tOfdURL, String tPlace) Сборка команды "Регистрация (Перерегистрация)" ФФД1.05 [04].intCmdRegistration_1_1(String tFirmName, String tFirmINN, byte taxTypes, String tRegKKT, short mode, String tAutoNum, String tOperatorName, String tOperatorINN, String tAddress, String tOfdINN, String tRegNum, byte reason, byte specific, byte agent, String tOfdName, String tEmail, String tOfdURL, String tPlace, int code) Сборка команды "Регистрация (Перерегистрация)" ФФД1.1 [04].intCmdRegistration_1_1(String tDate, String tTime, String tFirmName, String tFirmINN, byte taxTypes, String tRegKKT, short mode, String tAutoNum, String tOperatorName, String tOperatorINN, String tAddress, String tOfdINN, String tRegNum, byte reason, byte specific, byte agent, String tOfdName, String tEmail, String tOfdURL, String tPlace, int code) Сборка команды "Регистрация (Перерегистрация)" ФФД1.1 [04].intCmdRegistration_1_2(String tFirmName, String tFirmINN, byte taxTypes, String tRegKKT, int mode, String tAutoNum, String tOperatorName, String tOperatorINN, String tAddress, String tOfdINN, String tRegNum, byte reason, byte specific, byte agent, String tOfdName, String tEmail, String tOfdURL, String tPlace, int code, String addReqOR, String addDataOR) Сборка команды "Регистрация (Перерегистрация)" ФФД1.2 [04].intCmdRegistration_1_2(String tDate, String tTime, String tFirmName, String tFirmINN, byte taxTypes, String tRegKKT, int mode, String tAutoNum, String tOperatorName, String tOperatorINN, String tAddress, String tOfdINN, String tRegNum, byte reason, byte specific, byte agent, String tOfdName, String tEmail, String tOfdURL, String tPlace, int code, String addReqOR, String addDataOR) Сборка команды "Регистрация (Перерегистрация)" ФФД1.2 [04].intCmdServiceUpdateKeys(byte addCmd) Собрать команду "Сервис обновления ключей проверки в ФН" [9E].intCmdServiceUpdateKeys(byte addCmd, String data) Собрать команду "Сервис обновления ключей проверки в ФН" [9E].intСборка команды "Установка времени и даты" [42].intCmdSetDateTime(String tDate, String tTime) Сборка команды "Установка времени и даты" [42].intCmdSetDepNames(Map<Byte, String> deps) Сборка команды "Программирование отделов" [60].intCmdSetHeader(String[] tStrings) Сборка команды "Установка заголовка документа" [41] (4 строки по 38 символов).intCmdSetHeaderExt(String[] tStrings) Сборка команды "Установка заголовка документа (расширенная)" [4E] (6 строк по 40 символов).intCmdSetParams(short param1, short param2, short lineFeed) Deprecated.intCmdSetParams(short param1, short param2, short lineFeed, short param4) Сборка команды "Программирование параметров документов" [4C].intCmdSetPayment(byte index, String tName, boolean isSecond, boolean isCharge, byte currency, byte mask, String tConvertCurrency) Сборка команды "Программирование вида платежа" [4A].intCmdSetTail(String[] tStrings) Сборка команды "Установка окончания документа" [46]intCmdShiftClose(String tOperator, String tOperatorInn, String tMessage, String tAdd, boolean bNotPrint) Сборка команды "Закрыть смену" [31].intCmdShiftClose(String tDate, String tTime, String tOperator, String tOperatorInn, String tMessage, String tAdd, boolean bNotPrint) Сборка команды "Закрыть смену" [31].intСборка команды "Открыть смену" [02].intCmdShiftOpen(String tDate, String tTime, String tOperator, String tOperatorInn, String tMessage, String tAdd, String tShift) Сборка команды "Открыть смену" [02].intСборка команды "Отчет о текущем состоянии" [30].intCmdShiftReport(String tDate, String tTime) Сборка команды "Отчет о текущем состоянии" [30].intCmdStart()Сборка команды "Начало сеанса" [01].intСборка команды "Начало сеанса" [01].intСборка команды "Переключение контроллера в сервисный режим" [93].intСборка команды "Подкрепление" [32].intСборка команды "Подкрепление" [32].static StringCp866toUtf8(String src) Конвертирование строки из UTF8 в CP866.byte[]Получить данные.intПолучение размера пакета.intПолучение кода команды.byteGetCmdId()Получить отличительный байт команды.intПолучение динамического статуса из ответа.byte[]GetField(int fieldIndex) Получение поля из пакета.byte[]GetFieldBin(int fieldIndex) Получение бинарного поля (конвертация из Hex).byteGetFieldHexB(int fieldIndex) Получение поля как байта.intGetFieldHexDW(int fieldIndex) Получение поля как двойного слова.shortGetFieldHexW(int fieldIndex) Получение поля как слова.intGetFieldLength(int fieldIndex) Получение длины поля из пакета.intGetFieldOffset(int fieldIndex) Получить стартовый индекс (смещение) поля из пакета.intПолучить количество полей.GetFieldString(int fieldIndex) Получение поля команды как строки.GetFieldValue(int fieldIndex) Получение поля команды как строки.intПолучение постоянного статуса из ответа.static byteGetId()Получение текущего проверочного байта для команды (автоинкрементируется).intПолучение кода основной ошибки из ответа.static StringПолучение префикса команды.intПолучение кода дополнительной ошибки из ответа.static byteОпределение меры количества предмета расчёта по популярным сокращениям (не всем возможным) для ФФД 1.2 - для неопознанного сокращения возвращается 255 (иная единица измерения); - входная строка также может содержать непосредственное HEX-значение в формате xNN.static StringGetUnitIDHex(String ed) Определение меры количества предмета расчёта по популярным сокращениям (не всем возможным) для ФФД 1.2 - для неопознанного сокращения возвращается 'FF' (иная единица измерения); - входная строка также может содержать непосредственное HEX-значение в формате xNN.static byteHexToByte(byte[] src, int startIndex) Конвертирование шестанадцатеричной строки в байт.static byte[]HexToBytes(byte[] src) Конвертирование шестанадцатеричной строки в байтовый массив.static byte[]HexToBytes(byte[] src, int srcLen) Конвертирование шестанадцатеричной строки в байтовый массив.static intHexToDWord(byte[] src, int startIndex) Конвертирование набора байт в двойное слово.static shortHexToWord(byte[] src, int startIndex) Конвертирование набора байт в слово.booleanIsCmdId()Проверка отличительного байта команды.static booleanIsPrefix(byte[] data, int startIndex) Проверка что данные соотвествуют префиксу.intMakeBin(byte[] src) Добавление бинарного поля (конвертация в Hex).intMakeCashier(String name, String inn) Создать поле с информацией о кассире.intMakeDate()Добавление поля даты в команду (использует текущее время).intДобавление поля даты в команду.intСоздание дополнительного поля произвольного чека.intMakeHeader(byte cmdCode) Создание заголовочного поля команды.intMakeHexB(byte src) Make hex byte field of command.intMakeHexDW(int src) Make hex double word field of command.intMakeHexW(short src) Make hex word field of command.intСоздание обязательного поля произвольного чека.intMakeString(String src) Создание строкового поля (с конвертацией CP866).intMakeTail()Создание завершающей части команды.intMakeTime()Добавление поля времени в команду (использует текущее время).intДобавление поля времени в команду.intСоздание строкового поля (без конвертации в CP866).voidПерерасчет контрольного значения (BCC) пакета.voidReplace(int index, byte data) Изменение данных пакета.voidReplace(int index, byte[] data) Изменение данных пакета.intSetPacket(byte[] data) Установка пакета (проверка что пакет является командой и его установка).intSetPacket(byte[] data, int length) Установка пакета (проверка что пакет является командой и его установка).toString()Вывод ввиде строки.static StringUtf8toCp866(String src) Конвертирование строки из UTF8 в CP866.
-
Field Details
-
MAX_OFD_DATA_PART_SIZE
public static final int MAX_OFD_DATA_PART_SIZEРазмер буфера для получения данных для отправки в ОФД (командаCmdFNRead(short, short)).- See Also:
-
MAX_DEPARTMENTS
public static final int MAX_DEPARTMENTSМаксимальное количество отделов, поддерживаемых КФН (командыCmdGetDepNames(),CmdSetDepNames(java.util.Map<java.lang.Byte, java.lang.String>)).- See Also:
-
MAX_DEPARTMENT_INDEX
public static final int MAX_DEPARTMENT_INDEXМаксимальный номер отдела, поддерживаемый КФН (командыCmdGetDepNames(),CmdSetDepNames(java.util.Map<java.lang.Byte, java.lang.String>)).- See Also:
-
MAX_PAYMENT_TYPES
public static final int MAX_PAYMENT_TYPESМаксимальное количество видов платежей (командыCmdGetPayment(byte),CmdSetPayment(byte, java.lang.String, boolean, boolean, byte, byte, java.lang.String)).- See Also:
-
cmdId
protected static volatile byte cmdIdСчетчик для генерации проверочного байта. -
cmdPrefix
Текущий префикс команды. -
cmdBuf
Буфер для команд. -
cmdFields
protected int cmdFieldsКоличество полей. -
cmdThisId
protected byte cmdThisIdТекущий проверочный байт.
-
-
Constructor Details
-
TMCommand
public TMCommand()
-
-
Method Details
-
GetId
public static byte GetId()Получение текущего проверочного байта для команды (автоинкрементируется).- Returns:
- проверочный байт.
-
HexToBytes
public static byte[] HexToBytes(byte[] src, int srcLen) Конвертирование шестанадцатеричной строки в байтовый массив.- Parameters:
src- исходный буфер (шестнадцатеричная строка).srcLen- длина данных для конвертации.- Returns:
- байтовый массив.
-
HexToBytes
public static byte[] HexToBytes(byte[] src) Конвертирование шестанадцатеричной строки в байтовый массив.- Parameters:
src- исходный буфер (шестнадцатеричная строка).- Returns:
- байтовый массив.
-
HexToByte
public static byte HexToByte(byte[] src, int startIndex) Конвертирование шестанадцатеричной строки в байт.- Parameters:
src- исходный буфер (шестнадцатеричная строка).startIndex- индекс начала данных в исходном буфере.- Returns:
- байт.
-
HexToWord
public static short HexToWord(byte[] src, int startIndex) Конвертирование набора байт в слово.- Parameters:
src- буфер с исходными данными.startIndex- стартовый индекс начала данных.- Returns:
- значение ввиде слова.
-
HexToDWord
public static int HexToDWord(byte[] src, int startIndex) Конвертирование набора байт в двойное слово.- Parameters:
src- буфер с исходными данными.startIndex- стартовый индекс начала данных.- Returns:
- значение ввиде двойного слова.
-
BytesToHex
public static byte[] BytesToHex(byte[] src, int srcLen) Конвертирование байтов в HEX-представление.- Parameters:
src- буфер с исходными данными.srcLen- длина данных.- Returns:
- HEX-представление.
-
ByteToHex
public static byte[] ByteToHex(byte src) Конвертирование байта в HEX-представление.- Parameters:
src- исходный байт.- Returns:
- HEX-представление.
-
ByteToHexNibble
public static byte ByteToHexNibble(byte src, int part) Byte to hex-nibble conversion.- Parameters:
src- source byte.part- part of byte (0 - low 4bit, 1 - hi 4bit).- Returns:
- hex-nibble.
-
Utf8toCp866
Конвертирование строки из UTF8 в CP866.- Parameters:
src- UTF8 строка.- Returns:
- CP866 строка.
-
Cp866toUtf8
Конвертирование строки из UTF8 в CP866.- Parameters:
src- CP866 строка.- Returns:
- UTF8 строка.
-
CalcBCC
public static int CalcBCC(byte[] buf, int startIndex, int len) Подсчет контрольной суммы.- Parameters:
buf- набор байт.startIndex- стартовый индекс.len- длина в байтах, начиная от стартового индекса.- Returns:
- контрольная сумма.
-
IsPrefix
public static boolean IsPrefix(byte[] data, int startIndex) Проверка что данные соотвествуют префиксу.- Parameters:
data- буффер с данными.startIndex- отступ от начала буфера.- Returns:
- true: соответствуют, false: не соответствуют.
-
GetUnitID
Определение меры количества предмета расчёта по популярным сокращениям (не всем возможным) для ФФД 1.2 - для неопознанного сокращения возвращается 255 (иная единица измерения); - входная строка также может содержать непосредственное HEX-значение в формате xNN.- Parameters:
ed- строка для определения.- Returns:
- код единицы измерения (
TMCommand.unit_id).
-
GetUnitIDHex
Определение меры количества предмета расчёта по популярным сокращениям (не всем возможным) для ФФД 1.2 - для неопознанного сокращения возвращается 'FF' (иная единица измерения); - входная строка также может содержать непосредственное HEX-значение в формате xNN.- Parameters:
ed- строка для определения.- Returns:
- код единицы измерения в hex строке (
TMCommand.unit_id).
-
GetCmdBuf
public byte[] GetCmdBuf()Получить данные.- Returns:
- данные ввиде набора байт.
-
GetCmdBufLen
public int GetCmdBufLen()Получение размера пакета.- Returns:
- размер пакета.
-
CalcFields
public int CalcFields()Пересчитать количество полей в пакете.- Returns:
- количество полей.
-
GetFields
public int GetFields()Получить количество полей.- Returns:
- количество полей.
-
GetField
public byte[] GetField(int fieldIndex) Получение поля из пакета.- Parameters:
fieldIndex- индекс поля.- Returns:
- null: ошибка, иначе поле ввиде набора байт.
-
GetFieldLength
public int GetFieldLength(int fieldIndex) Получение длины поля из пакета.- Parameters:
fieldIndex- индекс поля.- Returns:
- -1: поле не найдено, иначе длина поля.
-
GetFieldOffset
public int GetFieldOffset(int fieldIndex) Получить стартовый индекс (смещение) поля из пакета.- Parameters:
fieldIndex- индекс поля- Returns:
- 0: ошибка, иначе смещение поля в пакете
-
GetCmdCode
public int GetCmdCode()Получение кода команды.- Returns:
- -1 ошибка, иначе код команды.
-
GetCmdId
public byte GetCmdId()Получить отличительный байт команды.- Returns:
- отличительный байт или ( <0 ) код ошибки.
-
IsCmdId
public boolean IsCmdId()Проверка отличительного байта команды.- Returns:
- false: байт не совпадает, true: байт совпадает.
-
GetMainError
public int GetMainError()Получение кода основной ошибки из ответа.- Returns:
- -1 ошибка, иначе код ошибки из ответа
TMCommand.errors.
-
GetSubError
public int GetSubError()Получение кода дополнительной ошибки из ответа.- Returns:
- -1 ошибка, иначе код дополнительной ошибки из ответа.
-
GetHardStatus
public int GetHardStatus()Получение постоянного статуса из ответа.- Returns:
- -1 ошибка, иначе постоянный статус
TMCommand.hard_status_flags.
-
GetDynamicStatus
public int GetDynamicStatus()Получение динамического статуса из ответа.- Returns:
- -1 ошибка, иначе динамический статус
TMCommand.dynamic_status_flags.
-
GetFieldHexB
public byte GetFieldHexB(int fieldIndex) Получение поля как байта.- Parameters:
fieldIndex- индекс поля.- Returns:
- значение поля (0: если не найдено).
-
GetFieldHexW
public short GetFieldHexW(int fieldIndex) Получение поля как слова.- Parameters:
fieldIndex- индекс поля.- Returns:
- значение поля (0: если не найдено).
-
GetFieldHexDW
public int GetFieldHexDW(int fieldIndex) Получение поля как двойного слова.- Parameters:
fieldIndex- индекс поля.- Returns:
- значение поля (0: если не найдено).
-
GetFieldValue
Получение поля команды как строки. (без конвертации кодировки).- Parameters:
fieldIndex- индекс поля.- Returns:
- значение поля (пустая строка: если не найдено).
-
GetFieldString
Получение поля команды как строки. (с конвертацией кодировки из CP866).- Parameters:
fieldIndex- индекс поля.- Returns:
- значение поля (пустая строка: если не найдено).
-
GetFieldBin
public byte[] GetFieldBin(int fieldIndex) Получение бинарного поля (конвертация из Hex).- Parameters:
fieldIndex- индекс поля.- Returns:
- данные поля (null если пустое поле).
-
SetPacket
public int SetPacket(byte[] data) Установка пакета (проверка что пакет является командой и его установка).- Parameters:
data- данные пакета.- Returns:
- -1 ошибка, иначе количество полей в пакете.
-
SetPacket
public int SetPacket(byte[] data, int length) Установка пакета (проверка что пакет является командой и его установка).- Parameters:
data- данные пакета.length- длина пакета.- Returns:
- -1 ошибка, иначе количество полей в пакете.
-
GetPrefix
Получение префикса команды.- Returns:
- префикс команды.
-
toString
Вывод ввиде строки. -
Replace
public void Replace(int index, byte data) Изменение данных пакета.- Parameters:
index- индекс (отступ) изменяемых данных пакета.data- новое значение.
-
Replace
public void Replace(int index, byte[] data) Изменение данных пакета.- Parameters:
index- индекс (отступ) изменяемых данных пакета.data- новое значение.
-
ReCalcBCC
public void ReCalcBCC()Перерасчет контрольного значения (BCC) пакета. -
MakeHexB
public int MakeHexB(byte src) Make hex byte field of command.- Parameters:
src- byte of data.- Returns:
- текущая длина сообщения.
-
MakeHexW
public int MakeHexW(short src) Make hex word field of command.- Parameters:
src- word of data.- Returns:
- текущая длина сообщения.
-
MakeHexDW
public int MakeHexDW(int src) Make hex double word field of command.- Parameters:
src- double word of data.- Returns:
- текущая длина сообщения.
-
MakeValue
Создание строкового поля (без конвертации в CP866).- Parameters:
src- строка.- Returns:
- текущая длина сообщения.
-
MakeString
Создание строкового поля (с конвертацией CP866).- Parameters:
src- строка.- Returns:
- текущая длина сообщения.
-
MakeCashier
Создать поле с информацией о кассире.- Parameters:
name- ФИО кассира.inn- ИНН кассира (необязательное поле).- Returns:
- текущая длина сообщения.
-
MakeBin
public int MakeBin(byte[] src) Добавление бинарного поля (конвертация в Hex).- Parameters:
src- массив байт.- Returns:
- текущая длина сообщения.
-
MakeDate
public int MakeDate()Добавление поля даты в команду (использует текущее время).- Returns:
- текущая длина сообщения.
-
MakeTime
public int MakeTime()Добавление поля времени в команду (использует текущее время).- Returns:
- текущая длина сообщения.
-
MakeDate
Добавление поля даты в команду.- Parameters:
cal- объект-календарь.- Returns:
- текущая длина сообщения.
-
MakeTime
Добавление поля времени в команду.- Parameters:
cal- объект-календарь.- Returns:
- текущая длина сообщения.
-
MakeHeader
public int MakeHeader(byte cmdCode) Создание заголовочного поля команды.- Parameters:
cmdCode- код команды.- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
MakeTail
public int MakeTail()Создание завершающей части команды.- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
MakePosField
Создание обязательного поля произвольного чека.- Parameters:
field- описатель поля.- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
MakeFreeField
Создание дополнительного поля произвольного чека.- Parameters:
field- описатель поля.- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdStart
public int CmdStart()Сборка команды "Начало сеанса" [01].- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdStart
Сборка команды "Начало сеанса" [01].- Parameters:
tDate- дата чека ДДММГГ (6 байт).tTime- время чека ЧЧММ (4 байта).- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdPrintHeader
public int CmdPrintHeader()Сборка команды "Печать заголовка чека" [1D].- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdBar2Dprepare
Сборка команды "Подгтовка к печати 2D штрихкода" [1E].- Parameters:
options- опции 2D штрихкода.param- параметры 2D штрихкодаtAdd- дополнительные данные.tCode- текст штрихкода.- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdNonFiscalFree
public int CmdNonFiscalFree()Сборка команды "Печать нефискального произвольного чека" [70]. (В КФН используется как пустая команда, не выполняющая никаких действий).- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdShiftReport
public int CmdShiftReport()Сборка команды "Отчет о текущем состоянии" [30].- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdShiftReport
Сборка команды "Отчет о текущем состоянии" [30].- Parameters:
tDate- дата чека ДДММГГ (6 байт).tTime- время чека ЧЧММ (4 байта).- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdShiftOpen
public int CmdShiftOpen(String tOperator, String tOperatorInn, String tMessage, String tAdd, String tShift) Сборка команды "Открыть смену" [02].- Parameters:
tOperator- имя кассира открывающего смену (до 64 байта).tOperatorInn- ИНН оператора, проводящего регистрацию (12 байт).tMessage- сообщение для ОФД [резервировано для ФФД 1.05](до 250 байт).tAdd- дополнительные реквизиты [резервировано для ФФД 1.05](до 250 байт).tShift- реквизиты смены (до 255 байта).- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdShiftOpen
public int CmdShiftOpen(String tDate, String tTime, String tOperator, String tOperatorInn, String tMessage, String tAdd, String tShift) Сборка команды "Открыть смену" [02].- Parameters:
tDate- дата чека ДДММГГ (6 байт).tTime- время чека ЧЧММ (4 байта).tOperator- имя кассира открывающего смену (до 64 байта).tOperatorInn- ИНН оператора, проводящего регистрацию (12 байт).tMessage- сообщение для ОФД [резервировано для ФФД 1.05](до 250 байт).tAdd- дополнительные реквизиты [резервировано для ФФД 1.05](до 250 байт).tShift- реквизиты смены (до 255 байта).- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdShiftClose
public int CmdShiftClose(String tOperator, String tOperatorInn, String tMessage, String tAdd, boolean bNotPrint) Сборка команды "Закрыть смену" [31].- Parameters:
tOperator- имя кассира открывающего смену (до 64 байта).tOperatorInn- ИНН оператора, проводящего регистрацию (12 байт).tMessage- сообщение для ОФД [резервировано для ФФД 1.05](до 250 байт).tAdd- дополнительные реквизиты [резервировано для ФФД 1.05](до 250 байт).bNotPrint- false: печатать отчет, true: не печатать отчет.- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdShiftClose
public int CmdShiftClose(String tDate, String tTime, String tOperator, String tOperatorInn, String tMessage, String tAdd, boolean bNotPrint) Сборка команды "Закрыть смену" [31].- Parameters:
tDate- дата чека ДДММГГ (6 байт).tTime- время чека ЧЧММ (4 байта).tOperator- имя кассира открывающего смену (до 64 байта).tOperatorInn- ИНН оператора, проводящего регистрацию (12 байт).tMessage- сообщение для ОФД [резервировано для ФФД 1.05](до 250 байт).tAdd- дополнительные реквизиты [резервировано для ФФД 1.05](до 250 байт).bNotPrint- false: печатать отчет, true: не печатать отчет.- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdGetSerialNo
public int CmdGetSerialNo()Сборка команды "Получение заводского номера ККТ" [96].
В ответе на эту команду возращаются следующие поля:- Поле 5: (S10) Заводской номер ККТ
- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdGetInfo
public int CmdGetInfo()Сборка команды "Получение информации о ККТ" [97].
В ответе на эту команду возращаются следующие поля:- Поле 5: (S16) Наименование модели ККТ
- Поле 6: (S16) Информация о модели КФН
- Поле 7: (S10) Заводской номер ККТ
- Поле 8: (S20) Регистрационный номер ККТ
- Поле 9: (S12) ИНН
- Поле 10: (S7) Версия прошивки КФН
- Поле 11: (S16) Заводской номер ФН
- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdGetDateTime
public int CmdGetDateTime()Сборка команды "Чтение времени и даты" [43].
В ответе на эту команду возращаются следующие поля:- Поле 5: (D6) Дата, установленная в КФН (формат ДДММГГ)
- Поле 6: (T4) Время, установленное в КФН (формат ЧЧММ)
- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdSetDateTime
Сборка команды "Установка времени и даты" [42].- Parameters:
tDate- текущая дата (формат ДДММГГ).tTime- текущее время (формат ЧЧММ).- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdSetDateTime
public int CmdSetDateTime()Сборка команды "Установка времени и даты" [42].- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdFNGetStatus
public int CmdFNGetStatus()Сборка команды "Запрос статуса ФН" [29].
В ответе на эту команду возращаются следующие поля:- Поле 5: (H2) Состояние фазы жизни
- Поле 6: (H2) Текущий документ
- Поле 7: (H2) Данные документа
- Поле 8: (H2) Состояние смены
- Поле 9: (H2) Флаги предупреждения (смотри
TMCommand.fn_warn_flags) - Поле 10: (D10) Дата и время ФН (формат ДДММГГччмм)
- Поле 11: (S16) Заводской номер ФН
- Поле 12: (W8) Номер последнего ФД
- Поле 13: (D6) Срок действия ФН (формат ДДММГГ)
- Поле 14: (S16) Версия ФН
- Поле 15: (H2) Тип ФН (00-отладочный, 01-серийный)
- Поле 16: (H4) Номер смены в ФН
- Поле 17: (H4) Номер кассового чека в ФН
- Поле 18: (H2) Код последней ошибки при работе с ОФД (00 - нет ошибки)
- Поле 19: (S64) Строка с расшифровкой последней ошибки при работе с ОФД
- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdFNGetError
public int CmdFNGetError()Сборка команды "Запрос последних ошибок ФН" [2A].
В ответе на эту команду возращаются следующие поля:- Поле 5: (S256) Детализация ошибки
- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdGetWaitDocs
public int CmdGetWaitDocs()Сборка команды "Запрос количества неподтверждённых фискальных документов" [39].
В ответе на эту команду возращаются следующие поля:- Поле 5: (H4) Количество неподтверждённых фискальных документов
- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdFNGetCommStatus
public int CmdFNGetCommStatus()Сборка команды "Получить из ФН статус обмена с ОФД" [2B].
В ответе на эту команду возращаются следующие поля:- Поле 5: (H2) Статус информационного обмена (смотри
TMCommand.ofd_status_flags) - Поле 6: (H2) Начато чтение сообщения для ОФД (1 – да, 0 – нет)
- Поле 7: (H4) Количество сообщений для передачи в ОФД
- Поле 8: (W8) Номер первого в очереди документа для ОФД
- Поле 9: (D10) Дата и время первого в очереди документа для ОФД (формат ДДММГГччмм)
- Returns:
- текущая длина сообщения или (<0) код ошибки.
- Поле 5: (H2) Статус информационного обмена (смотри
-
CmdFNSetCommStatus
public int CmdFNSetCommStatus(boolean bConn) Сборка команды "Установить в ФН статус обмена с ОФД" [5F].- Parameters:
bConn- false: нет соединения, true: есть соединение.- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdFNReadOpen
public int CmdFNReadOpen()Сборка команды "Начать чтение документа из ФН" [5A].
В ответе на эту команду возращаются следующие поля:- Поле 5: (H4) Размер пакета
- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdFNRead
public int CmdFNRead(short offSet, short size) Сборка команды "Чтение блока документа из ФН" [5B].
В ответе на эту команду возращаются следующие поля:- Поле 5: (H2..512) Блок данных (до 256 байт) в hex представлении
- Parameters:
offSet- отступ от начала блока.size- размер ожидаемых данных (не рекомендуется использовать значение больше MAX_OFD_DATA_PART_SIZE).- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdFNReadClose
public int CmdFNReadClose()Сборка команды "Завершение чтения документа" [5D].- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdFNReadCancel
public int CmdFNReadCancel()Сборка команды "Отмена чтения документа из ФН" [5C].- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdFNWriteScript
public int CmdFNWriteScript(byte[] data) Сборка команды "Сохранение квитанции полученой от ОФД" [5E].
В ответе на эту команду возращаются следующие поля:- Поле 5: (H2) Код ответа ОФД
- Поле 6: (H0..512) Сообщение из ответа ОФД
- Parameters:
data- данные квитанции из ОФД.- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdFNGetRegParam
public int CmdFNGetRegParam(short tlvId) Сборка команды "Запрос параметров регистрации" [88].
В ответе на эту команду возращаются следующие поля:- Поле 5: Значение TLV параметра
- Parameters:
tlvId- тэг параметра регистрации (можно запросить теги 1009, 1013, 1017, 1021, 1048).- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdFNGetDoc
public int CmdFNGetDoc(int numDoc, byte mode) Сборка команды "Документ по номеру из ФН" [8B].
В ответе на эту команду возращаются следующие поля:- Поле 5: (H2) Тип документа (значение cовпадает с типом TLV документа ФН)
- Поле 6: (H2) Квитанция из ОФД (0 - не получена, 1 - получена)
Далее идут данные документа:- Поле 7: (D10) Дата и время документа ФН (формат ДДММГГччмм)
- Поле 8: (W8) Порядковый номер документа ФН
- Поле 9: (W8) Фискальный признак документа ФН
Последующие поля зависят от типа документа (смотри "Инструкция по программированию ККТ").- Parameters:
numDoc- номер документа ФН.mode- режим операции (смотриTMCommand.fn_doc_mode).- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdFNClose
Deprecated.Сборка команды "Закрытие ФН" [8D].- Parameters:
tOperatorName- имя оператора закрывающего ФН (64 байта).tOperatorINN- ИНН оператора закрывающего ФН (12 байт).- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdFNClose
@Deprecated public int CmdFNClose(String tDate, String tTime, String tOperatorName, String tOperatorINN) Deprecated.Сборка команды "Закрытие ФН" [8D].- Parameters:
tDate- дата чека ДДММГГ (6 байт).tTime- время чека ЧЧММ (4 байта).tOperatorName- имя оператора закрывающего ФН (64 байта).tOperatorINN- ИНН оператора закрывающего ФН (12 байт).- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdFNClose
Сборка команды "Закрытие ФН" [8D].- Parameters:
tOperatorName- имя оператора закрывающего ФН (64 байта).tOperatorINN- ИНН оператора закрывающего ФН (12 байт).mode- режим выполнения команды (0-брать из ФН, 1-брать из КМОС, 2-брать из параметров команды).- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdFNClose
public int CmdFNClose(String tDate, String tTime, String tOperatorName, String tOperatorINN, byte mode) Сборка команды "Закрытие ФН" [8D].- Parameters:
tDate- дата чека ДДММГГ (6 байт).tTime- время чека ЧЧММ (4 байта).tOperatorName- имя оператора закрывающего ФН (64 байта).tOperatorINN- ИНН оператора закрывающего ФН (12 байт).mode- режим выполнения команды (0-брать из ФН, 1-брать из КМОС, 2-брать из параметров команды).- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdFNGetTotal
public int CmdFNGetTotal(byte numReg, boolean bPrint) Сборка команды "Итоги регистрации" [8F].
В ответе на эту команду возращаются следующие поля (ФФД 1.1 и старше):- Поле 5: (D10) Дата и время регистрации (формат ДДММГГччмм)
- Поле 6: (S12) ИНН оператора
- Поле 7: (S20) Регистрационный номер ККТ
- Поле 8: (H2) Системы налогообложения (смотри
TMCommand.tax_types) - Поле 9: (H2) Режим работы ККТ (младший байт)
- Поле 10: (W8) Порядковый номер документа регистрации
- Поле 11: (W8) Фискальный признак документа регистрации
- Поле 12: (H2) Режим работы ККТ (старший байт)
- Поле 13: (S12) ИНН ОФД
- Поле 14: (H2) Причины перерегистрации
В ответе на эту команду возращаются следующие поля (для ФФД 1.05):- Поле 5: (D10) Дата и время регистрации (формат ДДММГГччмм)
- Поле 6: (S12) ИНН оператора
- Поле 7: (S20) Регистрационный номер ККТ
- Поле 8: (H2) Системы налогообложения (смотри
TMCommand.tax_types) - Поле 9: (H2) Режим работы ККТ (младший байт)
- Поле 10: (W8) Порядковый номер документа регистрации
- Поле 11: (W8) Фискальный признак документа регистрации
- Поле 12: (H2) Причины перерегистрации
- Parameters:
numReg- номер регистрации (0: ККТ возвращает данные по последней выполненной регистрации).bPrint- печатать чек.- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdOFDGetTicket
public int CmdOFDGetTicket(int numDoc, boolean bPrint) Сборка команды "Запрос Квитанции ОФД из ФН" [3A].
В ответе на эту команду возращаются следующие поля:- Поле 5: (D10) Дата и время (формат ДДММГГччмм)
- Поле 6: (W8) Порядковый номер документа ФН
- Поле 7: (S18) Фискальный признак квитанции ОФД
- Parameters:
numDoc- номер документа.bPrint- печатать чек.- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdOFDGetPaymentState
public int CmdOFDGetPaymentState()Сборка команды "Отчет о текущем состоянии расчетов" [3B].
В ответе на эту команду возращаются следующие поля:- Поле 5: (W8) Порядковый номер документа ФН
- Поле 6: (W8) Фискальный признак
- Поле 7: (W8) Количество неподтверждённых фискальных документов
- Поле 8: (D6) Дата первого неподтверждённого документа (формат ДДММГГ)
- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdOFDGetParam
public int CmdOFDGetParam()Сборка команды "Получить параметры обмена с ОФД" [67].
В ответе на эту команду возращаются следующие поля:- Поле 5: (H4) Порт сервера ОФД
- Поле 6: (H4) Таймаут обращения (сек)
- Поле 7: (H4) Таймаут чтения (сек)
- Поле 8: (H4) Таймаут записи (сек)
- Поле 9: (S128) Адрес хоста (DNS или IP-адрес)
- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdOFDGetParamExt
public int CmdOFDGetParamExt(byte index) Сборка команды "Получить параметры обмена с сервером ОФД/ОИСМ/AC ОКП" [67].
В ответе на эту команду возращаются следующие поля:- Поле 5: (H4) Порт сервера
- Поле 6: (H4) Таймаут обращения (сек)
- Поле 7: (H4) Таймаут чтения (сек)
- Поле 8: (H4) Таймаут записи (сек)
- Поле 9: (S128) Адрес хоста (DNS или IP-адрес)
- Поле 10: (H2) Тип сервера (
TMCommand.server_types)
- Parameters:
index- индекс сервера (смотриTMCommand.server_types).- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdOFDSetParam
public int CmdOFDSetParam(String tAddress, short port, short timeConn, short timeRecv, short timeSend) Сборка команды "Установить параметры обмена с ОФД" [66].- Parameters:
tAddress- адрес ОФД (до 128 байт).port- порт ОФД.timeConn- таймаут соединения с ОФД (в секундах).timeRecv- таймаут ожидания ответа от ОФД (в секундах).timeSend- таймаут отправки пакета в ОФД (в секундах).- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdOFDSetParamExt
public int CmdOFDSetParamExt(String tAddress, short port, short timeConn, short timeRecv, short timeSend, byte index) Сборка команды "Установить параметры обмена с ОФД/ОИСМ/AC ОКП" [66].- Parameters:
tAddress- адрес сервера (до 128 байт).port- порт сервера.timeConn- таймаут соединения с сервером (в секундах).timeRecv- таймаут ожидания ответа от сервера (в секундах).timeSend- таймаут отправки пакета на сервер (в секундах).index- индекс сервера (смотриTMCommand.server_types).- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdOFDGetInfoUrl
public int CmdOFDGetInfoUrl()Сборка команды "Получение адреса проверки чеков" [6E].
В ответе на эту команду возращаются следующие поля:- Поле 5: (S127) Адрес ФНС
- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdOFDSetInfoUrl
Сборка команды "Установка адреса проверки чеков" [6D].- Parameters:
tURL- адрес сервера для проверки чеков.- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdCertification
Сборка команды "Сертификация" [92].- Parameters:
tSerNum- серийный номер КФН (до 10 байт).- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdCertification
Сборка команды "Сертификация" [92].- Parameters:
tSerNum- серийный номер КФН (до 10 байт).tCode- код активации КФН (16 байт).- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdRegistration_1_05
public int CmdRegistration_1_05(String tFirmName, String tFirmINN, byte taxTypes, String tRegKKT, short mode, String tAutoNum, String tOperatorName, String tOperatorINN, String tAddress, String tOfdINN, String tRegNum, byte reason, byte specific, byte agent, String tOfdName, String tEmail, String tOfdURL, String tPlace) Сборка команды "Регистрация (Перерегистрация)" ФФД1.05 [04].- Parameters:
tFirmName- наименование организации (до 64 байт).tFirmINN- ИНН организации (10 или 12 байт).taxTypes- система налогообложения (смотриTMCommand.tax_types).tRegKKT- регистрационный номер ККТ (16 байт).mode- режим работы ККТ (смотриTMCommand.mode_types).tAutoNum- номер автомата (10 байт).tOperatorName- имя оператора, проводящего регистрацию (до 64 байт).tOperatorINN- ИНН оператора, проводящего регистрацию (12 байт).tAddress- адрес расчетов (до 255 байт).tOfdINN- ИНН оператора фискальных данных (10 байт).tRegNum- номер зарегистрированнрй ККТ [присваивается ФНС] (10 байт).reason- код причины перерегистрации (смотриTMCommand.reg_reasons).specific- резервированный параметр (всегда 0).agent- агент (смотриTMCommand.agent_type).tOfdName- наименование ОФД (до 252 байт).tEmail- адрес электронной почты регистрирующей стороны (до 255 байт).tOfdURL- сайт ФНС (до 255 байт).tPlace- место расчетов.- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdRegistration_1_05
public int CmdRegistration_1_05(String tDate, String tTime, String tFirmName, String tFirmINN, byte taxTypes, String tRegKKT, short mode, String tAutoNum, String tOperatorName, String tOperatorINN, String tAddress, String tOfdINN, String tRegNum, byte reason, byte specific, byte agent, String tOfdName, String tEmail, String tOfdURL, String tPlace) Сборка команды "Регистрация (Перерегистрация)" ФФД1.05 [04].- Parameters:
tDate- дата чека ДДММГГ (6 байт).tTime- время чека ЧЧММ (4 байта).tFirmName- наименование организации (до 64 байт).tFirmINN- ИНН организации (10 или 12 байт).taxTypes- система налогообложения (смотриTMCommand.tax_types).tRegKKT- регистрационный номер ККТ (16 байт).mode- режим работы ККТ (смотриTMCommand.mode_types).tAutoNum- номер автомата (10 байт).tOperatorName- имя оператора, проводящего регистрацию (до 64 байт).tOperatorINN- ИНН оператора, проводящего регистрацию (12 байт).tAddress- адрес расчетов (до 255 байт).tOfdINN- ИНН оператора фискальных данных (10 байт).tRegNum- номер зарегистрированнрй ККТ [присваивается ФНС] (10 байт).reason- код причины перерегистрации (смотриTMCommand.reg_reasons).specific- резервированный параметр (всегда 0).agent- агент (смотриTMCommand.agent_type).tOfdName- наименование ОФД (до 252 байт).tEmail- адрес электронной почты регистрирующей стороны (до 255 байт).tOfdURL- сайт ФНС (до 255 байт).tPlace- место расчетов.- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdRegistration_1_1
public int CmdRegistration_1_1(String tFirmName, String tFirmINN, byte taxTypes, String tRegKKT, short mode, String tAutoNum, String tOperatorName, String tOperatorINN, String tAddress, String tOfdINN, String tRegNum, byte reason, byte specific, byte agent, String tOfdName, String tEmail, String tOfdURL, String tPlace, int code) Сборка команды "Регистрация (Перерегистрация)" ФФД1.1 [04].- Parameters:
tFirmName- наименование организации (до 64 байт).tFirmINN- ИНН организации (10 или 12 байт).taxTypes- система налогообложения (смотриTMCommand.tax_types).tRegKKT- регистрационный номер ККТ (16 байт).mode- режим работы ККТ (смотриTMCommand.mode_types).tAutoNum- номер автомата (10 байт).tOperatorName- имя оператора, проводящего регистрацию (до 64 байт).tOperatorINN- ИНН оператора, проводящего регистрацию (12 байт).tAddress- адрес расчетов (до 255 байт).tOfdINN- ИНН оператора фискальных данных (10 байт).tRegNum- номер зарегистрированнрй ККТ [присваивается ФНС] (10 байт).reason- код причины перерегистрации (смотриTMCommand.reg_reasons).specific- резервированный параметр (всегда 0).agent- агент (смотриTMCommand.agent_type).tOfdName- наименование ОФД (до 252 байт).tEmail- адрес электронной почты регистрирующей стороны (до 255 байт).tOfdURL- сайт ФНС (до 255 байт).tPlace- место расчетов.code- код причин изменения сведений о ККТ (смотриTMCommand.reg_change_flags)..- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdRegistration_1_1
public int CmdRegistration_1_1(String tDate, String tTime, String tFirmName, String tFirmINN, byte taxTypes, String tRegKKT, short mode, String tAutoNum, String tOperatorName, String tOperatorINN, String tAddress, String tOfdINN, String tRegNum, byte reason, byte specific, byte agent, String tOfdName, String tEmail, String tOfdURL, String tPlace, int code) Сборка команды "Регистрация (Перерегистрация)" ФФД1.1 [04].- Parameters:
tDate- дата чека ДДММГГ (6 байт).tTime- время чека ЧЧММ (4 байта).tFirmName- наименование организации (до 64 байт).tFirmINN- ИНН организации (10 или 12 байт).taxTypes- система налогообложения (смотриTMCommand.tax_types).tRegKKT- регистрационный номер ККТ (16 байт).mode- режим работы ККТ (смотриTMCommand.mode_types).tAutoNum- номер автомата (10 байт).tOperatorName- имя оператора, проводящего регистрацию (до 64 байт).tOperatorINN- ИНН оператора, проводящего регистрацию (12 байт).tAddress- адрес расчетов (до 255 байт).tOfdINN- ИНН оператора фискальных данных (10 байт).tRegNum- номер зарегистрированнрй ККТ [присваивается ФНС] (10 байт).reason- код причины перерегистрации (смотриTMCommand.reg_reasons).specific- резервированный параметр (всегда 0).agent- агент (смотриTMCommand.agent_type).tOfdName- наименование ОФД (до 252 байт).tEmail- адрес электронной почты регистрирующей стороны (до 255 байт).tOfdURL- сайт ФНС (до 255 байт).tPlace- место расчетов.code- код причин изменения сведений о ККТ (смотриTMCommand.reg_change_flags)..- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdRegistration_1_2
public int CmdRegistration_1_2(String tFirmName, String tFirmINN, byte taxTypes, String tRegKKT, int mode, String tAutoNum, String tOperatorName, String tOperatorINN, String tAddress, String tOfdINN, String tRegNum, byte reason, byte specific, byte agent, String tOfdName, String tEmail, String tOfdURL, String tPlace, int code, String addReqOR, String addDataOR) Сборка команды "Регистрация (Перерегистрация)" ФФД1.2 [04].- Parameters:
tFirmName- наименование организации (до 64 байт).tFirmINN- ИНН организации (10 или 12 байт).taxTypes- система налогообложения (смотриTMCommand.tax_types).tRegKKT- регистрационный номер ККТ (16 байт).mode- режим работы ККТ (смотриTMCommand.mode_types).tAutoNum- номер автомата (10 байт).tOperatorName- имя оператора, проводящего регистрацию (до 64 байт).tOperatorINN- ИНН оператора, проводящего регистрацию (12 байт).tAddress- адрес расчетов (до 255 байт).tOfdINN- ИНН оператора фискальных данных (10 байт).tRegNum- номер зарегистрированнрй ККТ [присваивается ФНС] (10 байт).reason- код причины перерегистрации (смотриTMCommand.reg_reasons).specific- резервированный параметр (всегда 0).agent- агент (смотриTMCommand.agent_type).tOfdName- наименование ОФД (до 252 байт).tEmail- адрес электронной почты регистрирующей стороны (до 255 байт).tOfdURL- сайт ФНС (до 255 байт).tPlace- место расчетов.code- код причин изменения сведений о ККТ (смотриTMCommand.reg_change_flags).addReqOR- дополнительный реквизит ОР (до 32 байт).addDataOR- дополнительные данные ОР (до 32 байт).- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdRegistration_1_2
public int CmdRegistration_1_2(String tDate, String tTime, String tFirmName, String tFirmINN, byte taxTypes, String tRegKKT, int mode, String tAutoNum, String tOperatorName, String tOperatorINN, String tAddress, String tOfdINN, String tRegNum, byte reason, byte specific, byte agent, String tOfdName, String tEmail, String tOfdURL, String tPlace, int code, String addReqOR, String addDataOR) Сборка команды "Регистрация (Перерегистрация)" ФФД1.2 [04].- Parameters:
tDate- дата чека ДДММГГ (6 байт).tTime- время чека ЧЧММ (4 байта).tFirmName- наименование организации (до 64 байт).tFirmINN- ИНН организации (10 или 12 байт).taxTypes- система налогообложения (смотриTMCommand.tax_types).tRegKKT- регистрационный номер ККТ (16 байт).mode- режим работы ККТ (смотриTMCommand.mode_types).tAutoNum- номер автомата (10 байт).tOperatorName- имя оператора, проводящего регистрацию (до 64 байт).tOperatorINN- ИНН оператора, проводящего регистрацию (12 байт).tAddress- адрес расчетов (до 255 байт).tOfdINN- ИНН оператора фискальных данных (10 байт).tRegNum- номер зарегистрированнрй ККТ [присваивается ФНС] (10 байт).reason- код причины перерегистрации (смотриTMCommand.reg_reasons).specific- резервированный параметр (всегда 0).agent- агент (смотриTMCommand.agent_type).tOfdName- наименование ОФД (до 252 байт).tEmail- адрес электронной почты регистрирующей стороны (до 255 байт).tOfdURL- сайт ФНС (до 255 байт).tPlace- место расчетов.code- код причин изменения сведений о ККТ (смотриTMCommand.reg_change_flags).addReqOR- дополнительный реквизит ОР (до 32 байт).addDataOR- дополнительные данные ОР (до 32 байт).- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdGetResources
public int CmdGetResources()Сборка команды "Информация о свободных ресурсах" [03].
В ответе на эту команду возращаются следующие поля:- Поле 5: (H2) Осталось перерегистраций ФН
- Поле 6: (H4) Зарезервировано
- Поле 7: (H4) Номер последнего отчёта закрытия смены
- Поле 8: (D6) Дата открытия смены (формат ДДММГГ), "000000" - если смена закрыта
- Поле 9: (T4) Время открытия смены (формат ЧЧММ), "0000" - если смена закрыта
- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdGetResources
Сборка команды "Информация о свободных ресурсах" [03].
В ответе на эту команду возращаются следующие поля:- Поле 5: (H2) Осталось перерегистраций ФН
- Поле 6: (H4) Зарезервировано
- Поле 7: (H4) Номер последнего отчёта закрытия смены
- Поле 8: (D6) Дата открытия смены (формат ДДММГГ), "000000" - если смена закрыта
- Поле 9: (T4) Время открытия смены (формат ЧЧММ), "0000" - если смена закрыта
- Parameters:
tDate- дата чека ДДММГГ (6 байт).tTime- время чека ЧЧММ (4 байта).- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdReceiptOpen
public int CmdReceiptOpen(byte receiptType, String tCashier, String tCashierINN, String tTableNum, String tPlaceNum, byte copies, byte taxMode, String tAccount, String tComment) Сборка команды "Начало формирования кассового чека на чековой ленте" [10].
В ответе на эту команду возращаются следующие поля:- Поле 5: (H4) Номер чека в смене
Добавление дополнительных тегов в чек происходит через параметр комментарий (tComment), строка комментария в этом случае имеет следующий формат:
"<[номер тега 1]>[данные тега 1]|<[номер тега 2]>[данные тега 2]...|[текст комментария]"
Например: "<1008>nilstarsoft@mail.ru|Электронный чек для nilstarsoft@mail.ru"- Parameters:
receiptType- тип чека (смотриTMCommand.receipt_types).tCashier- кассир (до 64 байт).tCashierINN- ИНН кассира (10 или 12 байт).tTableNum- номер столика (до 15 байт).tPlaceNum- номер места (до 15 байт).copies- количество копий.taxMode- система налогообложения (смотриTMCommand.tax_types).tAccount- номер счета (до 30 байт).tComment- комментарий (до 254 байт).- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdReceiptOpen
public int CmdReceiptOpen(String tDate, String tTime, byte receiptType, String tCashier, String tCashierINN, String tTableNum, String tPlaceNum, byte copies, byte taxMode, String tAccount, String tComment) Сборка команды "Начало формирования кассового чека на чековой ленте" [10].
В ответе на эту команду возращаются следующие поля:- Поле 5: (H4) Номер чека в смене
Добавление дополнительных тегов в чек происходит через параметр комментарий (tComment), строка комментария в этом случае имеет следующий формат:
"<[номер тега 1]>[данные тега 1]|<[номер тега 2]>[данные тега 2]...|[текст комментария]"
Например: "<1008>nilstarsoft@mail.ru|Электронный чек для nilstarsoft@mail.ru"- Parameters:
tDate- дата чека ДДММГГ (6 байт).tTime- время чека ЧЧММ (4 байта).receiptType- тип чека (смотриTMCommand.receipt_types).tCashier- кассир (до 64 байт).tCashierINN- ИНН кассира (10 или 12 байт).tTableNum- номер столика (до 15 байт).tPlaceNum- номер места (до 15 байт).copies- количество копий.taxMode- система налогообложения (смотриTMCommand.tax_types).tAccount- номер счета (до 30 байт).tComment- комментарий (до 254 байт).- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdReceiptItem
public int CmdReceiptItem(String tName, String tCode, String tPrice, String tQty, String tUnit, byte taxIndex, byte calcMethod, byte calcObject, byte agentType, byte depIndex, String tDepName, String tComment) Сборка команды "Оформление позиции товара/услуги" [11].
В ответе на эту команду возращаются следующие поля:- Поле 5: (M14) Сумма оформленной позиции
- Поле 6: (M14) Текущая сумма документа
Добавление дополнительных тегов в позицию товара происходит через параметр комментарий (tComment), строка комментария в этом случае имеет следующий формат:
"<[номер тега 1]>[данные тега 1]|<[номер тега 2]>[данные тега 2]...|[текст комментария]"
Например: "<1162>4508000002C0EED8|Позиция с маркировкой"- Parameters:
tName- наименование товара (до 128 байт).tCode- код/артикул товара (до 20 байт).tPrice- стоимость товара в формате "РУБ.КК" (от "0" до "9999999.99").tQty- количество товара (от "0" до "199999.9999").tUnit- единица измерения товара (до 3 байт).taxIndex- индекс налога (смотриTMCommand.tax_indexes).calcMethod- признак способа расчета (смотриTMCommand.calc_methods).calcObject- признак предмета расчета (смотриTMCommand.calc_objects).agentType- признак агента [0: не используется] (смотриTMCommand.agent_type).depIndex- индекс отдела (от 01 до 32).tDepName- название отдела (до 20 символов).tComment- комментарий (до 254 байт).- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdReceiptTotal
Сборка команды "Итог по чеку" [12].
В ответе на эту команду возращаются следующие поля:- Поле 5: (M14) Текущая сумма документа
- Parameters:
tComment- комментарий.- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdReceiptTender
Сборка команды "Расчёт" [13].
В ответе на эту команду возращаются следующие поля:- Поле 5: (M14) Доплата
- Поле 6: (M14) Сдача
- Поле 7: (H2) Индекс НДС 1
- Поле 8: (M14) Сумма НДС 1
- ... возвращается информация обо всех НДС, примененных в чеке (1..n)
- Поле 7+(n*2): (H2) Индекс НДС n
- Поле 8+(n*2): (M14) Сумма НДС n
- Parameters:
payIndex- индекс оплаты (смотриTMCommand.pay_indexes).tSumma- сумма, внесённая покупателем (от "0" до "999999999.99").tAdd- дополнительная информация об расчете (до 40 байт).tComment- комментарий (до 254 байт).- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdReceiptClose
public int CmdReceiptClose()Сборка команды "Закрытие документа" [14].
В ответе на эту команду возращаются следующие поля:- Поле 5: (W8) Номер фискального документа
- Поле 6: (S200) Строка QR-кода документа
- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdReceiptComission
Сборка команды "Скидка/Наценка" [15].
В ответе на эту команду возращаются следующие поля:- Поле 5: (N5) Процент скидки/наценки ("0.01".."100")
- Поле 6: (M12) Сумма скидки/наценки
- Поле 7: (M14) Текущая сумма документа
- Parameters:
isDiscount- false: наценка, true: скидка.tPercent- процент скидки/наценки.tSumma- сумма скидки/наценки.tName- наименование скидки/наценки.- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdReceiptSubtotal
Сборка команды "Подитог" [16].
В ответе на эту команду возращаются следующие поля:- Поле 5: (M14) Текущая сумма документа
- Parameters:
tComment- комментарий.- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdReceiptCancel
public int CmdReceiptCancel()Сборка команды "Аннулирование" [17].- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdReceiptBarcode
public int CmdReceiptBarcode(byte barType, byte barMode, byte barFont, byte height, byte width, String tBarcode) Сборка команды "Печать штрих-кода" [1A].- Parameters:
barType- тип штрихкода (смотриTMCommand.barcode_types).barMode- режим печати символов штрихкода.barFont- шрифт символов штрихкода.height- высота штрихкода.width- ширина штрихкода.tBarcode- штрихкод.- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdReceiptTax
Сборка команды "Налоговая ставка" [1B].
В ответе на эту команду возращаются следующие поля:
1. Если команда "Налоговая ставка" выполняется после команды "Оформление позиции товара/услуги" [11]:- Поле 5: (M14) Сумма налога по указанному в параметрах индексу по текущей позиции чека
- Поле 6: (M14) Текущая сумма налога по указанному в параметрах индексу по чеку
2. Если команда "Налоговая ставка" выполняется после команды "Итог" [12]:- Поле 5: (H2) Индекс налоговой ставки 1
- Поле 6: (M14) Итоговая сумма налога 1 по чеку
- ... возвращается для всех налоговых ставок, примененных в чеке
- Поле 5+(n*2): (H2) Индекс налоговой ставки n
- Поле 6+(n*2): (M14) Итоговая сумма налога n по чеку
- Parameters:
taxIndex- индекс налога (смотриTMCommand.tax_indexes).tComment- комментарий.- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdReceiptComment
Сборка команды "Строка комментария" [1С].- Parameters:
tComment- комментарий.- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdReceiptAddTLV
Сборка команды "Добавление TLV структуры в документ" [6A].- Parameters:
TLVId- тэг TLV.tData- строковые данные.- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdToCash
Сборка команды "Подкрепление" [32].
В ответе на эту команду возращаются следующие поля:- Поле 5: (M14) Сумма наличных до подкрепления
- Поле 6: (M14) Сумма наличных после подкрепления
- Parameters:
tSum- сумма операции (до 1000000000.00).tUserName- имя кассира (до 255 байт).- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdToCash
Сборка команды "Подкрепление" [32].
В ответе на эту команду возращаются следующие поля:- Поле 5: (M14) Сумма наличных до подкрепления
- Поле 6: (M14) Сумма наличных после подкрепления
- Parameters:
tDate- дата чека ДДММГГ (6 байт).tTime- время чека ЧЧММ (4 байта).tSum- сумма операции (до 1000000000.00).tUserName- имя кассира (до 255 байт).- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdFromCash
Сборка команды "Инкассация" [33].
В ответе на эту команду возращаются следующие поля:- Поле 5: (M14) Сумма наличных до инкассации
- Поле 6: (M14) Сумма наличных после инкассации
- Parameters:
tSum- сумма операции (до 1000000000.00).tUserName- имя кассира (до 255 байт).- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdFromCash
Сборка команды "Инкассация" [33].
В ответе на эту команду возращаются следующие поля:- Поле 5: (M14) Сумма наличных до инкассации
- Поле 6: (M14) Сумма наличных после инкассации
- Parameters:
tDate- дата чека ДДММГГ (6 байт).tTime- время чека ЧЧММ (4 байта).tSum- сумма операции (до 1000000000.00).tUserName- имя кассира (до 255 байт).- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdGetMoney
public int CmdGetMoney()Сборка команды "Получить электронный отчёт" [34].
В ответе на эту команду возращаются следующие поля:- Поле 5: (M14) Приход наличные
- Поле 6: (M14) Возврат прихода наличные
- Поле 7: (M14) Расход наличные
- Поле 8: (M14) Возврат расхода наличные
- Поле 9: (M14) Приход электронные
- Поле 10: (M14) Возврат прихода электронные
- Поле 11: (M14) Расход электронные
- Поле 12: (M14) Возврат расхода электронные
- Поле 13: (M14) Приход аванс
- Поле 14: (M14) Возврат прихода аванс
- Поле 15: (M14) Расход аванс
- Поле 16: (M14) Возврат расхода аванс
- Поле 17: (M14) Приход кредит
- Поле 18: (M14) Возврат прихода кредит
- Поле 19: (M14) Расход кредит
- Поле 20: (M14) Возврат расхода кредит
- Поле 21: (M14) Приход иная форма оплаты
- Поле 22: (M14) Возврат прихода иная форма оплаты
- Поле 23: (M14) Расход иная форма оплаты
- Поле 24: (M14) Возврат расхода иная форма оплаты
- Поле 25: (M14) Итого приход
- Поле 26: (M14) Итого возврат
- Поле 27: (M14) Итого расход
- Поле 28: (M14) Итого возврат расхода
- Поле 29: (M14) Подкрепление
- Поле 30: (M14) Инкассация
- Поле 31: (M14) Сумма в кассе
- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdGetMoney
Сборка команды "Получить электронный отчёт" [34].
В ответе на эту команду возращаются следующие поля:- Поле 5: (M14) Приход наличные
- Поле 6: (M14) Возврат прихода наличные
- Поле 7: (M14) Расход наличные
- Поле 8: (M14) Возврат расхода наличные
- Поле 9: (M14) Приход электронные
- Поле 10: (M14) Возврат прихода электронные
- Поле 11: (M14) Расход электронные
- Поле 12: (M14) Возврат расхода электронные
- Поле 13: (M14) Приход аванс
- Поле 14: (M14) Возврат прихода аванс
- Поле 15: (M14) Расход аванс
- Поле 16: (M14) Возврат расхода аванс
- Поле 17: (M14) Приход кредит
- Поле 18: (M14) Возврат прихода кредит
- Поле 19: (M14) Расход кредит
- Поле 20: (M14) Возврат расхода кредит
- Поле 21: (M14) Приход иная форма оплаты
- Поле 22: (M14) Возврат прихода иная форма оплаты
- Поле 23: (M14) Расход иная форма оплаты
- Поле 24: (M14) Возврат расхода иная форма оплаты
- Поле 25: (M14) Итого приход
- Поле 26: (M14) Итого возврат
- Поле 27: (M14) Итого расход
- Поле 28: (M14) Итого возврат расхода
- Поле 29: (M14) Подкрепление
- Поле 30: (M14) Инкассация
- Поле 31: (M14) Сумма в кассе
- Parameters:
tDate- дата чека ДДММГГ (6 байт).tTime- время чека ЧЧММ (4 байта).- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdGetCurCounters
public int CmdGetCurCounters()Сборка команды "Получение текущих номеров документов" [35].
В ответе на эту команду возращаются следующие поля:- Поле 5: (H4) Сквозной номер последнего документа
- Поле 6: (H4) Номер последнего кассового чека
- Поле 7: (H4) Зарезервировано
- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdCorrection
@Deprecated public int CmdCorrection(byte receiptType, String tUserName, String tUserINN, byte copies, byte taxType, String tTotal, String tCash, String tCard, String tAdvance, String tCredit, String tOncoming, byte corrType, String tDescription, int date, String tNumDoc, byte taxIndex) Deprecated.Сборка команды "Кассовый чек коррекции" (только для ФФД 1.05) [3C]. Устаревшая функция не поддерживается на прошивках КФН начиная с 0xxx5xx.
В ответе на эту команду возращаются следующие поля:- Поле 5: (W8) Порядковый номер документа в ФН
- Поле 6: (W8) Фискальный признак
- Parameters:
receiptType- тип чека [допустимые типы: 0 – приход, 2 – расход] (смотриTMCommand.receipt_types).tUserName- имя кассира (до 64 байт).tUserINN- ИНН кассира (12 байт).copies- количество копий чека.taxType- система налогообложения (смотриTMCommand.tax_types).tTotal- сумма коррекции итога документа (до 12 байт)tCash- в т.ч. сумма коррекции наличных средств платежа (до 12 байт).tCard- в т.ч. сумма коррекции электронных средств платежа (до 12 байт).tAdvance- в т.ч. сумма коррекции аванса (до 12 байт).tCredit- в т.ч. сумма коррекции кредита (до 12 байт).tOncoming- в т.ч. сумма коррекции встречных предоставлений (до 12 байт).corrType- тип коррекции (смотриTMCommand.correction_types).tDescription- описание коррекции (до 255 байт)date- дата, за которую производится коррекция (в формате UNIX, в секундах от 1 января 1970г.).tNumDoc- номер документа, по которому проводится коррекция (до 32 байт).taxIndex- индекс налоговой ставки (смотриTMCommand.tax_indexes).- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdCorrection
@Deprecated public int CmdCorrection(String tDate, String tTime, byte receiptType, String tUserName, String tUserINN, byte copies, byte taxType, String tTotal, String tCash, String tCard, String tAdvance, String tCredit, String tOncoming, byte corrType, String tDescription, int date, String tNumDoc, byte taxIndex) Deprecated.Сборка команды "Кассовый чек коррекции" [3C]. Устаревшая функция не поддерживается на прошивках КФН начиная с 0xxx5xx.
В ответе на эту команду возращаются следующие поля:- Поле 5: (W8) Порядковый номер документа в ФН
- Поле 6: (W8) Фискальный признак
- Parameters:
tDate- дата чека ДДММГГ (6 байт).tTime- время чека ЧЧММ (4 байта).receiptType- тип чека [допустимые типы: 0 – приход, 2 – расход] (смотриTMCommand.receipt_types).tUserName- имя кассира (до 64 байт).tUserINN- ИНН кассира (12 байт).copies- количество копий чека.taxType- система налогообложения (смотриTMCommand.tax_types).tTotal- сумма коррекции итога документа (до 12 байт)tCash- в т.ч. сумма коррекции наличных средств платежа (до 12 байт).tCard- в т.ч. сумма коррекции электронных средств платежа (до 12 байт).tAdvance- в т.ч. сумма коррекции аванса (до 12 байт).tCredit- в т.ч. сумма коррекции кредита (до 12 байт).tOncoming- в т.ч. сумма коррекции встречных предоставлений (до 12 байт).corrType- тип коррекции (смотриTMCommand.correction_types).tDescription- описание коррекции (до 255 байт)date- дата, за которую производится коррекция (в формате UNIX, в секундах от 1 января 1970г.).tNumDoc- номер документа, по которому проводится коррекция (до 32 байт).taxIndex- индекс налоговой ставки (смотриTMCommand.tax_indexes).- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdGetDocCounters
public int CmdGetDocCounters()Сборка команды "Запрос счётчиков документов" [3D].
В ответе на эту команду возращаются следующие поля:- Поле 5: (H4) Количество документов за смену
- Поле 6: (H4) Количество чеков за смену
- Поле 7: (H4) Количество аннулированных чеков за смену
- Поле 8: (H4) Количество п/документов за смену
- Поле 9: (H4) Количество аннулированных п/документов за смену
- Поле 10: (H4) Количество отчётных документов за смену
- Поле 11: (H4) Количество универсальных п/док. за смену
- Поле 12: (H4) Количество чеков корреций за смену
- Поле 13: (H4) Количество приходов за смену
- Поле 14: (H4) Количество возвратов приходов за смену
- Поле 15: (H4) Количество расходов за смену
- Поле 16: (H4) Количество возвратов расходов за смену
- Поле 17: (H4) Количество коррекций прихода
- Поле 18: (H4) Количество коррекций расхода
- Поле 19: (H4) Количество подкреплений за смену
- Поле 20: (H4) Количество инкассаций за смену
- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdNonFiscalOpen
public int CmdNonFiscalOpen()Сборка команды "Начало формирования отчётного документа на чековой ленте" [50].- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdNonFiscalOpen
Сборка команды "Начало формирования отчётного документа на чековой ленте" [50].- Parameters:
tDate- дата чека ДДММГГ (6 байт).tTime- время чека ЧЧММ (4 байта).- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdNonFiscalLine
Сборка команды "Печать строки отчёта на чековой ленте" [51].- Parameters:
t- строка отчета.- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdNonFiscalLines
Сборка команды "Печать строк отчёта на чековой ленте" [56].- Parameters:
t- строки отчета.- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdNonFiscalClose
public int CmdNonFiscalClose()Сборка команды "Закрытие отчётного документа на чековой ленте" [52].- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdSetParams
Deprecated.Сборка команды "Программирование параметров документов" [4C]. Устаревшая функция, не используется с прошивок ФН 0xxx5xx.- Parameters:
param1- параметр1.param2- параметр2.lineFeed- межстрочный интервал.- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdSetParams
public int CmdSetParams(short param1, short param2, short lineFeed, short param4) Сборка команды "Программирование параметров документов" [4C].- Parameters:
param1- параметр1.param2- параметр2.lineFeed- межстрочный интервал.param4- параметр4 (дополнительные параметры).- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdGetParams
public int CmdGetParams()Сборка команды "Чтение параметров документа" [4D].
В ответе на эту команду возращаются следующие поля:- Поле 5: (H4) Параметр1
- Поле 6: (H4) Параметр2
- Поле 7: (H4) Межстрочный интервал
- Поле 8: (H4) Параметр4 (дополнительный параметр)
- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdGetHeader
public int CmdGetHeader()Сборка команды "Чтение заголовка документа" [9A].- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdSetHeader
Сборка команды "Установка заголовка документа" [41] (4 строки по 38 символов).- Parameters:
tStrings- набор строк заголовка.- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdSetHeaderExt
Сборка команды "Установка заголовка документа (расширенная)" [4E] (6 строк по 40 символов).- Parameters:
tStrings- набор строк заголовка.- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdGetTail
public int CmdGetTail()Сборка команды "Чтение окончания документа" [9B].- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdSetTail
Сборка команды "Установка окончания документа" [46]. (4 строки по 40 символов).- Parameters:
tStrings- набор строк окончания.- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdSetPayment
public int CmdSetPayment(byte index, String tName, boolean isSecond, boolean isCharge, byte currency, byte mask, String tConvertCurrency) Сборка команды "Программирование вида платежа" [4A].- Parameters:
index- индекс вида платежа 0..15 (смотриTMCommand.pay_indexes).tName- название вида платежа.isSecond- имеет ли вид платежа вторую строку в названии.isCharge- нужно ли возвращать величину сдачи.currency- индекс валюты платежа (0 - базовая).mask- маска допустимых операций (бит: 0 - приход, 1 - возврат, 2 - расход).tConvertCurrency- курс пересчёта в базовую валюту.- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdGetPayment
public int CmdGetPayment(byte index) Сборка команды "Получение данных о виде платежа" [4B].
В ответе на эту команду возращаются следующие поля:- Поле 5: (H2) Индекс вида платежа
- Поле 6: (S19) Название вида платежа
- Поле 7: (H2) Имеет ли вид платежа вторую строку в названии (0 - нет, 1 - да)
- Поле 8: (H2) Нужно ли возвращать величину сдачи (0 - нет, 1 - да)
- Поле 9: (H2) Индекс валюты платежа (0 - базовая)
- Поле 10: (H2) Маска допустимых операций (Бит: 0 - приход, 1 - возврат, 2 - расход)
- Поле 11: (M14) Курс пересчёта в базовую валюту
- Поле 12: (H4) Номер тега платежа
- Parameters:
index- индекс вида платежа 0..15 (смотриTMCommand.pay_indexes).- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdSetDepNames
Сборка команды "Программирование отделов" [60].- Parameters:
deps- информация об отделах.- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdGetDepNames
public int CmdGetDepNames()Сборка команды "Получение данных по отделам" [61].
В ответе на эту команду возращаются следующие поля:- Поле 5: (H2) Индекс отдела 1
- Поле 6: (S30) Название отдела 1
- ...
- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdOnOffUPD
public int CmdOnOffUPD(boolean on) Сборка команды "Включение/выключение встроенного УПД" [65]. (команда только для контроллеров с УПД).- Parameters:
on- true: включить УПД, false: отключить УПД.- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdStartMonitor
public int CmdStartMonitor()Сборка команды "Переключение контроллера в сервисный режим" [93].- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdEJGetParam
public int CmdEJGetParam()Сборка команды "Запрос параметров РПКУ" [49].
В ответе на эту команду возращаются следующие поля:- Поле 5: (N5) Общее количество страниц
- Поле 6: (Н4) Число отказавших блоков
- Поле 7: (Н4) Номер текущей страницы
- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdEJShiftCloseReport
public int CmdEJShiftCloseReport(short ShiftNo) Сборка команды "Печать 'Отчёта закрытия смены' из РПКУ" [7С].- Parameters:
ShiftNo- номер смены.- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdEJTimeReport
Сборка команды "Отчёт из РПКУ по времени" [7D].- Parameters:
tTimeStart- начальное время области отчётов.tTimeEnd- конечное время области отчётов.tDate- дата.- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdEJNoReport
public int CmdEJNoReport(short DocStart, short DocEnd, byte Over) Сборка команды "Отчёт из РПКУ по номерам документов" [7E].- Parameters:
DocStart- стартовый номер документа.DocEnd- конечный номер документа.Over- число переполнения счетчика документов.- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdEJNoDoc
public int CmdEJNoDoc(short DocNo, byte Over) Сборка команды "Документ по номеру из РПКУ" [7F].- Parameters:
DocNo- сквозной порядковый номер документа.Over- число переполнения счетчика документов.- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdEJPrint
public int CmdEJPrint(short ShiftNo) Сборка команды "Печать РПКУ" [84].- Parameters:
ShiftNo- номер смены.- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdEJErase
public int CmdEJErase()Сборка команды "Стирание РПКУ" [85].- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdServiceUpdateKeys
public int CmdServiceUpdateKeys(byte addCmd) Собрать команду "Сервис обновления ключей проверки в ФН" [9E].- Parameters:
addCmd- дополнительный код команды (смотриTMCommand.asokp_cmd).- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdServiceUpdateKeys
Собрать команду "Сервис обновления ключей проверки в ФН" [9E].- Parameters:
addCmd- дополнительный код команды (смотриTMCommand.asokp_cmd).data- cтрока в HEX формате для передачи на сервер.- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdKMGetStatus
public int CmdKMGetStatus()Собрать команду "Запрос статуса КМ" [20].
В ответе на эту команду возращаются следующие поля:- Поле 5: (H2) Состояние по проверке КМ
- Поле 6: (Н2) Состояние по формированию уведомления
- Поле 7: (Н2) Флаги разрешения команд работы с КМ
- Поле 8: (Н2) Количество сохранённых результатов проверки КМ
- Поле 9: (Н2) Количество КМ, включенных в уведомление о реализации
- Поле 10: (Н4) Предупреждение о заполнении области хранения уведомлений о реализации маркированного товара
- Поле 11: (Н4) Количество уведомлений в очереди
- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdKMGetStatus
public int CmdKMGetStatus(byte dopCode) Собрать команду "Запрос статуса КМ"[20] c дополнительным параметром. Команда поддерживается только ФН с версией протокола не ниже 1.2.06
В ответе на эту команду возращаются следующие поля:- Поле 5: (H2) Разрешение не формировать запрос о коде маркировки
- Parameters:
dopCode- = 0 - запрос состояния разрешения не формировать запрос о коде маркировки.- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdKMTransfer
public int CmdKMTransfer(short tag, byte[] code, byte IDproduct, byte offsetGS1, byte typeCode, byte plannedStatus, byte processMode, byte status) Собрать команду "Передача КМ" [21].
В ответе на эту команду возращаются следующие поля:- Поле 5: (H2) Количество реквизитов КМ, добавленных в тег 1163
- Parameters:
tag- тег маркировочного кода товара (тег 13хх)TMTagcode- маркировочный кодIDproduct- длина идентификатора товара в маркировочном кодеoffsetGS1- cмещение, с которого начинается идентификатор товара в КМtypeCode- тип кода маркировки (тег 2100)TMMarkCode.typesplannedStatus- планируемый статус товара (тег 2003)TMCommand.planned_statusprocessMode- режим обработки маркировочного кода (тег 2102), устанавливается в 0status- статус проверки сведений о товаре (тег 2109)- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdKMSaveResult
public int CmdKMSaveResult(boolean isSave) Собрать команду "Сохранить результаты проверки КМ" [22]
В ответе на эту команду возращаются следующие поля:- Поле 5: (H2) Возвращаемое значение соответствует реквизиту ФФД 2106, возвращается только в случае сохранения
- Parameters:
isSave- true: сохранять результаты проверки КМ, false: не сохранять.- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdKMClean
public int CmdKMClean()Собрать команду "Очистить КМ из ФН" [23].- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdKMNotifCreate
public int CmdKMNotifCreate(byte plannedStatus, byte unitId, String sQty, String sLotSize, byte sendOverKKT) Собрать команду "Создать уведомление КМ" [24].
В ответе на эту команду возращаются следующие поля:- Поле 5: (H) Запрос для передачи в ОИСМ в формате Hex
- Parameters:
plannedStatus- планируемый статус товараTMCommand.planned_status.unitId- мера количества расчётаTMCommand.unit_id.sQty- количество предметов расчёта.sLotSize- количество в партии (упаковке).sendOverKKT- Отправка средствами ККТ. 0 – отправка через ПК, 1 – отправка через ККТ .- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdKMNotifCreate
Собрать команду "Создать уведомление КМ" [24].
В ответе на эту команду возращаются следующие поля:- Поле 5: (H) Запрос для передачи в ОИСМ в формате Hex
- Parameters:
plannedStatus- планируемый статус товараTMCommand.planned_status.unitId- мера количества расчётаTMCommand.unit_id.sQty- количество предметов расчёта.sLotSize- количество в партии (упаковке).- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdKMOISMResp
public int CmdKMOISMResp(byte[] resp) Собрать команду "Отправить ответ ОИСМ в ФН" [25].
В ответе на эту команду возращаются следующие поля:- Поле 5: (H2) Результат проверки сведений о товаре (тег 2106)
- Поле 6: (H) Ответ от ФН (TLV List) Hex формат
- Поле 7: (H2) Режим обработки кода маркировки (тег 2102)
- Поле 8: (H2) Тип кода маркировки (тег 2100)
- Поле 9: (H2) Ответ ОИСМ о статусе товара (тег 2109)
- Поле 10: (H2) Коды обработки запроса (тег 2105)
- Поле 11: (H2) Результаты обработки запроса (тег 2005)
- Поле 12: (H8) Дата и время запроса UnixTime
- Поле 13: (S32) Идентификатор товара (тег 2101)
- Parameters:
resp- данные ответа из ОИСМ.- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdKMCheck
public int CmdKMCheck(byte type, byte[] code, byte offsetGS1_91, byte offsetGS1_92) Собрать команду "Передать код маркировки для проверки в ФН" [26].
В ответе на эту команду возращаются следующие поля:- Поле 5: (H2) Результат проверки КМ в ФН (тег 2004)
- Поле 6: (Н2) Причина того, что КМ не проверен в ФН
- Parameters:
type- тип кода маркировкиTMMarkCode.types.code- код маркировки полностью с кодом проверки.offsetGS1_91- cмещение в байтах от начала КМ до начала тега GS1 «91».offsetGS1_92- cмещение в байтах от начала КМ до начала тега GS1 «92».- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdNotifGetStatus
public int CmdNotifGetStatus()Собрать команду "Получить число уведомлений КМ" [27].
В ответе на эту команду возращаются следующие поля:- Поле 5: (H2) Состояние по передачи уведомлений
- Поле 6: (Н4) Количество уведомлений в очереди
- Поле 7: (Н8) Номер текущего уведомления
- Поле 8: (S10) Дата и время текущего уведомления
- Поле 9: (Н2) Процент заполнения области хранения уведомлений
- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdNotifReadOpen
public int CmdNotifReadOpen()Собрать команду "Начать чтение уведомления" [28].
В ответе на эту команду возращаются следующие поля:- Поле 5: (H4) Длина текущего уведомления для передачи
- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdNotifRead
public int CmdNotifRead(short offset, short size) Собрать команду "Прочитать блок данных уведомления" [2C].
В ответе на эту команду возращаются следующие поля:- Поле 5: (H) Данные для передачи в ОИСМ в формате Hex
- Parameters:
offset- текущее смещение блока данных.size- размер считываемых данных.- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdNotifReadCancel
public int CmdNotifReadCancel()Собрать команду "Отменить чтение уведомления" [2D].- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdNotifReadClose
public int CmdNotifReadClose()Собрать команду "Завершить чтение уведомления" [2E].- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdNotifWriteReceipt
public int CmdNotifWriteReceipt(byte[] data) Собрать команду "Передать квитанцию на уведомление (Передать квитанцию из ОИСМ в ФН)" [2F].
В ответе на эту команду возращаются следующие поля:- Поле 5: (H) Ответ из ФН
- Поле 6: (H2) Результаты обработки уведомления (тег 2106)
- Поле 7: (H2) Коды обработки уведомления (тег 2111)
- Поле 8: (H8) Дата и время (тег 1012)
- Parameters:
data- блок данных квитанции на уведомление.- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdNotifAutoReadStart
public int CmdNotifAutoReadStart(byte addCmd) Собрать команду "Начать сессию выгрузку уведомлений, или получить состояние текущей сессии (автономный режим)" [80].
В ответе на эту команду возращаются следующие поля:- Поле 5: (H4) Общее количество уведомлений выгрузка которых не подтверждена
- Поле 6: (H8) Номер первого уведомления выгрузка которого не была подтверждена
- Поле 7: (H4) Количество уведомлений для выгрузки в этой сессии
- Поле 8: (H8) Номер текущего уведомления для выгрузки
- Parameters:
addCmd- 0 – выдать текущее состояние сессии выгрузки, 1 – начать сессию выгрузки и выдать текущее состояние выгрузки.- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdNotifAutoConfirm
public int CmdNotifAutoConfirm(byte addCmd, int numReq, short crc) Собрать команду "Подтвердить выгрузку уведомления или получить информацию по неподтверждённым уведомлениям (автономный режим)" [87].
В ответе на эту команду возращаются следующие поля:- Поле 5: (H4) Общее количество уведомлений выгрузка которых не подтверждена (возвращается только при получении информации по неподтверждённым уведомлениям)
- Поле 6: (H8) Номер первого уведомления выгрузка которого не была подтверждена (возвращается только при получении информации по неподтверждённым уведомлениям)
- Parameters:
addCmd- 0 – получить информацию по неподтверждённым уведомлениям, 1 – подтвердить выгрузку уведомления.numReq- номер подтверждаемого уведомления (используется только при подтверждении выгрузки уведомления, иначе 0).crc- контрольная сумма выгруженного уведомления (CRC16) (используется только при подтверждении выгрузки уведомления, иначе 0).- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdNotifAutoReadData
public int CmdNotifAutoReadData(short offset, short size) Собрать команду "Прочитать блок данных текущего уведомления (автономный режим)" [89].
В ответе на эту команду возращаются следующие поля:- Поле 5: (H) Данные в формате Hex
- Parameters:
offset- cмещение.size- длина.- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdNotifAutoNext
public int CmdNotifAutoNext(byte addCmd) Собрать команду "Перейти к следующему уведомлению, или получить параметры текущего уведомления (автономный режим)" [8A].
В ответе на эту команду возращаются следующие поля:- Поле 5: (H4) Длина уведомления
- Поле 6: (H8) Номер уведомления
- Parameters:
addCmd- 0 – получить параметры текущего уведомления, 1 – перейти к выгрузке следующего уведомления и получить его параметры.- Returns:
- текущая длина сообщения или (<0) код ошибки.
-
CmdReceiptFree
Сборка команды "Произвольный фискальный чек" [73].- Parameters:
receipt- описатель произвольного чека.- Returns:
- текущая длина сообщения или (<0) код ошибки.
-