|
|
|
Подключение сканера к пустой 1С 8 через nativeapi | ☑ | ||
|---|---|---|---|---|
|
0
aptomilov
26.11.24
✎
13:45
|
Привет всем пытаюсь подключить сканер к пустой конфе
Установил драйвер opos который выгрузил с макета пытаюсь подключить внешнюю компоненту ProgID = "AddIn.InputDevice"; ПодключитьВнешнююКомпоненту(ProgID); ОбъектДрайвера = Новый (ProgID); но ... пишет что не видит таких буков буквы в кавычках подсмотрел в info.xml драйверов <drivers> <component progid="AddIn.AddIn.InputDevice" type="СканерШтрихкода" name="1С:Сканеры штрихкода (NativeApi)" version="10.4.2.6"> </component> </drivers> Может уже есть у кого опыт такого подключения, поделитесь. |
|||
|
1
p-soft
26.11.24
✎
13:49
|
пробуйте Новый ("AddIn.InputDevice.InputDevice")
|
|||
|
2
aptomilov
26.11.24
✎
13:57
|
(1)
При подключении оборудования произошла ошибка: "'1С:Сканеры штрихкода (NativeApi)': Не удалось загрузить драйвер устройства. Проверьте, что драйвер корректно установлен и зарегистрирован в системе.". |
|||
|
3
aptomilov
26.11.24
✎
13:57
|
{ОбщийМодуль.МенеджерОборудованияКлиент.Модуль(1526)}: Тип не определен (AddIn.InputDevice.InputDevice)
|
|||
|
4
Garykom
гуру
26.11.24
✎
14:05
|
(0) БПО же
|
|||
|
5
aptomilov
26.11.24
✎
14:11
|
(4) пытался кусками переносить бпо да но как то пока не получается его реанимировать
|
|||
|
6
CepeLLlka
26.11.24
✎
14:21
|
&НаКлиенте
Процедура ПриЗакрытии(ЗавершениеРаботы)
Если ГлДрайверОбъекта.Свойство("ИДУстройства") И ГлДрайверОбъекта.Свойство("ДрайверСканера") Тогда
ГлДрайверОбъекта.ДрайверСканера.Отключить(ГлДрайверОбъекта.ИДУстройства);
ГлДрайверОбъекта.Очистить();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
//Попытка подключения сканера
ДопПараметры = Новый Структура;
ДопПараметры.Вставить("ПредложенаУстановкаКомпоненты", Ложь);
НачатьПодключениеВнешнейКомпоненты(Новый ОписаниеОповещения("ПодключениеВнешнейКомпонентыЗавершение", ЭтаФорма, ДопПараметры), "ОбщийМакет.Драйвер1СУстройстваВводаNative", "InputDevice", ТипВнешнейКомпоненты.Native);
КонецПроцедуры
&НаКлиенте
Процедура УстановкаВнешнейКомпонентыЗавершение(ДополнительныеПараметры) Экспорт
КонецПроцедуры
&НаКлиенте
Процедура ПодключениеВнешнейКомпонентыЗавершение(Подключено, ДополнительныеПараметры) Экспорт
Если НЕ Подключено Тогда
Если НЕ ДополнительныеПараметры.ПредложенаУстановкаКомпоненты Тогда
ДополнительныеПараметры.Вставить("ПредложенаУстановкаКомпоненты", Истина);
НачатьУстановкуВнешнейКомпоненты(Новый ОписаниеОповещения("УстановкаВнешнейКомпонентыЗавершение", ЭтаФорма, ДополнительныеПараметры), "ОбщийМакет.Драйвер1СУстройстваВводаNative");
КонецЕсли;
НачатьПодключениеВнешнейКомпоненты(Новый ОписаниеОповещения("ПодключениеВнешнейКомпонентыЗавершение", ЭтаФорма, ДополнительныеПараметры), "ОбщийМакет.Драйвер1СУстройстваВводаNative", "InputDevice", ТипВнешнейКомпоненты.Native);
Иначе
Результат = ПодключитьСканер();
Если НЕ Результат.Подключено Тогда
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = Результат.ТекстОшибки;
Сообщение.Сообщить();
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Функция ПодключитьСканер()
//Подключение драйвера
Результат = Новый Структура;
Результат.Вставить("Подключено", Истина);
Результат.Вставить("ТекстОшибки", "");
ОбъектДрайвера = Новый ("AddIn.InputDevice.InputDevice");
//Добавление объекта драйвера в глобальную клиентскую переменную
Если ОбъектДрайвера <> Неопределено Тогда
ГлДрайверОбъекта.Вставить("ДрайверСканера", ОбъектДрайвера);
Иначе
Результат.Вставить("Подключено", Ложь);
Результат.Вставить("ТекстОшибки", НСтр("ru='Не удалось создать объект драйвера.'"));
Возврат Результат;
КонецЕсли;
Попытка
ОбъектДрайвера.УстановитьПараметр("EquipmentType", "СканерШтрихкода")
Исключение
Результат.Вставить("Подключено", Ложь);
Результат.Вставить("ТекстОшибки", НСтр("ru='Ошибка обращения к драйверу.'"));
Возврат Результат;
КонецПопытки;
// Параметры для Линукса
СисИнфо = Новый СистемнаяИнформация;
Если СисИнфо.ТипПлатформы = ТипПлатформы.Linux_x86_64 ИЛИ СисИнфо.ТипПлатформы = ТипПлатформы.Linux_x86 Тогда
ОбъектДрайвера.УстановитьПараметр("COMEncoding", "UTF-8");
ОбъектДрайвера.УстановитьПараметр("GSSymbolKey", -1);
ОбъектДрайвера.УстановитьПараметр("KeyboardDevice", "SuperLead 2620-N-BT");
ОбъектДрайвера.УстановитьПараметр("OutputDataType", 0);
ОбъектДрайвера.УстановитьПараметр("Port", 0);
ОбъектДрайвера.УстановитьПараметр("Speed", 9600);
ОбъектДрайвера.УстановитьПараметр("Suffix", 13);
ОбъектДрайвера.УстановитьПараметр("TimeoutCOM", 5);
КонецЕсли;
ИДУстройства = "";
Попытка
Ответ = ОбъектДрайвера.Подключить(ИДУстройства);
Исключение
Результат.Вставить("Подключено", Ложь);
Результат.Вставить("ТекстОшибки", НСтр("ru='Ошибка вызова метода <ОбъектДрайвера.Подключить>.'") + Символы.ПС + ОписаниеОшибки());
Возврат Результат;
КонецПопытки;
Если НЕ Ответ Тогда
Результат.Вставить("Подключено", Ложь);
ОбъектДрайвера.ПолучитьОшибку(Результат.ТекстОшибки)
Иначе
ГлДрайверОбъекта.Вставить("ИДУстройства", ИДУстройства);
КонецЕсли;
Возврат Результат;
КонецФункции
В модуле приложения Перем ГлДрайверОбъекта Экспорт; Только эт для Линукса было, но там разница не большая была, я сначала на винде пробовал. |
|||
|
7
Звездец
26.11.24
✎
14:13
|
а может лучше БПО внедрить? в чем необходимость сканер в лоб подключать?
|
|||
|
8
lEvGl
гуру
26.11.24
✎
14:17
|
+ за БПО, но если все не надо, то выдернуть, то что нужно
|
|||
|
9
aptomilov
26.11.24
✎
14:18
|
(7) может так и сделаю но позжа время жмем прям
|
|||
|
10
lEvGl
гуру
26.11.24
✎
14:22
|
вот выдергивал
Если Не ПодключитьВнешнююКомпоненту("ОбщийМакет.ДрайверСканера", "InputDevice", ТипВнешнейКомпоненты.Native) Тогда
УстановитьВнешнююКомпоненту("ОбщийМакет.ДрайверСканера");
ПодключитьВнешнююКомпоненту("ОбщийМакет.ДрайверСканера", "InputDevice", ТипВнешнейКомпоненты.Native);
Конецесли;
Сканер = Новый("AddIn.InputDevice.InputDevice");
Сканер.Подключить("СканерШтрихкода");
в БПО макет назывался, Кажется, по-другому, здесь тоже самописное зы. ну судя по (2) надо просто установить сначала |
|||
|
11
CepeLLlka
26.11.24
✎
14:22
|
(9)Так при помощи БСП быстрее будет всяко
|
|||
|
12
aptomilov
26.11.24
✎
14:45
|
(10) Устанавливал 10 раз, чо-то не видит
|
|||
|
13
lEvGl
гуру
26.11.24
✎
14:33
|
(12) что значит устанавливал?
|
|||
|
14
aptomilov
26.11.24
✎
14:35
|
(6) да заработало
осталось слушать этот сканер он будет стационарный |
|||
|
15
aptomilov
26.11.24
✎
14:36
|
(13)
из макета вываливаешь файлик в зипе там экзешники |
|||
|
16
lEvGl
гуру
26.11.24
✎
14:43
|
(15) код надо написать, даже просто скопировать
Если Не ПодключитьВнешнююКомпоненту("ОбщийМакет.ДрайверСканера", "InputDevice", ТипВнешнейКомпоненты.Native) Тогда
УстановитьВнешнююКомпоненту("ОбщийМакет.ДрайверСканера");
ПодключитьВнешнююКомпоненту("ОбщийМакет.ДрайверСканера", "InputDevice", ТипВнешнейКомпоненты.Native);
Конецесли;
Сканер = Новый("AddIn.InputDevice.InputDevice");
Сканер.Подключить("СканерШтрихкода");
конечно предварительно выгрузив макет БПО в файлик и загрузив его в макет своей конфы, потом этот код. Впрочем.. без разницы. |
|||
|
17
aptomilov
26.11.24
✎
14:43
|
При попытке отсканировать приложение падает :-) в ошибку
не нашу не 1с вскую |
|||
|
18
CepeLLlka
26.11.24
✎
14:48
|
(17)Код то хоть как-то адаптировали?
ОбъектДрайвера.УстановитьПараметр("KeyboardDevice", "SuperLead 2620-N-BT"); Тут конкретное устройство указывается например, у вас вероятно оно совсем другое |
|||
|
19
aptomilov
26.11.24
✎
15:20
|
Да не, но не думаю, что из-за этого строкового параметра что-то может сильно поменяться.
|
|||
|
20
aptomilov
26.11.24
✎
20:15
|
(6)
Этот же код поднял в абсолютно другой конфигурации и на другой машине приложение так же падает.... |
|||
|
21
CepeLLlka
26.11.24
✎
20:21
|
(20)Код нужно адаптировать под вашу ситуацию. Этот код работает на линуксе со сканером Mertech SuperLead 2620-N-BT
|
|||
|
22
aptomilov
26.11.24
✎
21:02
|
(21)
Все параметры взял с рабочей конфы где сканер работает ОбъектДрайвера.УстановитьПараметр("COMEncoding", "UTF-8"); ОбъектДрайвера.УстановитьПараметр("GSSymbolKey", 7); //ОбъектДрайвера.УстановитьПараметр("KeyboardDevice", "SuperLead 2620-N-BT"); ОбъектДрайвера.УстановитьПараметр("OutputDataType", 0); ОбъектДрайвера.УстановитьПараметр("Port", "0"); ОбъектДрайвера.УстановитьПараметр("Speed", 9600); ОбъектДрайвера.УстановитьПараметр("Suffix", 3338); ОбъектДрайвера.УстановитьПараметр("Prefix", -1); ОбъектДрайвера.УстановитьПараметр("Timeout", 35); ОбъектДрайвера.УстановитьПараметр("Parity", 0); ОбъектДрайвера.УстановитьПараметр("LogType", -1); ОбъектДрайвера.УстановитьПараметр("DataBits", 8); ОбъектДрайвера.УстановитьПараметр("StopBits", 0); пока не помогает |
|||
|
23
Умный Слоненок
27.11.24
✎
09:53
|
Сам драйвер загружен как внешняя компонента или как двоичные данные? Надо именно чтобы макет был типа внешняя компонента.
|
|||
|
24
lEvGl
гуру
27.11.24
✎
09:59
|
(23) можно забить, он установкой драйвера называет запуск экзешника в зипе
|
|||
|
25
aptomilov
27.11.24
✎
10:29
|
(23) Макет я взял из БПО
|
|||
|
26
aptomilov
27.11.24
✎
10:30
|
(24) дружище а ты когда любой драйвер ставишь в систему не exe ли запускаешь ?
|
|||
|
27
lEvGl
гуру
27.11.24
✎
10:38
|
ты мне не дружище, бот
|
|||
|
28
CepeLLlka
27.11.24
✎
11:38
|
(22)Вот были наработки какие-то, попробуйте https://dropmefiles.com/TTNCD
|
|||
|
29
aptomilov
27.11.24
✎
12:45
|
По итогу я так и не смог запустить сканер отдельно
при сканировании падает приложение зато смог Запихать БПО и теперь не только сканер но что угодно можно подключить к базе Кому нужна будет помощь в запихивании бпо обращайтесь там есть несколько ньюансов инструкции от 1с неактуальны |
|||
|
30
aptomilov
27.11.24
✎
12:45
|
(28)
за наработки спасибо обязательно попробую |
|||
|
31
aptomilov
27.11.24
✎
12:49
|
(28) работает удивительно
сейчас буду смотреть сравнивать в чем разница огромное благодарю |
|||
|
32
aptomilov
27.11.24
✎
13:22
|
Вобщем проблема была именно в Макете от КА 2,5
из за нее падает похоже она какая то кривая - но при этом в родной базе она работает отлично. Подгрузил из БПО и все завелось снова. Всем кто участвовал спасибо. |
|||
|
33
aptomilov
27.11.24
✎
14:18
|
(28)
обнаружил такой интересный баг если 2 раза нажать на кнопку подключить сканер то приложение так же выпадает |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |