Эмуляция работы сканера штрихкода
Если под рукой нет сканера штрихкода, а нужно проверить, отладить, работу программы.
Есть два варианта:
- использовать стандартные средства для работы со сканером штрихкода и эмулировать сам сканер штрихкода, как будто он физически подключен к COM-порту (рассматривается в этой статье);
преимущества: проверяется полная работоспособность 1С работы со сканером штрихкода, как в рабочих условиях;
недостатки: установка и настройка дополнительного ПО. - использовать специальные обработки эмулирующие события (для 1С 8 - через стандартные процедуры, для 1С 7.7 - через внешние компоненты - см. ссылки в конце статьи);
преимущества: более простая установка и настройка ПО и обработок;
недостатки: исключает проверку настроек и библиотек работы со сканером штрихкода, т.к. генерируется само событие (нужно знать параметры события для правильного вызова)
Работу сканера штрихкода можно эмулировать с помощью программ.
Для посылки данных на COM-порт можно использовать программу "COM Port Data Emulator" (бесплатная). "COM Port Data Emulator" эмулирует устройство подключенное к COM или Ethernet.
Для эмуляции COM-порта, а точнее для создания виртуально связанной между собой пары COM-портов можно использовать программу "Virtual Null Modem" (trial) или "Virtual Serial Ports emulator" (бесплатная).
Создание виртуальных COM-портов будет рассмотрено как с использованием Virtual Null Modem, так и с использованием Virtual Serial Ports emulator.
1. Для начала создадим связанную пару виртуальных COM портов. Порты будут связаны между собой так, как будто это порты на разных устройствах соединенные между собой кабелем (в нашем случае: порт на ПК и порт на сканере ШК).
1.(1) Создание связанной пару виртуальных COM портов с использованием Virtual Null Modem.
Устанавливаем и запускаем Virtual Null Modem (VNM).
В окне VNM создаем пару COM портов: «Устройства - Добавить виртуальный нуль-модем»
Окно «Виртуальные порты»:
Первый виртуальный порт - COM10.
Второй виртуальный порт - COM11.
Тип нуль-модема: «С полным контролем передачи».
Нажимаем «ОК»
Если тип старта «Ручной», то для активации портов в системе нужно выбрать пункт меню: «Система - Активировать все виртуальные нуль-модемы».
1.(2) Создание связанной пару виртуальных COM портов с использованием Virtual Serial Ports Emulator.
Устанавливаем и запускаем Virtual Serial Ports Emulator.
Для начала, установим русский язык интерфейса: «Language - Russian»
В окне VSPE переходим к созданию пары COM портов: «Устройство - Создать»
Окно «Тип устройства»:
Здесь выбираем тип устройства «Pair» (т.е. "Пара"). Нажимаем «Далее».
Окно «Тип устройства»:
Здесь выбираем тип устройства «Pair» (т.е. "Пара")
Первый виртуальный порт - COM10.
Второй виртуальный порт - COM11.
Запуск эмуляции:
Для запуска выбираем в меню «Эмуляция - Запуск»
2. Теперь настраиваем подключение сканера штрихкода в 1С.
Показаны примеры подключения как для 1С: Предприятие 7.7, так и 1С: Предприятие 8.
2.(1) Настройка подключения сканера штрихкода в 1С: Предприятие 7.7.
2.(2) Настройка подключения сканера штрихкода в 1С: Предприятие 8.
Когда сканер штрихкода настроен, можно его проверить.
3. Непосредственно эмуляция сканера штрихкода
Устанавливаем и запускаем COM Port DE (эмулятор).
На начальной вкладке «Device»: выбираем пункт «Serial port», устанавливаем следующие параметры «11»; «9600,8,N,1»; «None». Как на рисунке. «11» - это номер COM-порта, указанного в VNM вторым.
Переходим ко второй вкладке «Data source». Здесь есть множество настроек. Разберем самый простой вариант использования.
Устанавливаем режим «Data source» в «Text strings» (т.е. источник данных – это строки текста).
Далее два варианта:
-
Простой. Вводим одну строку текста – нужный штрихкод. При нажатии кнопки «Start» программа через COM 11 отправит штрихкод на COM 10, как и настроено, так как будто это реальный сканер штрихкода, подключенный к .COM 10. Замечание: даже если задано будет несколько строк со штрихкодами, отправлена будет только первая.
-
Списком. Вводим несколько строк со штрихкодами, например, как на рисунке. Включаем флаг автоматической отправки с интервалом «Auto sending interval (ms)». Выбираем режим интервала «Fixed» (фиксированный), указываем интервал, в миллисекундах. При нажатии кнопки «Start» программа будет отправлять штрихкоды построчно, с указанным интервалом времени между строк.
Остановить цикл отправки можно нажав кнопку «Stop» на вкладке «Log», где отражаются все отправленные данные.
Важное замечание
Не пытайтесь проверить эмуляцию сканера штрихкода встроенной функцией "Тест устройства" (одинаково для 1С 77 и 1С 8):
Как видно из рисунка, данная функция занимает все порты в системе, в том числе и порт COM 11 являющийся связующим звеном в связке COM 10 - COM 11. Таким образом эмулятор не сможет отправить штрихкод на COM 10 через COM 11, так как COM 11 уже занят этим "тестом". Эмулятор выдаст соответствующую ошибку о занятости порта.
___________________________________________________
Варианты эмуляции работы сканера штрихкода с помощью обработок, генерирующих события
- 1С 7.7: Генерация события через внешнюю компоненту - Эмулятор сканера ШтрихКода (//infostart.ru/public/14587/)
- 1С 8.2: Генерация события через вызов стандартной процедуры DoEvent(Событие, Дата) - Эмулятор сканера штрихкода / генератор оповещений (8.2) (//infostart.ru/public/283453/)