|   |   | 
| 
 | Подключение сканера к пустой 1С 8 через nativeapi aptomilov, kir-g, abfm, lEvGl, zva, CepeLLlka, nextssbt, MWWRuza, maxab72, FormatC, Somebody, p-soft, nick86, Ненавижу 1С, Renat11111, PuhUfa, Prog_man, DemonShinji2, arsik, PR, vbus, zablic2010, d4rkmesa, Indian, Волшебник, denk32, Умный Слоненок, elka302, Has, ddubrovin, baza1, U4Me2, Silgis, DrZombi, BalBess | ☑ | ||
|---|---|---|---|---|
| 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 раза нажать на кнопку подключить сканер то приложение так же выпадает | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |