Компонента по внешнему событию возвращает строковое значение вида: "[Вес];[Произведено тарирование (0/1)];[Весы успокоены(0/1)];[флаг переполнения(0/1)];[Флаг счетного режима(0/1)]" в случае сбоя получения данных с терминала возвращается строка полученная с весового терминала - "DEBUG: #00 #00 #00 #00 #00 #00".
Компонента работает уже 6 лет (1с 8.1, 8.2, 8.3), проблем не замечено.
В архиве две демонстрационные конфигурации v7.7 и v8, сама библиотека DLL и примеры.
Регистрация компоненты в системе:
Запустите от имени Администратор командную строку, введите regsvr32 <Путь к библиотеке>\T3VK.dll
Например, regsvr32 C:\1c\base\dll\T3VK.dll
Вы должны получить сообщение об успешной регистрации библиотеки.
Для 1С v7.7 пример:
перем t3vk Экспорт; //переменная для объекта внешней компоненты
Функция глЗагрузитьВнешнююКомпоненту(прм_ИмяВК)
имяф=КаталогИБ()+"DLL\"+прм_ИмяВК+".dll";
Если фс.СуществуетФайл(имяф)=0 Тогда
Сообщить("Не обнаружен файл внешней компоненты "+имяф,"!!");
Возврат 0;
КонецЕсли;
Если ЗагрузитьВнешнююКомпоненту(имяф)=0 Тогда
Сообщить("Не удается загрузить внешнюю компоненту "+прм_ИмяВК+".dll","!!");
Сообщить("Первый запуск конфигурации с внешними компонентами должен производиться под правами администратора или привилегированного пользователя операционной системы.","!!");
Возврат 0;
Иначе
Сообщить("Внешняя компонента "+прм_ИмяВК+".dll" + " загружена!"," ");
КонецЕсли;
Возврат 1;
КонецФункции // глЗагрузитьВнешнююКомпоненту
///////////////////////////////////////////////////////////////////////
Процедура ПриНачалеРаботыСистемы() //Предопределенная процедура 1С
ок=1;
Если глЗагрузитьВнешнююКомпоненту("T3VK")=0 Тогда
Сообщить("Внешняя компонента не была загружена!","!");
Иначе
t3vk=СоздатьОбъект("AddIn.t3vk");
Сообщить("Выполняем: t3vk.ПолучитьВес(COM1)"," ");
t3vk.ПолучитьВес("COM1");
КонецЕсли;
КонецПроцедуры
///////////////////////////////////////////////////////////////////////
Процедура ОбработкаВнешнегоСобытия(Источник,Событие,Данные)//Предопределенная процедура 1С
//Глобальный обработчик внешнего события
Сообщить("Внешнее событие: Источник="+Источник+" Событие="+Событие+" Данные="+Данные);//Данные - Формат получаемой строки: <Вес>;<Произведено тарирование (0/1)>;<Весы успокоены(0/1)>;<флаг переполнения(0/1)>;<Флаг счетного режима(0/1)>;
КонецПроцедуры
Для 1С v8.1 пример:
перем t3vk Экспорт; //переменная для объекта внешней компоненты
///////////////////////////////////////////////////////////////////////
Процедура ПриНачалеРаботыСистемы() //Предопределенная процедура 1С
Попытка
ЗагрузитьВнешнююКомпоненту("t3vk.dll");
Сообщить("Компонента t3vk загружена");
Исключение
Сообщить("Компонента t3vk не найдена!", СтатусСообщения.Внимание);
КонецПопытки;
Сообщить("Выполняем: t3vk.ПолучитьВес(COM1)",СтатусСообщения.Важное);
t3vk=Новый("AddIn.t3vk");
t3vk.ПолучитьВес("COM1");
КонецПроцедуры
///////////////////////////////////////////////////////////////////////
Процедура ОбработкаВнешнегоСобытия(Источник,Событие,Данные)//Предопределенная процедура 1С
//Глобальный обработчик внешнего события
Сообщить("Внешнее событие: Источник="+Источник+" Событие="+Событие+" Данные="+Данные);
//Данные - Формат получаемой строки: <Вес>;<Произведено тарирование (0/1)>;<Весы успокоены(0/1)>;<флаг переполнения(0/1)>;<Флаг счетного режима(0/1)>;
КонецПроцедуры