К машине подключены весы через Ком порт. В файловом варианте использую КомОбъект внешней компоненты 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;
//Возврат ЗнСВесов;
Объект.Брутто=ЗнСВесов;
Объект.РучнойВводБрутто=Ложь;
Объект.ДатаПолученияБрутто=ТекущаяДата();
КонецПроцедуры
! | http://pro1c.org.ua/index.php?act=announce&id=2: 9 |
Filosof @ Сегодня, 11:06
,
Ошибка говорит об отсутствии лицензии на класс MSCommLib.
Petre @ Сегодня, 11:17
,
Я это вижу. Но почему в файловом варианте лицензия находится а в клиент серверном нет? Где нужно еще кроме клиентской машины лицензировать эту компоненту? На клиентской машине компонента и зарегистрирована и залицензирована, благодаря чему все отрабатывает в файловом варианте. А вот в клиент серверном стопор на лицензировании компоненты.
Filosof @ Сегодня, 14:03
,
Оба варианта проверяются на одной машине? Версия / разрядность 1с одна?
Petre @ Сегодня, 14:14
,
Да оба варианта на одной машине. Но в клиент серверном варианте запуск клиентского приложения происходит под другим пользователем. Подбросили мысль, что нужно залицензировать под этим другим пользователем. Буду пробовать отпишусь.
Filosof @ Сегодня, 11:06
,
1) Проверьте, заходите ли Вы клиент-серверном режиме из Толстого клиента;
2) Возможно, сервер 1с Предприятия 64-х разрядный, а клиент - 32-х разрядный (возможно, сам сервер из-за того, что DLL не 64-х битная, не создает COM-объект)
Новый COMОбъект(<Имя>, <ИмяСервера>)
А чё многие к серверу прицепились, если код выполняется &НаКлиенте?
Vofka @ Сегодня, 19:13
,
Видимо потому, что в "клиент-файловом режиме" (в режиме эмуляции сервера, на одном хосте) все работает.
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua