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

13.04.17

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

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

Скачать файл

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

Наименование SM По подписке [?] Купить один файл
1C 8.x.x
.epf 40,27Kb
11
11
2 SM
Скачать Купить за 2 150 руб.
Протокол JSON аппарата MG-545 T (02)
.pdf 1,10Mb
5
5
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 Управляемые формы Анализ и прогнозирование Конфигурации 1cv8 Узбекистан Беларусь Кыргызстан Молдова Россия Казахстан Платные (руб)

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

15.11.2022    16527    17    SQV0    48    

35

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

Полнофункциональное расширение (ранее известное как Модуль 1С-ЕГАИС) для взаимодействия типовых конфигураций 1С и ЕГАИС, предоставляющее максимум возможностей по работе с УТМ. Получение и отправка ТТН, отправка акта о постановке на баланс и акта о списании. Получение остатков. Загрузка и сопоставление номенклатуры и контрагентов. Оправка в ЕГАИС отчетов о производстве и импорте.

8970 руб.

15.12.2015    168620    795    364    

394

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

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

6000 руб.

27.02.2017    787868    4749    9507    

2816

Бюджетирование и планирование Оптовая торговля Розничная торговля Логистика, склад и ТМЦ Анализ продаж Пользователь Платформа 1С v7.7 Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Беларусь Украина Россия Казахстан Управленческий учет Платные (руб)

Система управления запасами для 1С помогает работать с запасами правильно: автоматически рассчитывает потребность и делает заказ поставщику, загружает прайсы, перемещает товары по филиалам, анализирует продажи и позволяет управлять ассортиментом.

28500 руб.

21.04.2017    93573    119    40    

210

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

Модуль для интеграции 1С с сервисом СберМаркет/Купер. Предназначен для обмена данными из торговых точек розничных сетей из баз данных 1С в базы данных СберМаркет/Купер, для отображения информации по товарам, остаткам, ценам, заказам и статусам заказов. Позволяет оперативно начать работать с сервисом СберМаркет, существенно повысить продажи и лояльность клиентов.

35000 руб.

14.10.2022    8696    15    14    

11

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

Данная публикация создана для помощи разработчикам, интеграторам и другим заинтересованным лицам по настройке системы маркировки обуви, одежды, лекарств, табака, фото, молока, духов(парфюма), питьевой воды, велосипедов и шин. Смело задавайте вопросы по работе с ЦРПТ, GS1, ЭДО, Национальным каталогом, накопили достаточно большую базу знаний по данным темам и готовы ответить на все Ваши вопросы.

5000 руб.

18.03.2019    111784    29    114    

181

ККМ Кассовые операции Розничная торговля Системный администратор Программист Платформа 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 или интернет. Поддержка маркировки и разрешительного режима.

5400 руб.

25.05.2015    329518    1898    3031    

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