Страница 12 из 35

Класс для API АТОЛ «Драйвер ККТ версии 10»

Добавлено: 18 Январь 2019, 10:36
Игорь Столяров
Привет всем !

Класс работы с драйвером ККТ АТОЛ 10 на основе JSON заданий.
(форк класса ADMIN'а 2019 г.)

Класс рабочий, в комплекте примеры использования. Любые замечания и дополнения - приветствуются. :)
В FTP разделе форума создана папка: /_Books/Atol.KKT со всей сопутствующей документацией.

ВНИМАНИЕ !
Для работы с КМ (кодами маркировки) через JSON задания требуется прошивка ККТ 5.12 и выше (двухлетней давности).
На старых прошивках будет ошибка: Объекту 0x05C1E828 присвоен код ошибки 148 [Ошибка программирования реквизита 1023]

atol2.png

ATOL драйвер 10.x

Добавлено: 16 Апрель 2020, 18:13
finsoftrz
А что передаете в sValue?

ATOL драйвер 10.x

Добавлено: 16 Апрель 2020, 18:27
finsoftrz
Size и len дают одинаковые значения. Судя по тому, что в логах атола все чисто, до прошивки не доходит. Библиотека драйвера версии 10.6.3.0, fptr10.dll от 12.03.2020. Прошивка, сказали, платная, с поддержкой маркировки.

ATOL драйвер 10.x

Добавлено: 16 Апрель 2020, 18:36
Игорь Столяров
finsoftrz писал(а): 16 Апрель 2020, 18:13 А что передаете в sValue?
Кстати - да ! Для табака передаётся GTIN8, его не надо дополнять нулями до GTIN14.
У Вас ведь сканер не считывает эти нули с пачки, откуда они взялись ?
finsoftrz писал(а): 16 Апрель 2020, 18:27 Size и len дают одинаковые значения.
В частном случае - да. Вы можете гарантировать, что сканер не вернёт в строке какой-нибудь служебный код,
который будет воспринят как символ прерывания строки ? Например Chr(0). Я нет - потому и юзаю Size(). :)

ATOL драйвер 10.x

Добавлено: 16 Апрель 2020, 19:18
finsoftrz
Там же string, поэтому chr(0) без разницы. Я взял марку для примера, не помню точно, откуда. По моему, считана с реальной пачки была.
Я так понял, в sValue надо передавать все, что пришло со сканера. То есть все 29 байт в случае табака. Вы это преобразуете по байтно в 16 представление? То есть я отправляю что-то вида '00 00 46 ...'. Но пробовал и просто строку, результат аналогичный - вылет из программы. Аналогичная ситуация и по алкгольным маркам. Ну, даже если передается неверное значение, вылетать программа не должна, должна вернуться ошибка.

ATOL драйвер 10.x

Добавлено: 16 Апрель 2020, 19:54
Игорь Столяров
Отправляется строка со сканера, точно также как и у Вас:

Код: Выделить всё

  !QSpisok.Dump = '46088710KY4mjNZAB=U/FkO'
  Self.SetParamBiteArray(LIBFPTR_PARAM_MARKING_CODE,QSpisok.Dump)
Может быть попробовать передавать параметр, как переменную ?

Нет никаких ошибок … Если хотите, сделайте тестовый пример, я его соберу (C63/C11) и прогоню у себя
(с Вашими классами ATOL10 в папке проекта).

ATOL драйвер 10.x

Добавлено: 17 Апрель 2020, 9:34
finsoftrz
До SetParamBiteArray даже не доходит, вылетает. Игорь, можете глянуть, какие значения у Вас для этих параметров:
LIBFPTR_PARAM_MARKING_CODE_TYPE = 65826
LIBFPTR_PARAM_MARKING_CODE = 65760
LIBFPTR_MCT_OTHER = 0
У меня такие значения.
Делаю:

Код: Выделить всё

      SELF.SetParamInt(LIBFPTR_PARAM_MARKING_CODE_TYPE, LIBFPTR_MCT_OTHER)
      stop('!')
      stop('!!')
Вылет после первого stop. Такое ощущение, что какой-то конфликт на уровне библиотеки. Хотя обычные чеки печатают, касса третий день в боевом режиме работает...

ATOL драйвер 10.x

Добавлено: 17 Апрель 2020, 9:39
finsoftrz
И еще, можете написать дату и размер fptr10.dll, с которой у Вас все работает?

ATOL драйвер 10.x

Добавлено: 17 Апрель 2020, 9:57
Игорь Столяров
Отвечаем на Ваш запрос …

У меня LIBFPTR_PARAM_MARKING_CODE = 65760, а две других константы вообще не описаны.
Как я говорил ранее, тип маркировки указывается только при ручном формировании тега (см. справку).

fptr10.dll: Дата 30.01.2020 г. 11:17 Размер: 7 514 112 Byte. Могу выслать почтой, через FTP и т.д. :)

ATOL драйвер 10.x

Добавлено: 17 Апрель 2020, 11:18
finsoftrz
Если тип маркировки не указывается, то он по умолчанию 0 (LIBFPTR_MCT_OTHER). Явно указывать его надо, если передаем другие значения. В частности, алкогольную марку.

У меня библиотека от 12.03.2020, размер 7540 кб.
Если можете, пришлите на почту свою, я попробую. Так как идеи иссякли. Убираю стопы, не проходит SetParamBiteArray, не вызываю SetParamBiteArray, все нормально. Могу еще с алкогольной маркой попробовать, но, скорее всего, дело не в содержимом марки.

ATOL драйвер 10.x

Добавлено: 17 Апрель 2020, 11:36
Игорь Столяров
Наверно у Вас более свежая версия драйвера … может действительно чего-то отремонтировали … :(
Эти могут. DLL отправил.

Нет никаких проблем без указания кода маркировки, ни с табачкой, ни с алкашкой.
Помните я сбрасывал пример чека с реальной маркировкой, когда мы обсуждали печать признака "[M]" в чеке ?
Все работают, никто не жалуется.

ATOL драйвер 10.x

Добавлено: 17 Апрель 2020, 11:56
finsoftrz
Та же самая проблема и с этой версией библиотеки. Не знаю уже, на что думать. Может еще нюанс, что на проходе одновременно работают 2 ккм, одна на дто8 со старой прошивкой, вторая на дто10 с новой. Часть товара бьется по одной ккм, часть по другой.
Без попытки передать маркировку все работает. Кассовик утверждает, что прошивка самая свежая, платная, с поддержкой работы с маркировкой.

Игорь, у Вас и табак, и алкоголь продают без проблем? Печатается [М] и в ОФД виден ктн?

ATOL драйвер 10.x

Добавлено: 17 Апрель 2020, 12:13
Игорь Столяров
Это понятно, что всё не просто … :) Вы уверены, что во всей этой радости, программа не подцепляет какой-то старый DLL ?
Может быть есть смысл проверить на компьютере без сложной жизненной ситуации, а потом уже искать причину проблемы ?
Тут же явно какой-то косяк, просто негде ошибаться. :(

Да, всё работает и передаётся. И давно. Мы же про это говорили, когда обсуждали варианты печати "[M]" в строке чека.

ATOL драйвер 10.x

Добавлено: 17 Апрель 2020, 12:24
finsoftrz
У меня только на одной ккм дто10 и удаленный доступ к ней. Причем она в работе. Когда не пик, народа не много, они могут на второй проход покупателей послать, освободив место. Конечно, так тестировать не дело.

ATOL драйвер 10.x

Добавлено: 17 Апрель 2020, 13:01
Игорь Столяров
finsoftrz писал(а): 17 Апрель 2020, 12:24 Конечно, так тестировать не дело.
Соберите Ваш тестовый пример печати чека с маркировкой в EXE и сбросьте мне - я проверю у себя.
Мне не сложно. По крайне мере будет информация виновата ли новая версия бобины … :)

ATOL драйвер 10.x

Добавлено: 17 Апрель 2020, 13:50
finsoftrz
Сделал, кинул на почту. Предварительно в магазине проверил, эффект тот же.