компонента 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.Ошибка, СтатусСообщения.Внимание);
КонецПопытки;
КонецПроцедуры
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.