Как подключить весы Vibra AJ к 1С?

Недавно возникла необходимость соединения весов с 1С. Искал информацию в интернете и не нашел полного описания. Вот по этому поводу решил написать мини-статью с руководством. И для себя будет как заметка, и другим пригодится.

   1. Необходимо зарегистрировать внешнюю компоненту.

Файлик внешней компоненты поместите на диск С или можно в другой удобный для вас каталог и нажмите кнопку Пуск; – в текстовое поле Найти программы и файлы введите regsvr32 C:us_rs232.dll –> Enter (Для Win7).

   2. Подключение и передача параметров для работы компоненты

При открытии формы необходимо Подключить внешнюю компоненту: 

 Процедура ПодключитьВесы() //ТекПользователь = глЗначениеПеременной("глТекущийПользователь");  //ВесовоеОб = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(ТекПользователь, "ВесовоеОборудование"); //Порт = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(ТекПользователь, "Порт"); //СкоростьОбмена = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(ТекПользователь, "СкоростьОбмена"); //БитыДанных = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(ТекПользователь, "БитыДанных"); //Четность = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(ТекПользователь, "Четность"); //СтопБиты = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(ТекПользователь, "СтопБиты"); //Чувствительность= УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(ТекПользователь, "Чувствительность");
ВесовоеОб = "Vibra AJ";
Порт = "COM7";
СкоростьОбмена = "1200";
БитыДанных = "8";
Четность = "НЕТ";
СтопБиты = "1";
Чувствительность = "30"; Если (ВесовоеОб = Неопределено) или (ВесовоеОб = Перечисления.ВесовоеОборудование.ПустаяСсылка()) Тогда Возврат; Иначе //загрузить компоненты Если Не ВесовоеОб = Перечисления.ВесовоеОборудование.VibraAJ Тогда Возврат; КонецЕсли; КонецЕсли; Если Порт = "" Тогда
Сообщить("Не указан Порт!",СтатусСообщения.Важное); Возврат; КонецЕсли;
ПрогИД = "AddIn.us_rs232"; Попытка
ПодключитьВнешнююКомпоненту(ПрогИД); Исключение
Сообщить("Неудалось подключить внешную компоненту AddIn.us_rs232"); Возврат; КонецПопытки; Попытка ДллВесы = новый (ПрогИД); Исключение
Сообщить("Неудалось создать обьект AddIn.us_rs232");
СтатусКомпоненты = Ложь;
ДллВесы = Неопределено; // Статус(); Возврат; КонецПопытки; Попытка
НовУстройство = дллВесы.СоздатьУстройство(); Исключение
Сообщить("Невозможно создать больше устройств! Удалите какие нибудь из имеющихся!"); Возврат; КонецПопытки;
Устройство = НовУстройство;
дллВесы.НомерУстройства = Устройство; // заполняем параметры по умолчанию
дллВесы.НомерУстройства = Устройство; Попытка
дллВесы.ИмяСобытия = "USBarCodeValue";
дллВесы.Порт = СокрЛП(Порт);
дллВесы.СкоростьОбмена = СокрЛП(СкоростьОбмена);
дллВесы.БитыДанных = СокрЛП(БитыДанных);
дллВесы.Четность = СокрЛП(Четность);
дллВесы.СтопБиты = СокрЛП(СтопБиты);
дллВесы.Чувствительность = СокрЛП(Чувствительность);
дллВесы.Маркер = "";
дллВесы.Префикс = "";
дллВесы.Суффикс = "";
дллВесы.ОткрытьПорт();
дллВесы.Пуск(); Исключение
Сообщить("Неудалось открыть порт с текущими настройками подключения. Проверьте настройки и закройте другие программы подключенные к оборудованию!"); Возврат; КонецПопытки; ЭлементыФормы.Вес.Доступность = Ложь; КонецПроцедуры

   3. Обработка внешнего события

Необходимо обработать внешнее событие в форме и распарсить результат, который возвращают нам весы в нужный нам формат (подробно это реализовано в обработке)

   4. Обработка ПриЗакрытии

При закрытии формы необходимо закрыть порт:

 Процедура ПриЗакрытии() Попытка
дллВесы.Стоп();
дллВесы.ЗакрытьПорт();
дллВесы.УдалитьУстройство(); Исключение КонецПопытки; КонецПроцедуры

   5. Настройка режима весов

В руководстве по эксплуатации весов вы найдете, как установить Контроль вывода данных в позицию — «Непрерывный вывод данных при стабильных показаниях».

Можно, конечно, и другой режим, но на мое усмотрение это самый подходящий режим.

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *