| 
    
        
     
     | 
    
  | 
        Печать чеков коррекции на Атол 55Ф через команды драйверу из 1С     ↓ (Волшебник 24.11.2023 09:22)  | 
☑ | ||
|---|---|---|---|---|
| 
    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, если что, то дело конечно же не в этом, это я уже когда тему создавала, подчистила лишнее и опечаталась  )     
         | 
|||
| 
    2
    
        Тихий омут    
     24.11.23 
            ✎
    04:27 
 | 
         
        Попробуй добавить в тег 1174 тег 1177 - описание коррекции. На прошлой неделе столкнулся - касса со старой прошивкой отказывается печатать чек коррекции без него, хотя он вроде бы как уже не нужен     
         | 
|||
| 
    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(); правда, сделала не я)))))  | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |