Маркировочные коды с ДТО 10 Атола | |
---|---|
Victoriacom Сообщений: 111 Дата регистрации: 08.12.2010 |
Всем привет!
Кто-нибудь работал с обязательными маркировочными кодами на ДТО10? Собственно, ПО верхнего уровня для дто10 уже сделал давно. И с маркировкой тоже работаю. Просто в последней версии драйвера появился новый способ передавать тэг 1162 на ОФД. В старой версии у меня так:
При этом cTag1162 получает значение типа "03 02 01 ..." .... далее регистрируется товарная позиция наименование, цена, количество...налоги, виды оплат...
Это работает. В последней версии драйвера они придумали новую функцию parseMarkingCode(), которая должна сама распарсить отсканированный код. Из документации это должно выглядеть так:
Там используется тип "bytearray". В документации написано так: "При использовании COM-объекта ваш язык может не поддерживать получение из драйвера параметра типа bytearray. В этом случае можно использовать обходной вариант. Нужно запросить такой параметр через getParamString(), он вернет строку с последовательностью байтов вида "01 02 FF AA". Далее, эту строку можно записать во входной параметр любого метода через методы setParamStrHex() или setNonPrintableParamStrHex(), и она запишется в драйвер как bytearray." Написал так:
И нифига не получается. Переменная cTag1162 остается пустой строкой. Пробовал разные варианты: setNonPrintableParamStrHex() Пробовал передавать в качестве параметра STRCONV(cFullKod, 15) в сочетании с FP.setParam(). Создавал массив aByteArray[] со сначениями ASC(байт 1) ...ASC(байт N). Всё тщетно. Может быть кто-нибудь уже пробовал parseMarkingCode()? |
Re: Маркировочные коды с ДТО 10 Атола | |
---|---|
MayDay Сообщений: 2 Дата регистрации: 12.07.2007 |
Важно: работы с методами разбора данных массива от сканера ШК (LIBFPTR_PARAM_MARKING_CODE/markingCode)
возможна только на прошивках ККТ, где данный метод поддержан и версии драйвера 10.6.1.0 и выше Платформа 5.0 - прошивка 5.7.0 и выше (с лицензией Маркировка) Платформа 2.5 - прошивка 12-8502 и выше onedrive.live.com |
Re: Маркировочные коды с ДТО 10 Атола | |
---|---|
Евгений Банщиков Автор Сообщений: 218 Откуда: Kurgan Дата регистрации: 09.04.2004 |
FP.setParamStrHex(LIBFPTR_PARAM_MARKING_CODE, cFullKod) - для данного метода cFullKod должен быть записан в виде последовательности байтов типа "03 02 01 ..." Документация атола , мягко говоря, выдает неверную инфу . getParamString() вернет не строку вида "01 02 FF AA" , а исходную строку текста. Я делаю так - преобразовываю текст марки к виду "03 02 01 ..." ( делаю через Strconv(marka,15) и добавление пробелов) и записать полученный результат в LIBFPTR_PARAM_MARKING_CODE через метод setParamStrHex. Более ничего делать не надо , parseMarkingCode не нужен , но только устанавливать LIBFPTR_PARAM_MARKING_CODE нужно после задания LIBFPTR_PARAM_COMMODITY_NAME. Считать тег 1162 в фоксе для проверки можно так Transform(.getParamByteArray(1162)) |
Re: Маркировочные коды с ДТО 10 Атола | |
---|---|
Victoriacom Сообщений: 111 Дата регистрации: 08.12.2010 |
Здравствуйте!
Вариант распарсивания без .parseMarkingCode() я сделал давно. Сейчас, под конец года, все засуетились, - вынь да полож им кассовое ПО с маркировкой одежды, лекарств и т.д. Предвидя кучу геморроя с ручным распарсиванием, решил попробовать еще раз .parseMarkingCode(). Благодаря Вам всё получилось легко и просто! Спасибо и с наступающим! ------------------ Алло, это прачечная? Да, это прачечная. Здравствуйте. |
Re: Маркировочные коды с ДТО 10 Атола | |
---|---|
Victoriacom Сообщений: 111 Дата регистрации: 08.12.2010 |
Здравствуйте! Вариант распарсивания без .parseMarkingCode() я сделал давно. Сейчас, под конец года, все засуетились, - вынь да полож им кассовое ПО с маркировкой одежды, лекарств и т.д. Предвидя кучу геморроя с ручным распарсиванием, решил попробовать еще раз .parseMarkingCode(). Благодаря Вам всё получилось легко и просто! Спасибо и с наступающим! ------------------ Алло, это прачечная? Да, это прачечная. Здравствуйте. |
Re: Маркировочные коды с ДТО 10 Атола | |
---|---|
Victoriacom Сообщений: 111 Дата регистрации: 08.12.2010 |
Похоже я поторопился с успехом. Формирование тэга 1162 с помощью parseMarkingCode как будто бы отработало правильно. В логе fptr10.log ошибок не появилось. Но когда позвонили в ОФД, оказалось что к ним пришла какая-то фигня вместо тэга.
Попробовал вариант без parseMarkingCode. В ОФД пришел тэг, но без вида номенклатуры. Вот мой код:
Как передавать вид номенклатуры? Я полагал, что в команде "FP.setParam(LIBFPTR_PARAM_MARKING_CODE_TYPE, LIBFPTR_NT_CLOTHES)" ------------------ Алло, это прачечная? Да, это прачечная. Здравствуйте. |
© 2000-2024 Fox Club  |