shtrih-m / javapos_shtrih

Реализация JavaPOS драйвера принтера фискального регистратора для устройств Штрих-М
http://www.shtrih-m.ru
MIT License
33 stars 16 forks source link

Чек коррекции #29

Open mifkamaz opened 6 years ago

mifkamaz commented 6 years ago

Как правильно сделать чек коррекции?

Делаю так

printer.fsPrintCorrectionReceipt(0, 1_000_00);

Ошибка

Caused by: com.shtrih.fiscalprinter.SmFiscalPrinterException: 1, ФН: Неизвестная команда, неверный формат посылки или неизвестные параметры
     at com.shtrih.fiscalprinter.SMFiscalPrinterImpl.check(SMFiscalPrinterImpl.java:223)
     at com.shtrih.jpos.fiscalprinter.directIO.DIOPrintCorrectionReceipt.execute(DIOPrintCorrectionReceipt.java:28)
     at com.shtrih.jpos.fiscalprinter.directIO.DirectIOHandler2.directIO(DirectIOHandler2.java:378)
     at com.shtrih.jpos.fiscalprinter.FiscalPrinterImpl.directIO(FiscalPrinterImpl.java:2064)
     at com.shtrih.jpos.fiscalprinter.FiscalPrinterService.directIO(FiscalPrinterService.java:272)
nyxiscoo1 commented 6 years ago
  1. Ошибка возникает из-за первого параметра, т.к. согласно ФФД допустимы 2 значения: 1 - приход, 3 - расход.
  2. Есть 2 версии команды печти чека коррекции, v1 представленная выше и v2( fsPrintCorrectionReceipt3) которая позволяет задать большее количество парамтров, рекомендуется использовать v2.
nyxiscoo1 commented 6 years ago

На самом деле печать чека коррекции не так проста как кажется на первый взгляд, особенно, если это делать для ФФД 1.05, пока не знаю в каком формате лучше создать доку создал страницу на вики. Для формирования чека коррекции под ФФД 1.05 нужно обновиться на драйвер 469.

mifkamaz commented 6 years ago

fsPrintCorrectionReceipt - работает корректно

fsPrintCorrectionReceipt3 - выдает ошибку

Caused by: com.shtrih.fiscalprinter.SmFiscalPrinterException: 55, Команда не поддерживается в данной реализации
                                                                             at com.shtrih.fiscalprinter.SMFiscalPrinterImpl.check(SMFiscalPrinterImpl.java:223)
                                                                             at com.shtrih.jpos.fiscalprinter.directIO.DIOPrintCorrectionReceipt2.execute(DIOPrintCorrectionReceipt2.java:45)
                                                                             at com.shtrih.jpos.fiscalprinter.directIO.DirectIOHandler2.directIO(DirectIOHandler2.java:374)
                                                                             at com.shtrih.jpos.fiscalprinter.FiscalPrinterImpl.directIO(FiscalPrinterImpl.java:2064)
                                                                             at com.shtrih.jpos.fiscalprinter.FiscalPrinterService.directIO(FiscalPrinterService.java:272)
                                                                             at jpos.BaseJposControl.directIO(BaseJposControl.java:461) 
                                                                             at com.shtrih.fiscalprinter.ShtrihFiscalPrinter113.directIO(ShtrihFiscalPrinter113.java:1016) 
                                                                             at com.shtrih.fiscalprinter.ShtrihFiscalPrinter113.fsPrintCorrectionReceipt3(ShtrihFiscalPrinter113.java:1667) 
                                                                             at com.bifit.cashdesk.mobile.driver.ShtrihProtocol.correction(ShtrihProtocol.java:757) 
                                                                             at com.bifit.cashdesk.mobile.views.tasks.CorrectionTask.executeCommand(CorrectionTask.java:81) 
                                                                             at com.bifit.cashdesk.mobile.views.tasks.CorrectionTask.executeCommand(CorrectionTask.java:20) 
                                                                             at com.bifit.cashdesk.mobile.views.tasks.AbstractKktTask.execute(AbstractKktTask.java:75) 
                                                                             at com.bifit.cashdesk.mobile.views.tasks.AbstractKktTask.execute(AbstractKktTask.java:21) 
                                                                             at com.bifit.cashdesk.mobile.views.tasks.AbstractTask$1.run(AbstractTask.java:84) 
                                                                             at org.greenrobot.eventbus.util.AsyncExecutor$1.run(AsyncExecutor.java:116) 
                                                                             at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) 
                                                                             at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) 
                                                                             at java.lang.Thread.run(Thread.java:818) 

Используемая версия протокола <prop name="protocolType" type="String" value="1"/> Используемая версия драйвера 469

nyxiscoo1 commented 6 years ago

Видимо версия 20019 или меньше, печать чека коррекции v2 поддерживается начиная с прошивки 20020.