Вимоги до розробки драйверів для сканерів штрихкодів
Система програм 1С:Підприємство підтримує обмін даними з різними моделями сканерів штрихкодів за узгодженою технологією (рис.1).Вступ. . Зовнішні події від драйвера
Оновлено: 14.02.2008
Вступ
Система програм 1С:Підприємство підтримує обмін даними з різними моделями сканерів штрихкодів за узгодженою технологією (рис.1).

Рис.1
Конфігурація системи програм «1С:Підприємство 8» взаємодіє з обробками обслуговування сканерів штрихкодів.
Обробки обслуговування сканерів штрихкодів взаємодіють із зовнішніми компонентами для сканерів штрихкодів (драйверами для інтеграції з «1С:Підприємство 8»).
Зовнішній компонент (далі за текстом «драйвер») може взаємодіяти:
- безпосередньо з моделлю сканера штрихкодів;
- з програмним забезпеченням (АРМ), що постачається разом зі сканером штрихкодів;
- з драйвером сканерів штрихкодів низького рівня, написаним за технологією OLE for POS (OPOS).
Загальні вимоги до драйвера:
Драйвер повинен:
- бути розроблений у вигляді зовнішнього компонента (опис механізму створення зовнішніх компонентів наведено в документі «Документація з технології створення зовнішніх компонентів» на диску ІТС у розділі «Технологія створення зовнішніх компонентів» Методичної підтримки 1C:Підприємства 8.1.);
- забезпечити можливість реалізації функціоналу в повному обсязі для підключуваного виду обладнання
- надавати набір властивостей і методів для налаштування та керування драйвером відповідно до опублікованих на диску ІТС у розділі «Робота з торговельним обладнанням» Методичної підтримки 1С:Підприємства 8.1 вимог до виду представленого на сертифікацію обладнання
- надавати російськомовні й англомовні назви властивостей і методів (наприклад, Порт- Port, Швидкість - Speed, Підключити() - Open(), ПодіюОброблено() - EventProcessed() та ін.);
- підтримувати множинні підключення (відповідно до ідеології COM-технології), а також підтримувати роботу з кількома пристроями, якщо це дозволяють бізнес-процеси, у яких використовується це обладнання;
- у разі виникнення помилки в роботі надавати докладний опис помилки, що сталася, який дає змогу користувачеві зрозуміти причину виникнення помилки та спосіб її усунення;
- у разі виникнення позаштатних ситуацій (некоректні дії користувача, відсутність запитуваного методу або функції, передавання некоректних значень тощо) коректно їх обробляти. Не повинно бути аварійних завершень роботи драйвера та інших некоректних дій драйвера, які можуть призвести до порушення нормальної роботи користувача.
Опис роботи з драйвером
Початок роботи з драйвером
Система 1С:Підприємство (надалі "система") ініціалізує з'єднання з драйвером і завантажує його. Далі встановлюються конфігураційні параметри, необхідні для роботи. Підключення до пристрою виконується на початку операції з пристроєм торговельного обладнання. Після підключення пристрою система готова до приймання подій від драйвера.
Після надсилання події драйвер повинен призупинити надсилання наступної та очікувати команди згори про можливість продовження надсилання подій. Якщо результат обробки події позитивний, то драйвер ініціює надсилання наступної події, інакше потрібне повторне надсилання останньої події, тієї, після якої драйвер призупинився. Тобто зі старих подій необхідно зберігати лише останній сформований рядок для надсилання (при цьому в драйвері при надходженні нові дані повинні буферизуватися та надсилатися в міру звільнення системи). Приклад такої послідовності:
• Надсилання Події 1;
• Отримано відповідь ПодіюОброблено(Істина);
• Надсилання Події 2;
• Отримано відповідь ПодіюОброблено(Істина);
• Надсилання Події 3;
• Отримано відповідь ПодіюОброблено(Хибність);
• Надсилання Події 3;
• Отримано відповідь ПодіюОброблено(Хибність);
• Надсилання Події 3;
• Отримано відповідь ПодіюОброблено(Істина);
• Надсилання Події 4;
• Отримано відповідь ПодіюОброблено(Істина);
Завершення роботи
Відключення від пристрою виконується після завершення операції з пристроєм.
З'єднання з драйвером закривається лише під час завершення роботи системи.
Опис властивостей
|
Опис властивостей | ||||
|---|---|---|---|---|
| Назва (alias) |
Тип |
Доступність |
Опис | |
| Читання |
Запис | |||
Опис методів
|
Опис методів | |||||
|---|---|---|---|---|---|
| Назва (alias) |
Параметри |
Значення, що повертається |
Опис | ||
|
Ім'я |
Тип |
Опис | |||
| ОтриматиНомерВерсії (GetVersion) | - | - | - | BSTR | Повертає номер версії драйвера |
| ОтриматиПомилку(GetLastError) | ОписПомилки (ErrorDescription) |
BSTR [OUT] | Опис помилки | LONG | Повертає код та опис останньої помилки, що сталася |
| Підключити (Open) | МасивЗначень (Valuesarray) |
IDispatch* |
Масив значень для налаштування підключення | BOOL | Підключає сканер штрихкодів |
| ІДПристрою (DeviceID) | BSTR [OUT] | Ідентифікатор пристрою | |||
| Відключити (Close) | ІДПристрою (DeviceID) | BSTR [IN] | Ідентифікатор пристрою | BOOL | Відключає сканер штрихкодів |
| ПодіюОброблено (EventProcessed) | ІДПристрою (DeviceID) | BSTR [IN] | Ідентифікатор пристрою | BOOL | Сповіщає драйвер про те, що подія була отримана системою. Параметр "ПрапорСтану" вказує на успішність обробки. |
| ПрапорСтану (StateFlag) | BOOL [IN] | Прапор обробки події | |||
| ТестПристрою (DeviceTest) | МасивЗначень (Valuesarray) |
IDispatch* |
Масив значень для налаштування підключення |
BOOL |
Виконує пробне підключення та опитування пристрою. У разі успішного виконання підключення в описі повертається опис пристрою. У разі негативного результату повертається опис проблеми, що виникла під час підключення. |
| ДодатковийОпис (additionalDescription) |
BSTR |
Опис результату виконання тесту | |||
Додатковий опис:
"МасивЗначень" (приклад значень для пристрою, що підключається до послідовного порту)
Тип даних "1С:Підприємства 8" - Масив.
| Найменування параметра | Наявність у структурі | Типи даних | Опис параметра |
|---|---|---|---|
| Порт (Port) | Обов'язкове | LONG | Номер послідовного порту (1 відповідає порту COM1) |
| Швидкість (Speed) | Необов'язково | LONG | Швидкість послідовного порту, на якій підключається пристрій (передається безпосередньо значення 9600, 19200, 57600, 115200 тощо) |
| Парність (Parity) | Необов'язково | LONG | Задає значення, що визначає метод контролю парності під час роботи з периферійним пристроєм через COM-порт (Значення: 0 - "Ні", 1 - "Непарність", 2 - "Парність", 3 - "Установлено", 4 - "Скинуто") |
| БітиДаних (DataBits) | Необов'язково | LONG | Задає значення, що визначає кількість біт даних під час роботи з периферійним пристроєм через COM-порт (Значення: 7, 8) |
| СтопБіти (StopBits) | Необов'язково | LONG | Задає значення, що визначає кількість стопових біт під час роботи з периферійним пристроєм через COM-порт (Значення: 1, 2) |
| Чутливість (Sensitivity) | Необов'язково | LONG | Задає чутливість клавіатурного введення під час роботи з периферійним пристроєм через клавіатурний порт |
| ПрефіксШК (BarcodePrefix) | Необов'язково | BSTR | Установлює префікс штрихкоду |
| СуфіксШК (BarcodeSuffix) | Обов'язкове | BSTR | Установлює суфікс штрихкоду |
Зовнішні події від драйвера
Під
часпідключеннядрайверповертаєпараметр "Ідентифікаторпристрою". Цейпараметрнадалі використовуєтьсядрайверомдлязазначенняджерелаподії (пристрою) підчаснадсиланняподії, атакожконфігураціямидлявизначенняпов'язаноїзподієюобробкиобслуговування. Ідентифікаторпристроюповиненбутиунікальнимдлякожногопідключення, дляцьогопропонуєтьсявестизіставлення«Підключенийпристрій-Ідентифікаторпристрою», додаючиновірядкипідчаспідключеннядопристроютавилучаючипідчасвідключеннявіднього. ТобтодрайверпривикликуметодуПідключити() повиненсформуватиновийідентифікаторпристрою (пропонуєтьсяяк іменівикористовувати GUID черезпростотуйогоотриманняпрограмнимшляхом) тапередативихідномупараметрі.
У разі настання подій у драйвері до системи можна надсилати повідомлення про виникнення зовнішньої події. Під час надсилання повідомлення про зовнішню подію необхідно вказати: джерело події (Ідентифікатор пристрою), найменування (тип) події та дані.
Опис аргументів подій
Ім'я події – "ЧитанняШтрихкоду" ("BarcodeReading")
Дані – значення зчитаного штрихкоду без префікса та суфікса. Для передавання даних використовується тип даних "Рядок" (BSTR).
Ім'я події – "ПомилкаВДрайвері" ("Error")
Дані – опис помилки.
Подія настає, якщо в процесі роботи драйвера виникли помилки.