Имя: Пароль:
1C
1C 7.7
v7: Не выходит банковский чек касса онлайн (модернизированая)
0 san4ez1008
 
23.03.18
11:01
Доброго времени суток! Конфигурация ТиС 9.2, на ТТ сформировалась проблема, внедрена программа лояльности "Спасибо от Сбербанка". При расчете клиента выходит чек с начислением бонусов, следом банковский чек и следом товарный (кассовый) чек.
Суть проблемы, в связи с переходом на онлайн-кассы старые штрихи модернизируются, на компы ставится драйвер 4.10. Как только меняется ККМ, при расчете картой СБЕРБАНКА выходит чек с начислением бонусов, при печати банковского чека появляется ошибка "ФР, ошибка при печати чека, нет связи", соответственно, банк.чек не выходит и следом выходит кассовый чек. Копали в сторону сбербанка, там все в порядке, меняли драйвер-не помогло. Иногда бывают ситуации, когда расчет производится по бесконтактной технологии оплаты, в этом случае все в порядке, что странно. С новыми ККМ (не модернизированными) все в порядке, таких проблем нет.
Печать банковских чеков , как и печать чека с начислением бонусов, выполняется функцией

Функция ПечЧекСпасибо(СтрТ)
    Если глФРВкл = 1 Тогда
        Параметры = СоздатьОбъект("СписокЗначений");
        Параметры.Установить("Процесс"           , "печатать_текст_спасибо");
        Параметры.Установить("Объект"            , глФР);
        Параметры.Установить("ПарольПользователя", глФРПарольПользователя);
        Параметры.Установить("Текст", СтрТ);
        
        РезТекст = глОборудованиеКоманда("ФР", глФРОбработка, Параметры);
        Если ПустоеЗначение(РезТекст) = 0 Тогда
            Сообщить(РезТекст);
            Возврат 0;
        Иначе
            Если Параметры.Получить("Результат") = 0 Тогда
                Сообщить("Фискальный регистратор: ошибка при печати чека");
                Сообщить(Параметры.Получить("ОписаниеРезультата"));
                Возврат 0;
            КонецЕсли;
        КонецЕсли;
        Возврат 1;
    Иначе
        Сообщить("Фискальный регистратор: ошибка при печати чека");
        Сообщить("Не подключена ККМ!");
        Возврат 0;
    КонецЕсли;
    
    Возврат 1;
КонецФункции // ПечЧекСпасибо()
Печать банковского чека производится функцией:
Функция ПечБанкЧеки(СтрТ)
    Если глФРВкл = 1 Тогда
        Параметры = СоздатьОбъект("СписокЗначений");
        Параметры.Установить("Процесс"           , "печатать_текст");
        Параметры.Установить("Объект"            , глФР);
        Параметры.Установить("ПарольПользователя", глФРПарольПользователя);
        Параметры.Установить("Текст", СтрТ);
        
        РезТекст = глОборудованиеКоманда("ФР", глФРОбработка, Параметры);
        Если ПустоеЗначение(РезТекст) = 0 Тогда
            Сообщить(РезТекст);
            Возврат 0;
        Иначе
            Если Параметры.Получить("Результат") = 0 Тогда
                Сообщить("Фискальный регистратор: ошибка при печати чека");
                Сообщить(Параметры.Получить("ОписаниеРезультата"));
                Возврат 0;
            КонецЕсли;
        КонецЕсли;
        Возврат 1;
    Иначе
        Сообщить("Фискальный регистратор: ошибка при печати чека");
        Сообщить("Не подключена ККМ!");
        Возврат 0;
    КонецЕсли;
    
    Возврат 1;
КонецФункции // ПечЧек()

Никаких различий нет.
Собственно, вопрос: WTF???
1 san4ez1008
 
23.03.18
11:35
Никто не сталкивался?( И мыслей нет?(
2 san4ez1008
 
23.03.18
14:43
ап
3 SeriyP
 
23.03.18
14:49
Поискать/попросить у сберовцев другие sbrfcom.dll, sbrf.dll
Драйвер точно 4.10?
4 san4ez1008
 
23.03.18
16:30
(3) естественно,сам ставлю
и не в библиотеках дело
5 SeriyP
 
23.03.18
17:22
(4) файлик р при сбойных операциях формируется?
6 SeriyP
 
23.03.18
17:24
+(5) Что в логах sbkernel1710.log, sbrfcom.log?
7 lodger
 
23.03.18
18:30
(0) пробовали после вызова ПечЧекСпасибо() сделать ожидание доступности?
там был метод спрашивающий у ККМ - "ало, ты готовая?".
зациклить этот метод с выходом по успеху (ККМ отозвалась) или по таймауту в 10-15-30-60 секунд.
8 san4ez1008
 
24.03.18
08:04
(5) файлик всегда формируется,просто не печатается банк.чек (6) в логах все операции успешны,вечером сверка с X-отчетом сходится.
(7) не пробовали, надо посмотреть, что это, проверим, спасибо за информацию
9 san4ez1008
 
02.04.18
06:48
(7) решение оказалось куда проще в 2 строчки
Для й=1 по 50000 цикл
конеццикла;
Видимо, ККМ не была готова к печати следующей команды, поэтому вела себя так. Спасибо за направление, вопрос закрыт :)