К машине подключены весы через Ком порт. В файловом варианте использую КомОбъект внешней компоненты Mscomm32 данные прекрасно считываются с весопроцессора. Но в клиент серверном варианте проблема. Создана на форме клиентская процедура с таким кодом:
&НаКлиенте
Процедура Брутто(Команда)
Попытка
Весы = Новый COMОбъект("MSCOMMLib.MSComm");
Исключение
Сообщить("Ошибка создания объекта компоненты MSCommLib (Mscomm32.ocx)", СтатусСообщения.Внимание);
Сообщить(ОписаниеОшибки(), СтатусСообщения.Внимание);
//Возврат;
КонецПопытки;
Весы.CommPort = 7;
Весы.Settings = "9600,N,8,1";
Весы.InputLen = 0;
Попытка
Весы.PortOpen = 1;
Исключение
Сообщить("Порт занят другим устройством, отключите его и повторите попытку");
КонецПопытки;
тЗапросНаВзвешивание = Символ(2) + "AB03" + Символ(3);
Для Н = 1 по 5 Цикл // попытки если вес не стабилен
Весы.Output = тЗапросНаВзвешивание;
Пока Весы.InBufferCount < 12 Цикл
#Если Клиент Тогда
ОбработкаПрерыванияПользователя();
#КонецЕсли
КонецЦикла;
См = Весы.Input;
Если ПустаяСтрока(См) Тогда
Продолжить;
Иначе
//Сообщить(См);
См = Сред(СтрЗаменить(См, Лев(тЗапросНаВзвешивание,3), ""), 2);
См = СтрЗаменить(См, Символ(3), "");
См = Лев(См, СтрДлина(См)-2); // последние 2 символа служебные
ЗнСВесов = Число(См);
Прервать;
КонецЕсли;
КонецЦикла;
Весы.PortOpen = 0;
//Возврат ЗнСВесов;
Объект.Брутто=ЗнСВесов;
Объект.РучнойВводБрутто=Ложь;
Объект.ДатаПолученияБрутто=ТекущаяДата();
КонецПроцедуры
Но почему то выдает ошибки:
Ошибка создания объекта компоненты MSCommLib (Mscomm32.ocx)
и
{Документ.ПриемкаПродукцииСПолейКФК.Форма.ФормаДокумента.Форма(5)}: Ошибка при вызове конструктора (COMОбъект): -2147221230(0x80040112): Класс не лицензирован для использования
Сообщение отредактировал Vofka - 18.07.17, 10:55