Package ru.nilsoft.tm

Class TMCommand

java.lang.Object
ru.nilsoft.tm.TMCommand

public class TMCommand extends Object

Класс контейнер для формирования и распаковки команд контроллера ФН (поддерживаются протоколы ФФД 1.05, ФФД 1.1, ФФД 1.2).

Протокол работы с контроллером ФН

Формат запроса

Формат ответа

Форматы полей/параметров

Все поля представляют собой строки, состоящие из ASCII символов в диапазоне от 0x20 до 0xFF, завершающиеся символом разделения данных TMCommand.symbols.FIELD_END.
Тип поля Обозначение Функции Пример
Строковое поле 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"
  • Field Details

  • 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

      public static String Utf8toCp866(String src)
      Конвертирование строки из UTF8 в CP866.
      Parameters:
      src - UTF8 строка.
      Returns:
      CP866 строка.
    • Cp866toUtf8

      public static String Cp866toUtf8(String src)
      Конвертирование строки из 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

      public static byte GetUnitID(String ed)
      Определение меры количества предмета расчёта по популярным сокращениям (не всем возможным) для ФФД 1.2 - для неопознанного сокращения возвращается 255 (иная единица измерения); - входная строка также может содержать непосредственное HEX-значение в формате xNN.
      Parameters:
      ed - строка для определения.
      Returns:
      код единицы измерения (TMCommand.unit_id).
    • GetUnitIDHex

      public static String GetUnitIDHex(String ed)
      Определение меры количества предмета расчёта по популярным сокращениям (не всем возможным) для ФФД 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

      public String GetFieldValue(int fieldIndex)
      Получение поля команды как строки. (без конвертации кодировки).
      Parameters:
      fieldIndex - индекс поля.
      Returns:
      значение поля (пустая строка: если не найдено).
    • GetFieldString

      public String GetFieldString(int fieldIndex)
      Получение поля команды как строки. (с конвертацией кодировки из 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

      public static String GetPrefix()
      Получение префикса команды.
      Returns:
      префикс команды.
    • toString

      public String toString()
      Вывод ввиде строки.
      Overrides:
      toString in class Object
      Returns:
      строка для вывода.
    • 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

      public int MakeValue(String src)
      Создание строкового поля (без конвертации в CP866).
      Parameters:
      src - строка.
      Returns:
      текущая длина сообщения.
    • MakeString

      public int MakeString(String src)
      Создание строкового поля (с конвертацией CP866).
      Parameters:
      src - строка.
      Returns:
      текущая длина сообщения.
    • MakeCashier

      public int MakeCashier(String name, String inn)
      Создать поле с информацией о кассире.
      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

      public int MakeDate(Calendar cal)
      Добавление поля даты в команду.
      Parameters:
      cal - объект-календарь.
      Returns:
      текущая длина сообщения.
    • MakeTime

      public int MakeTime(Calendar cal)
      Добавление поля времени в команду.
      Parameters:
      cal - объект-календарь.
      Returns:
      текущая длина сообщения.
    • MakeHeader

      public int MakeHeader(byte cmdCode)
      Создание заголовочного поля команды.
      Parameters:
      cmdCode - код команды.
      Returns:
      текущая длина сообщения или (<0) код ошибки.
    • MakeTail

      public int MakeTail()
      Создание завершающей части команды.
      Returns:
      текущая длина сообщения или (<0) код ошибки.
    • MakePosField

      public int MakePosField(TMCommand.FreeFiscalReceipt.PosField field)
      Создание обязательного поля произвольного чека.
      Parameters:
      field - описатель поля.
      Returns:
      текущая длина сообщения или (<0) код ошибки.
    • MakeFreeField

      public int MakeFreeField(TMCommand.FreeFiscalReceipt.FreeField field)
      Создание дополнительного поля произвольного чека.
      Parameters:
      field - описатель поля.
      Returns:
      текущая длина сообщения или (<0) код ошибки.
    • CmdStart

      public int CmdStart()
      Сборка команды "Начало сеанса" [01].
      Returns:
      текущая длина сообщения или (<0) код ошибки.
    • CmdStart

      public int CmdStart(String tDate, String tTime)
      Сборка команды "Начало сеанса" [01].
      Parameters:
      tDate - дата чека ДДММГГ (6 байт).
      tTime - время чека ЧЧММ (4 байта).
      Returns:
      текущая длина сообщения или (<0) код ошибки.
    • CmdPrintHeader

      public int CmdPrintHeader()
      Сборка команды "Печать заголовка чека" [1D].
      Returns:
      текущая длина сообщения или (<0) код ошибки.
    • CmdBar2Dprepare

      public int CmdBar2Dprepare(byte options, byte param, String tAdd, String tCode)
      Сборка команды "Подгтовка к печати 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

      public int CmdShiftReport(String tDate, String tTime)
      Сборка команды "Отчет о текущем состоянии" [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

      public int CmdSetDateTime(String tDate, String tTime)
      Сборка команды "Установка времени и даты" [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) код ошибки.
    • 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 public int CmdFNClose(String tOperatorName, String tOperatorINN)
      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

      public int CmdFNClose(String tOperatorName, String tOperatorINN, byte mode)
      Сборка команды "Закрытие ФН" [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

      public int CmdOFDSetInfoUrl(String tURL)
      Сборка команды "Установка адреса проверки чеков" [6D].
      Parameters:
      tURL - адрес сервера для проверки чеков.
      Returns:
      текущая длина сообщения или (<0) код ошибки.
    • CmdCertification

      public int CmdCertification(String tSerNum)
      Сборка команды "Сертификация" [92].
      Parameters:
      tSerNum - серийный номер КФН (до 10 байт).
      Returns:
      текущая длина сообщения или (<0) код ошибки.
    • CmdCertification

      public int CmdCertification(String tSerNum, String tCode)
      Сборка команды "Сертификация" [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

      public int CmdGetResources(String tDate, String tTime)
      Сборка команды "Информация о свободных ресурсах" [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

      public int CmdReceiptTotal(String tComment)
      Сборка команды "Итог по чеку" [12].

      В ответе на эту команду возращаются следующие поля:
      • Поле 5: (M14) Текущая сумма документа
      Parameters:
      tComment - комментарий.
      Returns:
      текущая длина сообщения или (<0) код ошибки.
    • CmdReceiptTender

      public int CmdReceiptTender(byte payIndex, String tSumma, String tAdd, String tComment)
      Сборка команды "Расчёт" [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

      public int CmdReceiptComission(boolean isDiscount, String tPercent, String tSumma, String tName)
      Сборка команды "Скидка/Наценка" [15].

      В ответе на эту команду возращаются следующие поля:
      • Поле 5: (N5) Процент скидки/наценки ("0.01".."100")
      • Поле 6: (M12) Сумма скидки/наценки
      • Поле 7: (M14) Текущая сумма документа
      Parameters:
      isDiscount - false: наценка, true: скидка.
      tPercent - процент скидки/наценки.
      tSumma - сумма скидки/наценки.
      tName - наименование скидки/наценки.
      Returns:
      текущая длина сообщения или (<0) код ошибки.
    • CmdReceiptSubtotal

      public int CmdReceiptSubtotal(String tComment)
      Сборка команды "Подитог" [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

      public int CmdReceiptTax(byte taxIndex, String tComment)
      Сборка команды "Налоговая ставка" [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

      public int CmdReceiptComment(String tComment)
      Сборка команды "Строка комментария" [1С].
      Parameters:
      tComment - комментарий.
      Returns:
      текущая длина сообщения или (<0) код ошибки.
    • CmdReceiptAddTLV

      public int CmdReceiptAddTLV(short TLVId, String tData)
      Сборка команды "Добавление TLV структуры в документ" [6A].
      Parameters:
      TLVId - тэг TLV.
      tData - строковые данные.
      Returns:
      текущая длина сообщения или (<0) код ошибки.
    • CmdToCash

      public int CmdToCash(String tSum, String tUserName)
      Сборка команды "Подкрепление" [32].

      В ответе на эту команду возращаются следующие поля:
      • Поле 5: (M14) Сумма наличных до подкрепления
      • Поле 6: (M14) Сумма наличных после подкрепления
      Parameters:
      tSum - сумма операции (до 1000000000.00).
      tUserName - имя кассира (до 255 байт).
      Returns:
      текущая длина сообщения или (<0) код ошибки.
    • CmdToCash

      public int CmdToCash(String tDate, String tTime, String tSum, String tUserName)
      Сборка команды "Подкрепление" [32].

      В ответе на эту команду возращаются следующие поля:
      • Поле 5: (M14) Сумма наличных до подкрепления
      • Поле 6: (M14) Сумма наличных после подкрепления
      Parameters:
      tDate - дата чека ДДММГГ (6 байт).
      tTime - время чека ЧЧММ (4 байта).
      tSum - сумма операции (до 1000000000.00).
      tUserName - имя кассира (до 255 байт).
      Returns:
      текущая длина сообщения или (<0) код ошибки.
    • CmdFromCash

      public int CmdFromCash(String tSum, String tUserName)
      Сборка команды "Инкассация" [33].

      В ответе на эту команду возращаются следующие поля:
      • Поле 5: (M14) Сумма наличных до инкассации
      • Поле 6: (M14) Сумма наличных после инкассации
      Parameters:
      tSum - сумма операции (до 1000000000.00).
      tUserName - имя кассира (до 255 байт).
      Returns:
      текущая длина сообщения или (<0) код ошибки.
    • CmdFromCash

      public int CmdFromCash(String tDate, String tTime, String tSum, String tUserName)
      Сборка команды "Инкассация" [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

      public int CmdGetMoney(String tDate, String tTime)
      Сборка команды "Получить электронный отчёт" [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

      public int CmdNonFiscalOpen(String tDate, String tTime)
      Сборка команды "Начало формирования отчётного документа на чековой ленте" [50].
      Parameters:
      tDate - дата чека ДДММГГ (6 байт).
      tTime - время чека ЧЧММ (4 байта).
      Returns:
      текущая длина сообщения или (<0) код ошибки.
    • CmdNonFiscalLine

      public int CmdNonFiscalLine(String t)
      Сборка команды "Печать строки отчёта на чековой ленте" [51].
      Parameters:
      t - строка отчета.
      Returns:
      текущая длина сообщения или (<0) код ошибки.
    • CmdNonFiscalLines

      public int CmdNonFiscalLines(String[] t)
      Сборка команды "Печать строк отчёта на чековой ленте" [56].
      Parameters:
      t - строки отчета.
      Returns:
      текущая длина сообщения или (<0) код ошибки.
    • CmdNonFiscalClose

      public int CmdNonFiscalClose()
      Сборка команды "Закрытие отчётного документа на чековой ленте" [52].
      Returns:
      текущая длина сообщения или (<0) код ошибки.
    • CmdSetParams

      @Deprecated public int CmdSetParams(short param1, short param2, short lineFeed)
      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

      public int CmdSetHeader(String[] tStrings)
      Сборка команды "Установка заголовка документа" [41] (4 строки по 38 символов).
      Parameters:
      tStrings - набор строк заголовка.
      Returns:
      текущая длина сообщения или (<0) код ошибки.
    • CmdSetHeaderExt

      public int CmdSetHeaderExt(String[] tStrings)
      Сборка команды "Установка заголовка документа (расширенная)" [4E] (6 строк по 40 символов).
      Parameters:
      tStrings - набор строк заголовка.
      Returns:
      текущая длина сообщения или (<0) код ошибки.
    • CmdGetTail

      public int CmdGetTail()
      Сборка команды "Чтение окончания документа" [9B].
      Returns:
      текущая длина сообщения или (<0) код ошибки.
    • CmdSetTail

      public int CmdSetTail(String[] tStrings)
      Сборка команды "Установка окончания документа" [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

      public int CmdSetDepNames(Map<Byte,String> deps)
      Сборка команды "Программирование отделов" [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

      public int CmdEJTimeReport(String tTimeStart, String tTimeEnd, String tDate)
      Сборка команды "Отчёт из РПКУ по времени" [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

      public int CmdServiceUpdateKeys(byte addCmd, String data)
      Собрать команду "Сервис обновления ключей проверки в ФН" [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хх) TMTag
      code - маркировочный код
      IDproduct - длина идентификатора товара в маркировочном коде
      offsetGS1 - cмещение, с которого начинается идентификатор товара в КМ
      typeCode - тип кода маркировки (тег 2100) TMMarkCode.types
      plannedStatus - планируемый статус товара (тег 2003) TMCommand.planned_status
      processMode - режим обработки маркировочного кода (тег 2102), устанавливается в 0
      status - статус проверки сведений о товаре (тег 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

      public int CmdKMNotifCreate(byte plannedStatus, byte unitId, String sQty, String sLotSize)
      Собрать команду "Создать уведомление КМ" [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

      public int CmdReceiptFree(TMCommand.FreeFiscalReceipt receipt)
      Сборка команды "Произвольный фискальный чек" [73].
      Parameters:
      receipt - описатель произвольного чека.
      Returns:
      текущая длина сообщения или (<0) код ошибки.