Решение задач 1С:Предприятие 8 на примерах

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

Управляемые формыОпубликовано Обновлено

Если в конфигурации нет готовой подсистемы подключаемого оборудования, сканер можно подключить кодом. Пример показывает настройку драйвера от 1С для сканера, подключённого через USB в разрыв клавиатуры, и обработку отсканированного кода.

Пример кода: подключение драйвера и обработка штрихкода

Рассмотрим задачу по подключению сканера штрих кодов используя драйвер "1С:Сканер штрихкода" 8.0.17.3. В нашем примере сканер будет подключен через USB-порт в разрыв клавиатуры.
Решение.
Устанавливаем драйвер 1С. Далее в модуле управляемого приложения в процедуре "ПриНачалеРаботыСистемы" прописываем код для подключения.

Процедура ПриНачалеРаботыСистемы()    
   ПутьКДрайверу = "C:\Program Files (x86)\1C\1C Barcode scanner\8_0_17_3\ScanOPOS.dll";
    Порт = 0; // 0 - в том случае, если сканер подключается в разрезе клавиатуры, иначе необходимо указать номер используемого com-порта
    БитДанных = 8; // возможные значения от 1 до 8 (должно соответствовать настройкам сканера)
    Скорость = 9600; // возможные значения: 110, 300, 600, 1200, 2400, 4800, 9600, 14400, 19200,
                    //38400, 56000, 57600, 115200, 128000, 256000 (должно соответствовать настройкам сканера)

    Суффикс = "13"; // должно соответствовать настройкам сканера
    Попытка
        ЗагрузитьВнешнююКомпоненту(ПутьКДрайверу);
        ОбъектДрайвера = Новый("AddIn.Scanner");
        ОбъектДрайвера.Open(1);
        ОбъектДрайвера.ИмяСобытия = "BarCodeValue";
        ОбъектДрайвера.ОчиститьВход();
        ОбъектДрайвера.ОчиститьВыход();
        ОбъектДрайвера.АвтоВыключение = 0;
        ОбъектДрайвера.ПосылкаДанных = 1;
        ОбъектДрайвера.УстройствоВключено = 1;
        ОбъектДрайвера.ЗапрещениеСобытий = 0;
        ОбъектДрайвера.Порт = Порт;
        ОбъектДрайвера.СуффиксСтрока = Суффикс;
        ОбъектДрайвера.СтопСимвол = 13;
        ОбъектДрайвера.БитДанных = БитДанных;
        ОбъектДрайвера.Скорость = Скорость;
        Попытка
            Результат = (ОбъектДрайвера.Занять(1) = 0);
        Исключение
            Результат = Ложь;
        КонецПопытки;
        Если Результат Тогда
            ОбъектДрайвера.УстройствоВключено = 1;
            ОбъектДрайвера.ПосылкаДанных = 1;
            ОбъектДрайвера.ОчиститьВход();
            ОбъектДрайвера.ОчиститьВыход();
        КонецЕсли;    
    Исключение
        Сообщить("Ошибка подключения сканера!");
    КонецПопытки;
КонецПроцедуры

Теперь, при каждом сканировании будет происходить обработка внешнего события, и в процедуре "ОбработкаВнешнегоСобытия" получаем отсканированный штрих код и далее обрабатываем его уже по своему усмотрению.

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

Актуальность для новых версий

В типовых конфигурациях (УТ 11.5, ERP 2.5, КА 2.5) сканеры подключают через Библиотеку подключаемого оборудования в разделе администрирования, и писать код подключения не требуется. Ручной вариант из статьи пригодится в собственных конфигурациях; учтите, что указанная версия драйвера устарела, а в современных режимах платформы вместо ЗагрузитьВнешнююКомпоненту используется ПодключитьВнешнююКомпоненту.

Частые вопросы

Какой порт указывать для сканера в разрыв клавиатуры?

В примере для такого подключения используется значение 0. Для COM-сканера указывается номер COM-порта.

Где получить отсканированный штрихкод?

В процедуре ОбработкаВнешнегоСобытия модуля приложения: при событии BarCodeValue штрихкод передаётся в параметре Данные.

Что делать, если сканер не подключается?

Проверьте путь к библиотеке драйвера и соответствие скорости, числа бит данных и суффикса настройкам самого сканера — в примере они задаются явно.

Как открыть форму в управляемом приложении 1С и обработать результат после закрытия

Управляемые формы

Шесть типовых сценариев открытия управляемой формы в 1С: новый объект, создание на основании, существующий документ, форма выбора и получение результата после закрытия через ОписаниеОповещения.

Условное оформление элементов формы программным способом

Управляемые формы

Шесть примеров программного условного оформления в управляемой форме 1С: цвет поля по значению, сравнение двух реквизитов, оформление строк динамического списка и условие по текущей дате.

Как программно установить параметры выбора для формы выбора объекта

Управляемые формы

Как программно задать параметры выбора поля, чтобы форма выбора открывалась с нужным отбором, например только проведённые документы нужного партнёра, без изменения самой формы выбора.

Как запретить редактирование всех элементов формы, кроме некоторых

Управляемые формы

Свойство ТолькоПросмотр блокирует всю форму целиком. Приводим рекурсивную процедуру, которая запрещает редактирование всех элементов управляемой формы, оставляя доступными только нужные.