КАЗНАЧЕЙ

ФОРУМ "КАЗНАЧЕЙ" => Настройка ККТ "Казначей" => Тема начата: Валерий от июн 23, 2017, 15:38

Название: Ошибка -3804 "Неверное количество"
Отправлено: Валерий от июн 23, 2017, 15:38
Здравствуйте, есть вопрос по драйверу ДТО 9.9.1, ККМ Казначей ФА, версия для linux x64, C++ интерфейс. Я пытаюсь напечатать простой пробный чек, в одном случае у меня это получается, а другом нет. Код практически идентичен, но во втором случае при регистрации первой позиции в чеке, метод Registration(), появляется ошибка -3804 "Неверное количество", хотя количество точно такое, как и в первом случае - 1. Не могу понять, в чем проблема. Прикрепляю полные логи драйвера для первого случая - good_log.txt, и для второго - bad_log.txt.
По совету техподдержки обновил прошивку Казначея с 3377 до 4093, драйвер с 9.9.1 до 9.10.0, проблема не исчезла.
Что подскажете? Может я что-то неправильно делаю, какие-то не те параметры ставлю, хотя в первом случае оно все-таки работает, чек печатается, ошибок нет.
Название: Re: Ошибка -3804 "Неверное количество"
Отправлено: Тех.Поддержка от июн 23, 2017, 18:19
Валерий, прикрепите пожалуйста логи из ДТО 9.10. Уточните, полную версия ОС и её разрядность. А также какие библиотеки используете, т.е. из какой папки их запускаете?
Название: Re: Ошибка -3804 "Неверное количество"
Отправлено: Валерий от июн 26, 2017, 09:52
ОС Linux Mint 18 4.4.0-21-generic x86_64
Библиотеки libfptr.so, libudev.so.0, libusb-1.0.so.0 лежат в папке с исполняемым файлом put_DeviceSingleSetting() SearchDir = ./
Название: Re: Ошибка -3804 "Неверное количество"
Отправлено: Тех.Поддержка от июн 26, 2017, 15:56
Я хотел узнать библиотеки из какой папки из ДТО 9.10 берете?

Используют ли Вы библиотеку decnumber?

Я правильно понимаю, Вы пробиваете несколько чеков подряд, ничего при этом не меняете, один чек пробивается, второй чек не пробивается, выходит ошибка? Так как ситуация у вас повторяется, при каких условиях это повторяется?
Название: Re: Ошибка -3804 "Неверное количество"
Отправлено: Валерий от июн 26, 2017, 17:40
Библиотеки беру из папки linux-x64, decnumber не использую.
Есть 2 исполняемых файла, один - демка, она просто печатает чек, написал ее, чтоб попробовать и понять, как пользоваться драйвером, чек печатается нормально. Пример из документации драйвера тоже работает нормально. Переношу этот кусок кода в другой проект - не работает, выдает ошибку при вызове метода Registration(), последовательность вызова методов и параметры точно такие, флаги компиляции тоже. После установки значения ifptr->put_Quantity(1) специально проверяю значение ifptr->get_Quantity(), возвращает 1, как и положено, но при вызове Registration() ошибка - "Неправильное количество".
Название: Re: Ошибка -3804 "Неверное количество"
Отправлено: Тех.Поддержка от июн 27, 2017, 16:42
Валерий, выясняем причину такого поведения, нужен работающий и неработающий код целиком.
Название: Re: Ошибка -3804 "Неверное количество"
Отправлено: Тех.Поддержка от июн 29, 2017, 12:41
Валерий, ждём от Вас работающий и неработающий код целиком, необходим разработчикам для анализа, пришлите пожалуйста на нашу почту - ask@kaznachej.com
Название: Re: Ошибка -3804 "Неверное количество"
Отправлено: Валерий от июн 29, 2017, 13:58
Код целиком, к сожалению, не могу. Работающий код полностью аналогичен примеру из документации, по неработающему могу описать последовательность вызов методов и значения параметров, которые вытащил из лога(в прищепке), кроме вызовов этих методов там больше ничего особенного не происходит.
Временно решил проблему тем, что вместо вызова метода Registration() посылаю команду <E6h> "Регистрация позиции" с помощью метода RunCommand(), работает без ошибок, чек печатается.
Название: Re: Ошибка -3804 "Неверное количество"
Отправлено: Тех.Поддержка от июл 03, 2017, 13:04
Т.к. баг фантомный - то код работает, то код не работает с одинаковыми методами (только проекты разные), а неработающего кода нет, на данный момент разработчикам трудно понять в чем проблема. Возможно, что неработающий проект как-то криво собрался.

По поводу команды E6, мы не рекомендуем её использовать. Для добавления позиции используйте команду комплексной регистрации позиции EA - EB.
Название: Re: Ошибка -3804 "Неверное количество"
Отправлено: kuzin от июл 05, 2017, 16:24
Была похожая проблема, когда пытался передать целое число в поле Quantity (вместо вещественного).
Название: Re: Ошибка -3804 "Неверное количество"
Отправлено: Тех.Поддержка от июл 28, 2017, 11:54
Вышла новая версия ДТО 9.10.1 Просьба протестировать работу с данным драйвером. Скачать можно здесь (https://xn--80aapgmbx5f.xn--80asehdb/download.html).