0
Selma2
23.11.23
✎
14:11
|
Добрый день! Может кто-то сталкивался с проблемой печати чеков коррекции из 1С? У нас Атол 55Ф, ФФД 1.2. Не понимаю, что я делаю не так. На чеке пропечатывается тип коррекции. пропечатывается строчка с данными по товару, но в итоге в самом низу чека - Ошибка ККТ 0x70АЕ, так как вот тут: fptr.LIBFPTR_PARAM_DOCUMENT_CLOSED в итоге false, то есть, функции closeReceipt() чего-то не хватает, и она не отрабатывает так как надо.
Код:
fptr = Новый COMобъект("AddIn.Fptr10");
fptr.setSingleSetting(fptr.LIBFPTR_SETTING_PORT, Строка(fptr.LIBFPTR_PORT_USB));
fptr.applySingleSettings();
fptr.open();
fptr.setParam(1021, СокрЛП(Кассир));
fptr.setParam(1203, СокрЛП(КассирИНН));
fptr.operatorLogin();
fptr.setParam(fptr.LIBFPTR_PARAM_RECEIPT_TYPE, fptr.LIBFPTR_RT_SELL_CORRECTION );
fptr.clearMarkingCodeValidationResult(); //пробую очищать марки, по аналогии с вызовом этого метода несколькими строками ниже перед назначением реквизита 1173, но это не дает никакого эффекта
//составной реквизит
Fptr.setParam(1178, "2023-041-01");
Fptr.setParam(1179, "0");
Fptr.utilFormTlv();
correctionInfo = Fptr.getParamByteArray(Fptr.LIBFPTR_PARAM_TAG_VALUE);
Fptr.setParam(1174, correctionInfo);
fptr.clearMarkingCodeValidationResult();
fptr.setParam(1173, 0); //на чеке пропечатывается: Тип коррекции "САМОСТОЯТЕЛЬНО", но только если команда очистки марок находится строчкой выше. Изменение порядка назначения реквизитов 1174 и 1173 приводит к ошибке чека.
fptr.setParam(fptr.LIBFPTR_PARAM_RECEIPT_TYPE, fptr.LIBFPTR_RT_SELL_CORRECTION );
fptr.openReceipt();
//товары
Fptr.setParam(Fptr.LIBFPTR_PARAM_COMMODITY_NAME, "Каша");
Fptr.setParam(Fptr.LIBFPTR_PARAM_PRICE, 10);
Fptr.setParam(Fptr.LIBFPTR_PARAM_QUANTITY, 1);
Fptr.setParam(Fptr.LIBFPTR_PARAM_TAX_TYPE, Fptr.LIBFPTR_TAX_VAT0);
Fptr.setParam(1212, 1);
Fptr.setParam(2108, Fptr.LIBFPTR_IU_PIECE);
Fptr.registration();
//
fptr.setParam(fptr.LIBFPTR_PARAM_PAYMENT_TYPE, fptr.LIBFPTR_PT_other);
fptr.setParam(fptr.LIBFPTR_PARAM_PAYMENT_SUM,10);
fptr.payment();
fptr.setParam(fptr.LIBFPTR_PARAM_PAYMENT_TYPE, fptr.LIBFPTR_PT_other);
fptr.closeReceipt();
подозреваю, что ошибка в составном реквизите 1174, но не понятно какая....
Помогите, пожалуйста, если вдруг кто-то уже сталкивался с такой проблемой!
|
|
1
Selma2
23.11.23
✎
14:13
|
*1 в дате опечатка, там без цифры 4, если что, то дело конечно же не в этом, это я уже когда тему создавала, подчистила лишнее и опечаталась )
|
|
3
Selma2
24.11.23
✎
08:48
|
В общем, заработало вот так
fptr.setParam(1021, СокрЛП(Кассир));
fptr.setParam(1203, СокрЛП(КассирИНН));
fptr.operatorLogin();
Fptr.setParam(1177, "Служебная записка");
fptr.setParam(1178, Date(2021,09,01));
Fptr.setParam(1179, "00001");
Fptr.utilFormTlv();
correctionInfo = Fptr.getParamByteArray(Fptr.LIBFPTR_PARAM_TAG_VALUE);
Fptr.setParam(Fptr.LIBFPTR_PARAM_RECEIPT_TYPE, Fptr.LIBFPTR_RT_SELL_CORRECTION);
Fptr.setParam(1173, 0);
Fptr.setParam(1174, correctionInfo);
fptr.openReceipt();
правда, сделала не я)))))
|
|