Ответ
 
Опции темы
Старый 19.05.2011, 04:53    | »»» |  #1
OBerezhinskiy
Начинающий
 
Аватар для OBerezhinskiy
 
Регистрация: 19.05.2011
Сообщений: 2
OBerezhinskiy is on a distinguished road
По умолчанию API. ошибка при вызове WaitForComputing

Добрый день,

У меня проблема c интеграцией с Системой "Автограф".
Я написал приложение (C#, . net), которое через предоставляемое API(AutoGRAPH Library) забиарает сведения о маршрутах и прочих показателях из системы.
Все чудесно работает у меня на стендах, но у клиента на win XP возникает ошибка при вызове метода WaitForComputing.

System.Runtime.InteropServices.COMException (0x80020009): Exception occurred. (Exception from HRESULT: 0x80020009 (DISP_E_EXCEPTION))
at AutoGRAPH.AutoGRAPHAutomationClass.WaitForComputin g(String GroupFileName, Int32 CarDevice, String FirstTime, String LastTime, String DataSource, Int32 TakeTripsSetup)
at ProductionReporting.AutoGRAPHLoader.Loader.Fill(Da teTime date, Int32 sn, Boolean isProblem) in C:\Work\PE_KSGOK\DEV\ProductionReporting.AutoGRAPH Loader.Business\Loader.cs:line 482

Причем приложение открывается, а потом из кома вылетает эта ошибка.
Я не вижу разницы настроек у меня на винде и у клиента.

Подскажите, что нужно настроить в операционной системе, чтобы заработало?
OBerezhinskiy вне форума   Ответить с цитированием
Старый 19.05.2011, 05:42    | »»» |  #2
storm
Опытный пользователь
 
Аватар для storm
 
Регистрация: 22.12.2010
Сообщений: 2,121
storm is on a distinguished road
Отправить сообщение для storm с помощью Skype™
По умолчанию

пример кода сбросьте, возможно что-то не так вызываете

Добавлено через 46 секунд
и версии программы АвтоГРАФ на обоих компьютерах одинаковые?

г. Челябинск
Ахмедьянов Алексей Адлерович
storm вне форума   Ответить с цитированием
Старый 19.05.2011, 05:50    | »»» |  #3
paul310
экс-Дилер
 
Аватар для paul310
 
Регистрация: 19.05.2011
Сообщений: 13
paul310 is on a distinguished road
По умолчанию Отвечу как клиент

Версии - одинаковые (3.4.0)

ООО "Бизнес-Навигация" г. Хабаровск
Ефремов Павел Петрович, внештатный программист
paul310 вне форума   Ответить с цитированием
Старый 19.05.2011, 05:54    | »»» |  #4
plex
Дилер
 
Аватар для plex
 
Екатеринбург, ЗАО "Седьмая Экспедиция"
Регистрация: 14.12.2010
Сообщений: 15,022
plex is on a distinguished road
Отправить сообщение для plex с помощью ICQ Отправить сообщение для plex с помощью Skype™
По умолчанию

paul310,справка о программе , там написан билд, могут отличаться, но врят-ли это причина ошибка

ЗАО "Седьмая Экспедиция", Екатеринбург, РФ
Мушин Виктор Валерьевич, Технический директор
plex вне форума   Ответить с цитированием
Старый 19.05.2011, 07:03    | »»» |  #5
storm
Опытный пользователь
 
Аватар для storm
 
Регистрация: 22.12.2010
Сообщений: 2,121
storm is on a distinguished road
Отправить сообщение для storm с помощью Skype™
По умолчанию

тогда пример кода напишите

особенно интересует строка 482 в файле, но лучше весь проект, можете в личку сбросить или на почту storm@tk-chel.ru
Сообщение от OBerezhinskiy Посмотреть сообщение
C:\Work\PE_KSGOK\DEV\ProductionReporting.AutoGRAPH Loader.Business\Loader.cs:line 482

г. Челябинск
Ахмедьянов Алексей Адлерович
storm вне форума   Ответить с цитированием
Старый 19.05.2011, 08:09    | »»» |  #6
OBerezhinskiy
Начинающий
 
Аватар для OBerezhinskiy
 
Регистрация: 19.05.2011
Сообщений: 2
OBerezhinskiy is on a distinguished road
По умолчанию

public static void Fill(DateTime date, int sn, bool isProblem)
{
XPCollection<ReportHead> c = new XPCollection<ReportHead>(Context.MainUnitOfWork);
XPCollection<QuestionableVehicles> q = new XPCollection<QuestionableVehicles>(Context.MainUni tOfWork);
rh = c.Where(t => !t.IsD && t.ReportDate.Date == date.Date && t.ShiftNo == sn).First();
DateTime s;
DateTime e;
if (rh.ShiftNo == 1)
{
s = new DateTime(rh.ReportDate.Year, rh.ReportDate.Month, rh.ReportDate.Day, 8, 0, 0);
e = new DateTime(rh.ReportDate.Year, rh.ReportDate.Month, rh.ReportDate.Day, 20, 0, 0);
}
else
{
s = new DateTime(rh.ReportDate.Year, rh.ReportDate.Month, rh.ReportDate.Day, 20, 0, 0);
e = new DateTime(rh.ReportDate.AddDays(1).Year, rh.ReportDate.AddDays(1).Month, rh.ReportDate.AddDays(1).Day, 8, 0, 0);

}


//s = new DateTime(10, 4, 26, 0, 0, 0);
//e = new DateTime(10, 4, 27, 8, 0, 0); ;

ag = new AutoGRAPHAutomationClass();
ag.EnterPassword(ProductionReporting.AutoGRAPHLoad er.Business.Properties.Settings.Default.AutoGraph) ;


List<string> log = new List<string>();

for (int i = 1; i <= ag.GroupsNum; i++)
{

ag.GroupIndex = i;
for (int i0 = 1; i0 <= ag.GroupCarsNum; i0++)
{
ag.CarIndex = i0;
var vl = rh.VehicleLine.Where(t => t.VehicleId.AutoGRAPHId == ag.CarDevice.ToString()).FirstOrDefault();
if (vl == null || ( isProblem && q.FirstOrDefault(t=>vl.VehicleId == t.VehicleId && rh == t.ReportHeadId)!=null)) continue;

//валится тут!!!!!!!!
ag.WaitForComputing(
ag.GroupFileName,
ag.CarDevice,
s.ToString("dd.MM.yy HH:mm:ss"),
e.ToString("dd.MM.yy HH:mm:ss"),
"GSM", 1);



for (int i1 = 1; i1 <= ag.TripsNum; i1++)
{

ag.TripIndex = i1;
ag.TripEntriesListTypeName = "parks"; // Тип списка записей
//ag.TripEntriesListKindName = "points"; // Вид списка записей

try
{
for (int i2 = 1; i2 <= ag.TripEntriesNum; i2++)
{


ag.EntryIndex = i2;
AGPoints p = new AGPoints();
p.Vehicle = vl;
// if (p.Vehicle == null) continue;

p.EntryEndRealTime = DateTime.Parse(ag.EntryEndRealTime);
p.EntryDistance = Convert.ToDecimal(ag.EntryDistance);
p.EntryMotor1Fuel = Convert.ToDecimal(ag.EntryMotor1Fuel);
p.EntryMotor1Hours = Convert.ToDecimal(ag.EntryMotor1Hours);
p.EntryMotor1ParkHours = Convert.ToDecimal(ag.EntryMotor1ParkHours);
p.EntryTank1EndLevel = Convert.ToDecimal(ag.EntryTank1EndLevel);
p.EntryTank1StartLevel = Convert.ToDecimal(ag.EntryTank1StartLevel);
p.Longitude = ag.EntryStartLongitude;
p.Latitude = ag.EntryStartLatitude;
p.IDP = ag.EntryStartIDP;
p.IDName = ag.EntryStartName;
p.CarDevice = ag.CarDevice;
if (p.IDP != null)
{
XPCollection<CheckPoints> cc =
new XPCollection<CheckPoints>(Context.MainUnitOfWork, new BinaryOperator("AutoGRAPHId", p.IDP, BinaryOperatorType.Equal));

p.JobName = cc.Count > 0 && cc.First().JobId != null ? cc.First().JobId.Name : null;
p.JobId = cc.Count > 0 && cc.First().JobId != null ? (int?)cc.First().JobId.IdN : null;
}

aglist.Add(p);
}
}
catch (Exception exp)
{
//EventLog.WriteEntry("PR.AutoGRAPH", exp.ToString());
if (DevExpress.XtraEditors.XtraMessageBox.Show(
string.Format(@"Смена №{0} - {1}; Техника {2};
{3}", sn, date.ToShortDateString(), ag.CarDevice, exp.ToString()),
"Ошибка",
System.Windows.Forms.MessageBoxButtons.OKCancel) != System.Windows.Forms.DialogResult.OK)
return;
}
}
}
}
DevExpress.XtraEditors.XtraMessageBox.Show(
string.Format(@"Загрузка данных смены №{0} - {1} завершена.
Загружено {2} записей.", sn, date.ToShortDateString(), aglist.Count),
"Собщение");
}

public static Jobs OtherJob
{
get
{
XPCollection<Jobs> job = new XPCollection<Jobs>(Context.MainUnitOfWork, new BinaryOperator("Name", "Прочее"));
return job.FirstOrDefault();
}
}

Добавлено через 42 минуты
Входные параметры в функцию WaitForComputing:
"Горнообогатительный.ini",
101448,
"15.10.10 08:00:00",
"15.10.10 20:00:00",
"GSM",
1
OBerezhinskiy вне форума   Ответить с цитированием
Старый 19.05.2011, 08:57    | »»» |  #7
storm
Опытный пользователь
 
Аватар для storm
 
Регистрация: 22.12.2010
Сообщений: 2,121
storm is on a distinguished road
Отправить сообщение для storm с помощью Skype™
По умолчанию

по коду вроде все нормально, единственный совет пока могу дать, сохраните или выведите значения всех параметров перед выводом этой функции и потом смотрите, что может быть не так
но скорее всего ошибка все таки связана с версиями программы АвтоГРАФ и ее оле-интерфейсом
попробуйте очистить реестр у клиента от ОЛЕ программы АвтоГРАФ с помощью reg-файла
http://www.tk-chel.ru/download/AG_OLE_UNREG.REG
а потом снова ее зарегистрировать - запустив с правами администратора

г. Челябинск
Ахмедьянов Алексей Адлерович
storm вне форума   Ответить с цитированием
Старый 19.05.2011, 09:41    | »»» |  #8
paul310
экс-Дилер
 
Аватар для paul310
 
Регистрация: 19.05.2011
Сообщений: 13
paul310 is on a distinguished road
По умолчанию

Засада оказалась в настройках отображения времени на локальной машине. Поменял на 24-часовой формат - всхорошело.

ООО "Бизнес-Навигация" г. Хабаровск
Ефремов Павел Петрович, внештатный программист
paul310 вне форума   Ответить с цитированием
Старый 24.05.2018, 13:47    | »»» |  #9
Алекс
Начинающий
 
Аватар для Алекс
 
Воронеж
Регистрация: 14.07.2017
Сообщений: 1
Алекс is on a distinguished road
По умолчанию

Была такая проблема, ушла когда и на сервере 1с для пользователя под которым он запускается установили 24 часовой формат и перегрузили сервер.
Алекс вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 17:14. Часовой пояс GMT.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot