Вимоги до розробки драйверів для фіскальних реєстраторів
Система програм 1С:Підприємство підтримує обмін даними з різними моделями фіскальних реєстраторів за узгодженою технологією (рис.1).Вступ. Внесення/вилучення суми. Друк звіту за касову зміну з гасінням (<span lang="en-us">Z-</span>звіт) і без гасіння (<span lang="en-us">X</span>-звіт). Завершення роботи
Друк звіту за касову зміну з гасінням (Z-звіт) і без гасіння (X-звіт)
Вступ
Система програм 1С:Підприємство підтримує обмін даними з різними моделями фіскальних реєстраторів за узгодженою технологією (рис.1).

Рис.1
Конфігурація системи програм "1С:Підприємство 8" взаємодіє з обробками обслуговування фіскальних реєстраторів.
Обробки обслуговування фіскальних реєстраторів взаємодіють із зовнішніми компонентами для фіскальних реєстраторів (драйверами для інтеграції з "1С:Підприємство 8").
Зовнішній компонент (далі за текстом "драйвер") може взаємодіяти:
- безпосередньо з моделлю фіскального реєстратора;
- з програмним забезпеченням (АРМ), що постачається разом із фіскальним реєстратором;
- з драйвером фіскального реєстратора низького рівня, написаним за технологією OLE for POS (OPOS).
Загальні вимоги до драйвера:
Драйвер повинен:
- бути розроблений у вигляді зовнішнього компонента (опис механізму створення зовнішніх компонентів наведено в документі "Документація з технології створення зовнішніх компонентів" на диску ІТС у розділі "Технологія створення зовнішніх компонентів" Методичної підтримки 1C:Підприємства 8.1.);
- забезпечити можливість реалізації функціоналу в повному обсязі для підключуваного виду обладнання
- надавати набір властивостей і методів для налаштування та керування драйвером відповідно до опублікованих на диску ІТС у розділі "Робота з торговим обладнанням" Методичної підтримки 1С:Підприємства 8.1 вимог до виду обладнання, поданого на сертифікацію
- надавати російськомовні та англомовні назви властивостей і методів (наприклад, Порт- Port, Швидкість - Speed,ЗакритиЧек() - CloseCheck(), НадрукуватиФіскРядок() - PrintFiscalString() та ін.);
- підтримувати множинні підключення (відповідно до ідеології COM-технології), а також підтримувати роботу з кількома пристроями, якщо дозволяють бізнес-процеси, у яких використовується це обладнання;
- у разі виникнення помилки в роботі надавати докладний опис помилки, що сталася, який дає змогу користувачу зрозуміти причину виникнення помилки та спосіб її усунення;
- у разі виникнення позаштатних ситуацій (некоректні дії користувача, відсутність запитуваного методу або функції, передавання некоректних значень та ін.) коректно їх обробляти. Не повинно бути аварійних завершень роботи драйвера та інших некоректних дій драйвера, які можуть призвести до порушення нормальної роботи користувача.
Опис роботи з драйвером
Початок роботи з драйвером
Система 1С:Підприємство (надалі "система") ініціалізує з'єднання з драйвером і завантажує його. Далі встановлюються конфігураційні параметри, необхідні для роботи. Підключення до пристрою виконується на початку операції з пристроєм торгового обладнання.
Внесення/вилучення суми
Друк фіскального/нефіскального чека
Система надсилає команду на відкриття нового чека. Залежно від переданого параметра чек відкривається у фіскальному або нефіскальному режимі. Якщо чек уже відкрито, то, залежно від значення переданого параметра "АнулюватиВідкритийЧек", драйвер анулює (скасовує) попередній чек або повертає помилку, що чек уже був відкритий.
"Друк рядка"
Після закінчення друку відбувається закриття чека. Якщо відкривався фіскальний чек, то під час закриття відбувається друк підсумків і суми оплати та чек відрізається. Якщо відкривався нефіскальний, то відбувається лише відрізання чека. Відрізання чека здійснюється за умови, що ця операція підтримується принтером, в іншому разі достатньо протягнути стрічку на кілька рядків, щоб чек перебував над лінією відриву.
Друк звіту за касову зміну з гасінням (Z-звіт) і без гасіння (X-звіт)
Завершення роботи
Відключення від пристрою виконується після закінчення операції з пристроєм.
З'єднання з драйвером закривається лише під час завершення роботи системи.
Опис властивостей
|
Опис властивостей | ||||
|---|---|---|---|---|
|
Назва (alias) |
Тип |
Доступність |
Опис | |
| Читання |
Запис | |||
Опис методів
|
Опис методів | |||||
|---|---|---|---|---|---|
|
Назва (alias) |
Параметри |
Повернене значення |
Опис | ||
|
Ім'я |
Тип |
Опис | |||
| ОтриматиНомерВерсії (GetVersion) | - | - | - | BSTR | Повертає номер версії драйвера |
| ОтриматиПомилку(GetLastError) | ОписПомилки (ErrorDescription) |
BSTR [OUT] | Опис помилки | LONG | Повертає код і опис останньої помилки, що сталася |
| Підключити (Open) | МасивЗначень (Valuesarray) |
IDispatch* |
Масив значень для налаштування підключення |
BOOL | Підключає фіскальний реєстратор |
| ІДПристрою (DeviceID) | BSTR[OUT] | Ідентифікатор пристрою | |||
| Відключити (Close) | ІДПристрою (DeviceID) | BSTR [IN] | Ідентифікатор пристрою | BOOL | Відключає фіскальний реєстратор |
| НадрукуватиЗвітБезГасіння (PrintXReport) | ІДПристрою (DeviceID) | BSTR [IN] | Ідентифікатор пристрою | BOOL | Друкує на ФР звіт за зміну без гасіння (не закриває касову зміну) |
| НадрукуватиЗвітЗГасінням (PrintZReport) | ІДПристрою (DeviceID) | BSTR [IN] | Ідентифікатор пристрою | BOOL | Друкує на ФР звіт за зміну з гасінням (закриває касову зміну, потребує адміністративних привілеїв) |
| НадрукуватиЧекВнесенняВилучення (CashInOutcome) | ІДПристрою (DeviceID) | BSTR [IN] | Ідентифікатор пристрою | BOOL | Друкує на ФР чек внесення/ вилучення (залежить від переданої суми). Сума >= 0 - внесення, Сума < 0 - вилучення. |
| Сума (amount) | DOUBLE [IN] | Сума внесення/вилучення | |||
| ВідкритиЧек (OpenCheck) | ІДПристрою (DeviceID) | BSTR [IN] | Ідентифікатор пристрою | BOOL | Відкриває новий чек |
| ФіскальнийЧек (IsFiscalCheck) | BOOL [IN] | Ознака фіскального чека | |||
| ЧекПовернення (IsReturnCheck) | BOOL [IN] | Ознакачека повернення | |||
| АнулюватиВідкритийЧек (CancelOpenedCheck) | BOOL [IN] | Ознака автоматичного анулювання раніше відкритого чека | |||
| НомерЧека (CheckNumber) | LONG [OUT] | Номер нового чека | |||
| НомерЗміни (SessionNumber) | LONG [OUT] | Номер відкритої зміни | |||
| НадрукуватиФіскРядок (PrintFiscalString) | ІДПристрою (DeviceID) | BSTR [IN] | Ідентифікатор пристрою | BOOL | Друкує рядок товарної позиції з переданими реквізитами. Знижки/націнки за рядком розраховуються за формулою "Сума - Ціна*Кількість". Якщо отримане значення відрізняється від 0, то в чеку друкується абсолютна (грошова) знижка(<0)/націнка(>0). |
| Найменування (Name) | BSTR [IN] | Найменування товару | |||
| Кількість (Quantity) | DOUBLE [IN] | Кількість товару | |||
| Ціна (Price) | DOUBLE [IN] | Ціна одиниці товару (у форматі <Рублі>,<Копійки>) | |||
| Сума (amount) | DOUBLE [IN] | Кінцева сума за позицією чека (з урахуванням усіх знижок/націнок; у форматі <Рублі>,<Копійки>) | |||
| Відділ (Department) | LONG [IN] | Відділ, за яким ведеться продаж | |||
| ПДВ (Tax) | DOUBLE [IN] | ПДВ у відсотках (від 0 до 99,99) | |||
| ЗакритиЧек (CloseCheck) | ІДПристрою (DeviceID) | BSTR [IN] | Ідентифікатор пристрою | BOOL | Закриває чек |
| ГотівковаОплата (Cash) | DOUBLE [IN] | Сума готівкової оплати | |||
| ОплатаКарткою (PayByCard) | DOUBLE [IN] | Сума оплати карткою | |||
| ОплатаКредитом (PayByCredit) | DOUBLE [IN] | Сума оплати кредитом | |||
| СкасуватиЧек (CancelCheck) | ІДПристрою (DeviceID) | BSTR [IN] | Ідентифікатор пристрою | BOOL | Скасовує раніше відкритий чек (потребує адміністративних привілеїв) |
| НадрукуватиНефіскРядок (PrintNonFiscalString) | ІДПристрою (DeviceID) | BSTR [IN] | BOOL | Виводить довільний рядок на чекову стрічку | |
| РядокТексту (TextString) | BSTR [IN] | Рядок із довільним текстом | |||
| ВідкритиГрошовуШухляду (OpenCashDrawer) | ІДПристрою(DeviceID) | BSTR [IN] | Логічний номер пристрою, до якого підключено грошову шухляду | BOOL |
Відкриває грошову шухляду, підключену до фіскального реєстратора. |
| ТестПристрою (DeviceTest) | МасивЗначень (Valuesarray) |
IDispatch* |
Масив значень для налаштування підключення |
BOOL |
Виконує пробне підключення та опитування пристрою. У разі успішного виконання підключення в описі повертається опис пристрою. У разі негативного результату повертається опис проблеми, що виникла під час підключення. |
| ДодатковийОпис (additionalDescription) |
BSTR |
Опис результату виконання тесту | |||
Додатковий опис :
"МасивЗначень" (приклад значень для пристрою, підключеного на послідовному порту)
Тип даних "1С:Підприємства 8" - Масив.
| Найменування параметра | Наявність у структурі | Типи даних | Опис параметра |
|---|---|---|---|
| Порт (Port) | Обов'язково | LONG | Номер послідовного порту (1 відповідає порту COM1). властивість. |
| Швидкість (Speed) | Необов'язково | LONG | Швидкість послідовного порту, на якій підключається пристрій (передається безпосередньо значення 9600, 19200, 57600, 115200 тощо). |
| ПарольКористувача (UserPassword) | Обов'язково | BSTR | Пароль звичайного доступу до ФР (призначений для роботи з чеками продажу та внесення/вилучення). |
| ПарольАдміністратора (adminPassword) | Обов'язково | BSTR | Пароль адміністратора (застосовується там, де потрібні підвищені привілеї, адміністративні, що розширюють права користувача). Під час виконання функцій, що потребують адміністративних привілеїв, "ПарольАдміністратора" порівнюється із заданим у ФР і в разі незбігу функція припиняє виконання та повертає помилку. |
| Таймаут (Timeout) | Обов'язково | LONG | Час, протягом якого компонента має очікувати відповіді від пристрою під час виконання операцій. |
| РеєстраційнийНомерККМ (RegNumber) | Обов'язково | BSTR | У властивості зберігається реєстраційний номер ККМ (тільки для читання, заповнюється під час підключення до ФР) |
| СерійНомерККМ (SerialNumber) | Обов'язково | BSTR | У властивості зберігається серійний номер ККМ (тільки для читання, заповнюється під час підключення до ФР) |
| ТекстОплатиКарткою (PayByCardText) | Необов'язково | BSTR | У властивості передається текст, що використовується для друку в чеку та описує тип оплати "Карткою" |
| ТекстОплатиКредитом (PayByCreditText) | Необов'язково | BSTR | У властивості передається текст, що використовується для друку в чеку та описує тип оплати "Кредитом" |