Страница 37 из 39

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

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

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

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

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

atol2.png

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

Добавлено: 27 Август 2025, 11:42
Игорь Столяров
finsoftrz писал(а): 27 Август 2025, 11:35 Я пока не видел обсуждения проверки дублей марок через ЛК
Ха ! Так а зачем же был введён в ПО ЛМ механизм контроля дубликатов КИ
и обновлён регламент проверки КМ при продаже (я Вам давал уже на него ссылку) ?

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

Добавлено: 27 Август 2025, 12:06
finsoftrz
А для слепых можете еще раз повторить ссылку? В гугле есть только упоминание, что возможность проверки повторной продажи марок в ЛМ есть.

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

Добавлено: 27 Август 2025, 12:42
Игорь Столяров
Без проблем ...
Игорь Столяров писал(а): 22 Август 2025, 14:30 А порядок действий рекомендуемый НСЦМ "Честный Знак" по пунктам расписан в
разделе «5. Сценарий проверки продукции перед продажей» и мы его реализовали.
(см. страницу 65 в Методических рекомендациях ЧЗ версии 12 от 15.07.2025 г.)
Ссыль на Методические рекомендации ЧЗ: https://xn--80ajghhoc2aj1c8b.xn--p1ai/local-module/

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

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

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

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

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

Добавлено: 27 Август 2025, 18:25
Игорь Столяров
finsoftrz писал(а): 27 Август 2025, 17:29 пробить одну и ту же марку на всех кассах
Абсолютно верно. Можно продать одну палёную марку в нескольких магазинах или городах через ЛМ ...
finsoftrz писал(а): 27 Август 2025, 17:29 то разрешительный режим корректно реализовать не реально, договорились, давайте сделаем хоть как-то частично.
Сама система убога и развивается методом кастелирования. Здесь могло бы быть решение аналогичное эквайрингу -
но тогда нужно было привлекать инвестиции. Честный Знак не смог даже с ОФД договорится о делёжке бабла и начал
строить свой "разрешительный проверка" поверх существующей системы. 😢

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

Добавлено: 27 Август 2025, 19:21
finsoftrz
Можно продать одну марку на нескольких кассах в одном магазине, что они и пытаются предотвратить.

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

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

Вы всё делаете под себя - поэтому нельзя обсуждать решения работу которых никогда не видел. :D
Но в общем, стало слишком много проверок и они не быстрые, поэтому используются пакетные обработки КМ по всему чеку.

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

Добавлено: 28 Август 2025, 8:42
finsoftrz
В какой момент проверять марки, после сканирования или при закрытии чека, много раз обсуждалось, почитайте на досуге, если интересно. В обоих вариантах есть свои плюсы и минусы, оба варианта просчитывались.
При проверках марки сразу после сканирования задержка обычно в пределах допустимого. У нас в продуктовой рознице на поддержке около 60 кассовых проходов с плотным потоком покупателей и широким ассортиментом товаров. Если бы были принципиальные проблемы, я бы знал про это.

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

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

При переключении проверки КМ на ПО ЛМ - Вы всё равно будите вынуждены запрашивать проверку через
api/v1/cis/outCheck() которая проверяет дубликаты КМ (иначе не получите реквизиты для чека).
Можно игнорировать ошибку, но нельзя отменить проверку дублей - т.е. повторная операция. 🤷‍♀️

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

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

Вот, коллега отписался:
при сетевом лм никто не запрещает регистрировать сразу, а если чек не прошел по фр то вертать все взад
есть момент - не стоит забывать что база проданных в лм живет от инита до следующего инита, т.е. надо бекапить самостоятельно, как и объединение продаж с разных лм есть они по отдельности
Вот этим как раз и не хочется нагружать пользователей.

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

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

Здесь ситуация как с бесплатной программой ФНС РФ "Налогоплательщик ЮЛ".
Т.е. никто не заставляет с её помощью готовить налоговую отчётность.
Но возможность предоставлена и поэтому отчётность должна быть подготовлена.
finsoftrz писал(а): 28 Август 2025, 9:38 то вертать все взад
Ваш коллега на привычном для себя языке изложил описание из Методических указаний ЧЗ.
То что он его прочитал и смог донести своим подписчикам - уже отлично ! :D

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

Добавлено: 28 Август 2025, 11:39
finsoftrz
Этот коллега занимается ТОЛЬКО одной кассовой программой 20+ лет при сервисном центре по ккм, у него очень много касс в работе. Мы иногда заочно обсуждаем вопросы касаемо касс, он адекватный и постоянно держит руку на пульсе. Хотя физически находится от меня совсем близко, минут 20 пешком прогуляться, в реальном мире не пересекались. :D

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

Добавлено: 28 Август 2025, 15:17
finsoftrz
Игорь, а как Вам вот это? Уже готовитесь?

clip1756379168.png

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

Добавлено: 28 Август 2025, 15:28
Игорь Столяров
А зачем ? Мы не ведём разработку ПО для технических средств получения информации о товаре.
Это прошивки к сканерам, ТСД, кассам самообслуживания и т.д. - см. ПП от №303 от 19.03.2020 г.

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

Добавлено: 28 Август 2025, 15:40
finsoftrz
Очень мутно написано. Наше ПО тоже по факту сейчас получает и отправляет информацию в систему маркировки. Народ тут слегка вибрировать по этому поводу начал.