Взять кассу
Добавлено: 05 Сентябрь 2022, 13:06
Была информация, что 1-2 сентября такском досили. Может, еще с этим связано. Как сегодня, пока не знаю. От клиентов тишина с утра.
Место общения программистов, форум разработчиков БД на Clarion
https://forum.clarionlife.net/
Код: Выделить всё
!===================================================================================
!
! Проверка марок ффд 1.2
!
FsKKMAtol.TestMarks FUNCTION (BYTE Reg)
....
! Передать в сервис КМ на проверку
if libfptr_begin_marking_code_validation(SELF.fptr)=LIBFPTR_ERROR
loc:ok=0
SELF.GetError
break
end
! Ожидаем ответ сервиса проверки КМ
loc:numCycle=1
loop
sleep(400)
if libfptr_get_marking_code_validation_status(SELF.fptr)=LIBFPTR_ERROR
loc:ok=0
SELF.GetError
break
end
ok#=SELF.GetParamBool(LIBFPTR_PARAM_MARKING_CODE_VALIDATION_READY)
if ok#=1
break
end
loc:numCycle+=1
?String2{prop:text}='Попытка: ' & loc:numCycle
display
! --- ПРИНУДИТЕЛЬНЫЙ ВЫХОД ИЗ ПРОВЕРКИ КМ
If loc:numCycle > 20 ! Если 8 сек. нет ответа сервиса
libfptr_cancel_marking_code_validation(SELF.fptr)
Break
end
! ---
end
...
С компьютером? А если на нем тоже не точно? Я при запуске кассовой программы вывожу запрос, если разница больше 5 мин, компьютер с ккм или наоборот. Сам кассир не может. Раньше работу блокировало, потом прогнули, чтобы не блокировать. Надо будет вернуть блокировку под это требование.Игорь Столяров писал(а): ↑21 Сентябрь 2022, 18:42Неправильное время - затрудняет сверку чеков с ОФД.
Менять время можно только при закрытой смене.
У нас есть опция - при закрытии смены синхронизировать время.
Код: Выделить всё
If (Len(Marking_) > 30) and (Sub(xMarking_,01,02) = '01') and (Sub(xMarking_,17,02) = '21') ! Без GS - дополняем
xMarking_ = '01' & Sub(xMarking_,03,14) & '21' & Sub(xMarking_,19,13) & Chr(29) & Sub(xMarking_,32,Len(Clip(xMarking_)) - 31)
end
Код: Выделить всё
[FiscalPrinter] > LIBFPTR_PARAM_COMMODITY_NAME (65631) = "Тестовый товар"
[FiscalPrinter] > LIBFPTR_PARAM_PRICE (65632) = 10.01
[FiscalPrinter] > LIBFPTR_PARAM_QUANTITY (65633) = 1
[FiscalPrinter] > LIBFPTR_PARAM_TAX_TYPE (65569) = 7
[FiscalPrinter] > LIBFPTR_PARAM_DEPARTMENT (65568) = 0
[FiscalPrinter] > LIBFPTR_PARAM_TAX_MODE (65571) = 0
[FiscalPrinter] > 1212 (1212) = 1
[FiscalPrinter] > 1214 (1214) = 4
[FiscalPrinter] > LIBFPTR_PARAM_MARKING_CODE_STATUS (65846) = 3
[FiscalPrinter] > LIBFPTR_PARAM_MARKING_PROCESSING_MODE (65852) = 0
[FiscalPrinter] > LIBFPTR_PARAM_MARKING_CODE (65760) = 30 31 30 34 36 30 37 30 39 31 33 30 32 34 36 32 32 31 35 63 4F 74 2D 43 1D 39 33 6A 74 45 4A
[FiscalPrinter] libfptr_registration()
[FiscalPrinter] output > 34
[Transport] send fiscal (24) 24 40 33 34 (4 bytes total)
[Transport] recv fiscal (24) 24 30 30 34 3B 34 3B 34 3B 32 36 33 3B (13 bytes total)
[FiscalPrinter] input < 4;4;4;263;
[FiscalPrinter] Чтение таблицы КМ (0 элементов)
[FiscalPrinter] Объекту 0x004BC1C0 присвоен код ошибки 409 [Некорректный код маркировки]
[FiscalPrinter] Завершение выполнения потока MON:00000EB0
Вы будите смеяться - но копать в сторону описания марок.
Код: Выделить всё
0104607091
302462215c
Ot-C93jtEJ
Код: Выделить всё
! Молочная продукция
elsIf (Len(Clip(xMarking_)) = 30) and (Sub(xMarking_,01,02) = '01') and (Sub(xMarking_,17,02) = '21') and |
(Sub(xMarking_,25,02) = '93')
Loc:xResult = '01' & Sub(xMarking_,03,14) & | ! GTIN
'21' & Sub(xMarking_,19,06) & Chr(29) & | ! Код идентификации экземпляра товара
'93' & Sub(xMarking_,27, 4) ! Крипто-информация
Понятно. Спасибо.Игорь Столяров писал(а): ↑22 Сентябрь 2022, 9:22 Вы будите смеяться - но копать в сторону описания марок.
Сделал.Игорь Столяров писал(а): ↑22 Сентябрь 2022, 9:22 1. Это марка молочной продукции и в ней 30 символов, а не 31.
Код: Выделить всё
LOC:Str = '0104607091302462215cOt-C93jtEJ'
G.ScanCodeDump = LOC:Str
IF (LEN(CLIP(LOC:Str)) = 30) AND (SUB(LOC:Str,01,02) = '01') AND (SUB(LOC:Str,17,02) = '21') AND (SUB(LOC:Str,25,02) = '93')
G.ScanCodeDump = '01' & Sub(LOC:Str,03,14) & | ! GTIN
'21' & Sub(LOC:Str,19,06) & Chr(29) & | ! Код идентификации экземпляра товара
'93' & Sub(LOC:Str,27, 4) ! Крипто-информация
END
Код: Выделить всё
2022.09.22 16:37:34.815 T: T:00003D1C INFO [FiscalPrinter] > LIBFPTR_PARAM_MARKING_CODE_STATUS (65846) = 3
2022.09.22 16:37:34.815 T: T:00003D1C INFO [FiscalPrinter] > LIBFPTR_PARAM_MARKING_PROCESSING_MODE (65852) = 0
2022.09.22 16:37:34.815 T: T:00003D1C INFO [FiscalPrinter] > LIBFPTR_PARAM_MARKING_CODE (65760) = 30 31 30 34 36 30 37 30 39 31 33 30 32 34 36 32 32 31 35 63 4F 74 2D 43 1D 39 33 6A 74 45 4A
2022.09.22 16:37:34.815 T: T:00003D1C INFO [FiscalPrinter] libfptr_registration()
2022.09.22 16:37:34.815 T: T:00003D1C INFO [FiscalPrinter] output > 34
2022.09.22 16:37:34.815 T: T:00003D1C INFO [Transport] send fiscal (24) 24 40 33 34 (4 bytes total)
2022.09.22 16:37:34.816 T: T:00003D1C INFO [Transport] recv fiscal (24) 24 30 30 34 3B 34 3B 34 3B 32 36 33 3B (13 bytes total)
2022.09.22 16:37:34.816 T: T:00003D1C INFO [FiscalPrinter] input < 4;4;4;263;
2022.09.22 16:37:34.816 T: T:00003D1C INFO [FiscalPrinter] Чтение таблицы КМ (0 элементов)
2022.09.22 16:37:34.816 T: T:00003D1C ERROR [FiscalPrinter] Объекту 0x0086A9D0 присвоен код ошибки 409 [Некорректный код маркировки]
2022.09.22 16:37:35.486 T: MON:00000918 INFO [FiscalPrinter] Завершение выполнения потока MON:00000918
2022.09.22 16:37:36.304 T: T:00003D1C INFO [FiscalPrinter] libfptr_cancel_receipt()
Код: Выделить всё
2022.09.22 16:37:34.816 T: T:00003D1C INFO [FiscalPrinter] Чтение таблицы КМ (0 элементов)
2022.09.22 16:37:34.816 T: T:00003D1C ERROR [FiscalPrinter] Объекту 0x0086A9D0 присвоен код ошибки 409 [Некорректный код маркировки]