Сообщение от SK
|
Документация давно идет в комплекте с ПО - в инсталляторе...
|
Как-то не думал что в инсталляции есть документация. Жаль что её не больше чем уже давно нашел в интернете. И то же нет примеров...
Сообщение от SK
|
массивКоординатРейса = AG.TrackCrdsArray;
Это Вам не поможет, т.к. 1С не работает с такими штуками...
|
Вообще 1С умеет работать с COMSafeArray...
Код:
|
AG.TrackCrdsArray.Выгрузить() |
В нашем случае получается одномерный массив.
Но проблема даже не в этом, а в том что при попытке установить значение CrdEntryIndex для обхода списка AutoGRAPH отваливается. Ошибок я не вижу.
Сообщение от SK
|
Во-первых, Вы перепутали переменные:
Код:
|
колРейсов = AG.TripsNum;
Для в = 1 По числоМашин Цикл
AG.TripIndex = в; |
Вы присваиваете индексу рейса значения от 1 до числоМашин, а не до колРейсов...
|
Действительно, при наборе кода в топике я ошибся. Вот фрагмент кода из 1С:
Код:
|
AG = Новый COMОбъект("AutoGRAPH.AutoGRAPHAutomation");
ИнициализацияAG = AG.WaitForInitializing();
ЧислоГрупп = AG.GroupsNum;
Для а = 1 По ЧислоГрупп Цикл
AG.GroupIndex = а;
ЧислоТС = AG.GroupCarsNum;
Для б = 1 По ЧислоТС Цикл
AG.CarIndex = б;
AG.SetGroupIndexByFileName( AG.GroupFileName );
AG.SetCarIndexByDevice( AG.CarDevice );
AG.WaitForComputing( AG.GroupFileName, AG.CarDevice, НачалоПериода, КонецПериода, "GSM", 1 );
ЧислоРейсов = AG.TripsNum;
Для в = 1 По ЧислоРейсов Цикл
AG.TripIndex = в;
Если AG.TripMotor1Fuel > 0 Тогда
Нов = ВремТаб.Добавить();
Нов.Индекс = в;
Нов.Код = AG.CurrentCarDevice;
Нов.Группа = AG.GroupName;
Нов.Модель = AG.CarModel;
Нов.Госномер = AG.CarNumber;
Нов.Расход = AG.TripMotor1Fuel;
Нов.Пробег = AG.TripDistance;
Нов.ВремяВыезда = AG.TripRealCont;
Нов.ВодительID = AG.TripDriverID;
Нов.ВодительИмя = AG.TripDriverName;
Нов.НачальнаяТочка = AG.TripStartName;
Нов.КонечнаяТочка = AG.TripEndName;
Нов.НачальнаяШирока = AG.TripStartLatitude;
Нов.НачальнаяДолгода = AG.TripStartLongitude;
Нов.КонечнаяШирота = AG.TripEndLatitude;
Нов.КонечнаяДолгота = AG.TripEndLongitude;
Нов.НачальноеВремя = AG.TripStartRealTime;
Нов.КонечноеВремя = AG.TripEndRealTime;
Нов.СкоростьСредняя = AG.TripAverSpeed;
Нов.СкоростьМаксимальная = AG.TripMaxSpeed;
Нов.КолвоКординат = AG.TripCrdEntriesNum;
Нов.Координаты = AG.TrackCrdsStr;
ЧислоКоординатныхЗаписей = AG.TripCrdEntriesNum;
Для г = 1 По ЧислоКоординатныхЗаписей Цикл
AG.CrdEntryIndex = г;
Время = AG.CrdEntryTime;
Долгота = AG.CrdEntryLongitude;
Широта = AG.CrdEntryLatitude;
Пробег = AG.CrdEntryDistance;
Скорость = AG.CrdEntrySpeed;
Вход1 = AG.CrdEntrySensor1;
Вход2 = AG.CrdEntrySensor2;
LLS1 = AG.CrdEntryLLS1;
LLS2 = AG.CrdEntryLLS2;
// ...
КонецЦикла;
КонецЕсли;
КонецЦикла;
КонецЦикла;
КонецЦикла; |
Добавлено через 9 минут
Утром попробовал на чистой машине запустить обработку из пустой файловой базы с АвтоГРАФ-ом версии 4.0.6 с одной группой и 12 машинами (сразу после загрузки онлайновых данных).
Отработало без ошибок.
Помогло то ли что автограф на локальной машине отработал, то ли что база файловая и все работало с правами пользователя, то ли на чистой машине нет косяков с COM.
Кстати, почему открывается окно программы ?
Означает ли это что на сервере COM работать не будет (из-за того что будет вызвано из службы) из-за того что не сможет окно создать ?