Работа с кассовым аппаратом MG-545T (02) по http протоколу (JSON)

13.04.17

Учетные задачи - Розничная торговля

Программируем базу товаров прямо из 1С 8.х.х в кассовый аппарат , скачиваем напрямую отчеты о проданных товарах. Обработка не подвязана под какую либо конфигурацию, но полностью демонстрирует возможность , как можно заполнить данными БД кассового аппарата и наоборот, как скачать отчеты о проданных товарах или БД товаров, запрограммированных в аппарате.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
1C 8.x.x
.epf 40,27Kb ver:ver.2.0.1
12
12 Скачать (2 SM) Купить за 2 150 руб.
Протокол JSON аппарата MG-545 T (02)
.pdf 1,10Mb ver:1.0.0.1
6
6 Скачать (1 SM) Купить за 1 850 руб.

 Производитель решил углубить идею управления кассовым аппаратом через http протокол. Или другими словами дал упрощенный метод управления кассовым аппаратом в формате JSON.

 Данная обработка пригодиться частным мелким организациям работающим на кассовых аппаратах MG-545T (02) которые хотят быстро программировать свой (т.к. модель всего одна) кассовый аппарат MG-545T(02) удаленно через ETHERNET (не путать с Интернетом, хотя и через И-нет тоже можно - предварительно пробросив порт 80 наружу), либо через кабель USB (в этом случае USB работает в режиме RNDIS - виртуальная сетевая карта).

 Начну с начала. Рассказывать буду подробно и четко (если что поправляйте исправлю).

1) Подключили аппарат вышеуказанным методом (если Windows 7, 8 , 10 - даже через USB драйверов не надо).

( В случае необходимости для Windows 98, Windows XP драйвер USB-RNDIS можно скачать тут или зеркало ).

2) Набрать на кассовом аппарате команду 929   ПС  распечатает все IP адреса по которым можно добраться к заветному аппарату.
Не удивляйтесь он может одновременно откликаться как по Ethernet, USB-RNDIS и быть подключен к GPRS. (последнего конфигурацию не печатает).

3) Теперь мы можем использовать этот аппарат через 1С - указав IP в первой вкладке обработки (см. скриншот).

 

Теперь можем исправить шапку чека - переписать , переименовать заключительную часть чека. Но самое главное мы можем программировать товары из 1С непосредственно в этот аппарат. (Изначально прийдеться правда синхронизировать ID налоговой ставки в аппарате и в 1С.)

mg V545T
В 

На скриншоте 2 показанно все это. (Результат можно тут-же увидеть на самом аппарате в его таблице
http://IP-addres/index.html#plu или для тех кто понимает JSON по адресу http://IP-addres/cgi/tbl/PLU  
(последний слеш не ставиться !!!).

Теперь вытянуть продажи... существует масса вариатов , я постраюсь на пальцах (ну сколько у меня хватит терпения и пальцев Laughing ).

Вариант 1 Чтение таблицы продаж за текущую ОТКРЫТУЮ смену. (до снятия Z отчета).

Даем запрос на чтение по GET http://IP-addres/cgi/chk (незабывайте что аппарат отдает ответы в UTF-8 так что русские символы я декодирую в понятную кодировку для чтения) 

В ответ нам прийдет JSON который прийдеться распарсить и получим все чеки которые пробивались на данном аппарате.
Кто желает углубиться, тот читает протокол JSON котоый я так-же прикрутил к этой статье.

Для тех кто не хочет изучать как и что, может получить значения чеков перейдя на вкладку Служебные функции и нажать на скромно стаящую кнопку Таблица чеков (на данном этапе я все вывожу в окно служебных сообщений, т.к. не знаю на какой конфигурации и куда надо данные записывать в 1С) . 

Вариант 2 Чтение таблиц электронного журнала за любой Z отчет.
Сразу банальный вопрос - а почему не за дату, и откуда я буду знать нумерацию Z отчетов? Да тут все очевидно просто за одну и ту-же дату работники умудряются делать несколько Z отчетов , что в принципе позволительно - поэтому логичнее делать этот отчет по номерам Z отчетов который печатается на ленте самого отчета при его снятии (каждый кассир знает ГДЕ).

Теперь о самом процессе... вызываем  GET http://IP-addres/cgi/ejournal?Z=НОМЕР ,

где НОМЕР - это и есть ВАШ номер интересующей смены в рамках Z отчета 
получаемые данные и будут содержать необходимые чеки  в рамках от номера(Z-1) до номера(Z) (т.е. за всю закрытую смену).

Ответ как ВЫ догадались приходит опять JSON-ом котрый распарсив мы (ВЫ) получим всю необходимую информацию.

Распарсив получим например:

Z >-> 3 (Номер Z отчета - именно тот который Я и посылал
id >-> 1
oper_id >-> 1
datetime >-> 1465475700   (Дата время в UNIX формате)

id >-> 22  (Номер операции кому надо берите...)
no >-> 1
beg_id >-> 1
oper_id >-> 1  
datetime >-> 1465475702     (Дата время в UNIX формате)
DI >-> 14
code >-> 1        (Код товара который я пробил ради теста)
name >-> Товар ТЕСТ 1  (Его название кстати было запрограммировано в аппарат из коробки заводом)
qty >-> 1.000  (Кол-во проданных товаров)
price >-> 99.88  (Цена - это я поменял ему цену - изначально была 0грн)
sum >-> 99.88   (Сумма сделки)
tax >-> 1            (Налог 1 - что соответствует А налогу - а вот к чему он привязан? см. ниже оборву мысль...)
no >-> 1  (Номер вида оплаты)
name >-> ГОТIВКОЮ  (вид оплаты - НАЛОМ конечно-же) 
sum >-> 99.88 (Вся эта сумма по налу - хотя могли быть и другие варианты, частичная оплата и сдача...)
id >-> 33
no >-> 2
beg_id >-> 23
oper_id >-> 1

Для этого аппарат должен быть зафискализирован и в его памяти есть как минимум 1 (один) снятый Z отчет.

Не производите сами фискализацию процесс необратим !!! (аппарат становиться на учет в налоговую).

Полученные данные я вывожу в окно служебных сообщений. Вы естественно можете манипулировать с этими данными и даже формировать расходные документы, а можете ...

Вернусь к оборванной мысли , то где взять налоговые ставки :

по GET http://IP-addres/cgi/tbl/Tax в ответ ВЫ получите JSON с заранее запрогрммированными налогами.
Рекомендуется не менять эти ставки в дальнейшем ! 

Пример выглядитвот так:

По адресу URL http://IP-addres/cgi/tbl/Tax
2)Результат=[
{"id":1,"Prc":20.00,"Extra":5.00,"SMode":2,"SName":"ЗБІР"},
{"id":2,"Prc":0.00,"Extra":0.00,"SMode":0,"SName":"ЗБІР"},
{"id":3,"Prc":0.00,"Extra":0.00,"SMode":0,"SName":"ЗБІР"},
{"id":4,"Prc":0.00,"Extra":0.00,"SMode":0,"SName":"ЗБІР"},
{"id":5,"Prc":0.00,"Extra":0.00,"SMode":0,"SName":"ЗБІР"}]

Или если распарсить:

id >-> 1     (Идентификатор налога)
Prc >-> 20.00 (Процент налоговой ставки)
Extra >-> 5.00 (Процент акцизного сбора )
SMode >-> 2    (Режим по которому начисляется процент акциза т.е. (БазаЦена+НДС)+Акциз = КонечнаяЦена )
SName >-> ЗБІР (То что печатается на виде акциза)
id >-> 2  
Prc >-> 0.00
Extra >-> 0.00
SMode >-> 0
SName >-> ЗБІР  

и т.д.

Остальные варианты чтения ВЫ можно получить изучив протокол обмена и используя команды получить то ,что необходимо из аппарата.

Так например можно прочитать всю поднаготную аппрата за всю историю (или часть истории)
вызвав GET http://IP-addres/cgi/tbl/FDay  - это таблица фискальной памяти , внешне она выглядит приблизительно так

[
{"id":1,"valid":1,"Date":1465419600,"STax0":0.00,"STax1":699.82,"STax2":0.00,"STax3":0.00,"STax4":0.00,"SRet0":0.00,"SRet1":0.00,"SRet2":0.00,"SRet3":0.00,"SRet4":0.00,"NChk":6,"NRet":0},
{"id":2,"valid":1,"Date":1465419600,"STax0":0.00,"STax1":111.10,"STax2":0.00,"STax3":0.00,"STax4":0.00,"SRet0":0.00,"SRet1":0.00,"SRet2":0.00,"SRet3":0.00,"SRet4":0.00,"NChk":2,"NRet":0},
{"id":3,"valid":1,"Date":1465506000,"STax0":0.00,"STax1":111.10,"STax2":0.00,"STax3":0.00,"STax4":0.00,"SRet0":0.00,"SRet1":0.00,"SRet2":0.00,"SRet3":0.00,"SRet4":0.00,"NChk":2,"NRet":0},
{"id":4,"valid":1,"Date":1465765200,"STax0":0.00,"STax1":99.88,"STax2":0.00,"STax3":0.00,"STax4":0.00,"SRet0":0.00,"SRet1":0.00,"SRet2":0.00,"SRet3":0.00,"SRet4":0.00,"NChk":1,"NRet":0}]
Выделил строку которую внимательный читатель заметил что я ее разбирал ВЫШЕ в качестве примера.
На самом деле важными параметрами тут являются всего 2(два), а именно ДАТА-ВРЕМЯ "Date":1465506000,
и номер Z отчета "id":3. 
Предположим Вам надо выудить инфу о всем, что продавалось на этом аппарате с 09.06.2016 по 12.06.2016
Легко перевести эти данные в UNIX формат (т.е. кто посмотрит код в 1С удивиться как 
просто это выполнить на уровне 1С)отберем номера ID которые попадают в наш разрез 
дат начиная с 1465430400 секунды по 1465689600 секунду. 
Как видим из примера у нас попадают 2 отчета (всего) 
это с id=3 и id=4 , т.к. 1465506000 больше или равен искомому 1465430400
с другой стороны ограничение  1465689600 сек. 
Теперь осталось обратиться по GET http://IP-addres/cgi/ejournal?Z=3 , потом  
GET http://IP-addres/cgi/ejournal?Z=4
получить данные и распарсить , результат записать в нужные места ВАШЕЙ конфигурации. 

Теперь о главном :

Аппарат можно было-бы запрограммировать и ввести товары старым способом - через WEB консоль обратившись по его IP...
но это наверное не так интересно ?

Надеюсь это все ВАМ действительно понадобилось.

кассовый аппарат ККМ касса синхронизация с кассой 545 MG545 MG-545 MG545T MG-545T

См. также

ККМ Кассовые операции Розничная торговля Системный администратор Программист Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Бухгалтерия государственного учреждения 1С:Бухгалтерия 1.6 1С:Бухгалтерия автономного учреждения Россия Платные (руб)

Универсальная обработка для обслуживания любых фискальных регистраторов (ККТ), в том числе Веб сервер АТОЛ. Работает в соответствии с 54-ФЗ. (ФФД 1.0, ФФД 1.05, ФФД 1.1, ФФД 1.2). Подключайте любую онлайн кассу к практически любой конфигурации на обычных формах. Нет необходимости обновлять 1С. Можно бесплатно скачать и протестировать. Может работать одновременно с несколькими онлайн-кассами, либо одной с разных рабочих мест. (через RDP, TCP\IP или веб-сервер) Позволяет разделить один чек сразу на несколько ККТ или на несколько систем налогообложения. Поддерживает разрешительный режим и маркировку. Поддерживает локальный модуль честного знака для офлайн проверки. Можно настроить собственный шаблонов чека. Можно использовать эквайринг там, где он не поддерживается. Работает на LINUX и Windows

6000 руб.

27.02.2017    820673    5235    9802    

2955

Внешние источники данных Программист Бизнес-аналитик Пользователь Платформа 1С v8.3 Управляемые формы Анализ и прогнозирование 1C:Бухгалтерия Узбекистан Беларусь Кыргызстан Молдова Россия Казахстан Платные (руб)

Готовое решение для автоматической выгрузки данных из 1С 8.3 в базу данных ClickHouse, PostgreSQL или Microsoft SQL для работы с данными 1С в BI-системах. «Экстрактор данных 1С в BI» работает со всеми типовыми и нестандартными конфигурациями 1С 8.3 и упрощает работу бизнес-аналитиков. Благодаря этому решению, специалистам не требуется быть программистами, чтобы легко получать данные из 1С в вашей BI-системе.

28500 руб.

15.11.2022    23629    28    49    

42

ККМ Кассовые операции Розничная торговля Системный администратор Программист Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Бухгалтерия государственного учреждения 1С:Бухгалтерия автономного учреждения Россия Платные (руб)

Обработка осуществляет обслуживание ККТ АТОЛ, Штрих, Вики Принт и Меркурий для конфигураций "УТ 10.3", "КА 1.1", "УПП 1.3", "Розница 1.0", "БП 2.0" и других отраслевых решений, построенных на основе указанных выше конфигурациях. Поддерживает возможность параллельно пробития чеков на одной ККМ несколькими пользователями. Поддерживает Веб-сервер Атол. Соответствует требованиям 54-ФЗ. Поддерживает ФФД 1.0, 1.05, 1.1 и 1.2. Разделяет чеки по нескольким СНО. Поддерживает механизмы подключения ККТ по TCP/IP, для работы через RDP или интернет. Поддержка маркировки и разрешительного режима. Поддержка пробития чеков с новыми ставками НДС 5% и НДС 7%.

7900 руб.

25.05.2015    343623    2106    3121    

1095

Оптовая торговля Розничная торговля Обмен с ГосИС Бухгалтер Платформа 1С v8.3 1С:Управление торговлей 10 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Рестораны, кафе и фаст-фуд Россия Бухгалтерский учет Управленческий учет Акцизы Платные (руб)

Автоматизация учета ЕГАИС в 1С для оптовой торговли, производства и импорта. Получение и отправка ТТН, отправка акта о постановке на баланс и акта о списании. Получение остатков. Загрузка и сопоставление номенклатуры и контрагентов. Оправка в ЕГАИС отчетов о производстве и импорте.

828 руб.

15.12.2015    173180    888    370    

407

ККМ Кассовые операции Розничная торговля Программист Бухгалтер Пользователь Бухгалтерский учет Оперативный учет Управляемые формы 1С:Розница 2 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Расширение для типовых конфигураций для Управляемых форм позволяет выполнять печать кассовых чеков на одну ККМ 54-ФЗ с нескольких рабочих мест. НИКАКИХ НАСТРОЕК В РАЗРАБОТКЕ - ПОДКЛЮЧИЛ И ПЕЧАТАЙ. Если у вас несколько отделов и одна ККМ - печатайте на одной ККМ! Если у вас две ККМ и одна поломалась - печатайте на одной ККМ, пока ремонтируете другую!

9500 руб.

27.08.2018    126355    683    603    

899

ККМ Кассовые операции Розничная торговля Системный администратор Программист Пользователь Платформа 1С v8.3 1C:Бухгалтерия Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Рестораны, кафе и фаст-фуд Россия Платные (руб)

«Сервер ККМ» позволяет приложениям работать с фискальными регистраторами по локальной сети или интернет, организовать печать на одном ККМ с нескольких рабочих мест с поддержкой очереди печати. Поддерживаются ВСЕ ревизии требований фирмы 1С к разработке драйверов ККТ от 2.2 до 4.4. В поставке есть драйверы для операционных систем Linux, Android, MacOs и Windows. Поддержка драйверов Атол, Штрих и 1С-совместимых драйверов для ККТ ревизии 4.4. Поддержка 54-ФЗ и разрешительного режима, ФФД 1.05,1.1,1.2. Подключается к 1С Торговля и склад 7.7, 1С:УТ 10/11, 1С:УНФ 1.6/3, 1С:Розница 1/2/3, 1С:БП 2/3, 1С КА 1/2., 1С:ERP, УПП. Ускоряет печать из терминального сеанса Windows. Работает с разрешительным режимом даже из старых конфигураций. Предоставляет REST API для печати через веб-сервис. Поддерживаются новые ставки НДС 5% и 7%.

5000 руб.

02.09.2016    140534    208    196    

197
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. leon2785 02.07.20 13:42 Сейчас в теме
Доработка под типовую УТ/УТП обычные формы обсуждаема? с загрузкой чеков за период?
Оставьте свое сообщение