Страница 16 из 35
Класс для API АТОЛ «Драйвер ККТ версии 10»
Добавлено: 18 Январь 2019, 10:36
Игорь Столяров
Привет всем !
Класс работы с драйвером ККТ АТОЛ 10 на основе JSON заданий.
(форк класса ADMIN'а 2019 г.)
Класс рабочий, в комплекте примеры использования. Любые замечания и дополнения - приветствуются.

В FTP разделе форума создана папка:
/_Books/Atol.KKT со всей сопутствующей документацией.
ВНИМАНИЕ !
Для работы с КМ (кодами маркировки) через JSON задания требуется прошивка ККТ 5.12 и выше (двухлетней давности).
На старых прошивках будет ошибка: Объекту 0x05C1E828 присвоен код ошибки 148 [Ошибка программирования реквизита 1023]
ATOL драйвер 10.x
Добавлено: 17 Июнь 2020, 19:26
Игорь Столяров
finsoftrz писал(а): 17 Июнь 2020, 18:37
Очень сложно для понимания
Да. Пролистал раздел о регистрации позиции до конца, там появилось то, чего раньше не было (орфография сохранена).
Чтобы зарегистрировать маркированного товара, можно воспользоваться одним из следующих способов:
передать код маркировки (данных марки от сканера) через параметры LIBFPTR_PARAM_MARKING_CODE_TYPE и LIBFPTR_PARAM_MARKING_CODE;
Между константами стоит символ "И".

У меня всю жись работает без этого. Значит надо исправлять то, что не ломалось.

ATOL драйвер 10.x
Добавлено: 17 Июнь 2020, 21:57
SergioRaguzini
Коллеги, извиняюсь за свое тугодумство (маркировка для АТОЛ у меня впервые), но после
SELF.SetParamBiteArray(LIBFPTR_PARAM_MARKING_CODE, CLIP(QGoods.DataMatrix))
из документации выходит, что необходимы еше дополнительные строки кода, как-то
libfptr_parse_marking_code
и еще обработка тега 1162
я это не делаю, м.б. потому оно у меня и не работает?
ATOL драйвер 10.x
Добавлено: 17 Июнь 2020, 22:06
Игорь Столяров
SergioRaguzini писал(а): 17 Июнь 2020, 21:57
м.б. потому оно у меня и не работает?
Простой вопрос: из окна настройки ФР у Вас маркировка печатается ?

- 2.jpg (217.16 КБ) 4904 просмотра
ATOL драйвер 10.x
Добавлено: 17 Июнь 2020, 22:12
Игорь Столяров
Второй вопрос: Распечатайте сервисный чек (см. инструкцию к Вашей модели ФР)
На нём есть что-то вроде "ЛИЦЕНЗИЯ РАБОТЫ С МАРКИРОВКОЙ ДО XX.YY.ZZZZ" ?
ATOL драйвер 10.x
Добавлено: 17 Июнь 2020, 22:22
SergioRaguzini
Игорь, Добрый вечер!
Да, в тесте драйвера печатается и передается в ОФД, если через "Обувь"(как у Вас на рисунке), именно, если отдельно ввожу GTIN и серийный номер из сканированной последовательности, но, ведь в программном коде передается вся сканированная последовательность
SELF.SetParamInt(LIBFPTR_PARAM_MARKING_CODE_TYPE, LIBFPTR_MCT_OTHER)
SELF.SetParamBiteArray(LIBFPTR_PARAM_MARKING_CODE, CLIP(QGoods.DataMatrix))
Парадокс в том, что в тесте драйвера можно указать маркировку Обувь, а в способе с LIBFPTR_PARAM_MARKING_CODE нет
Вероятно, есть вариант ручного формирования тега 1162 для обуви, который используется в тесте драйвера, но как его передать программно пока не соображу...
Игорь Столяров писал(а): 17 Июнь 2020, 22:06
SergioRaguzini писал(а): 17 Июнь 2020, 21:57
м.б. потому оно у меня и не работает?
Простой вопрос: из окна настройки ФР у Вас маркировка печатается ?
2.jpg
ATOL драйвер 10.x
Добавлено: 17 Июнь 2020, 22:31
Игорь Столяров
SergioRaguzini писал(а): 17 Июнь 2020, 22:22
но как его передать программно пока не соображу...
В справке есть описание, там нужно наворачивать с формированием тега 1162 … Жуть и мрак !

Это бесплатно будет работать, т.к. уже устарело.
Сейчас проще и понятней делать через LIBFPTR_PARAM_MARKING_CODE - но нужная лицензия на работу с маркировкой.
Проверьте её установку в сервисном чеке ФР.
ATOL драйвер 10.x
Добавлено: 18 Июнь 2020, 9:57
Игорь Столяров
finsoftrz писал(а): 17 Июнь 2020, 18:37
не поленитесь глянуть пример в доке
Проверил Ваш вариант печати марки с установкой LIBFPTR_PARAM_MARKING_CODE_TYPE - тоже прекрасно работает.
Будем считать его правильным, по текущему описанию в справке АТОЛ.

Спасибо !
ATOL драйвер 10.x
Добавлено: 18 Июнь 2020, 10:24
finsoftrz
Судя по всему, в сети гуляет несколько вариантов описания, и в каждом свои ошибки.
Кстати, Игорь, у Вас получилось снять отчет по видам деятельности? У меня не заработал. В доке есть про него, в тесте драйвера нет. Ошибиться негде, он точно также формируется, как х отчет, только номер отчета другой передается.
Еще какая-то трабла с использованием отделов. Сегодня хотел повнимательнее посмотреть. Отчет по отделам выходит, но все суммы попадают на 1 отдел. Хотя программа при выводе чека его изменяет в зависимости от вида деятельности. Раньше в дто8 такой алгоритм использовался, так как не было отдельного отчета по видам деятельности, и итоги по отделам автоматически выводились в х или z отчете. В дто10 в х и z не попадает, это обсуждалось на атоловском форуме.
ATOL драйвер 10.x
Добавлено: 18 Июнь 2020, 10:52
Игорь Столяров
Прогнал Ваш пример марки через свою систему, всё прекрасно печатается и в чеке и передаётся в ОФД.
(Можно без фоток чека поверить на слово ?)
Код: Выделить всё
Dump = '010290000030018721eD+ueE0j%GKlP91002A92yF/LaStVTfKeux5nIVNxH3IOBeUtJnM8sPHb4avgJkQBChd1wJr9CUVWvjel7d9la6ohnrxhB3QUCMSPnOdv4Q=='
ATOL драйвер 10.x
Добавлено: 18 Июнь 2020, 11:15
Игорь Столяров
SergioRaguzini писал(а): 17 Июнь 2020, 22:22
передается вся сканированная последовательность
Перенесите пожалуйста в Вашем примере запись маркировки последним действием перед регистрацией строки:
Код: Выделить всё
MESSAGE(CLIP(QGoods.DataMatrix)) ! Debug
SELF.SetParamInt(LIBFPTR_PARAM_MARKING_CODE_TYPE, LIBFPTR_MCT_OTHER)
SELF.SetParamBiteArray(LIBFPTR_PARAM_MARKING_CODE, CLIP(QGoods.DataMatrix))
! РЕГИСТАРЦИЯ ТОВАРА
IF libfptr_registration(SELF.fptr) = LIBFPTR_ERROR
SELF.ErrorMessage ...
Потому, что сейчас там идёт формирование кучи тегов и непонятно в каком состоянии находится маркировка
на момент регистрации строки чека …

ATOL драйвер 10.x
Добавлено: 19 Июнь 2020, 15:41
finsoftrz
Ну так что, получилось у кого отчет по секциям (отделам) выводить? Такое впечатление, что не работает установка секции в чеке, все сваливает на первую.
ATOL драйвер 10.x
Добавлено: 19 Июнь 2020, 15:50
finsoftrz
Пока единственное, что приходит на ум, это сдвинутое значение LIBFPTR_PARAM_DEPARTMENT. У меня оно равно 65568.
ATOL драйвер 10.x
Добавлено: 19 Июнь 2020, 15:54
finsoftrz
В примере Админа такое же...
ATOL драйвер 10.x
Добавлено: 19 Июнь 2020, 16:00
finsoftrz
Нашел в интернете подобную ситуацию. Сейчас попробую.
https://rarus.ru/forum/forum7/topic14127/
ATOL драйвер 10.x
Добавлено: 19 Июнь 2020, 16:13
finsoftrz
И не срабатывает.