Пара вопросов по разработке ПО для взаимодействия с кассой

Модели:
Меркурий-114.1К, Меркурий 115Ф, Меркурий 119Ф, Меркурий 130ф, Меркурий MS-K
Ответить
Аватара пользователя
Leslov
Сообщения: 17
Зарегистрирован: 30 сен 2016, 13:52

Пара вопросов по разработке ПО для взаимодействия с кассой

Сообщение Leslov »

Здравствуйте, я разрабатываю ПО для взаимодействия с кассой. На руках имеется касса Меркурий 119Ф с МГМ. У меня возникли несколько вопросов:
1) Можно ли как нибудь получить логи обмена данными с кассой через программу "Панель управления ККТ"?
2) Как выполнить печать кассового чека? На других кассах есть возможность открытия чека, добавления позиций и закрытия чека. На этой же кассе, судя по Руководству по программированию, можно лишь вызывать печать кассового чека, в итоге совершенно не понятно, как печатать кассовый чек с несколькими позициями.
Аватара пользователя
slan
Сообщения: 1157
Зарегистрирован: 18 фев 2011, 11:36
Откуда: Курск

Re: Пара вопросов по разработке ПО для взаимодействия с кассой

Сообщение slan »

Попробую ответить по п.2: В руководстве же описан реквизит 1059, это и есть позиция товара. Соответственно если нужно напечатать 2 позиции, добавляете этот реквизит два раза в документ.
Аватара пользователя
Leslov
Сообщения: 17
Зарегистрирован: 30 сен 2016, 13:52

Re: Пара вопросов по разработке ПО для взаимодействия с кассой

Сообщение Leslov »

Но ведь если выполнять печать чека через "Панель управления ККТ", то там есть возможность отдельной печати каждой позиции, а также чек закрывается отдельной командой, о которой в руководстве ни слова.
Аватара пользователя
slan
Сообщения: 1157
Зарегистрирован: 18 фев 2011, 11:36
Откуда: Курск

Re: Пара вопросов по разработке ПО для взаимодействия с кассой

Сообщение slan »

В руководстве также ни слова о том, что все реквизиты этой команды должны быть переданы в одном пакете. Передавайте отдельно реквизиты для каждой позиции, а затем оставшиеся реквизиты, и будет вам печать отдельно каждой позиции, а после закрытие чека.
Аватара пользователя
Leslov
Сообщения: 17
Зарегистрирован: 30 сен 2016, 13:52

Re: Пара вопросов по разработке ПО для взаимодействия с кассой

Сообщение Leslov »

А какой командой закрывать чек? В руководстве на этот счет пусто.
Аватара пользователя
slan
Сообщения: 1157
Зарегистрирован: 18 фев 2011, 11:36
Откуда: Курск

Re: Пара вопросов по разработке ПО для взаимодействия с кассой

Сообщение slan »

Закрытие чека будет осуществлено как только вы правильно передадите все обязательные реквизиты команды.
p.s. можно поинтересоваться - а зачем вам такой тип работы? Ведь при этом чек будет печататься в несколько заходов, т.е. будет дергаться принтер несколько раз. Не проще ли собрать весь чек в буфер (все обязательные реквизиты), а затем передать целиком его на устройство?
Аватара пользователя
Leslov
Сообщения: 17
Зарегистрирован: 30 сен 2016, 13:52

Re: Пара вопросов по разработке ПО для взаимодействия с кассой

Сообщение Leslov »

Вопрос по логам все также актуален.
Аватара пользователя
Leslov
Сообщения: 17
Зарегистрирован: 30 сен 2016, 13:52

Re: Пара вопросов по разработке ПО для взаимодействия с кассой

Сообщение Leslov »

В итоге использовал сторонний сниффер для чтения логов.
По логам выяснил, что добавление позиции происходит командой Документ (0x53) с индексом 4, с передачей реквизита товара 1059. Закрытие чека производится той же командой, но с передачей реквизитов пользователя 1021, налоговой ставки 1055 (об этом реквизите в документации ни слова), признака расчета 1054, сумма наличными 1031, сумма электронными 1081.
Аватара пользователя
slan
Сообщения: 1157
Зарегистрирован: 18 фев 2011, 11:36
Откуда: Курск

Re: Пара вопросов по разработке ПО для взаимодействия с кассой

Сообщение slan »

Вы бы читали внимательнее документацию. Всё необходимое там есть. Вот скрин по первым двум найденным Вами параметрам. Есть там и остальные.
Изображение
Аватара пользователя
Leslov
Сообщения: 17
Зарегистрирован: 30 сен 2016, 13:52

Re: Пара вопросов по разработке ПО для взаимодействия с кассой

Сообщение Leslov »

slan писал(а):Вот скрин по первым двум найденным Вами параметрам. Есть там и остальные.
Вы не видите суть проблемы. Я нашел не эти параметры, а необходимые реквизиты для определенных операций. В первый раз я попробовал провести документ со всеми "обязательными" (судя по документации) реквизитами, но ничего не вышло.
slan писал(а):Вы бы читали внимательнее документацию. Всё необходимое там есть.
О, да неужели?
1) Почему же я тогда смог выполнить команду без передачи всех обязательных реквизитов?
2) Где в документации информация о том, как произвести закрытие чека и добавление позиции? Касса это может.
3) Где в документации информация о реквизите 1055? А ведь он обязательный для закрытия чека.
Изображение
Аватара пользователя
slan
Сообщения: 1157
Зарегистрирован: 18 фев 2011, 11:36
Откуда: Курск

Re: Пара вопросов по разработке ПО для взаимодействия с кассой

Сообщение slan »

Leslov, давайте проясним ситуацию (дабы Вы не пытались меня в дальнейшем уличить непонятно в чем): я точно так же как и Вы писал софт по этой документации, я не составитель этой документации и не имею отношения к разработке протокола.
Теперь конкретнее по Вашим вопросам:
1. Команду можно выполнить и передав 1 реквизит, но чек закрыт не будет. Будет порционное оформление чека.
2. Как я уже Вам писал ранее , в руководстве есть информация о том как напечатать чек. Открытие, добавление позиции, закрытие - это команды более высокого уровня, которые можно реализовывать, а можно и не реализовывать в своем софте. Для закрытия чека необходимо передать все обязательные реквизиты. Не передав их - чек не закроете.
3. Здесь. Похоже Вы используете документацию к прошивке 1.0, я связывался с разработчиком, он сказал что в ней опечатка.
Изображение
Аватара пользователя
Leslov
Сообщения: 17
Зарегистрирован: 30 сен 2016, 13:52

Re: Пара вопросов по разработке ПО для взаимодействия с кассой

Сообщение Leslov »

Понятно, благодарю за пояснения. Непривычно пользоваться такой скромной документацией после огромной документации для АТОЛа.
Аватара пользователя
Philya
Сообщения: 27
Зарегистрирован: 05 фев 2016, 10:02

Re: Пара вопросов по разработке ПО для взаимодействия с кассой

Сообщение Philya »

Чтобы не плодить темы. Задам свой вопрос здесь. Подключаем регистратор через USB. В документации есть следующий абзац:
Конечная точка 0H используется для: - обнаружения, конфигурирования USB устройства (стандартные запросы); - передачи управляющих команд и чтения состояния USB устройства (запросы производителя).

Состояние устройства считывается запросом к конечной точке с адресом 0H. При готовности устройства к приёму данных (код 00H), команда протокола записывается в конечную точку с адресом 02H, затем компьютер переходит к запросам состояния устройства и готовности данных ответа устройства к конечной точке с адресом 0H.
Пробую сделать запрос к endpoint0 с

bmRequestType = 11000001 // Device to Host + Vendor + Interface
bRequest = 0
wValue = 0
wIndex = 0
wLength = 0

чтобы получить состояние устройства. Но происходит ошибка. Нельзя-ли уточнить параметры к endpoint0 для получения состояния устройства?
Аватара пользователя
slan
Сообщения: 1157
Зарегистрирован: 18 фев 2011, 11:36
Откуда: Курск

Re: Пара вопросов по разработке ПО для взаимодействия с кассой

Сообщение slan »

Почему у вас все параметры в нулях?
Изображение
Аватара пользователя
Philya
Сообщения: 27
Зарегистрирован: 05 фев 2016, 10:02

Re: Пара вопросов по разработке ПО для взаимодействия с кассой

Сообщение Philya »

Спасибо. Угадать что запрос это 0xfd - было сложно. )

Все параметры в нулях потому что инструкции, из которой вы взяли табличку, я найти не смог.

Мне доступно только руководство по программированию

http://incotexkkm.ru/attachments/54-fz/ ... -50_rp.pdf

Выложите эту инструкцию куда-нибудь.
Аватара пользователя
slan
Сообщения: 1157
Зарегистрирован: 18 фев 2011, 11:36
Откуда: Курск

Re: Пара вопросов по разработке ПО для взаимодействия с кассой

Сообщение slan »

Выкладываю сюда
Вложения
USB интерфейс руководство по программированию.doc
USB интерфейс
(132.5 КБ) 289 скачиваний
Ответить