Имя: Пароль:
1C
 
Сканирование с промышленного планшета
0 ejikbeznojek
 
10.05.18
18:09
Всем привет.
Привезли промышленный планшет с китая, в котором есть модуль сканирования от зебры. Который в режиме клавиатуры не работает, а только через SDK такого вида. https://www.zebra.com/content/dam/zebra_new_ia/en-us/manuals/software/sdk-windows_devguide_en.pdf

Я начал пилить пока что в просто пустой конфе на платформе 8.1, тестовую форму.
В которой 1С сможет просто вывести отсканированный ШК в сообщении.
Сделал 2 процедуры в 1й я через ком объект цепляю dll и создаю обработчик.
2я процедура это то, что должно происходить при сканировании ШК.
Везде переменная Status возвращает 0 (что означает, что операция успешно прошла), но при сканировании обработчик не срабатывает, и
процедура BarCodeScanned не вызывается.
Может подскажет кто, в чём может быть дело?



Процедура ПодключитьСканерНажатие(Элемент)
    try
        CoreScanner = new COMObject("CoreScanner.CoreScanner");
    except
        Message("Error driver search: " + ErrorDescription());
        failure = true;
        return;
    endtry;    
    Status = -1;
    ScannerTypes = new COMSafeArray("VT_I2", 1);     // array of integer(x2 byte), size=1
    ScannerTypes.SetValue(0, 1);                     // 1 - all scanner types
    CoreScanner.Open(0, ScannerTypes, 1, Status);
    if Status <> 0 then
        Сообщить("Нет соединения со сканером");
    endif;
    
    AddHandler CoreScanner.BarcodeEvent, BarCodeScanned;

    
    Текст=    "<inArgs><cmdArgs><arg-int>6</arg-int><arg-int>1,2,4,8,16,32</arg-int></cmdArgs></inArgs>";        
    Status = -1; Response = "";
    CoreScanner.ExecCommand(1001,текст,Response, Status);

    
    if Status <> 0 then
        Сообщить("Не подключился обработчик ожидания "+ Status);
    endif;    
КонецПроцедуры


Процедура BarCodeScanned(Перем1,Перем2)  
    Сообщить(перем1);
    Сообщить(перем2);
КонецПроцедуры