Подключение сканера к 1С Предприятие 8.3


Подключение сканера к 1С Предприятие 8.3 (обычные и управляемые формы)
Сначала с подключением к конфигурации на обычных формах. 

Открываем модуль обычного приложения и пишем вот такой код:

Перем Сканер Экспорт;

 

Процедура ПриНачалеРаботыСистемы() 

// загрузка компоненты для обычного приложения
// работает и в управляемом приложении (толстый клиент)
// но, тогда нужно прописать эту процедуру в модуле управляемого приложения

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

КонецПроцедуры

 

Процедура ПриЗавершенииРаботыСистемы()

   // Отсоединение объекта
   Если Константы.СканерИспользуется.Получить() Тогда
      Сканер = 0; 
   КонецЕсли;

КонецПроцедуры
Перед этим нужно в каталог информационной базы скопировать файл Scaner1C.dll и зарегистрировать его через regsvr32.exe
Если все сделали правильно, то после запуска конфигурации в режиме обычного приложения, в меню Сервис - Параметры, должна появиться дополнительная вкладка "Драйвер сканера штрих-кода". В этой вкладке нужно настроить параметры сканера (порт, скорость, а также можно определить, к какому порту подключен сканер).


Получение информации со сканера.
Для этого используется процедура ВнешнееСобытие(Источник, Событие, Данные), где:
Источник - источник события
Событие - вид события, нам нужно событие BarCodeValue
Данные - данные, полученные со сканера.
Примеры обработок внешних событий:
// получаем штрихкод товара

Процедура ВнешнееСобытие(Источник, Событие, Данные)
   // данные со сканера ШК
   Если Событие = "BarCodeValue" Тогда
      ШКТовара = СокрЛП(Данные);
   КонецЕсли;
КонецПроцедуры

// открываем документ по штрихкоду

Процедура ВнешнееСобытие(Источник, Событие, Данные)

// данные со сканера ШК
Если Событие = "BarCodeValue" Тогда
ШКДок = СокрЛП(Данные);
НайтиИОткрытьДокумент(ШКДок);
КонецЕсли;

КонецПроцедуры

Процедура НайтиИОткрытьДокумент(ШКДок)

Попытка
ДокПриходная = Документы.Приходная.НайтиПоРеквизиту("ШКДокумента", ШКДок);
ДокПриходная.ПолучитьФорму("ФормаДокумента").Открыть();
Исключение
Сообщить("Документ со штрихкодом " + СокрЛП(ШКДок) + " не найден!");
КонецПопытки;

КонецПроцедуры

Подключение сканера в режиме управляемого приложения.
Осуществляется такой же функцией ЗагрузитьВнешнююКомпоненту. Единственное отличие - код для загрузки нужно прописать в модуле управляемого приложения. Запуск программы нужно производить в режиме толстого клиента, иначе компонента не загрузится.
Если все сделали правильно, то в конфигурации в режиме управляемых форм появится вкладка с подключенным драйвером. 

Работа с данными сканера осуществляется также с помощью процедуры ВнешнееСобытие.

Комментариев нет:

Отправить комментарий