//************************************************************************************************************************************************************************
// Процедура ОтчетПоЗИС() - по заправкам и сливам
//************************************************************************************************************************************************************************
Процедура ОтчетПоЗИС()
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("ОтчетЗИС");
Таб.Опции(0,0,0,0);
Таб.ВывестиСекцию("Шапка");
ТабТС.ВыбратьСтроки();
ПроцВсе=0;
ВсегоТС=0;
ОбработаноТС=0;
ТабТС.ВыбратьСтроки();
Пока ТабТС.ПолучитьСтроку() = 1 Цикл
Если ТабТС.Метка = "+" Тогда ВсегоТС = ВсегоТС + 1; КонецЕсли;
КонецЦикла;
ТабТС.ВыбратьСтроки();
Пока ТабТС.ПолучитьСтроку() > 0 Цикл
Если ТабТС.Метка = "" Тогда Продолжить; КонецЕсли;
ТСПериодНач=Формат(ДатаЧисло(ВыбНачПериода),"Ч(0)2.0")+"."+Формат(ДатаМесяц(ВыбНачПериода),"Ч(0)2.0")+"."+Строка(ДатаГод(ВыбНачПериода))+" 00:00:00";
ТСПериодКон=Формат(ДатаЧисло(ВыбКонПериода),"Ч(0)2.0")+"."+Формат(ДатаМесяц(ВыбКонПериода),"Ч(0)2.0")+"."+Строка(ДатаГод(ВыбКонПериода))+" 23:59:59";
AG.SetGroupIndexByFileName(ТабТС.ГрФайл);
AG.SetCarIndexByDevice(ТабТС.СерНом);
AG.WaitForComputing(ТабТС.ГрФайл,ТабТС.СерНом,ТСПериодНач,ТСПериодКон,"GSM",1);
ОбработаноТС=ОбработаноТС+1;
Форма.Проц.Заголовок(Строка(Окр(100/ВсегоТС*ОбработаноТС,0))+" %");
КолРейсов = AG.TripsNum;
Таб.ВывестиСекцию("ШапкаТС");
Если КолРейсов=0 Тогда
//Предупреждение("Рейсов не обнаружено");
Иначе
Для х = 1 По КолРейсов Цикл
AG.TripIndex = х;
НомРейса = х;
НачРейса = AG.TripStartRealTime;
КонРейса = AG.TripEndRealTime;
AG.TripEntriesListTypeName="tank";
AG.TripEntriesListKindName="num1"; // ДЛЯ БАКА 1 !!!
КолЗИС = AG.TripEntriesNum;
Если КолЗИС > 0 Тогда
Таб.ВывестиСекцию("РЕЙС"); //После проверки КолЗИС, т.к. заголовки рейсов без заправок или сливов не выводим
Для хх = 1 По КолЗИС Цикл
AG.EntryIndex = хх;
Уровень1Нач = Окр (AG.EntryTank1StartLevel,2);
Уровень1Кон = Окр (AG.EntryTank1EndLevel,2);
ЗИС_Адрес = AG.EntryStartAddress;
ЗИС_Нач = AG.EntryStartRealTime;
ЗИС_Кон = AG.EntryEndRealTime;
ЗИС_Длит = AG.EntryRealCont;
Если Уровень1Нач > Уровень1Кон Тогда
ЗИС = "СЛИВ";
ЗИС_Кол = Уровень1Нач - Уровень1Кон;
Иначе
ЗИС = "ЗАПРАВКА";
ЗИС_Кол = Уровень1Кон - Уровень1Нач;
КонецЕсли;
Если ЗИС = "СЛИВ" Тогда
Таб.ВывестиСекцию("СЛИВ");
Иначе
Таб.ВывестиСекцию("ЗАПРАВКА");
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЦикла;
КонецЕсли;
Таб.ВывестиСекцию("Подвал");
КонецЦикла;
Таб.ТолькоПросмотр(1);
Таб.Показать("ОтчетЗИС","");
КонецПроцедуры //ОтчетПоЗИС() - по заправкам и сливам |