Подключение Сканера штрихкодов к не типовой обычные формы.
Подключение Сканера штрихкодов к не типовой обычные формы.
Подключение Сканера штрихкодов к не типовой обычные формы, использую компоненту Драйвер1СУстройстваВводаNative из БПО.
Решил запостить, не нашел рабочего решения.
Обязательна глобальная переменная в модуле приложения глПодключаемоеОборудование, без ее приложение просто закрывается, долго не мог понять почему.
Затем обрабатываем событие ОбработкаВнешнегоСобытия в модуле приложения или формы.
Подключение Сканера штрихкодов к не типовой обычные формы, использую компоненту Драйвер1СУстройстваВводаNative из БПО.
Решил запостить, не нашел рабочего решения.
// Подключает компоненту, выполненную по технологии Native API и COM асинхронном режиме.
// Компонента должна храниться в макете конфигурации в виде ZIP-архива.
//
Процедура ПодключитьКомпонентуДрайвер1СУстройстваВводаNativeИзМакета() Экспорт
ПараметрыПодключения = Новый Структура;
ПараметрыПодключения.Вставить("Идентификатор", "InputDevice");
ПараметрыПодключения.Вставить("ПолноеИмяМакета", "ОбщийМакет.Драйвер1СУстройстваВводаNative");
ПараметрыПодключения.Вставить("ИмяДрайвера", "AddIn.InputDevice.InputDevice");
ПараметрыПодключения.Вставить("ИДУстройства", "");
Параметры = Новый Структура;
Параметры.Вставить("P_Port", "0");
Параметры.Вставить("P_Prefix", -1);
Параметры.Вставить("P_Suffix", 3338);
Параметры.Вставить("P_OutputDataType", 0);
Параметры.Вставить("P_GSSymbolKey", 7);
Параметры.Вставить("P_Timeout", 35);
Параметры.Вставить("P_DataBits", 8);
Параметры.Вставить("P_StopBits", 0);
Параметры.Вставить("P_Parity", 0);
Параметры.Вставить("P_Speed", 9600);
Параметры.Вставить("P_COMEncoding", "UTF-8");
Параметры.Вставить("P_LogType", -1);
Параметры.Вставить("P_LogFilePath", "C:\temp\scan_opos.txt");
ПараметрыПодключения.Вставить("Параметры", Параметры);
Для Каждого ДрайверОборудования Из глПодключаемоеОборудование.ДрайверыОборудования Цикл
Если ДрайверОборудования.Ключ = ПараметрыПодключения.Идентификатор Тогда
ОбъектДрайвера = ДрайверОборудования.Значение;
//ВыполнитьОбработкуОповещения(ОповещениеПриЗавершении, ОбъектДрайвера);
Возврат;
КонецЕсли;
КонецЦикла;
Если Не ПодключитьВнешнююКомпоненту(ПараметрыПодключения.ПолноеИмяМакета, ПараметрыПодключения.Идентификатор) Тогда
обСообщитьОбОшибке("Внешняя компонента Сканера штрихкода (Драйвер1СУстройстваВводаNative) не подключена");
Возврат;
КонецЕсли;
Попытка
ОбъектДрайвера = Новый(ПараметрыПодключения.ИмяДрайвера);
Исключение
ОбъектДрайвера = Неопределено;
обСообщитьОбОшибке("Компонента Сканера штрихкода (Драйвер1СУстройстваВводаNative) не подключена");
Возврат;
КонецПопытки;
Попытка
ОбъектДрайвера.УстановитьПараметр("EquipmentType", "СканерШтрихкода");
Исключение
ОписаниеОшибки = НСтр("ru='Ошибка обращения к драйверу.'");
обСообщитьОбОшибке(ОписаниеОшибки);
Возврат;
КонецПопытки;
//параметры
Для Каждого Параметр Из ПараметрыПодключения.Параметры Цикл
Если Лев(Параметр.Ключ, 2) = "P_" Тогда
ЗначениеПараметра = Параметр.Значение;
ИмяПараметра = Сред(Параметр.Ключ, 3);
ОбъектДрайвера.УстановитьПараметр(ИмяПараметра, ЗначениеПараметра)
КонецЕсли;
КонецЦикла;
Попытка
Ответ = ОбъектДрайвера.Подключить(ПараметрыПодключения.ИДУстройства);
Исключение
ОписаниеОшибки = СтрШаблон(НСтр("ru='Ошибка вызова метода <%1>.'"), "ОбъектДрайвера.Подключить");
обСообщитьОбОшибке(ОписаниеОшибки);
Возврат;
КонецПопытки;
глПодключаемоеОборудование.ДрайверыОборудования.Вставить(ПараметрыПодключения.Идентификатор, ОбъектДрайвера);
НовоеПодключение = ПараметрыПодключенияУстройства(ПараметрыПодключения);
НовоеПодключение.ИДУстройства = ПараметрыПодключения.ИДУстройства;
НовоеПодключение.ИменаСобытий.Добавить("Штрихкод");
НовоеПодключение.ИменаСобытий.Добавить("Barcode");
НовоеПодключение.ИменаСобытий.Добавить("ШтрихкодBase64");
НовоеПодключение.ИменаСобытий.Добавить("BarcodeBase64");
глПодключаемоеОборудование.ПараметрыПодключенияПО.Добавить(НовоеПодключение);
КонецПроцедуры
// Параметры подключения устройства.
//
// Параметры:
// ДанныеУстройства - Неопределено, Произвольный, Структура - Данные устройства
//
// Возвращаемое значение:
// Структура - Параметры подключения:
// * Наименование - Строка.
// * ТипОборудования - ПеречислениеСсылка.ТипыПодключаемогоОборудования.
// * ПодключениеИзМакета - Булево.
// * ПодключениеЛокальноПоИдентификатору - Булево.
// * ИдентификаторОбъекта - СправочникСсылка.ПодключаемоеОборудование.
// * ВерсияДрайвера - Строка.
// * ИмяМакетаДрайвера - Строка.
// * РевизияИнтерфейса - Строка.
// * ШиринаСтроки - Строка.
// * ПечатьКвитанцийНаТерминале - Булево.
// * КороткиеСлипЧеки - Булево.
// * ВыдачиНаличныхДенежныхСредств - Булево.
// * ОплатаЭлектроннымиСертификатами - Булево.
// * СтолбцовНаДисплее - Число.
// * СтрокНаДисплее - Число.
// * ДисплейОтображаетТекст - Булево.
// * ДисплейОтображаетГрафику - Булево.
// * ДисплейОтображаетQRКод - Булево.
// * ИдентификаторУстройства - УникальныйИдентификатор.
// * ОбъектДрайвера - Неопределено -
// * Параметры - Неопределено -
// * ОбработчикДрайвера - Неопределено -
// * Клиенты - Массив из СправочникСсылка.РабочиеМеста -
// * Ссылка - СправочникСсылка.ПодключаемоеОборудование.
// * СетевоеОборудование - Булево.
// * КоличествоПодключенных - Число -
// * ИменаСобытий - Массив Из Строка -
// * ИДУстройства - Строка.
//
Функция ПараметрыПодключенияУстройства(ДанныеУстройства) Экспорт
// Подключение = ПараметрыПодключения(ДанныеДрайвера);
Подключение = Новый Структура;
Подключение.Вставить("ОбъектДрайвера" , Неопределено);
Подключение.Вставить("Параметры" , Неопределено);
Подключение.Вставить("ОбработчикДрайвера", Неопределено);
Подключение.Вставить("Клиенты", Новый Массив());
//Подключение.Вставить("Ссылка" , ДанныеУстройства.Ссылка);
Подключение.Вставить("Параметры" , ДанныеУстройства.Параметры);
//Подключение.Вставить("СетевоеОборудование" , ДанныеУстройства.СетевоеОборудование);
Подключение.Вставить("КоличествоПодключенных" , 0);
Подключение.Вставить("ИменаСобытий" , Новый Массив());
Подключение.Вставить("ИДУстройства" , "");
//#Если ВебКлиент Тогда
// Подключение.ОбработчикДрайвера = ПодключаемоеОборудованиеДрайверКлиент;
//#Иначе
// Подключение.ОбработчикДрайвера = ПодключаемоеОборудованиеДрайверСинхронноКлиент;
//#КонецЕсли
//ПараметрыПодключенияДрайвера(ДанныеДрайвера)
Возврат Подключение;
КонецФункции
ПоказатьОбязательна глобальная переменная в модуле приложения глПодключаемоеОборудование, без ее приложение просто закрывается, долго не мог понять почему.
// ПодключаемоеОборудование
Перем глПодключаемоеОборудование Экспорт; // Для кэширования на клиенте
// Конец ПодключаемоеОборудование
Затем обрабатываем событие ОбработкаВнешнегоСобытия в модуле приложения или формы.
По теме из базы знаний
- Записки фрилансера о внедрении 8.2
- 1С8:борьба - личный опыт работы с платформой 1с8
- “Заставим сканер пищать!” или Получаем обратную связь из 1С при сканировании штрихкодов
- Разные хм... неожиданности при работе с УТ 11 и платформой
- Подключение сканера штрихкода через драйвер NativeAPI для типовых конфигураций
Свернуть все
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот