Мне пришлось настраивать подключение порядка 10 сканеров штрих-кода по RDP. Использовались Cipher Lab 1000, 1266 и 1562.
Раньше никогда этого не делал, поэтому делюсь опытом.
Сканер подключается к компьютеру или непосредственно в реальный COM-порт или в USB, но даже в этом случае он занимает виртуальный COM-порт (VCOM).
Проброс портов делается элементарно, нужно в свойствах RDP подключения указать галочку «Использовать порты».
Существует два способа подключения сканера штрих-кода к 1С – через работы в режиме разрыва клавиатуры и через COM-порт.
В режиме разрыва клавиатуры сканер просто набирает клавиши, которые соответствуют символам штрих-кода. Не требуется никаких драйверов, чтобы сканер заработал в 1С.
Во всех типовых конфигурациях по кнопке F7 открывается окно ввода штрих-кода. Поэтому достаточно сканеру запрограммировать префикс F7 и все, он будет поддерживаться 1С.
Если конфигурация дорабатывалась и в некоторых участках забыли прописать типовую поддержку F7, проще дописать эту поддержку. Но в качестве альтернативы можно использовать драйвер Атол старых версий, где выбрать в качестве порта «Разрыв клавиатуры».
Новые версии драйверов Атол платные, а бесплатные делают 10-секундную задержку перед обработкой штрих-кода.
Способ прост для подключения, но неудобен в работе.
Поэтому лучше все же, если используется разрыв клавиатуры, не использовать драйвер Атол (это лишние потери времени и символов), а просто запрограммировать префикс F7.
В моем случае был интересный глюк – буквы на некоторых штрих-кодах преобразовывались в верхний регистр. Я долго мучался, но мне подсказали, что нужно включить режим посимвольной передачи штрих-кода, а не пакетный, который стоял по умолчанию.
Работает более быстро и надежно. Событие в 1С подхватывается независимо от раскладки клавиатуры и текущего активного элемента в форме.
Настраивается просто – указывается COM-порт и все.
Но есть нюансы.
Драйвер Атол можно использовать только старых версий. Для сканера это не имеет особого смысла, поэтому лучше применять бесплатный драйвер Scanopos от 1с.
Но я столкнулся с ситуацией, когда в некоторых комбинациях компьютеров и сканер атоловский драйвер подключал сканер только один раз, а потом COM-порт оказывался занятым, а драйвер scanopos вообще вешал терминальную сессию. Причем такая проблема возникала только на дорогих сканерах. Просто CipherLab 1000 работал нормально.
Случайно нашел тему об этом и решение тут. Там один комментатор писал, что когда он заменил scanopos предложенной версией этой компоненты, то чуть не заплакал – все заработало.
Действительно, я скачал компоненту и даже в моих проблемных связках все заработало. Автор утверждает, что проблема возникает, когда сканер подключен не в реальный COM-порт, а в виртуальный (VCOM).
Конечно, немного странно использовать noname-решение, но оно работает, а сканер в COM удобнее для пользователя, чем в разрыв клавиатуры, поэтому почему бы и нет. Может быть, через 2 года, когда эта версия станет неактуальна, 1с починит свой scanopos для нормальной работы с VCOM по RDP.
Но возникла другая проблема – в 1С от сканера не доходил первый символ 0 штрих-кода. Видимо, драйвер преобразовывал штрих-код в число и терял ноль.
Я достаточно много времени потратил на поиск решения, но все решилось просто – достаточно установить любой префикс и прописать этот префикс в подключении торгового оборудования. Я использовал для общности F7.
Чтобы настроить префикс F7 пришлось помучаться.
У всех сканеров код этой клавиши разный, поэтому я заглянул в таблицу шестнадцатеричных кодов:
Но ошибся и вместо шестнадцатиричного 15 (десятичтного 21) запрограммировал префикс 51. Потом понял, что не то, когда сканер в разрыв клавиатуры не нажимал F7.
Сама процедура программирования префиксов тоже описана не явно, пришлось писать себе памятку, переводя язык инструкции на нормальный человеческий:
1. Считать ШК «Вход в конфигурирование»
2. Считать ШК «Установка префикса»
3. Считать ШК с цифрами «1», «5» для клавиши F7
4. Считать ШК «Validate»
5. Считать ШК «Update»
В моем случае я пропускал Validate, а без этого префикс не ставился.
Ездить каждый раз к пользователям сканеров не получалось. Поэтому я научил одного сотрудника на месте распечатывать нужные страницы из руководства и сканировать нужные мне последовательности команд.
Есть специальная программа Scan Master, которая может назначать префикс и делать другие настройки для разных моделей сканеров. Но она работает только со сканерами, подключенными через COM, а не в разрыв клавиатуры.
Для проверки, работает или нет сканер, можно использовать все же драйвер Атол, программа «Драйвер устройств ввода». Нажать «Настройка свойств» - «Поиск оборудования», и далее просканировать любой штрих-код. Если сканер подключен нормально, будет отображен штрих-код.