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

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

Сначала с подключением к конфигурации на обычных формах. 


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

 

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



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

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

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

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



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

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

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

Перед этим нужно в каталог информационной базы скопировать файл Scaner1C.dll и зарегистрировать его через regsvr32.exe

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

 

 

Получение информации со сканера.

Для этого используется процедура ВнешнееСобытие(Источник, Событие, Данные), где:

Источник — источник события

Событие — вид события, нам нужно событие BarCodeValue

Данные — данные, полученные со сканера.

Примеры обработок внешних событий:

// получаем штрихкод товара

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

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

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

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

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

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

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

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

 

Подключение сканера в режиме управляемого приложения.

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

Если все сделали правильно, то в конфигурации в режиме управляемых форм появится вкладка с подключенным драйвером. 

 

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

27 Comments

  1. dj_serega

    А учитываются Не модальные вызовы?

    Список можно посмотреть тут.

    Reply
  2. qwinter

    и зачем БПО придумывали………..

    Reply
  3. dj_serega

    (2) qwinter, что такое БПО?

    Reply
  4. Diversus

    (3) Библиотека подключаемого оборудования

    Reply
  5. dj_serega

    (4) Diversus, в БСП есть?

    Reply
  6. qwinter

    (5) dj_serega, БПО это такая же библиотека, как и БСП. Встраивается в конфу или в БСП в течении получаса.

    Reply
  7. V_V_V

    (6) Ну вот зачем секрет выдал? Теперь все кому не лень будут использовать решения из БПО. А если узнают что оттуда можно выдрать и терминалы, и электронные весы, и фискальные регистраторы и еще массу вкусностей — пропадет проект…

    Reply
  8. vertkov2010

    Статья очень хорошая, автор напиши пожалуйста статью по подключению дисплея покупателя к 1С Предприятие 8.3

    Reply
  9. dchumak

    (8) vertkov2010,

    с таким оборудованием в нашей организации не работают, поэтому ничего написать не могу.

    Reply
  10. dchumak

    (7) V_V_V,

    (6) qwinter,

    статья написана в ознакомительных целях, либо для людей, только начинающих изучать 1С, либо для небольших авторских разработок. Если вам удобнее работать через БПО — пожалуйста, но, я думаю, найдутся и те, кому будет полезна данная публикация.

    Reply
  11. qwinter

    (10) dchumak, не только мне, но и еще примерно 80% разработчиков 1С. А по поводу полезности, есть замечательная статья про точку абсурда: http://infostart.ru/public/308140/

    Reply
  12. dchumak

    (11) qwinter,

    Этот бесконечный холивар. Все зависит от условий, в которых функционирует программный продукт, срок его действия и прочие факторы. Одно дело, когда внедряется конфигурация в т.н. «идеальных условиях» — типовой продукт, находящийся на поддержке, минимум доработок и т.д. — конечно, удобнее использовать стандартные библиотеки БСП, БПО и т.д. В том случае, если конфигурация используется долгое время (больше 10 лет), большим количеством пользователей, идут постоянные доработки, работает много программистов в штате — не всегде все идет так гладко, как хотелось бы. И достаточно часто используются не совсем «правильные» методы. Увы, не все так гладко в жизни, как хотелось бы. Так сказать, суровые жизненные реалии. Спасибо за комментарии.

    Reply
  13. oleg_km

    (12) Это вера истинных внедренцев в непогрешимость различных Библиотек Подсистем от 1С. Еще они забывают, когда появилась 1С 8, а когда эти Библиотеки. Они может все это время сидели и ждали, когда же 1С снизойдет до разработки Библиотеки Подсистем. Нормальные разработчики уже давно свои написали

    Reply
  14. qwinter

    (13) oleg_km, ну так давайте вспомним в каком году 1С выпустила «Обработка обслуживания «1С: Сканер штрихкода», в 2005? в 2006? БПО вышла два года назад. Но такие «гении внедрения» как вы продолжаете писать велосипеды, аналоги которых 1С выпустила еще 8-9 лет назад.

    Reply
  15. RomanBor

    При подключении сканера в 7.7 по похожему алгоритму столкнулся с проблемой, через openvpn были соединены два цеха база одна все работают по rdp(терминал), сканер настроен в разрез клавиатуры, и в настройках есть такая штука как чувствительность, и на удаленной точке время прохода пакета плавает, и компонента думала что это не сканер а клава и считала что ШК(Штрих-код) кончился,и ШК приходит урезанный.

    Поборол только тем что на клиентах которые стоят удаленно делалась форма обработки в которую без всякой компоненты в поле ввода вводился шк со сканера, символ «возврат коретки» посылался сканером как префикс шк, и все коды собирались в таблицу, после кнопки принять весь набор штрих-кодов обрабатывался

    ЗЫ: это просто для информации

    Reply
  16. Tarlich

    (15) RomanBor, Спасибо! самая полезная инфа с сей страницы -))

    Reply
  17. Elisy

    (0) Форма, которая появилась в Сервис-Параметры очень похожа на настройку драйвера считывания штрих-кодов АТОЛ. Есть подозрение, что в статье описана не работа с драйвером от 1С, а работа АТОЛ-драйвера. Последний драйвер от 1С можно выдернуть из БПО. Инициализируется он через ПрогИД = «AddIn.Scanner» (а не AddIn.Scaner45, как в статье).

    Удалось выяснить, что сканер штрих-кода 1С может считывать также RFID-метки через считыватель с эмуляцией клавиатуры. А вот АТОЛ-драйвер не может справиться с такой задачей.

    Reply
  18. webester

    (12)Так и не понял, что мешает подключить библиотеку? Суровые реалии или другие программисты против? Кто из них встал между вами и библиотекой?

    Reply
  19. webester

    (17)Да вроде драйвер от 1С загружает. Грузить библиотеку с «D:ChumakDVБАЗЫ8.2СканерScaner1C.dll», особенно в базе с «суровыми реалиями», «большим количеством пользователей» и «работает много программистов в штате» вообще не вариант да и смысла как то не могу найти.

    Reply
  20. sir.wbg

    Читаю хор!

    Все поют о своем.

    Для человека пришедшего со стороны.

    Видно. Что обзор методов подключения оборудования.

    Который прекратил бы этот «базар» всем лень написать.

    Приходится поддерживать разные конфигурации.

    Созданные в разное время. С разными библиотеками.

    С rdp и без. По сom и в разрыв.

    Набирается приличная статья.

    Судя по актуальности вопроса, нужная статья!

    Достойные половинчатых статей полный инфостарт.

    Реально тратим время на просеивание крупиц.

    А споры вообще не к лицу.

    Ни одному не под силу?

    Всем слабо?!!!

    Давайте вместе писать!

    Не для себя ради.

    Reply
  21. RomanBor

    (20) sir.wbg,

    А на хрена она статья то, вся информация в «Библиотеке Подключаемого оборудования», там все есть, и сканер желательно цеплять по com порту

    ВСЕ

    Reply
  22. androgin

    Для себя я сделал так:

    ////////////////////////////////////////////////////////////­///////////////
    
    Процедура ПодключениеСканера() Экспорт
    Если НЕ ПодключитьВнешнююКомпоненту(«ОбщийМакет.ДрайверАТОЛСканерШтрихкода», «АТОЛСканер», ТипВнешнейКомпоненты.COM) Тогда
    Оповещение = Новый ОписаниеОповещения(«УстановитьСканер», ЭтотОбъект);
    НачатьУстановкуВнешнейКомпоненты(Оповещение, «ОбщийМакет.ДрайверАТОЛСканерШтрихкода»);
    Возврат;
    КонецЕсли;
    ПодключитьСканер();
    КонецПроцедуры
    
    Процедура УстановитьСканер(Параметры) Экспорт
    ПодключитьВнешнююКомпоненту(«ОбщийМакет.ДрайверАТОЛСканерШтрихкода», «АТОЛСканер», ТипВнешнейКомпоненты.COM);
    ПодключитьСканер();
    КонецПроцедуры
    
    Процедура ПодключитьСканер()
    Попытка
    глСканер = Новый («AddIn.АТОЛСканер.Scaner45»);
    Исключение
    ПоказатьПредупреждение(, «Компонента сканера не подключена»);
    КонецПопытки;
    КонецПроцедуры
    

    Показать

    Reply
  23. dchumak

    (22)

    Спасибо, я читал, что так через макеты тоже можно подключать.

    Reply
  24. wmonref1

    Помогите пожалуйста:

    Установил атоловские драйвера, платформа 8.3.13.1513, обычные формы.

    В Сервис — Параметры отсутствует вкладка Драйвер.

    Как жить дальше?

    Reply
  25. Tipo4ek

    У меня тоже отсутствует вкладка «Драйвер»

    помогите плиз.

    Reply
  26. ladywitch

    Возникает данная ошибка. В чем может быть проблема?

    Reply
  27. dchumak

    (26) попробуйте другую версию библиотеки.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *