Служба INECRMAN (Incotex ECR Manager)

Здесь можно скачать последние обновления программного обеспечения.
Раздел только для размещения материалов по темам работы конструкторского бюро (КБ).
Аватара пользователя
Oleg1968
Сообщения: 49
Зарегистрирован: 25 апр 2017, 10:46

Re: Служба INECRMAN (Incotex ECR Manager)

Сообщение Oleg1968 »

bigjorj писал(а): 06 мар 2020, 10:18 Клиенты начали жаловаться что на новом драйвере с прошивкой безнал пробивается как наличные. Прошу проверить.
передаем согласно протокола
”payment”: {
”cash”: 0,
”ecash”: 300
}
Такая же история:)

Теги:
Аватара пользователя
Help5
Сотрудник Инкотекс
Сотрудник Инкотекс
Сообщения: 835
Зарегистрирован: 18 янв 2019, 09:42

Re: Служба INECRMAN (Incotex ECR Manager)

Сообщение Help5 »

Поправили, переустановите службу
Аватара пользователя
Oleg1968
Сообщения: 49
Зарегистрирован: 25 апр 2017, 10:46

Re: Служба INECRMAN (Incotex ECR Manager)

Сообщение Oleg1968 »

сейчас норм.Спасибо!
Аватара пользователя
Led23
Сообщения: 1
Зарегистрирован: 07 мар 2020, 03:03

Re: Служба INECRMAN (Incotex ECR Manager)

Сообщение Led23 »

Доброго времени суток! Очень давно ждал возможность использовать Меркурий 115Ф, как ФР и благодарен, что она наконец появилась.

Хочу внести несколько предложений по последующим версиям ПО
1. Возможность не печатать бумажные чеки для 115Ф
2. Возможность в конфигах отключить показ Логотипа и уровень зарядки при включении. При работе ККТ в режиме ФР, хочется полностью управлять ей с помощью ПК, а так при включении приходится привлекать кассира к нажатию кнопки "ИТ".


P.S: Если выбрал не тот топик, буду благодарен, если меня направят в верный.
Аватара пользователя
cso-kerch
Сообщения: 6
Зарегистрирован: 07 мар 2020, 15:44

Re: Служба INECRMAN (Incotex ECR Manager)

Сообщение cso-kerch »

"внесение и выемка денежных средств" попробовали провести, после этого не работает х-отчет, говорит о ошибке фн, все остальное продолжает работать, после закрытия смены х-отчет снова доступен
Аватара пользователя
RDM
Сообщения: 437
Зарегистрирован: 05 мар 2011, 15:33
Откуда: Тамбов

Re: Служба INECRMAN (Incotex ECR Manager)

Сообщение RDM »

Служба INECRMAN для ФР Меркурий 119Ф нужна? или достаточно компоненты merc119f_1_0. при работе с 1С
Аватара пользователя
s.trikozin
Сообщения: 11
Зарегистрирован: 13 янв 2020, 13:32

Re: Служба INECRMAN (Incotex ECR Manager)

Сообщение s.trikozin »

1.6.0.299 (06.03.2020) - Ну теперь DrWeb при установке ругается на инфицированный контейнер...
Аватара пользователя
LeonidT
Сотрудник Инкотекс
Сотрудник Инкотекс
Сообщения: 396
Зарегистрирован: 18 окт 2019, 17:45

Re: Служба INECRMAN (Incotex ECR Manager)

Сообщение LeonidT »

RDM писал(а): 10 мар 2020, 08:39 Служба INECRMAN для ФР Меркурий 119Ф нужна?
Компонента входит в состав службы, поэтому при её установке из 1С установится всё необходимое.
Аватара пользователя
NikitaGBS
Сообщения: 1
Зарегистрирован: 11 мар 2020, 15:22

Re: Служба INECRMAN (Incotex ECR Manager)

Сообщение NikitaGBS »

Здравствуйте! Отправляю по адресу localhost:50010 следующий JSON:

Код: Выделить всё

{"command":"OpenSession","sessionKey":null,"portName":"COM1","model":"185F"}
в формате пакета байтов со смещением:

Код: Выделить всё

48 48 55 54 123 34 99 111 109 109 97 110 100 34 58 34 79 112 101 110 83 101 115 115 105 111 110 34 44 34 115 101 115 115 105 111 110 75 101 121 34 58 110 117 108 108 44 34 112 111 114 116 78 97 109 101 34 58 34 67 79 77 49 34 44 34 109 111 100 101 108 34 58 34 49 56 53 70 34 125
Но ответ приходит
{"result": 0}, и sessionKey, к сожалению, нет.

Вот фрагмент запроса:

Код: Выделить всё

  httpWebRequest.ContentType = "application/json";
                httpWebRequest.Method = "POST";
                httpWebRequest.Timeout = 120_000;
                httpWebRequest.ReadWriteTimeout = 120_000;
                httpWebRequest.KeepAlive = false;

                using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
                {
                    var ct = JsonConvert.SerializeObject(command, Formatting.None);
                    var jsonByte = Encoding.UTF8.GetBytes(ct);
                    var lengthByte = Encoding.UTF8.GetBytes((jsonByte.Length.ToString().PadLeft(4, '0')));

                    var send = lengthByte.Concat(jsonByte).ToArray();

                    var baseLine = string.Join(" ", send);
                    LogHelper.Debug(baseLine);
                    
                    streamWriter.Write(send);
                }

                //Thread.Sleep(30 * 1000);

                var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();

                using (var streamReader =
                    new StreamReader(httpResponse.GetResponseStream() ?? throw new InvalidOperationException()))
                {
                    command.Answer = streamReader.ReadToEnd();
                }
Аватара пользователя
LeonidT
Сотрудник Инкотекс
Сотрудник Инкотекс
Сообщения: 396
Зарегистрирован: 18 окт 2019, 17:45

Re: Служба INECRMAN (Incotex ECR Manager)

Сообщение LeonidT »

s.trikozin писал(а): 10 мар 2020, 21:14 DrWeb при установке ругается на инфицированный контейнер
Да, проверили в ВирусТотал, одному DrWeb в сборках VisualStudio последнего релиза что то не нравится.
Разбираемся.
Аватара пользователя
AntonR
Сотрудник Инкотекс
Сотрудник Инкотекс
Сообщения: 274
Зарегистрирован: 28 янв 2020, 15:18

Re: Служба INECRMAN (Incotex ECR Manager)

Сообщение AntonR »

NikitaGBS, Здравствуйте.
Запросы нужно посылать на порт 50009. Причем в формате: первые 4 байта - длина пакета, далее сам JSON. См. п. 2.1 в протоколе обмена. Порт 50010 служебный. На нем не получится успешно взаимодействовать со службой.
Аватара пользователя
Eugenu
Сообщения: 19
Зарегистрирован: 09 янв 2018, 08:06

Re: Служба INECRMAN (Incotex ECR Manager)

Сообщение Eugenu »

в description прилетают немного корявые ответы в следуюзих вариантах:
при открытии смены, когда смена уже открыта
при закрытии смены, когда смена уже закрыта
Изображение
Изображение
Аватара пользователя
LeonidT
Сотрудник Инкотекс
Сотрудник Инкотекс
Сообщения: 396
Зарегистрирован: 18 окт 2019, 17:45

Re: Служба INECRMAN (Incotex ECR Manager)

Сообщение LeonidT »

Строка ошибки для индикатора. Спасибо, поправим в следующем релизе.
Аватара пользователя
Eugenu
Сообщения: 19
Зарегистрирован: 09 янв 2018, 08:06

Re: Служба INECRMAN (Incotex ECR Manager)

Сообщение Eugenu »

Похоже что-то с последней прошивкой портативных ККТ
Меркурий-115Ф. прошивка 28.02.2020
формируем чек из ПО
добавляем позиции
указываем кассира Иванов И.И. - параметр cashierName
в кассе в операторах 1-й кассир запрограммированПетров П.П.
отбиваем чек.
В печатной форме на чеке кассир Иванов И.И.(то есть тот что посылаем из ПО), а в электронной форме(в ОФД) ст.кассир Петров П.П., то есть тот что запрограммирован в кассе в разделе ОПЕРАТОРЫ :rolleyes2:

Update
если оператор не запрограммирован, то в ОФД улетает пустая строка. На кассовой ленте, то что посылаем в команде
Аватара пользователя
LeonidT
Сотрудник Инкотекс
Сотрудник Инкотекс
Сообщения: 396
Зарегистрирован: 18 окт 2019, 17:45

Re: Служба INECRMAN (Incotex ECR Manager)

Сообщение LeonidT »

Исправлено. Обновим релиз на следующей неделе.
Аватара пользователя
Eugenu
Сообщения: 19
Зарегистрирован: 09 янв 2018, 08:06

Re: Служба INECRMAN (Incotex ECR Manager)

Сообщение Eugenu »

Help5 писал(а): 17 дек 2019, 13:49 Применяемые средства разработки и технологии от Microsoft по умолчанию не поддерживают ХР. В будущем подумаем как решить проблему.
а этот вопрос рассматривается?
Аватара пользователя
LeonidT
Сотрудник Инкотекс
Сотрудник Инкотекс
Сообщения: 396
Зарегистрирован: 18 окт 2019, 17:45

Re: Служба INECRMAN (Incotex ECR Manager)

Сообщение LeonidT »

Пока нет, в приоритетах много других задач. А какие задачи требуют использования компьютеров с ХР - конфигуратор, работа с базами?
Аватара пользователя
Leslov
Сообщения: 17
Зарегистрирован: 30 сен 2016, 13:52

Re: Служба INECRMAN (Incotex ECR Manager)

Сообщение Leslov »

Добрый день. Меркурий 185Ф, при попытке открыть смену касса выдает ошибку 614 "Неизвестная команда". Прошивка от 17.03.2020.

Код: Выделить всё

{
  "sessionKey": "104843-29321",
  "command": "OpenShift",
  "printDoc": true,
  "cashierInfo": {
    "cashierName": "Иванов И.И.",
    "cashierINN": "7707083893"
  }
}
Аватара пользователя
Глеб
Сообщения: 18
Зарегистрирован: 21 ноя 2019, 06:52

Re: Служба INECRMAN (Incotex ECR Manager)

Сообщение Глеб »

Добрый день! Пытаюсь подключить 119f USB. Драйвер USB поставил. Панель ККТ кассу видит, параметры читает/записывает.

Далее пытаюсь подключиться через службу.(Версия ПО: 1.6.0.299). Версия прошивки кассы самая последняя. Версия ПО:2, сборка: 22.

Получаю ошибку {"result":3001,"description":"Ошибка доступа к порту","sessionKey":null,"protocolVer":"3.0"}
Вот лог. Что делаю не так? MercConfig2 пишет тоже самое Код : 3001 Ошибка доступа к порту

[23:25:24.864] Client::on_leng_read() start async_read try read = 171
[23:25:24.864] Client::on_msg_read() readed = 171
[23:25:24.864] Client::on_msg_read() get msg from cli_id = 16
[23:25:24.864] Client::on_msg_read() get msg from client str-buffer - {

"sessionKey": null,

"command": "OpenSession",

"portName": "usb",

"baudRate": 115200,

"model": "119F",

"serialNumber": "",

"debug": true,

"logPath": "c:\\temp"

}
[23:25:24.864] Client::keepalive()
[23:25:24.866] Client::recv_query() swap message up, cli_id = 16
[23:25:24.866] Client::start_leng_read() start leng read = 4 cli_id = 16
VERSION 1.6.0.299
[23:25:24.866] Holder::Holder() Create Holder class with params port = USB baud = 115200 SN =
[23:25:24.867] FRHolder::FRHolder() Create FRHolder class with params port = USB baud = 115200 SN =
[23:25:24.867] FRHolder::FRHolder() switch to USB config
[23:25:24.867] PortExchUSB::PortExchUSB() Create with params portname = USB
[23:25:24.881] PortExchUSB::PortExchUSB() Found usb-devs count = 6
[23:25:24.881] PortExchUSB::Open() USB DEVICE bus = 1 dev = 3
[23:25:24.881] PortExchUSB::Open() USB DEVICE bus = 1 dev = 5
[23:25:24.881] PortExchUSB::Open() USB DEVICE bus = 1 dev = 0
[23:25:24.881] PortExchUSB::Open() USB DEVICE bus = 1 dev = 10
[23:25:24.881] PortExchUSB::Open() USB DEVICE bus = 1 dev = 9
[23:25:24.881] PortExchUSB::Open() Found FR! fr_counter = 1
[23:25:24.881] PortExchUSB::Open() Try open usb-dev
[23:25:24.881] PortExchUSB::Open() RETURN TRUE : Opened!
[23:25:24.881] PortExchUSB::Open() libusb_claim_interface() result : -3
[23:25:24.881] PortExchUSB::PortExchUSB() SUCCESS : Needed device opened!
[23:25:24.881] FRHolder::FRHolder() PortExch created!
[23:25:24.881] FRHolder::FRHolder() ThreadPushForward created!
[23:25:24.881] FRHolder::FRHolder() InExch created!
[23:25:24.881] OfdSender::create() Create shared_ptr<OfdSender>
[23:25:24.881] OfdSender::OfdSender()
[23:25:24.881] OfdSender::OfdSender() InExch created!
[23:25:24.881] FRHolder::FRHolder() OfdSender created!
[23:25:24.881] OfdSender::start_thread() ENTER
[23:25:24.881] OfdSender::start_thread() thread_work set TRUE
[23:25:24.881] OfdSender::start_thread() stop_thread set FALSE
[23:25:24.881] OfdSender::start_thread() EXIT
[23:25:24.881] FRHolder::FRHolder() OfdSender start_thread!
[23:25:24.881] ThreadPushForward::RWFuncForward() ENTER thread_id = 2100 timeout_ms = 3000 main_thread = TRUE
[23:25:24.881] OfdSender::thread_func() ENTER
[23:25:24.881] ThreadPushForward::RWFuncForward() main_work.load() = FALSE
[23:25:24.881] ThreadPushForward::RWFuncForward() sub_work.load() = FALSE
[23:25:24.881] ThreadPushForward::RWFuncForward() LOCK thread_id = 2100 MAIN = true SUB = false
[23:25:24.881] PortExchUSB::WriteFunc() ENTER thread_id = 2100 write_count = 8
[23:25:24.881] PortExchUSB::GetStatus() try get status
[23:25:24.882] PortExchUSB::GetStatus() control_transfer return = -5
[23:25:24.882] PortExchUSB::GetStatus() RETURN FALSE : ERROR = -5
[23:25:24.882] PortExchUSB::WriteFunc() RETURN ERR_USB_READ_STATUS -9 : wrong fr status = 00 00
[23:25:24.882] ThreadPushForward::RWFuncForward() UNLOCK thread_id = 2100 MAIN = false SUB = false
[23:25:24.882] ThreadPushForward::RWFuncForward() RETURN -9
[23:25:24.882] FRHolder::PortIsValid() ENTER
[23:25:24.882] ThreadPushForward::PortIsValid() Try test port
[23:25:24.882] ThreadPushForward::RWFuncForward() ENTER thread_id = 2100 timeout_ms = 500 main_thread = TRUE
[23:25:24.882] ThreadPushForward::RWFuncForward() main_work.load() = FALSE
[23:25:24.882] ThreadPushForward::RWFuncForward() sub_work.load() = FALSE
[23:25:24.882] ThreadPushForward::RWFuncForward() LOCK thread_id = 2100 MAIN = true SUB = false
[23:25:24.882] PortExchUSB::TestPort() ENTER thread_id = 2100
[23:25:24.882] PortExchUSB::TestPort() Try get status of usb-dev
[23:25:24.882] PortExchUSB::GetStatus() try get status
[23:25:24.883] PortExchUSB::GetStatus() control_transfer return = -5
[23:25:24.883] PortExchUSB::GetStatus() RETURN FALSE : ERROR = -5
[23:25:24.883] PortExchUSB::TestPort() read status error, try sleep
[23:25:24.933] PortExchUSB::GetStatus() try get status
[23:25:24.935] PortExchUSB::GetStatus() control_transfer return = -5
[23:25:24.935] PortExchUSB::GetStatus() RETURN FALSE : ERROR = -5
[23:25:24.935] PortExchUSB::TestPort() read status error, try sleep
[23:25:24.985] PortExchUSB::GetStatus() try get status
[23:25:24.987] PortExchUSB::GetStatus() control_transfer return = -5
[23:25:24.987] PortExchUSB::GetStatus() RETURN FALSE : ERROR = -5
[23:25:24.987] PortExchUSB::TestPort() read status error, try sleep
[23:25:24.037] PortExchUSB::GetStatus() try get status
[23:25:24.038] PortExchUSB::GetStatus() control_transfer return = -5
[23:25:24.038] PortExchUSB::GetStatus() RETURN FALSE : ERROR = -5
[23:25:24.038] PortExchUSB::TestPort() read status error, try sleep
[23:25:25.088] PortExchUSB::GetStatus() try get status
[23:25:25.089] PortExchUSB::GetStatus() control_transfer return = -5
[23:25:25.089] PortExchUSB::GetStatus() RETURN FALSE : ERROR = -5
[23:25:25.089] PortExchUSB::TestPort() read status error, try sleep
[23:25:25.140] PortExchUSB::GetStatus() try get status
[23:25:25.142] PortExchUSB::GetStatus() control_transfer return = -5
[23:25:25.142] PortExchUSB::GetStatus() RETURN FALSE : ERROR = -5
[23:25:25.142] PortExchUSB::TestPort() read status error, try sleep
[23:25:25.193] PortExchUSB::GetStatus() try get status
[23:25:25.195] PortExchUSB::GetStatus() control_transfer return = -5
[23:25:25.195] PortExchUSB::GetStatus() RETURN FALSE : ERROR = -5
[23:25:25.195] PortExchUSB::TestPort() read status error, try sleep
[23:25:25.245] PortExchUSB::GetStatus() try get status
[23:25:25.247] PortExchUSB::GetStatus() control_transfer return = -5
[23:25:25.247] PortExchUSB::GetStatus() RETURN FALSE : ERROR = -5
[23:25:25.247] PortExchUSB::TestPort() read status error, try sleep
[23:25:25.298] PortExchUSB::GetStatus() try get status
[23:25:25.299] PortExchUSB::GetStatus() control_transfer return = -5
[23:25:25.299] PortExchUSB::GetStatus() RETURN FALSE : ERROR = -5
[23:25:25.299] PortExchUSB::TestPort() read status error, try sleep
[23:25:25.349] PortExchUSB::GetStatus() try get status
[23:25:25.351] PortExchUSB::GetStatus() control_transfer return = -5
[23:25:25.351] PortExchUSB::GetStatus() RETURN FALSE : ERROR = -5
[23:25:25.351] PortExchUSB::TestPort() read status error, try sleep
[23:25:25.402] PortExchUSB::TestPort() RETURN ERROR = -1 : Status of usb-dev ERROR
[23:25:25.402] ThreadPushForward::RWFuncForward() UNLOCK thread_id = 2100 MAIN = false SUB = false
[23:25:25.402] ThreadPushForward::RWFuncForward() RETURN -1
[23:25:25.402] ThreadPushForward::PortIsValid() Test result = -1
[23:25:25.402] ThreadPushForward::PortIsValid() RETURN FALSE
[23:25:25.402] FRHolder::PortIsValid() RETURN FALSE
[23:25:25.402] PortIsValid false
[23:25:25.402] FRHolder::~FRHolder()
[23:25:25.402] FRHolder::DeInit() try stop OfdSender thread
[23:25:25.402] OfdSender::wait_stop() ENTER timeout = 2000
[23:25:25.402] OfdSender::wait_stop() stop_thread set TRUE
[23:25:27.402] OfdSender::wait_stop() EXIT return = FALSE
[23:25:27.402] FRHolder::DeInit() OfdSender thread stop result = FALSE
[23:25:27.402] Client::send_answer() : message to send - {"result":3001,"description":"Ошибка доступа к порту","sessionKey":null,"protocolVer":"3.0"}
[23:25:27.402] Client::send_answer() write msg post, cli_id = 16
[23:25:27.403] Client::handle_write_post() : get it message to send, cli_id = 16
[23:25:27.404] Client::keepalive()
[23:25:27.404] Client::handle_write_res() write buffer OK! cli_id = 16
[23:25:27.404] Client::handle_write_res() erase message
[23:25:34.882] OfdSender::thread_func() thread_work set TRUE
[23:25:34.882] OfdSender::thread_func() stop_thread set FALSE
[23:25:34.882] OfdSender::thread_func() thread_work set FALSE
[23:25:34.882] OfdSender::thread_func() EXIT
[23:25:34.882] OfdSender::~OfdSender() try stop thread
[23:25:34.882] OfdSender::wait_stop() ENTER timeout = 2000
[23:25:34.882] OfdSender::wait_stop() thread not alive return TRUE
[23:25:34.882] OfdSender::~OfdSender() stop thread result = TRUE
[23:25:34.882] PortExchUSB::~PortExchUSB() libusb_release_interface() result : -5
[23:25:34.882] PortExchUSB::~PortExchUSB() Close usb-dev handle
[23:25:34.882] PortExchUSB::~PortExchUSB() Deinit libusb
[23:25:34.883] PortExchUSB::~PortExchUSB()
Аватара пользователя
Eugenu
Сообщения: 19
Зарегистрирован: 09 янв 2018, 08:06

Re: Служба INECRMAN (Incotex ECR Manager)

Сообщение Eugenu »

Меркурий-115Ф прошивка от 17.03.2020
INECRMAN вер. 1.6.0.299

При выполнении команды addGoods передаём значение productTypeCode 1(или 2), а в ОФД всегда прилетает 4(услуга) :rolleyes2:

При пробитии чека вручную на кассе(не в режиме ФР) в ОФД прилетает корректное заначение типа товара(то что было указано в базе товаров в ККТ)
Ответить