Показать сообщение отдельно
Старый 18.04.2012, 07:15    | »»» |  #1
kzz1C
Начинающий
 
Аватар для kzz1C
 
АдептИС - софт для АПК
Регистрация: 15.12.2011
Сообщений: 14
kzz1C is on a distinguished road
Question OLE - расчет полей

Здравствуйте! Хочу выгрузить данные расчета полей по OLE в файл, чтобы потом разобрать его в 1С. Пробую следующим образом:

Код:
ДатаДляАвтографаНачПериода = Формат(НачПериода,"ДФ='dd.MM.yy H:mm:ss'");
ДатаДляАвтографаКонПериода = Формат(КонПериода,"ДФ='dd.MM.yy H:mm:ss");
//запускаем процедуру waitForFieldsComputing
WorkSensor = 1; 
WorkWidth = ?(
  ЗначениеЗаполнено(СтрокаТранспортноеСредство.ШиринаИнструмента),
    СтрокаТранспортноеСредство.ШиринаИнструмента,
    ШиринаИнструментаПоУмолчанию); //устанавливается в значение 10
Автограф.WaitForFieldsComputing(
    СтрокаТранспортноеСредство.ГрФайл,
    СтрокаТранспортноеСредство.СерийныйНомер,
    ДатаДляАвтографаНачПериода,ДатаДляАвтографаКонПериода,"GSM",WorkSensor,WorkWidth);
Автограф.TripIndex = 1; //Это важно (!!!), хотя, признаю, что и не прописано в документации... сам получил ошибку без этой строчки и воспользовался помощью главного программера...
Временный = ПолучитьИмяВременногоФайла()+".dbf";
Попытка 
    Автограф.ExportListToFile(Временный,"fields","",1,1);  
    ТаблицаРейсовПолей = DBFвТаблицу(Временный);
Исключение 
    Сообщить("Не удалось экспортировать данные: "+ОписаниеОшибки());
КонецПопытки;
прим. - коммент "Это важно (!!!)" и далее - это комментарий Самцова Константина, он раньше пробовал ответить мне на этот вопрос.

Итог этого кода - это всегда "Не удалось экспортировать данные", описание ошибки - неизвестная ошибка (описаниеошибки(), по идее, возвращает текст исключения, которое вернул Ole-объект).
Поля в папке Fields лежат в виде полигонов, все поля отмечены для расчета в окне "Расчет полей". Сам расчет полей, если его вызывать из программы Автограф, проходит в целом успешно, выгрузка в файл xls отрабатывает корректно. Если выгружать по OLE в файлы dbf, csv, txt, получаю ошибку. Рейсы у данного ТС в эти дни есть, трек проходит по полигону. Лобовое стекло протирала, по колесу пинала.
Что я делаю не так?

1. Надо ли запускать процедуру WaitForComputing перед WaitForFieldsComputing?
2. Надо ли создавать файл dbf перед тем, как выгружать туда поля?
3. Полигоны, которые я получаю путем рисования в вашем редакторе, в программе GPSMapEdit выглядят как незамкнутые контуры. Это может играть какую-то роль?
kzz1C вне форума   Ответить с цитированием