Имя: Пароль:
1C
1С v8
Сканер штрих-кодов в режиме эмуляции COM-порта
0 bahtik
 
17.10.13
23:20
Люди! Пожалуйста, помогите разобраться со сканером штрих-кодов. Есть необходимость подключить его в режиме эмуляции COM-порта и отслеживать события от устройства. Конфигурация самописная (с нуля) на 8.3. Я пока не могу понять сам принцип: есть внешняя компонента 1С ScanOPOS (ее я скачал и установил, также есть обработка обслуживания 1CScanOPOSScan_v2.epf... Что тут для чего, нужна ли эта обработка обслуживания в версии 8.3 или можно напрямую обращаться к внешней компоненте и получать от нее события? Кто знает, подскажите, пожалуйста. Очень надо.
1 Ленинград
 
17.10.13
23:32
Я писал ответ, но я пяный и много ощибок так что прости
2 bahtik
 
18.10.13
00:54
(1) Ну вот почему все нужные люди бухают... )) Протрезвеешь, напиши, пожалуйста, а? Если вспомнишь, конечно ))
3 CepeLLlka
 
18.10.13
00:56
(0)Ну ты сам сканер то подключил в нужном тебе режиме?
Чтобы проверить поставь какую-нибудь конфу на 8.3 где есть работа со сканером.. и проверь..
Если всё норм, тогда могу сказать что я делал в 8.2 УФ чтобы подключить сканер через тонкий клиент..

В модуле управляего приложения:

Перем ГлДрайверОбъекта Экспорт;

Процедура ПередНачаломРаботыСистемы(Отказ)
    ГлДрайверОбъекта = Новый Соответствие();
КонецПроцедуры



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


&НаКлиенте
Процедура ПриОткрытии(Отказ)
    //*****************************************Создание объекда драйвера сканера и подключение сканера*****************************************
    ProgID = "AddIn.Scanner";
    Попытка
        ПодключитьВнешнююКомпоненту(ProgID);
    Исключение
        Сообщить(ОписаниеОшибки());
    КонецПопытки;
    ОбъектДрайвера = Новый (ProgID);
        
    Если ОбъектДрайвера <> Неопределено Тогда
        ГлДрайверОбъекта.Вставить("ДрайверСканера", ОбъектДрайвера);
    КонецЕсли;
        
    ОбъектДрайвера.Подсоединить("СканерШтрихКода");
    
    ОбъектДрайвера.БитДанных  = 8;
    ОбъектДрайвера.Порт       = 1;
    ОбъектДрайвера.Скорость   = 9600;
    
    ОбъектДрайвера.СтопСимвол = 13;
    ОбъектДрайвера.ИмяСобытия = "ПолученШтрихкод";


    Результат = (ОбъектДрайвера.Занять(1) = 0);
    Если Результат Тогда
        ОбъектДрайвера.УстройствоВключено = 1;
        ОбъектДрайвера.ПосылкаДанных      = 1;
        ОбъектДрайвера.ОчиститьВход();
        ОбъектДрайвера.ОчиститьВыход();

        Результат = (ОбъектДрайвера.УстройствоВключено = 1);
        Если НЕ Результат Тогда
            ОбъектДрайвера.УстройствоВключено = 0;
            ОбъектДрайвера.Освободить();
            ОбъектДрайвера.Отсоединить();
            Сообщить("Ошибка при подключении устройства.
            |Проверьте настройки порта.");
        КонецЕсли;
    Иначе
        ОбъектДрайвера.УстройствоВключено = 0;
        ОбъектДрайвера.Освободить();
        ОбъектДрайвера.Отсоединить();

        Сообщить("Не удалось занять устройство.
        |Возможно оно не подключено или
        |не верные настройки порта.");
    КонецЕсли;
    //*****************************************Создание объекда драйвера сканера и подключение сканера*****************************************
КонецПроцедуры


&НаКлиенте
Процедура ПриЗакрытии()
    //Отключение сканера
    ОбъектДрайвера = ГлДрайверОбъекта["ДрайверСканера"];
    
    ОбъектДрайвера.УстройствоВключено = 0;
    ОбъектДрайвера.Освободить();
    ОбъектДрайвера.Отсоединить();
    //Отключение сканера

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


Это что для подключения сканера и для отключения...
А это уже в момент получения данных со сканера..
&НаКлиенте
Процедура ВнешнееСобытие(Источник, Событие, Данные)
В переменной - "Данные" будет то что было в штрих коде..
КонецПроцедуры


У меня всё так работает на 8.2 УФ..
Я сканирую двумерные штрих коды правда..
Думаю что для 8.3 отличия не большие..
4 CepeLLlka
 
18.10.13
01:04
Ну это всё при условии, что ScanOPOS.dll зарегистрированная в системе, но ты вроде уже поставил её..
5 bahtik
 
18.10.13
01:27
(3) Спасибо тебе огромное! Сейчас буду пробовать...
6 CepeLLlka
 
18.10.13
07:54
Пожалуйста :) Я итак тут должен всем.. хоть кому-то помогу если смогу..
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn