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

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

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

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

Привет всем !

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

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

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

atol2.png
Вложения
Admin-2019.zip
Оригинальный класс 2019 г.
(27.92 КБ) 1628 скачиваний
Atol-2025-08-25.zip
Версия от 25.08.2025 г.
(86.96 КБ) 47 скачиваний
Последний раз редактировалось Игорь Столяров 25 Август 2025, 14:16, всего редактировалось 41 раз.
Make Clarion Great Again ! 😎
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8152
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 30 раз
Поблагодарили: 104 раза

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

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

finsoftrz писал(а): 27 Август 2025, 11:35 Я пока не видел обсуждения проверки дублей марок через ЛК
Ха ! Так а зачем же был введён в ПО ЛМ механизм контроля дубликатов КИ
и обновлён регламент проверки КМ при продаже (я Вам давал уже на него ссылку) ?
Make Clarion Great Again ! 😎
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 5397
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 13 раз
Поблагодарили: 68 раз

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

Сообщение finsoftrz »

А для слепых можете еще раз повторить ссылку? В гугле есть только упоминание, что возможность проверки повторной продажи марок в ЛМ есть.
C6/C12, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8152
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 30 раз
Поблагодарили: 104 раза

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

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

Без проблем ...
Игорь Столяров писал(а): 22 Август 2025, 14:30 А порядок действий рекомендуемый НСЦМ "Честный Знак" по пунктам расписан в
разделе «5. Сценарий проверки продукции перед продажей» и мы его реализовали.
(см. страницу 65 в Методических рекомендациях ЧЗ версии 12 от 15.07.2025 г.)
Ссыль на Методические рекомендации ЧЗ: https://xn--80ajghhoc2aj1c8b.xn--p1ai/local-module/
Make Clarion Great Again ! 😎
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 5397
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 13 раз
Поблагодарили: 68 раз

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

Сообщение finsoftrz »

Я нашел уже, спасибо.
Они предлагают после сканирования марки проверить ее по ЛМ, а факт продажи записать туда после пробития чека. Что произойдет при параллельной работе нескольких касс? Правильно, можно отсканировать марку на разных кассах без ошибки, и пробить одну и ту же марку на всех кассах. :idied:

Я делаю наоборот. Сразу после сканирования марка регистрируется на хостинге, а если транзакции по чеку успешно не завершились, то регистрируется сторно. При фатальном сбое у нас может зависнуть лишняя регистрация, но это лучше, чем пропускать дубль. Единственный момент это ситуация, когда не работает интернет. Думал тоже про локальную базу, но у нас разные вещи на хостинг подвязаны, решено было не городить зоопарк. Потом непонятно было, будут ли требовать сквозной контроль повторных продаж по всем магазинам сети. Сейчас в ЛК иногда приходят сообщения, что какая-то марка была продана повторно в магазине другого юрлица.

Попробую с народом обсудить еще. Вообще говоря, это лишь рекомендации от частной компании разработчиков. Я что-то не видел, чтобы использование ЛМ как-то регламентировалось регулятором. Как будто чиновникам сказали, что разрешительный режим корректно реализовать не реально, договорились, давайте сделаем хоть как-то частично.
C6/C12, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8152
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 30 раз
Поблагодарили: 104 раза

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

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

finsoftrz писал(а): 27 Август 2025, 17:29 пробить одну и ту же марку на всех кассах
Абсолютно верно. Можно продать одну палёную марку в нескольких магазинах или городах через ЛМ ...
finsoftrz писал(а): 27 Август 2025, 17:29 то разрешительный режим корректно реализовать не реально, договорились, давайте сделаем хоть как-то частично.
Сама система убога и развивается методом кастелирования. Здесь могло бы быть решение аналогичное эквайрингу -
но тогда нужно было привлекать инвестиции. Честный Знак не смог даже с ОФД договорится о делёжке бабла и начал
строить свой "разрешительный проверка" поверх существующей системы. 😢
Make Clarion Great Again ! 😎
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 5397
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 13 раз
Поблагодарили: 68 раз

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

Сообщение finsoftrz »

Можно продать одну марку на нескольких кассах в одном магазине, что они и пытаются предотвратить.
C6/C12, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8152
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 30 раз
Поблагодарили: 104 раза

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

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

finsoftrz писал(а): 27 Август 2025, 17:29 Сразу после сканирования марка регистрируется на хостинге, а если транзакции по чеку успешно не завершились, то регистрируется сторно
В принципе, всё что нужно для такой реализации сейчас есть и в штатном ПО ЛМ НСЦМ "Честный Знак".
Но от этой схемы уже даже в Магните и Пятёре отказались - обработка КМ выполняется при закрытии чека.

Вы всё делаете под себя - поэтому нельзя обсуждать решения работу которых никогда не видел. :D
Но в общем, стало слишком много проверок и они не быстрые, поэтому используются пакетные обработки КМ по всему чеку.
Make Clarion Great Again ! 😎
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 5397
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 13 раз
Поблагодарили: 68 раз

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

Сообщение finsoftrz »

В какой момент проверять марки, после сканирования или при закрытии чека, много раз обсуждалось, почитайте на досуге, если интересно. В обоих вариантах есть свои плюсы и минусы, оба варианта просчитывались.
При проверках марки сразу после сканирования задержка обычно в пределах допустимого. У нас в продуктовой рознице на поддержке около 60 кассовых проходов с плотным потоком покупателей и широким ассортиментом товаров. Если бы были принципиальные проблемы, я бы знал про это.
C6/C12, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8152
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 30 раз
Поблагодарили: 104 раза

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

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

finsoftrz писал(а): 28 Август 2025, 8:42 В ЛМ есть регистрация продажи марки (sell), как Вы предлагаете сторнировать её?
Абсолютно верно. Сразу за описанием метода SELL идёт описание метода RETURN.
Пожалуйста найдите уже сами. :D
finsoftrz писал(а): 28 Август 2025, 8:42 после сканирования или при закрытии чека
Тоже верно - были такие дебаты в чатах. Но этим описаниям уже много лет. Всё меняется.
finsoftrz писал(а): 28 Август 2025, 8:42 при котором можно в одном магазине пробить несколько раз одну и ту же марку
При проверках марки сразу после сканирования задержка обычно в пределах допустимого.
Сколько раз у Вас была ситуация, когда покупатель бегал с бутылкой молока по разным кассам
и регистрировал её в нескольких окрытых чеках ? А вот добавление в БД идёт при каждом сканировании КМ. :(
Если нет проблем со скоростью обработки в конкретном магазине - то и всё OK ! Но это не общее решение.

При переключении проверки КМ на ПО ЛМ - Вы всё равно будите вынуждены запрашивать проверку через
api/v1/cis/outCheck() которая проверяет дубликаты КМ (иначе не получите реквизиты для чека).
Можно игнорировать ошибку, но нельзя отменить проверку дублей - т.е. повторная операция. 🤷‍♀️
Make Clarion Great Again ! 😎
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 5397
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 13 раз
Поблагодарили: 68 раз

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

Сообщение finsoftrz »

Игорь Столяров писал(а): 28 Август 2025, 9:03
finsoftrz писал(а): 28 Август 2025, 8:42 при котором можно в одном магазине пробить несколько раз одну и ту же марку
При проверках марки сразу после сканирования задержка обычно в пределах допустимого.
Сколько раз у Вас была ситуация, когда покупатель бегал с бутылкой молока по разным кассам
и регистрировал её в нескольких окрытых чеках ? А вот добавление в БД идёт при каждом сканировании КМ. :(
Если нет проблем со скоростью обработки в конкретном магазине - то и всё OK ! Но это не общее решение.
Обычно это не покупатель делает, а кассиры мутят. А никогда не наблюдали ситуацию, когда покупателя заставляют из сумки доставать пробитые товары, чтобы отменить продажу какой-то марки? :-)
Игорь Столяров писал(а): 28 Август 2025, 9:03 При переключении проверки КМ на ПО ЛМ - Вы всё равно будите вынуждены запрашивать проверку через
api/v1/cis/outCheck() которая проверяет дубликаты КМ (иначе не получите реквизиты для чека).
Можно игнорировать ошибку, но нельзя отменить проверку дублей - т.е. повторная операция. 🤷‍♀️
Да, но если проверять на повторные продажи через ЛМ, то запрос нужно делать при каждой продаже (плюс запись/возврат при необходимости), а если не делать, то только тогда, когда онлайн проверка недоступна. А эта ситуация не так часто возникает.

Вот, коллега отписался:
при сетевом лм никто не запрещает регистрировать сразу, а если чек не прошел по фр то вертать все взад
есть момент - не стоит забывать что база проданных в лм живет от инита до следующего инита, т.е. надо бекапить самостоятельно, как и объединение продаж с разных лм есть они по отдельности
Вот этим как раз и не хочется нагружать пользователей.
C6/C12, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8152
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 30 раз
Поблагодарили: 104 раза

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

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

Проблема в том, что нет идеального решения. 🤷‍♀️
Можно ли самостоятельно реализовать проверку дубликатов ? Да, конечно.
По-крайне мере пока, никто не заставляет использовать средства ЛМ ЧЗ.

Здесь ситуация как с бесплатной программой ФНС РФ "Налогоплательщик ЮЛ".
Т.е. никто не заставляет с её помощью готовить налоговую отчётность.
Но возможность предоставлена и поэтому отчётность должна быть подготовлена.
finsoftrz писал(а): 28 Август 2025, 9:38 то вертать все взад
Ваш коллега на привычном для себя языке изложил описание из Методических указаний ЧЗ.
То что он его прочитал и смог донести своим подписчикам - уже отлично ! :D
Make Clarion Great Again ! 😎
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 5397
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 13 раз
Поблагодарили: 68 раз

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

Сообщение finsoftrz »

Этот коллега занимается ТОЛЬКО одной кассовой программой 20+ лет при сервисном центре по ккм, у него очень много касс в работе. Мы иногда заочно обсуждаем вопросы касаемо касс, он адекватный и постоянно держит руку на пульсе. Хотя физически находится от меня совсем близко, минут 20 пешком прогуляться, в реальном мире не пересекались. :D
C6/C12, ШВС, tps/btrieve.
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 5397
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 13 раз
Поблагодарили: 68 раз

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

Сообщение finsoftrz »

Игорь, а как Вам вот это? Уже готовитесь?

clip1756379168.png
C6/C12, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8152
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 30 раз
Поблагодарили: 104 раза

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

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

А зачем ? Мы не ведём разработку ПО для технических средств получения информации о товаре.
Это прошивки к сканерам, ТСД, кассам самообслуживания и т.д. - см. ПП от №303 от 19.03.2020 г.
Make Clarion Great Again ! 😎
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 5397
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 13 раз
Поблагодарили: 68 раз

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

Сообщение finsoftrz »

Очень мутно написано. Наше ПО тоже по факту сейчас получает и отправляет информацию в систему маркировки. Народ тут слегка вибрировать по этому поводу начал.
C6/C12, ШВС, tps/btrieve.
Ответить