Имя: Пароль:
1C
1С v8
компонента com , управляемое приложение тонкий клиент
0 erutan
 
14.06.18
22:44
Здравствуйте, уважаемые коллеги!

В ходе перехода на ЗУП 3 - не могу понять, как переделать одну внешнюю обработку (по работе со считывателем карт СКУД).

В толстом клиенте - работает. Но как переделать под тонкий? dll на пк и зарегистрирована, считыватель подключен к локальному пк , база на сервере sql
-------------

&НаКлиенте
перем kodos_rd Экспорт;

&НаКлиенте
Процедура ПриОткрытии(Отказ)
        //ПутьКВнешнейКомпоненте = "C:\1\Новая папка\BIN\kodos_rd.dll";
        ПутьКВнешнейКомпоненте = "kodos_rd.dll";
    //"C:\ДрайверАТОЛТСДMobileLogistics.zip";
    #Если ТолстыйКлиентУправляемоеПриложение Тогда

        ЗагрузитьВнешнююКомпоненту (ПутьКВнешнейКомпоненте);
        
    #КонецЕсли
    УстановитьВнешнююКомпоненту(ПутьКВнешнейКомпоненте);
    //Сообщить("Внешняя компонента загружена");    
    //УстановитьВнешнююКомпоненту(ПутьКВнешнейКомпоненте);    
    Рез = ПодключитьВнешнююКомпоненту(ПутьКВнешнейКомпоненте, "kodos_rd", ТипВнешнейКомпоненты.Com);
    Если НЕ Рез Тогда
        Сообщить("не подключено");
        Возврат;
    КонецЕсли;
    kodos_rd = Новый("AddIn.kodos_rd");
    
    имяпорта = "COM6";
    Попытка
        //Открываем последовательный порт
        kodos_rd.ОткрытьПорт(ИмяПорта);
    Исключение
        //При исключении получаем текст ошибки
        Предупреждение("Ошибка при открытии порта "+ИмяПорта);
        Сообщить(kodos_rd.Ошибка, СтатусСообщения.Внимание);
    КонецПопытки;

КонецПроцедуры
1 tesseract
 
15.06.18
00:23
Порядок вызова функций нарушен. Функция "ЗагрузитьВнешнююКомпоненту" никогда не будет выполняться из-за директивы компилятора. "УстановитьВнешнююкомоненту" тут не нужен.
2 erutan
 
15.06.18
14:16
Спасибо, перепроверил порядок и въехал

&НаКлиенте
перем kodos_rd Экспорт;

&НаКлиенте
Процедура ПриОткрытии(Отказ)
    ПутьКВнешнейКомпоненте = "kodos_rd.dll";

    //#Если ТолстыйКлиентУправляемоеПриложение Тогда

        //ЗагрузитьВнешнююКомпоненту (ПутьКВнешнейКомпоненте);
        
    //#КонецЕсли
    //УстановитьВнешнююКомпоненту(ПутьКВнешнейКомпоненте);
    //НачатьУстановкуВнешнейКомпоненты(,ПутьКВнешнейКомпоненте);
    //Рез = ПодключитьВнешнююКомпоненту(ПутьКВнешнейКомпоненте, "kodos_rd", ТипВнешнейКомпоненты.Com);
    ProgID = ("AddIn.kodos_rd");
    ПодключитьВнешнююКомпоненту(ProgID);
    //Если НЕ Рез Тогда
    //    Сообщить("не подключено");
    //    Возврат;
    //КонецЕсли;
    //kodos_rd = Новый("AddIn.kodos_rd");
    
    kodos_rd = новый(ProgID);
    
    имяпорта = "COM6";
    Попытка
        //Открываем последовательный порт
        kodos_rd.ОткрытьПорт(ИмяПорта);
    Исключение
        //При исключении получаем текст ошибки
        Предупреждение("Ошибка при открытии порта "+ИмяПорта);
        Сообщить(kodos_rd.Ошибка, СтатусСообщения.Внимание);
    КонецПопытки;

КонецПроцедуры
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс