четверг, 22 января 2015 г.

Подключение сканера штрихкода к 1с 8.2 Управляемое приложение

Что бы подключить сканер штрихкода к 1с 8.2 управляемому приложению придется заняться шаманством...

Предварительная  настройка:
1)Установить последние (старые бесплатные) драйвера "Атол" - не забыть, что это выполняется под правами Администратора.

2)Настройка сканера (путем штрихкодов из инструкции или утилитой), заключается в том (помимо основных манипуляций), что бы сканер выдавал постфикс "Возврат корретки".
3)Утилитой от Атола, расположенной в папке "C:\Program Files (x86)\ATOL\Drivers\Bin\Scaner_t.exe" так же необходимо указать помимо порта, так же постфикс "Возврат корретки"!!!! - это обязательно.
На этом предварительная настройка окончена.
Программный код в 1с.
1)Подключить драйвер можно так:
Объявить на клиенте в форме глобальную переменную:

&НаКлиенте
Перем Драйвер;

А сам код подключения вынести в процедуру/Функцию (&НаКлиенте), например "ПриОткрытии()"

//УстановитьВнешнююКомпоненту("ВнешняяОбработка.ТестСканер.Макет.МакетВК");
    //ПодключитьВнешнююКомпоненту("ВнешняяОбработка.ТестСканер.Макет.МакетВК","АТОЛСканер",ТипВнешнейКомпоненты.Native);   
    //УстановитьВнешнююКомпоненту("ОбщийМакет.ДрайверАТОЛСканерШтрихкода");
    ProgID = "AddIn.Scaner45";
    ПодключитьВнешнююКомпоненту(ProgID);
    Драйвер = Новый (ProgID);   
    Драйвер.DataEventEnabled=1;
    Драйвер.стараяВерсия=1;
    Драйвер.autoDisable=0;

2)Создать обработку, отрабатывающую вызов внешнего события в этой форме (&НаКлиенте):
&НаКлиенте
Процедура ВнешнееСобытие(Источник, Событие, Данные)
    Если Источник="BarCodeScaner" Тогда
               ШтрихкодПриИзменении("");
    КонецЕсли;
КонецПроцедуры

Если событие не вызывается, то скорее всего либо занят порт, либо не выставлен флаг "Устройство включено", либо не равны постфиксы в сканере и у драйвера...

Последние бесплатные драйвера можно скачать здесь.

Пример Обработки