19.05.2011, 04:53
|
| »»» |
#1
|
Начинающий
Регистрация: 19.05.2011
Сообщений: 2
|
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
Причем приложение открывается, а потом из кома вылетает эта ошибка.
Я не вижу разницы настроек у меня на винде и у клиента.
Подскажите, что нужно настроить в операционной системе, чтобы заработало?
|
|
|
|
19.05.2011, 05:42
|
| »»» |
#2
|
Опытный пользователь
Регистрация: 22.12.2010
Сообщений: 2,121
|
пример кода сбросьте, возможно что-то не так вызываете
Добавлено через 46 секунд
и версии программы АвтоГРАФ на обоих компьютерах одинаковые?
г. Челябинск
Ахмедьянов Алексей Адлерович
|
|
|
|
19.05.2011, 05:50
|
| »»» |
#3
|
экс-Дилер
Регистрация: 19.05.2011
Сообщений: 13
|
Отвечу как клиент
Версии - одинаковые (3.4.0)
ООО "Бизнес-Навигация" г. Хабаровск
Ефремов Павел Петрович, внештатный программист
|
|
|
|
19.05.2011, 05:54
|
| »»» |
#4
|
Дилер
Екатеринбург, ЗАО "Седьмая Экспедиция"
Регистрация: 14.12.2010
Сообщений: 15,022
|
paul310,справка о программе , там написан билд, могут отличаться, но врят-ли это причина ошибка
ЗАО "Седьмая Экспедиция", Екатеринбург, РФ
Мушин Виктор Валерьевич, Технический директор
|
|
|
|
19.05.2011, 07:03
|
| »»» |
#5
|
Опытный пользователь
Регистрация: 22.12.2010
Сообщений: 2,121
|
тогда пример кода напишите
особенно интересует строка 482 в файле, но лучше весь проект, можете в личку сбросить или на почту storm@tk-chel.ru
Сообщение от OBerezhinskiy
|
C:\Work\PE_KSGOK\DEV\ProductionReporting.AutoGRAPH Loader.Business\Loader.cs:line 482
|
г. Челябинск
Ахмедьянов Алексей Адлерович
|
|
|
|
19.05.2011, 08:09
|
| »»» |
#6
|
Начинающий
Регистрация: 19.05.2011
Сообщений: 2
|
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
|
|
|
|
19.05.2011, 08:57
|
| »»» |
#7
|
Опытный пользователь
Регистрация: 22.12.2010
Сообщений: 2,121
|
по коду вроде все нормально, единственный совет пока могу дать, сохраните или выведите значения всех параметров перед выводом этой функции и потом смотрите, что может быть не так
но скорее всего ошибка все таки связана с версиями программы АвтоГРАФ и ее оле-интерфейсом
попробуйте очистить реестр у клиента от ОЛЕ программы АвтоГРАФ с помощью reg-файла
http://www.tk-chel.ru/download/AG_OLE_UNREG.REG
а потом снова ее зарегистрировать - запустив с правами администратора
г. Челябинск
Ахмедьянов Алексей Адлерович
|
|
|
|
19.05.2011, 09:41
|
| »»» |
#8
|
экс-Дилер
Регистрация: 19.05.2011
Сообщений: 13
|
Засада оказалась в настройках отображения времени на локальной машине. Поменял на 24-часовой формат - всхорошело.
ООО "Бизнес-Навигация" г. Хабаровск
Ефремов Павел Петрович, внештатный программист
|
|
|
|
24.05.2018, 13:47
|
| »»» |
#9
|
Начинающий
Воронеж
Регистрация: 14.07.2017
Сообщений: 1
|
Была такая проблема, ушла когда и на сервере 1с для пользователя под которым он запускается установили 24 часовой формат и перегрузили сервер.
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Текущее время: 02:07. Часовой пояс GMT.
|
|