151

Wialon Active X: загрузка групп объектов с сервера

Re: Wialon Active X: загрузка групп объектов с сервера

1c8.2 & Wialon
Пишу такие строки:

WialonR = Новый COMОбъект("WialonActiveX.WialonReport");
ОтчетXML = WialonR.GenerateU(UnixTimeНачало,UnixTimeОкончание,1583,21600,"en"); 

В ответ клиент 1с8.2 крашится. В журнале Windows создается запись

Имя сбойного приложения: 1CV8C.exe, версия: 8.2.19.90, отметка времени: 0x53150391
Имя сбойного модуля: WialonActiveX.dll, версия: 1.9.0.24, отметка времени 0x53ac181f
Код исключения: 0xc0000005
Смещение ошибки: 0x00009a48
Идентификатор сбойного процесса: 0xffc
Время запуска сбойного приложения: 0x01cfb79bca604bbb
Путь сбойного приложения: C:\Program Files (x86)\1cv82\8.2.19.90\bin\1CV8C.exe
Путь сбойного модуля: C:\Program Files (x86)\1cv82\8.2.19.90\bin\WialonActiveX.dll
Код отчета: 0db2825c-238f-11e4-8857-902b349bf2a6

Через отладчик обнаружил, что ошибка возникает, когда в методе GenerateU ставится последний(пятый параметр) BSTR Lang. Если его не ставить, то возникает ошибка "недостаточно параметров".  WialonActiveX64.dll пробовал, другие 32 битные версии тоже пробовал. Результат один - крах клиента 1с.
У кого-то есть решение данной проблемы?

152

Wialon Active X: загрузка групп объектов с сервера

Re: Wialon Active X: загрузка групп объектов с сервера

Не могу разобраться...
Delphi+ActiveX
в цикле прохожусь по каждому транспортному средству (тс), для проверки вывожу значения в memo, на функции GetMessage иногда программа стопорится и выдает ошибку "OLE error FFFFFFA1". кусок кода представлен ниже:

  Memo1.Lines.Add(mas[i,2]);                        // вывод рег.№ транспортного средства
 if VarIsEmpty(mas[i,0].GetMessages(iDat1,iDat2))=true then begin      // проверка  (УСЛОВИЕ НЕ СРАБАТЫВАЕТ, 
   MessageDlg('Проблемы с выборкой данных!', mtError,[mbOk], 0, mbOk);// управление передается в блок EXCEPT)
   Break;
 end;  
   MessColl := mas[i,0].GetMessages(iDat1,iDat2);              // выборка данных за период из БД Wialon
   MsgsCount := MessColl.Count;                      // количество сообщений в выборке
   Memo1.Lines.Add(IntToStr(MsgsCount));                // вывод количества сообщений

выполнение программы
18.08.2014 13:30:13    // время выполнения цикла
тс1                                    // рег.№ транспортного средства
EOleException ошибка с сообщением : OLE error FFFFFFA1
18.08.2014 13:31:13     // время выполнения цикла
тс1                                    // рег.№ транспортного средства
66                                      // количество сообщений за период времени
тс2
78
тс3
66
тс4
71
тс5
69
тс6
66
тс7
404
тс8
117
тс9
EOleException ошибка с сообщением : OLE error FFFFFFA1

Подскажите, пожалуйста, в чем проблема!!! ?

153

Wialon Active X: загрузка групп объектов с сервера

Re: Wialon Active X: загрузка групп объектов с сервера

Misstatyana, а пример в Excel при таком же алгоритме работает? Пощёлкайте по объектам (в примере) и посмотрите там.

154

Wialon Active X: загрузка групп объектов с сервера

Re: Wialon Active X: загрузка групп объектов с сервера

nevl wrote:

Misstatyana, а пример в Excel при таком же алгоритме работает? Пощёлкайте по объектам (в примере) и посмотрите там.

в примере Excel возвращается ошибка "Received 0 messages". Параллельно в среде Delphi в memo выводились следующие строки:
19.08.2014 14:11:06
тс1
134
тс2
166
тс3
149
тс4
173
тс5
EOleException ошибка с сообщением : OLE error FFFFFFA1
19.08.2014 14:12:06
тс1
137
тс2
171
тс3
152
тс4
176
тс5
0

тс6
EOleException ошибка с сообщением : OLE error FFFFFFA1

В момент времени 14:11:06 выходит ошибка на тс5, а затем через минуту тс5 выдает 0 сообщений, но уже без ошибок, и только на следующем тс6 стопорится.

155

Wialon Active X: загрузка групп объектов с сервера

Re: Wialon Active X: загрузка групп объектов с сервера

"Received 0 messages", - это не ошибка, а информационное окно. Такое же окно появляется и в любом другом случае при получении сообщений. Оно просто показывает сколько сообщений есть за указанный интервал. При этом пример в Excel продолжает работать без сбоев.
Попробуйте как-нибудь обработать ошибки и продолжить выполнение программы.

156

Wialon Active X: загрузка групп объектов с сервера

Re: Wialon Active X: загрузка групп объектов с сервера

Подскажите, пожалуйста, интересует информация, которая содержится в поле "Уникальный ID"  в свойствах каждого объекта . В каком поле хранится значение (использую ActiveX)?

157

Wialon Active X: загрузка групп объектов с сервера

Re: Wialon Active X: загрузка групп объектов с сервера

Misstatyana, уточните, пожалуйста, ваш вопрос про поле с ID. В ActiveX всё получается с помощью команд. Получить индентификатор объекта можно с помощью IWialonUnit::ID() (http://sdk.wialon.com/wiki/ru/sidebar/a … wialonunit).

158

Wialon Active X: загрузка групп объектов с сервера

Re: Wialon Active X: загрузка групп объектов с сервера

nevl wrote:

Misstatyana, уточните, пожалуйста, ваш вопрос про поле с ID. В ActiveX всё получается с помощью команд. Получить индентификатор объекта можно с помощью IWialonUnit::ID() (http://sdk.wialon.com/wiki/ru/sidebar/a … wialonunit).

В свойствах объекта есть поле "Уникальный ID", информация которая заносится туда, необходима для чтения.

159

Wialon Active X: загрузка групп объектов с сервера

Re: Wialon Active X: загрузка групп объектов с сервера

Misstatyana, всё стало ясно. Указанный Вами "Уникальный ID" в рамках какого-либо оборудования получить с помощью ActiveX нельзя. Такая возможность не была предусмотрена. Тот уникальный идентификатор, на который я давал ссылку, является идентификатором который уникален для всех объектов и может использоваться дальше в ActiveX, например для выполнения отчёта.

160

Wialon Active X: загрузка групп объектов с сервера

Re: Wialon Active X: загрузка групп объектов с сервера

День добрый!
Подскажите пожалуйста!
Демо пример в Excel ругается "Login error"

Server https://activex.gurtam.com
Port 443
Login wialon_test
Password test

Куда подскажите копать?
Заранее спасибо!!!

161

Wialon Active X: загрузка групп объектов с сервера

Re: Wialon Active X: загрузка групп объектов с сервера

Здравствуйте,

Ответ был выслан вам на электронную почту. Если у вас возникнут какие-либо дополнительные вопросы, пишите в нашу службу технической поддержки. В случае, если ваша ошибка воспроизводится только локально, приложите к письму доступ по TeamViewer.

Quality Assurance Engineer
162

Wialon Active X: загрузка групп объектов с сервера

Re: Wialon Active X: загрузка групп объектов с сервера

Здравствуйте!
Нужен совет знающих людей. Есть следующий код в 1с8.2

Wialon = Новый COMОбъект("WialonActiveX.WialonConnection");
.......................
СтрокаXML = Wialon.GetReportByIDU(UnixTimeНачало,UnixTimeОкончание,Units.Item(НомерТС).IDU,25200,"ru",1207,25);

Получаю такой результат XML строки:

<report lang="ru" name="ххххххххххххх" tz="25200">
    <stats>
        <row name="Отчет" txt="хххххх" val="0" vt="0"/>
        <row name="Объект" txt="К хххх АМ" val="0" vt="0"/>
        <row name="Время выполнения отчета" txt="2015-03-18 10:54:35" val="1426650875" vt="30"/>
        <row name="Начало интервала" txt="2015-03-01 00:00:00" val="1425142800" vt="30"/>
    </stats>
    <tables/>
</report>

Т.е. данный метод получает только статистику. Как получить таблицы?

163

Wialon Active X: загрузка групп объектов с сервера

Re: Wialon Active X: загрузка групп объектов с сервера

kda, использованный вами метод получает все таблицы доступные в отчёте. Проверьте ID отчёта. И что в нём за указанный интервал времени есть другие таблицы.

164

Wialon Active X: загрузка групп объектов с сервера

Re: Wialon Active X: загрузка групп объектов с сервера

nevl, я извиняюсь, как оказалось ТС не работает давно, а я по нему пытаюсь отлаживать отчет. А когда поставил ID другого ТС, то все заработало. Спасибо за подсказку!

165

Wialon Active X: загрузка групп объектов с сервера

Re: Wialon Active X: загрузка групп объектов с сервера

Привет.
Подскажите, как освободить память, выделенную функцией GetMessages (интерфейс IWialonUnit).
Программа должна работать как сервис.
Каждый вызов GetMessages выделяет память и не освобождает.
После опроса сотни устройств, память заканчивается, сервис останавливается.

Пример кода:

var
   Wunit: IWialonUnit;
   WMsgs: IWialonCollection;
   i:integer;
begin
      ....
    for i:=1 to WUnits.count do
    begin
      Wunit := WUnits[i] as IWialonUnit;
      WMsgs:=Wunit.GetMessages(time1,time2);
      ...
    end;
end;
166

Wialon Active X: загрузка групп объектов с сервера

Re: Wialon Active X: загрузка групп объектов с сервера

Народ, подскажите, как с помощью ActiveX получить дату_время выхода из геозоны и вход в геозону.
Приветствуется код на Delphi

167

Wialon Active X: загрузка групп объектов с сервера

Re: Wialon Active X: загрузка групп объектов с сервера

nevl wrote:

Misstatyana, всё стало ясно. Указанный Вами "Уникальный ID" в рамках какого-либо оборудования получить с помощью ActiveX нельзя. Такая возможность не была предусмотрена. Тот уникальный идентификатор, на который я давал ссылку, является идентификатором который уникален для всех объектов и может использоваться дальше в ActiveX, например для выполнения отчёта.

по прошествии более полугода по этому вопросу изменений нет?
Хотелось бы синхронизацию в своём ПО производить на основании этого ID, как в других системах, чтобы рядовой сотрудник организации мог данные из Веб интерфейса спокойно перенести в наше ПО без каких-либо заморочек.

168

Wialon Active X: загрузка групп объектов с сервера

Re: Wialon Active X: загрузка групп объектов с сервера

Здесь уже было сообщение об ошибке WialonActiveX 429, однако на него не ответили.

Устанавливал разные версии активикса, офис 32 разрядный, при создании объекта появляется сообщение о невозможности создания с номером 429. Ошибка возникает в приложенном примере.

Как вариант, где получить разъяснения об установке и настройке интерфейса remote API на сервере? Является ли это платной опцией? Или достаточно активировать какие-то настройки? Как вообще проверить активацию remote API? На сервере нет файла ajax.html из примеров на http://sdk.wialon.com/.

Спасибо.

169

Wialon Active X: загрузка групп объектов с сервера

Re: Wialon Active X: загрузка групп объектов с сервера

dmitryk1 wrote:

сообщение об ошибке WialonActiveX 42

уберите в коде проверку #If VBA7

dmitryk1 wrote:

установке и настройке интерфейса remote API на сервере

URL для отправки запросов и необходимость покупки/настройки модуля на сервере зависит от используемого продукта Wialon (Hosting/Local/Pro)

170

Wialon Active X: загрузка групп объектов с сервера

Re: Wialon Active X: загрузка групп объектов с сервера

duig wrote:

уберите в коде проверку #If VBA7

Это было первым, что я попробовал. В реестре записи WialonActiveX64.WialonConnection присутствуют. 32 разрядную версию пробовал установить - проблема та же.

Ошибка выводится на обеих строках:
        Set Wialon = CreateObject("WialonActiveX64.WialonConnection")
        Set Wialon = CreateObject("WialonActiveX.WialonConnection")

duig wrote:

URL для отправки запросов и необходимость покупки/настройки модуля на сервере зависит от используемого продукта Wialon (Hosting/Local/Pro)

У нас версия Pro.

Я так понимаю, что модуль remoteAPI есть у всех, просто способ подключения к нему отличается в зависимости от версии? Тогда хотелось бы именно по RemoteIP уточнить. Активикс не актуален в таком случае.

171

Wialon Active X: загрузка групп объектов с сервера

Re: Wialon Active X: загрузка групп объектов с сервера

Добрый вечер. 

Какие могут быть причины возникновения этой ошибки?
03.06.2015 16:50:29   unit = (WialonActiveXLib.WialonUnit)units[i.] - Исключение из HRESULT: 0xFFFFFFA1

Спасибо

172

Wialon Active X: загрузка групп объектов с сервера

Re: Wialon Active X: загрузка групп объектов с сервера

Где скачать ActiveX и пример в экселе ссылка на сайте  говорит 404 ?

173

Wialon Active X: загрузка групп объектов с сервера

Re: Wialon Active X: загрузка групп объектов с сервера

я качал:
http://distro.gurtam.com/distro/activex … .24x32.zip
http://distro.gurtam.com/distro/activex … .24x64.zip

174

Wialon Active X: загрузка групп объектов с сервера

Re: Wialon Active X: загрузка групп объектов с сервера

Проблема в следующем:
Имеем отчет в Wialon Local таблица "Сводка" запрашиваем его за определенный период по ТС, через сайт мониторинга имеем одни результаты, запрашиваем тот же отчет через ActiveX результаты другие, причем разница не сильно большая если брать за один день, но в разрезе месяца разница получается уже довольно существенная.

Скриншот результата отчета на сайте мониторинга прилагается. Ниже запрос на ActiveX и возвращаемый результат:

Запрос:
Если (ЗначениеЗаполнено(ДатаН)=Ложь) и
(ЗначениеЗаполнено(ДатаК)=Ложь) Тогда
Возврат;
КонецЕсли;
ДатаНач=НачалоДня(ДатаН);
ДатаКон=КонецДня(ДатаК);

ПодключитьВнешнююКомпоненту("C:\Program Files\1cv82\8.2.19.76\bin\WialonActiveX.dll","WialonActiveX",ТипВнешнейКомпоненты.COM);
Files\1cv82\8.2.19.76\bin\WialonActiveX.dll,WialonActiveX,ТипВнешнейКомпоненты.COM);

Wialon = Новый COMОбъект("WialonActiveX.WialonConnection");
Wialon2 = Новый COMОбъект("WialonActiveX.WialonReport");

login= "";
password="";
Units = Wialon.Login("http://activex.local.navitrade.ru",80,login,password);

//проверка подключения
Если Units = Неопределено Тогда
Сообщить(Wialon.GetLastError());
Сообщить("Ошибка подключения (Units=0)");
Возврат;
КонецЕсли;

//ОтклонениеОтGMT = 66060;
ДатаОтчета=Дата("19700101");

Маш = ТС.ГаражныйНомер;
Кол= СтрДлина(СокрЛП(Маш));
Для НомерТС = 1 по Units.Count Цикл
Если Лев(Units.Item(НомерТС).Name,Кол) = Маш Тогда
НомерIDU = Units.Item(НомерТС).IDU;
Прервать;
КонецЕсли;
КонецЦикла;

ПеремДата = ДатаНач;
Пока ПеремДата < ДатаКон Цикл
Дат=ПеремДата-ДатаОтчета;
UnixTimeНачало = Дат-21600;
UnixTimeОкончание = (Дат+64799);
СтрокаXML = Wialon.GetReportByIDU(UnixTimeНачало,UnixTimeОкончание,Units.Item(НомерТС).IDU,21600,"ru",463,1);
Т = СтрЧислоСтрок(СтрокаXML);
А = СокрЛП(СтрПолучитьСтроку(СтрокаXML,8));
В=0;
Стр=-800;

Чтение = Новый ЧтениеXML;
Чтение.УстановитьСтроку(СтрокаXML);
Пока Чтение.Прочитать() Цикл

Если Чтение.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
Стр=Стр+1;

Если Чтение.Имя ="total" Тогда
В=В+1;
Если В=1 Тогда
Стр=0;
КонецЕсли;
КонецЕсли;

Если Стр >=0 Тогда
ПрочитатьАтрибуты(Чтение,Стр);
КонецЕсли;
ИначеЕсли Чтение.ТипУзла = ТипУзлаXML.КонецЭлемента Тогда



Иначе

КонецЕсли;
КонецЦикла;
Сообщить("Потрачено по ДУТ="+Потрачено+" Ср.расход по ДУТ="+СредРасх+" Пробег="+Пробег/1000);


ПеремДата = НачалоДня(ПеремДата +64799);

Результат:

<report lang="ru" name="12.Сводка по ТС" tz="21600">
<stats>
<row name="Отчет" txt="12.Сводка по ТС" val="0" vt="0"/>
<row name="Объект" txt="101_А 165 НК_Камаз" val="0" vt="0"/>
<row name="Время выполнения отчета" txt="2015-10-26 08:09:42" val="1445825382" vt="30"/>
<row name="Начало интервала" txt="2015-10-13 00:00:00" val="1444672800" vt="30"/>
<row name="Окончание интервала" txt="2015-10-13 23:59:59" val="1444759199" vt="30"/>
<row name="Потрачено по ДУТ" txt="165.91 л" val="165.906334" vt="50"/>
<row name="Ср. расход по ДУТ" txt="76.59 л/100 км" val="76.587465" vt="51"/>
</stats>
<tables>
<table cols="15" flags="4113" id="unit_generic" name="Сводка" rows="1">
<header>
<col name="№"/>
<col name="Дата"/>
<col name="Пробег (скорректированный)"/>
<col name="Ср. скорость"/>
<col name="Макс. скорость"/>
<col name="Моточасы"/>
<col name="Стоянки"/>
<col name="Потрачено по ДУТ"/>
<col name="Ср. расход по ДУТ"/>
<col name="Нач. уровень"/>
<col name="Конеч. уровень"/>
<col name="Всего заправок"/>
<col name="Всего сливов"/>
<col name="Заправлено"/>
<col name="Слито"/>
</header>
<total>
<col txt="" val="0" vt="0"/>
<col txt="" val="0" vt="0"/>
<col txt="213.94 км" val="213937.701955" vt="10"/>
<col txt="9 км/ч" val="9.030049" vt="20"/>
<col txt="82 км/ч" val="82" vt="20"/>
<col txt="7:44:27" val="27867" vt="41"/>
<col txt="19:06:24" val="68784" vt="40"/>
<col txt="165.91 л" val="165.906334" vt="50"/>
<col txt="76.59 л/100 км" val="76.587465" vt="51"/>
<col txt="192.86 л" val="192.857147" vt="50"/>
<col txt="169.89 л" val="169.891312" vt="50"/>
<col txt="1" val="1" vt="2"/>
<col txt="0" val="0" vt="2"/>
<col txt="142.94 л" val="142.940498" vt="50"/>
<col txt="0.00 л" val="0" vt="50"/>
</total>
<row>
<col txt="1" val="0" vt="0"/>
<col txt="2015-10-13" val="1444672831" vt="32"/>
<col txt="213.94 км" val="213937.701955" vt="10"/>
<col txt="9 км/ч" val="9.030049" vt="20"/>
<col txt="82 км/ч" val="82" vt="20"/>
<col txt="7:44:27" val="27867" vt="41"/>
<col txt="19:06:24" val="68784" vt="40"/>
<col txt="165.91 л" val="165.906334" vt="50"/>
<col txt="76.59 л/100 км" val="76.587465" vt="51"/>
<col txt="192.86 л" val="192.857147" vt="50"/>
<col txt="169.89 л" val="169.891312" vt="50"/>
<col txt="1" val="1" vt="2"/>
<col txt="0" val="0" vt="2"/>
<col txt="142.94 л" val="142.940498" vt="50"/>
<col txt="0.00 л" val="0" vt="50"/>
</row>
</table>
<table cols="12" flags="4241" id="unit_engine_hours" name="Моточасы" rows="1">
<header>
<col name="№"/>
<col name="Дата"/>
<col name="Начало"/>
<col name="Нач. положение"/>
<col name="Конец"/>
<col name="Конеч. положение"/>
<col name="Общее время"/>
<col name="Моточасы"/>
<col name="Холостой ход"/>
<col name="В движении"/>
<col name="Пробег (скорректированный)"/>
<col name="Потрачено по ДУТ на холостом ходу"/>
</header>
<total>
<col txt="" val="0" vt="0"/>
<col txt="" val="0" vt="0"/>
<col txt="2015-10-13 00:00:59" val="1444672859" vt="30"/>
<col txt="" val="0" vt="1"/>
<col txt="2015-10-13 23:59:52" val="1444759192" vt="30"/>
<col txt="" val="0" vt="1"/>
<col txt="23:58:53" val="86333" vt="40"/>
<col txt="7:44:27" val="27867" vt="41"/>
<col txt="3:32:14" val="12734" vt="41"/>
<col txt="4:11:48" val="15108" vt="41"/>
<col txt="217.41 км" val="217414.128071" vt="10"/>
<col txt="14.58 л" val="14.576126" vt="50"/>
</total>
<row>
<col txt="1" val="0" vt="0"/>
<col txt="2015-10-13" val="1444672859" vt="32"/>
<col txt="00:00:59" val="1444672859" vt="31"/>
<col txt="Сибирь" val="0" vt="1"/>
<col txt="23:59:52" val="1444759192" vt="31"/>
<col txt="Сибирь" val="0" vt="1"/>
<col txt="23:58:53" val="86333" vt="40"/>
<col txt="7:44:27" val="27867" vt="41"/>
<col txt="3:32:14" val="12734" vt="41"/>
<col txt="4:11:48" val="15108" vt="41"/>
<col txt="217.41 км" val="217414.128071" vt="10"/>
<col txt="14.58 л" val="14.576126" vt="50"/>
</row>
</table>
</tables>
</report>

Как видно результат разный!

Есть подозрение что неправильно делаем запрос на выборку интервала.
Просьба откликнуться проблема висит уже достаточно долго.

Заранее спасибо!

ООО "Навитрейд-42"
www.navitrade.pro
г.Кемерово
Ринат Садыков
175

Wialon Active X: загрузка групп объектов с сервера

Re: Wialon Active X: загрузка групп объектов с сервера

RinatSadykov wrote:

Есть подозрение что неправильно делаем запрос на выборку интервала.

Попробуйте поэкспериментировать с временной зоной в запросе на получение отчёта (поставить в 0, прибавить/убавить час перехода на летнее время). Данные для онлайн отчёта и для ActiveX берутся из одного места, так что там всё должно совпадать.