Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
14 дек 2024, 18:48

Подключение весов мера или опасные приключения Шурика

Автор amaddeus, 27 июл 2015, 07:03

0 Пользователей и 1 гость просматривают эту тему.

amaddeus

Приветствую всех, в общем проблема обстоит так, есть весы мера, но у них на сколько я знаю нет обработки обслуживания для эски, но есть внешняя обработка, так вот подскажите как эту обработку а именно некоторые элементы вставить в нужные мне формы, и именно в реализации при нажатии кнопки снять вес, снимался весь, подскажите какие процедуры мне надо перенести и как это вообще сделать а лучше показать на примере.
// Драйвер весов drvmera
// Приведенный листинг позволяет протестировать и показывает различные варианты работы с драйвером весом
Перем МойОбъект Экспорт; //Глобальная переменная - драйвер весов
Перем namecompany,email,telephone;//РЕГИСТРАЦИОННАЯ ИНФОРМАЦИЯ
Перем error;   

Перем Мас_str; // после разборки (Процедура Разбор_строки) сдесь находятся данные сделана для удобства
Перем Выводить_N_строк_в_Mera_MV;  // для красоты чтобы по 4 строк выводилась и листать ненадо было
Перем Выводить_N_строк_в_Mera_Avto;// для красоты чтобы по 4 строк выводилась и листать ненадо было

//Процедура status_list() Далее //*******Узнать список подключений (статус всех весов)*******//
//Процедура Update_status() Далее //Обновления статуса



Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)         
Перем try_be_connected,active,interfaces,ip,port,protocol,point,point_install,error;
 
   Попытка
      ПодключитьВнешнююКомпоненту("AddIn_drvmera1c.drvmera1c");   // <названия сом сервера(обычно это AddIn)>.<имя файла dll>  //ЗагрузитьВнешнююКомпоненту(КаталогИБ()+"drvmera1c.dll");  // можно вместо ПодключитьВнешнююКомпоненту написать ЗагрузитьВнешнююКомпоненту но при этом dll должна быть в каталоге базы данных     
          МойОбъект=Новый COMОбъект("AddIn_drvmera1c.class_drvmera");// <названия сом сервера(обычно это AddIn)>.<имя интерфейса> 
 
  МойОбъект.datavisibletray=1; //делаем видимым драйвер для наглядности по умолчанию драйвер не виден
  //--------------------------------РЕГИСТРАЦИОННАЯ ИНФОРМАЦИЯ--------------------------------//   
            //--------------------------------------     
  error=МойОбъект.dataregistered(namecompany,email,telephone); //Регистрируем чтобы не демо версия была
  Если (error<>"") Тогда
             Предупреждение(error+" Поэтому драйвер работает в демо режиме");
     ЭтаФорма.Заголовок="Test drvmera - "+МойОбъект.dataversion +" <Демо Версия> - работа в диапазоне веса  от 1.5 до 2.5 кг."; // dataversion версия драйвера
    Иначе    
     ЭтаФорма.Заголовок="Test drvmera - "+МойОбъект.dataversion; // dataversion версия драйвера
   
        КонецЕсли;
        // задаем разделитель между переменными для удобства вывода в список я задал такой
        МойОбъект.dataseparator="
|";
        МойОбъект.dataprocessevents=0 //все события обрабатывать кроме автомобильного протокола и ошибок (onavtodata,onerrors)
    // (автомобильный протокол сильно много данных передает и происходит постоянное смена фокуса что не есть хорошо (для получения данных просто делайте Запрость вес со всех весов))
    // можете другие варианты использовать
          // dataprocessevents=0 - все события обрабатывать
          // dataprocessevents=1 - все события обрабатывать кроме автомобильного протокола (onavtodata)
          // dataprocessevents=2 - все события обрабатывать кроме автомобильного протокола и ошибок (onavtodata,onerrors)
          // dataprocessevents=3 - все события обрабатывать кроме (onavtodata,onerrors,onstatus)
          // dataprocessevents=4 - все события обрабатывать кроме (onavtodata,onerrors,onstatus,onclose)
          // dataprocessevents=5 - все события обрабатывать кроме (onmvdata)
          // dataprocessevents=6 - все события обрабатывать кроме (onmvdata,onerrors)
          // dataprocessevents=7 - все события обрабатывать кроме (onmvdata,onerrors,onstatus)
          // dataprocessevents=8 - все события обрабатывать кроме (onmvdata,onerrors,onstatus,onclose)
          // dataprocessevents=9 - все события обрабатывать кроме (onmvdata,onavtodata)
          // dataprocessevents=10 - все события обрабатывать кроме  (onmvdata,onavtodata,onerrors)
          // dataprocessevents=11 - все события обрабатывать кроме  (onmvdata,onavtodata,onerrors,onstatus)
          // dataprocessevents=12 - не обрабатывать события (onmvdata,onavtodata,onerrors,onstatus,onclose)             
Исключение
Предупреждение("В системе не зарегистрирован драйвер весов");
ЗавершитьРаботуСистемы();
КонецПопытки;   
//ниже заполняются начальные значения на форме
ScaleIP="192.168.001.100";    // IP-адрес весов
    ScalePort=1001;            // Порт весов                                               
ScalePoint=0; // Положения точки в данных массы
ScalePointInstall=1; //Для протокола ОКА проставить точки в масе цене стоимости, а для протокола Мера МВ принимать только стабильный вес или любой
EditPrice=2; // цена 
Edittare=1; // тара   
Выводить_N_строк_в_Mera_MV=4;
Выводить_N_строк_в_Mera_Avto=4;

ЭлементыФормы.ScaleInterface.СписокВыбора.Добавить(0,"TCP/IP");
ЭлементыФормы.ScaleInterface.СписокВыбора.Добавить(1,"RS-232"); 
ЭлементыФормы.ScaleInterface.Значение=0; //ИнтерфейсОбмена

ЭлементыФормы.ScaleProtocol.СписокВыбора.Добавить(0,"ОКА");   
ЭлементыФормы.ScaleProtocol.СписокВыбора.Добавить(1,"Мера МВ");
ЭлементыФормы.ScaleProtocol.СписокВыбора.Добавить(2,"Автомобильный");
    ЭлементыФормы.ScaleProtocol.Значение=0; //ИнтерфейсОбмена       
КонецПроцедуры 

//*******закрытия формы*******//
Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка)
МойОбъект = 0; // Отсоединение объекта внешней компоненты !!!!!Обязательно делайте это чтобы драйвер невесел в памяти после закрытия 1с   
КонецПроцедуры

//*******раозбирает строку в масив Мас_str по строкам данных (негде не используется но может пригодится)*******//
Процедура Разбор_строки(str,Разделитель)
     ДлинаРазделителя = СтрДлина(Разделитель);
Номер_в_масиве=0;
     Поз=1;
Мас_str.Очистить();
     Пока Поз<>0 Цикл
         Поз = Найти(str,Разделитель);
         Если Поз=0 Тогда                 
      Мас_str.Добавить(str);
  Номер_в_масиве=Номер_в_масиве+1;       
      Иначе
        Мас_str.Добавить(Лев(str,Поз-1));
      Номер_в_масиве=Номер_в_масиве+1;
             str = Сред(str,Поз+ДлинаРазделителя);
      КонецЕсли;         
КонецЦикла;   
КонецПроцедуры

//*******Выбираем указанные весы*******//     
Функция selest_Scale_N() Экспорт         
    //выбираем объект
    errors=МойОбъект.datascalesselect(ScaleInterface,ScaleIP,ScalePort);

Если errors<>"ERROR" Тогда   //нет ошибки на форму заносим данные о подключении из драйвера   
    ЭлементыФормы.ScaleInterface.Значение=МойОбъект.statusinterfaces;
        ScaleIP=МойОбъект.statusip;
        ScalePort=МойОбъект.statusport;
    Если МойОбъект.statusprotocol=5 Тогда
        ЭлементыФормы.ScaleProtocol.Значение=2 // протокол
        Иначе
    ЭлементыФормы.ScaleProtocol.Значение=МойОбъект.statusprotocol-1 // протокол
    КонецЕсли;
        ScalePoint=МойОбъект.statuspoint;
    Если МойОбъект.statuspointinstall=0 Тогда
        ScalePointInstall=0 //
        Иначе
      ScalePointInstall=1 //
  КонецЕсли;
  Возврат(1);
Иначе
    Возврат(0);
    КонецЕсли;
КонецФункции       

//*******Выбираем указанные весы*******//
Процедура selestScaleN_Нажатие(Элемент)         
    Если selest_Scale_N()=0 тогда //Выбираем указанные весы
     Предупреждение("Не удалось выбрать весы проверьте Введенные данные");
КонецЕсли; 
Update_status(); //Обновляем статус (чтобы показывалось текущее подключения в списках)   
КонецПроцедуры   

//*******Видимость в трее драйвера*******//
Процедура treyvisible_Нажатие(Элемент) 
Если МойОбъект.datavisibletray=0 Тогда
    МойОбъект.datavisibletray=1 // показываем драйвер в трее
иначе
    МойОбъект.datavisibletray=0 // удаляем из трея драйвер
КонецЕсли;
КонецПроцедуры 

//*******Обновляем статус*******
Процедура Update_status() //чтобы показывалось текущее подключения в списках     
Если (МойОбъект.statusname<>"ERROR") Тогда
        N_scales_label="Установлено подключения к "+МойОбъект.statusname;
    Иначе
        N_scales_label="Подключений еще нет";
    КонецЕсли;   
status_list(); // отображаем текущее подключение
КонецПроцедуры

//*******Подключаемся к весам*******//
Процедура OpenConnect_Нажатие(Элемент) 
  Перем Protocol_vrem;
      Если ScaleProtocol=2 Тогда
           Protocol_vrem=5            // протокол
      Иначе
   Protocol_vrem=ScaleProtocol+1  // протокол
  КонецЕсли;   

  error=МойОбъект.dataconnect(ScaleInterface,ScaleIP,ScalePort,Protocol_vrem,ScalePoint,ScalePointInstall); // Подключиться к весам   

  Если (error<>"") Тогда
         Предупреждение(error); 
          Иначе       
     scr = Новый COMОбъект("WScript.Shell");  // Пауза чтобы драйвер успел к весам подключится и ниже проверку подключения выполнить
             scr.Run("ping 127.0.0.1 -n "+СокрЛП(Число(1000)),0,1);  // Пауза ()
     Если (МойОбъект.statusactive=0) Тогда  // Состояния подключения к весам
             Если (МойОбъект.statustrybeconnected=0) Тогда
              Предупреждение("Подключения к весам не установлено")
  Иначе
      Предупреждение("Подключения к весам пока не установлено но видутся попытки подключиться")
       КонецЕсли;     
     КонецЕсли;
     filter=МойОбъект.datagetfilter; // узнаем какой фильтр для авто протокола и дискрет в фильтре
sampling=МойОбъект.datagetsampling;// дискрет в фильтре
          КонецЕсли;
          Update_status() //Обновляем статус (чтобы показывалось текущее подключения в списках)     
КонецПроцедуры
               

//*******Отключаемся от весов*******//
Процедура CloseConnect_Нажатие(Элемент)       
Если selest_Scale_N()=0 тогда //Устанавливаем указанные весы
     Предупреждение("Не удалось выбрать весы проверьте введенные данные");

    Иначе
     error=МойОбъект.datadisconnect; // отключаемся от весов
     Если (error<>"") Тогда
          Предупреждение(error)   
         КонецЕсли;
КонецЕсли; 
Update_status(); // Обновляем статус (чтобы показывалось текущее подключения в списках)
КонецПроцедуры   

//*******Узнать список подключений (статус всех весов)*******//
Процедура status_list() 
    // стираем старые данные
    statuslistname="";
        statuslisttrybeconnected="";
        statuslistactive="";
        statuslistinterfaces="";
        statuslistip="";
        statuslistport="";
        statuslistprotocol="";
        statuslistpoint="";
        statuslistpointinstall="";
    // запрос на обнавления статуса
Err=МойОбъект.datagetstatuslist;
        Если Err<>"" Тогда
              statuslistname=Err;
        Иначе
              statuslistname=МойОбъект.statuslistname;
              statuslisttrybeconnected=МойОбъект.statuslisttrybeconnected;     
  statuslisttrybeconnected=statuslisttrybeconnected;
              statuslistactive=МойОбъект.statuslistactive;
              statuslistinterfaces=МойОбъект.statuslistinterfaces;
              statuslistip=МойОбъект.statuslistip;
              statuslistport=МойОбъект.statuslistport;
              statuslistprotocol=МойОбъект.statuslistprotocol;
              statuslistpoint=МойОбъект.statuslistpoint;
              statuslistpointinstall=МойОбъект.statuslistpointinstall;
        КонецЕсли
КонецПроцедуры   

//*******Обновляем списки подключении*******//
Процедура statuslist_Нажатие(Элемент)
status_list();// обновляем списки подключении (процедура расположена выше)
КонецПроцедуры

//*******Узнать статус текущих весов*******//
Процедура ButtonStatus_Нажатие(Элемент)
Если (МойОбъект.statusname="ERROR") Тогда
    Предупреждение("У вас нет подключений к весам");
    Иначе
        Предупреждение("Имя весов="+МойОбъект.statusname+"
|"+"Пробывать подключаться к весам="+МойОбъект.statustrybeconnected+"
|"+"Установлино подключения c весами="+МойОбъект.statusactive+"
|"+"Интерфейс="+МойОбъект.statusinterfaces+"
|"+"IP="+МойОбъект.statusIP+"   Порт="+МойОбъект.statusport+"
|"+"Протокол="+МойОбъект.statusprotocol+"
|"+"Положения точки в данных массы="+МойОбъект.statuspoint+"
|"+"Проставить точки в протоколе ОКА="+МойОбъект.statuspointinstall);   
КонецЕсли;
КонецПроцедуры 

//*******Обнулить вес*******//
Процедура buttondatasetzero_Нажатие(Элемент)
    error=МойОбъект.datasetzero;
Если (error<>"") Тогда
    Предупреждение(error)
    иначе
    Предупреждение("Вес обнулен")
     КонецЕсли; 
КонецПроцедуры

//*******Узнать вес цену и т.д. текущих весов*******//
Процедура buttondatagetdata_Нажатие(Элемент)   
     // стираем старые данные
resultlistname="";   
resultlistweightindicator="";  
resultlistweightadc="";  
resultliststable="";   
resultlistfilter="";   
resultlistcodt="";
resultlistprice="";  
resultlistcost="";  
resultlistprotocol="";  
resultlistpoint="";   
resultlistpointinstall="";
resultlistgross="";

     // читаем вес с одних весов
error=МойОбъект.datagetdatas(""); // если пустое, то текущие весы, a результат в resultweightindicator; resultweightadc; resultstable; resultfilter; resultcodt; resultprice; resultcost; 
                              // если "all", то все весы, a результат в resultlistname; resultlistweightindicator; resultlistweightadc; resultliststable; resultlistfilter; resultlistcodt; resultlistprice; resultlistcost; resultlistprotocol; resultlistpoint; resultlistpointinstall;
Если (error="") Тогда     
               resultlistname=МойОбъект.statusname;   
     resultlistweightindicator=МойОбъект.resultweightindicator;  
     resultlistweightadc=МойОбъект.resultweightadc;  
     resultliststable=МойОбъект.resultstable;   
     resultlistfilter=МойОбъект.resultfilter;   
     resultlistcodt=МойОбъект.resultcodt;
     resultlistprice=МойОбъект.resultprice;  
     resultlistcost=МойОбъект.resultcost;  
     resultlistprotocol=МойОбъект.statusprotocol;  
     resultlistpoint=МойОбъект.statuspoint;   
     resultlistpointinstall=МойОбъект.statuspointinstall;   
     resultlistgross=МойОбъект.resultlistgross; 
Иначе
     resultlistname=error;
    КонецЕсли; 
КонецПроцедуры   

//*******Узнать вес цену и т.д. На всех подключенных весах*******//
Процедура buttondatagetdatas_Нажатие(Элемент)   
          resultlistname="";   
  resultlistweightindicator="";  
  resultlistweightadc="";  
  resultliststable="";   
  resultlistfilter="";   
  resultlistcodt="";
  resultlistprice="";  
  resultlistcost="";  
  resultlistprotocol="";  
  resultlistpoint="";   
  resultlistpointinstall="";
  resultlistgross="";
  error=МойОбъект.datagetdatas("all"); //читаем вес со всех весов
  Если (error="") Тогда 
           resultlistname=МойОбъект.resultlistname;   
  resultlistweightindicator=МойОбъект.resultlistweightindicator;  
  resultlistweightadc=МойОбъект.resultlistweightadc;  
  resultliststable=МойОбъект.resultliststable;   
  resultlistfilter=МойОбъект.resultlistfilter;   
  resultlistcodt=МойОбъект.resultlistcodt;
  resultlistprice=МойОбъект.resultlistprice;  
  resultlistcost=МойОбъект.resultlistcost;  
  resultlistprotocol=МойОбъект.resultlistprotocol;  
  resultlistpoint=МойОбъект.resultlistpoint;   
  resultlistpointinstall=МойОбъект.resultlistpointinstall;
  resultlistgross=МойОбъект.resultlistgross;
Иначе
     resultlistname=error;
          КонецЕсли;  
КонецПроцедуры 

//*******Узнать вес цену с признаком стабильности для оки*******//
Процедура buttondataokaweightany_Нажатие(Элемент)   
Перем weight;// не используется
Перем price; // не используется
Перем stable;// не используется
error=МойОбъект.dataokaweightany(weight,price,stable); // если бы команда выполнялась не в 1с то в эти переменные возвращались бы результаты
Если (error<>"") Тогда
    Предупреждение(error)
    иначе
    Предупреждение(
   "Вес="+МойОбъект.resultweightindicator+"
|"+"Цена="+МойОбъект.resultprice+"
|"+"Вес стабилен="+МойОбъект.resultstable)
     КонецЕсли;
КонецПроцедуры     

//*******Установить цену*******//
Процедура Buttondatasetprice_Нажатие(Элемент)   
error=МойОбъект.datasetprice(EditPrice);
Если (error<>"") Тогда
    Предупреждение(error)
    иначе
    Предупреждение("Установлена")
     КонецЕсли;
КонецПроцедуры   

//*******Установить тарру*******//
Процедура Buttondatasettare_Нажатие(Элемент) 
error=МойОбъект.datasettare(Edittare);
Если (error<>"") Тогда
    Предупреждение(error)
    иначе
    Предупреждение("Возможно установлена")
     КонецЕсли;   
КонецПроцедуры
               
Процедура datasetfilter_Нажатие(Элемент)
Если (МойОбъект.datasetfilter(filter,sampling)=0) Тогда
    Предупреждение("Не удалась установить фильтр")
    КонецЕсли; 
    filter=МойОбъект.datagetfilter; // узнаем какой фильтр для авто протокола и дискрет в фильтре
sampling=МойОбъект.datagetsampling;// дискрет в фильтре
КонецПроцедуры

Процедура get_time_wite_Нажатие(Элемент)
time_wite=МойОбъект.datagettimewait();
КонецПроцедуры

Процедура set_time_wite_Нажатие(Элемент)   
    Если (МойОбъект.datasettimewait(time_wite)=0) Тогда
    Предупреждение("Не удалась установить время")
КонецЕсли;
time_wite=МойОбъект.datagettimewait();
КонецПроцедуры

//*******Прием данных от весов*******//
Процедура ВнешнееСобытие(Источник, команда, данные)

Если (Найти(Источник,"drvmera1c")<>0) Тогда
Если команда="onmvdata" Тогда  //пришли данные от весов которые работают по протоколу Мера МВ (последовательность переменных Код Товар,Вес,Признак Стабильности)
 
  КодТовар="";
  Вес="";
  ПризнакСтабильности="";
  Номер_в_строке=0;     
  Разделитель=МойОбъект.dataseparator;  
  ДлинаРазделителя = СтрДлина(Разделитель);
  Поз=1;
  // разбираем данные из переменной данные
            Пока Поз<>0 Цикл
          Поз = Найти(данные,Разделитель);
          Если Поз=0 Тогда                 
  Если Номер_в_строке=0 Тогда
          КодТовар=данные;
  Номер_в_строке=Номер_в_строке+1; 
  Иначе
  Если Номер_в_строке=1 Тогда
              Вес=данные; 
  Номер_в_строке=Номер_в_строке+1;
  Иначе
  Если Номер_в_строке=2 Тогда
                  ПризнакСтабильности=данные;
  Номер_в_строке=Номер_в_строке+1;
  Иначе
  Если Номер_в_строке=3 Тогда
                        Брутто=данные;   
      КонецЕсли
          КонецЕсли;
          КонецЕсли;
  КонецЕсли;
  Иначе
  Если Номер_в_строке=0 Тогда
          КодТовар=Лев(данные,Поз-1);
  Номер_в_строке=Номер_в_строке+1;
  Иначе
  Если Номер_в_строке=1 Тогда
                Вес=Лев(данные,Поз-1);
    Номер_в_строке=Номер_в_строке+1;
  Иначе  
    Если Номер_в_строке=2 Тогда
                           ПризнакСтабильности=Лев(данные,Поз-1);
           Номер_в_строке=Номер_в_строке+1;
        Иначе
  Если Номер_в_строке=3 Тогда
                        Брутто=Лев(данные,Поз-1);
                КонецЕсли;
                КонецЕсли;
      КонецЕсли;
  КонецЕсли;
                      данные = Сред(данные,Поз+ДлинаРазделителя);
  КонецЕсли;
      КонецЦикла; 
    // для красоты чтобы по 4 строк выводилась и листать ненадо было
  Если Выводить_N_строк_в_Mera_MV>=4 Тогда
  Выводить_N_строк_в_Mera_MV=1;
  Mera_MV_data="";   
      Иначе
Выводить_N_строк_в_Mera_MV=Выводить_N_строк_в_Mera_MV+1;
  КонецЕсли;
  // выводим полученные данные
  Mera_MV_data=Mera_MV_data+"
|"+"Адрес Весов="+Прав(Источник,СтрДлина(Источник)-10)+"      Код Товар="+КодТовар+"     Вес индикаторный="+Вес+"      Признак Стабильности="+ПризнакСтабильности+"      Брутто="+Брутто;
Иначе
      Если команда="onavtodata" Тогда // пришли данные от весов которые работают по протоколу Мера Авто (последовательность переменных Вес,Вес_АЦП,ПризнакСтабильности,Фильтр)
      КодТовар="";
        Вес=""; 
  Вес_АЦП="";
  Фильтр="";
        ПризнакСтабильности="";
        Номер_в_строке=0;     
        Разделитель=МойОбъект.dataseparator;  
        ДлинаРазделителя = СтрДлина(Разделитель);
        Поз=1;
                   // разбираем данные из переменной данные
  Пока Поз<>0 Цикл
                Поз = Найти(данные,Разделитель);
                Если Поз=0 Тогда                 
        Если Номер_в_строке=0 Тогда
                Вес=данные;
        Номер_в_строке=Номер_в_строке+1; 
        Иначе
        Если Номер_в_строке=1 Тогда
                    Вес_АЦП=данные; 
        Номер_в_строке=Номер_в_строке+1;
        Иначе
        Если ПризнакСтабильности=2 Тогда
                        ПризнакСтабильности=данные; 
    Иначе
    Если Номер_в_строке=3 Тогда
                            Фильтр=данные;
                    КонецЕсли;
                КонецЕсли;
                КонецЕсли;
        КонецЕсли;
        Иначе
        Если Номер_в_строке=0 Тогда
                Вес=Лев(данные,Поз-1);
        Номер_в_строке=Номер_в_строке+1;
        Иначе
        Если Номер_в_строке=1 Тогда
                      Вес_АЦП=Лев(данные,Поз-1);
          Номер_в_строке=Номер_в_строке+1;
        Иначе  
          Если Номер_в_строке=2 Тогда
                                  ПризнакСтабильности=Лев(данные,Поз-1);
          Иначе
          Если Номер_в_строке=3 Тогда
                                      Фильтр=Лев(данные,Поз-1);
                          КонецЕсли;
                      КонецЕсли;
            КонецЕсли;
        КонецЕсли;
                            данные = Сред(данные,Поз+ДлинаРазделителя);
        КонецЕсли;         
            КонецЦикла; 
            // для красоты чтобы по 4 строк выводилась и листать ненадо было
      Если Выводить_N_строк_в_Mera_Avto>=4 Тогда
        Выводить_N_строк_в_Mera_Avto=1;
        Mera_Avto_data="";   
          Иначе
      Выводить_N_строк_в_Mera_Avto=Выводить_N_строк_в_Mera_Avto+1;
      КонецЕсли;
      // выводим полученные данные
      Mera_Avto_data=Mera_Avto_data+"
|"+"Адрес Весов="+Прав(Источник,СтрДлина(Источник)-10)+"      Вес индикаторный="+Вес+"    Вес АЦП="+Вес_АЦП+"     Признак Стабильности="+ПризнакСтабильности+"       Фильтр"+Фильтр;
 
  // Сообщить("Адрес Весов="+Прав(Источник,СтрДлина(Источник)-10)+"      Вес индикаторный="+Вес+"    Вес АЦП="+Вес_АЦП+"     Признак Стабильности="+ПризнакСтабильности+"       Фильтр"+Фильтр)
  Иначе
     Если команда="onerrors" Тогда // (можно и не обрабатывать) произошла какаята ошибка 
           Ошибка_=данные;
  // Сообщить(Ошибка_);
     Иначе
          Если команда="onclose" Тогда // (можно и не обрабатывать) драйвер закрывается возможно дугая программа его закрывает 
      Ошибка_="Сторонняя программа или человек дал команду драйверу чтобы он закрылся";
      Сообщить(Ошибка_);
      Иначе
      Если команда="onstatus" Тогда // (можно и не обрабатывать) кто то (возможна другая программа подключенная к драйверу) изменил параметры подключения к весам
Сообщить(данные); //последовательность переменных trybeconnected,active,interfaces,ip,port,protocol,point,pointinstall
      Иначе
                 КонецЕсли;
            КонецЕсли;
       КонецЕсли;
  КонецЕсли;  
КонецЕсли;
КонецЕсли 
КонецПроцедуры       


cska-fanat-kz

Текст модуля это конечно классно.
А на форме что за кнопки и т.п. элементы управления?

А вообще задача вполне себе для раздела "Фриланс"
Озвучьте бюджет и вам там с радостью помогут...
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

amaddeus

Фриланс это хорошо, но хочу понять суть! а так сделали а потом сам не в курсе что к чему!

cska-fanat-kz

похвально, но тогда начинайте ковырять с кнопки "Запросить вес текущих весов"...
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

amaddeus

нашел еще один способ решения вопроса, подключить весы через атол обработку, но застрял на вопросе, весы с ethernet портом, в выборе порта откуда будут браться данные только coм порты, так вот как прописать нужный мне порт, подскажите код, спасибо 

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск