Пример. Машинки берутся из таблицы ТС.
Код:
Процедура ОтчетПоПолям()
ТабТС.ВыбратьСтроки();
ПроцВсе=0;
ВсегоТС=0;
ОбработаноТС=0;
Ширина = 8;
ФайлВыгрузки = "D:\!\FIELDS.DBF";
ТабТС.ВыбратьСтроки();
Пока ТабТС.ПолучитьСтроку() = 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);
AG.WaitForFieldsComputing(ТабТС.ГрФайл,ТабТС.СерНом,ТСПериодНач,ТСПериодКон,"GSM",Ширина,0);
AG.TripIndex = 1;
AG.ExportListToFile(ФайлВыгрузки,"fields","",1,1);
ОбработаноТС=ОбработаноТС+1;
Форма.Проц.Заголовок(Строка(Окр(100/ВсегоТС*ОбработаноТС,0))+" %");
КонецЦикла;
Предупреждение("ГОТОВО");
КонецПроцедуры //ОтчетПоПолям()
Код:
Процедура ЗаполнитьТаблицуТС()
// Инициализируем таблицу групп ТС
ТабГрупп.УдалитьСтроки();
// Инициализируем таблицу ТС
ТабТС.УдалитьСтроки();
ЧислоГрупп=AG.GroupsNum; //Определяем число групп ТС
Если ЧислоГрупп>0 Тогда
Для х = 1 По ЧислоГрупп Цикл
AG.GroupIndex = х; //Передаем индекс (номер) группы в АГ
ГрЧислоТС = AG.GroupCarsNum; //Определяем число ТС в группе
Если ГрЧислоТС > 0 Тогда //Если кол-во ТС в текущей группе > 0 тогда выводим ТС группы, пустую группу - не выводим
ТабГрупп.НоваяСтрока();
ТабГрупп.Группа = AG.GroupName; //Название группы ТС
Для хх = 1 По ГрЧислоТС Цикл
AG.CarIndex = хх; //Передаем индекс (номер) ТС внутри группы в АГ
ТабТС.НоваяСтрока();
ТабТС.Метка = ""; //Метка выбора - снята
ТабТС.Группа = AG.GroupName; //Название группы ТС
ТабТС.СерНом = AG.CarDevice; //Сер. номер контроллера
ТабТС.Марка = AG.CarModel; //Марка ТС
ТабТС.НомерТС = AG.CarNumber; //Гос. номер ТС
ТабТС.ГрФайл = AG.GroupFileName; //Файл группы ТС (нужен для расчета)
КонецЦикла;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецПроцедуры // ЗаполнитьТаблицуТС()
//****************************************************************************************************************************
// Предопределенная процедура ПриОткрытии()
// Инициализируем форму, таблицы и начальные значения переменных, создаем COM-объект
//****************************************************************************************************************************
Процедура ПриОткрытии()
ОчиститьОкноСообщений();
Форма.ИспользоватьСлой("Основной");
//Сообщить(AG.CurrentVersion); // Текущая версия ПО «АвтоГРАФ»
Форма.ИспользоватьЗакладки(1);
AG=СоздатьОбъект("AutoGRAPH.AutoGRAPHAutomation"); // Создаем COM-объект
ddd=AG.WaitForInitializing(); // Ждем окончания инициализации объекта
НепройденныеКТ = 1; // Устанавливаем чекбокс "Показывать отчет с непройденными КТ" в положение "Да"
ВыбНачПериода = ТекущаяДата(); // Устанавливаем начальную дату отчета на начало текущего дня
ВыбКонПериода = ТекущаяДата(); // Устанавливаем конечную дату отчета на конец текущего дня
// Инициализируем таблицу групп ТС
ТабГрупп.УдалитьСтроки();
ТабГрупп.НоваяКолонка("Группа",,,,"Группа (+/-)",20,,1);
// Инициализируем таблицу ТС
ТабТС.УдалитьСтроки();
ТабТС.НоваяКолонка("Метка",,,,"Х",3,,1);
ТабТС.НоваяКолонка("Группа",,,,"Группа",20,,1);
ТабТС.НоваяКолонка("СерНом",,,,"№ АГ",8,,1);
ТабТС.НоваяКолонка("Марка",,,,"Марка/Модель",30,,1);
ТабТС.НоваяКолонка("НомерТС",,,,"Рег. № ТС",20,,1);
ТабТС.НоваяКолонка("ГрФайл",,,,"Файл группы",20,,1);
ЗаполнитьТаблицуТС(); // Заполняем таблицу ТС и групп ТС
КонецПроцедуры //ПриОткрытии
|