Opos driver что это

Обновлено: 05.07.2024

В данной статье пойдет речь о методиках разработки внешних компонент с применением стандарта OPOS для взаимодействия с драйверами нижнего уровня.

Стандарт OPOS (OLE for Retail POS) разработан совместно компаниями Epson, Fujitsu/ICL, Microsoft, NCR в 1994 году.
Стандарт OPOS определяет Управляющий Объект (Control Object) как архитектуру доступа и набор интерфейсов (способы управления) к классам периферийных устройств POS терминала: фискальный регистратор, дисплей покупателя, денежный ящик и т.д.
Единый стандарт позволяет одинаково управлять одним классом устройств разных производителей. Так как управление ведется через объект управления (OPOS Драйвер, или OPOS Control), то для работы, например, с фискальными регистраторами разных производителей не требуется изменять Приложение (Application) , работающее через единый интерфейс Управляющего Объекта, достаточно заменить только Исполняющий Объект (Service Object) . Этим достигается гибкость и независимость программы от производителя оборудования. (Рис. 1)


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

Общие требования к драйверам OPOS для интеграции с системой "1С:Предприятие" складываются из совокупности применяемых технологий для взаимодействия как "сверху", так и "снизу".

" Сверху " осуществляется взаимодействие с системой "1С:Предприятие". Система программ "1С:Предприятие" поддерживает обмен данными с различным торговым оборудованием по согласованной технологии (рис.2).


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

Общие требования к драйверу:

разработан в виде внешней компоненты (описание механизма создания внешних компонент приведено в документе «Документация по технологии создания внешних компонент» на диске ИТС в разделе «Технология создания внешних компонент» Методической поддержки 1C:Предприятия 8.0.);

реализует функциональность подключаемого вида торгового оборудования в полном объеме;

предоставляет определенный набор свойств и методов для возможности настройки и управления драйвером.

Названия свойств и методов должны быть русскоязычными и англоязычными (например, Порт - Port, Скорость - Speed, Сигнал() – Signal()). Также драйвер должен поддерживать множественные подключения (в соответствии с идеологией COM технологии) и поддерживать работу с несколькими устройствами. При возникновении ошибки в работе драйвер должен сообщить об этом и передавать описание произошедшей ошибки.

" Снизу " драйвер взаимодействует (по выбору разработчика) либо с Управляющим Объектом, либо Исполняющим Объектом. При разработке драйвера в одной компоненте с Управляющим Объектом нет необходимости разрабатывать дополнительный интерфейс взаимодействия между драйвером и Управляющим Объектом.

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

Поддержка стандартных операций

Печать чека

Открытие чека

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

  • FPTR_RT_SALES (4) - чек прихода
  • FPTR_RT_REFUND (7) - чек возврата прихода
  • 100 - чек коррекции прихода (не входит в стандарт UPOS)
  • 101 - чек коррекции возврата прихода (не входит в стандарт UPOS)
  • 102 - чек расхода (не входит в стандарт UPOS)
  • 103 - чек возврата расхода (не входит в стандарт UPOS)
  • 104 - чек коррекции расхода (не входит в стандарт UPOS)
  • 105 - чек коррекции возврата расхода (не входит в стандарт UPOS)

Далее вызвать метод открытия чека BeginFiscalReceipt() , параметры метода игнорируются. Метод можно вызвать только из состояния FPTR_PS_MONITOR (1). Он переводит драйвер в состояние FPTR_PS_FISCAL_RECEIPT (2).

Для регистрации позиции чека продажи / покупки используется следующий код:

Для регистрации позиции чека возврата продажи / покупки используется следующий код:

Скидка на позицию

Для регистрации скидки на позицию используется метод PrintRecItemAdjustment() . Сам метод на итоговую сумму чека не влияет, т.е. реальной скидки не делает, а только передает ее значение в ККТ для печати на чековой ленте. Драйвер обрабатывает только сумму скидки и её тип, остальные параметры игнорируются. Поддерживаются только суммовые скидки (тип FPTR_AT_AMOUNT_DISCOUNT (1)).

Вызов данного метода не требуется для регистрации чеков коррекции по ФФД 1.0 и 1.05.

Сумма налога на позицию

Вызов данного метода не требуется для регистрации чеков коррекции по ФФД 1.0 и 1.05. Сумму налога нужно передавать после регистрации позиции (передается в копейках в виде строки).

Печать строки

Для печати строки на чековой ленте внутри чека используется метод PrintRecMessage() . Поведение метода подчиняется настройкам cacheRecMessages и defaultFont.

Также внутри чека будет работать метод PrintNormal() . Поддерживается только печать на чековой ленте ( FPTR_S_RECEIPT (2)). Поведение метода НЕ подчиняется настройке cacheRecMessages, но подчиняется defaultFont.

Печать штрихкода

Драйвер позволяет зарегистрировать скидку-округления на чек. Для этого служит метод PrintRecSubtotalAdjustment() . Поддреживается только один тип скидки - FPTR_AT_AMOUNT_DISCOUNT (1).

Вызов данного метода не требуется для регистрации чеков коррекции по ФФД 1.0 и 1.05.

Для регистрации оплаты используется метод PrintRecTotal() . Драйвер обрабатывает только сумму и тип оплаты, сумма итога не обрабатывается. Типы оплат регулируются настройками paymentCash, paymentElectronically, paymentPrepaid, paymentCredit, paymentOther, payment6, payment7, payment8, payment9, payment10.

Метод доступен из состояний FPTR_PS_FISCAL_RECEIPT (2) и FPTR_PS_FISCAL_RECEIPT_TOTAL (3). Первая оплата переводит драйвер в состояние FPTR_PS_FISCAL_RECEIPT_TOTAL (3). Как только чек полностью оплачивается, драйвер переводится в состояние FPTR_PS_FISCAL_RECEIPT_ENDING (4).

Отмена чека

Для отмены чека необходимо вызвать метод PrintRecVoid() , а после него закрыть чек. Параметры метода игнорируются.

Метод переводит драйвер в состояние FPTR_PS_FISCAL_RECEIPT_ENDING (4).

Закрытие чека

Для закрытия чека необходимо вызвать метод EndFiscalReceipt() . Параметры метода игнорируются.

Метод доступен из состояний FPTR_PS_FISCAL_RECEIPT (2) и FPTR_PS_FISCAL_RECEIPT_ENDING (4). Метод переводит драйвер в состояние FPTR_PS_MONITOR (1).

Настройка OPOS-драйвера

Настройка драйвера осуществляется через задание предопределенных параметров реестра, описывающих устройство по стандарту OPOS. Расположение параметров в реестре описано в предыдущем пункте. Доступные следующие настройки:

Печать кассовых чеков на фискальном регистраторе

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

Для настройки программы на работу с вашим ФР или АСПД запустите, пожалуйста, программу Тирика-Магазин, выберите пункт меню Файл|Настройки|ПечатьЧеков и нажмите кнопку Настройка:


В ответ на это программа откроет окно настройки на ваш фискальный регистратор или АСПД, где вы должны будете выбрать третью либо четвертую опцию. На самом деле обе эти опции работают совершенно одинаково и вы можете выбирать любую из них независимо от того, подсоединен ли к вашему компьютеру фискальный регистратор или АСПД:


Нажав кнопку Далее, вы попадете в следующее окно мастера настройки, где вам предложат указать, каким образом ваш ФР или АСПД подключается к компьютеру: через драйвер АТОЛ, драйвер Меркурий или через драйвер OPOS:


Подробно о том, что такое драйверы Атол и OPOS написано здесь.

Свойства в OPOS

В стандарте OPOS предусмотрен набор свойств. Некоторые свойства доступны только для чтения (например, состояние ККТ) - их значение может меняться только внутренней логикой драйвера. Другие свойства доступны для записи - их значение можно менять извне. Свойства могут быть строковые (хранят строковое значение) и числовые (хранят целое число).

Пример - получить состояние ККТ. Возвращаемое число соответствует одной из OPOS-констант, описывающих состояния ККТ:

Пример - получить состояние крышки ККТ (возвращаемое значение 0 - закрыта, 1 - открыта):

Пример - установить значение строки PreLine (она выводится при печати позиции чека перед данными позиции):

Подключение ФР через драйвер OPOS

Стандарт драйвера OPOS (OLE for Retail POS) разработан совместно компаниями Epson, Fujitsu/ICL, Microsoft, NCR в 1994 году.

Данный драйвер состоит из двух частей, одна часть в страивается в программу для доступа к способам управления периферийных устройств POS терминала (системы), такие как фискальный регистратор, чековый принтер, денежный ящик и другие.
Единый стандарт позволяет одинаково управлять одним классом устройств разных производителей. Так как управление идет через объект управления (OPOS Драйвер или OPOS Control), то для работы, например, с чековыми принтерами разных производителей не требуется изменять программу, а достаточно установить вторую часть OPOS драйвера конкретного устройства. Это даёт гибкость и лёгкость использования оборудувания различных производителей.

В России многие производителей фискальных регистраторов поддерживают данный стандарт OPOS драйвера: Штрих-М, Пирит, Прим, Мёбиус и другие аппараты можно подключить через OPOS драйвер к рабочему месту Smart Kassir.

Для того, чтобы подключить ФР через OPOS драйвер необходимо предварительно скачать (с сайта производителя ФР или нашего сайта) драйвер OPOS конкретной модели, установить его.

Далее в настройках Smart Kassir выбрать OPOS драйвер:


После этого нажимаете на кнопку ". " для настройки драйвера.


В появившемся окне выбираете или вводите "Индификатор ФР" - это наименование подключенного фискального регистратора, каторое Вы можете посмотреть в тесте драйвера (данная программа идёт в комплекте с драйвером OPOS от производителя ФР). Таким же образом выбираете "Индификатор ящика".

К примеру у ФР от компании Штрих-М, обычно индификатор ФР это: SHTRIH-M-OPOS-1, а индификатор ящика: CashDrawer.1

Для проверки соединения устройства нажмите кнопку "Проверка связи", при правильном подключение ФР в поле "Заводской №" должен появится номер устройства.

В дополнительных опциях можно указать сколько символов может разместиться на чековой ленте в одну строку - у каждого фискального регистратора своё допустимое количество.

Галочка "Печать в формате OEM" указывает драйверу необходимость нужной кодировки фискального регистратора, к примеру для модели ФР Pirit это опция должна быть включена, а для ФР от Штрих-М выключена.

Если Вы владеете контрольно-кассовой машиной марки Меркурий-115, -130 или -140

ККМ и АСПД Меркурий-115, -130 и -140 официально могут работать только в двух режимах. В первом из них ("автономный режим") аппарат вообще не знает о существовании компьютера и работает совершенно отдельно от него; во втором режиме ("режим offline") этот аппарат перед началом работы подсоединяется к компьютеру для того, чтобы загрузить в него номенклатуру товаров магазина, а в конце работы подключается к компьютеру для того, чтобы выгрузить из него список пробитых чеков. Подробнее о режиме offline написано здесь

На самом деле эти аппараты имеют и третий, недокументированный режим работы - "режим ФР", когда аппарат подсоединен к компьютеру постоянно и работает как фискальный регистратор: продавец на компьютере (например, в программе Тирика-Магазин) пробивает чек, и этот чек немедленно и автоматически печатается на фискальном регистраторе. Этот режим является "неофициальным" для ККМ Меркурий 115 и 130, не афишируется производителем аппарата; если вы решитесь использовать его, то вы будете использовать его на свой страх и риск. Повторим это еще раз:

Использование ККМ Меркурий-115, -130 и -140 в режиме ФР не рекомендуется производителем, вы используете этот режим на свой страх и риск. Инструкции по настройке ККМ Меркурий, приведенные в этой статье, не являются официальным руководством или профессиональным советом; если, следуя этим инструкциям, вы приведете вашу кассовую машину Меркурий в неработоспособное состояние, оплачивать ремонт либо замену аппарата, а также убытки, случившиеся от его отсутствия (например, простой магазина и т.п.) вам придется за свой счет. Пожалуйста, не перенастраивайте вашу кассовую машину согласно инструкций ниже в режим "онлайн", если вы не согласны с этим.

Процедура настройки программы Тирика-Магазин на работу с ККМ Меркурий в режиме online написана здесь.

Если ваш ФР подключен к компьютеру через драйвер OPOS

В случае подключения ФР или АСПД через драйвер OPOS после указания опции "OPOS" в этом окне вам нужно указать имя OPOS-устройства, после чего вы сможете нажать кнопку Проверка в этом же окне. В качестве имени OPOS-устройства используется "очень компьютерное" имя, и вы навряд ли угадаете его самостоятельно. Так, например, в случае работы фискального регистратора фрмы АТОЛ через драйвер OPOS в качестве имени OPOS-устройства нужно указывать строку ATOLFptr.1, а в случае фискального регистратора производства Штрих-М - строку SHTRIH-M-OPOS-1. Для того, чтобы узнать имя OPOS-устройства вашего фискального регистратора, вам необходимо обратиться в техподдержку производителя устройства или в компанию, обслуживающую устройство, либо просто нанять их для того, чтобы они настроили программу Тирика-Магазин на работу с вашим ФР.

После того, как все драйверы (производителя и OPOS) будут установлены и имя OPOS-устройства указано, нажмите кнопку Проверка в окне выше. Если проверка пройдет успешно и программа сообщит вам, что связь с устройством была установлена, вы сможете завершить процедуру настройки и печатать кассовые чеки на вашем фискальном регистраторе или АСПД.

АТОЛ. OPOS-драйвер v.1.14.5

В результате установки OPOS через инсталлятор в операционной системе Windows произойдут следующие изменения:

Кассовое ПО создает экземпляр Common Control Object , затем обращается к его методам и свойствам. При вызове метода Open() в качестве должно передаваться то же имя фискального устройства. Когда Open() вызывается первый раз, в указанной ветке реестра автоматически создается набор параметров со значениями по-умолчанию. В дальнейшем значения параметров можно менять, таким образом настраивая OPOS-драйвер. При последующих вызовах Open измененные значения параметров читаются из реестра и используются при работе OPOS-драйвера.

Примечание: Далее в документации приведены различные примеры использования OPOS-драйвера - в них используется синтаксис Windows PowerShell

Передача сумм и количеств

Во всех методах, где передаются суммы и количества, действуют такие особенности передачи параметров:

  • Все суммы передаются типом CY . Значение суммы передается как есть. Максимальное количество знаков после запятой равно 4. Если передается больше 2-х знаков после запятой, происходит округление до 2-х знаков.
  • Все количества (например, количество товара в позиции) передается типом LONG . Далее переданное целое значение делится на 1000 (например, если в позиции 2 шт. - нужно передать значение 2000).

Если ваш ФР подключен к компьютеру через драйвер Атол

В случае подключения ФР или АСПД через драйвер Атол после указания опции "Атол" в этом окне вам нужно нажать кнопку Проверка. Если программа при проверке правильно определит наименование устройства или его серийный номер, вы сможете нажать кнопку Далее и потом Готово, после чего программа вернется в окно настроек, запомнив выбранный вами фискальный регистратор или АСПД. После нажатия кнопки ОК в окне настроек программы вы сможете печатать кассовые чеки из программы Тирика-Магазин.

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

Читайте также: