Розробка драйверів OPOS
У цій статті йтиметься про методики розробки зовнішніх компонент із застосуванням стандарту OPOS для взаємодії з драйверами нижнього рівня.
Вступ
Драйвер 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
Драйвер OPOS для інтеграції з системою "1С:Підприємство"
З рисунка 1 видно, що зовнішня компонента знаходиться на рівні між Керуючим Об'єктом (драйвер OPOS) і застосунком ("1С:Підприємство"). Але така схема взаємодії необхідна, якщо Керуючий Об'єкт уже реалізовано. Тоді для інтеграції із системою "1С:Підприємство" пишеться "драйвер-прошарок" (зовнішня компонента), який з одного боку реалізує вимоги до цього виду пристроїв з боку "1С:Підприємства", а з іншого — реалізує виклик усіх властивостей і методів, визначених для Керуючого Об'єкта цього виду обладнання. Видно, що кількість ланок у ланцюжку збільшується, що призводить до збільшення трудовитрат під час розробки (потрібна реалізація додаткового інтерфейсу взаємодії). До того ж зовнішня компонента стає не універсальною, а "заточеною" під певний визначений розробником інтерфейс взаємодії.
Скоротити описані витрати можна на етапі розробки Керуючого Об'єкта. Для цього необхідно розмістити Керуючий Об'єкт у зовнішній компоненті, таким чином реалізувавши зовнішню компоненту за стандартом OPOS. Це дасть змогу відмовитися від однієї ланки ланцюжка. Тим самим під час реалізації функціоналу зовнішньої компоненти "1С:Підприємство" того чи іншого виду пристроїв відбуватиметься звернення через інтерфейс не до Керуючого Об'єкта, а до Виконавчого Об'єкта. Зовнішня компонента, реалізована за таким принципом, набуває універсальності, властивої драйверам, написаним за стандартом OPOS. При цьому зникає надмірність (методи та властивості, що надаються драйвером, перевантажена властивостями "Сторінка властивостей"), яка спостерігається під час реалізації інтерфейсу Керуючого Об'єкта в окремій бібліотеці.
Ці вимоги не обмежують варіанти реалізації зовнішньої компоненти для інтеграції обладнання, що підключається через OPOS драйвери, із системою "1С:Підприємство", а лише пропонують шляхи для оптимізації розробки цих рішень.
Функціональні вимоги до зовнішніх компонент
Загальні вимоги до драйверів OPOS для інтеграції з системою "1С:Підприємство" складаються із сукупності застосовуваних технологій для взаємодії як "зверху", так і "знизу".
"Зверху" здійснюється взаємодія із системою "1С:Підприємство". Система програм "1С:Підприємство" підтримує обмін даними з різним торговельним обладнанням за узгодженою технологією (рис.2).
![Конфигурация 1С:Предприятие Обработка обслуживания Обработка обслуживания Обработка обслуживания 1 1 Внешняя компонента А Внешняя компонента Драйвер Внешняя компонента Драйвер АРМ ПО ]- - Устройство / Устройство Л Устройство Устройство J . м](/img/materialy_razrabotka_drayverov_span_langen-usopos_span/03.png)
Рис.2
Драйвер торговельного обладнання має бути реалізований відповідно до загальної концепції використання зовнішніх компонент для взаємодії з торговельним обладнанням, що підключається до системи програм "1С:Підприємство". Використання цього підходу дає змогу спростити процес підключення нового торговельного обладнання до "1С:Підприємства".
Загальні вимоги до драйвера:
-
розроблений у вигляді зовнішньої компоненти (опис механізму створення зовнішніх компонент наведено в документі «Документація з технології створення зовнішніх компонент» на диску ІТС у розділі «Технологія створення зовнішніх компонент» Методичної підтримки 1C:Підприємства 8.0.);
-
реалізує функціональність підключуваного виду торговельного обладнання в повному обсязі;
-
надає певний набір властивостей і методів для можливості налаштування та керування драйвером.
Назви властивостей і методів мають бути російськомовними та англомовними (наприклад, Порт - Port, Швидкість - Speed, Сигнал() – Signal()). Також драйвер має підтримувати множинні підключення (відповідно до ідеології технології COM) і підтримувати роботу з кількома пристроями. У разі виникнення помилки в роботі драйвер має повідомити про це та передати опис помилки, що сталася.
Докладніше вимоги описано в розділі "Вимоги до зовнішніх компонент для роботи з торговельним обладнанням".
"Знизу" драйвер взаємодіє (на вибір розробника) або з Керуючим Об'єктом, або з Виконавчим Об'єктом. Під час розробки драйвера в одній компоненті з Керуючим Об'єктом немає потреби розробляти додатковий інтерфейс взаємодії між драйвером і Керуючим Об'єктом.
Основна ідея зовнішньої компоненти, окрім інтеграції, — це надання уніфікованих загальних операцій над обладнанням, без необхідності заглиблюватися в алгоритм виконання тих чи інших операцій.
Посилання на додаткові ресурси щодо стандарту OPOS
Нижче наведено додаткові посилання на документацію щодо стандарту OPOS (англійською мовою):
1. Unified POS — документація щодо стандарту Unified POS (містить OPOS, JavaPOS, POS for .NET і XMLPOS).
2. Історія релізів стандарту OPOS - містить зведену таблицю з датами виходу чергових версій стандарту та посилання на документацію.
3. Компоненти Загального Керуючого Об'єкта — містить посилання на останні версії activeX компоненти Загального Керуючого Об'єкта (Common Control Object), компоненти режиму налагодження, а також вихідні коди цих компонент.