Передача данных автоматического устройства для КИТ (Терминал-ФА)

Mini web-сервер для печати чеков на фискальных регистраторах из мобильных приложений через HTTP запрос JSON.
kaw
Сообщения: 9
Зарегистрирован: 06 дек 2019, 18:42

Re: Передача данных автоматического устройства для КИТ (Терминал-ФА)

Сообщение kaw » 10 дек 2019, 14:37

Текст команды:
IdType: KkmKIT, IdModel: 0, ver: 2.1.28.14, IP client: 192.168.5.96:62902
{"Command":"RegisterCheck","NumDevice":"3","InnKkm":"","KktNumber":"","Timeout":30,"IdCommand":"4fd43f2c0bad4a9e9def966199cdd48b","IsFiscalCheck":true,"TypeCheck":0,"NotPrint":true,"NumberCopies":0,"CashierName":"Пав****о О.И.","CashierVATIN":"780500******","ClientAddress":"+7(952)***-**-76","SenderEmail":"info@*******.ru","TaxVariant":"","AdditionalProps":[],"CheckStrings":[{"Register":{"Name":"Перевозка пассажиров и багажа","Quantity":1,"Price":63.00,"Amount":63.00,"Department":1,"Tax":-1,"EAN13":"1254789547853","SignMethodCalculation":4,"SignCalculationObject":4,"MeasurementUnit":"шт","AgentSign":null,"AgentData":null,"PurveyorData":null},"BarCode":null},{"BarCode":null}],"PlaceSettle": "Такси","PlaceMarket":"Такси","AutomaticNumber":"-","Cash":0.00,"ElectronicPayment":63.00,"AdvancePayment":0,"Credit":0,"CashProvision":0}
Текст ошибки:
Не удалось закрыть чек ( 50-Переданы не все необходимые данные )
Низкоуровневые команды:

> 00:00.000002: Socket открыт.
< 00:00.000075: B6-29-00-01-01-8C-EF
> 00:00.117531: B6-29-00-17-00-35-35-30-31-30-31-30-30-38-30-39-32-13-0C-06-11-30-00-00-01-03-00-BF-98
> 00:00.000284: Socket закрыт.
> 00:00.003174: Socket открыт.
< 00:00.000063: B6-29-00-01-08-A5-7E
> 00:00.118303: B6-29-00-1F-00-03-00-00-01-00-13-0C-06-0F-1A-39-32-38-33-34-34-30-33-30-30-33-34-34-34-36-30-0B-00-00-00-53-CA
> 00:00.000337: Socket закрыт.
> 00:00.008911: Socket открыт.
< 00:00.000061: B6-29-00-01-20-CF-DB
> 00:00.015025: B6-29-00-06-00-01-03-00-01-00-A7-92
> 00:00.000112: Socket закрыт.
> 00:00.005420: Socket открыт.
< 00:00.000060: B6-29-00-01-20-CF-DB
> 00:00.015115: B6-29-00-06-00-01-03-00-01-00-A7-92
> 00:00.000132: Socket закрыт.
> 00:00.003074: Socket открыт.
< 00:00.000062: B6-29-00-01-08-A5-7E
> 00:00.117743: B6-29-00-1F-00-03-00-00-01-00-13-0C-06-0F-1A-39-32-38-33-34-34-30-33-30-30-33-34-34-34-36-30-0B-00-00-00-53-CA
> 00:00.000344: Socket закрыт.
> 00:00.010463: Socket открыт.
< 00:00.000065: B6-29-00-03-23-45-A0-95-12
> 00:00.128550: B6-29-00-01-00-AD-FF
> 00:00.000091: Socket закрыт.
> 00:00.073626: Socket открыт.
< 00:00.000062: B6-29-00-46-2B-23-04-41-00-06-04-1D-00-8F-A5-E0-A5-A2-AE-A7-AA-A0-20-AF-A0-E1-E1-A0-A6-A8-E0-AE-A2-20-A8-20-A1-A0-A3-A0-A6-A0-37-04-02-00-9C-18-FF-03-02-00-00-01-AF-04-01-00-06-BE-04-01-00-04-BC-04-01-00-04-C6-04-01-00-00-47-63
> 00:00.021022: B6-29-00-01-00-AD-FF
> 00:00.000086: Socket закрыт.
> 00:00.008303: Socket открыт.
< 00:00.000054: B6-29-00-6C-2D-FD-03-0D-00-8F-A0-A2-AB-A5-AD-AA-AE-20-8E-2E-88-2E-B3-04-0C-00-37-38-30-35-30-30-36-32-37-36-33-32-1F-04-01-00-08-07-04-01-00-00-39-04-02-00-9C-18-BF-04-01-00-00-C0-04-01-00-00-C1-04-01-00-00-F0-03-10-00-2B-37-28-39-35-32-29-32-35-30-2D-39-36-2D-37-36-5D-04-13-00-62-6F-73-73-40-37-30-30-30-30-30-30-2E-73-70-62-2E-72-75-02-57
> 00:00.019998: B6-29-00-01-00-AD-FF
> 00:00.000078: Socket закрыт.
> 00:00.004966: Socket открыт.
< 00:00.000058: B6-29-00-07-24-01-9C-18-00-00-00-3F-06
> 00:00.003639: B6-29-00-02-01-32-80-CF
> 00:00.000081: Socket закрыт.
> 00:00.004082: Socket открыт.
< 00:00.000058: B6-29-00-01-08-A5-7E
> 00:00.118249: B6-29-00-1F-00-03-04-01-01-00-13-0C-06-0F-1A-39-32-38-33-34-34-30-33-30-30-33-34-34-34-36-30-0B-00-00-00-3C-1D
> 00:00.000331: Socket закрыт.
> 00:00.003117: Socket открыт.
< 00:00.000068: B6-29-00-01-10-9C-ED
> 00:00.014585: B6-29-00-01-00-AD-FF
> 00:00.000070: Socket закрыт.
Время выполнения команды:00:00.886443
Текст ответа:
{"SessionCheckNumber":1,"CheckNumber":12,"SessionNumber":3,"Command":"RegisterCheck","Error":"Не удалось закрыть чек ( 50-Переданы не все необходимые данные )","Warning":"","Status":2,"IdCommand":"4fd43f2c0bad4a9e9def966199cdd48b","NumDevice":3,"UnitName":"ИП Па******ко"}

Какой команды не хватает - могу тоже прислать.

Audim
Администратор
Сообщения: 2395
Зарегистрирован: 17 мар 2015, 18:36

Re: Передача данных автоматического устройства для КИТ (Терминал-ФА)

Сообщение Audim » 10 дек 2019, 20:19

1.
"ClientAddress": "+7(952)***-**-76" - ККТ такое не примет,
нужно: "ClientAddress": "+79521234569"

2.
Поля "PlaceSettle": "Такси" и "AutomaticNumber" бесполезно передавать в чеке - они будут проигнорированы

3.
Поставьте свежею версию kkmserver.

kaw
Сообщения: 9
Зарегистрирован: 06 дек 2019, 18:42

Re: Передача данных автоматического устройства для КИТ (Терминал-ФА)

Сообщение kaw » 12 дек 2019, 18:40

Добрый день!
Audim писал(а):
10 дек 2019, 20:19
1.
"ClientAddress": "+7(952)***-**-76" - ККТ такое не примет,
нужно: "ClientAddress": "+79521234569"
Это в форуме так замаскировал, в рабочей среде передается номер полностью в этом формате и все работает, в тестовой утилите от производителя - тоже так передавал - работает.
Audim писал(а):
10 дек 2019, 20:19
2.
Поля "PlaceSettle": "Такси" и "AutomaticNumber" бесполезно передавать в чеке - они будут проигнорированы
А как их передать в ККТ? По описанию протокола производителя - д.б. в чеке командой 0x1F
Audim писал(а):
10 дек 2019, 20:19
3.
Поставьте свежею версию kkmserver.
Свежая есть - установлена 2.1.31.20 - результат одинаковый.

kaw
Сообщения: 9
Зарегистрирован: 06 дек 2019, 18:42

Re: Передача данных автоматического устройства для КИТ (Терминал-ФА)

Сообщение kaw » 16 дек 2019, 19:46

Установил свежую версию. Результат не изменился. Команда 0x1F не передается. Она д.б. после команды 0x2D вроде.

Текст команды:
IdType: KkmKIT, IdModel: 0, ver: 2.1.31.21, Width: 36, Firmware: 1.0.34r, IP client: 192.168.5.96:55267
{"Command":"RegisterCheck","NumDevice":"3","InnKkm":"","KktNumber":"","Timeout":30,"IdCommand":"4d81ac18666e4d408236a4db4b1a0bb5","IsFiscalCheck":true,"TypeCheck":0,"NotPrint":true,"NumberCopies":0,"CashierName":"Павленко О.И.","CashierVATIN":"780500*****2","ClientAddress":"+7921*****79","SenderEmail":"info@*******.ru","TaxVariant":"","AdditionalProps":[],"CheckStrings":[{"Register":{"Name":"Перевозка пассажиров и багажа","Quantity":1,"Price":82.00,"Amount":82.00,"Department":1,"Tax":-1,"EAN13":"1254789547853","SignMethodCalculation":4,"SignCalculationObject":4,"MeasurementUnit":"шт","AgentSign":null,"AgentData":null,"PurveyorData":null},"BarCode":null},{"BarCode":null}],"PlaceSettle": "Такси","PlaceMarket":"Такси","AutomaticNumber":"-","Cash":82.00,"ElectronicPayment":0.00,"AdvancePayment":0,"Credit":0,"CashProvision":0}
Текст ошибки:
Не удалось закрыть чек ( 50-Переданы не все необходимые данные )Не удалось закрыть чек ( 50-Переданы не все необходимые данные )
Низкоуровневые команды:

> 00:00.000001: Socket открыт.
< 00:00.000065: B6-29-00-01-01-8C-EF
> 00:00.120722: B6-29-00-17-00-35-35-30-31-30-31-30-30-38-30-39-32-13-0C-10-10-25-00-00-01-03-00-24-C4
> 00:00.000227: Socket закрыт.
> 00:00.005787: Socket открыт.
< 00:00.000057: B6-29-00-01-08-A5-7E
> 00:00.118988: B6-29-00-1F-00-03-00-00-01-00-13-0C-10-0F-20-39-32-38-33-34-34-30-33-30-30-33-34-34-34-36-30-19-00-00-00-3C-B5
> 00:00.000281: Socket закрыт.
> 00:00.003599: Socket открыт.
< 00:00.000050: B6-29-00-01-20-CF-DB
> 00:00.015603: B6-29-00-06-00-01-0A-00-00-00-E1-52
> 00:00.000110: Socket закрыт.
> 00:00.003650: Socket открыт.
< 00:00.000055: B6-29-00-01-20-CF-DB
> 00:00.015690: B6-29-00-06-00-01-0A-00-00-00-E1-52
> 00:00.000097: Socket закрыт.
> 00:00.003576: Socket открыт.
< 00:00.000052: B6-29-00-01-08-A5-7E
> 00:00.118615: B6-29-00-1F-00-03-00-00-01-00-13-0C-10-0F-20-39-32-38-33-34-34-30-33-30-30-33-34-34-34-36-30-19-00-00-00-3C-B5
> 00:00.000269: Socket закрыт.
> 00:00.003281: Socket открыт.
< 00:00.000054: B6-29-00-03-23-45-A0-95-12
> 00:00.128476: B6-29-00-01-00-AD-FF
> 00:00.000075: Socket закрыт.
> 00:00.003709: Socket открыт.
< 00:00.000053: B6-29-00-41-2B-23-04-3C-00-06-04-1D-00-8F-A5-E0-A5-A2-AE-A7-AA-A0-20-AF-A0-E1-E1-A0-A6-A8-E0-AE-A2-20-A8-20-A1-A0-A3-A0-A6-A0-37-04-02-00-08-20-FF-03-02-00-00-01-AF-04-01-00-06-BE-04-01-00-04-BC-04-01-00-04-CC-C7
> 00:00.021199: B6-29-00-01-00-AD-FF
> 00:00.000056: Socket закрыт.
> 00:00.003347: Socket открыт.
< 00:00.000046: B6-29-00-68-2D-FD-03-0D-00-8F-A0-A2-AB-A5-AD-AA-AE-20-8E-2E-88-2E-B3-04-0C-00-37-38-30-35-30-30-36-32-37-36-33-32-1F-04-01-00-08-07-04-02-00-08-20-39-04-01-00-00-BF-04-01-00-00-C0-04-01-00-00-C1-04-01-00-00-F0-03-0C-00-2B-37-39-32-31-35-37-39-34-31-37-39-5D-04-13-00-62-6F-73-73-40-37-30-30-30-30-30-30-2E-73-70-62-2E-72-75-0D-16
> 00:00.020760: B6-29-00-01-00-AD-FF
> 00:00.000061: Socket закрыт.
> 00:00.003328: Socket открыт.
< 00:00.000053: B6-29-00-07-24-01-08-20-00-00-00-99-00
> 00:00.003707: B6-29-00-02-01-32-80-CF
> 00:00.000063: Socket закрыт.
> 00:00.003371: Socket открыт.
< 00:00.000051: B6-29-00-01-08-A5-7E
> 00:00.123298: B6-29-00-1F-00-03-04-01-01-00-13-0C-10-0F-20-39-32-38-33-34-34-30-33-30-30-33-34-34-34-36-30-19-00-00-00-53-62
> 00:00.000268: Socket закрыт.
> 00:00.003484: Socket открыт.
< 00:00.000053: B6-29-00-01-10-9C-ED
> 00:00.015484: B6-29-00-01-00-AD-FF
> 00:00.000057: Socket закрыт.
Время выполнения команды:00:00.751428
Текст ответа:
{"CheckNumber":26,"SessionNumber":10,"Command":"RegisterCheck","Error":"Не удалось закрыть чек ( 50-Переданы не все необходимые данные )Не удалось закрыть чек ( 50-Переданы не все необходимые данные )","Warning":"","Status":2,"IdCommand":"4d81ac18666e4d408236a4db4b1a0bb5","NumDevice":3,"UnitName":"ИП Павленко"}

Audim
Администратор
Сообщения: 2395
Зарегистрирован: 17 мар 2015, 18:36

Re: Передача данных автоматического устройства для КИТ (Терминал-ФА)

Сообщение Audim » 16 дек 2019, 19:59

>как их передать в ККТ?
При регистрации ККТ.
При печати чека они не передаются.

Проверите перерегистрацию ККТ и укажите нужные значения этих полей.

kaw
Сообщения: 9
Зарегистрирован: 06 дек 2019, 18:42

Re: Передача данных автоматического устройства для КИТ (Терминал-ФА)

Сообщение kaw » 16 дек 2019, 20:34

По документации производителя ККТ :

Передать данные автоматического устройства расчетов для кассового чек (0x1F)
В соответствии с изменениями в законодательстве, и, соответственно, «форматах фискальных документов»
ФНС, одна ККТ может применяться в составе нескольких автоматических устройств (вендинг). В Данном
случае при регистрации ККТ могут не указываются следующие параметры: Адрес расчетов, место расчѐта,
номер автомата. Эти параметры указываются в процессе формировании чека, команда 0x1F.
Если ККТ была зарегистрирована без указания какого-либо параметра(тэга), то этот тэг необходимо передать
в команде 0x1F.


Это собственно и пытаемся сделать. Описание использования функции в чеке описана в текущей версии документации протокола производителя на стр 19.
Указать статичные теги при регистрации не представляется возможным в данной ситуации.

У нас сейчас уже 11 ККТ в стойке, и мы пытаемся перейти для партнеров на более компактную и экономичную модель без принтера.
Пока что не слишком успешно.

Audim
Администратор
Сообщения: 2395
Зарегистрирован: 17 мар 2015, 18:36

Re: Передача данных автоматического устройства для КИТ (Терминал-ФА)

Сообщение Audim » 17 дек 2019, 02:18

Адрес расчетов, и номер автомата - можно передать к сожалению только в Терминал-ФА.
Другие модели ККТ на дух не переносят эти теги в чеках.

А так как API kkmserver должно работать на всех ККТ то в данных чека эти теги в kkmserver не поддерживаются и к сожалению не будут.

Эти теги будут автоматом включатся в данные чека если вы их укажите при регистрации/перерегистрации.

Ответить