Введение
Драйвер OPOS для интеграции с системой "1С:Предприятие"
Функциональные требования к внешним компонентам
Ссылки на дополнительные ресурсы по стандарту OPOS
В данной статье пойдет речь о методиках разработки внешних компонент с применением стандарта OPOS для взаимодействия с драйверами нижнего уровня.
Стандарт OPOS (OLE for Retail POS) разработан совместно компаниями Epson, Fujitsu/ICL, Microsoft, NCR в 1994 году.
Стандарт OPOS определяет Управляющий Объект (Control Object) как архитектуру доступа и набор интерфейсов (способы управления) к классам периферийных устройств POS терминала: фискальный регистратор, дисплей покупателя, денежный ящик и т.д.
Единый стандарт позволяет одинаково управлять одним классом устройств разных производителей. Так как управление ведется через объект управления (OPOS Драйвер, или OPOS Control), то для работы, например, с фискальными регистраторами разных производителей не требуется изменять Приложение (Application), работающее через единый интерфейс Управляющего Объекта, достаточно заменить только Исполняющий Объект (Service Object). Этим достигается гибкость и независимость программы от производителя оборудования. (Рис. 1)
Рис.1
Из рисунка 1 видно, что внешняя компонента находится на уровне между Управляющим Объектом (драйвер OPOS) и приложением ("1С:Предприятие"). Но такая схема взаимодействия необходима, если Управляющий Объект уже реализован. Тогда для интеграции с системой "1С:Предприятие" пишется "драйвер-прослойка" (внешняя компонента), которая с одной стороны реализует требования к данному виду устройств со стороны "1С:Предприятия", а с другой - реализует вызов всех свойств и методов, определенных для Управляющего Объекта данного вида оборудования. Видно, что количество звеньев в цепочке увеличивается, что ведет к увеличению трудозатрат при разработке (требуется реализация дополнительного интерфейса взаимодействия). К тому же внешняя компонента становится не универсальной, а "заточенной" на определенный разработчиком интерфейс взаимодействия.
Сократить описанные затраты можно на этапе разработки Управляющего Объекта. Для этого необходимо разместить Управляющий Объект во внешней компоненте, таким образом реализовав внешнюю компоненту по стандарту OPOS. Это позволить отказаться от одного звена цепочки. Тем самым при реализации функционала внешней компоненты "1С:Предприятие" того или иного вида устройств, будет происходить обращение через интерфейс не к Управляющему Объекту, а к Исполняющему Объекту. Внешняя компонента, реализованная по такому принципу, приобретает универсальность, присущую драйверам, написанным по стандарту OPOS. При этом исчезает избыточность (методы и свойства предоставляемые драйвером, перегруженная свойствами "Страница свойств"), которая наблюдается при реализации интерфейса Управляющего Объекта в отдельной библиотеке.
Данные требования не ограничивают варианты реализации внешней компоненты для интеграции оборудования, подключаемого через OPOS драйвера, с системой "1С:Предприятие", а только предлагаю пути для оптимизации разработки этих решений.
Общие требования к драйверам OPOS для интеграции с системой "1С:Предприятие" складываются из совокупности применяемых технологий для взаимодействия как "сверху", так и "снизу".
"Сверху" осуществляется взаимодействие с системой "1С:Предприятие". Система программ "1С:Предприятие" поддерживает обмен данными с различным торговым оборудованием по согласованной технологии (рис.2).
Рис.2
Драйвер торгового оборудования должен быть реализован в соответствии с общей концепцией использования внешних компонент для взаимодействия с торговым оборудованием, подключаемым к системе программ "1С:Предприятие". Использование данного подхода позволяет упростить процесс подключения нового торгового оборудования к "1С:Предприятию".
Общие требования к драйверу:
разработан в виде внешней компоненты (описание механизма создания внешних компонент приведено в документе «Документация по технологии создания внешних компонент» на диске ИТС в разделе «Технология создания внешних компонент» Методической поддержки 1C:Предприятия 8.0.);
реализует функциональность подключаемого вида торгового оборудования в полном объеме;
предоставляет определенный набор свойств и методов для возможности настройки и управления драйвером.
Названия свойств и методов должны быть русскоязычными и англоязычными (например, Порт - Port, Скорость - Speed, Сигнал() – Signal()). Также драйвер должен поддерживать множественные подключения (в соответствии с идеологией COM технологии) и поддерживать работу с несколькими устройствами. При возникновении ошибки в работе драйвер должен сообщить об этом и передавать описание произошедшей ошибки.
Более подробно требования описаны в разделе "Требования к внешним компонентам для работы с торговым оборудованием".
"Снизу" драйвер взаимодействует (по выбору разработчика) либо с Управляющим Объектом, либо Исполняющим Объектом. При разработке драйвера в одной компоненте с Управляющим Объектом нет необходимости разрабатывать дополнительный интерфейс взаимодействия между драйвером и Управляющим Объектом.
Основная идея внешней компоненты, помимо интеграции - это предоставление унифицированных общих операций над оборудованием, без необходимости вдаваться в алгоритм выполнения тех или иных операций.
Ниже приводятся дополнительные ссылки на документацию по OPOS стандарту (на английском языке):
1. Unified POS - документация по стандарту Unified POS (включает в себя OPOS, JavaPOS, POS for .NET и XMLPOS).
2. История релизов стандарта OPOS - содержит сводную таблицу с датами выхода очередных версий стандарта и ссылки документацию.
3. Компоненты Общего Управляющего Объекта - содержит ссылки на последние версии ActiveX компоненты Общего Управляющего Объекта (Common Control Object), компоненты режима отладки, а также исходные коды данных компонент.