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

Подключение нескольких сканеров штрих-кода по rdp (win server 2003, 2008 х64 ) 1Сv8: Управление торговлей 10.3

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

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

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

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

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

Вот как я подправил данный фрагмент кода:

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

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

Источник

Сканер штрих-кодов через 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

Раньше никогда этого не делал, поэтому делюсь опытом.

Проброс COM- портов

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

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

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

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

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

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

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

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

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

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

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

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

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

Случайно нашел тему об этом и решение тут. Там один комментатор писал, что когда он заменил scanopos предложенной версией этой компоненты, то чуть не заплакал – все заработало.

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

Я достаточно много времени потратил на поиск решения, но все решилось просто – достаточно установить любой префикс и прописать этот префикс в подключении торгового оборудования. Я использовал для общности F7.

Настройка префикса штрих-кода

Чтобы настроить префикс F 7 пришлось помучаться.

У всех сканеров код этой клавиши разный, поэтому я заглянул в таблицу шестнадцатеричных кодов:

article image001

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

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

1. Считать ШК «Вход в конфигурирование»

2. Считать ШК «Установка префикса»

3. Считать ШК с цифрами «1», «5» для клавиши F7

4. Считать ШК «Validate»

5. Считать ШК «Update»

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

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

Источник

Сканирование ШК с помощью ТСД через RDP

При сканировании на ТСД через RDP в 1С попадает обрезанный случайным образом штрихкод.
Стандартный 1С-овский драйвер обрезает случайным образом штрихкод, сейчас установил АТОЛовский драйвер, перевел в режим клавиатуры и попробовал с разным таймаутом посканировать. Результат: АТОЛовский драйвер вообще отправляет лишь одну случайную цифру.

Входящие данные смотрю в режиме отладки в процедуре ОбработкаВнешнегоСобытия глобального модуля сразу после сканирования по точке останова в параметре «Данные».

В неё, насколько я понимаю, с помощью драйвера направляются данные которые считались на ТСД.

Через RDP в блокнот сканируется 10/10 раз нормально, а в 1С косячит начиная с платформы 8.3.6.2390. Сейчас установил 8.3.7.1917. Проблема всё также актуальна.

Стандартный драйвер у 1С не менялся уже давно (по крайней мере с того релиза платформы, когда всё работало).

В чем может быть проблема?
Подскажите, плиз. Уже всю голову сломал.
Спасибо.

(2) по описанию похоже, но вроде как не делит на две строчки, а просто обрезает. В параметр «Данные» приходит одной строкой и обрезано.

А вы как решили вопрос?

(8) Бывают, но я проводил эксперимент в период, когда никто не сканировал кроме меня.

А ты перезагружал сервак?

(8) Я вам рекомендую очень, как мне кажется, простой вариант:
— ставите две платформы: там где есть ошибка, и там где нет.
— ставите типовую конфу с последними драйверами 1С.
— Пишите видео: ошибки нет, ошибка есть.
— Отправляете все в 1С, ждете рекомендации от них. Они, кстати, много чего предлагают и в плане диагностике, и вообще хорошо расследуют проблему. Т.е. вполне возможно, что-то смогут вам более детальнее подсказать.

(13) Проблема появляется в обоих случаях и при работе одного терминала и при параллельной работе. От этого не зависит.

(21) Ан нет. Ошибся. При тесте устройства разбивает на 2 строки прям как у вас.

А какой в итоге вы ТСД приобрели?

(21) Разбивает строку в среднем раз на 15 попыток. Разбивает на 2 строки случайным образом.
Допустим, ШК: 4716503071554 может разбить вот так

Источник