PDA

Просмотр полной версии : Как посчитать расход топлива по разрезе моточасов? Как сделать такой запрос из 1с 8.2?


Леонид Борисович
22.07.2015, 15:55
добрый день!

Как посчитать расход топлива по разрезе моточасов? Как сделать такой запрос из 1с 8.2? Обычно делаю так...
AG=Новый COMОбъект("AutoGRAPH.AutoGRAPHAutomation"); // Создаем COM-объект
ddd=AG.WaitForInitializing(); // Ждем окончания инициализации объекта
НепройденныеКТ = 1; // Устанавливаем чекбокс "Показывать отчет с непройденными КТ" в положение "Да"
ТабГрупп.очистить();
ТабКТ.очистить();
Кран_ = Кран ;

ЗаполнитьТаблицуТС(Кран_);



AG.SetGroupIndexByFileName(стр.ГрФайл);
AG.SetCarIndexByDevice(стр.СерНом);
AG.WaitForComputing(стр.ГрФайл,стр.С рНом,ТСПериодНач,ТСПериод он,"GSM",1);
КолРейсов = AG.TripsNum;
ФайлКТ = AG.CarCheckPointsFile;

если КолРейсов > 0 тогда
AG.TripIndex = 1;
конецесли ;

СерийныйНомерКрана = стр.Серном ;
ИмяФайлаБазыDBF= строка("C:\kran.dbf");
Попытка
AG.ExportDataToFile(ИмяФайлаБазыDBF,Р еквизитЗапроса,1);
Исключение
AG.PropertyName = "Last_Error";
Сообщить(AG.PropertyValue);
Сообщить("Не удалось экспортировать данные: "+ОписаниеОшибки());
КонецПопытки;
выгружаем все в файлик dbf и крутим его...

Менял параметр РеквизитЗапроса... но не нашел...
Или другой путь нужен?

SK
22.07.2015, 17:11
Леонид Борисович, что означает "в разрезе моточасов" ? Термин "в разрезе" означает, что "величина в разрезе которой что-то выводится" может принимать альтернативные значения: в разрезе контрагентов, в разрезе статуса движения (движение / остановка), в разрезе рейсов, в разрезе геозон и т.п. Моточасы (время работы двигателя) - это же накопительная величина...
Поясните: что именно Вы хотите получить ?
Сколько в среднем тратилось топлива на 1 моточас (1 час работы двигателя) на каком-то периоде ? Или что-то другое ?
И зачем Вам непройденные КТ в плане расхода топлива и моточасов ?

Леонид Борисович
22.07.2015, 18:06
Расход топлива идет от самого двигателя и когда работает крановая установка. нужно как то найти через оле сколько потрачено топлива двигателем, а сколько крановой. при обычном запросе есть поле level1. там получается расход общий.

Добавлено через 5 минут
В автографе есть 2 раздела, ком1 это работа двигателя и ком2 это крановая установка. надо как то найти через оле запрос отдельно по каждой. интервалы я нахожу, это несложно, а разделить не пойму как...

Добавлено через 2 минуты
разделить, значит вычислить моточасы и расход отдельно и по ком1 и по ком2. не могу понять пока как!

Добавлено через 3 минуты
https://yadi.sk/i/F04JUq8Qi33gb

Добавлено через 1 минуту
https://yadi.sk/i/F04JUq8Qi33gb

Добавлено через 54 секунды
время 1 на рисунке нахожу, не могу понять как найти 2 и 3.

Добавлено через 6 минут
по поводу ... "И зачем Вам непройденные КТ в плане расхода топлива и моточасов ?" я как то давно подключился 1с кой через оле к автографу, так и использую эту методику в дальнейшем... Если честно до конца все тонкости взаимодействия 1с и автографом не знаю.

NickolaDed
22.07.2015, 18:20
Для того, чтобы разделить, вам надо зафиксировать работу крана

SK
22.07.2015, 18:23
Леонид Борисович, Вы меня совсем запутали... Level - это уровень...
У Вас когда работает крановая установка, двигатель выключен или как ? Нет перекрытий работы датчиков 1 и 2 ???

Если просто делать то, что Вы просите, то Вам нужен отчет по датчику 2.

Что-то типа:

AG.WaitForComputing(ТабТС.ГрФайл,Таб ТС.СерНом,ТСПериодНач,ТСПе иодКон,"GSM",1);

КолРейсов = AG.TripsNum;

Если КолРейсов=0 Тогда
//Предупреждение("Рейсов не обнаружено");
Иначе
Для х = 1 По КолРейсов Цикл
AG.TripIndex = х;
AG.TripEntriesListTypeName="sensor_on";
AG.TripEntriesListKindName="num2";
КолСобытий = AG.TripEntriesNum;
Если КолСобытий > 0 Тогда
Для хх = 1 По КолСобытий Цикл
AG.EntryIndex = хх;

МЧДвиг1 = AG.EntryMotor1Hours;
РасходДвиг1 = AG.EntryMotor1Fuel;

КонецЦикла;
КонецЕсли;
КонецЦикла;
КонецЕсли;


Т.е. Вы сначала внутри рейса выбираете список событий типа "Включение датчика 2"
http://f6.s.qip.ru/n037PHep.png
Затем перебирая индекс списка по каждому событию (включению датчика 2) получаете за период события нужные параметры - МЧ, расходы и т.п.:
http://f5.s.qip.ru/n037PHeo.png

Леонид Борисович
23.07.2015, 05:48
добрый день! ну вот теперь понятно какие "педали нажимать"... спасибо. будем "крутить"...:zaboy:

Добавлено через 23 минуты
:temazakryta: спасибо.