&НаСервере
Функция СформироватьОтчетВМодулеОбъекта(Знач Город) Экспорт
ТабДок =
Новый ТабличныйДокумент;
ТабДок.АвтоМасштаб = Истина;
ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
ТабДок.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_СводныеДанные";
Макет = ПолучитьМакет("СводныеДанные");
Запрос = Новый Запрос();
Запрос.Текст
=
"ВЫБРАТЬ
| БАШНЯ_РезультатОбзвонаРоботаОли.ВремяЗвонков КАК ВремяЗвонков,
| БАШНЯ_РезультатОбзвонаРоботаОли.ГруппаКомпаний КАК ГруппаКомпаний,
| БАШНЯ_РезультатОбзвонаРоботаОли.Должность КАК Должность,
| БАШНЯ_РезультатОбзвонаРоботаОли.Компания КАК Компания,
| БАШНЯ_РезультатОбзвонаРоботаОли.Звонки КАК ЧислоЗвонков,
| БАШНЯ_РезультатОбзвонаРоботаОли.ЛюдиНайм КАК ЛюдиНайм,
| БАШНЯ_РезультатОбзвонаРоботаОли.ЛюдиСвои КАК ЛюдиСвои,
| БАШНЯ_РезультатОбзвонаРоботаОли.Статус КАК Статус,
| БАШНЯ_РезультатОбзвонаРоботаОли.ТехникаНайм КАК ТехникаНайм,
| БАШНЯ_РезультатОбзвонаРоботаОли.ТехникаСвоя КАК ТехникаСвоя,
| БАШНЯ_РезультатОбзвонаРоботаОли.ФИО КАК ФИО,
| БАШНЯ_РезультатОбзвонаРоботаОли.ЛюдиСвои + БАШНЯ_РезультатОбзвонаРоботаОли.ЛюдиНайм КАК ЛюдиИтого,
| БАШНЯ_РезультатОбзвонаРоботаОли.ТехникаСвоя + БАШНЯ_РезультатОбзвонаРоботаОли.ТехникаНайм КАК ТехникаИтого,
| БАШНЯ_РезультатОбзвонаРоботаОли.Телефон КАК Телефон,
| БАШНЯ_РезультатОбзвонаРоботаОли.ЛюдиСвои + БАШНЯ_РезультатОбзвонаРоботаОли.ЛюдиНайм КАК ЛюдиИтогоПоГоризонтали,
| БАШНЯ_РезультатОбзвонаРоботаОли.ТехникаСвоя + БАШНЯ_РезультатОбзвонаРоботаОли.ТехникаНайм КАК ТехникаИтогоПоГоризонтали
|ИЗ
| РегистрСведений.БАШНЯ_РезультатОбзвонаРоботаОли КАК БАШНЯ_РезультатОбзвонаРоботаОли
|ГДЕ
| БАШНЯ_РезультатОбзвонаРоботаОли.Регион =
&Регион";
Запрос.Параметры.Вставить("Регион",
Город);
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
//============================
// Область "Название
отчета"
//============================
ОбластьНО
= Макет.ПолучитьОбласть("НазваниеОтчета");
Если Выборка.Следующий()
Тогда
ОбластьНО.Параметры.ГруппаКомпаний
= Выборка.ГруппаКомпаний;
ОбластьНО.Параметры.ВремяСозданияОтчета
= Формат(ТекущаяДата(), "ДФ=чч:мм");
ОбластьНО.Параметры.ДатаСозданияОтчета
= Формат(ТекущаяДата(), "ДФ=dd.MM.yyyy");
КонецЕсли;
ТабДок.Вывести(ОбластьНО);
//=============================
//=============================
//Таблица по людям и технике
//=============================
//=============================
Таб1 = Новый ТабличныйДокумент;
ОбластьЗаголовокПоПерсоналу
=
Макет.ПолучитьОбласть("ГруппировкаПоРесурсу|ТаблицаПерсоналИТехника");
ВыборкаГруппировкиПоЛюдямИТехнике
= ПолучитьИтогиПоЛюдямИТехнике();
Пока ВыборкаГруппировкиПоЛюдямИТехнике.Следующий()
Цикл
//=========================
//Группировка по
РЕСУРСУ
//=========================
ОбластьЗаголовокПоПерсоналу.Параметры.Ресурс
= ВыборкаГруппировкиПоЛюдямИТехнике.Ресурс;
ОбластьЗаголовокПоПерсоналу.Параметры.Количество
= ВыборкаГруппировкиПоЛюдямИТехнике.Количество;
Таб1.Вывести(ОбластьЗаголовокПоПерсоналу);
//===================================
//Область
"ГруппировкаПоКомпании1|ТаблицаСостояниеЗвонков"
//===================================
Область12 =
Макет.ПолучитьОбласть("ГруппировкаПоКомпании1|ТаблицаПерсоналИТехника");
Выборка12 =
ПолучитьИтогиПоЛюдямИТехникеПоКомпаниям(ВыборкаГруппировкиПоЛюдямИТехнике.Ресурс);
Пока
Выборка12.Следующий() Цикл
Область12.Параметры.Компания
= Выборка12.Компания;
Область12.Параметры.Количество
= Выборка12.Количество;
Таб1.Вывести(Область12);
КонецЦикла;
КонецЦикла;
//======================
//======================
//Таблица по звонкам
//======================
//======================
Таб2 = Новый ТабличныйДокумент;
ОбластьЗаголовокПоСостояниюЗвонков
=
Макет.ПолучитьОбласть("ГруппировкаПоРесурсу|ТаблицаСостояниеЗвонков");
Выборка21 = ПолучитьИтогиПоЗвонкам();
Если Выборка21.Следующий() Тогда
ОбластьЗаголовокПоСостояниюЗвонков.Параметры.Количество
= Выборка21.Количество;
КонецЕсли;
Таб2.Вывести(ОбластьЗаголовокПоСостояниюЗвонков);
//===========================================================
//Область
"ГруппировкаПоКомпании1|ТаблицаСостояниеЗвонков"
//===========================================================
Область22 =
Макет.ПолучитьОбласть("ГруппировкаПоКомпании1|ТаблицаСостояниеЗвонков");
Выборка22 = ПолучитьВыборкуПоЗвонкам();
Пока Выборка22.Следующий() Цикл
Область22.Параметры.Состояние
= Выборка22.Состояние;
Область22.Параметры.Количество
= Выборка22.Количество;
Таб2.Вывести(Область22);
КонецЦикла;
ТабДок.Вывести(Таб1.ПолучитьОбласть(1,1,
Таб1.ВысотаТаблицы,Таб1.ШиринаТаблицы));
ТабДок.Присоединить(Таб2.ПолучитьОбласть(1,1,Таб2.ВысотаТаблицы,Таб2.ШиринаТаблицы));
//=========================
// Область "Шапка"
//==========================
ОбластьШапка
= Макет.ПолучитьОбласть("Шапка2");
ТабДок.Вывести(ОбластьШапка);
Если Результат.Пустой()
Тогда
Возврат Неопределено;
КонецЕсли;
//=====================
//Группировка по ГК
//=====================
ОблГрПоГК
= Макет.ПолучитьОбласть("ГруппировкаПоГК");
ВыборкаГК = ПолучитьИтогиПоГК();
Пока ВыборкаГК.Следующий()
Цикл
ОблГрПоГК.Параметры.ЗаголовокГруппировкиПоГК
= ?(ЗначениеЗаполнено(ВыборкаГК.ГруппаКомпаний),
"ИТОГО ПО" + ВыборкаГК.ГруппаКомпаний,
"ИТОГО БЕЗ ГК");
ОблГрПоГК.Параметры.ЛюдиСвои
= ВыборкаГК.ЛюдиСвои;
ОблГрПоГК.Параметры.ЛюдиНайм
= ВыборкаГК.ЛюдиНайм;
ОблГрПоГК.Параметры.ЛюдиИтого
= ВыборкаГК.ЛюдиИтого;
ОблГрПоГК.Параметры.ТехникаСвоя
= ВыборкаГК.ТехникаСвоя;
ОблГрПоГК.Параметры.ТехникаНайм
= ВыборкаГК.ТехникаНайм;
ОблГрПоГК.Параметры.ТехникаИтого
= ВыборкаГК.ТехникаИтого;
ТабДок.Вывести(ОблГрПоГК);
//=========================
//Группировка по
Компании
//=========================
ОблГрПоКомпании
= Макет.ПолучитьОбласть("ГруппировкаПоКомпании");
ВыборкаИтоговПоКомпании = ПолучитьИтогиПоКомпании(ВыборкаГК.ГруппаКомпаний);
Пока ВыборкаИтоговПоКомпании.Следующий() Цикл
ОблГрПоКомпании.Параметры.Компания = ВыборкаИтоговПоКомпании.Компания;
ОблГрПоКомпании.Параметры.ЛюдиСвои = ВыборкаИтоговПоКомпании.ЛюдиСвои;
ОблГрПоКомпании.Параметры.ЛюдиНайм = ВыборкаИтоговПоКомпании.ЛюдиНайм;
ОблГрПоКомпании.Параметры.ЛюдиИтого = ВыборкаИтоговПоКомпании.ЛюдиИтого;
ОблГрПоКомпании.Параметры.ТехникаСвоя = ВыборкаИтоговПоКомпании.ТехникаСвоя;
ОблГрПоКомпании.Параметры.ТехникаНайм = ВыборкаИтоговПоКомпании.ТехникаНайм;
ОблГрПоГК.Параметры.ТехникаИтого = ВыборкаИтоговПоКомпании.ТехникаИтого;
ТабДок.Вывести(ОблГрПоКомпании);
//======================
//Область
"Строка"
//======================
ОблСтр = Макет.ПолучитьОбласть("Строка");
ВыборкаПоКомпании = ПолучитьВыборкуПоКомпании(ВыборкаИтоговПоКомпании.Компания);
Пока ВыборкаПоКомпании.Следующий() Цикл
ОблСтр.Параметры.ФИО = ВыборкаПоКомпании.ФИО;
ОблСтр.Параметры.УправляющаяОрганизация = ВыборкаПоКомпании.Компания;
ОблСтр.Параметры.Должность = ВыборкаПоКомпании.Должность;
ОблСтр.Параметры.ЛюдиСвои = ВыборкаПоКомпании.ЛюдиСвои;
ОблСтр.Параметры.ЛюдиНайм = ВыборкаПоКомпании.ЛюдиНайм;
ОблСтр.Параметры.ЛюдиИтого = ВыборкаПоКомпании.ЛюдиИтого;
ОблСтр.Параметры.ТехникаСвоя = ВыборкаПоКомпании.ТехникаСвоя;
ОблСтр.Параметры.ТехникаНайм = ВыборкаПоКомпании.ТехникаНайм;
ОблСтр.Параметры.ТехникаИтого = ВыборкаПоКомпании.ТехникаИтого;
ОблСтр.Параметры.Телефон = ФорматированиеТелефона(ВыборкаПоКомпании.Телефон);
ОблСтр.Параметры.ЧислоЗвонков = ВыборкаПоКомпании.ЧислоЗвонков;
ОблСтр.Параметры.ВремяЗвонков = Формат(ВыборкаПоКомпании.ВремяЗвонков, "ДФ=чч:мм");
ОблСтр.Параметры.Состояние = ВыборкаПоКомпании.Состояние;
ТабДок.Вывести(ОблСтр);
КонецЦикла;
КонецЦикла;
КонецЦикла;
Возврат ТабДок;
КонецФункции
|