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

Сканеры, кассы, ККТ и т.д.
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8028
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 28 раз
Поблагодарили: 96 раз

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

Сообщение Игорь Столяров »

Привет всем !

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

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

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

atol2.png
Вложения
Admin-2019.zip
Оригинальный класс 2019 г.
(27.92 КБ) 1300 скачиваний
Atol-2025-04-22.zip
Версия от 22.04.2025 г.
(84.4 КБ) 412 скачиваний
Последний раз редактировалось Игорь Столяров 22 Апрель 2025, 8:35, всего редактировалось 38 раз.
Make Clarion Great Again ! 😎
seawolf
Старожил
Сообщения: 217
Зарегистрирован: 08 Июль 2005, 11:23
Откуда: St. Petersburg

ATOL драйвер 10.x

Сообщение seawolf »

Ну у нас помеси никогда нет. Или нал или оплатили по безналу и нужен чек. Причем таких чеков в день пара тройка. Ради этого сей чудный девайс за бешеные деньги. Еще я хочу спросить - вот наименование прайс и количество в строке очереди есть, а где будет сумма товара в строке? В таблице есть поле для НДС (ставка и сумма) а вот поля для вывода суммы и если есть НДС полной суммы товара + НДС нет. Девайс сам его считает и выводит?
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8028
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 28 раз
Поблагодарили: 96 раз

ATOL драйвер 10.x

Сообщение Игорь Столяров »

seawolf писал(а): 15 Февраль 2021, 18:15 Девайс сам его считает и выводит?
Да. Но только налог будет в том числе. Насколько я понимаю это опт, раз налог отдельно и сверху стоимости.
Есть тип налога "LIBFPTR_TAX_VAT120 - НДС рассчитанный 20/120", наверно как раз для таких случаев.
Никогда не было потребности в его использовании ...
Make Clarion Great Again ! 😎
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 5234
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 12 раз
Поблагодарили: 64 раза

ATOL драйвер 10.x

Сообщение finsoftrz »

Налог сверху стоимости обычно у бюджетников заморочка. Обычный опт работает в полных ценах. Там просто 20% или 10% НДС. Вычисляется сам в чеке. Есть нюанс, если оплачивают не полную сумму по накладной. Тут кто как выкручивается. Я, к примеру, делаю печать товаров в чеках по фифо, а одну позицию дроблю (доли единиц), если округление.
C6/C12, ШВС, tps/btrieve.
seawolf
Старожил
Сообщения: 217
Зарегистрирован: 08 Июль 2005, 11:23
Откуда: St. Petersburg

ATOL драйвер 10.x

Сообщение seawolf »

У нас УСН (упрощенка) и налога нет. Тогда это чудо устройство само умножит кол-во на цену в строке и напечатает полную стоимость построчно. Завтра пойду пилить !
seawolf
Старожил
Сообщения: 217
Зарегистрирован: 08 Июль 2005, 11:23
Откуда: St. Petersburg

ATOL драйвер 10.x

Сообщение seawolf »

А где посмотреть лог чудного девайса? в папке BIN Atol его нет а при открытии чека ошибка 26 из класса идет.??
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8028
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 28 раз
Поблагодарили: 96 раз

ATOL драйвер 10.x

Сообщение Игорь Столяров »

Вот здесь всё написано: http://integration.atol.ru/api/?javascr ... girovaniya
И да прибудет с Вами сила ... :)
Make Clarion Great Again ! 😎
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8028
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 28 раз
Поблагодарили: 96 раз

ATOL драйвер 10.x

Сообщение Игорь Столяров »

seawolf писал(а): 17 Февраль 2021, 11:30 а при открытии чека ошибка 26 из класса идет
Вообще есть метод Atol10.ErrorDescription(), который на человеческом языке возвращает текст ошибки.
А 26 = LIBFPTR_ERROR_INVALID_COMMAND_FORMAT, т.е. ошибочный формат команды-с у Вас, в примере Админа нет такого точно.
Make Clarion Great Again ! 😎
seawolf
Старожил
Сообщения: 217
Зарегистрирован: 08 Июль 2005, 11:23
Откуда: St. Petersburg

ATOL драйвер 10.x

Сообщение seawolf »

Камень моего преткновения оказался здесь:
H.Kassir.Name = 'Пупкин И.И.'
H.Kassir.INN = '723329239495'
если без ИНН то как раз идет ошибка печати чека
Если ИНН задать, то сообщается что не зарегить кассира, но чеки при этом печатаются нормально
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8028
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 28 раз
Поблагодарили: 96 раз

ATOL драйвер 10.x

Сообщение Игорь Столяров »

seawolf писал(а): 17 Февраль 2021, 15:13 если без ИНН то как раз идет ошибка печати чека
ИНН кассира (тег 1203) не является обязательным атрибутом чека, но если он указан - то должен быть корректным.
Проверил на указанных данных - никаких ошибок нет. Может быть, конечно у Вас гранаты не той системы ... ;)
Make Clarion Great Again ! 😎
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8028
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 28 раз
Поблагодарили: 96 раз

ATOL драйвер 10.x

Сообщение Игорь Столяров »

Хотя да, беда есть. В оригинальном классе вот так:

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

Atol10.PrintKassir         PROCEDURE(*ATOL:Kassir Kassir)
  CODE
  IF ~SELF.FlagLoaded THEN RETURN END
  IF CLIP(Kassir.Name) <> '' THEN SELF.SetParamStr(1021, Kassir.Name) END
  IF CLIP(Kassir.INN) <> '' THEN SELF.SetParamStr(1203, Kassir.INN) END
  IF CLIP(Kassir.Name) <> '' AND CLIP(Kassir.INN) <> ''
    IF libfptr_operator_login(SELF.fptr) = LIBFPTR_ERROR
      SELF.ErrorMessage
    END
  END
И тогда Ваша права: без ИНН нет регистрации кассира, и как следствие ошибка. :(
Нехорошо. Уберите условие с обязательным ИНН. Вот так хорошо будет:

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

Atol10.PrintKassir Procedure(*ATOL:Kassir Kassir)
  Code
  If (Self.FlagLoaded = True) and (Kassir.Name <> '')
     Self.SetParamStr(1021, Kassir.Name)
     If Clip(Kassir.INN) <> '' then Self.SetParamStr(1203, Kassir.INN).
     If libfptr_operator_login(Self.fptr) = LIBFPTR_ERROR then Self.ErrorMessage.
  end
Последний раз редактировалось Игорь Столяров 17 Февраль 2021, 16:24, всего редактировалось 1 раз.
Make Clarion Great Again ! 😎
seawolf
Старожил
Сообщения: 217
Зарегистрирован: 08 Июль 2005, 11:23
Откуда: St. Petersburg

ATOL драйвер 10.x

Сообщение seawolf »

Да, как-то так! по крайней мере работает и всех устраивает.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8028
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 28 раз
Поблагодарили: 96 раз

ATOL драйвер 10.x

Сообщение Игорь Столяров »

Просто все аккуратно указывают для кассира ИНН и не нарываются на эту проблему.
Указывайте корректный ИНН кассира и будете одним из нас. :)
Make Clarion Great Again ! 😎
gromov
Старожил
Сообщения: 280
Зарегистрирован: 11 Февраль 2009, 8:41
Откуда: г. Анапа
Поблагодарили: 3 раза

ATOL драйвер 10.x

Сообщение gromov »

Никто не пользовался вот этим девайсом https://www.masterfich.ru/Pages/efn.html ?
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8028
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 28 раз
Поблагодарили: 96 раз

ATOL драйвер 10.x

Сообщение Игорь Столяров »

Если возникает вопрос "Чем бы таким заняться ?", то рекомендую посетить: https://events.webinar.ru/2865733/8309791 :)
Make Clarion Great Again ! 😎
gromov
Старожил
Сообщения: 280
Зарегистрирован: 11 Февраль 2009, 8:41
Откуда: г. Анапа
Поблагодарили: 3 раза

ATOL драйвер 10.x

Сообщение gromov »

А можно без вот этого, а по-человечески :D
Ответить