Подключение сканера Honeywell в разрыв клавиатуры к обычным формам
В конфигурациях на управляемых формах (УТ 11, Розница и т.п.) есть возможность подключения сканера настроенного в режиме "в разрыв клавиатуры" как на картинке во вложении (1С:Сканеры штрихкода (NativeApi)). Мне удалось так так подключить и в формах программы (например, список номенклатуры, все корректно работает.) . Как перенести этот механизм или что-то подобное в самописную конфигурацию 8.3 написанную на обычных формах полностью с нуля без использования БСП и т.п.. Желательно, подробно по шагам, за это и вознаграждение. Или ссылки где подобное реализовано. Нужно не так как в УТ 10.3 через COM порт. Заранее извиняюсь если что-то коряво написал, мало работал с торговым оборудованием.
Прикрепленные файлы:
Найденные решения
Нашел в интернете такой пример и на его основе написал. Всем спасибо за участие.
Процедура ПриНачалеРаботыСистемы()
ПутьКДрайверу = "C:\Program Files (x86)\1C\1C Barcode scanner\8_0_17_3\ScanOPOS.dll";
Порт = 0; // 0 - в том случае, если сканер подключается в разрезе клавиатуры, иначе необходимо указать номер используемого com-порта
БитДанных = 8; // возможные значения от 1 до 8 (должно соответствовать настройкам сканера)
Скорость = 9600; // возможные значения: 110, 300, 600, 1200, 2400, 4800, 9600, 14400, 19200,
//38400, 56000, 57600, 115200, 128000, 256000 (должно соответствовать настройкам сканера)
Суффикс = "13"; // должно соответствовать настройкам сканера
Попытка
ЗагрузитьВнешнююКомпоненту(ПутьКДрайверу);
ОбъектДрайвера = Новый("AddIn.Scanner");
ОбъектДрайвера.Открыть(1);
ОбъектДрайвера.ИмяСобытия = "BarCodeValue";
ОбъектДрайвера.ОчиститьВход();
ОбъектДрайвера.ОчиститьВыход();
ОбъектДрайвера.АвтоВыключение = 0;
ОбъектДрайвера.ПосылкаДанных = 1;
ОбъектДрайвера.УстройствоВключено = 1;
ОбъектДрайвера.ЗапрещениеСобытий = 0;
ОбъектДрайвера.Порт = Порт;
ОбъектДрайвера.СуффиксСтрока = Суффикс;
ОбъектДрайвера.СтопСимвол = 13;
ОбъектДрайвера.БитДанных = БитДанных;
ОбъектДрайвера.Скорость = Скорость;
Попытка
Результат = (ОбъектДрайвера.Занять(1) = 0);
Исключение
Результат = Ложь;
КонецПопытки;
Если Результат Тогда
ОбъектДрайвера.УстройствоВключено = 1;
ОбъектДрайвера.ПосылкаДанных = 1;
ОбъектДрайвера.ОчиститьВход();
ОбъектДрайвера.ОчиститьВыход();
КонецЕсли;
Исключение
Сообщить("Ошибка подключения сканера!");
КонецПопытки;
КонецПроцедуры
Теперь, при каждом сканировании будет происходить обработка внешнего события, и в процедуре "ОбработкаВнешнегоСобытия" получаем отсканированный штрих код и далее обрабатываем его уже по своему усмотрению.
Процедура ОбработкаВнешнегоСобытия(Источник, Событие, Данные)
Если Событие = "BarCodeValue" Тогда
ШтрихКод = Данные;
КонецЕсли;
КонецПроцедуры
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)ну для начала тебе придется написать свою обработку по подключению оборудования, потом снюхать драйвер Ханивел со своей базой, потом запилить поиск по ШК, потом пробовать подключить сей девайс и уже на финише тебе нужно внедрить поиск по ШК во все документы где тебе это потребуется (Реализация, ЧекККМ, Поступление это как минимум).
(2)Я в УТ 11 никаких драйверов конкретно для Ханивел не устанавливал, только воткнeл его в USB, 1С все сама установила, как на картинке. После подключения в формах УТ 11 стало возникать внешнее событие при считывании штрихкода. Мне надо, чтобы в моей самописной конфигурации тоже возникало внешнее событие, дальше я знаю что делать. Варианты с наведением на какое то поле и считывание (F7 и т.п.) или COM порт оставляю на крайний случай.
(4)
(4)
(5)Вроде в УТ 10 не обязательно подключать через COM он и в разрыв работает, обычно используется компонента ScanOpos: https://releases.1c.ru/project/ScanOpos
Методы для подключения и использования оборудования можно посмотреть вот в этой теме:
https://its.1c.ru/db/metod8dev#content:4829:hdoc:chapter237
Методы для подключения и использования оборудования можно посмотреть вот в этой теме:
(1)
1. Копипастите из любой конфы на БСП общий макет с ВК для сканера (Native).
2. В модуле приложения (или какой там модуль запускается в неуправляемых формых при начале работы системы) прописываете глобальную переменную для ВК, подключаете ВК из макета.
3. В формах, в которых должны обрабатываться ШК, указываете обработчик внешнего события, в который будут лететь ШК.
4. Для пущей красоты форму с параметрами сделайте, в которую то, что компонента возвращает.
ВК в части работы с клавиатурой в общем-то проста - задается устройство, список устройств в ХМЛ, вываливающейся по какой-то функции этой ВК. Накатываете параметры, потом ВК.Подключить() - все.
1. Копипастите из любой конфы на БСП общий макет с ВК для сканера (Native).
2. В модуле приложения (или какой там модуль запускается в неуправляемых формых при начале работы системы) прописываете глобальную переменную для ВК, подключаете ВК из макета.
3. В формах, в которых должны обрабатываться ШК, указываете обработчик внешнего события, в который будут лететь ШК.
4. Для пущей красоты форму с параметрами сделайте, в которую то, что компонента возвращает.
ВК в части работы с клавиатурой в общем-то проста - задается устройство, список устройств в ХМЛ, вываливающейся по какой-то функции этой ВК. Накатываете параметры, потом ВК.Подключить() - все.
Нашел в интернете такой пример и на его основе написал. Всем спасибо за участие.
Процедура ПриНачалеРаботыСистемы()
ПутьКДрайверу = "C:\Program Files (x86)\1C\1C Barcode scanner\8_0_17_3\ScanOPOS.dll";
Порт = 0; // 0 - в том случае, если сканер подключается в разрезе клавиатуры, иначе необходимо указать номер используемого com-порта
БитДанных = 8; // возможные значения от 1 до 8 (должно соответствовать настройкам сканера)
Скорость = 9600; // возможные значения: 110, 300, 600, 1200, 2400, 4800, 9600, 14400, 19200,
//38400, 56000, 57600, 115200, 128000, 256000 (должно соответствовать настройкам сканера)
Суффикс = "13"; // должно соответствовать настройкам сканера
Попытка
ЗагрузитьВнешнююКомпоненту(ПутьКДрайверу);
ОбъектДрайвера = Новый("AddIn.Scanner");
ОбъектДрайвера.Открыть(1);
ОбъектДрайвера.ИмяСобытия = "BarCodeValue";
ОбъектДрайвера.ОчиститьВход();
ОбъектДрайвера.ОчиститьВыход();
ОбъектДрайвера.АвтоВыключение = 0;
ОбъектДрайвера.ПосылкаДанных = 1;
ОбъектДрайвера.УстройствоВключено = 1;
ОбъектДрайвера.ЗапрещениеСобытий = 0;
ОбъектДрайвера.Порт = Порт;
ОбъектДрайвера.СуффиксСтрока = Суффикс;
ОбъектДрайвера.СтопСимвол = 13;
ОбъектДрайвера.БитДанных = БитДанных;
ОбъектДрайвера.Скорость = Скорость;
Попытка
Результат = (ОбъектДрайвера.Занять(1) = 0);
Исключение
Результат = Ложь;
КонецПопытки;
Если Результат Тогда
ОбъектДрайвера.УстройствоВключено = 1;
ОбъектДрайвера.ПосылкаДанных = 1;
ОбъектДрайвера.ОчиститьВход();
ОбъектДрайвера.ОчиститьВыход();
КонецЕсли;
Исключение
Сообщить("Ошибка подключения сканера!");
КонецПопытки;
КонецПроцедуры
Теперь, при каждом сканировании будет происходить обработка внешнего события, и в процедуре "ОбработкаВнешнегоСобытия" получаем отсканированный штрих код и далее обрабатываем его уже по своему усмотрению.
Процедура ОбработкаВнешнегоСобытия(Источник, Событие, Данные)
Если Событие = "BarCodeValue" Тогда
ШтрихКод = Данные;
КонецЕсли;
КонецПроцедуры
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот