Имя: Пароль:
IT
Админ
Сканер штрих-кодов через RDP
0 igel1969
 
09.04.20
09:03
Здравствуйте!

Проблему решил, нашел на другом форуме, просто хочу поделиться, чтобы другие бедолаги не мучались как я.

Итак, имеем сканер АТОЛ SB2108 Plus и RDP. Сканируем коды маркировки DataMatrix с сигарет.
На локальном компе все работает нормально, а через RDP случайным обраом меняется регистр некоторых букв.
Вот пример разных сканирований одного и того же кода:
000000462094748.jDj60ACZacPCq
000000462094748.jdj60aCzacpcq
000000462094748.JdJ60aczacpcq
000000462094748.Jdj60aczAcpcq
000000462094748.JDj60acZAcPcq
000000462094748.JDj60ACZACPCq
000000462094748.JDj60ACzAcpcq
000000462094748.JDJ60aczacpcq
000000462094748.jdj60aczacpCQ
000000462094748.Jdj60aczacPcq
000000462094748.Jdj60aczacpcq

Решение:
Надо при подключении RDP открыть параметры, закладку «Локальные ресурсы»
и в поле «Использовать сочетания клавиш Windows» установить «На этом компьютере».
После этого все работает нормально.
1 vfire1000
 
09.04.20
11:01
Спасибо!
2 skambenner
 
09.04.20
11:36
(0) Дайте свой контакт или напишите на почту (из профиля)
Работаем с табачкой. Есть вопросы по АПИ и сканированию datamatrix(тоже были проблемы)
3 igel1969
 
09.04.20
12:14
(2) написал
4 dima_home
 
09.04.20
13:13
Здравствуйте.
Уже давно бьюсь с ЦРПТ по данной тематике: неправильное сканирование кодов маркировки.
Вот мой случай - копия обращения в ЦРПТ:
"Здравствуйте.

При попытке отгрузки через ЭДО
увидели отказ приема документа УПД
№219 ОТ 16.03.2020 (4e89f2afadd0) на сумму = ******* (приложен).

Причина отказа - дезагрегация короба
"011461003014152421001213580051060003750" с сигаретами
из-за выбытия пачки "046100301415270000Hd,".

Анализ обстоятельств показал:

На заводе **** выпущены в разное
время пачки сигарет с маркировкой:
"046100301415270000Hd?AB0oОnE1"
"046100301415270000Hd,AB0ogaL5"

Пачка сигарет с маркировкой
"046100301415270000Hd,AB0ogaL5" лежала на складе в
составе короба "011461003014152421001213580051060003750" до отгрузки 16.03.2020.
Пачка сигарет с маркировкой
"046100301415270000Hd?AB0oОnE1" была продана ранее в оборот: ООО *** >> ООО **** >> ИП ****.

У конечного продавца (ИП ****)
была осуществлена розничная продажа
пачки "046100301415270000Hd?AB0oОnE1" с передачей в
ОФД, где 2D сканер, как мы думаем,
неверно распознал дата-матрикс код и
вместо "?" (вопросительный знак)
передал в ККМ "," (запятую). В
результате в ОФД ушел код
"046100301415270000Hd,AB0oОnE1".

В свою очередь ЦРПТ приняла такой код
и дезагрезировала короб у ООО *** с
входящей в нее другой похожей пачкой
"046100301415270000Hd,AB0ogaL5", несмотря на то, что
у нее другой криптохвост."


Ответа нет до сих пор.
5 timurhv
 
09.04.20
19:19
(4) Нормально так :) но криптохвост же никуда не передается (если сделано по аналогии с обувью).
6 Garykom
 
гуру
09.04.20
19:28
(4) Эти две пачки имеют разные sgtin ОnE1<>gaL5 (да один gtin и начало serial схожее) и владелец не тот с какого фига оно разагрегировала?
7 Garykom
 
гуру
09.04.20
19:32
(6)+ Я к тому что ошибка считывания DataMatrix (14 цифр gtin + 13 символов serial) должна приводить к тому то уходит неверный код stgin в ЦРПТ.
Если такого кода не числится за конкретной организацией в месте деятельности - происходит отказ операции.

Если числится ну да произошел пересорт, найти его и когда надо реализовать сделать обратную подмену
8 Злопчинский
 
09.04.20
21:07
так давно известно, что XP порка что вообще на криптохвост не смотрит. тупо его отрбрасывает. по крайней мере было так, может допилили до ума/ужесточикли уже
9 MWWRuza
 
гуру
09.04.20
21:26
(0) и в поле «Использовать сочетания клавиш Windows» установить «На этом компьютере».

Опять сканер в режиме клавиатуры... Мыши плакали, кололись, но все равно продолжали есть кактус.
Если использовать режим эмуляции com-порта, то таких проблем в принципе не возникает. По RDP com-порт пробрасывается нормально, в сеансе как родной живет, будто локально подключен. И в локалке, и через и-нет.
10 dima_home
 
10.04.20
18:42
(6) ЦРПТ сообщает. Они не контролируют крипто хвосты, они могут быть любыми.
При сканировании, у покупателя произошла подмена одного символа "." на ",". Этот символ попал на серийный номер пачи.
После того как код был передан ОФД а от туда в ЦРПТ, они не долго думая нашли в своей базе данных пачку с присланным ЕАН и серийным номером и отразили у себя выбытие этой пачки, дезагрегировав короб и паллет, где она хранилась.

Мы написали об этом в суппорт. Сегодня даже на собрании с минпромторгом об этом заявил. Сказали будут думать.
11 dima_home
 
10.04.20
18:49
Опечатался выше: надо с "?" на ","

Про проверку криптохвостов.
ЦРПТ не проверяет криптохвосты СОВСЕМ! Как говорят, у них нет алгоритмов, поскольку криптохвосты генерируется не ими.

Проведите простой эксперимент в приложении "честный знак".
Возите код пачки и напишите в конце любые 4 символа... пачка будет подлинной.
046100301415270000Hd?AB0o0000
046100301415270000Hd?AB0oFACK
12 dima_home
 
10.04.20
18:52
(9) "Если использовать режим эмуляции com-порта, то таких проблем в принципе не возникает."
Ну-счастье в неведение.
13 MWWRuza
 
гуру
10.04.20
19:24
(12) Ну-счастье в неведение.

Не в неведении - а в собственном опыте. С клавиатурными, еще когда только ЕГАИС начался, я проблем огреб, выше крыши... При чем, на пустом месте. Не проходили продажи, именно из-за подмены символов клавиатурными сканерами. При чем безсистемно... Вдруг, ни с того-ни с сего, и не всех, а каких-то случайно. Замена способа подключения с USB=>КБ на USB=>COM, в 100% случаев, решала проблему. Если у Вас другой опыт - ну, поделитесь, будем знать...
14 Garykom
 
гуру
10.04.20
19:40
(11) Криптохвосты даже не используются в API ЧЗ чаще всего
15 Сияющий в темноте
 
10.04.20
23:11
Криптохвосты должен проверять специально придуманный для этого ФН-М.
Но,проблема в том,что по существующим протоколам,в ККТ передается уже обрезанный код,так как так изначально повелось.
опять же,ФН-М должен проверять при продаже,а не при приемке,но если при приемке товар принят и накладная подтверждена,то очень сложно будет обьяснить всем,что там неправильный криптохвост,поэтому про него просто забыли.
а ККТ передает в ОФД уже сформированный чек,не принять его нельзя,поэтому,все осталось,как есть.
но,можно же было добавить просто контрольный символ,чтобы не было маразма.
16 dima_home
 
15.04.20
13:26
(15) Мы обращались в ЦРПТ с этой проблемой. Предлагали насильно внедрить контрольный символ в серийный номер для производителей и что важно, опубликовать для всех способ проверки.
Сказали уже ничего менять не будут.
Своим программистам на заводе поставили задачу реализовать механизм нумерации коробов/блоков/пачек так, что бы последний (7седьмой) символ в серийном номере являлся контрольной суммой от ЕАН+СерийныйНомер(6симвлов). По крайной мере будем осуществлять проверку в своих учетных системах -  СвойПроизводитель-СвойПервыйПокупатель-СвояСеть

Для коробов это проверка на ошибку 1/10 так как там только цифры в серийном номере, для вот для блоков и пачек сигарет будет проверка 1/80, так как там 80ричная запись (буквы+цифры+символы) в серийном номере.
17 Garykom
 
гуру
15.04.20
13:27
(16) serial в табачке всего 7 символов?
18 dima_home
 
15.04.20
13:35
(17) да
Для пачек и блоков:
Serial Number Length [no. of chars]=7. Serial Number – identification code generated by manufacture from GS1’s 80 character set

Для коробов производителя сами назначают, но рекомендация 7 символов
AI = 21
Serial Number = Length [no. of chars]=7 Serial Number, from GS1’s 82 character set
<FNC1>
Хотя ограничения нет использовать только цифры, многие производители придерживаются цифрового стандарта CODE128 для совместимости с автоматическими складами и печатают в виде обычного линейчатого штрихкода.
19 dima_home
 
15.04.20
13:42
Подолью масла в огонь ))

Выписка из переписки с ЦРПТ:
"...
Хотя мы всегда считали это невозможным, но беседуя с разработчиком POS системы, это обстоятельство было подтверждено. Программистам разработчика POS система удалось повторить неправильное чтение отдельных символов дата-матрикс кода сканером метролоджик, подключенного как клавиатура при включенной русской раскладке на pos системе. Это возможно проблемы конкретных POS или конкретного способа подключения сканера, а возможно имеет массовые случаи...сейчас мы не знаем. В любом случае, в ККМ отправлялись на продажу ложные коды маркировки, содержащие отдельные неправильные символы, а ОФД их отправляла в ЦРПТ, который также, не проверяя, выводил из оборота, если таковые серийные номера существовали.


Какие можно сделать выводы:

У кодов маркировки отсутствуют контрольные суммы, доступные для анализа POS системам. Соответственно разработчики POS систем и систем ЭДО не могут контролировать правильность внесения кодов маркировки. Единственная надежда, что сам ЦРПТ будет проверять крипто-хвосты хотя бы блоков и пачек. Но как видим, пока это не производится.

Даже если предположить, что дата-матрикс в будущем всегда будет сканироваться без ошибок, всегда возможен ручной ввод кодов маркировки и ошибки при ручном вводе именно серийного номера - неизбежны.

Поскольку ЦРПТ не проверяет крипто-хвосты и генерит серийный номер не случайным образом, а по порядку, то можно просто ПАРАЛИЗОВАТЬ ВСЮ РАБОТУ ЦРПТ ИЛИ КОНКРЕТНОГО КОНКУРЕНТА. Как? да просто... генерировать чеки с подряд идущими серийными номерами (для каждой 500-сотой пачки) и отравить их в ОФД как продажу за 1 копейку. Таким способом можно вести борьбу с КОНКУРЕНТАМИ-ПРОИЗВОДИТЕЛЯМИ, разагрегировав все короба конкурента создав проблемы для их дальнейшего использования.

Примечательно, что коды маркировки для КОРОБов, вообще не имеют ни каких проверочных крипто-хвостов и нумерация у большинства производителей идет по порядку.
..."

Вот такая вот нас ожидает "пандемия" в обороте сигарет с 01.07.2020.
20 dima_home
 
15.04.20
14:47
(13) "Замена способа подключения с USB=>КБ на USB=>COM, в 100% случаев, решала проблему".

Вы правы... подключение через клавиатуру сразу проявляет проблему перекодировки, если таковая имеется.

НО...

Что в буфер клавиатуры, что в COM проводник, сканер передает код ASCII символа.
В первом случае сканер передает код в буфер клавиатуры, где операционная система его преобразует в соответствии с текущей кодировкой подставляя в активное поля ввода.
Во втором случае, этим занимается конечное ПО, которое обрабатывает событие, вызванное драйвером сканера, и так же обрабатывает полученный ASCII код по своим таблицам преобразования.
В последнем случае обязанность на правильное преобразование символа возложено на используемое конечное ПО, а его так же разрабатывали люди и они так же могут ошибаться.
21 dima_home
 
24.04.20
16:09
Оп. перехвачен новый случай

Получен от сканера и опознан как ошибочный: 4301415270000Hg5AB0oMPf/
фактически был: 046100301415270000Hg5AB0oMPf/
22 Garykom
 
гуру
24.04.20
16:48
(19) >Таким способом можно вести борьбу с КОНКУРЕНТАМИ-ПРОИЗВОДИТЕЛЯМИ, разагрегировав все короба конкурента создав проблемы для их дальнейшего использования.

Хрень это, в ЦРПТ просто проверку включат на владельца текущего. И фиг ты что разагрегируешь чужое.
А может она уже и есть и это только внутри одного владельца прокатывает.
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн