Проброс COM-портов
Сканер подключается к компьютеру или непосредственно в реальный 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 работал нормально.
Случайно нашел тему об этом и решение тут. Там один комментатор писал, что когда он заменил scanopos предложенной версией этой компоненты, то чуть не заплакал – все заработало.
Действительно, я скачал компоненту и даже в моих проблемных связках все заработало. Автор утверждает, что проблема возникает, когда сканер подключен не в реальный COM-порт, а в виртуальный (VCOM).
Конечно, немного странно использовать noname-решение, но оно работает, а сканер в COM удобнее для пользователя, чем в разрыв клавиатуры, поэтому почему бы и нет. Может быть, через 2 года, когда эта версия станет неактуальна, 1с починит свой scanoposдля нормальной работы с VCOMпо RDP.
Но возникла другая проблема – в 1С от сканера не доходил первый символ 0 штрих-кода. Видимо, драйвер преобразовывал штрих-код в число и терял ноль.
Я достаточно много времени потратил на поиск решения, но все решилось просто – достаточно установить любой префикс и прописать этот префикс в подключении торгового оборудования. Я использовал для общности F7.
Настройка префикса штрих-кода
Чтобы настроить префикс F7 пришлось помучаться.
У всех сканеров код этой клавиши разный, поэтому я заглянул в таблицу шестнадцатеричных кодов:
Но ошибся, и вместо шестнадцатеричного 15 (десятичного 21) запрограммировал префикс 51. Потом понял, что не то, когда сканер в разрыв клавиатуры не нажимал F7.
Сама процедура программирования префиксов тоже описана неявно, пришлось писать себе памятку, переводя язык инструкции на нормальный человеческий:
- Считать ШК «Вход в конфигурирование»
- Считать ШК «Установка префикса»
- Считать ШК с цифрами «1», «5» для клавиши F7
- Считать ШК «Validate»
- Считать ШК «Update»
В моем случае я пропускал Validate, а без этого префикс не ставился.
Дополнительные замечания
Ездить каждый раз к пользователям сканеров не получалось. Поэтому я научил одного сотрудника на месте распечатывать нужные страницы из руководства и сканировать нужные мне последовательности команд.
Есть специальная программа ScanMaster, которая может назначать префикс и делать другие настройки для разных моделей сканеров. Но она работает только со сканерами, подключенными через COM, а не в разрыв клавиатуры.
Для проверки, работает или нет сканер, можно использовать все же драйвер Атол, программа «Драйвер устройств ввода». Нажать «Настройка свойств» - «Поиск оборудования», и далее просканировать любой штрих-код. Если сканер подключен нормально, будет отображен штрих-код.