Автоматизируем розницу. Часть 2 - Торговое оборудование.

  • Автор:

retail-trade-automation-02-000.jpgНе будет преувеличением сказать, что автоматизация розничной торговли возможна только благодаря применению торгового оборудования. Поэтому очень важно понимать принципы его работы и взаимодействия с товароучетным ПО и операционной системой. Мы решили в первую очередь уделить внимание этому вопросу, так как от правильного выбора торгового оборудования во многом зависит окончательная конфигурация и общие затраты на автоматизацию.

Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

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

Несмотря на то, что мы будем рассматривать работу торгового оборудования совместно с товароучетной системой на базе платформы 1С:Предприятие 8, многое из сказанного будет справедливо и для иных платформ.

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

С точки зрения операционной системы (ОС) оборудование подключенное в разрыв клавиатуры или к COM-порту ничем не отличается от стандартной клавиатуры или периферийного устройства, никаких драйверов для них не требуется, а вся задача ОС заключается в передаче данных с соответствующего порта в запросившее их приложение. Так если мы подключим к COM-порту сканер штрих-кода и подключимся к этому порту через HyperTerminal, то в терминале отобразится считанный сканером код. А данные считанные устройством включенным в разрыв клавиатуры введутся туда, где расположен фокус ввода.

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

Каким же образом товароучетная система осуществляет взаимодействие с торговым оборудованием? Рассмотрим следующую схему:

retail-trade-automation-02-001.jpgОперационная система ничего не знает о подключенном оборудовании, для нее это еще одно устройство подключенное к COM-порту и еще один сетевой хост. Товароучетная система в свою очередь работает с определенными типами оборудования: сканер штрих-кода, считыватель магнитных карт, электронные весы и т.п. Для работы с ними предусмотрены определенные типовые процедуры и функции, которые не зависят от конкретной модели оборудования.

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

Следующий уровень абстракции представляет драйвер торгового оборудования. Это чаще всего динамическая библиотека (DLL) преобразующая запросы от обработки обслуживания понятные товароучетной системе в запросы к конкретному типу оборудования и делающая передаваемые оборудованием данные понятными товароучетной системе.

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

Следует четко понимать, что драйвер торгового оборудования не имеет ничего общего с драйвером ОС, так как операционная система просто получает или передает данные для COM или Ethernet порта, а драйвер ТО как раз представляет ту прослойку, которая в связке с обработкой обслуживания позволяет товароучетному ПО отличить сканер штрих-кода от электронных весов и т.д. и т.п.

Например стандартная обработка обслуживания 1С для сканера штрих-кода работает со стандартным драйвером 1С который поддерживает подключение сканеров только через COM-порт, в то время как драйвер ТО от АТОЛ позволяет подключать сканеры в режиме эмуляции клавиатуры, но при этом требуя использования собственной обработки обслуживания.

В случае использования оборудования с интерфейсом USB ситуация несколько усложняется. Перейдем к следующей схеме:

retail-trade-automation-02-002.jpg

Как видим, добавился еще один уровень - драйвер операционной системы. В ряде случаев USB-оборудование, такое как сканеры штрих-кода, определяются в системе как устройство ввода и эмулируют клавиатуру, в остальных случаях, а также при использовании режима эмуляции COM-порта вам потребуется драйвер для вашей операционной системы.

Обратите внимание, что до тех пор пока не будет установлен драйвер на уровне OC, драйвер ТО и, следовательно, обработка обслуживания не смогут взаимодействовать с торговым оборудованием.

Отдельного разговора заслуживает торговое оборудование работающее в режиме эмуляции клавиатуры (т.е. в разрыв клавиатуры). Данные передаваемые таким торговым оборудованием передаются как ввод с еще одной клавиатуры и обслуживаются в общем потоке клавиатурного ввода. Если мы подключим работающий в таком режиме считыватель магнитных карт, откроем Блокнот и считаем карту, то содержимое ее магнитной дорожки появится в Блокноте в виде текста.

Каким же образом передать данные от торгового оборудования товароучетной программе, выделив их из потока клавиатурного ввода? Для этого мы подготовили еще одну схему:

retail-trade-automation-02-003.jpgВ нашем случае в режиме эмуляции клавиатуры подключен считыватель магнитных карт, который не требует установки драйверов и воспринимается ОС как еще одна клавиатура, т.е. системе абсолютно все равно, что именно там подключено, все считанные / введенные данные попадут туда, где находится фокус ввода. Задача обработки обслуживания (в связке с драйвером ТО) - вырезать часть данных от торгового оборудования и передать их в товароучетную программу.

Таким образом возникает необходимость каким-то образом обозначить начало и конец передаваемых ТО данных. Для этих целей используются префикс и суффикс, которые представляют собой наборы символов, которые не должны встречаться в обычном клавиатурном вводе и не зависят от раскладки, например три Num+ подряд.

Встретив в клавиатурном вводе последовательность префикса, обработка обслуживания вырезает его и все что следует после, до тех пор пока не появится последовательность суффикса, вырезав его, обработка отдает текущую последовательность клавиатурного ввода ОС до тех пор пока снова не встретит в нем префикс.

Какие выводы можно сделать из вышесказанного? При выборе торгового оборудования в первую очередь следует обращать внимание на интерфейс подключения, при необходимости следует уточнить наличие драйверов для вашей ОС. Следующим шагом следует выяснить наличие драйверов ТО и обработки обслуживания для используемой вами конфигурации 1С:Предприятие. Следует помнить, что многие драйвера ТО являются платными, что может неожиданно увеличить бюджет проекта.

Простой пример: недорогой и весьма популярный сканер штрих-кода Symbol LS1203 с интерфейсом USB может работать в режиме эмуляции COM или в режиме эмуляции клавиатуры. В первом случае он требует драйверов уровня операционной системы, которые существуют только для 32-битных систем, зато позволяет использовать стандартный (и бесплатный) драйвер ТО от 1С. В режиме эмуляции клавиатуры его можно подключить к 1С через обработку обслуживания от АТОЛ, которая требует платного драйвера ТО этого же разработчика.

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

Возвращаясь к сканеру Symbol LS1203, мы были свидетелями ситуации, когда одна фирма купила данные сканеры, в тоже время закупив Windows 7 x64. В итоге единственным рабочим решением оказалось приобретение платных драйверов ТО от АТОЛ, которые поддерживают режим работы сканера ШК в режиме разрыва клавиатуры, что крайне отрицательно сказалось на бюджете.

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

Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Дополнительные материалы:


  1. Автоматизируем розницу. Часть 1 - Общие вопросы.
  2. Автоматизируем розницу. Часть 2 - Торговое оборудование.
  3. Автоматизируем розницу. Часть 3 - Выбираем торговое оборудование.
  4. Автоматизируем розницу. Часть 4 - Весовой товар и весы.
  5. Настройка эквайринговых систем INPAS Smart Sale для работы в 1С:Розница 1.0.
  6. Подключаем принтер этикеток к 1С:Предприятие на примере Godex DT2
  7. Подключаем принтер чеков к 1С:Предприятие на примере Posiflex Aura-6900
  8. Подключаем торговое оборудование к 1С:Предприятие 8
  9. Торговое оборудование. Программируемые клавиатуры
  10. Подключаемся к ЕГАИС. Общие вопросы
  11. Подключаемся к ЕГАИС. Практика
  12. Переход с 1С:Розница 1.0 на 1С:Розница 2.2. Практическое руководство
  13. 1С:Предприятие 8. Поддержка торгового оборудования в Linux (Debian/Ubuntu)
  14. Подключаем принтер этикеток к 1С:Предприятие в управляемом приложении

Помогла статья? Поддержи автора и новые статьи будут выходить чаще:

Поддержи проект!

Или подпишись на наш Телеграм-канал: Подпишись на наш Telegram-канал



Loading Comments