Имя: Пароль:
1C
1С v8
Вопрос по подключению сканера штрих-кодов
,
0 IVT_2009
 
23.07.20
10:37
Существует ли простой способ подключить сканер штрих кода не в режиме клавиатуры в управляемых формах с использованием компоненты сканера от 1с. Где можно пример посмотреть?
1 IVT_2009
 
23.07.20
10:38
Можно его через библиотеку подключаемого оборудования подключить , но мне только для него не хотелось бы ее тащить в свой проект
2 unbred
 
23.07.20
10:40
гугл первая ссылка
3 IVT_2009
 
23.07.20
10:43
(2) пробовал и не раз, потому задаю вопросы
4 IVT_2009
 
23.07.20
10:51
Пробую

Попытка
   // Загрузка внешней компоненты
   ЗагрузитьВнешнююКомпоненту("e:\Scanner.dll");
Попытка
  // Создание объекта
  //AddIn.Scanner
  //Сканер = Новый("AddIn.Scaner45");
  Сканер = Новый("AddIn.Scaner");
  Сканер.OldVersion = 1;
  Исключение
  Сообщить("Объект не найден!");
КонецПопытки;
Исключение
  Сообщить("Внешняя компонента драйвера не найдена");
КонецПопытки;


регистрирую компоненту в реестре.
пишет Внешняя компонента драйвера не найдена
5 Василий Алибабаевич
 
23.07.20
10:57
(4) AddIn.Scaner45 - оно COM. И ему не нужно ЗагрузитьВнешнююКомпоненту. Это для натив.
Его нужно харагистрировать на компьютере с помощью regsvr32 . И дальше пользовать Сканер = Новый COMОбъект("AddIn.Scaner");
6 Василий Алибабаевич
 
23.07.20
10:57
/*зарегистрировать
7 IVT_2009
 
23.07.20
11:14
Смотрю в отладчике Новый("AddIn.Scaner")
пишет {(1)}: Тип не определен (AddIn.Scaner)
в реестре регистрировал.
Сейчас типовой драйвер от 1с попробую
8 IVT_2009
 
23.07.20
11:20
Установил стандартный драйвер от 1с , вижу тот же результат. Что я не правильно делаю ?
9 IVT_2009
 
23.07.20
12:46
10 IVT_2009
 
23.07.20
13:54
для драйвера 1с

&наКлиенте
процедура вклСканер()
    
    ProgID = "AddIn.Scanner";
    ПодключитьВнешнююКомпоненту(ProgID);
    ОбъектДрайвера     = Новый (ProgID);
    порт             = 11; // 0 - в том случае, если сканер подключается в разрезе клавиатуры, иначе необходимо указать номер используемого com-порта
    БитДанных         = 8; // возможные значения от 1 до 8 (должно соответствовать настройкам сканера)
    Скорость         = 9600; // возможные значения: 110, 300, 600, 1200, 2400, 4800, 9600, 14400, 19200, 38400, 56000, 57600, 115200, 128000, 256000 (должно соответствовать настройкам сканера)
    Суффикс         = "13"; // должно соответствовать настройкам сканера
    
    попытка
        
        ОбъектДрайвера.Open(1);
        ОбъектДрайвера.ИмяСобытия = "BarCodeValue";
        ОбъектДрайвера.ОчиститьВход();
        ОбъектДрайвера.ОчиститьВыход();
        ОбъектДрайвера.АвтоВыключение = 0;
        ОбъектДрайвера.ПосылкаДанных = 1;
        ОбъектДрайвера.УстройствоВключено = 1;
        ОбъектДрайвера.ЗапрещениеСобытий = 0;
        ОбъектДрайвера.Порт = порт;
        ОбъектДрайвера.СтопСимвол = 13;
        
        Попытка
            
            Результат = (ОбъектДрайвера.Занять(1) = 0);
            
        Исключение
            
            Результат = Ложь;
            
        КонецПопытки;
        
        Если Результат Тогда
            
            ОбъектДрайвера.УстройствоВключено = 1;
            ОбъектДрайвера.ПосылкаДанных = 1;
            ОбъектДрайвера.ОчиститьВход();
            ОбъектДрайвера.ОчиститьВыход();
            
        КонецЕсли;    
        
    Исключение
        
        Сообщить("Ошибка подключения сканера!");
        
    КонецПопытки;
    
конецпроцедуры      //вклСканер


&НаКлиенте
Процедура кнПодключить(Команда)
    
    вклСканер();
    
КонецПроцедуры

&НаКлиенте
Процедура ВнешнееСобытие(Источник, Событие, Данные)
    
    Если Событие="BarCodeValue" Тогда
        
        сообщить(Данные);
        
    КонецЕсли;
    
КонецПроцедуры
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.