Обновлено: 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* |
Массив значений для настройки подключения | 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")
Данные – описание ошибки.
Событие наступает, если в процессе работы драйвера возникли ошибки.