Требования к разработке драйверов для считывателей магнитных карт для платформы "1С:Предприятие 8.1"

Обновлено: 14.02.2008

Введение

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

Рис.1

Конфигурация системы программ «1С:Предприятие 8» взаимодействует с обработками обслуживания считывателей магнитных карт.

Обработки обслуживания считывателей магнитных карт взаимодействуют с внешними компонентами для считывателей магнитных карт (драйверами для интеграции с «1С:Предприятие 8»).

Внешняя компонента (далее по тексту «драйвер») может взаимодействовать:

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

Драйвер должен:

Описание работы с драйвером

Начало работы с драйвером

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

После отправки события драйвер должен приостановить отправку следующего и ожидать команды сверху о возможности продолжения отправки событий. Если результат обработки события положительный, то драйвер инициирует отправку следующего события, в противном случае требуется перепосылка последнего события, того, после которого драйвер приостановился. То есть из старых событий необходимо хранить только последнюю сформированную строку для отправки (при этом в драйвере при поступлении новые данные должны буферизироваться и высылаться по мере освобождения системы). Пример последовательности такой:
• Отправка События 1;
• Получен ответ СобытиеОбработано(Истина);
• Отправка События 2;
• Получен ответ СобытиеОбработано(Истина);
• Отправка События 3;
• Получен ответ СобытиеОбработано(Ложь);
• Отправка События 3;
• Получен ответ СобытиеОбработано(Ложь);
• Отправка События 3;
• Получен ответ СобытиеОбработано(Истина);
• Отправка События 4;
• Получен ответ СобытиеОбработано(Истина);

Завершение работы

Отключение от устройства выполняется при окончании операции с устройством.

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

Описание свойств

Описание свойств

Название (alias)

Тип

Доступность

Описание

Чтение Запись
         

Описание методов

Описание методов

Название (alias)

Параметры

Возвращаемое значение

Описание

Имя

Тип

Описание

ПолучитьНомерВерсии (GetVersion)

-

- - BSTR Возвращает номер версии драйвера
ПолучитьОшибку (GetLastError) ОписаниеОшибки
(ErrorDescription)
BSTR [OUT] Описание ошибки LONG Возвращает код и описание последней произошедшей ошибки
Подключить (Open) МассивЗначений
(ValuesArray)

IDispatch*
[IN]

Массив значений для настройки подключения BOOL Подключает СМК
ИДУстройства (DeviceID) BSTR [OUT] Идентификатор устройства
Отключить (Close) ИДУстройства (DeviceID) BSTR [IN] Идентификатор устройства BOOL Отключает СМК
СобытиеОбработано (EventProcessed) ИДУстройства (DeviceID) BSTR [IN] Идентификатор устройства BOOL Оповещает драйвер о том, что событие системой было получено. Параметр "ФлагСостояния" указывает на успешность обработки.
ФлагСостояния (StateFlag) BOOL [IN] Флаг обработки события
ТестУстройства (DeviceTest) МассивЗначений
(ValuesArray)
IDispatch*
[IN]
Массив значений для настройки подключения

BOOL

Выполняет пробное подключение и опрос устройства. При успешном выполнении подключения в описании возвращается описание устройства. При отрицательном результате возвращается описание возникшей проблемы при подключении.
ДополнительноеОписание (AdditionalDescription) BSTR
[OUT]
Описание результата выполнения теста

Дополнительное описание:
"МассивЗначений" (пример значений для устройства, подключаемого на последовательном порту)
Тип данных "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 Задает чувствительность клавиатурного ввода при работе с периферийным устройством через клавиатурный порт
ПрефиксМК (CodePrefix) Необязательно BSTR Устанавливает префикс кода магнитной карты
СуффиксМК (CodeSuffix) Обязательное BSTR Устанавливает суффикс кода магнитной карты

Внешние события от драйвера

Во время подключения драйвер возвращает параметр "Идентификатор устройства". Данный параметр используется в дальнейшем драйвером для указания источника события (устройства) при отправке события, а также конфигурациями для определения связанной с событием обработки обслуживания. Идентификатор устройства должен быть уникальным для каждого подключения, для этого предлагается вести сопоставление «Подключенное устройство – Идентификатор устройства», добавляя новые строки при подключении к устройству и удаляя при отключении от него. Т.е. драйвер при вызове метода Подключить() должен сформировать новый идентификатор устройства (предлагается в качестве имени использовать GUID в виду простоты его получения программным путем) и передать в выходном параметре.

При наступлении событий в драйвере в систему можно посылать сообщение о возникновении внешнего события. При посылке сообщения о внешнем событии необходимо указать: источник события (Идентификатор устройства), наименование (тип) события и данные.

Описание аргументов событий

Имя события – "ЧтениеКодаМагнитнойКарты" ("CodeReading")

Данные – значение считанного кода магнитной карты без префикса и суффикса. Для передачи данных используется тип данных "Строка" (BSTR).

Имя события – "ОшибкаВДрайвере" ("Error")

Данные – описание ошибки.

Событие наступает, если в процессе работы драйвера возникли ошибки.