22.07.2015, 15:55
|
| »»» |
#1
|
Начинающий
Екатеринбург, ООО ЕСК
Регистрация: 18.09.2012
Сообщений: 38
|
Как посчитать расход топлива по разрезе моточасов? Как сделать такой запрос из 1с 8.2?
добрый день!
Как посчитать расход топлива по разрезе моточасов? Как сделать такой запрос из 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 и крутим его...
Менял параметр РеквизитЗапроса... но не нашел...
Или другой путь нужен?
|
|
|
|
22.07.2015, 17:11
|
| »»» |
#2
|
Администратор
Регистрация: 27.05.2010
Сообщений: 29,956
|
Леонид Борисович, что означает "в разрезе моточасов" ? Термин "в разрезе" означает, что "величина в разрезе которой что-то выводится" может принимать альтернативные значения: в разрезе контрагентов, в разрезе статуса движения (движение / остановка), в разрезе рейсов, в разрезе геозон и т.п. Моточасы (время работы двигателя) - это же накопительная величина...
Поясните: что именно Вы хотите получить ?
Сколько в среднем тратилось топлива на 1 моточас (1 час работы двигателя) на каком-то периоде ? Или что-то другое ?
И зачем Вам непройденные КТ в плане расхода топлива и моточасов ?
ООО «ТехноКом», г. Челябинск
Самцов Константин Юрьевич - зам. директора по коммерческой деятельности
|
|
|
|
22.07.2015, 18:06
|
| »»» |
#3
|
Начинающий
Екатеринбург, ООО ЕСК
Регистрация: 18.09.2012
Сообщений: 38
|
Расход топлива идет от самого двигателя и когда работает крановая установка. нужно как то найти через оле сколько потрачено топлива двигателем, а сколько крановой. при обычном запросе есть поле level1. там получается расход общий.
Добавлено через 5 минут
В автографе есть 2 раздела, ком1 это работа двигателя и ком2 это крановая установка. надо как то найти через оле запрос отдельно по каждой. интервалы я нахожу, это несложно, а разделить не пойму как...
Добавлено через 2 минуты
разделить, значит вычислить моточасы и расход отдельно и по ком1 и по ком2. не могу понять пока как!
Добавлено через 3 минуты
Добавлено через 1 минуту
https://yadi.sk/i/F04JUq8Qi33gb
Добавлено через 54 секунды
время 1 на рисунке нахожу, не могу понять как найти 2 и 3.
Добавлено через 6 минут
по поводу ... "И зачем Вам непройденные КТ в плане расхода топлива и моточасов ?" я как то давно подключился 1с кой через оле к автографу, так и использую эту методику в дальнейшем... Если честно до конца все тонкости взаимодействия 1с и автографом не знаю.
|
|
|
|
22.07.2015, 18:20
|
| »»» |
#4
|
Дилер
ООО "Системы Контроля и Анализа Транспорта", г. Нижний Новгород
Регистрация: 17.05.2011
Сообщений: 5,673
|
Для того, чтобы разделить, вам надо зафиксировать работу крана
ООО "Системы Контроля и Анализа Транспорта" г. Нижний Новгород
Бородин Николай Олегович, ген. Директор
|
|
|
|
22.07.2015, 18:23
|
| »»» |
#5
|
Администратор
Регистрация: 27.05.2010
Сообщений: 29,956
|
Леонид Борисович, Вы меня совсем запутали... 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"
Затем перебирая индекс списка по каждому событию (включению датчика 2) получаете за период события нужные параметры - МЧ, расходы и т.п.:
ООО «ТехноКом», г. Челябинск
Самцов Константин Юрьевич - зам. директора по коммерческой деятельности
Последний раз редактировалось SK; 22.07.2015 в 18:28.
|
|
|
|
23.07.2015, 05:48
|
| »»» |
#6
|
Начинающий
Екатеринбург, ООО ЕСК
Регистрация: 18.09.2012
Сообщений: 38
|
добрый день! ну вот теперь понятно какие "педали нажимать"... спасибо. будем "крутить"...
Добавлено через 23 минуты
спасибо.
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Текущее время: 10:43. Часовой пояс GMT.
|
|