|
&НаСервере
Функция Выгрузить_ОтчетДляРуководителей_вСтруктуру(Знач ДатаНачалаВзаимодействий, Знач ДатаОкончанияВзаимодействий)
СКД =
Отчеты.ОтчетДляРуководителейОПпоСборщикам.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
Запрос = Новый Запрос;
Запрос.Текст =
СКД.НаборыДанных.НаборДанных1.Запрос;
Запрос.Текст = Запрос.Текст + Символы.ПС + Символы.Таб + "И 1 = 1";
Запрос.Текст = Запрос.Текст + Символы.ПС + Символы.Таб + "И 2 = 2";
Запрос.УстановитьПараметр("ДатаНачалаВзаимодействий", ДатаНачалаВзаимодействий);
Запрос.УстановитьПараметр("ДатаОкончанияВзаимодействий", ДатаОкончанияВзаимодействий);
//Отбор только по Взаимодействиям из Слайда 9
мВзаимодействий = Новый
Массив;
мВзаимодействий.Добавить("Обходы");
мВзаимодействий.Добавить("Входящий
телефонный звонок");
мВзаимодействий.Добавить("Встреча
в офисе");
мВзаимодействий.Добавить("Телефонный
звонок клиенту");
Запрос.Текст = СтрЗаменить(Запрос.Текст,
"1 = 1", "втВзаимодествия2.ВидВзаимодействия.Наименование В
(&мВзаимодействий)");
Запрос.УстановитьПараметр("мВзаимодействий", мВзаимодействий);
Запрос.Текст = СтрЗаменить(Запрос.Текст,
"2 = 2", "втВзаимодествия2.F1_УправляющаяКомпания.Наименование
<> """"");
Результат = Запрос.Выполнить();
Если Результат.Пустой() Тогда
Возврат Неопределено;
КонецЕсли;
//============
//ТЗ
//============
ТЗ = Результат.Выгрузить();
//При сворачивании ДолгСПениВсего
> 99 999 999,99,
//поэтому сначала переводим в миллионы, а потом
сворачиваем
Для Каждого Эл Из ТЗ Цикл
Если ЗначениеЗаполнено(Эл.ДолгСПениВсего) Тогда
Эл.ДолгСПениВсего
= Эл.ДолгСПениВсего / 1000000;//В млн. руб.
Иначе
Эл.ДолгСПениВсего
= 0;
КонецЕсли;
Если ЗначениеЗаполнено(Эл.СуммаЕИРЦ_Задание1483)
Тогда
Эл.СуммаЕИРЦ_Задание1483 =
Эл.СуммаЕИРЦ_Задание1483 / 1000000;//В млн. руб.
Иначе
Эл.СуммаЕИРЦ_Задание1483 = 0;
КонецЕсли;
КонецЦикла;//ТЗ
ТЗ.Свернуть("F1_УправляющаяКомпания,
ВидВзаимодействия", "ДолгСПениВсего,
СуммаЕИРЦ_Задание1483");//Сворачиваем ТЗ
ТЗ.Колонки.Добавить("Конверсия",
Новый ОписаниеТипов("Число"));
Для Каждого Эл Из ТЗ Цикл
Если ЗначениеЗаполнено(Эл.ДолгСПениВсего) Тогда
Эл.Конверсия
= Эл.СуммаЕИРЦ_Задание1483 / Эл.ДолгСПениВсего *
100;
Иначе
Эл.Конверсия
= 0;
КонецЕсли;
КонецЦикла;
//============================
//Находим порядок УК для таблицы
//============================
ТЗ1 = ТЗ.Скопировать();
ТЗ1.Свернуть("F1_УправляющаяКомпания",
"Конверсия");
ТЗ1.Сортировать("Конверсия Возр");//Сортируем
ТЗ по возрастанию, а вставлять потом будем по убыванию
мПорядокУК =
ТЗ1.ВыгрузитьКолонку("F1_УправляющаяКомпания");
//==========
//Массив
//==========
мВых = Новый Массив;
Для Каждого Эл Из ТЗ Цикл
стТемп = Новый
Структура;
стТемп.Вставить("УК",
Эл.F1_УправляющаяКомпания);
стТемп.Вставить("ВидВзаимодействия", Эл.ВидВзаимодействия);
стТемп.Вставить("Долг",
Окр(Эл.ДолгСПениВсего,
1));//В млн. руб., точность 1
стТемп.Вставить("Оплата",
Окр(Эл.СуммаЕИРЦ_Задание1483, 1));//В млн. руб., точность
1
стТемп.Вставить("Конверсия",
Окр(Эл.Конверсия, 0));
мВых.Добавить(стТемп);
КонецЦикла;
стВых = Новый Структура;
стВых.Вставить("ПорядокУК", мПорядокУК);
стВых.Вставить("ДанныеДляСлайда", мВых);
Возврат стВых;
КонецФункции
|