подключение сканера штрих кода к 1с через rdp
Сканер штрих-кодов через RDP
Проблему решил, нашел на другом форуме, просто хочу поделиться, чтобы другие бедолаги не мучались как я.
Итак, имеем сканер АТОЛ 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» установить «На этом компьютере».
После этого все работает нормально.
При попытке отгрузки через ЭДО
увидели отказ приема документа УПД
№219 ОТ 16.03.2020 (4e89f2afadd0) на сумму = ******* (приложен).
Анализ обстоятельств показал:
На заводе **** выпущены в разное
время пачки сигарет с маркировкой:
«046100301415270000Hd?AB0oОnE1»
«046100301415270000Hd,AB0ogaL5»
Пачка сигарет с маркировкой
«046100301415270000Hd,AB0ogaL5» лежала на складе в
составе короба «011461003014152421001213580051060003750» до отгрузки 16.03.2020.
Пачка сигарет с маркировкой
«046100301415270000Hd?AB0oОnE1» была продана ранее в оборот: ООО *** >> ООО **** >> ИП ****.
У конечного продавца (ИП ****)
была осуществлена розничная продажа
пачки «046100301415270000Hd?AB0oОnE1» с передачей в
ОФД, где 2D сканер, как мы думаем,
неверно распознал дата-матрикс код и
вместо «?» (вопросительный знак)
передал в ККМ «,» (запятую). В
результате в ОФД ушел код
«046100301415270000Hd,AB0oОnE1».
В свою очередь ЦРПТ приняла такой код
и дезагрезировала короб у ООО *** с
входящей в нее другой похожей пачкой
«046100301415270000Hd,AB0ogaL5», несмотря на то, что
у нее другой криптохвост.»
Ответа нет до сих пор.
Если числится ну да произошел пересорт, найти его и когда надо реализовать сделать обратную подмену
(0) и в поле «Использовать сочетания клавиш Windows» установить «На этом компьютере».
Опять сканер в режиме клавиатуры. Мыши плакали, кололись, но все равно продолжали есть кактус.
Если использовать режим эмуляции com-порта, то таких проблем в принципе не возникает. По RDP com-порт пробрасывается нормально, в сеансе как родной живет, будто локально подключен. И в локалке, и через и-нет.
(6) ЦРПТ сообщает. Они не контролируют крипто хвосты, они могут быть любыми.
При сканировании, у покупателя произошла подмена одного символа «.» на «,». Этот символ попал на серийный номер пачи.
После того как код был передан ОФД а от туда в ЦРПТ, они не долго думая нашли в своей базе данных пачку с присланным ЕАН и серийным номером и отразили у себя выбытие этой пачки, дезагрегировав короб и паллет, где она хранилась.
Мы написали об этом в суппорт. Сегодня даже на собрании с минпромторгом об этом заявил. Сказали будут думать.
Опечатался выше: надо с «?» на «,»
Про проверку криптохвостов.
ЦРПТ не проверяет криптохвосты СОВСЕМ! Как говорят, у них нет алгоритмов, поскольку криптохвосты генерируется не ими.
Проведите простой эксперимент в приложении «честный знак».
Возите код пачки и напишите в конце любые 4 символа. пачка будет подлинной.
046100301415270000Hd?AB0o0000
046100301415270000Hd?AB0oFACK
(12) Ну-счастье в неведение.
Для коробов это проверка на ошибку 1/10 так как там только цифры в серийном номере, для вот для блоков и пачек сигарет будет проверка 1/80, так как там 80ричная запись (буквы+цифры+символы) в серийном номере.
(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
Хотя ограничения нет использовать только цифры, многие производители придерживаются цифрового стандарта CODE128 для совместимости с автоматическими складами и печатают в виде обычного линейчатого штрихкода.
Подолью масла в огонь ))
Выписка из переписки с ЦРПТ:
«.
Хотя мы всегда считали это невозможным, но беседуя с разработчиком POS системы, это обстоятельство было подтверждено. Программистам разработчика POS система удалось повторить неправильное чтение отдельных символов дата-матрикс кода сканером метролоджик, подключенного как клавиатура при включенной русской раскладке на pos системе. Это возможно проблемы конкретных POS или конкретного способа подключения сканера, а возможно имеет массовые случаи. сейчас мы не знаем. В любом случае, в ККМ отправлялись на продажу ложные коды маркировки, содержащие отдельные неправильные символы, а ОФД их отправляла в ЦРПТ, который также, не проверяя, выводил из оборота, если таковые серийные номера существовали.
Какие можно сделать выводы:
У кодов маркировки отсутствуют контрольные суммы, доступные для анализа POS системам. Соответственно разработчики POS систем и систем ЭДО не могут контролировать правильность внесения кодов маркировки. Единственная надежда, что сам ЦРПТ будет проверять крипто-хвосты хотя бы блоков и пачек. Но как видим, пока это не производится.
Примечательно, что коды маркировки для КОРОБов, вообще не имеют ни каких проверочных крипто-хвостов и нумерация у большинства производителей идет по порядку.
. «
Вот такая вот нас ожидает «пандемия» в обороте сигарет с 01.07.2020.
(13) «Замена способа подключения с USB=>КБ на USB=>COM, в 100% случаев, решала проблему».
Вы правы. подключение через клавиатуру сразу проявляет проблему перекодировки, если таковая имеется.
Что в буфер клавиатуры, что в COM проводник, сканер передает код ASCII символа.
В первом случае сканер передает код в буфер клавиатуры, где операционная система его преобразует в соответствии с текущей кодировкой подставляя в активное поля ввода.
Во втором случае, этим занимается конечное ПО, которое обрабатывает событие, вызванное драйвером сканера, и так же обрабатывает полученный ASCII код по своим таблицам преобразования.
В последнем случае обязанность на правильное преобразование символа возложено на используемое конечное ПО, а его так же разрабатывали люди и они так же могут ошибаться.
Оп. перехвачен новый случай
Получен от сканера и опознан как ошибочный: 4301415270000Hg5AB0oMPf/
фактически был: 046100301415270000Hg5AB0oMPf/
(19) >Таким способом можно вести борьбу с КОНКУРЕНТАМИ-ПРОИЗВОДИТЕЛЯМИ, разагрегировав все короба конкурента создав проблемы для их дальнейшего использования.
Хрень это, в ЦРПТ просто проверку включат на владельца текущего. И фиг ты что разагрегируешь чужое.
А может она уже и есть и это только внутри одного владельца прокатывает.
Подключение нескольких сканеров штрих-кода по rdp (win server 2003, 2008 х64 ) 1Сv8: Управление торговлей 10.3
Для начала все сканеры должны висеть на разных com портах. Поменять номер порта можно в диспетчере устройств, в разделе Порты (COM и LPT) необходимо выбрать нужный порт и вызвать его свойства, там перейти во вкладку «Параметры порта» и по кнопке «Дополнительно» вызвать дополнительные параметры, где можно сменить номер порта. И при подключении к удаленному рабочему столу необходимо убедится что галочка перекидывать порты установлена. На сервере проверить перекинулся ли порт можно командой «change port».
На сервере не забываем установить компоненту «1С: Сканер штрихкода», ну и добавление сканера в самой программме 1С: Управлении торговлей описывать не буду, в этом сложности никакой нет. Но напишу тока, что сканеров будет несколько привязанных к данному компьютеру, т.е. в конфигурации УТ оборудование привязано к конкретному ПК. Если у вас только один сканер то он без проблем должен работать, если порт прокинут конечно))). Но вот если их два и больше могут возникать проблемы с которыми я столкнулся.Проблема была в том что работал только один сканер остальные не работали.
Решение проблемы: После продолжительных танцов с бубнами))), пошел юзать отладчик, и обнаружил интересный код, который находится в обработке «ТОСервер». В нем есть функция «ПодключитьОборудование()», которая пытается подключить в цикле сканеры забитые в базе и привязанные к данному компу.Так вот кусок кода в цикле:
Результат = Обработка.Подключить(Объект);
Если ЗначениеЗаполнено(Результат) Тогда
Возврат Результат;
КонецЕсли;
прикол в том что, при попытке подключить первое обородование в цикле, если она неудачная, то функция возвращала ошибку подключения, даже не пытаясь подключить остальные сканеры из списка.
Вот как я подправил данный фрагмент кода:
//Если ЗначениеЗаполнено(Результат) Тогда
// Возврат Результат;
//КонецЕсли;
Если Результат = Перечисления.ТООшибкиОбщие.ОшибкаПриПодключении Тогда
Продолжить;
КонецЕсли;
После чего все прекрасно заработало, и все были счастливы, особенно я после стольких танцов. Просто даже в голову изначально не приходило, что все из за кода конфигурации. Буду очень рад если кому то данная статья поможет.
Подключение торгового оборудования по rdp.
1. Подключение сканеров Datalogic.
В самом начале, т.к. сканер беспроводной, необходимо подружить сканер с подставкой. Включаем подставку в USB и в соответсвии с руководством пользователя привязываем сканер к базе. Для этого необходимо считать управляющие штрихкоды и ввести ПИН-код сканера из 4-х цифр. Цифры задаём так же считывая штрих коды из таблицы, приведённой в руководстве. Т.к. сканеров у нас было несколько, то для каждого был заведён свой пин-код. После ввода пин-кода сканер сообщит о подключении к подставке радостным пиканьем Далее считываем управляющие штрихкоды для перевода сканера в режим «USB в эмуляции COM» и н а всех рабочих станциях, где подключено оборудование установливаем драйвера эмуляции COM порта. Драйвера брали последние с официального сайта Datalogic. Сканер имеет три режима работы при потери связи с базой:
Режимы настраиваются так же путём считывания управляющих штрихкодов из руководства. При тестировании второй режим не всегда передавал данные, в третьем так же были замечены потери данных при передаче (видимо 1С не успевает отрабатывать поток штрихкодов), оставили работать в первом режиме. В этом случае, если штрихкод не передан на базу, сканер сообщает длительным бипом, удачная передача сопровождается двойным бипом.
Проброс COM портов осуществляется установкой флажка порты на закладке локальные ресурсы rdp.
Так же на сервере необходимо проверить разрешение на подключение COM портов удалённого клиента: Администрирование-Службы терминалов-Конфигурация служб терминалов, закладка Параметры клиента:
Т.к. порты виртуальные, то на сервере в диспетчере задач они не появляются, но исправно работают. Проверить, что порты подключены можно в реестре в ветке HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM или различными утилитами. Т.к. устройств несколько, то на каждой рабочей станции желательно присвоить им разные номера COM портов, что б при одновременном подключении они не комфликтовали.
Далее устанавливаем на сервере драйвер сканера штирхкода SCANOPOS и настраиваем сканеры в 1С как локальные.
2. Подключение сканера Honeywell.
Тут процедура по сути аналогичная, не требует заморочек с подключением подставки, но так же необходимо перевести сканер в режим «USB в эмуляции COM» путём считывание управляющего штрих кода и установить драйвера эмулятора на рабочих станциях. Тут возникла другая проблема в связи с тем, что сканеры переключаются между компьютером кассы и приёмке, при возвращении сканера на место слетает установленный в диспетчере устройств номер COM-порта. Сейчас реализовано следующее, сканер был определен во всех USB портах, далее в ветке реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\ находим нужное устройство, в нем подчинённые ветки для каждого USB порта, для каждого меняем параметр FriendlyName (влияет только на отображение устройства в диспетчере задач) и во вложенной ветке \Device Parameters\ меняем параметр PortName на нужный номер COM порта. Пока порты не слетали. Если будут другие предложения, готов обсудить.
При подключении ФР Штрих в терминальном доступе, для корректной работы ФР в драйвере необходимо увеличить таймаут (в зависимости от скорости соединения порядка 1000
3000мс ) Рекомендую установить драйвер Штрих в начале локально на рабочей станции. Настроить параметры обмена и таймаут, потом передать выбранные параметры на ФР нажатием кнопки Установить параметры в настройках свойств драйвера. И только потом устанавливать драйвер на сервере и проверять соединение. Если на ФРе установлен маленький таймаут, то установка параметров сразу из терминала может не сработать, о чём драйвер не сообщает.
По информации с сайта тех. поддержки Штриха, при использовании контроллера доменов, для корректного проброса COM портов необходимо что б рабочая станция вошла в домен иначе порт не пробрасывается. У нас проверить не получилось, т.к. используются рабочие группы и порты пробросились без проблем.
4. Разделение оборудования по сессиям.
В типовых конфигурациях до сих пор не реализован механиз разделения оборудования по сессиям, и в нашем случае при открытии товарных документов любым пользователем, 1С пытается включить всё подключенное к текущему компьютеру оборудование (в нашем случае это 8 сканеров и два ФР) естественно сделать этого не может, о чём радостно сообщает пользователю несметным количеством ошибок.
Было решено использовать следующий алгоритм. Т.к. оборудование подключено к рабочим станциям, то перед подключением оборудования получаем имя компьютера с которого подключается сеанс. Для этого обращаемся к переменной среды CLIENTNAME. В регистр сведений Торговое оборудование добавлено строковое поле ИмяКлиента. И в модуле обработки СерверТО в процедуре ПодключитьОборудование() добавлена проверка на совпадение имени подключенного клиента с именем клиента для оборудования:
Лучше выполнить этот кода в попытке, т.к. переменная среды доступна только в контексте терминального подключения и при вызове из локальных подключений может вызвать ошибку.
Подключение сканера штрих кода к 1с через rdp
Этот форум закрыт. Спасибо за участие!
Лучший отвечающий
Вопрос
вопрос таков, имеется клиентский компьютер Win7 с ручным сканером Motorola (если это важно) для снятия штрих кода документа, сканер работает в режиме эмуляции клавиатуры (те в блокнот например можно сразу сканировать штрих кода, без стороннего по)
При подключении к серверу терминалов 2008R2 стандартным mstsc (Подключение к удаленному рабочему столу) сканирую штрих кода в терминале имеем такое (привожу пример сканирования одного и того же штрих кода 3 раза)
Оригинал штрих кода N _03 NP 0009727_71
Тоесть скачет регистр символов и подчеркивание меняется на тире, причем от раза к разу различные результаты
На данный момент проблему решил использованием клиента RDCMan 2.2 в этом клиенте все ок передается в терминал, те имеем N _03 NP 0009727_71 без искажений
PS все клиенты и сервера имеют последние обновления
Ответы
Была точно такая же проблема. Я установил межсимвольную задержку 100 мс на сканере. После этого стало все нормально!
Все ответы
Не совсем правильно я сформулировал вопрос,
А чего не обновите RDP до более новой версии?
Мой опыт подключения сканеров штрих-кода в RDP
Раньше никогда этого не делал, поэтому делюсь опытом.
Проброс COM- портов
Проброс портов делается элементарно, нужно в свойствах RDP подключения указать галочку «Использовать порты».
Настройка сканера ШК в 1С
Режим разрыва клавиатуры
В режиме разрыва клавиатуры сканер просто набирает клавиши, которые соответствуют символам штрих-кода. Не требуется никаких драйверов, чтобы сканер заработал в 1С.
Во всех типовых конфигурациях по кнопке F 7 открывается окно ввода штрих-кода. Поэтому достаточно сканеру запрограммировать префикс F 7 и все, он будет поддерживаться 1С.
Если конфигурация дорабатывалась и в некоторых участках забыли прописать типовую поддержку F 7, проще дописать эту поддержку. Но в качестве альтернативы можно использовать драйвер Атол старых версий, где выбрать в качестве порта «Разрыв клавиатуры».
Новые версии драйверов Атол платные, а бесплатные делают 10-секундную задержку перед обработкой штрих-кода.
Способ прост для подключения, но неудобен в работе.
Поэтому лучше все же, если используется разрыв клавиатуры, не использовать драйвер Атол (это лишние потери времени и символов), а просто запрограммировать префикс F 7.
В моем случае был интересный глюк – буквы на некоторых штрих-кодах преобразовывались в верхний регистр. Я долго мучался, но мне подсказали, что нужно включить режим посимвольной передачи штрих-кода, а не пакетный, который стоял по умолчанию.
Режим COM- порта
Работает более быстро и надежно. Событие в 1С подхватывается независимо от раскладки клавиатуры и текущего активного элемента в форме.
Драйвер Атол можно использовать только старых версий. Для сканера это не имеет особого смысла, поэтому лучше применять бесплатный драйвер Scanopos от 1с.
Случайно нашел тему об этом и решение тут. Там один комментатор писал, что когда он заменил scanopos предложенной версией этой компоненты, то чуть не заплакал – все заработало.
Но возникла другая проблема – в 1С от сканера не доходил первый символ 0 штрих-кода. Видимо, драйвер преобразовывал штрих-код в число и терял ноль.
Я достаточно много времени потратил на поиск решения, но все решилось просто – достаточно установить любой префикс и прописать этот префикс в подключении торгового оборудования. Я использовал для общности F7.
Настройка префикса штрих-кода
Чтобы настроить префикс F 7 пришлось помучаться.
У всех сканеров код этой клавиши разный, поэтому я заглянул в таблицу шестнадцатеричных кодов:
Но ошибся и вместо шестнадцатиричного 15 (десятичтного 21) запрограммировал префикс 51. Потом понял, что не то, когда сканер в разрыв клавиатуры не нажимал F 7.
Сама процедура программирования префиксов тоже описана не явно, пришлось писать себе памятку, переводя язык инструкции на нормальный человеческий:
1. Считать ШК «Вход в конфигурирование»
2. Считать ШК «Установка префикса»
3. Считать ШК с цифрами «1», «5» для клавиши F7
4. Считать ШК «Validate»
5. Считать ШК «Update»
Дополнительные замечания
Ездить каждый раз к пользователям сканеров не получалось. Поэтому я научил одного сотрудника на месте распечатывать нужные страницы из руководства и сканировать нужные мне последовательности команд.