Афанасьев Виталий

личная страничка

  • Увеличить размер шрифта
  • Размер шрифта по умолчанию
  • Уменьшить размер шрифта

Сканер штрихкода и 1С

Здесь разобрано взаимодействие сканера штрихкода и 1С.


 

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

Вообще сканер штрихкода может передавать информацию либо через COM порт, либо через буфер клавиатуры. Сам по себе сканер штрихкода как правило как правило какого-либо драйвера для работы не требует. Условным исключением являются сканеры типа USB-VirtualCOM. То есть: сканер подключается к USB, но в системе выглядит так: к USB подключен виртуальный COM-порт, а сам сканер уже к нему. Фактически драйвер в таких случаях требуется не для сканера, а дла адаптера виртуального COM-порта.

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

Казалось бы, что первый вариант проще. Но сля того, чтобы программа (1С в данном случае) обработала введенный штрихкод, то должно быть активно поле ввода штрихкода. Иначе введенные символы уходят в "никуда". Фактически это означает, что всякий раз перед сканированием пользователь должен актикировать это поле (т.е. нажать клавишу или кликнуть мышкой). Что существенно снижает производительность труда.

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

Позже появились драйверы (внешние компоненты 1С для сканера штрихкодов), которые позволяли использовать клавиатурный сканер аналогично COM порту. Суть простая: отслеживается буфер клавиатуры и выявляется ввод штрихкода (быстро введенная последовательность цифр с указанными префиксом и суффиксом). Делается это до передачи введенных символов на обработке. Если введенные символы распознаны, как штрихкод - данная последовательность изымается из буфера клавиатуры и передается в 1С уже как внешнее событие.

Первым появился такой драйвер разработки АТОЛ. Однако, через некоторое время он стал платным (последняя бесплатная версия -). К счастью, через некоторое время аналогичную функциональность получил драйвер от 1С (этот пока бесплатный).

Особую актуальность функция работы с клавиатурным сканером штрихкодов получила при использовании терминала сбора данных. Данные устройства в качестве операционной системы обычно используют Windows CE или Windows Mobile. Стали появляться ТСД и на ОС Android. Обычным 1С на данных устройствах запустить  нельзя (только мобильную версию). Поэтому запускается клиент терминалов (удаленного рабочего стола), а уже в нем 1С. (То есть 1С фактически работает на сервере терминалов).

Однако, отсканированный ТСД штрихкод тоже должен как-то обрабатываться. Клиент удаленного  рабочего стола сам по себе работать со сканером не имеет. Поэтому на терминал сбора данных устанавливается программы типа ScanWedge или DataWedge. Данные программы обеспечивают сканирование штрихкода и преобразование его в нажатия клавиш (как будто пользователь набрал его на клавиатуре). На терминальном сервере же устанавливается компонента для сканера 1С, настроенная на клавиатурный сканер. Таким образом обеспечивается передача штрихкодов на сервер.

Что делать, если используются не только терминалы сбора данных, но и сканеры штрикода ? При этом не редкость ситуация, когда есть как компьютеры, на которых 1С запущена непосредственно, так и те, на которых работает терминальный клиент, а 1С запущена на сервере. При этом сканеры штрихкода - для COM порта. Не редкость и когда один и тот же пользователь запускает программу то локально, то в терминале.

В таком случае самый простой вариант - использовать программу, которая принимает символы из COM порта и выдает их в буфер клавиатуры. Я лично использую для этого бесплатную программу AACKeys. Благодаря ей любой сканер становится "клавиатурным", что позволяет использовать единую настройку драйвера сканера штрихкодов 1С для всех пользователей и подключений.

Обновлено 31.12.2016 21:10