Дополню, возникла следующая проблема: при попытке открыть кассовую смену касса возвращает ошибку "Неизвестная команда", пробовал при закрытой и открытой смене на кассе. Если открывать не через драйвер, а на самой кассе, то открывается нормально. Логи отправил на почту.
Leslov, Здравствуйте.
Судя по логу, служба приняла не полный пакет запроса. Видимо первые 4 байта (размер пакета) неверно составлены. В логе отражено так.
Спасибо, нашел причину ошибки, нужно было вычислять длину набора байтов, а не количество символов в сообщении.
И снова другая проблема: после открытия сессии работы с кассой команда GetStatus прошла нормально, но на команду OpenCheck драйвер выдает ошибку "Неверный ключ сессии", но сессию я не закрывал, сессионный ключ использовал тот же. Если сразу после этого попытаться открыть новую сессию, то выдает ошибку "Сессия открыта другим пользователем". Лог отправил на почту
В документации нашел небольшую ошибку, при закрытии чека драйвер возвращает ответ, где fiscalSign имеет тип string, а в документации указан тип integer.
Добрый день. У меня возникла пара проблем:
1) Поддерживает ли драйвер работу со скидками? В руководстве скидки упоминаются лишь в сумме в описании команды добавления позиции. Пробовал указывать сумму равную цена * количество - скидка, но скидка не применилась и по итогу сумма вышла равной цена * количество.
2) Касса периодически зависает (не реагирует на нажатие кнопок и службу драйвера не удается завершить, даже через диспетчер задач) и ее приходится перезагружать. Лог отправил на почту, проверьте пожалуйста, может быть я что то делаю не так. Последняя запись в лог добавилась в тот момент, когда я отключил зависшую кассу. Возможно это важно, касса была отключена от питания, работала на батарейках. При подключенном питании проблему воспроизвести не удавалось.
Здравствуйте! Столкнулись с проблемой при интеграции модели 185Ф через службу INECRMAN. На все запросы ККТ возвращает один ключ в ответе - это result равный 0. На команду OpenSession соответственно не получаем sessionkey и дальнейшая работа с аппаратом невозможна.
Так же обнаружил что в документации указан порт для отправки запросов 50009, но на этом порту связи нет вообще. Выше указанные ответы приходят после соединения на порт 50010.
Здравствуйте. Порт только 50009! Если нет связи, значит пакет неверно составлен со стороны Вашего ПО. Придерживайте документации. Не забудьте, первый 4 байта размер пакета.
Здравствуйте.
Неожиданно попали в «засаду», о которой просто заранее не подумали и не предусмотрели. В серийном номере табака (в DataMatrix) встретился символ " (двойные кавычки). Драйвер выдал ошибку «Неизвестная команда» и, соответственно, продажа не прошла. Всё правильно и логично , т.к. json-строка получилась некорректной. Поправили алгоритм обработки DataMatrix , чтобы строка соответствовала спецификации Json. Всё стало ОК. А потом решили проверить, а что будет , если в DataMatrix встретится символ \ (обратный слэш). Может такое быть? Допускаем , что может. В Правилах маркировки сказано, что серийный номер (как впрочем МРЦ и код проверки) может состоять из «цифр, строчных и прописных букв латинского алфавита , а также специальных символов».
Так вот. Сгенерили фейковые DataMatrix , в которых в серийнике встречаются символы \. При продаже по данному DataMatrix товар в чеке проходит как обычный Немаркированный, ошибка не выдается, просто продает и всё, что не есть хорошо. Сделали обработку символа \ по спецификации json - ничего не изменилось. Т.е. ключ nomenclature просто игнорируется и товар проходит как Немаркированный. При использовании \u005C товар проходит как маркированный , но в теге 1162 вместо \ какая-то чушь. Не можем понять, что мы делаем не так?
INECRMAN v.1.6.0.353
ККТ Меркурий-115Ф
Прошивка ККТ 17.03.2020
P.S. ' \ ' в наименовании товара по спецификации json обрабатываются нормально
Добрый день. Начал интеграцию меркурия через службу. Уже разобрался с конвертацией передаваемой команды в байты.
Есть несколько вопросов по отправке этого сообщения в сам ФР.
Перечитав всю тему понял , что направлять на порт 50009.
1. Можно ли протестировать работу ФР отправляя запросы через postman? Если ДА, Можете скинуть пример или скрин направляемого запроса? со всеми параметрами.
2. Перед отправкой запросов нужно ли в mercConfig производить подключение к порту?
3. Где ещё могут располагаться логи службы? в папке %appdata% нет логов.
Здравствуйте.
1. Сильно не знаком с postman. Но если он сможет вычислить длину отправляемого пакета JSON и отправить по TCP 4 байта длины, потом сам пакет, то возможно. Стоит учесть, что и ответ будет в таком же формате.
2. Нет, не нужно. Если все поля в команде OpenSession заполнены верно, соединение успешно установится.
3. Логи появляются в %appdata% только при работе через 1С. Другое ПО, которое пишете Вы, само определяет где служба должна разместить логи. Параметр logPath. В документации есть пример.
Добрый день.
При попытке подключить ККТ Меркурий 119Ф в MercConfig2 вываливается ошибка "Порт занят". Хотя в "Панели управления" данные с ККТ считываются и записываются. Установлена служба INECRMAN 1.6.0.353. В диспетчере устройств запись "libusbK Usb Devices". Что делаю не так?
Добрый вечер. Прошу помочь с форматом и типом отправляемого пакета данных в службу. Думаю будет всем полезно если закрепите это на первой страничке.
Разберите пожалуйста с пояснениями на конкретном примере.вместе со смещением и старшим байтом вперед.
Отправляемый JSON:
{"command":"GetDriverInfo"}
Ожидаю ответа в виде пакета байт.