Класс работы с драйвером ККТ АТОЛ 10 на основе JSON заданий.
Форк класса ADMIN'а: Driver10.zip
Класс рабочий, в комплекте примеры использования. Любые замечания и дополнения - приветствуются.
В FTP разделе форума создана папка: /_Books/Atol.KKT со всей сопутствующей документацией.
----------------------------------------------------------------------------------------------------
Рекомендуем использовать актуальные версии классов cJSON и PrintF.
Версия класса для API АТОЛ 10 от 17.12.2025 г.
-----------------------------------------------------------
- Отработаны изменения и рекомендации в релизном драйвере АТОЛ 10.10.8.0;
- Исправлены мелкие помарки по запросам.
Версия класса для API АТОЛ 10 от 11.01.2026 г.
-----------------------------------------------------------
- Очистка кодов маркировки от GS1 и разбор кода маркировки на части;
- Дополнение форматов поддерживаемых кодов маркировки;
- Исправлены мелкие помарки по запросам.
Обновление версии класса для API ККТ АТОЛ.
-----------------------------------------------------------
- Обработка новых форматов кодов маркировки с переменной длиной;
- При запросе чека из ФН возвращаются ставки и суммы налога;
- Устранена проблема с первым чеком при автоматическом переоткрытии смены;
- Отработаны мелкие помарки по запросам.
1. В последней версии класса процедура jCreateNewCheck признана рудиментом. Тем не менее, в примерах классов ATOL и HONEST (*.txt) она присутствует. Ее можно просто без последствий убрать у себя из исходников или все-таки следует заменить на что-то?
При Atol:Legacy Equate(1) вышеуказанная процедура включается в компиляцию, НО вместе с ней включается описание отсутствующей не использующейся процедуры jFreeItems. Надо бы в Atol.inc убрать ее описание.
2. При изъятии/внесении денег (jCashInOut) в чек выводится опционально информация процедурами jAddEasyHeader/jAddEasyFooter, как описано в примере (Atol.txt). Я использовал jAddEasyHeader для конкретизации. Сейчас убрал, чтобы класс не корежить. Можно ее чем-то заменить и как правильнее это сделать?
zmi писал(а): 11 Февраль 2026, 13:52
В последней версии класса процедура jCreateNewCheck признана рудиментом.
Уже давно ... Метод класса jCreateNewCheck() заменён на аналогичную процедуру Atol::CreateNewCheck().
Это удобней, если нужно одновременно формировать несколько кассовых чеков (и не только). См. пример.
Вопросы с флагом Atol:Legacy Equate и примерами устраним в следующем (опубликованном здесь) релизе.
zmi писал(а): 11 Февраль 2026, 13:52
Сейчас убрал, чтобы класс не корежить
Вообще без проблем.
Печатайте нефискальный информационный текст до и после любого фискального документа.
Вот реальный пример из рабочей программы для чеков на внесение / выплаты кеша.
! Создать новый фискальный документ
Atol::CreateNewCheck(Loc:Header,Glo:MyAtol.qTextItems,Glo:MyAtol.qPostItems)
Atol::AddOutItem('ТЕКСТ ДО ЧЕКА', Glo:MyAtol.qTextItems) ! Добавить текст для печати перед документом
Atol::AddOutItem('ТЕКСТ ПОСЛЕ ЧЕКА',Glo:MyAtol.qPostItems) ! Добавить текст для печати после документа
Loc:Header.gOperator = MyFRS.gOperator ! Данные кассира (ФИО / ИНН)
Loc:Header.OpenDrawer = MyFRS.FBox ! Открыть денежный ящик при оплате наличными
Loc:Header.Electronically = MyFRS.Electronically ! Электронный чек (без печати на кассовую ленту)
Loc:Header.Silent = MyFRS.Silent ! Без выдачи сообщений (принт-сервер чеков)
Loc:Header.Total = MyFRS.Summa ! Сумма операции
Execute MyFRS.XType ! Вид чека (для обработки внутри класса)
Loc:Header.CheckType = ATOL:CASH_IN ! 1. Внесение
Loc:Header.CheckType = ATOL:CASH_OUT ! 2. Выплата
end
Loc:RetValue = Glo:MyAtol.jCashInOut(Loc:Header)
Обновление версии класса для API ККТ АТОЛ.
-----------------------------------------------------------
- Изменения в версии драйвера АТОЛ 10.10.8.23 с ТС ПИоТ ЕСМ от АО "ЕСП";
- Отработаны мелкие помарки по запросам.
У меня нет товаров - только коммунальные услуги. Если я пробью чек ЭЛЕКТРОННО (без печати на бумагу) и не будет указан адрес электронной почты и номер телефона (расчеты НЕ в интернете) - это будет ошибкой? Номер транзакции естественно я не знаю - жители платят в банке, а на предприятие приходит список поступивших платежей. Управляющая компания вынуждена проводить чеки безналично для налоговой. Сейчас пробиваются все чеки на бумагу и их никто не забирает.
Я с сентября 2025 отключил возможность печати чеков ЭЛЕКТРОННО (без печати на бумагу). Я это зря сделал? Все разговоры, что либо чек на бумагу, либо на электронную почту или смс на телефон должны быть - были в августе 2025 года. У меня только коммунальные услуги.
wad_ja писал(а): 03 Апрель 2026, 12:33
Если я пробью чек ЭЛЕКТРОННО (без печати на бумагу) и не будет указан адрес электронной почты и номер телефона (расчеты НЕ в интернете) - это будет ошибкой?
Да. Это будет налоговое нарушение.
Флаг "расчёт в интернет" применяется при покупке на сайте (маркетплейсе) и в данном случае вообще не уместен.
Реквизиты "телефон или электронный адрес покупателя" (тег 1008) и "адрес электронной почты отправителя чека" (тег 1117) должны включаться в состав кассового чека (БСО) в электронной форме и могут быть включены в составе ФД в печатной форме, если ФД будет сформирован в печатной форме, в следующих случаях:
- кассовый чек (БСО) передается покупателю (клиенту) в электронной форме;
- покупателю (клиенту) передаются в электронной форме признаки, идентифицирующие такой кассовый чек (БСО), и информация об адресе информационного ресурса в сети "Интернет", на котором такой кассовый чек (БСО) может быть получен.
Здесь можно просто включить логику. Если Вы не знаете номер телефона / e-mail покупателя и оформляете электронный чек -
значит Вы (Ваше ОФД) в принципе не можете предоставить чек покупателю. А невыдача чека покупателю - это нарушение.
wad_ja писал(а): 03 Апрель 2026, 15:15
Если чек не печатается электронно, можно запретить кассе печатать чек?
Конечно ! Проверяёте при включении признака "Электронный чек" указание контактных данных.
И при их отсутствии - выдавайте сообщение пользователю в оформлении интерфейса Вашей программы.
Более того, я рекомендую ещё проверять и корректность формата указанных e-mail / телефона, потому
что некоторые прошивки ККТ это тоже делают, но при этом выдают трудно диагностируемые ошибки.
Без установки признака "электронно" в некоторых моделях ккм (по моему, в атол) будет печататься бумажная копия чека. Бумажный чек предоставлять покупателю не обязательно, по согласованию с ним, можно отправить чек на электронную почту. Другой вопрос, что ранее многие просто спрашивали у покупателя, нужен ли ему чек, если нет, то указывали какой-нибудь адрес электронной почты от балды. Поскольку был мораторий на проверки и были проблемы с закупками чековой ленты, никто такие нарушения не отслеживал.
Сейчас прикольная ситуация возникла. Мишустин бегал и всем радостно рассказывал, какие они молодцы, теперь через онлайн кассы видят все по всей стране. Под это дело провели реорганизацию налоговых служб, кучу филиалов закрыли, сократили штаты. А как сейчас обложили малый бизнес ндс, который технически не готов с этим работать, вдруг увидели, что обороты через онлайн кассы начали почему-то падать, возникло предположение, а не продают ли эти мерзавцы что-то в обход их. Только проверить это некому, надо снова в налоговую людей набирать, чтобы выездные проверки организовывать. Не смогли заранее посчитать такую ситуацию. В результате родилась гениальная идея, пусть вместо налоговой за применением онлайн касс следят владельцы коммерческой недвижимости. То есть, если у тебя торговый центр или рынок, на которых сдаешь торговые места в аренду, ты и отвечаешь, чтобы арендаторы использовали онлайн кассы. Но ведь владельцы торговой недвижимостью люди тоже не простые, с какого перепуга она должны на себя брать функции налоговиков, да еще нести ответственность за это, поэтому сейчас идут споры по поводу принятия такого решения. Собственникам тоже не сладко, арендаторы достаточно активно закрываются и без этого. ХЗ, может и примут такой закон, только, я думаю, вопрос это вряд ли решит.
Ситуация также бьет по банкам, так как заметно снижается доля платежей по банковским картам. Частично это связано и с общим падением продаж через онлайн кассы, но и не только. По хорошему, надо брать под жесткий контроль хождение наличных денег (как было при Союзе), но сейчас к этому, видимо, не готовы, слишком много за этим потянется. Пока обсуждают вопрос ввода налога на электронные платежи (включая карты и сбп) сверх определенной суммы.
Все (кроме Мишустина) понимали, что повышение налогов будет нивелировано уменьшением налоговой базы.
Просто государству удобно сразу отжать дополнительные 10% НДС с крупных налогоплательщиков, а остальное пофиг.
Ну и всеобщая маркировка. Если купил товар с КМ - то как-то надо показать его выбытие. "Сам съел !" прокатит, но не долго.
Игорь Столяров писал(а): 03 Апрель 2026, 16:05
Все (кроме Мишустина) понимали, что повышение налогов будет нивелировано уменьшением налоговой базы.
Просто государству удобно сразу отжать дополнительные 10% НДС с крупных налогоплательщиков, а остальное пофиг.
Ну и всеобщая маркировка. Если купил товар с КМ - то как-то надо показать его выбытие. "Сам съел !" прокатит, но не долго.