Эмуляция работы сканера штрих-кода. Настройка подключения сканера штрих-кода в 1С 7.7 и 1С 8.












Если под рукой нет сканера штрих-кода, а нужно проверить, отладить, работу программы. Работу сканера штрих-кода можно эмулировать с помощью программ. Описан пример эмуляции: настройка используемых программ и настройка подключения сканера штрих-кода в 1С 7.7 и 1С 8.
 

Эмуляция работы сканера штрихкода

Если под рукой нет сканера штрихкода, а нужно проверить, отладить, работу программы.
Есть два варианта:

  • использовать стандартные средства для работы со сканером штрихкода и эмулировать сам сканер штрихкода, как будто он физически подключен к 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 портов:  «Устройства — Добавить виртуальный нуль-модем»

Virtual Null Modem 

 Окно «Виртуальные порты»:

Первый виртуальный порт — COM10.

Второй виртуальный порт — COM11.

Тип нуль-модема:  «С полным контролем передачи».

Окно Виртуальные порты

Нажимаем  «ОК»

Если тип старта «Ручной», то для активации портов в системе нужно выбрать пункт меню: «Система — Активировать все виртуальные нуль-модемы».

1.(2) Создание связанной пару виртуальных COM портов с использованием Virtual Serial Ports Emulator.
Устанавливаем и запускаем Virtual Serial Ports Emulator.

Для начала, установим русский язык интерфейса:  «Language — Russian»

В окне VSPE переходим к созданию пары COM портов:  «Устройство — Создать»

VSPE - запуск настройки 

 Окно «Тип устройства»:

Окно Тип устройства

Здесь выбираем тип устройства «Pair» (т.е. «Пара»). Нажимаем «Далее».

 Окно «Тип устройства»:

Здесь выбираем тип устройства «Pair» (т.е. «Пара»)

Первый виртуальный порт — COM10.

Второй виртуальный порт — COM11.

Окно Характеристики устройства

Запуск эмуляции:

 Для запуска выбираем в меню «Эмуляция — Запуск»

Окно VSPE - эмуляция


2. Теперь настраиваем подключение сканера штрихкода в 1С.

Показаны примеры подключения как для 1С: Предприятие 7.7, так и 1С: Предприятие 8.

2.(1) Настройка подключения сканера штрихкода в 1С: Предприятие 7.7.

 Настройка подключения в 1С 77

2.(2) Настройка подключения сканера штрихкода в 1С: Предприятие 8.

 Настройка поключения в 1С 8

Когда сканер штрихкода настроен, можно его проверить.

3. Непосредственно эмуляция сканера штрихкода 

Устанавливаем и запускаем COM Port DE (эмулятор).

COM Port Data Emulator

На начальной вкладке  «Device»: выбираем пункт «Serial port», устанавливаем следующие параметры «11»; «9600,8,N,1»; «None». Как на рисунке.  «11» — это номер COM-порта, указанного в VNM вторым.

Переходим ко второй вкладке  «Data source». Здесь есть множество настроек. Разберем самый простой вариант использования.

Data source 

Устанавливаем режим «Data source» в «Text strings» (т.е. источник данных – это строки текста).

Далее два варианта:

1. Простой. Вводим одну строку текста – нужный штрихкод. При нажатии кнопки «Start» программа через COM 11 отправит штрихкод на COM 10, как и настроено, так как будто это реальный сканер штрихкода, подключенный к .COM 10. Замечание: даже если задано будет несколько строк со штрихкодами, отправлена будет только первая.

2. Списком. Вводим несколько строк со штрихкодами, например, как на рисунке. Включаем флаг автоматической отправки с интервалом «Auto sending interval (ms)». Выбираем режим интервала «Fixed» (фиксированный), указываем интервал, в миллисекундах. При нажатии кнопки «Start» программа будет отправлять штрихкоды построчно, с указанным интервалом времени между строк.

Остановить цикл отправки можно нажав кнопку «Stop» на вкладке «Log», где отражаются все отправленные данные.

 Log

Важное замечание

 Не пытайтесь проверить эмуляцию сканера штрихкода встроенной функцией «Тест устройства» (одинаково для 1С 77 и 1С 8):

Тест устройства

Как видно из рисунка, данная функция занимает все порты в системе, в том числе и порт COM 11 являющийся связующим звеном в связке COM 10 — COM 11. Таким образом эмулятор не сможет отправить штрихкод на COM 10 через COM 11, так как COM 11 уже занят этим «тестом». Эмулятор выдаст соответствующую ошибку о занятости порта.

___________________________________________________

Варианты эмуляции работы сканера штрихкода с помощью обработок, генерирующих события

29 Comments

  1. tdr1225

    (1) Статью не читал, т.к. много букв.

    Мне для эмуляции сканера хватает ВнешнееСобытие() из FormEx’a

    Описание, как это делается, можно уместить в 2-3 строки.

    Reply
  2. serega3333

    крутой мануал, надо будет покурить когда столкнусь

    Reply
  3. 1st

    (1) tdr1225, в случае непосредственной генерации события не отработает библиотека сканера штрихкода.

    Кроме того, полагаю, что для генерации события необходимо знать параметры вызова, чтобы событие было обработано так как нужно. Хоть эти параметры и нетрудно узнать, но для этого понадобится генерация этих события библиотекой, т.е. нужен подключенный сканер.

    При всем этом соглашусь с Вами, что, если не учитывать все нюансы с генерацией через FormEx, генерация события в большинстве случаев была бы достаточна.

    Reply
  4. aspirator23

    Интересно описана эмуляция сканера. А как эмулировать com-порт для настоящего сканера на Windows х64?

    Есть известный эмулятор com-портов для х32.

    Reply
  5. 1st

    (4) aspirator23, не могу понять Ваш вопрос. У Вас есть USB сканер, но Вы его не можете подключить к Windows (какой кстати?) х64, потому что не смогли найти 64битные драйвера USB с эмуляцией COM-порта?

    Reply
  6. aspirator23

    (5) К Windows 7 х64 не могу подключить USB сканер.Не могу найти драйвер для эмуляции сом порта .На х32 работает — есть эмулятор.

    Reply
  7. 1st

    (6) aspirator23. Если производитель HoneyWell то у них на сайте есть драйвер (см. в архиве — там для х32 и х64): honeywellaidc.com — Выбор сканера — после выбора сканера на закладке SoftWare.

    Reply
  8. aspirator23

    (7) Спасибо за информацию

    Reply
  9. Artemuch2

    ДА штука безусловно нужная и полезная особенно для разработчиков

    Reply
  10. Nebiros777

    Что-то не ловит у меня внешнее событие по этим настройкам. Несколько раз все перепроверил и ноль реакции. Правда и «Предприятие» у меня запускается через внешнюю обработку. У кого-нибудь кроме автора работает?

    Reply
  11. 1st

    (10) Nebiros777, Уточни, речь идет о настройке сканера ШК в 1С, или об эмуляции COM-порта. Какая версия 1С:Предприятие? Какая версия Windows?

    Reply
  12. whtblck

    сто лет назад качнул себе приблуду — эмулятор сканера ШК.

    по сей день пользуюсь без всего вышеописанного и горя не знаю

    Reply
  13. whtblck

    для пользователя «Wing»

    Не могу отправить личное сообщение, требуют бабок.

    Давай мыло, намылю

    Reply
  14. ValeriVP

    (12) Поделись плиз эмулятором сканера ШК

    Reply
  15. whtblck

    (14) куда отправлять?

    Reply
  16. bsa28000

    (15) whtblck, а можно его же и на адрес bsa28000@gmail.com?

    Reply
  17. Alexey_A

    (15) whtblck, можно и мне? 794655@mail.ru

    спасибо!

    Reply
  18. Imelior

    (12) whtblck, Можно и мне такую приблуду, очень нужно. E-mail: kirich_88@mail.ru Буду благодарен!

    Reply
  19. 1st

    (16) bsa28000, (17) Alexey_A, (18) Imelior,

    Смотрите ссылки в конце статьи:

    1С 7.7: http://infostart.ru/public/14587/

    1С 8.2: http://infostart.ru/public/283453/

    Reply
  20. mnitsi

    Спасибо за статью, очень выручила!!! Единственное, почему то COM Port DE (эмулятор) на Рознице 2.1 в режиме РМК не сразу срабатывал, только после нажатия постоянного считывания эмуляция считывания сканером происходила в 1С.

    Reply
  21. 1st

    (20) mnitsi, не совсем понял фразу «постоянного считывания» — имеется ввиду «Repeat Mode» (циклом) в программе CPDE?

    Скорее всего у Вас так получилось потому, что в момент передачи штрихкодов программой CPDE, само окно 1С8 не было активно, либо не было активно окно формы, принимающей штрихкоды. Дело в том что в 1С8 в процедуре обработки события формы есть проверка на активность окна, и если окно не активно — событие не обрабатывается (пропускается).

    Reply
  22. slavik27

    спасибо, отличная статья. все работает и эмулирует

    Reply
  23. markers

    Спасибо! Тот самый момент когда надо проверить реакцию программы на штрихкод, а в программе есть условие «ВводДоступен()» и как на зло, нет сканера под рукой.

    Reply
  24. kirulbek

    (15) whtblck, если можно мне тоже отправляйте kirulbek@gmail.com

    Reply
  25. whtblck

    (24) kirulbek, в (19) ведь 1st написал — есть ссылки, качать можно, бесплатно.

    у меня эмулятор только 7-рочный, там еще есть и 8-рочный.

    7-рочный намылил

    Reply
  26. jaroslav.h

    все працює, дякую

    Reply
  27. jsmith

    Круто

    Reply
  28. RocKeR_13

    (12) он просто генерирует оповещения через ПодключитьОбработчикОжидания. Для УТ пойдет, а в рознице, например, штрихкоды в форме ловятся из внешних событий

    Reply
  29. Grubly

    (13) whtblck, Александр, вышли и мне пожалуйста обработку! Tpavka@yandex.ru СПАСИБО!

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *