Имя: Пароль:
1C
 
Как обойти этот глюк в мобильной кассе?
0 Гений 1С
 
гуру
24.11.22
16:05
В мобильной кассе (МК) при пробитии чека он через http-сервис дергает главную базу (1С:Розница, например, далее Р) и там пробивает чек.
Соответственно, МК ждет какое-то время, чтобы чек пробился.
Если чек не пробивается, то РМК на МК закрывают и там в коде прописано явный перевод чека в отложенный или аннулированный:


    ИначеЕсли СтатусЧека = "Отменен" Тогда
        
        Если ЧекОбъект.СтатусОплаты = Перечисления.СтатусыОплатыЧека.Оплачен
            ИЛИ ЧекОбъект.СтатусОплаты = Перечисления.СтатусыОплатыЧека.ОплаченЧастично Тогда
            
            ЧекОбъект.СтатусЧека = Перечисления.СтатусыЧеков.Отложен;
            
        Иначе
            ЧекОбъект.СтатусЧека = Перечисления.СтатусыЧеков.Аннулирован;
        КонецЕсли;
        
        ЧекОбъект.Записать(РежимЗаписиДокумента.Запись);



После этого, когда чек пробьется в Р, он придет в кассу как пробитый.

Но есть один нюанс - если пользователь закроет РМК в МК после того, как придет информация о пробитом чеке, то чек будет анулированным или отложенным.

Выход вижу в том, чтобы несколько раз регистрировать пробитый чек в Р в плане обмена (часов 5 после пробития), чтобы он гарантированно дошел до МК.

Если бы в МК не отменяла уже пробитый чек, было бы конечно, лучше.

Или как-то по другому можно решить проблему
1 Гений 1С
 
гуру
07.12.22
18:29
В общем, переписали и скомпилировали штатную МК, там уже можно полную свободу получить действий
AdBlock убивает бесплатный контент. 1Сергей