Перейти к содержимому

Как подключить сканер штрих кода через rdp

  • автор:

Проброс сканера ШК через rdp в win7

Доброго времени суток! Поискал на форуме похожие темы, например Фискальный регистратор+RDesktop но нужного ответа для себя не нашел.

Задача следующая: Есть пк на win7, на нём стоит 1с 8.3, есть много клиентов на Ubuntu 16.04 LTS. К пк с Ubuntu подключается сканер штрих-кодов Datalogic QuickScan QD2430 (есть 2 кабеля к нему: RS-232 и USB), необходимо с Ubuntu, подключаясь по rdp к пк с windows пробросить данный сканер ШК для работы в 1с и (например, Блокноте). Еще проблема — 1с на пк с win7 корректно работает со сканером шк, только если он подключен к СОМ1, с другими номерами СОМ портов 1с отказывается работать, это изменять нельзя, так же не желательно создавать виртуальный СОМ-порт с привязкой к конкретному ip-адресу клиента на Ubuntu, т.к. клиентов более 200 пк.

Что я предпринимал и какие результаты:

Сканер настраивал по штрих-кодам из книжки так:

  • Восстановление заводской конфигурации ЕС
  • Стандартный интерфейс — RS232-STD
  • Скорость передачи данных — 9600
  • Четность — нет
  • 8 бит данных
  • 1 стоп-бит
  • Управление установлением связи = RTS

Подключаю сканер через СОМ кабель к Ubuntu, он определяется как /dev/ttyS0. Есть 2 пользователя: user и root, оба состоят в группе dialout, права на /dev/ttyS0 — 666. Далее пишу в терминал stty -F /dev/ttyS0 -parity cs8 raw -echo после этой настройки проверяю в терминале работу сканера ШК: cat /dev/ttyS0 — вижу, как сканер сканирует штрих-код.

Теперь пробую через rdp пробросить сканер на win7:

rdesktop -u user -p mypass -g 1024×768 -r comport:COM1=/dev/ttyS0 192.168.40.21

Соединение проходит, в win открываю cmd.exe и пишу: change port, вижу такую строчку:

  • AUX = \DosDevices\COM1
  • COM1 = \Device\RdpDrPort\;COM1:1\tsclient\COM1
  • COM2 = \Device\Serial1

По «гуглу» это говорит о том, что порт пробросился, но 1с сканер не видит (в настройках 1с сканер шк добавлен), в Блокнот не сканируется инфа, так же проверяю работу сканера программой PcWedge — у неё настройки следующие:

  • SerialPort=\\.\COM1
  • BaudRate=9600
  • Parity=None
  • DataBits=8
  • StopBits=1
  • FlowControl=None
  • RDxBuffer=4096
  • SleepTime=0
  • Operation=11
  • PreAmble=
  • TargetType=0
  • TargetParam=
  • PostAmble=

Причем если в этой программе нажать Close(выход) то она «мёртво повисает».

Пробовал физически сканер подключать через USB провод, в этом случае всё точно так же, как описано выше, за исключением, что устройство висит на /dev/ttyACM0, а на win-пк установлены драйвера (на всякий случай USB-Com с сайта datalogic)

И настройки на самом сканере такие по книжке:

  • Восстановление заводской конфигурации ЕС
  • Выберете USB-COM-STD

При таком пробросе (имеется ввиду usb-сом подключение сканера к Ubuntu) на win в терминале Ubuntu при попытке что-то отсканировать в PcWedge (1с не видит сканер, в блокнот так же не сканируется) выдается сообщение:

xfreerdp — выдает ошибку, что у него не установлены плагины для проброса СОМ и его надо пересобирать с параметрами cmake -DWITH_SSE2=ON -DCHANNEL_URBDRC_CLIENT=ON -DCHANNEL_URBDRC=ON, но, честно сказать, этого я не делал, Remmina(графическая оболочка) не пробрасывает СОМ порты, в свойствах не увидел таких галок и настроек.

Так же пробовал пробрасывать шк под другим СОМ портом, например, СОМ5, СОМ7, СОМ3 (их не существует физически в win-пк) и тд. чтобы он хотя бы в Блокнот сканировал. Стоит отметить, что в обоих вариантах подключения сканера шк я при rdp сессии вижу передаваемую информацию через putty, но в диспетчере устройств win7 не создается ни нового СОМ-порта ни нового USB устройства. Подскажите, пожалуйста, что еще можно попробовать сделать?

Как подключить сканер штрих кода через rdp

В самом начале, т.к. сканер беспроводной, необходимо подружить сканер с подставкой. Включаем подставку в USB и в соответсвии с руководством пользователя привязываем сканер к базе. Для этого необходимо считать управляющие штрихкоды и ввести ПИН-код сканера из 4-х цифр. Цифры задаём так же считывая штрих коды из таблицы, приведённой в руководстве. Т.к. сканеров у нас было несколько, то для каждого был заведён свой пин-код. После ввода пин-кода сканер сообщит о подключении к подставке радостным пиканьем Далее считываем управляющие штрихкоды для перевода сканера в режим "USB в эмуляции COM" и н а всех рабочих станциях, где подключено оборудование установливаем драйвера эмуляции COM порта. Драйвера брали последние с официального сайта Datalogic. Сканер имеет три режима работы при потери связи с базой:

  1. При потери связи не передавать ничего.
  2. Передавать считанные штрихкода при восстановлении связи
  3. Собирает все штрих коды во внутренней памяти и выгружает на компьютер после считывания управляющего штрихкода о выгрузке.

Режимы настраиваются так же путём считывания управляющих штрихкодов из руководства. При тестировании второй режим не всегда передавал данные, в третьем так же были замечены потери данных при передаче (видимо 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 порта. Пока порты не слетали. Если будут другие предложения, готов обсудить.

3. Подключение ФР.

При подключении ФР Штрих в терминальном доступе, для корректной работы ФР в драйвере необходимо увеличить таймаут (в зависимости от скорости соединения порядка 1000

3000мс ) Рекомендую установить драйвер Штрих в начале локально на рабочей станции. Настроить параметры обмена и таймаут, потом передать выбранные параметры на ФР нажатием кнопки Установить параметры в настройках свойств драйвера. И только потом устанавливать драйвер на сервере и проверять соединение. Если на ФРе установлен маленький таймаут, то установка параметров сразу из терминала может не сработать, о чём драйвер не сообщает.

По информации с сайта тех. поддержки Штриха, при использовании контроллера доменов, для корректного проброса COM портов необходимо что б рабочая станция вошла в домен иначе порт не пробрасывается. У нас проверить не получилось, т.к. используются рабочие группы и порты пробросились без проблем.

4. Разделение оборудования по сессиям.

В типовых конфигурациях до сих пор не реализован механиз разделения оборудования по сессиям, и в нашем случае при открытии товарных документов любым пользователем, 1С пытается включить всё подключенное к текущему компьютеру оборудование (в нашем случае это 8 сканеров и два ФР) естественно сделать этого не может, о чём радостно сообщает пользователю несметным количеством ошибок.

Было решено использовать следующий алгоритм. Т.к. оборудование подключено к рабочим станциям, то перед подключением оборудования получаем имя компьютера с которого подключается сеанс. Для этого обращаемся к переменной среды CLIENTNAME. В регистр сведений Торговое оборудование добавлено строковое поле ИмяКлиента. И в модуле обработки СерверТО в процедуре ПодключитьОборудование() добавлена проверка на совпадение имени подключенного клиента с именем клиента для оборудования:

Лучше выполнить этот кода в попытке, т.к. переменная среды доступна только в контексте терминального подключения и при вызове из локальных подключений может вызвать ошибку.

Работа с ТСД в условиях санкций: чем заменить RDP

4 марта 2022 года компания Microsoft прекратила продажу новых лицензий на территории РФ. Изменение затронуло распространенный способ работы с «товароучеткой» на терминалах сбора данных — через удаленный рабочий стол (RDP).

Еще одна причина, чтобы рассмотреть другие способы работы с товароучетной системой на ТСД заключается в том, что большинство современных моделей функционирует на базе Android.

В статье расскажем о плюсах и минусах RDP, возможных альтернативах. Также заострим внимание на преимуществах специализированного программного обеспечения, «заточенного» под Android-устройства.

Откуда взялся RDP — предыстория

Протокол удаленного рабочего стола — RDP — разработан компаний Microsoft. Впервые включен в Windows NT 4.0 еще в 1996 году и доступен на всех «операционках» семейства, кроме Home-версий.

Технология позволяет подключаться через интернет к рабочему столу сервера — компьютера. Его пользователь предоставляет «права администратора» оператору управляющего устройства (ПК, ТСД, планшета или смартфона) — клиента. Нагрузка на него минимальна — все процессы выполняются на сервере. Оператор получает на экран «картинку» рабочего стола подключенного компьютера и свободно совершает нужные действия. Данные на сервере в системе клиента не сохраняются.

Примечание. RDP (remote desktop protocol) — проприетарный протокол, предоставляющий пользователю графический интерфейс для подключения к другому устройству по сети.

Предустановленный RDP-клиент присутствует во всех версиях Windows, начиная с XP 2001.

Почему RDP «прижился» на ТСД

Первые терминалы сбора данных появились в конце 90-х и работали на базе DOS. Устройства комплектовались сканерами, как правило, 1D-штрихкодов, реже — 2D. Монохромные 2-дюймовые экраны; объемы памяти, рассчитанные на хранение небольшой текстовой базы данных (2–4 МБ); клавиатура для ручного ввода информации — вот и вся аппаратная функциональность. Программная «начинка» полностью зависела от DOS-прошивки.

В начале 2000-х появились ТСД на базе WinCE — и это была революция. Добавился графический интерфейс и возможность расширять функциональность, не обращаясь к прошивке. Здесь как нельзя кстати пришелся RDP, разработанный компаний Microsoft, — с его помощью можно получать доступ с ТСД к 1С, установленной на сервере.

RDP стал популярным по двум причинам:

  • слабость «железа» терминалов сбора данных, которые выпускались в то время;
  • отсутствие возможностей для развития мобильного софта.

В текущих реалиях процессоры, «заточенные» под WinCE, кажутся невероятно медленными. Возможности «оперативки» первых Windows-совместимых ТСД ограничивались 32–256 МВ. Такой же объем был и у флеш-памяти — до 256 МВ. При этом в Windows-терминалах сбора данных обнаружился плюс — поддержка RDP из коробки. Через RDP работа идет быстро: вся вычислительная мощность — на сервере. Таким образом нивелируются и слабость процессора, и небольшие объемы памяти.

Софт под WinCE работал медленно. Это программы с бедной функциональностью — например, можно читать почту и добавлять события в записную книжку, не более. Ни о каком профессиональном ПО для работы на складе и речи не шло.

В начале 2014 появились первые модели ТСД на базе Android, положившей начало эпохи стремительного развития мобильных приложений. Параллельно и разработчики терминалов сбора данных всерьез занялись совершенствованием аппаратной составляющей. Так, современные мобильные компьютеры по техническим характеристикам стали не сильно уступать стационарным.

Для справки. Мы протестировали множество терминалов сбора данных. Самый медленный ТСД на базе Android смог загрузить в онлайн-режиме базу на 100 000 номенклатур за 8,5 минут. Терминал на базе WinCE пытался справиться с этой же задачей около 2 часов… мы так и не дождались результата и прервали тест.

Ниже подробно расскажем о минусах и плюсах RDP и почему стоит переходить на профессиональные мобильные софт-решения.

Chainway C6000

Newland MT65 Beluga

АТОЛ Smart.Prime

Минусы и плюсы подключения ТСД по RDP

Как у любой технологии, у RDP есть сильные и слабые стороны. Среди плюсов — возможность прямого доступа с ТСД к «товароучетке» и удаленной работы с документами, хранящимися на сервере.

  • чувствительность даже к кратковременной потере связи;
  • зависимость от «железа»;
  • необходимость «подгонки» размеров документов под мобильный интерфейс;
  • расходы на покупку RDP-сервера (его нужно приобретать отдельно, в отличие от встроенного в Windows RDP-клиента) и пользовательские лицензии.

С преимуществами все очевидно. Остановимся на недостатках подключения ТСД по RDP и рассмотрим их подробнее.

Связь

Пожалуй, основное уязвимое место при использовании протокола. При его разработке и внедрении акцент делался на архитектуре беспроводной сети — важна стабильная связь. Взаимодействие терминала сбора данных с сервером по RDP возможно только при наличии прямого подключения к рабочему столу. Нет быстрого и стабильного интернета или Wi-Fi-соединения — нет работы.

Зависимость от железа

Здесь многое упирается в необходимость использования сканера штрихкодов. Предусмотрены специальные обработки для корректного взаимодействия ТСД с 1С, но сложности все равно возникают. Так, с расшифровкой линейного EAN-13 проблем нет, а вокруг GS1 128 и двумерного Data Matrix начинаются «танцы с бубнами». При их генерации используются невидимые GS-символы, играющие критическую роль. Тоже самое касается SSCC — кодов-агрегаторов для маркировки сборных грузов (коробов и палет).

Выход: «отмечать» невидимый символ каким-то другим — тем, которого не может быть в штрихкоде, например, «!» Так его хотя бы удастся обработать в RDP-сессии. Но это неудобно. И программисту в любом случае придется создавать подходящую обработку для текущей конфигурации 1С. С появлением Data Matrix количество символов, которые можно использовать для подмены, сократилось. В «криптохвосте» двумерного штрихкода этого формата могут быть практически любые знаки.

Разрешение

Серверный интерфейс не оптимизируется под документы с маленьким разрешением. Минимум УТ11 — 1024 × 768 пикселей. Теперь представьте себе, какие сложности возникают при попытке просмотреть документ на ТСД с разрешением экрана 320 × 240 или нестандартным 320 × 320 пикселей (такие дисплеи устанавливаются на некоторых моделях Zebra). Все документы придется «перерисовывать» под RDP.

Пример. Для УТ10 создаются документы с большими кнопками — для взаимодействия с интерфейсом 1С через тачскрин ТСД. Разработка адаптации занимает от 2 до 4 недель. Интерфейс «затачивается» под конкретное разрешение: подключили ТСД с большим экраном — «перерисовывайте» все документы в конфигурации.

Лицензии Microsoft

Основной поставщик лицензий на RDP-сервер — Microsoft. Протокол можно развернуть и на Linux, но экспертиза у разработчика «операционок» Windows. В связи с введением антироссийских санкций, легально купить лицензии на продукты Microsoft скоро будет невозможно. Цены на остатки на складах, которые все еще можно приобрести, сильно поднялись. Так, стоимость лицензии на 5 пользователей Windows Server доходит сегодня 120 000 рублей (актуальна на момент публикации).

Windows-терминалы WTware

Проблема с пробросом сканера штрих кодов Symbol LS2208 в терминальный сервер на 2012r2

Проблема с пробросом сканера штрих кодов Symbol LS2208 в терминальный сервер на 2012r2
  • BUTTON_REPORT
  • Цитата

Сообщение Дмитрий 123 » Сб апр 29, 2017 10:29 pm

Есть:
Малина P3
Комп Win7
Терм сервер на виртуалке 2012r2
Терм сервер виртуалке 2012
Хостовая операционка с HiperV 2008r2
Драйвера сканера Атол 2008года Scaner1S.dll а также GUI утиль ScanerT для настройки связи со сканером и получения данных.
«Приложение» которое работает со сканером штрих кодов используя библиотеку Scaner1S.dll

Симптомы:
«Приложение» корректно получает данные со сканера только локально на компе win7 или на сервере 2008r2 (в терминале) в 2012 (терм) и 2012r2 (терм) не работает.
GUI ScanerT коректно получает данные со сканера во всех вариантах подключения включая 2012 и 2012r2.

Диагностика:
Одна и таже малина последовательно подключалась к 2008R2, 2012 и 2012R2
Параметры подключений сканера идентичны для всех 3х серверов, регистрация библиотеки Scaner1S.dll на серверах проверены все ок.
Разница в работе Атоловского ScanerT и «Приложения» в том что «Приложение» производит опрос на предмет наличия сканера прежде чем что-то с него считать.
Залез в код «Приложения», отключил проверку на наличие сканера и получил на 2012 в приложении аналог того что вижу в 2008R2.

Болезнь (Проблема):
От результатов проверки на наличие сканера зависит логика работы «Приложения». Там проверка прописана в нескольких местах. Если тупо убрать проверку, не понимая логику, работа нарушится. А копаться в логике очень не хочется, писал не я и там очень много букОв.

Предварительные выводы:
Реализация покидывание LS2208 в терминальный сервер на 2012r2 и 2012 не позволяет передавать запрос (на предмет наличия сканера) от сеанса пользователя к сканеру, хотя данные со сканера проходят на ура. В случае использования 2008R2 Все работает отлично. (2008R2 не является виртуалкой не знаю важен ли этот момент).

Вопрос:
Как мне кажется если это проблема с отправкой запроса к сканеру ее можно увидеть в логах Wtware. Если я пришлю лог с 2012R2 где не работает и 2008R2 где работает сможем ли мы увидеть разницу и как-то ее пофиксить?

Как подключить сканер штрих кода через rdp

8plus.ru — это отчеты и обработки 1С только версии 8 и только для типовых конфигураций!

  • Основное

ОС: Win server 2003, 2008 х64

Была задача: удаленные филиалы подключить по rdp к одному серверу под управление win 2008 и сканеры штрих-кодов тоже, но они никак не хотели работать. То есть если работал один, остальные не работали. Ну и хотелось поделится опытом решения проблемы, вдруг кому-то тоже поможет. ��
Напишу сразу это решение проблемы для конкретного релиза УТ 10.3.3.3, на остальных не проверял может уже исправили в последующих.

Для начала все сканеры должны висеть на разных com портах. Поменять номер порта можно в диспетчере устройств, в разделе Порты (COM и LPT) необходимо выбрать нужный порт и вызвать его свойства, там перейти во вкладку «Параметры порта» и по кнопке «Дополнительно» вызвать дополнительные параметры, где можно сменить номер порта. И при подключении к удаленному рабочему столу необходимо убедится что галочка перекидывать порты установлена. На сервере проверить перекинулся ли порт можно командой «change port».

На сервере не забываем установить компоненту «1С: Сканер штрихкода», ну и добавление сканера в самой программме 1C: Управлении торговлей описывать не буду, в этом сложности никакой нет. Но напишу тока, что сканеров будет несколько привязанных к данному компьютеру, т.е. в конфигурации УТ оборудование привязано к конкретному ПК. Если у вас только один сканер то он без проблем должен работать, если порт прокинут конечно))). Но вот если их два и больше могут возникать проблемы с которыми я столкнулся.Проблема была в том что работал только один сканер остальные не работали.

Решение проблемы: После продолжительных поисков, через отладчик, обнаружил интересный код, который находится в обработке «ТОСервер». В нем есть функция «ПодключитьОборудование()», которая пытается подключить в цикле сканеры забитые в базе и привязанные к данному компьютеру:

Результат = Обработка.Подключить(Объект);
Если ЗначениеЗаполнено(Результат) Тогда
Возврат Результат;
КонецЕсли;

суть в том что, при попытке подключить первое обородование в цикле, если она неудачная, то функция возвращала ошибку подключения, даже не пытаясь подключить остальные сканеры из списка.

Вот как надо поправить фрагмент кода:

//Если ЗначениеЗаполнено(Результат) Тогда
// Возврат Результат;
//КонецЕсли;
Если Результат = Перечисления.ТООшибкиОбщие.ОшибкаПриПодключении Тогда
Продолжить;
КонецЕсли;

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

Как подключить сканер штрих кода через 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) на сумму = ******* (приложен).

Причина отказа — дезагрегация короба
"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", несмотря на то, что
у нее другой криптохвост."

Ответа нет до сих пор.

(6)+ Я к тому что ошибка считывания DataMatrix (14 цифр gtin + 13 символов serial) должна приводить к тому то уходит неверный код stgin в ЦРПТ.
Если такого кода не числится за конкретной организацией в месте деятельности — происходит отказ операции.

Если числится ну да произошел пересорт, найти его и когда надо реализовать сделать обратную подмену

(0) и в поле «Использовать сочетания клавиш Windows» установить «На этом компьютере».

Опять сканер в режиме клавиатуры. Мыши плакали, кололись, но все равно продолжали есть кактус.
Если использовать режим эмуляции com-порта, то таких проблем в принципе не возникает. По RDP com-порт пробрасывается нормально, в сеансе как родной живет, будто локально подключен. И в локалке, и через и-нет.

(6) ЦРПТ сообщает. Они не контролируют крипто хвосты, они могут быть любыми.
При сканировании, у покупателя произошла подмена одного символа "." на ",". Этот символ попал на серийный номер пачи.
После того как код был передан ОФД а от туда в ЦРПТ, они не долго думая нашли в своей базе данных пачку с присланным ЕАН и серийным номером и отразили у себя выбытие этой пачки, дезагрегировав короб и паллет, где она хранилась.

Мы написали об этом в суппорт. Сегодня даже на собрании с минпромторгом об этом заявил. Сказали будут думать.

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

Проведите простой эксперимент в приложении "честный знак".
Возите код пачки и напишите в конце любые 4 символа. пачка будет подлинной.
046100301415270000Hd?AB0o0000
046100301415270000Hd?AB0oFACK

(12) Ну-счастье в неведение.

Не в неведении — а в собственном опыте. С клавиатурными, еще когда только ЕГАИС начался, я проблем огреб, выше крыши. При чем, на пустом месте. Не проходили продажи, именно из-за подмены символов клавиатурными сканерами. При чем безсистемно. Вдруг, ни с того-ни с сего, и не всех, а каких-то случайно. Замена способа подключения с USB=>КБ на USB=>COM, в 100% случаев, решала проблему. Если у Вас другой опыт — ну, поделитесь, будем знать.

(15) Мы обращались в ЦРПТ с этой проблемой. Предлагали насильно внедрить контрольный символ в серийный номер для производителей и что важно, опубликовать для всех способ проверки.
Сказали уже ничего менять не будут.
Своим программистам на заводе поставили задачу реализовать механизм нумерации коробов/блоков/пачек так, что бы последний (7седьмой) символ в серийном номере являлся контрольной суммой от ЕАН+СерийныйНомер(6симвлов). По крайной мере будем осуществлять проверку в своих учетных системах — СвойПроизводитель-СвойПервыйПокупатель-СвояСеть

Для коробов это проверка на ошибку 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
<FNC1>
Хотя ограничения нет использовать только цифры, многие производители придерживаются цифрового стандарта CODE128 для совместимости с автоматическими складами и печатают в виде обычного линейчатого штрихкода.

Подолью масла в огонь ))

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

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

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

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

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

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

Вот такая вот нас ожидает "пандемия" в обороте сигарет с 01.07.2020.

(13) "Замена способа подключения с USB=>КБ на USB=>COM, в 100% случаев, решала проблему".

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

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

Оп. перехвачен новый случай

Получен от сканера и опознан как ошибочный: 4301415270000Hg5AB0oMPf/
фактически был: 046100301415270000Hg5AB0oMPf/

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

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

Как подключить сканер штрих кода через rdp

вопрос таков, имеется клиентский компьютер Win7 с ручным сканером Motorola (если это важно) для снятия штрих кода документа, сканер работает в режиме эмуляции клавиатуры (те в блокнот например можно сразу сканировать штрих кода, без стороннего по)

При подключении к серверу терминалов 2008R2 стандартным mstsc (Подключение к удаленному рабочему столу) сканирую штрих кода в терминале имеем такое (привожу пример сканирования одного и того же штрих кода 3 раза)

Оригинал штрих кода N _03 NP 0009727_71

Тоесть скачет регистр символов и подчеркивание меняется на тире, причем от раза к разу различные результаты

На данный момент проблему решил использованием клиента RDCMan 2.2 в этом клиенте все ок передается в терминал, те имеем N _03 NP 0009727_71 без искажений

PS все клиенты и сервера имеют последние обновления

  • Изменено Denis Gulyaev 25 июля 2013 г. 10:29
  • Изменен тип Dmitriy Vereshchak Microsoft contingent staff 7 августа 2013 г. 11:05 Тема переведена в разряд обсуждений по причине отсутствия активности.
  • Изменен тип Dmitriy Vereshchak Microsoft contingent staff 8 февраля 2016 г. 7:56
Ответы
  • Предложено в качестве ответа Chumak Alexandr 21 февраля 2020 г. 12:14
  • Помечено в качестве ответа Dmitriy Vereshchak Microsoft contingent staff 3 июля 2020 г. 5:58

Была точно такая же проблема. Я установил межсимвольную задержку 100 мс на сканере. После этого стало все нормально!

  • Помечено в качестве ответа Dmitriy Vereshchak Microsoft contingent staff 8 февраля 2016 г. 7:57
Все ответы

Не совсем правильно я сформулировал вопрос,

Вопрос состоит в том что в разных "версиях" клиента RDP с которого работаешь на одном и том же терминальном сервере сканер ведет себя по разному, конкретно в стандартном mstsc (версия 6.1.7601.17514) данные со сканера передаются в терминал неправильно — с искажениями. При работе с тем же сервером терминалов другим клиентом, в частности с RDCMan (Ссылка) все данные передаются корректно (100 раз правильно из 100 раз сканирования). Под данными подразумевается сканированный штрих код.

По сути не хочеться ставить всем тем людям кто работает со сканером, сканирующими в терминал сервер дополнительный клиент RDP — пользователей иногда это запутывает что имеется два клиента

Проброс сканера ШК через rdp в win7

Доброго времени суток! Поискал на форуме похожие темы, например Фискальный регистратор+RDesktop но нужного ответа для себя не нашел.

Задача следующая: Есть пк на win7, на нём стоит 1с 8.3, есть много клиентов на Ubuntu 16.04 LTS. К пк с Ubuntu подключается сканер штрих-кодов Datalogic QuickScan QD2430 (есть 2 кабеля к нему: RS-232 и USB), необходимо с Ubuntu, подключаясь по rdp к пк с windows пробросить данный сканер ШК для работы в 1с и (например, Блокноте). Еще проблема — 1с на пк с win7 корректно работает со сканером шк, только если он подключен к СОМ1, с другими номерами СОМ портов 1с отказывается работать, это изменять нельзя, так же не желательно создавать виртуальный СОМ-порт с привязкой к конкретному ip-адресу клиента на Ubuntu, т.к. клиентов более 200 пк.

Что я предпринимал и какие результаты:

Сканер настраивал по штрих-кодам из книжки так:

  • Восстановление заводской конфигурации ЕС
  • Стандартный интерфейс — RS232-STD
  • Скорость передачи данных — 9600
  • Четность — нет
  • 8 бит данных
  • 1 стоп-бит
  • Управление установлением связи = RTS

Подключаю сканер через СОМ кабель к Ubuntu, он определяется как /dev/ttyS0. Есть 2 пользователя: user и root, оба состоят в группе dialout, права на /dev/ttyS0 — 666. Далее пишу в терминал stty -F /dev/ttyS0 -parity cs8 raw -echo после этой настройки проверяю в терминале работу сканера ШК: cat /dev/ttyS0 — вижу, как сканер сканирует штрих-код.

Теперь пробую через rdp пробросить сканер на win7:

rdesktop -u user -p mypass -g 1024×768 -r comport:COM1=/dev/ttyS0 192.168.40.21

Соединение проходит, в win открываю cmd.exe и пишу: change port, вижу такую строчку:

  • AUX = \DosDevices\COM1
  • COM1 = \Device\RdpDrPort\;COM1:1\tsclient\COM1
  • COM2 = \Device\Serial1

По «гуглу» это говорит о том, что порт пробросился, но 1с сканер не видит (в настройках 1с сканер шк добавлен), в Блокнот не сканируется инфа, так же проверяю работу сканера программой PcWedge — у неё настройки следующие:

  • SerialPort=\\.\COM1
  • BaudRate=9600
  • Parity=None
  • DataBits=8
  • StopBits=1
  • FlowControl=None
  • RDxBuffer=4096
  • SleepTime=0
  • Operation=11
  • PreAmble=
  • TargetType=0
  • TargetParam=
  • PostAmble=

Причем если в этой программе нажать Close(выход) то она «мёртво повисает».

Пробовал физически сканер подключать через USB провод, в этом случае всё точно так же, как описано выше, за исключением, что устройство висит на /dev/ttyACM0, а на win-пк установлены драйвера (на всякий случай USB-Com с сайта datalogic)

И настройки на самом сканере такие по книжке:

  • Восстановление заводской конфигурации ЕС
  • Выберете USB-COM-STD

При таком пробросе (имеется ввиду usb-сом подключение сканера к Ubuntu) на win в терминале Ubuntu при попытке что-то отсканировать в PcWedge (1с не видит сканер, в блокнот так же не сканируется) выдается сообщение:

xfreerdp — выдает ошибку, что у него не установлены плагины для проброса СОМ и его надо пересобирать с параметрами cmake -DWITH_SSE2=ON -DCHANNEL_URBDRC_CLIENT=ON -DCHANNEL_URBDRC=ON, но, честно сказать, этого я не делал, Remmina(графическая оболочка) не пробрасывает СОМ порты, в свойствах не увидел таких галок и настроек.

Так же пробовал пробрасывать шк под другим СОМ портом, например, СОМ5, СОМ7, СОМ3 (их не существует физически в win-пк) и тд. чтобы он хотя бы в Блокнот сканировал. Стоит отметить, что в обоих вариантах подключения сканера шк я при rdp сессии вижу передаваемую информацию через putty, но в диспетчере устройств win7 не создается ни нового СОМ-порта ни нового USB устройства. Подскажите, пожалуйста, что еще можно попробовать сделать?

Мой опыт подключения сканеров штрих-кода в RDP

Несколько месяыев назад тоже мучился с подключением сканера через RDP — была бы эта статья раньше, меньше времени бы убил. Сначала настроил в разрыв клавиатуры, причем, маленькая ремарка, не только Атол умеет работать с таким режимом, последние версии от 1С тоже научились, локально все ОК, но по RDP срабатывало через раз, манипуляции с таймаутом давали эффект, но стабильной работы добиться не удалось. Потом сделал проброс портов, перевел сканер в режим эмуляции COM-порта и все завелось на отлично.

настроил под сотню наверное сканеров и через рдп и не через рдп и егаис и не егаис — танцев с бубнами не было никогда )))) что за описание?? что за область

Сталкивался однажды с подобной проблемой, это надо в настройках сканера копаться. Достоверно не помню, давно было, либо отключал поддержку UPC либо включал преобразование UPC в EAN.

Не Надо людей вводить в заблуждение, не только атолом все сыты, стандартные драйвера от 1с тоже нормально работают. По поводу кнопки f7, можно обойтись и без нее, просто подключаете сканер как торговое оборудование, а где ком порт ставите «клавиатура»

1) Разрыв клавиатуры намного лучше, т.к. КОМ-порты часто отваливаются и надо перенастраивать компьютер.Хорошо работает со стандартными 1С драйверами.

2) Для 1С 7.7 Разрыв клавиатуры не предусмотрено, сделал его силом ��

Ошибаетесь программирование префикса F7, очень удобно в том плане, что не требуются вообще драйвера для сканера. Он работает как обычная клавиатура в 1С только правда. И как вытекающие не надо виртуалить COM и мапить потом по RDP сканер со всеми вытекающими проблемами RDP.

Да что вы) Работаю с 2007 года с оборудованием. Если действовать по инструкции подключил и главное потом свалил от них навсегда, то согласен с вами проблем е бывает) А вот если обслуживаешь клиентов годами, то поверьте бывают))

И к вашему сведению нет сканеров ЕГАИС, есть 1D и 2D сканера — 3D пока не придумали) Разницы по подключению между 1D и 2D нет не какой они по большей части с 1С и РМК работают в режиме 1D))

Мой опыт подключения сканеров штрих-кода в RDP

Сканер подключается к компьютеру или непосредственно в реальный COM-порт или в USB, но даже в этом случае он занимает виртуальный COM-порт (VCOM).

Проброс портов делается элементарно, нужно в свойствах RDP подключения указать галочку «Использовать порты».

Настройка сканера ШК в 1С

Существует два способа подключения сканера штрих-кода к 1С – через работы в режиме разрыва клавиатуры и через COM-порт.

Режим разрыва клавиатуры

В режиме разрыва клавиатуры сканер просто набирает клавиши, которые соответствуют символам штрих-кода. Не требуется никаких драйверов, чтобы сканер заработал в 1С.

Во всех типовых конфигурациях по кнопке F7 открывается окно ввода штрих-кода. Поэтому достаточно сканеру запрограммировать префикс F7 и все, он будет поддерживаться 1С.

Если конфигурация дорабатывалась и в некоторых участках забыли прописать типовую поддержку F7, проще дописать эту поддержку. Но в качестве альтернативы можно использовать драйвер Атол старых версий, где выбрать в качестве порта «Разрыв клавиатуры».

Новые версии драйверов Атол платные, а бесплатные делают 10-секундную задержку перед обработкой штрих-кода.

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

  • Нужно следить, чтобы была включена правильная раскладка клавиатуры.
  • При использовании префикса курсор должен стоять внутри таблицы, иначе F7 не срабатывает.
  • Буквы при наборе в RDP часто теряются, и сканер считывает усеченные штрих-коды.

Поэтому лучше все же, если используется разрыв клавиатуры, не использовать драйвер Атол (это лишние потери времени и символов), а просто запрограммировать префикс F7.

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

Режим COM-порта

Работает более быстро и надежно. Событие в 1С подхватывается независимо от раскладки клавиатуры и текущего активного элемента в форме.

Настраивается просто – указывается COM-порт и все.

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

Но я столкнулся с ситуацией, когда в некоторых комбинациях компьютеров и атоловский драйвер подключал сканер только один раз, а потом COM-порт оказывался занятым, а драйвер scanoposвообще вешал терминальную сессию. Причем такая проблема возникала только на дорогих сканерах. Просто CipherLab1000 работал нормально.

Случайно нашел тему об этом и решение

Но ошибся, и вместо шестнадцатеричного 15 (десятичного 21) запрограммировал префикс 51. Потом понял, что не то, когда сканер в разрыв клавиатуры не нажимал F7.

Сама процедура программирования префиксов тоже описана неявно, пришлось писать себе памятку, переводя язык инструкции на нормальный человеческий:

  1. Считать ШК «Вход в конфигурирование»
  2. Считать ШК «Установка префикса»
  3. Считать ШК с цифрами «1», «5» для клавиши F7
  4. Считать ШК «Validate»
  5. Считать ШК «Update»

В моем случае я пропускал Validate, а без этого префикс не ставился.

Дополнительные замечания

Ездить каждый раз к пользователям сканеров не получалось. Поэтому я научил одного сотрудника на месте распечатывать нужные страницы из руководства и сканировать нужные мне последовательности команд.

Есть специальная программа ScanMaster, которая может назначать префикс и делать другие настройки для разных моделей сканеров. Но она работает только со сканерами, подключенными через COM, а не в разрыв клавиатуры.

Для проверки, работает или нет сканер, можно использовать все же драйвер Атол, программа «Драйвер устройств ввода». Нажать «Настройка свойств» — «Поиск оборудования», и далее просканировать любой штрих-код. Если сканер подключен нормально, будет отображен штрих-код.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *