Команды протокола

Аватара пользователя
RndIT
Администратор
Сообщения: 40
Зарегистрирован: 18 дек 2015, 14:25
Откуда: Ростов-на-Дону
Контактная информация:

Команды протокола

Сообщение RndIT » 19 мар 2016, 00:26

Открытие чека

Код: Выделить всё

b;<ТИП_ЧЕКА>;<ИМЯ_КАССИРА>;

Параметры:
  • <ТИП_ЧЕКА> -- тип открываемого чека. Чек продажи ТИП_ЧЕКА=0. Чек возврата ТИП_ЧЕКА=1.
  • <ИМЯ_КАССИРА> -- UTF-8 строка, не более 36 символов;
Статус ФР после исполнения команды: не меняется.
Примечание: По-умолчанию тип чека -- чек продажи. В этом случае не рекомендуется, но допускается не использовать команду "Открытие чека", т.к. автоматически будет открыт чек продажи.


Фискальные команды
Фискальные команды - те команды, в результате исполнения которых происходит изменение внутренних регистров: денежных и количественных.


Внесение наличных денежных средств в кассу

Код: Выделить всё

imde;<СУММА>;

Параметры:
СУММА - положительное целое число (копейки).
Режим доступности команды: команда доступна во всех режимах, кроме режима открытого фискального документа. Статус ФР после исполнения команды: не меняется.
Результат исполнения команды: регистрируется в памяти ФР факт внесения наличных денежных средств в кассовый ящик. Печатается квитанция о внесении.
Примечание: данная команда рекомендуется к использованию.

Внесение изъятие наличных денежных средств из кассы (инкассация)

Код: Выделить всё

imde;<СУММА>;

Параметры:
СУММА - отрицательное - положительное целое число (копейки).
Режим доступности команды: команда доступна во всех режимах, кроме режима открытого фискального документа. Статус ФР после исполнения команды: не меняется.
Результат исполнения команды: регистрируется в памяти ФР факт изъятия наличных денежных средств из кассового ящика. Печатается квитанция об изъятии (инкассации).
Примечание: данная команда рекомендуется к использованию.



Продажа - добавление товарной позиции в чек

Код: Выделить всё

smde;<НАЗВАНИЕ_ТОВАРА>;<ЦЕНА>;<КОЛИЧЕСТВО>;<НАЛОГОВАЯ_ГРУППА>;<СЕКЦИЯ>;

Код: Выделить всё

salemde;<НАЗВАНИЕ_ТОВАРА>;<ЦЕНА>;<КОЛИЧЕСТВО>;<СЕКЦИЯ>;

Параметры:
  • <НАЗВАНИЕ_ТОВАРА> -- строка в кодировке UTF-8. 36 символов;
  • <ЦЕНА> -- целое число (копейки);
  • <КОЛИЧЕСТВО> -- целое число (граммы);
  • <НАЛОГОВАЯ_ГРУППА> -- номер налога из настроек ФР. Если налога нет, то поставить 0. Применяется к конкретной товарной позиции.
  • <СЕКЦИЯ> -- целое число от 0 до 15. Номер товарной секции (отдела).
Режим доступности команды: команда доступна во всех режимах, кроме режима "Смена открыта. 24 часа закончились".
Статус ФР после исполнения команды: Если команда первая в смене, то открывается новая смена.
Результат исполнения команды: в кассовые ленты добавляется товарная строка.
Примечание: данная команда рекомендуется к использованию.

Оплата (закрытие) чека

Код: Выделить всё

tmde;<СУММА>;<ФОРМА ОПЛАТЫ>;

Параметры:
  • <СУММА> -- целое число (копейки);
  • <ФОРМА ОПЛАТЫ> --номер формы оплаты из настроек ФР. Обычно 0 - наличными, 1 - кредитом, 2 - тарой, 3 - банковской картой. Если параметр <ФОРМА ОПЛАТЫ> отсутствует, то считает, что форма оплаты выбрана НАЛИЧНЫМИ.
Режим доступности команды: команда доступна в режиме "Открытый документ".
Статус ФР после исполнения команды: данные сформированного чека проводятся по регистрам ФР. ФР переходит в статус "Готов".
Результат исполнения команды: в кассовые ленты добавляется информация об оплате.
Примечание: для форм оплаты, отличных от 0 = НАЛИЧНЫМИ требуется передать точную, до копейки, сумму. В противном случае возникнет ошибка и чек закрыт не будет!





Аннулирование фискального чека

Дополнительные параметры отсутствуют.
Режим доступности команды: команда доступна только в режиме "Открытый документ".
Статус ФР после исполнения команды: ФР переходит из режима "Открытый документ" в один из режимов: "Открытая смена. 24 часа не кончились", "Открытая смена. 24 часа кончились" или "Смена закрыта" (если аннулировался первый чек в смене).
Результат исполнения команды: чек, с одной или более товарными строками может быть отменен до применения команды закрыть чек. В этом случае состояние фискальной информации не меняется (номер документа, данные по суммовым и количественным регистрам не меняются). ФР возвращается в то состояние, в котором она находилась до момента начала формирования чека. На кассовой ленте печатается надпись "Аннулировано".


Фискальные отчеты
Промежуточный отчет без гашения (X-отчет)

Дополнительные параметры отсутствуют.
Режим доступности команды: команда доступна во всех режимах, кроме режима открытого фискального документа.
Статус ФР после исполнения команды: не меняется.

Отчет по секциям (отделам) ФР

Код: Выделить всё

rep_sections;

Дополнительные параметры отсутствуют.
Режим доступности команды: команда доступна во всех режимах, кроме режима открытого фискального документа.
Статус ФР после исполнения команды: не меняется.
Результат исполнения команды: фискальный регистратор распечатает стандартный отчет с разбиением оплат по секциям (отделам) ФР.


Промежуточный отчет с гашением (Z-отчет)

Дополнительные параметры отсутствуют.
Режим доступности команды: команда доступна во всех режимах, кроме режима открытого фискального документа. Отчет с гашением не печатается при нулевой сумме накоплений по регистрам (т.е. когда не печатались фискальные документы).
Статус ФР после исполнения команды: ФР переходит в режим "Смена закрыта".

Получить денежный регистр

Код: Выделить всё

m;<НОМЕР_РЕГИСТРА>;

Параметры:
  • <НОМЕР_РЕГИСТРА> -- целое число;
Режим доступности команды: команда доступна во всех режимах.
Статус ФР после исполнения команды: не меняется.
Результат исполнения команды: в файл-статус будет записана обновлённая информация по указанному регистру.

Получить необнуляемую сумму

Параметры: отсутствуют
Режим доступности команды: команда доступна только в режиме "Закрытая смена".
Статус ФР после исполнения команды: не меняется.
Результат исполнения команды: в файл-статус будет записана обновлённая информация в поле not_cleared_summa. Если ФР находится в режиме отличном от "Закрытая смена", то поле not_cleared_summa=-1.

Получить статус ФР

Параметры: отсутствуют
Режим доступности команды: команда доступна в любом режиме.
Статус ФР после исполнения команды: не меняется.
Результат исполнения команды: в файл-статус будет записана обновлённая информация о статусе фискального регистратора.

Продолжить печать

Код: Выделить всё

continue_print;

Параметры: отсутствуют
Режим доступности команды: команда доступна в аварийном режиме "ФР ожидает команду продолжения печати".
Статус ФР после исполнения команды: будет продолжена печать документа.
Результат исполнения команды: будет продолжена печать документа.
Примечание: команда сервисного уровня. Применяется в том случае, когда произошел обрыв ленты в момент печати. В этом случае ФР переходит в режим "ФР ожидает команду продолжения печати" и на другие команды не реагирует.



Нефискальные операции
Печать одной строки текста

Код: Выделить всё

p;<ТЕКСТ>;

Параметры:
  • <ТЕКСТ> -- UTF-8 строка. Длина не лимитируется.
Результат исполнения команды: будет напечатана одна текстовая строка на чековой ленте стандартным шрифтом. Если в строке будет больше символов, чем позволяет разместить на ленте печатающий механизм фискального регистратора, то ФР вернёт ошибку "Неправильная длина" и строка распечатана не будет. ФР при печати строки с ошибочными параметрами издает короткий писк.
Перед печатью кассовый сервер проверяется состояние ФР, поэтому при наличии большого количества строк рекомендуется использовать команду "Мультистрока".

Мультистрока

Код: Выделить всё

pm;<ПОДСТРОКА_1>#kkm_br#<ПОДСТРОКА_2>....#kkm_br#<ПОДСТРОКА_N>;

Параметры:
  • <ПОДСТРОКА> -- UTF-8 строка. Длина не лимитируется. Ограничена шириной ленты.
Результат исполнения команды: будет напечатано N строк на чековой ленте стандартным шрифтом. Если в подстроке будет больше символов, чем позволяет разместить на ленте печатающий механизм фискального регистратора, то ФР вернёт ошибку "Неправильная длина" и подстрока распечатана не будет. ФР при печати подстроки с ошибочными параметрами издает короткий писк.
Кассовый сервер проверяется состояние ФР только в начале, поэтому обеспечивается высокая скорость печати, но если возникнет ошибка в процессе печати, то невозможно будет определить по коду ошибки в какой подстроке произошел сбой.
Настоятельно рекомендуется в прикладном ПО контролировать ширину подстрок!

Печать одной строки текста заданным шрифтом

Код: Выделить всё

print_font;<НОМЕР_ШРИФТА>;<ТЕКСТ>;

Параметры:
  • <НОМЕР_ШРИФТА> -- целое число.
  • <ТЕКСТ> -- UTF-8 строка. Длина не лимитируется.
Результат исполнения команды: будет напечатана одна текстовая строка на чековой ленте заданным по номеру шрифтом. Если в строке будет больше символов, чем позволяет разместить на ленте печатающий механизм фискального регистратора, то ФР вернёт ошибку "Неправильная длина" и строка распечатана не будет. ФР при печати строки с ошибочными параметрами издает короткий писк.
Перед печатью кассовый сервер проверяется состояние ФР.

Печать одной строки текста жирным шрифтом

Код: Выделить всё

print_bold;<ТЕКСТ>;

Параметры:
  • <ТЕКСТ> -- UTF-8 строка. Длина не лимитируется.
Результат исполнения команды: будет напечатана одна текстовая строка на чековой ленте увеличенным шрифтом. Если в строке будет больше символов, чем позволяет разместить на ленте печатающий механизм фискального регистратора, то ФР вернёт ошибку "Неправильная длина" и строка распечатана не будет. ФР при печати строки с ошибочными параметрами издает короткий писк.
Перед печатью кассовый сервер проверяется состояние ФР.

Загрузка графики

Код: Выделить всё

load_image;<ДАННЫЕ>

Параметры:
  • <ДАННЫЕ> -- двоичные данные графического файла, закодированные алгоритмом BASE64.
Режим доступности команды: команда доступна во всех режимах, кроме режима открытого фискального документа.
Статус ФР после исполнения команды: не меняется.
Результат исполнения команды: в память ФР будет загружено изображение.

Печать графики

Код: Выделить всё

print_image;<КОЛВО_СТРОК>

Параметры:
  • <КОЛВО_СТРОК> -- целое положительное число, задающее количество строк (линий) графического изображения, которое надо распечатать из памяти ФР.
Режим доступности команды: команда доступна во всех режимах, кроме режима открытого фискального документа.
Статус ФР после исполнения команды: не меняется.
Результат исполнения команды: на чековую ленту распечатается изображение длиной <КОЛВО_СТРОК> линий.

Открыть денежный ящик

Код: Выделить всё

open_cash_box;

Параметры: отсутствуют
Режим доступности команды: команда доступна в любом режиме.
Статус ФР после исполнения команды: не меняется.
Результат исполнения команды: на управляющий контакт ФР будет подан уровень, в результате которого подключенный к ФР денежный ящик должен открыться.

Обрезать чек

Код: Выделить всё

cut_check;

Параметры: отсутствуют
Результат исполнения команды: будет обрезан чек.

Продвинуть ленту

Код: Выделить всё

feed;<КОЛВО_СТРОК>

Параметры:
  • <КОЛВО_СТРОК> -- целое положительное число, задающее количество строк (линий) на которые надо продвинуть ленту.
Режим доступности команды: команда доступна во всех режимах, кроме режима открытого фискального документа.
Статус ФР после исполнения команды: не меняется.
Результат исполнения команды: на чековую ленту распечатается изображение длиной <КОЛВО_СТРОК> линий.




Устаревшие (не рекомендуемые) команды
Данные команды оставлены для совместимости с уже имеющимися схемами внедрения кассового сервера и его Супервизора.


Внесение наличных денежных средств в кассу

Код: Выделить всё

i;<СУММА>;

СУММА - положительное десятичное число. Количество десятичных разрядов =2.
Режим доступности команды: команда доступна во всех режимах, кроме режима открытого фискального документа. Статус ФР после исполнения команды: не меняется.
Результат исполнения команды: регистрируется в памяти ФР факт внесения наличных денежных средств в кассовый ящик. Печатается квитанция о внесении.
Примечание: данная команда не рекомендуется к использованию, т.к. на некоторых программно-аппаратных конфигурациях имеют место проблемы с округлением чисел с плавающей запятой. В результате наблюдается отклонение между записанным в текстовый файл параметром СУММА и переданной в фискальный регистратор в размере 1 копейки. Для использования рекомендуется аналогичная команда с целочисленной записью параметра СУММА.

Внесение изъятие наличных денежных средств из кассы (инкассация)

Код: Выделить всё

i;<СУММА>;

СУММА - отрицательное десятичное число. Количество десятичных разрядов =2.
Режим доступности команды: команда доступна во всех режимах, кроме режима открытого фискального документа. Статус ФР после исполнения команды: не меняется.
Результат исполнения команды: регистрируется в памяти ФР факт изъятия наличных денежных средств из кассового ящика. Печатается квитанция об изъятии (инкассации).
Примечание: данная команда не рекомендуется к использованию, т.к. на некоторых программно-аппаратных конфигурациях имеют место проблемы с округлением чисел с плавающей запятой. В результате наблюдается отклонение между записанным в текстовый файл параметром СУММА и переданной в фискальный регистратор в размере 1 копейки. Для использования рекомендуется аналогичная команда с целочисленной записью параметра СУММА.


Внесение изъятие наличных денежных средств из кассы (инкассация)

Код: Выделить всё

i;<СУММА>;

СУММА - отрицательное десятичное число. Количество десятичных разрядов =2.
Режим доступности команды: команда доступна во всех режимах, кроме режима открытого фискального документа. Статус ФР после исполнения команды: не меняется.
Результат исполнения команды: регистрируется в памяти ФР факт изъятия наличных денежных средств из кассового ящика. Печатается квитанция об изъятии (инкассации).
Примечание: данная команда не рекомендуется к использованию, т.к. на некоторых программно-аппаратных конфигурациях имеют место проблемы с округлением чисел с плавающей запятой. В результате наблюдается отклонение между записанным в текстовый файл параметром СУММА и переданной в фискальный регистратор в размере 1 копейки. Для использования рекомендуется аналогичная команда с целочисленной записью параметра СУММА.

Продажа - добавление товарной позиции в чек

Код: Выделить всё

s;<НАЗВАНИЕ_ТОВАРА>;<ЦЕНА>;<КОЛИЧЕСТВО>;<НАЛОГОВАЯ_ГРУППА>;<СЕКЦИЯ>;

Код: Выделить всё

sale;<НАЗВАНИЕ_ТОВАРА>;<ЦЕНА>;<КОЛИЧЕСТВО>;<СЕКЦИЯ>;

Параметры:
  • <НАЗВАНИЕ_ТОВАРА> -- строка в кодировке UTF-8. 36 символов;
  • <ЦЕНА> -- десятичное число. 2 знака в дробной части (рубли.копеки);
  • <КОЛИЧЕСТВО> -- десятичное число. 2 знака в дробной части (килограммы.граммы);
  • <НАЛОГОВАЯ_ГРУППА> -- номер налога из настроек ФР. Если налога нет, то поставить 0. Применяется к конкретной товарной позиции.
  • <СЕКЦИЯ> -- целое число от 0 до 15. Номер товарной секции (отдела).
Режим доступности команды: команда доступна во всех режимах, кроме режима "Смена открыта. 24 часа закончились".
Статус ФР после исполнения команды: Если команда первая в смене, то открывается новая смена.
Результат исполнения команды: в кассовые ленты добавляется товарная строка.
Примечание: данная команда не рекомендуется к использованию, т.к. на некоторых программно-аппаратных конфигурациях имеют место проблемы с округлением чисел с плавающей запятой. В результате наблюдается отклонение между записанным в текстовый файл параметром СУММА и переданной в фискальный регистратор в размере 1 копейки. Для использования рекомендуется аналогичная команда с целочисленной записью параметра СУММА.

Оплата (закрытие) чека

Код: Выделить всё

t;<СУММА>;<ФОРМА ОПЛАТЫ>;

Параметры:
  • <СУММА> -- десятичное число. 2 знака в дробной части (рубли.копеки);
  • <ФОРМА ОПЛАТЫ> --номер формы оплаты из настроек ФР. Обычно 0 - наличными, 1 - кредитом, 2 - тарой, 3 - банковской картой. Если параметр <ФОРМА ОПЛАТЫ> отсутствует, то считает, что форма оплаты выбрана НАЛИЧНЫМИ.
Режим доступности команды: команда доступна в режиме "Открытый документ".
Статус ФР после исполнения команды: данные сформированного чека проводятся по регистрам ФР. ФР переходит в статус "Готов".
Результат исполнения команды: в кассовые ленты добавляется информация об оплате.
Примечание 1: данная команда не рекомендуется к использованию, т.к. на некоторых программно-аппаратных конфигурациях имеют место проблемы с округлением чисел с плавающей запятой. В результате наблюдается отклонение между записанным в текстовый файл параметром СУММА и переданной в фискальный регистратор в размере 1 копейки. Для использования рекомендуется аналогичная команда с целочисленной записью параметра СУММА.
Примечание 1: для форм оплаты, отличных от 0 = НАЛИЧНЫМИ требуется передать точную, до копейки, сумму. В противном случае возникнет ошибка и чек закрыт не будет!
Для пользователей, имеющих активный сертификат техподдержки, работает поддержка через Skype.
Контакты доступны в профиле.

Аватара пользователя
RndIT
Администратор
Сообщения: 40
Зарегистрирован: 18 дек 2015, 14:25
Откуда: Ростов-на-Дону
Контактная информация:

Re: Команды протокола

Сообщение RndIT » 28 мар 2017, 13:29

В рамках доработки программного обеспечения для требований 54-ФЗ (онлайн-кассы) в протокол добавлены следующие команды:

Открыть смену

Код: Выделить всё

open_session;

Обязательная команда для обеспечения синхронизации с ОФД (оператором фискальных данных)

Открыть смену в фискальном накопителе (ФН)

Код: Выделить всё

open_session_fn;

открывает смену в фискальном накопителе

Передать произвольную TLV-структуру

Код: Выделить всё

set_tlv;ТЕГ;ДЛИНА;ДАННЫЕ;

Для передачи на сервер ОФД дополнительных параметров используются TLV-структуры, подробно описанные в "Описание протокола уровня представления данных. Форматы фискальных документов" авторства ФНС (во вложении).

Для примера, для отправки телефона +7928ХХХХХХХ необходимо использовать тег 1008, длина сообщения 12 байт

Код: Выделить всё

set_tlv;1008;12;+7928ХХХХХХХ;



Важное изменение:
Теперь после каждого ответа по WebAPI добавляется дополнительный параметр кодированный ответ XML-протокола, как в ответе ЗапросСтатуса. Кодирование осуществляется согласно base64url-алгоритма. Это позволяет осуществлять трансляцию ответов кассового сервера в полном объеме для анализа на стороне сервера-заказчика.

Список команд будет расширяться. Приглашаю к проведению тестирования минимально необходимого функционала для работа с онлайн-кассами Штрих-М по протоколу
Вложения
Форматы ФД в1_0.pdf
Описание протокола уровня представления данных. Форматы фискальных документов
(1019.72 КБ) 143 скачивания
Для пользователей, имеющих активный сертификат техподдержки, работает поддержка через Skype.
Контакты доступны в профиле.

Logger
Сообщения: 20
Зарегистрирован: 22 янв 2016, 14:14

Re: Команды протокола

Сообщение Logger » 04 апр 2017, 08:11

А остальное не поменялось? Печать чека в частности?
И когда это же самое будет реализовано в самом сервере (по идее уже должно быть реализовано, т.к. супервизор работает через сервер?), а то как-то не хочется переходить с сокетов на супервизор.

Открытие смены и открытие смены в фискальном накопителе это две обязательные процедуры? Т.е. нужно делать обе или только одну?
У конкурентов отбивается только одна бумажка "Открытие смены". Отбивается вместе с первым чеком

Аватара пользователя
RndIT
Администратор
Сообщения: 40
Зарегистрирован: 18 дек 2015, 14:25
Откуда: Ростов-на-Дону
Контактная информация:

Re: Команды протокола

Сообщение RndIT » 07 апр 2017, 09:29

Logger писал(а):А остальное не поменялось? Печать чека в частности?
И когда это же самое будет реализовано в самом сервере (по идее уже должно быть реализовано, т.к. супервизор работает через сервер?), а то как-то не хочется переходить с сокетов на супервизор.

Открытие смены и открытие смены в фискальном накопителе это две обязательные процедуры? Т.е. нужно делать обе или только одну?
У конкурентов отбивается только одна бумажка "Открытие смены". Отбивается вместе с первым чеком


Наша основная задача - обеспечение обратной совместимости с уже имеющимися разработками и интеграциями. Поэтому протокол только расширяется.

В самом кассовом сервере так же добавлены команды. Описание есть на основном сайте в разделе "Протокол" (в конце страницы).

Однозначного ответа (офциального) не имеем, т.к. не можем его получить от уважаемой кампании. Рекомендуем использовать одну команду "ОткрытьСмену".
Для пользователей, имеющих активный сертификат техподдержки, работает поддержка через Skype.
Контакты доступны в профиле.


Вернуться в «Протокол»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость