#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область СлужебныеПроцедурыИФункции
#Область ФормированиеПакетаЗапросов
Функция ВыполнитьПакетЗапросов(СоответствиеЗапросыДанные,ДеревоНаборовДанных,ПараметрыФормирования,СтруктураПериодовФормированияОтчета)
Запрос = Новый Запрос;
НомерПоследнегоПакета = - 1;
Запрос.Текст = Запрос.Текст + ТекстЗапросаОМенеджерах(НомерПоследнегоПакета,Запрос);
Запрос.Текст = Запрос.Текст + ТекстЗапросаОСредневзвешенныхКурсахВалют(НомерПоследнегоПакета, СтруктураПериодовФормированияОтчета);
Для каждого ГруппаДанных Из ДеревоНаборовДанных.Строки Цикл
Для каждого НаборДанных Из ГруппаДанных.Строки Цикл
Если НаборДанных.Включать = 1 Тогда
Если НаборДанных["Имя"] = "Продажи" Тогда
Запрос.Текст = Запрос.Текст + ТекстЗапросаОПродажах(СоответствиеЗапросыДанные,НомерПоследнегоПакета,СтруктураПериодовФормированияОтчета);
ИначеЕсли НаборДанных["Имя"] = "Прибыль" Тогда
Запрос.Текст = Запрос.Текст + ТекстЗапросаОПрибыли(СоответствиеЗапросыДанные,НомерПоследнегоПакета,СтруктураПериодовФормированияОтчета);
ИначеЕсли НаборДанных["Имя"] = "ПоступлениеДС" Тогда
Запрос.Текст = Запрос.Текст + ТекстЗапросаОПоступленииДС(СоответствиеЗапросыДанные,НомерПоследнегоПакета,СтруктураПериодовФормированияОтчета);
ИначеЕсли НаборДанных["Имя"] = "ПоступлениеДС_МинусСебестоимость" Тогда
Запрос.Текст = Запрос.Текст + ТекстЗапросаОПоступленииДС_МинусСебестоимость(СоответствиеЗапросыДанные,НомерПоследнегоПакета,СтруктураПериодовФормированияОтчета);
ИначеЕсли НаборДанных["Имя"] = "ПотериПросроченнаяДебиторка" Тогда
ДополнительныеДействияДляНабораПотериПросроченнаяДебиторка(Запрос, СтруктураПериодовФормированияОтчета);
Запрос.Текст = Запрос.Текст + ТекстЗапросаОПотеряхВРезультатеПросроченнойДебиторки(СоответствиеЗапросыДанные,НомерПоследнегоПакета,СтруктураПериодовФормированияОтчета);
ИначеЕсли НаборДанных["Имя"] = "ПредоставленныеРучныеСкидки" Тогда
Запрос.Текст = Запрос.Текст + ТекстЗапросаОПредоставленныхРучныхСкидках(СоответствиеЗапросыДанные,НомерПоследнегоПакета,СтруктураПериодовФормированияОтчета);
ИначеЕсли НаборДанных["Имя"] = "ЭффективностьВеденияСделок" Тогда
Запрос.Текст = Запрос.Текст + ТекстЗапросаОЭффективностиВеденияСделок(СоответствиеЗапросыДанные,НомерПоследнегоПакета,СтруктураПериодовФормированияОтчета);
ИначеЕсли НаборДанных["Имя"] = "ЭффективностьВзаимодействий" Тогда
Запрос.Текст = Запрос.Текст + ТекстЗапросаОЭффективностиВзаимодействий(СоответствиеЗапросыДанные,НомерПоследнегоПакета,СтруктураПериодовФормированияОтчета);
ИначеЕсли НаборДанных["Имя"] = "ПродажиНаОднуСделку" Тогда
Запрос.Текст = Запрос.Текст + ТекстЗапросаОПродажахНаОднуСделку(СоответствиеЗапросыДанные,НомерПоследнегоПакета,СтруктураПериодовФормированияОтчета);
ИначеЕсли НаборДанных["Имя"] = "ПродажиНаОдноВзаимодействие" Тогда
Запрос.Текст = Запрос.Текст + ТекстЗапросаОПродажахНаОдноВзаимодействие(СоответствиеЗапросыДанные,НомерПоследнегоПакета,СтруктураПериодовФормированияОтчета);
ИначеЕсли НаборДанных["Имя"] = "ОсновныеЭтапыПотерь" Тогда
Запрос.Текст = Запрос.Текст + ТекстЗапросаООсновныхЭтапахПотерь(СоответствиеЗапросыДанные,НомерПоследнегоПакета,СтруктураПериодовФормированияОтчета);
ИначеЕсли НаборДанных["Имя"] = "ПричиныПроигрышаСделок" Тогда
Запрос.Текст = Запрос.Текст + ТекстЗапросаОПричинахПроигрышаСделок(СоответствиеЗапросыДанные,НомерПоследнегоПакета,СтруктураПериодовФормированияОтчета);
ИначеЕсли НаборДанных["Имя"] = "НеудовлетворениеПервичногоСпроса" Тогда
Запрос.Текст = Запрос.Текст + ТекстЗапросаОПричинахНеудовлетворенияПервичногоСпроса(СоответствиеЗапросыДанные,НомерПоследнегоПакета,СтруктураПериодовФормированияОтчета);
ИначеЕсли НаборДанных["Имя"] = "ДинамикаКлиентскойБазы" Тогда
Запрос.Текст = Запрос.Текст + ТекстЗапросаДинамикаКлиентскойБазы(СоответствиеЗапросыДанные,НомерПоследнегоПакета,СтруктураПериодовФормированияОтчета);
ИначеЕсли НаборДанных["Имя"] = "ПродажиНовымКлиентам" Тогда
Запрос.Текст = Запрос.Текст + ТекстЗапросаПродажиНовымКлиентам(СоответствиеЗапросыДанные,НомерПоследнегоПакета,СтруктураПериодовФормированияОтчета);
ИначеЕсли НаборДанных["Имя"] = "ВозникшиеПретензииКлиентов" Тогда
Запрос.Текст = Запрос.Текст + ТекстЗапросаОВозникшихПретензияхКлиентов(СоответствиеЗапросыДанные,НомерПоследнегоПакета,СтруктураПериодовФормированияОтчета);
ИначеЕсли НаборДанных["Имя"] = "ПричиныВозникновенияПретензий" Тогда
Запрос.Текст = Запрос.Текст + ТекстЗапросаОПричинахВозникновенияПретензийКлиентов(СоответствиеЗапросыДанные,НомерПоследнегоПакета,СтруктураПериодовФормированияОтчета);
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецЦикла;
Запрос.УстановитьПараметр("НачалоПериода",НачалоДня(СтруктураПериодовФормированияОтчета.ДатаНачала));
Запрос.УстановитьПараметр("ОкончаниеПериода",КонецДня(СтруктураПериодовФормированияОтчета.ДатаОкончания));
Запрос.УстановитьПараметр("ДатаНачалаДополнительныйПериод",НачалоДня(СтруктураПериодовФормированияОтчета.ДатаНачалаДополнительныйПериод));
Запрос.УстановитьПараметр("ДатаОкончанияДополнительныйПериод",КонецДня(СтруктураПериодовФормированияОтчета.ДатаОкончанияДополнительныйПериод));
Запрос.УстановитьПараметр("ВидДвиженияРасход",ВидДвиженияНакопления.Расход);
Запрос.УстановитьПараметр("ПроцентнаяСтавкаСтоимостиДенег",ПараметрыФормирования.ПроцентнаяСтавка);
Запрос.УстановитьПараметр("ВалютаУправленческогоУчета", Константы.ВалютаУправленческогоУчета.Получить());
Запрос.УстановитьПараметр("НеУказан", НСтр("ru = 'Не указан'"));
Запрос.УстановитьПараметр("БазоваяВалюта", ЗначениеНастроекПовтИсп.БазоваяВалютаПоУмолчанию());
Возврат Запрос.ВыполнитьПакет();
КонецФункции
Функция ТекстЗапросаОМенеджерах(НомерПоследнегоПакета,Запрос)
НомерПоследнегоПакета = НомерПоследнегоПакета + 1;
СхемаДляОтбораПользователей = Отчеты.СравнительныйАнализПоказателейРаботыМенеджеров.ПолучитьМакет("СхемаДляОтбораПользователей");
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных();
МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(СхемаДляОтбораПользователей, КомпоновщикНастроек.ПолучитьНастройки(),,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
ТекстЗапроса = МакетКомпоновкиДанных.НаборыДанных.ОсновнойНаборДанных.Запрос;
Для каждого Параметр Из МакетКомпоновкиДанных.ЗначенияПараметров Цикл
Запрос.Параметры.Вставить(Параметр.Имя, Параметр.Значение);
КонецЦикла;
НайденнаяПозицияИЗ = СтрНайти(ТекстЗапроса,"ИЗ");
Если НайденнаяПозицияИЗ <> 0 Тогда
ТекстЗапроса = Лев(ТекстЗапроса,НайденнаяПозицияИЗ - 1) + " ПОМЕСТИТЬ ОтборПоМенеджерам
| " + Прав(ТекстЗапроса,СтрДлина(ТекстЗапроса) - НайденнаяПозицияИЗ + 1);
КонецЕсли;
НомерПоследнегоПакета = НомерПоследнегоПакета + 1;
ТекстЗапроса = ТекстЗапроса + ОбщегоНазначения.РазделительПакетаЗапросов();
ТекстЗапроса = ТекстЗапроса + "
|ВЫБРАТЬ
| ОбъектыРасчетов.Ссылка КАК ОбъектРасчетов
|ПОМЕСТИТЬ ОбъектыРасчетовМенеджеров
|ИЗ
| Справочник.ОбъектыРасчетов КАК ОбъектыРасчетов
|ГДЕ
| ОбъектыРасчетов.Менеджер В (ВЫБРАТЬ Менеджер ИЗ ОтборПоМенеджерам)
| И НЕ ОбъектыРасчетов.ПометкаУдаления
|;
|
|
|";
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаОСредневзвешенныхКурсахВалют(НомерПоследнегоПакета, СтруктураПериодовФормированияОтчета)
НомерПоследнегоПакета = НомерПоследнегоПакета + 3;
ТекстЗапроса = "ВЫБРАТЬ ПЕРВЫЕ 1
| ВложенныйЗапрос.ОсновнойКалендарьПредприятия,
| ВложенныйЗапрос.ПолеУпорядочивания КАК ПолеУпорядочивания
|ПОМЕСТИТЬ Календарь
|ИЗ
| (ВЫБРАТЬ ПЕРВЫЕ 1
| Константы.ОсновнойКалендарьПредприятия КАК ОсновнойКалендарьПредприятия,
| 0 КАК ПолеУпорядочивания
| ИЗ
| Константы КАК Константы
|
| ОБЪЕДИНИТЬ
|
| ВЫБРАТЬ
| КалендарныеГрафики.Календарь,
| 1
| ИЗ
| РегистрСведений.КалендарныеГрафики КАК КалендарныеГрафики
| ГДЕ
| КалендарныеГрафики.ДатаГрафика МЕЖДУ &НачалоПериода И &ОкончаниеПериода) КАК ВложенныйЗапрос
|ГДЕ
| ВложенныйЗапрос.ОсновнойКалендарьПредприятия <> ЗНАЧЕНИЕ(Справочник.Календари.ПустаяСсылка)
|
|УПОРЯДОЧИТЬ ПО
| ПолеУпорядочивания
|;
|
|
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| КалендарныеГрафики.ДатаГрафика КАК ДатаГрафика,
| КурсыВалют.Валюта,
| МАКСИМУМ(КурсыВалют.Период) КАК Период
|ПОМЕСТИТЬ СоответствиеДатКурсов
|ИЗ
| РегистрСведений.КалендарныеГрафики КАК КалендарныеГрафики
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ОтносительныеКурсыВалют КАК КурсыВалют
| ПО КалендарныеГрафики.ДатаГрафика > КурсыВалют.Период
| И КурсыВалют.БазоваяВалюта = &БазоваяВалюта
|ГДЕ
| КалендарныеГрафики.ДатаГрафика МЕЖДУ &НачалоПериода И &ОкончаниеПериода
| И КалендарныеГрафики.Календарь В
| (ВЫБРАТЬ
| Календарь.ОсновнойКалендарьПредприятия
| ИЗ
| Календарь КАК Календарь)
|
|СГРУППИРОВАТЬ ПО
| КурсыВалют.Валюта,
| КалендарныеГрафики.ДатаГрафика
|;
|
|
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ВложенныйЗапрос.Валюта,
| ВЫБОР
| КОГДА РАЗНОСТЬДАТ(&НачалоПериода, &ОкончаниеПериода, ДЕНЬ) + 1 = 0
| ТОГДА 0
| ИНАЧЕ ВложенныйЗапрос.Курс / (РАЗНОСТЬДАТ(&НачалоПериода, &ОкончаниеПериода, ДЕНЬ) + 1)
| КОНЕЦ КАК СредневзвешенныйКурс
|ПОМЕСТИТЬ СреднеВзвешенныеКурсыВалютЗаТекущийПериод
|ИЗ
| (ВЫБРАТЬ
| СоответствиеДатКурсов.Валюта КАК Валюта,
| СУММА(ВЫБОР
| КОГДА КурсыВалют.КурсЗнаменатель = 0
| ТОГДА 0
| ИНАЧЕ КурсыВалют.КурсЧислитель / КурсыВалют.КурсЗнаменатель
| КОНЕЦ) КАК Курс
| ИЗ
| РегистрСведений.ОтносительныеКурсыВалют КАК КурсыВалют
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ СоответствиеДатКурсов КАК СоответствиеДатКурсов
| ПО КурсыВалют.Период = СоответствиеДатКурсов.Период
| И КурсыВалют.Валюта = СоответствиеДатКурсов.Валюта
| И КурсыВалют.БазоваяВалюта = &БазоваяВалюта
|
| СГРУППИРОВАТЬ ПО
| СоответствиеДатКурсов.Валюта) КАК ВложенныйЗапрос
|;
|
|
|";
Если СтруктураПериодовФормированияОтчета.ЕстьДополнительныйПериод Тогда
НомерПоследнегоПакета = НомерПоследнегоПакета + 2;
ТекстЗапроса = ТекстЗапроса + "
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| КалендарныеГрафики.ДатаГрафика КАК ДатаГрафика,
| КурсыВалют.Валюта,
| МАКСИМУМ(КурсыВалют.Период) КАК Период
|ПОМЕСТИТЬ СоответствиеДатКурсовДополнительныйПериод
|ИЗ
| РегистрСведений.КалендарныеГрафики КАК КалендарныеГрафики
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ОтносительныеКурсыВалют КАК КурсыВалют
| ПО КалендарныеГрафики.ДатаГрафика > КурсыВалют.Период
| И КурсыВалют.БазоваяВалюта = &БазоваяВалюта
|ГДЕ
| КалендарныеГрафики.ДатаГрафика МЕЖДУ &ДатаНачалаДополнительныйПериод И &ДатаОкончанияДополнительныйПериод
| И КалендарныеГрафики.Календарь В
| (ВЫБРАТЬ
| Календарь.ОсновнойКалендарьПредприятия
| ИЗ
| Календарь КАК Календарь)
|
|СГРУППИРОВАТЬ ПО
| КурсыВалют.Валюта,
| КалендарныеГрафики.ДатаГрафика
|;
|
|
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ВложенныйЗапрос.Валюта,
| ВЫБОР
| КОГДА РАЗНОСТЬДАТ(&НачалоПериода, &ОкончаниеПериода, ДЕНЬ) + 1 = 0
| ТОГДА 0
| ИНАЧЕ ВложенныйЗапрос.Курс / (РАЗНОСТЬДАТ(&ДатаНачалаДополнительныйПериод, &ДатаОкончанияДополнительныйПериод, ДЕНЬ) + 1)
| КОНЕЦ КАК СредневзвешенныйКурс
|ПОМЕСТИТЬ СреднеВзвешенныеКурсыВалютЗаДополнительныйПериод
|ИЗ
| (ВЫБРАТЬ
| СоответствиеДатКурсов.Валюта КАК Валюта,
| СУММА(ВЫБОР
| КОГДА КурсыВалют.КурсЗнаменатель = 0
| ТОГДА 0
| ИНАЧЕ КурсыВалют.КурсЧислитель / КурсыВалют.КурсЗнаменатель
| КОНЕЦ) КАК Курс
| ИЗ
| РегистрСведений.ОтносительныеКурсыВалют КАК КурсыВалют
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ СоответствиеДатКурсовДополнительныйПериод КАК СоответствиеДатКурсов
| ПО КурсыВалют.Период = СоответствиеДатКурсов.Период
| И КурсыВалют.Валюта = СоответствиеДатКурсов.Валюта
| И КурсыВалют.БазоваяВалюта = &БазоваяВалюта
|
| СГРУППИРОВАТЬ ПО
| СоответствиеДатКурсов.Валюта) КАК ВложенныйЗапрос
|;
|
|
|";
КонецЕсли;
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаОПрибыли(СоответствиеЗапросыДанные,НомерПоследнегоПакета,СтруктураПериодовФормированияОтчета)
Если СтруктураПериодовФормированияОтчета.ЕстьДополнительныйПериод Тогда
СоответствиеЗапросыДанные.Вставить("Прибыль",НомерПоследнегоПакета + 3);
НомерПоследнегоПакета = НомерПоследнегоПакета + 3;
Возврат "ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ВыручкаИСебестоимостьПродажОбороты.ЗаказКлиента.Менеджер КАК Менеджер,
| СУММА(ВыручкаИСебестоимостьПродажОбороты.СуммаВыручкиОборот - ВыручкаИСебестоимостьПродажОбороты.СтоимостьОборот) КАК Прибыль
|ПОМЕСТИТЬ ТекущийПериодПрибыль
|ИЗ
| РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(&НачалоПериода, &ОкончаниеПериода, , АналитикаУчетаПоПартнерам.Партнер <> ЗНАЧЕНИЕ(Справочник.Партнеры.РозничныйПокупатель) И ЗаказКлиента.Менеджер В (ВЫБРАТЬ ОтборПоМенеджерам.Ссылка ИЗ ОтборПоМенеджерам КАК ОтборПоМенеджерам)) КАК ВыручкаИСебестоимостьПродажОбороты
|
|СГРУППИРОВАТЬ ПО
| ВыручкаИСебестоимостьПродажОбороты.ЗаказКлиента.Менеджер
|;
|
|
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ВыручкаИСебестоимостьПродажОбороты.ЗаказКлиента.Менеджер КАК Менеджер,
| СУММА(ВыручкаИСебестоимостьПродажОбороты.СуммаВыручкиОборот - ВыручкаИСебестоимостьПродажОбороты.СтоимостьОборот) КАК Прибыль
|ПОМЕСТИТЬ ПредыдущийПериодПрибыль
|ИЗ
| РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(&ДатаНачалаДополнительныйПериод, &ДатаОкончанияДополнительныйПериод, , АналитикаУчетаПоПартнерам.Партнер <> ЗНАЧЕНИЕ(Справочник.Партнеры.РозничныйПокупатель) И ЗаказКлиента.Менеджер В (ВЫБРАТЬ ОтборПоМенеджерам.Ссылка ИЗ ОтборПоМенеджерам КАК ОтборПоМенеджерам)) КАК ВыручкаИСебестоимостьПродажОбороты
|
|СГРУППИРОВАТЬ ПО
| ВыручкаИСебестоимостьПродажОбороты.ЗаказКлиента.Менеджер
|;
|
|
|ВЫБРАТЬ
| ЕСТЬNULL(ВложенныйЗапрос.Менеджер, &НеУказан) КАК Менеджер,
| ВложенныйЗапрос.Текущий,
| ВложенныйЗапрос.Предыдущий,
| ВЫБОР
| КОГДА ВложенныйЗапрос.Текущий - ВложенныйЗапрос.Предыдущий > 0
| ТОГДА ВложенныйЗапрос.Текущий - ВложенныйЗапрос.Предыдущий
| ИНАЧЕ 0
| КОНЕЦ КАК Прирост,
| ВЫБОР
| КОГДА ВложенныйЗапрос.Текущий - ВложенныйЗапрос.Предыдущий < 0
| ТОГДА ВложенныйЗапрос.Текущий - ВложенныйЗапрос.Предыдущий
| ИНАЧЕ 0
| КОНЕЦ КАК Спад
|ИЗ
| (ВЫБРАТЬ
| ВЫБОР
| КОГДА ПредыдущийПериод.Менеджер ЕСТЬ NULL
| ТОГДА ТекущийПериод.Менеджер
| ИНАЧЕ ПредыдущийПериод.Менеджер
| КОНЕЦ КАК Менеджер,
| СУММА(ЕСТЬNULL(ПредыдущийПериод.Прибыль, 0)) КАК Предыдущий,
| СУММА(ЕСТЬNULL(ТекущийПериод.Прибыль, 0)) КАК Текущий
| ИЗ
| ПредыдущийПериодПрибыль КАК ПредыдущийПериод
| ПОЛНОЕ СОЕДИНЕНИЕ ТекущийПериодПрибыль КАК ТекущийПериод
| ПО ПредыдущийПериод.Менеджер = ТекущийПериод.Менеджер
|
| СГРУППИРОВАТЬ ПО
| ВЫБОР
| КОГДА ПредыдущийПериод.Менеджер ЕСТЬ NULL
| ТОГДА ТекущийПериод.Менеджер
| ИНАЧЕ ПредыдущийПериод.Менеджер
| КОНЕЦ) КАК ВложенныйЗапрос
|
|УПОРЯДОЧИТЬ ПО
| ВложенныйЗапрос.Текущий
|;
|
|
|";
Иначе
СоответствиеЗапросыДанные.Вставить("Прибыль",НомерПоследнегоПакета + 1);
НомерПоследнегоПакета = НомерПоследнегоПакета + 1;
Возврат "ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ВЫБОР
| КОГДА ВыручкаИСебестоимостьПродажОбороты.ЗаказКлиента.Менеджер ЕСТЬ NULL
| ТОГДА &НеУказан
| ИНАЧЕ ПРЕДСТАВЛЕНИЕ(ВыручкаИСебестоимостьПродажОбороты.ЗаказКлиента.Менеджер)
| КОНЕЦ КАК Менеджер,
| СУММА(ВыручкаИСебестоимостьПродажОбороты.СуммаВыручкиОборот - ВыручкаИСебестоимостьПродажОбороты.СтоимостьОборот) КАК Прибыль
|ИЗ
| РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(&НачалоПериода, &ОкончаниеПериода, , АналитикаУчетаПоПартнерам.Партнер <> ЗНАЧЕНИЕ(Справочник.Партнеры.РозничныйПокупатель) И ЗаказКлиента.Менеджер В (ВЫБРАТЬ ОтборПоМенеджерам.Ссылка ИЗ ОтборПоМенеджерам КАК ОтборПоМенеджерам)) КАК ВыручкаИСебестоимостьПродажОбороты
|
|СГРУППИРОВАТЬ ПО
| ВЫБОР
| КОГДА ВыручкаИСебестоимостьПродажОбороты.ЗаказКлиента.Менеджер ЕСТЬ NULL
| ТОГДА &НеУказан
| ИНАЧЕ ПРЕДСТАВЛЕНИЕ(ВыручкаИСебестоимостьПродажОбороты.ЗаказКлиента.Менеджер)
| КОНЕЦ
|
|УПОРЯДОЧИТЬ ПО
| Прибыль
|;
|
|
|";
КонецЕсли;
КонецФункции
Функция ТекстЗапросаОПродажах(СоответствиеЗапросыДанные,НомерПоследнегоПакета, СтруктураПериодовФормированияОтчета)
Если СтруктураПериодовФормированияОтчета.ЕстьДополнительныйПериод Тогда
СоответствиеЗапросыДанные.Вставить("Продажи",НомерПоследнегоПакета + 3);
НомерПоследнегоПакета = НомерПоследнегоПакета + 3;
Возврат "ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ВыручкаИСебестоимостьПродажОбороты.ЗаказКлиента.Менеджер КАК Менеджер,
| СУММА(ВыручкаИСебестоимостьПродажОбороты.СуммаВыручкиОборот) КАК Продажи
|ПОМЕСТИТЬ ТекущийПериодПродажи
|ИЗ
| РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(&НачалоПериода, &ОкончаниеПериода, , АналитикаУчетаПоПартнерам.Партнер <> ЗНАЧЕНИЕ(Справочник.Партнеры.РозничныйПокупатель) И ЗаказКлиента.Менеджер В (ВЫБРАТЬ ОтборПоМенеджерам.Ссылка ИЗ ОтборПоМенеджерам КАК ОтборПоМенеджерам)) КАК ВыручкаИСебестоимостьПродажОбороты
|
|СГРУППИРОВАТЬ ПО
| ВыручкаИСебестоимостьПродажОбороты.ЗаказКлиента.Менеджер
|;
|
|
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ВыручкаИСебестоимостьПродажОбороты.ЗаказКлиента.Менеджер КАК Менеджер,
| СУММА(ВыручкаИСебестоимостьПродажОбороты.СуммаВыручкиОборот) КАК Продажи
|ПОМЕСТИТЬ ПредыдущийПериодПродажи
|ИЗ
| РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(&ДатаНачалаДополнительныйПериод, &ДатаОкончанияДополнительныйПериод, , АналитикаУчетаПоПартнерам.Партнер <> ЗНАЧЕНИЕ(Справочник.Партнеры.РозничныйПокупатель) И ЗаказКлиента.Менеджер В (ВЫБРАТЬ ОтборПоМенеджерам.Ссылка ИЗ ОтборПоМенеджерам КАК ОтборПоМенеджерам)) КАК ВыручкаИСебестоимостьПродажОбороты
|
|СГРУППИРОВАТЬ ПО
| ВыручкаИСебестоимостьПродажОбороты.ЗаказКлиента.Менеджер
|;
|
|
|ВЫБРАТЬ
| ЕСТЬNULL(ВложенныйЗапрос.Менеджер, &НеУказан) КАК Менеджер,
| ВложенныйЗапрос.Текущий,
| ВложенныйЗапрос.Предыдущий,
| ВЫБОР
| КОГДА ВложенныйЗапрос.Текущий - ВложенныйЗапрос.Предыдущий > 0
| ТОГДА ВложенныйЗапрос.Текущий - ВложенныйЗапрос.Предыдущий
| ИНАЧЕ 0
| КОНЕЦ КАК Прирост,
| ВЫБОР
| КОГДА ВложенныйЗапрос.Текущий - ВложенныйЗапрос.Предыдущий < 0
| ТОГДА ВложенныйЗапрос.Текущий - ВложенныйЗапрос.Предыдущий
| ИНАЧЕ 0
| КОНЕЦ КАК Спад
|ИЗ
| (ВЫБРАТЬ
| ВЫБОР
| КОГДА ПредыдущийПериод.Менеджер ЕСТЬ NULL
| ТОГДА ТекущийПериод.Менеджер
| ИНАЧЕ ПредыдущийПериод.Менеджер
| КОНЕЦ КАК Менеджер,
| СУММА(ЕСТЬNULL(ПредыдущийПериод.Продажи, 0)) КАК Предыдущий,
| СУММА(ЕСТЬNULL(ТекущийПериод.Продажи, 0)) КАК Текущий
| ИЗ
| ПредыдущийПериодПродажи КАК ПредыдущийПериод
| ПОЛНОЕ СОЕДИНЕНИЕ ТекущийПериодПродажи КАК ТекущийПериод
| ПО ПредыдущийПериод.Менеджер = ТекущийПериод.Менеджер
|
| СГРУППИРОВАТЬ ПО
| ВЫБОР
| КОГДА ПредыдущийПериод.Менеджер ЕСТЬ NULL
| ТОГДА ТекущийПериод.Менеджер
| ИНАЧЕ ПредыдущийПериод.Менеджер
| КОНЕЦ) КАК ВложенныйЗапрос
|
|УПОРЯДОЧИТЬ ПО
| ВложенныйЗапрос.Текущий
|;
|
|
|";
Иначе
СоответствиеЗапросыДанные.Вставить("Продажи",НомерПоследнегоПакета + 1);
НомерПоследнегоПакета = НомерПоследнегоПакета + 1;
Возврат "ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ВЫБОР
| КОГДА ВыручкаИСебестоимостьПродажОбороты.ЗаказКлиента.Менеджер ЕСТЬ NULL
| ТОГДА &НеУказан
| ИНАЧЕ ПРЕДСТАВЛЕНИЕ(ВыручкаИСебестоимостьПродажОбороты.ЗаказКлиента.Менеджер)
| КОНЕЦ КАК Менеджер,
| СУММА(ВыручкаИСебестоимостьПродажОбороты.СуммаВыручкиОборот) КАК Продажи
|ИЗ
| РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(&НачалоПериода, &ОкончаниеПериода, , АналитикаУчетаПоПартнерам.Партнер <> ЗНАЧЕНИЕ(Справочник.Партнеры.РозничныйПокупатель) И ЗаказКлиента.Менеджер В (ВЫБРАТЬ ОтборПоМенеджерам.Ссылка ИЗ ОтборПоМенеджерам КАК ОтборПоМенеджерам)) КАК ВыручкаИСебестоимостьПродажОбороты
|
|СГРУППИРОВАТЬ ПО
| ВЫБОР
| КОГДА ВыручкаИСебестоимостьПродажОбороты.ЗаказКлиента.Менеджер ЕСТЬ NULL
| ТОГДА &НеУказан
| ИНАЧЕ ПРЕДСТАВЛЕНИЕ(ВыручкаИСебестоимостьПродажОбороты.ЗаказКлиента.Менеджер)
| КОНЕЦ
|
|УПОРЯДОЧИТЬ ПО
| Продажи
|;
|
|
|";
КонецЕсли;
КонецФункции
Функция ТекстЗапросаОПоступленииДС(СоответствиеЗапросыДанные,НомерПоследнегоПакета, СтруктураПериодовФормированияОтчета)
Если ПолучитьФункциональнуюОпцию("НоваяАрхитектураВзаиморасчетов") Тогда
Если СтруктураПериодовФормированияОтчета.ЕстьДополнительныйПериод Тогда
НомерПоследнегоПакета = НомерПоследнегоПакета + 3;
СоответствиеЗапросыДанные.Вставить("ПоступлениеДС",НомерПоследнегоПакета);
Возврат "
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| РасчетыСКлиентамиПоСрокам.ОбъектРасчетов.Менеджер КАК Менеджер,
| СУММА(РасчетыСКлиентамиПоСрокам.ПредоплатаУпр + РасчетыСКлиентамиПоСрокам.ДолгУпр) КАК Показатель
|ПОМЕСТИТЬ ТекущийПериодПоступлениеДС
|ИЗ РегистрНакопления.РасчетыСКлиентамиПоСрокам КАК РасчетыСКлиентамиПоСрокам
|ГДЕ
| (РасчетыСКлиентамиПоСрокам.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
| И РасчетыСКлиентамиПоСрокам.ДолгУпр > 0
| ИЛИ РасчетыСКлиентамиПоСрокам.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
| И РасчетыСКлиентамиПоСрокам.ПредоплатаУпр > 0)
| И РасчетыСКлиентамиПоСрокам.ОбъектРасчетов В (ВЫБРАТЬ ОбъектРасчетов ИЗ ОбъектыРасчетовМенеджеров)
| И (РасчетыСКлиентамиПоСрокам.ДокументРегистратор ССЫЛКА Документ.РасходныйКассовыйОрдер
| ИЛИ РасчетыСКлиентамиПоСрокам.ДокументРегистратор ССЫЛКА Документ.ОперацияПоПлатежнойКарте
| ИЛИ РасчетыСКлиентамиПоСрокам.ДокументРегистратор ССЫЛКА Документ.ПоступлениеБезналичныхДенежныхСредств
| ИЛИ РасчетыСКлиентамиПоСрокам.ДокументРегистратор ССЫЛКА Документ.ПриходныйКассовыйОрдер
| ИЛИ РасчетыСКлиентамиПоСрокам.ДокументРегистратор ССЫЛКА Документ.ОперацияПоЯндексКассе
| ИЛИ РасчетыСКлиентамиПоСрокам.ДокументРегистратор ССЫЛКА Документ.СписаниеБезналичныхДенежныхСредств
| ИЛИ РасчетыСКлиентамиПоСрокам.ДокументРегистратор ССЫЛКА Документ.КорректировкаЗадолженности)
| И РасчетыСКлиентамиПоСрокам.Период МЕЖДУ &НачалоПериода И &ОкончаниеПериода
| И РасчетыСКлиентамиПоСрокам.ОбъектРасчетов.Партнер <> ЗНАЧЕНИЕ(Справочник.Партнеры.РозничныйПокупатель)
| И РасчетыСКлиентамиПоСрокам.Активность
|
|СГРУППИРОВАТЬ ПО
| РасчетыСКлиентамиПоСрокам.ОбъектРасчетов.Менеджер
|
|;
|
|
|
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| РасчетыСКлиентамиПоСрокам.ОбъектРасчетов.Менеджер КАК Менеджер,
| СУММА(РасчетыСКлиентамиПоСрокам.ПредоплатаУпр + РасчетыСКлиентамиПоСрокам.ДолгУпр) КАК Показатель
|ПОМЕСТИТЬ ПредыдущийПериодПоступлениеДС
|ИЗ
| РегистрНакопления.РасчетыСКлиентамиПоСрокам КАК РасчетыСКлиентамиПоСрокам
|ГДЕ
| (РасчетыСКлиентамиПоСрокам.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
| И РасчетыСКлиентамиПоСрокам.ДолгУпр > 0
| ИЛИ РасчетыСКлиентамиПоСрокам.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
| И РасчетыСКлиентамиПоСрокам.ПредоплатаУпр > 0)
| И РасчетыСКлиентамиПоСрокам.ОбъектРасчетов В (ВЫБРАТЬ ОбъектРасчетов ИЗ ОбъектыРасчетовМенеджеров)
| И (РасчетыСКлиентамиПоСрокам.ДокументРегистратор ССЫЛКА Документ.РасходныйКассовыйОрдер
| ИЛИ РасчетыСКлиентамиПоСрокам.ДокументРегистратор ССЫЛКА Документ.ОперацияПоПлатежнойКарте
| ИЛИ РасчетыСКлиентамиПоСрокам.ДокументРегистратор ССЫЛКА Документ.ПоступлениеБезналичныхДенежныхСредств
| ИЛИ РасчетыСКлиентамиПоСрокам.ДокументРегистратор ССЫЛКА Документ.ПриходныйКассовыйОрдер
| ИЛИ РасчетыСКлиентамиПоСрокам.ДокументРегистратор ССЫЛКА Документ.ОперацияПоЯндексКассе
| ИЛИ РасчетыСКлиентамиПоСрокам.ДокументРегистратор ССЫЛКА Документ.СписаниеБезналичныхДенежныхСредств
| ИЛИ РасчетыСКлиентамиПоСрокам.ДокументРегистратор ССЫЛКА Документ.КорректировкаЗадолженности)
| И РасчетыСКлиентамиПоСрокам.Период МЕЖДУ &ДатаНачалаДополнительныйПериод И &ДатаОкончанияДополнительныйПериод
| И РасчетыСКлиентамиПоСрокам.ОбъектРасчетов.Партнер <> ЗНАЧЕНИЕ(Справочник.Партнеры.РозничныйПокупатель)
| И РасчетыСКлиентамиПоСрокам.Активность
|
|СГРУППИРОВАТЬ ПО
| РасчетыСКлиентамиПоСрокам.ОбъектРасчетов.Менеджер
|
|;
|
|
|ВЫБРАТЬ
| ЕСТЬNULL(ВложенныйЗапрос.Менеджер, &НеУказан) КАК Менеджер,
| ВложенныйЗапрос.Текущий,
| ВложенныйЗапрос.Предыдущий,
| ВЫБОР
| КОГДА ВложенныйЗапрос.Текущий - ВложенныйЗапрос.Предыдущий > 0
| ТОГДА ВложенныйЗапрос.Текущий - ВложенныйЗапрос.Предыдущий
| ИНАЧЕ 0
| КОНЕЦ КАК Прирост,
| ВЫБОР
| КОГДА ВложенныйЗапрос.Текущий - ВложенныйЗапрос.Предыдущий < 0
| ТОГДА ВложенныйЗапрос.Текущий - ВложенныйЗапрос.Предыдущий
| ИНАЧЕ 0
| КОНЕЦ КАК Спад
|ИЗ
| (ВЫБРАТЬ
| ВЫБОР
| КОГДА ПредыдущийПериод.Менеджер ЕСТЬ NULL
| ТОГДА ТекущийПериод.Менеджер
| ИНАЧЕ ПредыдущийПериод.Менеджер
| КОНЕЦ КАК Менеджер,
| СУММА(ЕСТЬNULL(ПредыдущийПериод.Показатель, 0)) КАК Предыдущий,
| СУММА(ЕСТЬNULL(ТекущийПериод.Показатель, 0)) КАК Текущий
| ИЗ
| ПредыдущийПериодПоступлениеДС КАК ПредыдущийПериод
| ПОЛНОЕ СОЕДИНЕНИЕ ТекущийПериодПоступлениеДС КАК ТекущийПериод
| ПО ПредыдущийПериод.Менеджер = ТекущийПериод.Менеджер
|
| СГРУППИРОВАТЬ ПО
| ВЫБОР
| КОГДА ПредыдущийПериод.Менеджер ЕСТЬ NULL
| ТОГДА ТекущийПериод.Менеджер
| ИНАЧЕ ПредыдущийПериод.Менеджер
| КОНЕЦ) КАК ВложенныйЗапрос
|
|УПОРЯДОЧИТЬ ПО
| ВложенныйЗапрос.Текущий
|;
|
|
|";
Иначе
НомерПоследнегоПакета = НомерПоследнегоПакета + 1;
СоответствиеЗапросыДанные.Вставить("ПоступлениеДС",НомерПоследнегоПакета);
Возврат "
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| РасчетыСКлиентамиПоСрокам.ОбъектРасчетов.Менеджер КАК Менеджер,
| СУММА(РасчетыСКлиентамиПоСрокам.ПредоплатаУпр + РасчетыСКлиентамиПоСрокам.ДолгУпр) КАК ПоступлениеДС
|ИЗ
| РегистрНакопления.РасчетыСКлиентамиПоСрокам КАК РасчетыСКлиентамиПоСрокам
|ГДЕ
| (РасчетыСКлиентамиПоСрокам.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
| И РасчетыСКлиентамиПоСрокам.ДолгУпр > 0
| ИЛИ РасчетыСКлиентамиПоСрокам.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
| И РасчетыСКлиентамиПоСрокам.ПредоплатаУпр > 0)
| И РасчетыСКлиентамиПоСрокам.ОбъектРасчетов В (ВЫБРАТЬ ОбъектРасчетов ИЗ ОбъектыРасчетовМенеджеров)
| И (РасчетыСКлиентамиПоСрокам.ДокументРегистратор ССЫЛКА Документ.РасходныйКассовыйОрдер
| ИЛИ РасчетыСКлиентамиПоСрокам.ДокументРегистратор ССЫЛКА Документ.ОперацияПоПлатежнойКарте
| ИЛИ РасчетыСКлиентамиПоСрокам.ДокументРегистратор ССЫЛКА Документ.ПоступлениеБезналичныхДенежныхСредств
| ИЛИ РасчетыСКлиентамиПоСрокам.ДокументРегистратор ССЫЛКА Документ.ПриходныйКассовыйОрдер
| ИЛИ РасчетыСКлиентамиПоСрокам.ДокументРегистратор ССЫЛКА Документ.ОперацияПоЯндексКассе
| ИЛИ РасчетыСКлиентамиПоСрокам.ДокументРегистратор ССЫЛКА Документ.СписаниеБезналичныхДенежныхСредств
| ИЛИ РасчетыСКлиентамиПоСрокам.ДокументРегистратор ССЫЛКА Документ.КорректировкаЗадолженности)
| И РасчетыСКлиентамиПоСрокам.Период МЕЖДУ &НачалоПериода И &ОкончаниеПериода
| И РасчетыСКлиентамиПоСрокам.ОбъектРасчетов.Партнер <> ЗНАЧЕНИЕ(Справочник.Партнеры.РозничныйПокупатель)
| И РасчетыСКлиентамиПоСрокам.Активность
|
|СГРУППИРОВАТЬ ПО
| РасчетыСКлиентамиПоСрокам.ОбъектРасчетов.Менеджер
|УПОРЯДОЧИТЬ ПО
| ПоступлениеДС УБЫВ
|;
|
|
|";
КонецЕсли;
Иначе
Если СтруктураПериодовФормированияОтчета.ЕстьДополнительныйПериод Тогда
НомерПоследнегоПакета = НомерПоследнегоПакета + 5;
СоответствиеЗапросыДанные.Вставить("ПоступлениеДС",НомерПоследнегоПакета);
Возврат "
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ВложенныйЗапрос.Менеджер,
| ВложенныйЗапрос.Валюта,
| СУММА(ВложенныйЗапрос.ПоступлениеДС) КАК ПоступлениеДС
|ПОМЕСТИТЬ ТекущийПериодПоступлениеДСВалюты
|ИЗ
| (ВЫБРАТЬ
| РасчетыСКлиентамиПоДокументам.ЗаказКлиента.Менеджер КАК Менеджер,
| РасчетыСКлиентамиПоДокументам.Долг КАК ПоступлениеДС,
| РасчетыСКлиентамиПоДокументам.Валюта КАК Валюта
| ИЗ
| РегистрНакопления.РасчетыСКлиентамиПоДокументам КАК РасчетыСКлиентамиПоДокументам
| ГДЕ
| РасчетыСКлиентамиПоДокументам.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.РАСХОД)
| И РасчетыСКлиентамиПоДокументам.ЗаказКлиента.Менеджер В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)
| И РасчетыСКлиентамиПоДокументам.Долг <> 0
| И (РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.РасходныйКассовыйОрдер
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.ОперацияПоПлатежнойКарте
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.ПоступлениеБезналичныхДенежныхСредств
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.ПриходныйКассовыйОрдер
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.РасходныйКассовыйОрдер
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.СписаниеБезналичныхДенежныхСредств
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.КорректировкаЗадолженности)
| И РасчетыСКлиентамиПоДокументам.Период МЕЖДУ &НачалоПериода И &ОкончаниеПериода
| И РасчетыСКлиентамиПоДокументам.ЗаказКлиента.Партнер <> ЗНАЧЕНИЕ(Справочник.Партнеры.РозничныйПокупатель)
| И РасчетыСКлиентамиПоДокументам.Активность
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| РасчетыСКлиентамиПоДокументам.ЗаказКлиента.Менеджер,
| РасчетыСКлиентамиПоДокументам.Предоплата,
| РасчетыСКлиентамиПоДокументам.Валюта
| ИЗ
| РегистрНакопления.РасчетыСКлиентамиПоДокументам КАК РасчетыСКлиентамиПоДокументам
| ГДЕ
| РасчетыСКлиентамиПоДокументам.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
| И РасчетыСКлиентамиПоДокументам.Предоплата <> 0
| И РасчетыСКлиентамиПоДокументам.ЗаказКлиента.Менеджер В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)
| И (РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.АктВыполненныхРабот
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.ЗаказКлиента
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.КорректировкаРеализации
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.РеализацияУслугПрочихАктивов)
| И РасчетыСКлиентамиПоДокументам.Период МЕЖДУ &НачалоПериода И &ОкончаниеПериода
| И РасчетыСКлиентамиПоДокументам.ЗаказКлиента.Партнер <> ЗНАЧЕНИЕ(Справочник.Партнеры.РозничныйПокупатель)
| И РасчетыСКлиентамиПоДокументам.Активность
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ВложенныйЗапрос.ЗаказКлиентаМенеджер,
| СУММА(ВложенныйЗапрос.Предоплата),
| ВложенныйЗапрос.Валюта
| ИЗ
| (ВЫБРАТЬ
| СУММА(ВЫБОР
| КОГДА РасчетыСКлиентамиПоДокументам.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.РАСХОД)
| ТОГДА РасчетыСКлиентамиПоДокументам.Предоплата
| ИНАЧЕ -РасчетыСКлиентамиПоДокументам.Предоплата
| КОНЕЦ) КАК Предоплата,
| РасчетыСКлиентамиПоДокументам.ЗаказКлиента.Менеджер КАК ЗаказКлиентаМенеджер,
| РасчетыСКлиентамиПоДокументам.Валюта КАК Валюта,
| РасчетыСКлиентамиПоДокументам.РасчетныйДокумент КАК РасчетныйДокумент
| ИЗ
| РегистрНакопления.РасчетыСКлиентамиПоДокументам КАК РасчетыСКлиентамиПоДокументам
| ГДЕ
| РасчетыСКлиентамиПоДокументам.ЗаказКлиента.Менеджер В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)
| И РасчетыСКлиентамиПоДокументам.Период МЕЖДУ &НачалоПериода И &ОкончаниеПериода
| И РасчетыСКлиентамиПоДокументам.Предоплата <> 0
| И РасчетыСКлиентамиПоДокументам.ЗаказКлиента.Партнер <> ЗНАЧЕНИЕ(Справочник.Партнеры.РозничныйПокупатель)
| И (РасчетыСКлиентамиПоДокументам.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.РАСХОД)
| И (РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.РасходныйКассовыйОрдер
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.ОперацияПоПлатежнойКарте
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.ПоступлениеБезналичныхДенежныхСредств
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.ПриходныйКассовыйОрдер
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.РасходныйКассовыйОрдер
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.СписаниеБезналичныхДенежныхСредств
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.КорректировкаЗадолженности)
| ИЛИ РасчетыСКлиентамиПоДокументам.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
| И (РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.АктВыполненныхРабот
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.ЗаказКлиента
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.КорректировкаРеализации
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.РеализацияУслугПрочихАктивов))
| И РасчетыСКлиентамиПоДокументам.Активность
|
| СГРУППИРОВАТЬ ПО
| РасчетыСКлиентамиПоДокументам.ЗаказКлиента.Менеджер,
| РасчетыСКлиентамиПоДокументам.РасчетныйДокумент,
| РасчетыСКлиентамиПоДокументам.Валюта
|
| ИМЕЮЩИЕ
| СУММА(ВЫБОР
| КОГДА РасчетыСКлиентамиПоДокументам.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.РАСХОД)
| ТОГДА РасчетыСКлиентамиПоДокументам.Предоплата
| ИНАЧЕ -РасчетыСКлиентамиПоДокументам.Предоплата
| КОНЕЦ) > 0) КАК ВложенныйЗапрос
|
| СГРУППИРОВАТЬ ПО
| ВложенныйЗапрос.ЗаказКлиентаМенеджер,
| ВложенныйЗапрос.Валюта) КАК ВложенныйЗапрос
|
|СГРУППИРОВАТЬ ПО
| ВложенныйЗапрос.Менеджер,
| ВложенныйЗапрос.Валюта
|;
|
|
|ВЫБРАТЬ
| ТекущийПериодПоступлениеДСВалюты.Менеджер,
| СУММА(ВЫБОР
| КОГДА ТекущийПериодПоступлениеДСВалюты.Валюта = &ВалютаУправленческогоУчета
| ТОГДА ТекущийПериодПоступлениеДСВалюты.ПоступлениеДС
| ИНАЧЕ ВЫБОР
| КОГДА ЕСТЬNULL(КурсВалютыУправленческогоУчета.СредневзвешенныйКурс, 0) = 0
| ТОГДА 0
| ИНАЧЕ ТекущийПериодПоступлениеДСВалюты.ПоступлениеДС * ЕСТЬNULL(КурсыПрочиеВалюты.СредневзвешенныйКурс, 0) / ЕСТЬNULL(КурсВалютыУправленческогоУчета.СредневзвешенныйКурс, 0)
| КОНЕЦ
| КОНЕЦ) КАК Показатель
|ПОМЕСТИТЬ ТекущийПериодПоступлениеДС
|ИЗ
| ТекущийПериодПоступлениеДСВалюты КАК ТекущийПериодПоступлениеДСВалюты
| ЛЕВОЕ СОЕДИНЕНИЕ СреднеВзвешенныеКурсыВалютЗаТекущийПериод КАК КурсыПрочиеВалюты
| ПО ТекущийПериодПоступлениеДСВалюты.Валюта = КурсыПрочиеВалюты.Валюта
| ЛЕВОЕ СОЕДИНЕНИЕ СреднеВзвешенныеКурсыВалютЗаТекущийПериод КАК КурсВалютыУправленческогоУчета
| ПО (&ВалютаУправленческогоУчета = КурсВалютыУправленческогоУчета.Валюта)
|
|СГРУППИРОВАТЬ ПО
| ТекущийПериодПоступлениеДСВалюты.Менеджер
|
|;
|
|
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ВложенныйЗапрос.Менеджер,
| ВложенныйЗапрос.Валюта,
| СУММА(ВложенныйЗапрос.ПоступлениеДС) КАК ПоступлениеДС
|ПОМЕСТИТЬ ПредыдущийПериодПоступлениеДСВалюты
|ИЗ
| (ВЫБРАТЬ
| РасчетыСКлиентамиПоДокументам.ЗаказКлиента.Менеджер КАК Менеджер,
| РасчетыСКлиентамиПоДокументам.Долг КАК ПоступлениеДС,
| РасчетыСКлиентамиПоДокументам.Валюта КАК Валюта
| ИЗ
| РегистрНакопления.РасчетыСКлиентамиПоДокументам КАК РасчетыСКлиентамиПоДокументам
| ГДЕ
| РасчетыСКлиентамиПоДокументам.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.РАСХОД)
| И РасчетыСКлиентамиПоДокументам.ЗаказКлиента.Менеджер В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)
| И РасчетыСКлиентамиПоДокументам.Долг <> 0
| И (РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.РасходныйКассовыйОрдер
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.ОперацияПоПлатежнойКарте
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.ПоступлениеБезналичныхДенежныхСредств
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.ПриходныйКассовыйОрдер
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.РасходныйКассовыйОрдер
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.СписаниеБезналичныхДенежныхСредств
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.КорректировкаЗадолженности)
| И РасчетыСКлиентамиПоДокументам.Период МЕЖДУ &ДатаНачалаДополнительныйПериод И &ДатаОкончанияДополнительныйПериод
| И РасчетыСКлиентамиПоДокументам.ЗаказКлиента.Партнер <> ЗНАЧЕНИЕ(Справочник.Партнеры.РозничныйПокупатель)
| И РасчетыСКлиентамиПоДокументам.Активность
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| РасчетыСКлиентамиПоДокументам.ЗаказКлиента.Менеджер,
| РасчетыСКлиентамиПоДокументам.Предоплата,
| РасчетыСКлиентамиПоДокументам.Валюта
| ИЗ
| РегистрНакопления.РасчетыСКлиентамиПоДокументам КАК РасчетыСКлиентамиПоДокументам
| ГДЕ
| РасчетыСКлиентамиПоДокументам.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
| И РасчетыСКлиентамиПоДокументам.Предоплата <> 0
| И РасчетыСКлиентамиПоДокументам.ЗаказКлиента.Менеджер В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)
| И (РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.АктВыполненныхРабот
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.ЗаказКлиента
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.КорректировкаРеализации
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.РеализацияУслугПрочихАктивов)
| И РасчетыСКлиентамиПоДокументам.Период МЕЖДУ &ДатаНачалаДополнительныйПериод И &ДатаОкончанияДополнительныйПериод
| И РасчетыСКлиентамиПоДокументам.ЗаказКлиента.Партнер <> ЗНАЧЕНИЕ(Справочник.Партнеры.РозничныйПокупатель)
| И РасчетыСКлиентамиПоДокументам.Активность
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ВложенныйЗапрос.ЗаказКлиентаМенеджер,
| СУММА(ВложенныйЗапрос.Предоплата),
| ВложенныйЗапрос.Валюта
| ИЗ
| (ВЫБРАТЬ
| СУММА(ВЫБОР
| КОГДА РасчетыСКлиентамиПоДокументам.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.РАСХОД)
| ТОГДА РасчетыСКлиентамиПоДокументам.Предоплата
| ИНАЧЕ -РасчетыСКлиентамиПоДокументам.Предоплата
| КОНЕЦ) КАК Предоплата,
| РасчетыСКлиентамиПоДокументам.ЗаказКлиента.Менеджер КАК ЗаказКлиентаМенеджер,
| РасчетыСКлиентамиПоДокументам.Валюта КАК Валюта,
| РасчетыСКлиентамиПоДокументам.РасчетныйДокумент КАК РасчетныйДокумент
| ИЗ
| РегистрНакопления.РасчетыСКлиентамиПоДокументам КАК РасчетыСКлиентамиПоДокументам
| ГДЕ
| РасчетыСКлиентамиПоДокументам.ЗаказКлиента.Менеджер В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)
| И РасчетыСКлиентамиПоДокументам.Период МЕЖДУ &ДатаНачалаДополнительныйПериод И &ДатаОкончанияДополнительныйПериод
| И РасчетыСКлиентамиПоДокументам.Предоплата <> 0
| И РасчетыСКлиентамиПоДокументам.ЗаказКлиента.Партнер <> ЗНАЧЕНИЕ(Справочник.Партнеры.РозничныйПокупатель)
| И (РасчетыСКлиентамиПоДокументам.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.РАСХОД)
| И (РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.РасходныйКассовыйОрдер
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.ОперацияПоПлатежнойКарте
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.ПоступлениеБезналичныхДенежныхСредств
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.ПриходныйКассовыйОрдер
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.РасходныйКассовыйОрдер
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.СписаниеБезналичныхДенежныхСредств
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.КорректировкаЗадолженности)
| ИЛИ РасчетыСКлиентамиПоДокументам.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
| И (РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.АктВыполненныхРабот
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.ЗаказКлиента
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.КорректировкаРеализации
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.РеализацияУслугПрочихАктивов))
| И РасчетыСКлиентамиПоДокументам.Активность
|
| СГРУППИРОВАТЬ ПО
| РасчетыСКлиентамиПоДокументам.РасчетныйДокумент,
| РасчетыСКлиентамиПоДокументам.ЗаказКлиента.Менеджер,
| РасчетыСКлиентамиПоДокументам.Валюта
|
| ИМЕЮЩИЕ
| СУММА(ВЫБОР
| КОГДА РасчетыСКлиентамиПоДокументам.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.РАСХОД)
| ТОГДА РасчетыСКлиентамиПоДокументам.Предоплата
| ИНАЧЕ -РасчетыСКлиентамиПоДокументам.Предоплата
| КОНЕЦ) > 0) КАК ВложенныйЗапрос
|
| СГРУППИРОВАТЬ ПО
| ВложенныйЗапрос.ЗаказКлиентаМенеджер,
| ВложенныйЗапрос.Валюта) КАК ВложенныйЗапрос
|
|СГРУППИРОВАТЬ ПО
| ВложенныйЗапрос.Менеджер,
| ВложенныйЗапрос.Валюта
|;
|
|
|ВЫБРАТЬ
| ПредыдущийПериодПоступлениеДСВалюты.Менеджер,
| СУММА(ВЫБОР
| КОГДА ПредыдущийПериодПоступлениеДСВалюты.Валюта = &ВалютаУправленческогоУчета
| ТОГДА ПредыдущийПериодПоступлениеДСВалюты.ПоступлениеДС
| ИНАЧЕ ВЫБОР
| КОГДА ЕСТЬNULL(КурсВалютыУправленческогоУчета.СредневзвешенныйКурс, 0) = 0
| ТОГДА 0
| ИНАЧЕ ПредыдущийПериодПоступлениеДСВалюты.ПоступлениеДС * ЕСТЬNULL(КурсыПрочиеВалюты.СредневзвешенныйКурс, 0) / ЕСТЬNULL(КурсВалютыУправленческогоУчета.СредневзвешенныйКурс, 0)
| КОНЕЦ
| КОНЕЦ) КАК Показатель
|ПОМЕСТИТЬ ПредыдущийПериодПоступлениеДС
|ИЗ
| ПредыдущийПериодПоступлениеДСВалюты КАК ПредыдущийПериодПоступлениеДСВалюты
| ЛЕВОЕ СОЕДИНЕНИЕ СреднеВзвешенныеКурсыВалютЗаТекущийПериод КАК КурсыПрочиеВалюты
| ПО ПредыдущийПериодПоступлениеДСВалюты.Валюта = КурсыПрочиеВалюты.Валюта
| ЛЕВОЕ СОЕДИНЕНИЕ СреднеВзвешенныеКурсыВалютЗаТекущийПериод КАК КурсВалютыУправленческогоУчета
| ПО (&ВалютаУправленческогоУчета = КурсВалютыУправленческогоУчета.Валюта)
|
|СГРУППИРОВАТЬ ПО
| ПредыдущийПериодПоступлениеДСВалюты.Менеджер
|
|;
|
|
|ВЫБРАТЬ
| ЕСТЬNULL(ВложенныйЗапрос.Менеджер, &НеУказан) КАК Менеджер,
| ВложенныйЗапрос.Текущий,
| ВложенныйЗапрос.Предыдущий,
| ВЫБОР
| КОГДА ВложенныйЗапрос.Текущий - ВложенныйЗапрос.Предыдущий > 0
| ТОГДА ВложенныйЗапрос.Текущий - ВложенныйЗапрос.Предыдущий
| ИНАЧЕ 0
| КОНЕЦ КАК Прирост,
| ВЫБОР
| КОГДА ВложенныйЗапрос.Текущий - ВложенныйЗапрос.Предыдущий < 0
| ТОГДА ВложенныйЗапрос.Текущий - ВложенныйЗапрос.Предыдущий
| ИНАЧЕ 0
| КОНЕЦ КАК Спад
|ИЗ
| (ВЫБРАТЬ
| ВЫБОР
| КОГДА ПредыдущийПериод.Менеджер ЕСТЬ NULL
| ТОГДА ТекущийПериод.Менеджер
| ИНАЧЕ ПредыдущийПериод.Менеджер
| КОНЕЦ КАК Менеджер,
| СУММА(ЕСТЬNULL(ПредыдущийПериод.Показатель, 0)) КАК Предыдущий,
| СУММА(ЕСТЬNULL(ТекущийПериод.Показатель, 0)) КАК Текущий
| ИЗ
| ПредыдущийПериодПоступлениеДС КАК ПредыдущийПериод
| ПОЛНОЕ СОЕДИНЕНИЕ ТекущийПериодПоступлениеДС КАК ТекущийПериод
| ПО ПредыдущийПериод.Менеджер = ТекущийПериод.Менеджер
|
| СГРУППИРОВАТЬ ПО
| ВЫБОР
| КОГДА ПредыдущийПериод.Менеджер ЕСТЬ NULL
| ТОГДА ТекущийПериод.Менеджер
| ИНАЧЕ ПредыдущийПериод.Менеджер
| КОНЕЦ) КАК ВложенныйЗапрос
|
|УПОРЯДОЧИТЬ ПО
| ВложенныйЗапрос.Текущий
|;
|
|
|";
Иначе
НомерПоследнегоПакета = НомерПоследнегоПакета + 2;
СоответствиеЗапросыДанные.Вставить("ПоступлениеДС",НомерПоследнегоПакета);
Возврат "
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ВложенныйЗапрос.Менеджер,
| ВложенныйЗапрос.Валюта,
| СУММА(ВложенныйЗапрос.ПоступлениеДС) КАК ПоступлениеДС
|ПОМЕСТИТЬ ТекущийПериодПоступлениеДСВалюты
|ИЗ
| (ВЫБРАТЬ
| РасчетыСКлиентамиПоДокументам.ЗаказКлиента.Менеджер КАК Менеджер,
| РасчетыСКлиентамиПоДокументам.Долг КАК ПоступлениеДС,
| РасчетыСКлиентамиПоДокументам.Валюта КАК Валюта
| ИЗ
| РегистрНакопления.РасчетыСКлиентамиПоДокументам КАК РасчетыСКлиентамиПоДокументам
| ГДЕ
| РасчетыСКлиентамиПоДокументам.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.РАСХОД)
| И РасчетыСКлиентамиПоДокументам.ЗаказКлиента.Менеджер В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)
| И РасчетыСКлиентамиПоДокументам.Долг <> 0
| И (РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.РасходныйКассовыйОрдер
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.ОперацияПоПлатежнойКарте
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.ПоступлениеБезналичныхДенежныхСредств
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.ПриходныйКассовыйОрдер
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.РасходныйКассовыйОрдер
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.СписаниеБезналичныхДенежныхСредств
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.КорректировкаЗадолженности)
| И РасчетыСКлиентамиПоДокументам.Период МЕЖДУ &НачалоПериода И &ОкончаниеПериода
| И РасчетыСКлиентамиПоДокументам.ЗаказКлиента.Партнер <> ЗНАЧЕНИЕ(Справочник.Партнеры.РозничныйПокупатель)
| И РасчетыСКлиентамиПоДокументам.Активность
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| РасчетыСКлиентамиПоДокументам.ЗаказКлиента.Менеджер,
| РасчетыСКлиентамиПоДокументам.Предоплата,
| РасчетыСКлиентамиПоДокументам.Валюта
| ИЗ
| РегистрНакопления.РасчетыСКлиентамиПоДокументам КАК РасчетыСКлиентамиПоДокументам
| ГДЕ
| РасчетыСКлиентамиПоДокументам.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
| И РасчетыСКлиентамиПоДокументам.Предоплата <> 0
| И РасчетыСКлиентамиПоДокументам.ЗаказКлиента.Менеджер В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)
| И (РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.АктВыполненныхРабот
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.ЗаказКлиента
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.КорректировкаРеализации
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.РеализацияУслугПрочихАктивов)
| И РасчетыСКлиентамиПоДокументам.Период МЕЖДУ &НачалоПериода И &ОкончаниеПериода
| И РасчетыСКлиентамиПоДокументам.ЗаказКлиента.Партнер <> ЗНАЧЕНИЕ(Справочник.Партнеры.РозничныйПокупатель)
| И РасчетыСКлиентамиПоДокументам.Активность
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ВложенныйЗапрос.ЗаказКлиентаМенеджер,
| СУММА(ВложенныйЗапрос.Предоплата),
| ВложенныйЗапрос.Валюта
| ИЗ
| (ВЫБРАТЬ
| СУММА(ВЫБОР
| КОГДА РасчетыСКлиентамиПоДокументам.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.РАСХОД)
| ТОГДА РасчетыСКлиентамиПоДокументам.Предоплата
| ИНАЧЕ -РасчетыСКлиентамиПоДокументам.Предоплата
| КОНЕЦ) КАК Предоплата,
| РасчетыСКлиентамиПоДокументам.ЗаказКлиента.Менеджер КАК ЗаказКлиентаМенеджер,
| РасчетыСКлиентамиПоДокументам.Валюта КАК Валюта,
| РасчетыСКлиентамиПоДокументам.РасчетныйДокумент КАК РасчетныйДокумент
| ИЗ
| РегистрНакопления.РасчетыСКлиентамиПоДокументам КАК РасчетыСКлиентамиПоДокументам
| ГДЕ
| РасчетыСКлиентамиПоДокументам.ЗаказКлиента.Менеджер В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)
| И РасчетыСКлиентамиПоДокументам.Период МЕЖДУ &НачалоПериода И &ОкончаниеПериода
| И РасчетыСКлиентамиПоДокументам.Предоплата <> 0
| И РасчетыСКлиентамиПоДокументам.ЗаказКлиента.Партнер <> ЗНАЧЕНИЕ(Справочник.Партнеры.РозничныйПокупатель)
| И (РасчетыСКлиентамиПоДокументам.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.РАСХОД)
| И (РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.РасходныйКассовыйОрдер
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.ОперацияПоПлатежнойКарте
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.ПоступлениеБезналичныхДенежныхСредств
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.ПриходныйКассовыйОрдер
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.РасходныйКассовыйОрдер
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.СписаниеБезналичныхДенежныхСредств
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.КорректировкаЗадолженности)
| ИЛИ РасчетыСКлиентамиПоДокументам.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
| И (РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.АктВыполненныхРабот
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.ЗаказКлиента
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.КорректировкаРеализации
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.РеализацияУслугПрочихАктивов))
| И РасчетыСКлиентамиПоДокументам.Активность
|
| СГРУППИРОВАТЬ ПО
| РасчетыСКлиентамиПоДокументам.РасчетныйДокумент,
| РасчетыСКлиентамиПоДокументам.ЗаказКлиента.Менеджер,
| РасчетыСКлиентамиПоДокументам.Валюта
|
| ИМЕЮЩИЕ
| СУММА(ВЫБОР
| КОГДА РасчетыСКлиентамиПоДокументам.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.РАСХОД)
| ТОГДА РасчетыСКлиентамиПоДокументам.Предоплата
| ИНАЧЕ -РасчетыСКлиентамиПоДокументам.Предоплата
| КОНЕЦ) > 0) КАК ВложенныйЗапрос
|
| СГРУППИРОВАТЬ ПО
| ВложенныйЗапрос.ЗаказКлиентаМенеджер,
| ВложенныйЗапрос.Валюта) КАК ВложенныйЗапрос
|
|СГРУППИРОВАТЬ ПО
| ВложенныйЗапрос.Менеджер,
| ВложенныйЗапрос.Валюта
|;
|
|
|ВЫБРАТЬ
| ТекущийПериодПоступлениеДСВалюты.Менеджер,
| СУММА(ВЫБОР
| КОГДА ТекущийПериодПоступлениеДСВалюты.Валюта = &ВалютаУправленческогоУчета
| ТОГДА ТекущийПериодПоступлениеДСВалюты.ПоступлениеДС
| ИНАЧЕ ВЫБОР
| КОГДА ЕСТЬNULL(КурсВалютыУправленческогоУчета.СредневзвешенныйКурс, 0) = 0
| ТОГДА 0
| ИНАЧЕ ТекущийПериодПоступлениеДСВалюты.ПоступлениеДС * ЕСТЬNULL(КурсыПрочиеВалюты.СредневзвешенныйКурс, 0) / ЕСТЬNULL(КурсВалютыУправленческогоУчета.СредневзвешенныйКурс, 0)
| КОНЕЦ
| КОНЕЦ) КАК ПоступлениеДС
|ИЗ
| ТекущийПериодПоступлениеДСВалюты КАК ТекущийПериодПоступлениеДСВалюты
| ЛЕВОЕ СОЕДИНЕНИЕ СреднеВзвешенныеКурсыВалютЗаТекущийПериод КАК КурсыПрочиеВалюты
| ПО ТекущийПериодПоступлениеДСВалюты.Валюта = КурсыПрочиеВалюты.Валюта
| ЛЕВОЕ СОЕДИНЕНИЕ СреднеВзвешенныеКурсыВалютЗаТекущийПериод КАК КурсВалютыУправленческогоУчета
| ПО (&ВалютаУправленческогоУчета = КурсВалютыУправленческогоУчета.Валюта)
|
|СГРУППИРОВАТЬ ПО
| ТекущийПериодПоступлениеДСВалюты.Менеджер
|
|УПОРЯДОЧИТЬ ПО
| ПоступлениеДС УБЫВ
|;
|
|
|";
КонецЕсли;
КонецЕсли;
КонецФункции
Функция ТекстЗапросаОПоступленииДС_МинусСебестоимость(СоответствиеЗапросыДанные,НомерПоследнегоПакета, СтруктураПериодовФормированияОтчета)
Если ПолучитьФункциональнуюОпцию("НоваяАрхитектураВзаиморасчетов") Тогда
Если СтруктураПериодовФормированияОтчета.ЕстьДополнительныйПериод Тогда
НомерПоследнегоПакета = НомерПоследнегоПакета + 3;
СоответствиеЗапросыДанные.Вставить("ПоступлениеДС_МинусСебестоимость",НомерПоследнегоПакета);
Возврат "
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ЕСТЬNULL(ВложенныйЗапрос.Менеджер, &НеУказан) КАК Менеджер,
| СУММА(ВложенныйЗапрос.Показатель) КАК Показатель
|ПОМЕСТИТЬ ТекущийПериодПоступлениеДС_МинусСебестоимостьПродаж
|ИЗ
|(ВЫБРАТЬ
| РасчетыСКлиентамиПоСрокам.ОбъектРасчетов.Менеджер КАК Менеджер,
| РасчетыСКлиентамиПоСрокам.ПредоплатаУпр + РасчетыСКлиентамиПоСрокам.ДолгУпр КАК Показатель
|ИЗ
| РегистрНакопления.РасчетыСКлиентамиПоСрокам КАК РасчетыСКлиентамиПоСрокам
|ГДЕ
| (РасчетыСКлиентамиПоСрокам.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
| И РасчетыСКлиентамиПоСрокам.ДолгУпр > 0
| ИЛИ РасчетыСКлиентамиПоСрокам.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
| И РасчетыСКлиентамиПоСрокам.ПредоплатаУпр > 0)
| И РасчетыСКлиентамиПоСрокам.ОбъектРасчетов В (ВЫБРАТЬ ОбъектРасчетов ИЗ ОбъектыРасчетовМенеджеров)
| И (РасчетыСКлиентамиПоСрокам.ДокументРегистратор ССЫЛКА Документ.РасходныйКассовыйОрдер
| ИЛИ РасчетыСКлиентамиПоСрокам.ДокументРегистратор ССЫЛКА Документ.ОперацияПоПлатежнойКарте
| ИЛИ РасчетыСКлиентамиПоСрокам.ДокументРегистратор ССЫЛКА Документ.ПоступлениеБезналичныхДенежныхСредств
| ИЛИ РасчетыСКлиентамиПоСрокам.ДокументРегистратор ССЫЛКА Документ.ПриходныйКассовыйОрдер
| ИЛИ РасчетыСКлиентамиПоСрокам.ДокументРегистратор ССЫЛКА Документ.ОперацияПоЯндексКассе
| ИЛИ РасчетыСКлиентамиПоСрокам.ДокументРегистратор ССЫЛКА Документ.СписаниеБезналичныхДенежныхСредств
| ИЛИ РасчетыСКлиентамиПоСрокам.ДокументРегистратор ССЫЛКА Документ.КорректировкаЗадолженности)
| И РасчетыСКлиентамиПоСрокам.Период МЕЖДУ &НачалоПериода И &ОкончаниеПериода
| И РасчетыСКлиентамиПоСрокам.ОбъектРасчетов.Партнер <> ЗНАЧЕНИЕ(Справочник.Партнеры.РозничныйПокупатель)
| И РасчетыСКлиентамиПоСрокам.Активность
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ВыручкаИСебестоимостьПродажОбороты.ЗаказКлиента.Менеджер,
| -ВыручкаИСебестоимостьПродажОбороты.СтоимостьОборот
| ИЗ
| РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(&НачалоПериода, &ОкончаниеПериода, , АналитикаУчетаПоПартнерам.Партнер <> ЗНАЧЕНИЕ(Справочник.Партнеры.РозничныйПокупатель) И ЗаказКлиента.Менеджер В (ВЫБРАТЬ ОтборПоМенеджерам.Ссылка ИЗ ОтборПоМенеджерам КАК ОтборПоМенеджерам)) КАК ВыручкаИСебестоимостьПродажОбороты) КАК ВложенныйЗапрос
|
|СГРУППИРОВАТЬ ПО
| ЕСТЬNULL(ВложенныйЗапрос.Менеджер, &НеУказан)
|
|;
|
|
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ЕСТЬNULL(ВложенныйЗапрос.Менеджер, &НеУказан) КАК Менеджер,
| СУММА(ВложенныйЗапрос.Показатель) КАК Показатель
|ПОМЕСТИТЬ ПредыдущийПериодПоступлениеДС_МинусСебестоимостьПродаж
|ИЗ
|(ВЫБРАТЬ
| РасчетыСКлиентамиПоСрокам.ОбъектРасчетов.Менеджер КАК Менеджер,
| РасчетыСКлиентамиПоСрокам.ПредоплатаУпр + РасчетыСКлиентамиПоСрокам.ДолгУпр КАК Показатель
|ИЗ
| РегистрНакопления.РасчетыСКлиентамиПоСрокам КАК РасчетыСКлиентамиПоСрокам
|ГДЕ
| (РасчетыСКлиентамиПоСрокам.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
| И РасчетыСКлиентамиПоСрокам.ДолгУпр > 0
| ИЛИ РасчетыСКлиентамиПоСрокам.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
| И РасчетыСКлиентамиПоСрокам.ПредоплатаУпр > 0)
| И РасчетыСКлиентамиПоСрокам.ОбъектРасчетов В (ВЫБРАТЬ ОбъектРасчетов ИЗ ОбъектыРасчетовМенеджеров)
| И (РасчетыСКлиентамиПоСрокам.ДокументРегистратор ССЫЛКА Документ.РасходныйКассовыйОрдер
| ИЛИ РасчетыСКлиентамиПоСрокам.ДокументРегистратор ССЫЛКА Документ.ОперацияПоПлатежнойКарте
| ИЛИ РасчетыСКлиентамиПоСрокам.ДокументРегистратор ССЫЛКА Документ.ПоступлениеБезналичныхДенежныхСредств
| ИЛИ РасчетыСКлиентамиПоСрокам.ДокументРегистратор ССЫЛКА Документ.ПриходныйКассовыйОрдер
| ИЛИ РасчетыСКлиентамиПоСрокам.ДокументРегистратор ССЫЛКА Документ.ОперацияПоЯндексКассе
| ИЛИ РасчетыСКлиентамиПоСрокам.ДокументРегистратор ССЫЛКА Документ.СписаниеБезналичныхДенежныхСредств
| ИЛИ РасчетыСКлиентамиПоСрокам.ДокументРегистратор ССЫЛКА Документ.КорректировкаЗадолженности)
| И РасчетыСКлиентамиПоСрокам.Период МЕЖДУ &ДатаНачалаДополнительныйПериод И &ДатаОкончанияДополнительныйПериод
| И РасчетыСКлиентамиПоСрокам.ОбъектРасчетов.Партнер <> ЗНАЧЕНИЕ(Справочник.Партнеры.РозничныйПокупатель)
| И РасчетыСКлиентамиПоСрокам.Активность
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ВыручкаИСебестоимостьПродажОбороты.ЗаказКлиента.Менеджер,
| -ВыручкаИСебестоимостьПродажОбороты.СтоимостьОборот
| ИЗ
| РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(&ДатаНачалаДополнительныйПериод, &ДатаОкончанияДополнительныйПериод, , АналитикаУчетаПоПартнерам.Партнер <> ЗНАЧЕНИЕ(Справочник.Партнеры.РозничныйПокупатель) И ЗаказКлиента.Менеджер В (ВЫБРАТЬ ОтборПоМенеджерам.Ссылка ИЗ ОтборПоМенеджерам КАК ОтборПоМенеджерам)) КАК ВыручкаИСебестоимостьПродажОбороты) КАК ВложенныйЗапрос
|
|СГРУППИРОВАТЬ ПО
| ЕСТЬNULL(ВложенныйЗапрос.Менеджер, &НеУказан)
|
|;
|
|
|ВЫБРАТЬ
| ЕСТЬNULL(ВложенныйЗапрос.Менеджер, &НеУказан) КАК Менеджер,
| ВложенныйЗапрос.Текущий,
| ВложенныйЗапрос.Предыдущий,
| ВЫБОР
| КОГДА ВложенныйЗапрос.Текущий - ВложенныйЗапрос.Предыдущий > 0
| ТОГДА ВложенныйЗапрос.Текущий - ВложенныйЗапрос.Предыдущий
| ИНАЧЕ 0
| КОНЕЦ КАК Прирост,
| ВЫБОР
| КОГДА ВложенныйЗапрос.Текущий - ВложенныйЗапрос.Предыдущий < 0
| ТОГДА ВложенныйЗапрос.Текущий - ВложенныйЗапрос.Предыдущий
| ИНАЧЕ 0
| КОНЕЦ КАК Спад
|ИЗ
| (ВЫБРАТЬ
| ВЫБОР
| КОГДА ПредыдущийПериод.Менеджер ЕСТЬ NULL
| ТОГДА ТекущийПериод.Менеджер
| ИНАЧЕ ПредыдущийПериод.Менеджер
| КОНЕЦ КАК Менеджер,
| СУММА(ЕСТЬNULL(ПредыдущийПериод.Показатель, 0)) КАК Предыдущий,
| СУММА(ЕСТЬNULL(ТекущийПериод.Показатель, 0)) КАК Текущий
| ИЗ
| ПредыдущийПериодПоступлениеДС_МинусСебестоимостьПродаж КАК ПредыдущийПериод
| ПОЛНОЕ СОЕДИНЕНИЕ ТекущийПериодПоступлениеДС_МинусСебестоимостьПродаж КАК ТекущийПериод
| ПО ПредыдущийПериод.Менеджер = ТекущийПериод.Менеджер
|
| СГРУППИРОВАТЬ ПО
| ВЫБОР
| КОГДА ПредыдущийПериод.Менеджер ЕСТЬ NULL
| ТОГДА ТекущийПериод.Менеджер
| ИНАЧЕ ПредыдущийПериод.Менеджер
| КОНЕЦ) КАК ВложенныйЗапрос
|
|УПОРЯДОЧИТЬ ПО
| ВложенныйЗапрос.Текущий
|;
|
|";
Иначе
НомерПоследнегоПакета = НомерПоследнегоПакета + 1;
СоответствиеЗапросыДанные.Вставить("ПоступлениеДС_МинусСебестоимость",НомерПоследнегоПакета);
Возврат "
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ЕСТЬNULL(ВложенныйЗапрос.Менеджер, &НеУказан) КАК Менеджер,
| СУММА(ВложенныйЗапрос.Показатель) КАК ПоступлениеДС_МинусСебестоимость
|ИЗ
|(ВЫБРАТЬ
| РасчетыСКлиентамиПоСрокам.ОбъектРасчетов.Менеджер КАК Менеджер,
| РасчетыСКлиентамиПоСрокам.ПредоплатаУпр + РасчетыСКлиентамиПоСрокам.ДолгУпр КАК Показатель
|ИЗ
| РегистрНакопления.РасчетыСКлиентамиПоСрокам КАК РасчетыСКлиентамиПоСрокам
|ГДЕ
| (РасчетыСКлиентамиПоСрокам.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
| И РасчетыСКлиентамиПоСрокам.ДолгУпр > 0
| ИЛИ РасчетыСКлиентамиПоСрокам.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
| И РасчетыСКлиентамиПоСрокам.ПредоплатаУпр > 0)
| И РасчетыСКлиентамиПоСрокам.ОбъектРасчетов В (ВЫБРАТЬ ОбъектРасчетов ИЗ ОбъектыРасчетовМенеджеров)
| И (РасчетыСКлиентамиПоСрокам.ДокументРегистратор ССЫЛКА Документ.РасходныйКассовыйОрдер
| ИЛИ РасчетыСКлиентамиПоСрокам.ДокументРегистратор ССЫЛКА Документ.ОперацияПоПлатежнойКарте
| ИЛИ РасчетыСКлиентамиПоСрокам.ДокументРегистратор ССЫЛКА Документ.ПоступлениеБезналичныхДенежныхСредств
| ИЛИ РасчетыСКлиентамиПоСрокам.ДокументРегистратор ССЫЛКА Документ.ПриходныйКассовыйОрдер
| ИЛИ РасчетыСКлиентамиПоСрокам.ДокументРегистратор ССЫЛКА Документ.ОперацияПоЯндексКассе
| ИЛИ РасчетыСКлиентамиПоСрокам.ДокументРегистратор ССЫЛКА Документ.СписаниеБезналичныхДенежныхСредств
| ИЛИ РасчетыСКлиентамиПоСрокам.ДокументРегистратор ССЫЛКА Документ.КорректировкаЗадолженности)
| И РасчетыСКлиентамиПоСрокам.Период МЕЖДУ &НачалоПериода И &ОкончаниеПериода
| И РасчетыСКлиентамиПоСрокам.ОбъектРасчетов.Партнер <> ЗНАЧЕНИЕ(Справочник.Партнеры.РозничныйПокупатель)
| И РасчетыСКлиентамиПоСрокам.Активность
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ВыручкаИСебестоимостьПродажОбороты.ЗаказКлиента.Менеджер,
| -ВыручкаИСебестоимостьПродажОбороты.СтоимостьОборот
| ИЗ
| РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(&НачалоПериода, &ОкончаниеПериода, , АналитикаУчетаПоПартнерам.Партнер <> ЗНАЧЕНИЕ(Справочник.Партнеры.РозничныйПокупатель) И ЗаказКлиента.Менеджер В (ВЫБРАТЬ ОтборПоМенеджерам.Ссылка ИЗ ОтборПоМенеджерам КАК ОтборПоМенеджерам)) КАК ВыручкаИСебестоимостьПродажОбороты) КАК ВложенныйЗапрос
|
|СГРУППИРОВАТЬ ПО
| ЕСТЬNULL(ВложенныйЗапрос.Менеджер, &НеУказан)
|
|УПОРЯДОЧИТЬ ПО
| ПоступлениеДС_МинусСебестоимость УБЫВ
|;
|
|
|";
КонецЕсли;
Иначе
Если СтруктураПериодовФормированияОтчета.ЕстьДополнительныйПериод Тогда
НомерПоследнегоПакета = НомерПоследнегоПакета + 5;
СоответствиеЗапросыДанные.Вставить("ПоступлениеДС_МинусСебестоимость",НомерПоследнегоПакета);
Возврат "
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ВложенныйЗапрос.Менеджер,
| ВложенныйЗапрос.Валюта,
| СУММА(ВложенныйЗапрос.ПоступлениеДС) КАК ПоступлениеДС
|ПОМЕСТИТЬ ТекущийПериодПоступлениеДС_МинусСебестоимостьПродажВалюты
|ИЗ
| (ВЫБРАТЬ
| РасчетыСКлиентамиПоДокументам.ЗаказКлиента.Менеджер КАК Менеджер,
| РасчетыСКлиентамиПоДокументам.Долг КАК ПоступлениеДС,
| РасчетыСКлиентамиПоДокументам.Валюта КАК Валюта
| ИЗ
| РегистрНакопления.РасчетыСКлиентамиПоДокументам КАК РасчетыСКлиентамиПоДокументам
| ГДЕ
| РасчетыСКлиентамиПоДокументам.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.РАСХОД)
| И РасчетыСКлиентамиПоДокументам.ЗаказКлиента.Менеджер В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)
| И РасчетыСКлиентамиПоДокументам.Долг <> 0
| И (РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.РасходныйКассовыйОрдер
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.ОперацияПоПлатежнойКарте
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.ПоступлениеБезналичныхДенежныхСредств
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.ПриходныйКассовыйОрдер
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.РасходныйКассовыйОрдер
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.СписаниеБезналичныхДенежныхСредств
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.КорректировкаЗадолженности)
| И РасчетыСКлиентамиПоДокументам.Период МЕЖДУ &НачалоПериода И &ОкончаниеПериода
| И РасчетыСКлиентамиПоДокументам.ЗаказКлиента.Партнер <> ЗНАЧЕНИЕ(Справочник.Партнеры.РозничныйПокупатель)
| И РасчетыСКлиентамиПоДокументам.Активность
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| РасчетыСКлиентамиПоДокументам.ЗаказКлиента.Менеджер,
| РасчетыСКлиентамиПоДокументам.Предоплата,
| РасчетыСКлиентамиПоДокументам.Валюта
| ИЗ
| РегистрНакопления.РасчетыСКлиентамиПоДокументам КАК РасчетыСКлиентамиПоДокументам
| ГДЕ
| РасчетыСКлиентамиПоДокументам.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
| И РасчетыСКлиентамиПоДокументам.Предоплата <> 0
| И РасчетыСКлиентамиПоДокументам.ЗаказКлиента.Менеджер В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)
| И (РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.АктВыполненныхРабот
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.ЗаказКлиента
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.КорректировкаРеализации
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.РеализацияУслугПрочихАктивов)
| И РасчетыСКлиентамиПоДокументам.Период МЕЖДУ &НачалоПериода И &ОкончаниеПериода
| И РасчетыСКлиентамиПоДокументам.ЗаказКлиента.Партнер <> ЗНАЧЕНИЕ(Справочник.Партнеры.РозничныйПокупатель)
| И РасчетыСКлиентамиПоДокументам.Активность
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ВложенныйЗапрос.ЗаказКлиентаМенеджер,
| СУММА(ВложенныйЗапрос.Предоплата),
| ВложенныйЗапрос.Валюта
| ИЗ
| (ВЫБРАТЬ
| СУММА(ВЫБОР
| КОГДА РасчетыСКлиентамиПоДокументам.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.РАСХОД)
| ТОГДА РасчетыСКлиентамиПоДокументам.Предоплата
| ИНАЧЕ -РасчетыСКлиентамиПоДокументам.Предоплата
| КОНЕЦ) КАК Предоплата,
| РасчетыСКлиентамиПоДокументам.ЗаказКлиента.Менеджер КАК ЗаказКлиентаМенеджер,
| РасчетыСКлиентамиПоДокументам.Валюта КАК Валюта,
| РасчетыСКлиентамиПоДокументам.РасчетныйДокумент КАК РасчетныйДокумент
| ИЗ
| РегистрНакопления.РасчетыСКлиентамиПоДокументам КАК РасчетыСКлиентамиПоДокументам
| ГДЕ
| РасчетыСКлиентамиПоДокументам.ЗаказКлиента.Менеджер В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)
| И РасчетыСКлиентамиПоДокументам.Период МЕЖДУ &НачалоПериода И &ОкончаниеПериода
| И РасчетыСКлиентамиПоДокументам.Предоплата <> 0
| И РасчетыСКлиентамиПоДокументам.ЗаказКлиента.Партнер <> ЗНАЧЕНИЕ(Справочник.Партнеры.РозничныйПокупатель)
| И (РасчетыСКлиентамиПоДокументам.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.РАСХОД)
| И (РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.РасходныйКассовыйОрдер
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.ОперацияПоПлатежнойКарте
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.ПоступлениеБезналичныхДенежныхСредств
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.ПриходныйКассовыйОрдер
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.РасходныйКассовыйОрдер
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.СписаниеБезналичныхДенежныхСредств
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.КорректировкаЗадолженности)
| ИЛИ РасчетыСКлиентамиПоДокументам.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
| И (РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.АктВыполненныхРабот
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.ЗаказКлиента
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.КорректировкаРеализации
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.РеализацияУслугПрочихАктивов))
| И РасчетыСКлиентамиПоДокументам.Активность
|
| СГРУППИРОВАТЬ ПО
| РасчетыСКлиентамиПоДокументам.РасчетныйДокумент,
| РасчетыСКлиентамиПоДокументам.ЗаказКлиента.Менеджер,
| РасчетыСКлиентамиПоДокументам.Валюта
|
| ИМЕЮЩИЕ
| СУММА(ВЫБОР
| КОГДА РасчетыСКлиентамиПоДокументам.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.РАСХОД)
| ТОГДА РасчетыСКлиентамиПоДокументам.Предоплата
| ИНАЧЕ -РасчетыСКлиентамиПоДокументам.Предоплата
| КОНЕЦ) > 0) КАК ВложенныйЗапрос
|
| СГРУППИРОВАТЬ ПО
| ВложенныйЗапрос.ЗаказКлиентаМенеджер,
| ВложенныйЗапрос.Валюта) КАК ВложенныйЗапрос
|
|СГРУППИРОВАТЬ ПО
| ВложенныйЗапрос.Менеджер,
| ВложенныйЗапрос.Валюта
|;
|
|
|
|ВЫБРАТЬ
| ЕСТЬNULL(ВложенныйЗапрос.Менеджер, &НеУказан) КАК Менеджер,
| СУММА(ВложенныйЗапрос.Показатель) КАК Показатель
|ПОМЕСТИТЬ ТекущийПериодПоступлениеДС_МинусСебестоимостьПродаж
|ИЗ
| (ВЫБРАТЬ
| ТекущийПериодПоступлениеДС_МинусСебестоимостьПродажВалюты.Менеджер,
| ВЫБОР
| КОГДА ТекущийПериодПоступлениеДС_МинусСебестоимостьПродажВалюты.Валюта = &ВалютаУправленческогоУчета
| ТОГДА ТекущийПериодПоступлениеДС_МинусСебестоимостьПродажВалюты.ПоступлениеДС
| ИНАЧЕ ВЫБОР
| КОГДА ЕСТЬNULL(КурсВалютыУправленческогоУчета.СредневзвешенныйКурс, 0) = 0
| ТОГДА 0
| ИНАЧЕ ТекущийПериодПоступлениеДС_МинусСебестоимостьПродажВалюты.ПоступлениеДС * ЕСТЬNULL(КурсыПрочиеВалюты.СредневзвешенныйКурс, 0) / ЕСТЬNULL(КурсВалютыУправленческогоУчета.СредневзвешенныйКурс, 0)
| КОНЕЦ
| КОНЕЦ КАК Показатель
| ИЗ
| ТекущийПериодПоступлениеДС_МинусСебестоимостьПродажВалюты КАК ТекущийПериодПоступлениеДС_МинусСебестоимостьПродажВалюты
| ЛЕВОЕ СОЕДИНЕНИЕ СреднеВзвешенныеКурсыВалютЗаТекущийПериод КАК КурсыПрочиеВалюты
| ПО ТекущийПериодПоступлениеДС_МинусСебестоимостьПродажВалюты.Валюта = КурсыПрочиеВалюты.Валюта
| ЛЕВОЕ СОЕДИНЕНИЕ СреднеВзвешенныеКурсыВалютЗаТекущийПериод КАК КурсВалютыУправленческогоУчета
| ПО (&ВалютаУправленческогоУчета = КурсВалютыУправленческогоУчета.Валюта)
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ВыручкаИСебестоимостьПродажОбороты.ЗаказКлиента.Менеджер,
| -ВыручкаИСебестоимостьПродажОбороты.СтоимостьОборот
| ИЗ
| РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(&НачалоПериода, &ОкончаниеПериода, , АналитикаУчетаПоПартнерам.Партнер <> ЗНАЧЕНИЕ(Справочник.Партнеры.РозничныйПокупатель) И ЗаказКлиента.Менеджер В (ВЫБРАТЬ ОтборПоМенеджерам.Ссылка ИЗ ОтборПоМенеджерам КАК ОтборПоМенеджерам)) КАК ВыручкаИСебестоимостьПродажОбороты) КАК ВложенныйЗапрос
|
|СГРУППИРОВАТЬ ПО
| ЕСТЬNULL(ВложенныйЗапрос.Менеджер, &НеУказан)
|;
|
|
|
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ВложенныйЗапрос.Менеджер,
| ВложенныйЗапрос.Валюта,
| СУММА(ВложенныйЗапрос.ПоступлениеДС) КАК ПоступлениеДС
|ПОМЕСТИТЬ ПредыдущийПериодПоступлениеДС_МинусСебестоимостьПродажВалюты
|ИЗ
| (ВЫБРАТЬ
| РасчетыСКлиентамиПоДокументам.ЗаказКлиента.Менеджер КАК Менеджер,
| РасчетыСКлиентамиПоДокументам.Долг КАК ПоступлениеДС,
| РасчетыСКлиентамиПоДокументам.Валюта КАК Валюта
| ИЗ
| РегистрНакопления.РасчетыСКлиентамиПоДокументам КАК РасчетыСКлиентамиПоДокументам
| ГДЕ
| РасчетыСКлиентамиПоДокументам.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.РАСХОД)
| И РасчетыСКлиентамиПоДокументам.ЗаказКлиента.Менеджер В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)
| И РасчетыСКлиентамиПоДокументам.Долг <> 0
| И (РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.РасходныйКассовыйОрдер
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.ОперацияПоПлатежнойКарте
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.ПоступлениеБезналичныхДенежныхСредств
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.ПриходныйКассовыйОрдер
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.РасходныйКассовыйОрдер
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.СписаниеБезналичныхДенежныхСредств
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.КорректировкаЗадолженности)
| И РасчетыСКлиентамиПоДокументам.Период МЕЖДУ &ДатаНачалаДополнительныйПериод И &ДатаОкончанияДополнительныйПериод
| И РасчетыСКлиентамиПоДокументам.ЗаказКлиента.Партнер <> ЗНАЧЕНИЕ(Справочник.Партнеры.РозничныйПокупатель)
| И РасчетыСКлиентамиПоДокументам.Активность
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| РасчетыСКлиентамиПоДокументам.ЗаказКлиента.Менеджер,
| РасчетыСКлиентамиПоДокументам.Предоплата,
| РасчетыСКлиентамиПоДокументам.Валюта
| ИЗ
| РегистрНакопления.РасчетыСКлиентамиПоДокументам КАК РасчетыСКлиентамиПоДокументам
| ГДЕ
| РасчетыСКлиентамиПоДокументам.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
| И РасчетыСКлиентамиПоДокументам.Предоплата <> 0
| И РасчетыСКлиентамиПоДокументам.ЗаказКлиента.Менеджер В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)
| И (РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.АктВыполненныхРабот
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.ЗаказКлиента
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.КорректировкаРеализации
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.РеализацияУслугПрочихАктивов)
| И РасчетыСКлиентамиПоДокументам.Период МЕЖДУ &ДатаНачалаДополнительныйПериод И &ДатаОкончанияДополнительныйПериод
| И РасчетыСКлиентамиПоДокументам.ЗаказКлиента.Партнер <> ЗНАЧЕНИЕ(Справочник.Партнеры.РозничныйПокупатель)
| И РасчетыСКлиентамиПоДокументам.Активность
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ВложенныйЗапрос.ЗаказКлиентаМенеджер,
| СУММА(ВложенныйЗапрос.Предоплата),
| ВложенныйЗапрос.Валюта
| ИЗ
| (ВЫБРАТЬ
| СУММА(ВЫБОР
| КОГДА РасчетыСКлиентамиПоДокументам.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.РАСХОД)
| ТОГДА РасчетыСКлиентамиПоДокументам.Предоплата
| ИНАЧЕ -РасчетыСКлиентамиПоДокументам.Предоплата
| КОНЕЦ) КАК Предоплата,
| РасчетыСКлиентамиПоДокументам.ЗаказКлиента.Менеджер КАК ЗаказКлиентаМенеджер,
| РасчетыСКлиентамиПоДокументам.Валюта КАК Валюта,
| РасчетыСКлиентамиПоДокументам.РасчетныйДокумент КАК РасчетныйДокумент
| ИЗ
| РегистрНакопления.РасчетыСКлиентамиПоДокументам КАК РасчетыСКлиентамиПоДокументам
| ГДЕ
| РасчетыСКлиентамиПоДокументам.ЗаказКлиента.Менеджер В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)
| И РасчетыСКлиентамиПоДокументам.Период МЕЖДУ &ДатаНачалаДополнительныйПериод И &ДатаОкончанияДополнительныйПериод
| И РасчетыСКлиентамиПоДокументам.Предоплата <> 0
| И РасчетыСКлиентамиПоДокументам.ЗаказКлиента.Партнер <> ЗНАЧЕНИЕ(Справочник.Партнеры.РозничныйПокупатель)
| И (РасчетыСКлиентамиПоДокументам.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.РАСХОД)
| И (РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.РасходныйКассовыйОрдер
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.ОперацияПоПлатежнойКарте
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.ПоступлениеБезналичныхДенежныхСредств
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.ПриходныйКассовыйОрдер
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.РасходныйКассовыйОрдер
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.СписаниеБезналичныхДенежныхСредств
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.КорректировкаЗадолженности)
| ИЛИ РасчетыСКлиентамиПоДокументам.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
| И (РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.АктВыполненныхРабот
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.ЗаказКлиента
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.КорректировкаРеализации
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.РеализацияУслугПрочихАктивов))
| И РасчетыСКлиентамиПоДокументам.Активность
|
| СГРУППИРОВАТЬ ПО
| РасчетыСКлиентамиПоДокументам.РасчетныйДокумент,
| РасчетыСКлиентамиПоДокументам.ЗаказКлиента.Менеджер,
| РасчетыСКлиентамиПоДокументам.Валюта
|
| ИМЕЮЩИЕ
| СУММА(ВЫБОР
| КОГДА РасчетыСКлиентамиПоДокументам.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.РАСХОД)
| ТОГДА РасчетыСКлиентамиПоДокументам.Предоплата
| ИНАЧЕ -РасчетыСКлиентамиПоДокументам.Предоплата
| КОНЕЦ) > 0) КАК ВложенныйЗапрос
|
| СГРУППИРОВАТЬ ПО
| ВложенныйЗапрос.ЗаказКлиентаМенеджер,
| ВложенныйЗапрос.Валюта) КАК ВложенныйЗапрос
|
|СГРУППИРОВАТЬ ПО
| ВложенныйЗапрос.Менеджер,
| ВложенныйЗапрос.Валюта
|;
|
|
|
|ВЫБРАТЬ
| ЕСТЬNULL(ВложенныйЗапрос.Менеджер, &НеУказан) КАК Менеджер,
| СУММА(ВложенныйЗапрос.Показатель) КАК Показатель
|ПОМЕСТИТЬ ПредыдущийПериодПоступлениеДС_МинусСебестоимостьПродаж
|ИЗ
| (ВЫБРАТЬ
| ПредыдущийПериодПоступлениеДС_МинусСебестоимостьПродажВалюты.Менеджер,
| ВЫБОР
| КОГДА ПредыдущийПериодПоступлениеДС_МинусСебестоимостьПродажВалюты.Валюта = &ВалютаУправленческогоУчета
| ТОГДА ПредыдущийПериодПоступлениеДС_МинусСебестоимостьПродажВалюты.ПоступлениеДС
| ИНАЧЕ ВЫБОР
| КОГДА ЕСТЬNULL(КурсВалютыУправленческогоУчета.СредневзвешенныйКурс, 0) = 0
| ТОГДА 0
| ИНАЧЕ ПредыдущийПериодПоступлениеДС_МинусСебестоимостьПродажВалюты.ПоступлениеДС * ЕСТЬNULL(КурсыПрочиеВалюты.СредневзвешенныйКурс, 0) / ЕСТЬNULL(КурсВалютыУправленческогоУчета.СредневзвешенныйКурс, 0)
| КОНЕЦ
| КОНЕЦ КАК Показатель
| ИЗ
| ПредыдущийПериодПоступлениеДС_МинусСебестоимостьПродажВалюты КАК ПредыдущийПериодПоступлениеДС_МинусСебестоимостьПродажВалюты
| ЛЕВОЕ СОЕДИНЕНИЕ СреднеВзвешенныеКурсыВалютЗаТекущийПериод КАК КурсыПрочиеВалюты
| ПО ПредыдущийПериодПоступлениеДС_МинусСебестоимостьПродажВалюты.Валюта = КурсыПрочиеВалюты.Валюта
| ЛЕВОЕ СОЕДИНЕНИЕ СреднеВзвешенныеКурсыВалютЗаТекущийПериод КАК КурсВалютыУправленческогоУчета
| ПО (&ВалютаУправленческогоУчета = КурсВалютыУправленческогоУчета.Валюта)
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ВыручкаИСебестоимостьПродажОбороты.ЗаказКлиента.Менеджер,
| -ВыручкаИСебестоимостьПродажОбороты.СтоимостьОборот
| ИЗ
| РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(&ДатаНачалаДополнительныйПериод, &ДатаОкончанияДополнительныйПериод, , АналитикаУчетаПоПартнерам.Партнер <> ЗНАЧЕНИЕ(Справочник.Партнеры.РозничныйПокупатель) И ЗаказКлиента.Менеджер В (ВЫБРАТЬ ОтборПоМенеджерам.Ссылка ИЗ ОтборПоМенеджерам КАК ОтборПоМенеджерам)) КАК ВыручкаИСебестоимостьПродажОбороты) КАК ВложенныйЗапрос
|
|СГРУППИРОВАТЬ ПО
| ЕСТЬNULL(ВложенныйЗапрос.Менеджер, &НеУказан)
|;
|
|
|
|ВЫБРАТЬ
| ЕСТЬNULL(ВложенныйЗапрос.Менеджер, &НеУказан) КАК Менеджер,
| ВложенныйЗапрос.Текущий,
| ВложенныйЗапрос.Предыдущий,
| ВЫБОР
| КОГДА ВложенныйЗапрос.Текущий - ВложенныйЗапрос.Предыдущий > 0
| ТОГДА ВложенныйЗапрос.Текущий - ВложенныйЗапрос.Предыдущий
| ИНАЧЕ 0
| КОНЕЦ КАК Прирост,
| ВЫБОР
| КОГДА ВложенныйЗапрос.Текущий - ВложенныйЗапрос.Предыдущий < 0
| ТОГДА ВложенныйЗапрос.Текущий - ВложенныйЗапрос.Предыдущий
| ИНАЧЕ 0
| КОНЕЦ КАК Спад
|ИЗ
| (ВЫБРАТЬ
| ВЫБОР
| КОГДА ПредыдущийПериод.Менеджер ЕСТЬ NULL
| ТОГДА ТекущийПериод.Менеджер
| ИНАЧЕ ПредыдущийПериод.Менеджер
| КОНЕЦ КАК Менеджер,
| СУММА(ЕСТЬNULL(ПредыдущийПериод.Показатель, 0)) КАК Предыдущий,
| СУММА(ЕСТЬNULL(ТекущийПериод.Показатель, 0)) КАК Текущий
| ИЗ
| ПредыдущийПериодПоступлениеДС_МинусСебестоимостьПродаж КАК ПредыдущийПериод
| ПОЛНОЕ СОЕДИНЕНИЕ ТекущийПериодПоступлениеДС_МинусСебестоимостьПродаж КАК ТекущийПериод
| ПО ПредыдущийПериод.Менеджер = ТекущийПериод.Менеджер
|
| СГРУППИРОВАТЬ ПО
| ВЫБОР
| КОГДА ПредыдущийПериод.Менеджер ЕСТЬ NULL
| ТОГДА ТекущийПериод.Менеджер
| ИНАЧЕ ПредыдущийПериод.Менеджер
| КОНЕЦ) КАК ВложенныйЗапрос
|
|УПОРЯДОЧИТЬ ПО
| ВложенныйЗапрос.Текущий
|;
|
|";
Иначе
НомерПоследнегоПакета = НомерПоследнегоПакета + 2;
СоответствиеЗапросыДанные.Вставить("ПоступлениеДС_МинусСебестоимость",НомерПоследнегоПакета);
Возврат "
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ВложенныйЗапрос.Менеджер,
| ВложенныйЗапрос.Валюта,
| СУММА(ВложенныйЗапрос.ПоступлениеДС) КАК ПоступлениеДС
|ПОМЕСТИТЬ ТекущийПериодПоступлениеДС_МинусСебестоимостьПродажВалюты
|ИЗ
| (ВЫБРАТЬ
| РасчетыСКлиентамиПоДокументам.ЗаказКлиента.Менеджер КАК Менеджер,
| РасчетыСКлиентамиПоДокументам.Долг КАК ПоступлениеДС,
| РасчетыСКлиентамиПоДокументам.Валюта КАК Валюта
| ИЗ
| РегистрНакопления.РасчетыСКлиентамиПоДокументам КАК РасчетыСКлиентамиПоДокументам
| ГДЕ
| РасчетыСКлиентамиПоДокументам.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.РАСХОД)
| И РасчетыСКлиентамиПоДокументам.ЗаказКлиента.Менеджер В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)
| И РасчетыСКлиентамиПоДокументам.Долг <> 0
| И (РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.РасходныйКассовыйОрдер
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.ОперацияПоПлатежнойКарте
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.ПоступлениеБезналичныхДенежныхСредств
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.ПриходныйКассовыйОрдер
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.РасходныйКассовыйОрдер
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.СписаниеБезналичныхДенежныхСредств
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.КорректировкаЗадолженности)
| И РасчетыСКлиентамиПоДокументам.Период МЕЖДУ &НачалоПериода И &ОкончаниеПериода
| И РасчетыСКлиентамиПоДокументам.ЗаказКлиента.Партнер <> ЗНАЧЕНИЕ(Справочник.Партнеры.РозничныйПокупатель)
| И РасчетыСКлиентамиПоДокументам.Активность
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| РасчетыСКлиентамиПоДокументам.ЗаказКлиента.Менеджер,
| РасчетыСКлиентамиПоДокументам.Предоплата,
| РасчетыСКлиентамиПоДокументам.Валюта
| ИЗ
| РегистрНакопления.РасчетыСКлиентамиПоДокументам КАК РасчетыСКлиентамиПоДокументам
| ГДЕ
| РасчетыСКлиентамиПоДокументам.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
| И РасчетыСКлиентамиПоДокументам.Предоплата <> 0
| И РасчетыСКлиентамиПоДокументам.ЗаказКлиента.Менеджер В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)
| И (РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.АктВыполненныхРабот
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.ЗаказКлиента
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.КорректировкаРеализации
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.РеализацияУслугПрочихАктивов)
| И РасчетыСКлиентамиПоДокументам.Период МЕЖДУ &НачалоПериода И &ОкончаниеПериода
| И РасчетыСКлиентамиПоДокументам.ЗаказКлиента.Партнер <> ЗНАЧЕНИЕ(Справочник.Партнеры.РозничныйПокупатель)
| И РасчетыСКлиентамиПоДокументам.Активность
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ВложенныйЗапрос.ЗаказКлиентаМенеджер,
| СУММА(ВложенныйЗапрос.Предоплата),
| ВложенныйЗапрос.Валюта
| ИЗ
| (ВЫБРАТЬ
| СУММА(ВЫБОР
| КОГДА РасчетыСКлиентамиПоДокументам.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.РАСХОД)
| ТОГДА РасчетыСКлиентамиПоДокументам.Предоплата
| ИНАЧЕ -РасчетыСКлиентамиПоДокументам.Предоплата
| КОНЕЦ) КАК Предоплата,
| РасчетыСКлиентамиПоДокументам.ЗаказКлиента.Менеджер КАК ЗаказКлиентаМенеджер,
| РасчетыСКлиентамиПоДокументам.Валюта КАК Валюта,
| РасчетыСКлиентамиПоДокументам.РасчетныйДокумент КАК РасчетныйДокумент
| ИЗ
| РегистрНакопления.РасчетыСКлиентамиПоДокументам КАК РасчетыСКлиентамиПоДокументам
| ГДЕ
| РасчетыСКлиентамиПоДокументам.ЗаказКлиента.Менеджер В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)
| И РасчетыСКлиентамиПоДокументам.Период МЕЖДУ &НачалоПериода И &ОкончаниеПериода
| И РасчетыСКлиентамиПоДокументам.Предоплата <> 0
| И РасчетыСКлиентамиПоДокументам.ЗаказКлиента.Партнер <> ЗНАЧЕНИЕ(Справочник.Партнеры.РозничныйПокупатель)
| И (РасчетыСКлиентамиПоДокументам.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.РАСХОД)
| И (РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.РасходныйКассовыйОрдер
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.ОперацияПоПлатежнойКарте
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.ПоступлениеБезналичныхДенежныхСредств
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.ПриходныйКассовыйОрдер
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.РасходныйКассовыйОрдер
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.СписаниеБезналичныхДенежныхСредств
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.КорректировкаЗадолженности)
| ИЛИ РасчетыСКлиентамиПоДокументам.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
| И (РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.АктВыполненныхРабот
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.ЗаказКлиента
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.КорректировкаРеализации
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг
| ИЛИ РасчетыСКлиентамиПоДокументам.Регистратор ССЫЛКА Документ.РеализацияУслугПрочихАктивов))
| И РасчетыСКлиентамиПоДокументам.Активность
|
| СГРУППИРОВАТЬ ПО
| РасчетыСКлиентамиПоДокументам.РасчетныйДокумент,
| РасчетыСКлиентамиПоДокументам.ЗаказКлиента.Менеджер,
| РасчетыСКлиентамиПоДокументам.Валюта
|
| ИМЕЮЩИЕ
| СУММА(ВЫБОР
| КОГДА РасчетыСКлиентамиПоДокументам.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.РАСХОД)
| ТОГДА РасчетыСКлиентамиПоДокументам.Предоплата
| ИНАЧЕ -РасчетыСКлиентамиПоДокументам.Предоплата
| КОНЕЦ) > 0) КАК ВложенныйЗапрос
|
| СГРУППИРОВАТЬ ПО
| ВложенныйЗапрос.ЗаказКлиентаМенеджер,
| ВложенныйЗапрос.Валюта) КАК ВложенныйЗапрос
|
|СГРУППИРОВАТЬ ПО
| ВложенныйЗапрос.Менеджер,
| ВложенныйЗапрос.Валюта
|;
|
|
|
|ВЫБРАТЬ
| ЕСТЬNULL(ВложенныйЗапрос.Менеджер, &НеУказан) КАК Менеджер,
| СУММА(ВложенныйЗапрос.Показатель) КАК ПоступлениеДС_МинусСебестоимость
|ИЗ
| (ВЫБРАТЬ
| ТекущийПериодПоступлениеДС_МинусСебестоимостьПродажВалюты.Менеджер,
| ВЫБОР
| КОГДА ТекущийПериодПоступлениеДС_МинусСебестоимостьПродажВалюты.Валюта = &ВалютаУправленческогоУчета
| ТОГДА ТекущийПериодПоступлениеДС_МинусСебестоимостьПродажВалюты.ПоступлениеДС
| ИНАЧЕ ВЫБОР
| КОГДА ЕСТЬNULL(КурсВалютыУправленческогоУчета.СредневзвешенныйКурс, 0) = 0
| ТОГДА 0
| ИНАЧЕ ТекущийПериодПоступлениеДС_МинусСебестоимостьПродажВалюты.ПоступлениеДС * ЕСТЬNULL(КурсыПрочиеВалюты.СредневзвешенныйКурс, 0) / ЕСТЬNULL(КурсВалютыУправленческогоУчета.СредневзвешенныйКурс, 0)
| КОНЕЦ
| КОНЕЦ КАК Показатель
| ИЗ
| ТекущийПериодПоступлениеДС_МинусСебестоимостьПродажВалюты КАК ТекущийПериодПоступлениеДС_МинусСебестоимостьПродажВалюты
| ЛЕВОЕ СОЕДИНЕНИЕ СреднеВзвешенныеКурсыВалютЗаТекущийПериод КАК КурсыПрочиеВалюты
| ПО ТекущийПериодПоступлениеДС_МинусСебестоимостьПродажВалюты.Валюта = КурсыПрочиеВалюты.Валюта
| ЛЕВОЕ СОЕДИНЕНИЕ СреднеВзвешенныеКурсыВалютЗаТекущийПериод КАК КурсВалютыУправленческогоУчета
| ПО (&ВалютаУправленческогоУчета = КурсВалютыУправленческогоУчета.Валюта)
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ВыручкаИСебестоимостьПродажОбороты.ЗаказКлиента.Менеджер,
| -ВыручкаИСебестоимостьПродажОбороты.СтоимостьОборот
| ИЗ
| РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(&НачалоПериода, &ОкончаниеПериода, , АналитикаУчетаПоПартнерам.Партнер <> ЗНАЧЕНИЕ(Справочник.Партнеры.РозничныйПокупатель) И ЗаказКлиента.Менеджер В (ВЫБРАТЬ ОтборПоМенеджерам.Ссылка ИЗ ОтборПоМенеджерам КАК ОтборПоМенеджерам)) КАК ВыручкаИСебестоимостьПродажОбороты) КАК ВложенныйЗапрос
|
|СГРУППИРОВАТЬ ПО
| ЕСТЬNULL(ВложенныйЗапрос.Менеджер, &НеУказан)
|
|УПОРЯДОЧИТЬ ПО
| ПоступлениеДС_МинусСебестоимость УБЫВ
|;
|
|
|";
КонецЕсли;
КонецЕсли;
КонецФункции
Функция ТекстЗапросаОПотеряхВРезультатеПросроченнойДебиторки(СоответствиеЗапросыДанные,НомерПоследнегоПакета, СтруктураПериодовФормированияОтчета)
Если СтруктураПериодовФормированияОтчета.ЕстьДополнительныйПериод Тогда
СоответствиеЗапросыДанные.Вставить("ПотериПросроченнаяДебиторка",НомерПоследнегоПакета + 3);
НомерПоследнегоПакета = НомерПоследнегоПакета + 3;
Иначе
СоответствиеЗапросыДанные.Вставить("ПотериПросроченнаяДебиторка",НомерПоследнегоПакета + 1);
НомерПоследнегоПакета = НомерПоследнегоПакета + 1;
КонецЕсли;
Если ПолучитьФункциональнуюОпцию("НоваяАрхитектураВзаиморасчетов") Тогда
Если СтруктураПериодовФормированияОтчета.ЕстьДополнительныйПериод Тогда
Возврат "ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ЕСТЬNULL(ВложенныйЗапрос.Менеджер, &НеУказан) КАК Менеджер,
| СУММА(ВложенныйЗапрос.Показатель) КАК Показатель
|ПОМЕСТИТЬ ТекущийПериодПотериВРезультатеПросроченнойДебиторки
|ИЗ
| (ВЫБРАТЬ
| РасчетыСКлиентамиПоСрокам.ОбъектРасчетов.Менеджер КАК Менеджер,
| -РасчетыСКлиентамиПоСрокам.ДолгУпр * РАЗНОСТЬДАТ(НАЧАЛОПЕРИОДА(РасчетыСКлиентамиПоСрокам.ДатаПлановогоПогашения, ДЕНЬ), РасчетыСКлиентамиПоСрокам.Период, ДЕНЬ) * &ПроцентнаяСтавкаСтоимостиДенег / 36500 КАК Показатель
| ИЗ
| РегистрНакопления.РасчетыСКлиентамиПоСрокам КАК РасчетыСКлиентамиПоСрокам
| ГДЕ
| РасчетыСКлиентамиПоСрокам.ДолгУпр > 0
| И РасчетыСКлиентамиПоСрокам.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
| И НАЧАЛОПЕРИОДА(РасчетыСКлиентамиПоСрокам.Период, ДЕНЬ) > РасчетыСКлиентамиПоСрокам.ДатаПлановогоПогашения
| И РасчетыСКлиентамиПоСрокам.Период МЕЖДУ &НачалоПериода И &ОкончаниеПериода
| И РасчетыСКлиентамиПоСрокам.ОбъектРасчетов В (ВЫБРАТЬ ОбъектРасчетов ИЗ ОбъектыРасчетовМенеджеров)
| И РасчетыСКлиентамиПоСрокам.Активность
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| РасчетыСКлиентамиПоСрокамОстатки.ОбъектРасчетов.Менеджер,
| РасчетыСКлиентамиПоСрокамОстатки.ДолгУпрОстаток * РАЗНОСТЬДАТ(НАЧАЛОПЕРИОДА(РасчетыСКлиентамиПоСрокамОстатки.ДатаПлановогоПогашения, ДЕНЬ), &ОкончаниеПериода, ДЕНЬ) * &ПроцентнаяСтавкаСтоимостиДенег / 36500
| ИЗ
| РегистрНакопления.РасчетыСКлиентамиПоСрокам.Остатки(&ОкончаниеПериода,
| ОбъектРасчетов В (ВЫБРАТЬ ОбъектРасчетов ИЗ ОбъектыРасчетовМенеджеров)
| ) КАК РасчетыСКлиентамиПоСрокамОстатки
| ГДЕ
| РасчетыСКлиентамиПоСрокамОстатки.ДолгУпрОстаток > 0
| И РасчетыСКлиентамиПоСрокамОстатки.ДатаПлановогоПогашения < &ОкончаниеПериода) КАК ВложенныйЗапрос
|
|СГРУППИРОВАТЬ ПО
| ЕСТЬNULL(ВложенныйЗапрос.Менеджер, &НеУказан)
|;
|
|
|
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ЕСТЬNULL(ВложенныйЗапрос.Менеджер, &НеУказан) КАК Менеджер,
| СУММА(ВложенныйЗапрос.Показатель) КАК Показатель
|ПОМЕСТИТЬ ПредыдущийПериодПотериВРезультатеПросроченнойДебиторки
|ИЗ
| (ВЫБРАТЬ
| РасчетыСКлиентамиПоСрокам.ОбъектРасчетов.Менеджер КАК Менеджер,
| -РасчетыСКлиентамиПоСрокам.ДолгУпр * РАЗНОСТЬДАТ(НАЧАЛОПЕРИОДА(РасчетыСКлиентамиПоСрокам.ДатаПлановогоПогашения, ДЕНЬ), РасчетыСКлиентамиПоСрокам.Период, ДЕНЬ) * &ПроцентнаяСтавкаСтоимостиДенег / 36500 КАК Показатель
| ИЗ
| РегистрНакопления.РасчетыСКлиентамиПоСрокам КАК РасчетыСКлиентамиПоСрокам
| ГДЕ
| РасчетыСКлиентамиПоСрокам.ДолгУпр > 0
| И РасчетыСКлиентамиПоСрокам.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
| И НАЧАЛОПЕРИОДА(РасчетыСКлиентамиПоСрокам.Период, ДЕНЬ) > РасчетыСКлиентамиПоСрокам.ДатаПлановогоПогашения
| И РасчетыСКлиентамиПоСрокам.Период МЕЖДУ &ДатаНачалаДополнительныйПериод И &ДатаОкончанияДополнительныйПериод
| И РасчетыСКлиентамиПоСрокам.ОбъектРасчетов В (ВЫБРАТЬ ОбъектРасчетов ИЗ ОбъектыРасчетовМенеджеров)
| И РасчетыСКлиентамиПоСрокам.Активность
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| РасчетыСКлиентамиПоДокументамОстатки.ОбъектРасчетов.Менеджер,
| РасчетыСКлиентамиПоДокументамОстатки.ДолгУпрОстаток * РАЗНОСТЬДАТ(НАЧАЛОПЕРИОДА(РасчетыСКлиентамиПоДокументамОстатки.ДатаПлановогоПогашения, ДЕНЬ), &ДатаОкончанияДополнительныйПериод, ДЕНЬ) * &ПроцентнаяСтавкаСтоимостиДенег / 36500
| ИЗ
| РегистрНакопления.РасчетыСКлиентамиПоСрокам.Остатки(
| &ДатаОкончанияДополнительныйПериод,
| ОбъектРасчетов В (ВЫБРАТЬ ОбъектРасчетов ИЗ ОбъектыРасчетовМенеджеров)
| ) КАК РасчетыСКлиентамиПоДокументамОстатки
| ГДЕ
| РасчетыСКлиентамиПоДокументамОстатки.ДолгУпрОстаток > 0
| И РасчетыСКлиентамиПоДокументамОстатки.ДатаПлановогоПогашения < &ОкончаниеПериода) КАК ВложенныйЗапрос
| СГРУППИРОВАТЬ ПО
| ЕСТЬNULL(ВложенныйЗапрос.Менеджер, &НеУказан)
|
|;
|
|
|
|ВЫБРАТЬ
| ЕСТЬNULL(ВложенныйЗапрос.Менеджер, &НеУказан) КАК Менеджер,
| ВложенныйЗапрос.Текущий,
| ВложенныйЗапрос.Предыдущий,
| ВЫБОР
| КОГДА ВложенныйЗапрос.Текущий - ВложенныйЗапрос.Предыдущий > 0
| ТОГДА ВложенныйЗапрос.Текущий - ВложенныйЗапрос.Предыдущий
| ИНАЧЕ 0
| КОНЕЦ КАК Прирост,
| ВЫБОР
| КОГДА ВложенныйЗапрос.Текущий - ВложенныйЗапрос.Предыдущий < 0
| ТОГДА ВложенныйЗапрос.Текущий - ВложенныйЗапрос.Предыдущий
| ИНАЧЕ 0
| КОНЕЦ КАК Спад
|ИЗ
| (ВЫБРАТЬ
| ВЫБОР
| КОГДА ПредыдущийПериод.Менеджер ЕСТЬ NULL
| ТОГДА ТекущийПериод.Менеджер
| ИНАЧЕ ПредыдущийПериод.Менеджер
| КОНЕЦ КАК Менеджер,
| СУММА(ЕСТЬNULL(ПредыдущийПериод.Показатель, 0)) КАК Предыдущий,
| СУММА(ЕСТЬNULL(ТекущийПериод.Показатель, 0)) КАК Текущий
| ИЗ
| ПредыдущийПериодПотериВРезультатеПросроченнойДебиторки КАК ПредыдущийПериод
| ПОЛНОЕ СОЕДИНЕНИЕ ТекущийПериодПотериВРезультатеПросроченнойДебиторки КАК ТекущийПериод
| ПО ПредыдущийПериод.Менеджер = ТекущийПериод.Менеджер
|
| СГРУППИРОВАТЬ ПО
| ВЫБОР
| КОГДА ПредыдущийПериод.Менеджер ЕСТЬ NULL
| ТОГДА ТекущийПериод.Менеджер
| ИНАЧЕ ПредыдущийПериод.Менеджер
| КОНЕЦ) КАК ВложенныйЗапрос
|
|УПОРЯДОЧИТЬ ПО
| ВложенныйЗапрос.Текущий
|;
|
|";
Иначе
Возврат "
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ЕСТЬNULL(ВложенныйЗапрос.Менеджер, &НеУказан) КАК Менеджер,
| СУММА(ВложенныйЗапрос.Показатель) КАК ПотериДебиторка
|ИЗ
| (ВЫБРАТЬ
| РасчетыСКлиентамиПоСрокам.ОбъектРасчетов.Менеджер КАК Менеджер,
| -РасчетыСКлиентамиПоСрокам.ДолгУпр * РАЗНОСТЬДАТ(НАЧАЛОПЕРИОДА(РасчетыСКлиентамиПоСрокам.ДатаПлановогоПогашения, ДЕНЬ), РасчетыСКлиентамиПоСрокам.Период, ДЕНЬ) * &ПроцентнаяСтавкаСтоимостиДенег / 36500 КАК Показатель
| ИЗ
| РегистрНакопления.РасчетыСКлиентамиПоСрокам КАК РасчетыСКлиентамиПоСрокам
| ГДЕ
| РасчетыСКлиентамиПоСрокам.ДолгУпр > 0
| И РасчетыСКлиентамиПоСрокам.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
| И НАЧАЛОПЕРИОДА(РасчетыСКлиентамиПоСрокам.Период, ДЕНЬ) > РасчетыСКлиентамиПоСрокам.ДатаПлановогоПогашения
| И РасчетыСКлиентамиПоСрокам.Период МЕЖДУ &НачалоПериода И &ОкончаниеПериода
| И РасчетыСКлиентамиПоСрокам.ОбъектРасчетов В (ВЫБРАТЬ ОбъектРасчетов ИЗ ОбъектыРасчетовМенеджеров)
| И РасчетыСКлиентамиПоСрокам.Активность
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| РасчетыСКлиентамиПоСрокамОстатки.ОбъектРасчетов.Менеджер,
| РасчетыСКлиентамиПоСрокамОстатки.ДолгУпрОстаток * РАЗНОСТЬДАТ(НАЧАЛОПЕРИОДА(РасчетыСКлиентамиПоСрокамОстатки.ДатаПлановогоПогашения, ДЕНЬ), &ОкончаниеПериода, ДЕНЬ) * &ПроцентнаяСтавкаСтоимостиДенег / 36500
| ИЗ
| РегистрНакопления.РасчетыСКлиентамиПоСрокам.Остатки(
| &ОкончаниеПериода, ОбъектРасчетов В (ВЫБРАТЬ ОбъектРасчетов ИЗ ОбъектыРасчетовМенеджеров)
| ) КАК РасчетыСКлиентамиПоСрокамОстатки
| ГДЕ
| РасчетыСКлиентамиПоСрокамОстатки.ДолгУпрОстаток > 0
| И РасчетыСКлиентамиПоСрокамОстатки.ДатаПлановогоПогашения < &ОкончаниеПериода) КАК ВложенныйЗапрос
|
|СГРУППИРОВАТЬ ПО
| ЕСТЬNULL(ВложенныйЗапрос.Менеджер, &НеУказан)
|
|УПОРЯДОЧИТЬ ПО
| ПотериДебиторка
|;
|
|
|";
КонецЕсли;
Иначе
Если СтруктураПериодовФормированияОтчета.ЕстьДополнительныйПериод Тогда
Возврат "ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ЕСТЬNULL(ВложенныйЗапрос.ЗаказКлиентаМенеджер, &НеУказан) КАК Менеджер,
| СУММА(ВложенныйЗапрос.Показатель) КАК Показатель
|ПОМЕСТИТЬ ТекущийПериодПотериВРезультатеПросроченнойДебиторки
|ИЗ
| (ВЫБРАТЬ
| РасчетыСКлиентамиПоДокументам.ЗаказКлиента.Менеджер КАК ЗаказКлиентаМенеджер,
| ВЫБОР
| КОГДА РасчетыСКлиентамиПоДокументам.Валюта = Константы.ВалютаУправленческогоУчета
| ТОГДА РасчетыСКлиентамиПоДокументам.Долг
| ИНАЧЕ ВЫБОР
| КОГДА ЕСТЬNULL(КурсВалютыУправленческогоУчета.СредневзвешенныйКурс, 0) = 0
| ТОГДА 0
| ИНАЧЕ РасчетыСКлиентамиПоДокументам.Долг * ЕСТЬNULL(КурсыПрочиеВалюты.СредневзвешенныйКурс, 0) / ЕСТЬNULL(КурсВалютыУправленческогоУчета.СредневзвешенныйКурс, 0)
| КОНЕЦ
| КОНЕЦ * РАЗНОСТЬДАТ(НАЧАЛОПЕРИОДА(РасчетыСКлиентамиПоДокументам.ДатаПлатежа, ДЕНЬ), РасчетыСКлиентамиПоДокументам.Регистратор.Дата, ДЕНЬ) * &ПроцентнаяСтавкаСтоимостиДенег / 36500 КАК Показатель
| ИЗ
| РегистрНакопления.РасчетыСКлиентамиПоДокументам КАК РасчетыСКлиентамиПоДокументам
|
| ЛЕВОЕ СОЕДИНЕНИЕ СреднеВзвешенныеКурсыВалютЗаТекущийПериод КАК КурсыПрочиеВалюты
| ПО РасчетыСКлиентамиПоДокументам.Валюта = КурсыПрочиеВалюты.Валюта,
| Константы КАК Константы
|
| ЛЕВОЕ СОЕДИНЕНИЕ СреднеВзвешенныеКурсыВалютЗаТекущийПериод КАК КурсВалютыУправленческогоУчета
| ПО (Константы.ВалютаУправленческогоУчета = КурсВалютыУправленческогоУчета.Валюта)
| ГДЕ
| РасчетыСКлиентамиПоДокументам.ВидДвижения = &ВидДвиженияРасход
| И РасчетыСКлиентамиПоДокументам.Долг > 0
| И НАЧАЛОПЕРИОДА(РасчетыСКлиентамиПоДокументам.Период, ДЕНЬ) > РасчетыСКлиентамиПоДокументам.ДатаПлатежа
| И РасчетыСКлиентамиПоДокументам.Регистратор.Дата МЕЖДУ &НачалоПериода И &ОкончаниеПериода
| И КурсВалютыУправленческогоУчета.Валюта = Константы.ВалютаУправленческогоУчета И ЗаказКлиента.Менеджер В (ВЫБРАТЬ ОтборПоМенеджерам.Ссылка ИЗ ОтборПоМенеджерам КАК ОтборПоМенеджерам)
| И РасчетыСКлиентамиПоДокументам.Активность
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| РасчетыСКлиентамиПоДокументамОстатки.ЗаказКлиента.Менеджер,
| (ВЫБОР КОГДА РасчетыСКлиентамиПоДокументамОстатки.Валюта = Константы.ВалютаУправленческогоУчета
| ТОГДА РасчетыСКлиентамиПоДокументамОстатки.ДолгОстаток
| ИНАЧЕ
| ВЫБОР КОГДА ЕСТЬNULL(КурсВалютыУправленческогоУчета.СредневзвешенныйКурс, 0) = 0
| ТОГДА 0
| ИНАЧЕ РасчетыСКлиентамиПоДокументамОстатки.ДолгОстаток * ЕСТЬNULL(КурсыПрочиеВалюты.СредневзвешенныйКурс, 0) / ЕСТЬNULL(КурсВалютыУправленческогоУчета.СредневзвешенныйКурс, 0)
| КОНЕЦ
| КОНЕЦ) * РАЗНОСТЬДАТ(НАЧАЛОПЕРИОДА(Остатки.ДатаПлатежа, ДЕНЬ), &ОкончаниеПериода, ДЕНЬ)
| * &ПроцентнаяСтавкаСтоимостиДенег / 36500
| ИЗ
| РегистрНакопления.РасчетыСКлиентамиПоДокументам.Остатки(&ОкончаниеПериода,
| ЗаказКлиента.Менеджер В (
| ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ ОтборПоМенеджерам КАК ОтборПоМенеджерам
| )) КАК РасчетыСКлиентамиПоДокументамОстатки
|
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ТаблицаОстатковКлиентов КАК Остатки
| ПО РасчетыСКлиентамиПоДокументамОстатки.АналитикаУчетаПоПартнерам = Остатки.АналитикаУчетаПоПартнерам
| И РасчетыСКлиентамиПоДокументамОстатки.ЗаказКлиента = Остатки.ЗаказКлиента
| И РасчетыСКлиентамиПоДокументамОстатки.РасчетныйДокумент = Остатки.РасчетныйДокумент
| И РасчетыСКлиентамиПоДокументамОстатки.Валюта = Остатки.Валюта
| И Остатки.ДатаПлатежа < &ОкончаниеПериода
|
| ЛЕВОЕ СОЕДИНЕНИЕ СреднеВзвешенныеКурсыВалютЗаТекущийПериод КАК КурсыПрочиеВалюты
| ПО РасчетыСКлиентамиПоДокументамОстатки.Валюта = КурсыПрочиеВалюты.Валюта,
| Константы КАК Константы
|
| ЛЕВОЕ СОЕДИНЕНИЕ СреднеВзвешенныеКурсыВалютЗаТекущийПериод КАК КурсВалютыУправленческогоУчета
| ПО (Константы.ВалютаУправленческогоУчета = КурсВалютыУправленческогоУчета.Валюта)
| ГДЕ
| РасчетыСКлиентамиПоДокументамОстатки.ДолгОстаток > 0
| ) КАК ВложенныйЗапрос
|
|СГРУППИРОВАТЬ ПО
| ЕСТЬNULL(ВложенныйЗапрос.ЗаказКлиентаМенеджер, &НеУказан)
|;
|
|
|
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ЕСТЬNULL(ВложенныйЗапрос.ЗаказКлиентаМенеджер, &НеУказан) КАК Менеджер,
| СУММА(ВложенныйЗапрос.Показатель) КАК Показатель
|ПОМЕСТИТЬ ПредыдущийПериодПотериВРезультатеПросроченнойДебиторки
|ИЗ
| (ВЫБРАТЬ
| РасчетыСКлиентамиПоДокументам.ЗаказКлиента.Менеджер КАК ЗаказКлиентаМенеджер,
| ВЫБОР
| КОГДА РасчетыСКлиентамиПоДокументам.Валюта = Константы.ВалютаУправленческогоУчета
| ТОГДА РасчетыСКлиентамиПоДокументам.Долг
| ИНАЧЕ ВЫБОР
| КОГДА ЕСТЬNULL(КурсВалютыУправленческогоУчета.СредневзвешенныйКурс, 0) = 0
| ТОГДА 0
| ИНАЧЕ РасчетыСКлиентамиПоДокументам.Долг * ЕСТЬNULL(КурсыПрочиеВалюты.СредневзвешенныйКурс, 0) / ЕСТЬNULL(КурсВалютыУправленческогоУчета.СредневзвешенныйКурс, 0)
| КОНЕЦ
| КОНЕЦ * РАЗНОСТЬДАТ(НАЧАЛОПЕРИОДА(РасчетыСКлиентамиПоДокументам.ДатаПлатежа, ДЕНЬ), РасчетыСКлиентамиПоДокументам.Регистратор.Дата, ДЕНЬ) * &ПроцентнаяСтавкаСтоимостиДенег / 36500 КАК Показатель
| ИЗ
| РегистрНакопления.РасчетыСКлиентамиПоДокументам КАК РасчетыСКлиентамиПоДокументам
| ЛЕВОЕ СОЕДИНЕНИЕ СреднеВзвешенныеКурсыВалютЗаДополнительныйПериод КАК КурсыПрочиеВалюты
| ПО РасчетыСКлиентамиПоДокументам.Валюта = КурсыПрочиеВалюты.Валюта,
| Константы КАК Константы
| ЛЕВОЕ СОЕДИНЕНИЕ СреднеВзвешенныеКурсыВалютЗаДополнительныйПериод КАК КурсВалютыУправленческогоУчета
| ПО (Константы.ВалютаУправленческогоУчета = КурсВалютыУправленческогоУчета.Валюта)
| ГДЕ
| РасчетыСКлиентамиПоДокументам.ВидДвижения = &ВидДвиженияРасход
| И РасчетыСКлиентамиПоДокументам.Долг > 0
| И НАЧАЛОПЕРИОДА(РасчетыСКлиентамиПоДокументам.Период, ДЕНЬ) > РасчетыСКлиентамиПоДокументам.ДатаПлатежа
| И РасчетыСКлиентамиПоДокументам.Регистратор.Дата МЕЖДУ &ДатаНачалаДополнительныйПериод И &ДатаОкончанияДополнительныйПериод
| И КурсВалютыУправленческогоУчета.Валюта = Константы.ВалютаУправленческогоУчета И ЗаказКлиента.Менеджер В (ВЫБРАТЬ ОтборПоМенеджерам.Ссылка ИЗ ОтборПоМенеджерам КАК ОтборПоМенеджерам)
| И РасчетыСКлиентамиПоДокументам.Активность
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| РасчетыСКлиентамиПоДокументамОстатки.ЗаказКлиента.Менеджер,
| ВЫБОР
| КОГДА РасчетыСКлиентамиПоДокументамОстатки.Валюта = Константы.ВалютаУправленческогоУчета
| ТОГДА РасчетыСКлиентамиПоДокументамОстатки.ДолгОстаток
| ИНАЧЕ ВЫБОР
| КОГДА ЕСТЬNULL(КурсВалютыУправленческогоУчета.СредневзвешенныйКурс, 0) = 0
| ТОГДА 0
| ИНАЧЕ РасчетыСКлиентамиПоДокументамОстатки.ДолгОстаток * ЕСТЬNULL(КурсыПрочиеВалюты.СредневзвешенныйКурс, 0) / ЕСТЬNULL(КурсВалютыУправленческогоУчета.СредневзвешенныйКурс, 0)
| КОНЕЦ
| КОНЕЦ * РАЗНОСТЬДАТ(НАЧАЛОПЕРИОДА(Остатки.ДатаПлатежа, ДЕНЬ), &ДатаОкончанияДополнительныйПериод, ДЕНЬ) * &ПроцентнаяСтавкаСтоимостиДенег / 36500
| ИЗ
| РегистрНакопления.РасчетыСКлиентамиПоДокументам.Остатки(
| &ДатаОкончанияДополнительныйПериод,
| ЗаказКлиента.Менеджер В (
| ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ ОтборПоМенеджерам КАК ОтборПоМенеджерам
| )
| ) КАК РасчетыСКлиентамиПоДокументамОстатки
|
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ТаблицаОстатковКлиентов КАК Остатки
| ПО РасчетыСКлиентамиПоДокументамОстатки.АналитикаУчетаПоПартнерам = Остатки.АналитикаУчетаПоПартнерам
| И РасчетыСКлиентамиПоДокументамОстатки.ЗаказКлиента = Остатки.ЗаказКлиента
| И РасчетыСКлиентамиПоДокументамОстатки.РасчетныйДокумент = Остатки.РасчетныйДокумент
| И РасчетыСКлиентамиПоДокументамОстатки.Валюта = Остатки.Валюта
| И Остатки.ДатаПлатежа < &ДатаОкончанияДополнительныйПериод
|
| ЛЕВОЕ СОЕДИНЕНИЕ СреднеВзвешенныеКурсыВалютЗаДополнительныйПериод КАК КурсыПрочиеВалюты
| ПО РасчетыСКлиентамиПоДокументамОстатки.Валюта = КурсыПрочиеВалюты.Валюта,
| Константы КАК Константы
|
| ЛЕВОЕ СОЕДИНЕНИЕ СреднеВзвешенныеКурсыВалютЗаДополнительныйПериод КАК КурсВалютыУправленческогоУчета
| ПО (Константы.ВалютаУправленческогоУчета = КурсВалютыУправленческогоУчета.Валюта)
| ГДЕ
| РасчетыСКлиентамиПоДокументамОстатки.ДолгОстаток > 0) КАК ВложенныйЗапрос
|
|СГРУППИРОВАТЬ ПО
| ЕСТЬNULL(ВложенныйЗапрос.ЗаказКлиентаМенеджер, &НеУказан)
|
|;
|
|
|
|ВЫБРАТЬ
| ЕСТЬNULL(ВложенныйЗапрос.Менеджер, &НеУказан) КАК Менеджер,
| ВложенныйЗапрос.Текущий,
| ВложенныйЗапрос.Предыдущий,
| ВЫБОР
| КОГДА ВложенныйЗапрос.Текущий - ВложенныйЗапрос.Предыдущий > 0
| ТОГДА ВложенныйЗапрос.Текущий - ВложенныйЗапрос.Предыдущий
| ИНАЧЕ 0
| КОНЕЦ КАК Прирост,
| ВЫБОР
| КОГДА ВложенныйЗапрос.Текущий - ВложенныйЗапрос.Предыдущий < 0
| ТОГДА ВложенныйЗапрос.Текущий - ВложенныйЗапрос.Предыдущий
| ИНАЧЕ 0
| КОНЕЦ КАК Спад
|ИЗ
| (ВЫБРАТЬ
| ВЫБОР
| КОГДА ПредыдущийПериод.Менеджер ЕСТЬ NULL
| ТОГДА ТекущийПериод.Менеджер
| ИНАЧЕ ПредыдущийПериод.Менеджер
| КОНЕЦ КАК Менеджер,
| СУММА(ЕСТЬNULL(ПредыдущийПериод.Показатель, 0)) КАК Предыдущий,
| СУММА(ЕСТЬNULL(ТекущийПериод.Показатель, 0)) КАК Текущий
| ИЗ
| ПредыдущийПериодПотериВРезультатеПросроченнойДебиторки КАК ПредыдущийПериод
| ПОЛНОЕ СОЕДИНЕНИЕ ТекущийПериодПотериВРезультатеПросроченнойДебиторки КАК ТекущийПериод
| ПО ПредыдущийПериод.Менеджер = ТекущийПериод.Менеджер
|
| СГРУППИРОВАТЬ ПО
| ВЫБОР
| КОГДА ПредыдущийПериод.Менеджер ЕСТЬ NULL
| ТОГДА ТекущийПериод.Менеджер
| ИНАЧЕ ПредыдущийПериод.Менеджер
| КОНЕЦ) КАК ВложенныйЗапрос
|
|УПОРЯДОЧИТЬ ПО
| ВложенныйЗапрос.Текущий
|;
|
|";
Иначе
Возврат "ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ЕСТЬNULL(ВложенныйЗапрос.ЗаказКлиентаМенеджер, &НеУказан) КАК Менеджер,
| СУММА(ВложенныйЗапрос.Показатель) КАК ПотериДебиторка
|ИЗ
| (ВЫБРАТЬ
| РасчетыСКлиентамиПоДокументам.ЗаказКлиента.Менеджер КАК ЗаказКлиентаМенеджер,
| ВЫБОР
| КОГДА РасчетыСКлиентамиПоДокументам.Валюта = Константы.ВалютаУправленческогоУчета
| ТОГДА РасчетыСКлиентамиПоДокументам.Долг
| ИНАЧЕ ВЫБОР
| КОГДА ЕСТЬNULL(КурсВалютыУправленческогоУчета.СредневзвешенныйКурс, 0) = 0
| ТОГДА 0
| ИНАЧЕ РасчетыСКлиентамиПоДокументам.Долг * ЕСТЬNULL(КурсыПрочиеВалюты.СредневзвешенныйКурс, 0) / ЕСТЬNULL(КурсВалютыУправленческогоУчета.СредневзвешенныйКурс, 0)
| КОНЕЦ
| КОНЕЦ * РАЗНОСТЬДАТ(НАЧАЛОПЕРИОДА(РасчетыСКлиентамиПоДокументам.ДатаПлатежа, ДЕНЬ), РасчетыСКлиентамиПоДокументам.Регистратор.Дата, ДЕНЬ) * &ПроцентнаяСтавкаСтоимостиДенег / 36500 КАК Показатель
| ИЗ
| РегистрНакопления.РасчетыСКлиентамиПоДокументам КАК РасчетыСКлиентамиПоДокументам
| ЛЕВОЕ СОЕДИНЕНИЕ СреднеВзвешенныеКурсыВалютЗаТекущийПериод КАК КурсыПрочиеВалюты
| ПО РасчетыСКлиентамиПоДокументам.Валюта = КурсыПрочиеВалюты.Валюта,
| Константы КАК Константы
| ЛЕВОЕ СОЕДИНЕНИЕ СреднеВзвешенныеКурсыВалютЗаТекущийПериод КАК КурсВалютыУправленческогоУчета
| ПО (Константы.ВалютаУправленческогоУчета = КурсВалютыУправленческогоУчета.Валюта)
| ГДЕ
| РасчетыСКлиентамиПоДокументам.ВидДвижения = &ВидДвиженияРасход
| И РасчетыСКлиентамиПоДокументам.Долг > 0
| И НАЧАЛОПЕРИОДА(РасчетыСКлиентамиПоДокументам.Период, ДЕНЬ) > РасчетыСКлиентамиПоДокументам.ДатаПлатежа
| И РасчетыСКлиентамиПоДокументам.Регистратор.Дата МЕЖДУ &НачалоПериода И &ОкончаниеПериода
| И КурсВалютыУправленческогоУчета.Валюта = Константы.ВалютаУправленческогоУчета И ЗаказКлиента.Менеджер В (ВЫБРАТЬ ОтборПоМенеджерам.Ссылка ИЗ ОтборПоМенеджерам КАК ОтборПоМенеджерам)
| И РасчетыСКлиентамиПоДокументам.Активность
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| РасчетыСКлиентамиПоДокументамОстатки.ЗаказКлиента.Менеджер,
| ВЫБОР
| КОГДА РасчетыСКлиентамиПоДокументамОстатки.Валюта = Константы.ВалютаУправленческогоУчета
| ТОГДА РасчетыСКлиентамиПоДокументамОстатки.ДолгОстаток
| ИНАЧЕ ВЫБОР
| КОГДА ЕСТЬNULL(КурсВалютыУправленческогоУчета.СредневзвешенныйКурс, 0) = 0
| ТОГДА 0
| ИНАЧЕ РасчетыСКлиентамиПоДокументамОстатки.ДолгОстаток * ЕСТЬNULL(КурсыПрочиеВалюты.СредневзвешенныйКурс, 0) / ЕСТЬNULL(КурсВалютыУправленческогоУчета.СредневзвешенныйКурс, 0)
| КОНЕЦ
| КОНЕЦ * РАЗНОСТЬДАТ(НАЧАЛОПЕРИОДА(Остатки.ДатаПлатежа, ДЕНЬ), &ОкончаниеПериода, ДЕНЬ) * &ПроцентнаяСтавкаСтоимостиДенег / 36500
| ИЗ
| РегистрНакопления.РасчетыСКлиентамиПоДокументам.Остатки(
| &ОкончаниеПериода,ЗаказКлиента.Менеджер В (
| ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ ОтборПоМенеджерам КАК ОтборПоМенеджерам
| )
| ) КАК РасчетыСКлиентамиПоДокументамОстатки
|
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ТаблицаОстатковКлиентов КАК Остатки
| ПО РасчетыСКлиентамиПоДокументамОстатки.АналитикаУчетаПоПартнерам = Остатки.АналитикаУчетаПоПартнерам
| И РасчетыСКлиентамиПоДокументамОстатки.ЗаказКлиента = Остатки.ЗаказКлиента
| И РасчетыСКлиентамиПоДокументамОстатки.РасчетныйДокумент = Остатки.РасчетныйДокумент
| И РасчетыСКлиентамиПоДокументамОстатки.Валюта = Остатки.Валюта
| И Остатки.ДатаПлатежа < &ОкончаниеПериода
|
| ЛЕВОЕ СОЕДИНЕНИЕ СреднеВзвешенныеКурсыВалютЗаТекущийПериод КАК КурсыПрочиеВалюты
| ПО РасчетыСКлиентамиПоДокументамОстатки.Валюта = КурсыПрочиеВалюты.Валюта,
| Константы КАК Константы
|
| ЛЕВОЕ СОЕДИНЕНИЕ СреднеВзвешенныеКурсыВалютЗаТекущийПериод КАК КурсВалютыУправленческогоУчета
| ПО (Константы.ВалютаУправленческогоУчета = КурсВалютыУправленческогоУчета.Валюта)
| ГДЕ
| РасчетыСКлиентамиПоДокументамОстатки.ДолгОстаток > 0) КАК ВложенныйЗапрос
|
|СГРУППИРОВАТЬ ПО
| ЕСТЬNULL(ВложенныйЗапрос.ЗаказКлиентаМенеджер, &НеУказан)
|
|УПОРЯДОЧИТЬ ПО
| ПотериДебиторка
|;
|
|
|";
КонецЕсли;
КонецЕсли;
КонецФункции
Функция ТекстЗапросаОПредоставленныхРучныхСкидках(СоответствиеЗапросыДанные,НомерПоследнегоПакета, СтруктураПериодовФормированияОтчета)
Если СтруктураПериодовФормированияОтчета.ЕстьДополнительныйПериод Тогда
СоответствиеЗапросыДанные.Вставить("ПредоставленныеРучныеСкидки",НомерПоследнегоПакета + 3);
НомерПоследнегоПакета = НомерПоследнегоПакета + 3;
Возврат "ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ВложенныйЗапрос.Менеджер,
| ВложенныйЗапрос.Прибыль КАК Прибыль,
| ВложенныйЗапрос.СуммаРучнойСкидки,
| ВЫБОР
| КОГДА ВложенныйЗапрос.Прибыль = 0
| ТОГДА 0
| ИНАЧЕ ВложенныйЗапрос.СуммаРучнойСкидки / ВложенныйЗапрос.Прибыль * 100
| КОНЕЦ КАК ДоляСкидкиОтПрибыли
|ПОМЕСТИТЬ ТекущийПериодПредоставленныеРучныеСкидки
|ИЗ
| (ВЫБРАТЬ
| ЕСТЬNULL(ВложенныйЗапрос.Менеджер, &НеУказан) КАК Менеджер,
| СУММА(ВложенныйЗапрос.Прибыль) КАК Прибыль,
| СУММА(ВЫБОР
| КОГДА ВложенныйЗапрос.Валюта = Константы.ВалютаУправленческогоУчета
| ТОГДА ВложенныйЗапрос.СуммаРучнойСкидки
| ИНАЧЕ ВЫБОР
| КОГДА ЕСТЬNULL(КурсВалютыУправленческогоУчета.СредневзвешенныйКурс, 0) = 0
| ТОГДА 0
| ИНАЧЕ ВложенныйЗапрос.СуммаРучнойСкидки * ЕСТЬNULL(КурсыПрочиеВалюты.СредневзвешенныйКурс, 0) / ЕСТЬNULL(КурсВалютыУправленческогоУчета.СредневзвешенныйКурс, 0)
| КОНЕЦ
| КОНЕЦ) КАК СуммаРучнойСкидки
| ИЗ
| (ВЫБРАТЬ
| РеализацияТоваровУслуг.Менеджер КАК Менеджер,
| РеализацияТоваровУслуг.Валюта КАК Валюта,
| СУММА(РеализацияТоваровУслугТовары.СуммаРучнойСкидки) КАК СуммаРучнойСкидки,
| НАЧАЛОПЕРИОДА(РеализацияТоваровУслуг.Дата, ДЕНЬ) КАК ДатаДокумента,
| 0 КАК Прибыль
| ИЗ
| Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
| ПО РеализацияТоваровУслугТовары.Ссылка = РеализацияТоваровУслуг.Ссылка
| ГДЕ
| РеализацияТоваровУслуг.Проведен
| И РеализацияТоваровУслуг.Товары.СуммаРучнойСкидки <> 0
| И РеализацияТоваровУслуг.Дата МЕЖДУ &НачалоПериода И &ОкончаниеПериода
| И РеализацияТоваровУслуг.Менеджер В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)
|
| СГРУППИРОВАТЬ ПО
| РеализацияТоваровУслуг.Менеджер,
| РеализацияТоваровУслуг.Валюта,
| НАЧАЛОПЕРИОДА(РеализацияТоваровУслуг.Дата, ДЕНЬ)
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ВыручкаИСебестоимостьПродажОбороты.ЗаказКлиента.Менеджер,
| Константы.ВалютаУправленческогоУчета,
| 0,
| &ОкончаниеПериода,
| СУММА(ВыручкаИСебестоимостьПродажОбороты.СуммаВыручкиОборот - ВыручкаИСебестоимостьПродажОбороты.СтоимостьОборот)
| ИЗ
| РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(&НачалоПериода, &ОкончаниеПериода, , АналитикаУчетаПоПартнерам.Партнер <> ЗНАЧЕНИЕ(Справочник.Партнеры.РозничныйПокупатель) И ЗаказКлиента.Менеджер В (ВЫБРАТЬ ОтборПоМенеджерам.Ссылка ИЗ ОтборПоМенеджерам КАК ОтборПоМенеджерам)) КАК ВыручкаИСебестоимостьПродажОбороты,
| Константы КАК Константы
|
| СГРУППИРОВАТЬ ПО
| ВыручкаИСебестоимостьПродажОбороты.ЗаказКлиента.Менеджер,
| Константы.ВалютаУправленческогоУчета) КАК ВложенныйЗапрос
| ЛЕВОЕ СОЕДИНЕНИЕ СреднеВзвешенныеКурсыВалютЗаТекущийПериод КАК КурсВалютыУправленческогоУчета
| ПО (ИСТИНА)
| ЛЕВОЕ СОЕДИНЕНИЕ СреднеВзвешенныеКурсыВалютЗаТекущийПериод КАК КурсыПрочиеВалюты
| ПО ВложенныйЗапрос.Валюта = КурсыПрочиеВалюты.Валюта,
| Константы КАК Константы
| ГДЕ
| КурсВалютыУправленческогоУчета.Валюта = Константы.ВалютаУправленческогоУчета
|
| СГРУППИРОВАТЬ ПО
| ВложенныйЗапрос.Менеджер,
| ВЫБОР
| КОГДА ВложенныйЗапрос.Прибыль = 0
| ТОГДА 0
| ИНАЧЕ ВЫБОР
| КОГДА ВложенныйЗапрос.Валюта = Константы.ВалютаУправленческогоУчета
| ТОГДА ВложенныйЗапрос.СуммаРучнойСкидки
| ИНАЧЕ ВЫБОР
| КОГДА ЕСТЬNULL(КурсВалютыУправленческогоУчета.СредневзвешенныйКурс, 0) = 0
| ТОГДА 0
| ИНАЧЕ ВложенныйЗапрос.СуммаРучнойСкидки * ЕСТЬNULL(КурсыПрочиеВалюты.СредневзвешенныйКурс, 0) / ЕСТЬNULL(КурсВалютыУправленческогоУчета.СредневзвешенныйКурс, 0)
| КОНЕЦ
| КОНЕЦ / ВложенныйЗапрос.Прибыль
| КОНЕЦ) КАК ВложенныйЗапрос
|
|;
|
|
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ВложенныйЗапрос.Менеджер,
| ВложенныйЗапрос.Прибыль КАК Прибыль,
| ВложенныйЗапрос.СуммаРучнойСкидки,
| ВЫБОР
| КОГДА ВложенныйЗапрос.Прибыль = 0
| ТОГДА 0
| ИНАЧЕ ВложенныйЗапрос.СуммаРучнойСкидки / ВложенныйЗапрос.Прибыль * 100
| КОНЕЦ КАК ДоляСкидкиОтПрибыли
|ПОМЕСТИТЬ ПредыдущийПериодПредоставленныеРучныеСкидки
|ИЗ
| (ВЫБРАТЬ
| ЕСТЬNULL(ВложенныйЗапрос.Менеджер, &НеУказан) КАК Менеджер,
| СУММА(ВложенныйЗапрос.Прибыль) КАК Прибыль,
| СУММА(ВЫБОР
| КОГДА ВложенныйЗапрос.Валюта = Константы.ВалютаУправленческогоУчета
| ТОГДА ВложенныйЗапрос.СуммаРучнойСкидки
| ИНАЧЕ ВЫБОР
| КОГДА ЕСТЬNULL(КурсВалютыУправленческогоУчета.СредневзвешенныйКурс, 0) = 0
| ТОГДА 0
| ИНАЧЕ ВложенныйЗапрос.СуммаРучнойСкидки * ЕСТЬNULL(КурсыПрочиеВалюты.СредневзвешенныйКурс, 0) / ЕСТЬNULL(КурсВалютыУправленческогоУчета.СредневзвешенныйКурс, 0)
| КОНЕЦ
| КОНЕЦ) КАК СуммаРучнойСкидки
| ИЗ
| (ВЫБРАТЬ
| РеализацияТоваровУслуг.Менеджер КАК Менеджер,
| РеализацияТоваровУслуг.Валюта КАК Валюта,
| СУММА(РеализацияТоваровУслугТовары.СуммаРучнойСкидки) КАК СуммаРучнойСкидки,
| НАЧАЛОПЕРИОДА(РеализацияТоваровУслуг.Дата, ДЕНЬ) КАК ДатаДокумента,
| 0 КАК Прибыль
| ИЗ
| Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
| ПО РеализацияТоваровУслугТовары.Ссылка = РеализацияТоваровУслуг.Ссылка
| ГДЕ
| РеализацияТоваровУслуг.Проведен
| И РеализацияТоваровУслуг.Товары.СуммаРучнойСкидки <> 0
| И РеализацияТоваровУслуг.Дата МЕЖДУ &ДатаНачалаДополнительныйПериод И &ДатаОкончанияДополнительныйПериод
| И РеализацияТоваровУслуг.Менеджер В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)
|
| СГРУППИРОВАТЬ ПО
| РеализацияТоваровУслуг.Менеджер,
| РеализацияТоваровУслуг.Валюта,
| НАЧАЛОПЕРИОДА(РеализацияТоваровУслуг.Дата, ДЕНЬ)
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ВыручкаИСебестоимостьПродажОбороты.ЗаказКлиента.Менеджер,
| Константы.ВалютаУправленческогоУчета,
| 0,
| &ОкончаниеПериода,
| СУММА(ВыручкаИСебестоимостьПродажОбороты.СуммаВыручкиОборот - ВыручкаИСебестоимостьПродажОбороты.СтоимостьОборот)
| ИЗ
| РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(&ДатаНачалаДополнительныйПериод, &ДатаОкончанияДополнительныйПериод, , АналитикаУчетаПоПартнерам.Партнер <> ЗНАЧЕНИЕ(Справочник.Партнеры.РозничныйПокупатель) И ЗаказКлиента.Менеджер В (ВЫБРАТЬ ОтборПоМенеджерам.Ссылка ИЗ ОтборПоМенеджерам КАК ОтборПоМенеджерам)) КАК ВыручкаИСебестоимостьПродажОбороты,
| Константы КАК Константы
|
| СГРУППИРОВАТЬ ПО
| ВыручкаИСебестоимостьПродажОбороты.ЗаказКлиента.Менеджер,
| Константы.ВалютаУправленческогоУчета) КАК ВложенныйЗапрос
| ЛЕВОЕ СОЕДИНЕНИЕ СреднеВзвешенныеКурсыВалютЗаДополнительныйПериод КАК КурсВалютыУправленческогоУчета
| ПО (ИСТИНА)
| ЛЕВОЕ СОЕДИНЕНИЕ СреднеВзвешенныеКурсыВалютЗаДополнительныйПериод КАК КурсыПрочиеВалюты
| ПО ВложенныйЗапрос.Валюта = КурсыПрочиеВалюты.Валюта,
| Константы КАК Константы
| ГДЕ
| КурсВалютыУправленческогоУчета.Валюта = Константы.ВалютаУправленческогоУчета
|
| СГРУППИРОВАТЬ ПО
| ВложенныйЗапрос.Менеджер,
| ВЫБОР
| КОГДА ВложенныйЗапрос.Прибыль = 0
| ТОГДА 0
| ИНАЧЕ ВЫБОР
| КОГДА ВложенныйЗапрос.Валюта = Константы.ВалютаУправленческогоУчета
| ТОГДА ВложенныйЗапрос.СуммаРучнойСкидки
| ИНАЧЕ ВЫБОР
| КОГДА ЕСТЬNULL(КурсВалютыУправленческогоУчета.СредневзвешенныйКурс, 0) = 0
| ТОГДА 0
| ИНАЧЕ ВложенныйЗапрос.СуммаРучнойСкидки * ЕСТЬNULL(КурсыПрочиеВалюты.СредневзвешенныйКурс, 0) / ЕСТЬNULL(КурсВалютыУправленческогоУчета.СредневзвешенныйКурс, 0)
| КОНЕЦ
| КОНЕЦ / ВложенныйЗапрос.Прибыль
| КОНЕЦ) КАК ВложенныйЗапрос
|
|;
|
|
|
|ВЫБРАТЬ
|ЕСТЬNULL(ТекущийПериодПредоставленныеРучныеСкидки.Менеджер, ПредыдущийПериодПредоставленныеРучныеСкидки.Менеджер) КАК Менеджер,
|ЕСТЬNULL(ТекущийПериодПредоставленныеРучныеСкидки.Прибыль, 0) КАК ПрибыльТекущий,
|ЕСТЬNULL(ТекущийПериодПредоставленныеРучныеСкидки.СуммаРучнойСкидки, 0) КАК СуммаРучнойСкидкиТекущий,
|ЕСТЬNULL(ТекущийПериодПредоставленныеРучныеСкидки.ДоляСкидкиОтПрибыли, 0) КАК ДоляСкидкиОтПрибылиТекущий,
|ЕСТЬNULL(ПредыдущийПериодПредоставленныеРучныеСкидки.Прибыль, 0) КАК ПрибыльПредыдущий,
|ЕСТЬNULL(ПредыдущийПериодПредоставленныеРучныеСкидки.СуммаРучнойСкидки, 0) КАК СуммаРучнойСкидкиПредыдущий,
|ЕСТЬNULL(ПредыдущийПериодПредоставленныеРучныеСкидки.ДоляСкидкиОтПрибыли, 0) КАК ДоляСкидкиОтПрибылиПредыдущий
|ИЗ
|ТекущийПериодПредоставленныеРучныеСкидки КАК ТекущийПериодПредоставленныеРучныеСкидки
|ПОЛНОЕ СОЕДИНЕНИЕ ПредыдущийПериодПредоставленныеРучныеСкидки КАК ПредыдущийПериодПредоставленныеРучныеСкидки
|ПО ТекущийПериодПредоставленныеРучныеСкидки.Менеджер = ПредыдущийПериодПредоставленныеРучныеСкидки.Менеджер
|
|УПОРЯДОЧИТЬ ПО
| ДоляСкидкиОтПрибылиТекущий,
| ПрибыльТекущий
|;
|
|
|";
Иначе
СоответствиеЗапросыДанные.Вставить("ПредоставленныеРучныеСкидки",НомерПоследнегоПакета + 1);
НомерПоследнегоПакета = НомерПоследнегоПакета + 1;
Возврат "ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ВложенныйЗапрос.Менеджер,
| ВложенныйЗапрос.Прибыль КАК Прибыль,
| ВложенныйЗапрос.СуммаРучнойСкидки,
| ВЫБОР
| КОГДА ВложенныйЗапрос.Прибыль = 0
| ТОГДА 0
| ИНАЧЕ ВложенныйЗапрос.СуммаРучнойСкидки / ВложенныйЗапрос.Прибыль * 100
| КОНЕЦ КАК ДоляСкидкиОтПрибыли
|ИЗ
| (ВЫБРАТЬ
| ЕСТЬNULL(ВложенныйЗапрос.Менеджер, &НеУказан) КАК Менеджер,
| СУММА(ВложенныйЗапрос.Прибыль) КАК Прибыль,
| СУММА(ВЫБОР
| КОГДА ВложенныйЗапрос.Валюта = Константы.ВалютаУправленческогоУчета
| ТОГДА ВложенныйЗапрос.СуммаРучнойСкидки
| ИНАЧЕ ВЫБОР
| КОГДА ЕСТЬNULL(КурсВалютыУправленческогоУчета.СредневзвешенныйКурс, 0) = 0
| ТОГДА 0
| ИНАЧЕ ВложенныйЗапрос.СуммаРучнойСкидки * ЕСТЬNULL(КурсыПрочиеВалюты.СредневзвешенныйКурс, 0) / ЕСТЬNULL(КурсВалютыУправленческогоУчета.СредневзвешенныйКурс, 0)
| КОНЕЦ
| КОНЕЦ) КАК СуммаРучнойСкидки
| ИЗ
| (ВЫБРАТЬ
| РеализацияТоваровУслуг.Менеджер КАК Менеджер,
| РеализацияТоваровУслуг.Валюта КАК Валюта,
| СУММА(РеализацияТоваровУслугТовары.СуммаРучнойСкидки) КАК СуммаРучнойСкидки,
| НАЧАЛОПЕРИОДА(РеализацияТоваровУслуг.Дата, ДЕНЬ) КАК ДатаДокумента,
| 0 КАК Прибыль
| ИЗ
| Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
| ПО РеализацияТоваровУслугТовары.Ссылка = РеализацияТоваровУслуг.Ссылка
| ГДЕ
| РеализацияТоваровУслуг.Проведен
| И РеализацияТоваровУслуг.Товары.СуммаРучнойСкидки <> 0
| И РеализацияТоваровУслуг.Дата МЕЖДУ &НачалоПериода И &ОкончаниеПериода
| И РеализацияТоваровУслуг.Менеджер В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)
|
| СГРУППИРОВАТЬ ПО
| РеализацияТоваровУслуг.Менеджер,
| РеализацияТоваровУслуг.Валюта,
| НАЧАЛОПЕРИОДА(РеализацияТоваровУслуг.Дата, ДЕНЬ)
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ВыручкаИСебестоимостьПродажОбороты.ЗаказКлиента.Менеджер,
| Константы.ВалютаУправленческогоУчета,
| 0,
| &ОкончаниеПериода,
| СУММА(ВыручкаИСебестоимостьПродажОбороты.СуммаВыручкиОборот - ВыручкаИСебестоимостьПродажОбороты.СтоимостьОборот)
| ИЗ
| РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(
| &НачалоПериода,
| &ОкончаниеПериода,
| ,
| ЗаказКлиента.Менеджер В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам) И ЗаказКлиента.Партнер <> ЗНАЧЕНИЕ(Справочник.Партнеры.РозничныйПокупатель)) КАК ВыручкаИСебестоимостьПродажОбороты,
| Константы КАК Константы
|
| СГРУППИРОВАТЬ ПО
| ВыручкаИСебестоимостьПродажОбороты.ЗаказКлиента.Менеджер,
| Константы.ВалютаУправленческогоУчета) КАК ВложенныйЗапрос
| ЛЕВОЕ СОЕДИНЕНИЕ СреднеВзвешенныеКурсыВалютЗаТекущийПериод КАК КурсВалютыУправленческогоУчета
| ПО (ИСТИНА)
| ЛЕВОЕ СОЕДИНЕНИЕ СреднеВзвешенныеКурсыВалютЗаТекущийПериод КАК КурсыПрочиеВалюты
| ПО ВложенныйЗапрос.Валюта = КурсыПрочиеВалюты.Валюта,
| Константы КАК Константы
| ГДЕ
| КурсВалютыУправленческогоУчета.Валюта = Константы.ВалютаУправленческогоУчета
|
| СГРУППИРОВАТЬ ПО
| ВложенныйЗапрос.Менеджер,
| ВЫБОР
| КОГДА ВложенныйЗапрос.Прибыль = 0
| ТОГДА 0
| ИНАЧЕ ВЫБОР
| КОГДА ВложенныйЗапрос.Валюта = Константы.ВалютаУправленческогоУчета
| ТОГДА ВложенныйЗапрос.СуммаРучнойСкидки
| ИНАЧЕ ВЫБОР
| КОГДА ЕСТЬNULL(КурсВалютыУправленческогоУчета.СредневзвешенныйКурс, 0) = 0
| ТОГДА 0
| ИНАЧЕ ВложенныйЗапрос.СуммаРучнойСкидки * ЕСТЬNULL(КурсыПрочиеВалюты.СредневзвешенныйКурс, 0) / ЕСТЬNULL(КурсВалютыУправленческогоУчета.СредневзвешенныйКурс, 0)
| КОНЕЦ
| КОНЕЦ / ВложенныйЗапрос.Прибыль
| КОНЕЦ) КАК ВложенныйЗапрос
|
|УПОРЯДОЧИТЬ ПО
| ДоляСкидкиОтПрибыли,
| Прибыль
|;
|
|
|";
КонецЕсли;
КонецФункции
Функция ТекстЗапросаОЭффективностиВеденияСделок(СоответствиеЗапросыДанные,НомерПоследнегоПакета, СтруктураПериодовФормированияОтчета)
Если СтруктураПериодовФормированияОтчета.ЕстьДополнительныйПериод Тогда
СоответствиеЗапросыДанные.Вставить("ЭффективностьВеденияСделок",НомерПоследнегоПакета + 3);
НомерПоследнегоПакета = НомерПоследнегоПакета + 3;
Возврат "ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ВложенныйЗапрос.Менеджер,
| ВложенныйЗапрос.Выиграно КАК ВыиграноСделок,
| ВложенныйЗапрос.Проиграно КАК ПроиграноСделок,
| ВЫБОР
| КОГДА ВложенныйЗапрос.Выиграно + ВложенныйЗапрос.Проиграно = 0
| ТОГДА 0
| ИНАЧЕ ВложенныйЗапрос.Выиграно / (ВложенныйЗапрос.Выиграно + ВложенныйЗапрос.Проиграно) * 100
| КОНЕЦ КАК ДоляВыигранныхСделок
|ПОМЕСТИТЬ ЭффективностьВеденияСделокТекущий
|ИЗ
| (ВЫБРАТЬ
| ВЫБОР
| КОГДА СделкиСКлиентами.Ответственный = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)
| ТОГДА &НеУказан
| ИНАЧЕ СделкиСКлиентами.Ответственный
| КОНЕЦ КАК Менеджер,
| СУММА(ВЫБОР
| КОГДА СделкиСКлиентами.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыСделок.Выиграна)
| ТОГДА 1
| ИНАЧЕ 0
| КОНЕЦ) КАК Выиграно,
| СУММА(ВЫБОР
| КОГДА СделкиСКлиентами.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыСделок.Проиграна)
| ТОГДА 1
| ИНАЧЕ 0
| КОНЕЦ) КАК Проиграно
| ИЗ
| Справочник.СделкиСКлиентами КАК СделкиСКлиентами
| ГДЕ
| (НЕ СделкиСКлиентами.ПометкаУдаления)
| И СделкиСКлиентами.Закрыта
| И СделкиСКлиентами.ДатаОкончания МЕЖДУ &НачалоПериода И &ОкончаниеПериода
| И СделкиСКлиентами.Ответственный В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)
|
| СГРУППИРОВАТЬ ПО
| ВЫБОР
| КОГДА СделкиСКлиентами.Ответственный = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)
| ТОГДА &НеУказан
| ИНАЧЕ СделкиСКлиентами.Ответственный
| КОНЕЦ) КАК ВложенныйЗапрос
|;
|
|
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ВложенныйЗапрос.Менеджер,
| ВложенныйЗапрос.Выиграно КАК ВыиграноСделок,
| ВложенныйЗапрос.Проиграно КАК ПроиграноСделок,
| ВЫБОР
| КОГДА ВложенныйЗапрос.Выиграно + ВложенныйЗапрос.Проиграно = 0
| ТОГДА 0
| ИНАЧЕ ВложенныйЗапрос.Выиграно / (ВложенныйЗапрос.Выиграно + ВложенныйЗапрос.Проиграно) * 100
| КОНЕЦ КАК ДоляВыигранныхСделок
|ПОМЕСТИТЬ ЭффективностьВеденияСделокПредыдущий
|ИЗ
| (ВЫБРАТЬ
| ВЫБОР
| КОГДА СделкиСКлиентами.Ответственный = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)
| ТОГДА &НеУказан
| ИНАЧЕ СделкиСКлиентами.Ответственный
| КОНЕЦ КАК Менеджер,
| СУММА(ВЫБОР
| КОГДА СделкиСКлиентами.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыСделок.Выиграна)
| ТОГДА 1
| ИНАЧЕ 0
| КОНЕЦ) КАК Выиграно,
| СУММА(ВЫБОР
| КОГДА СделкиСКлиентами.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыСделок.Проиграна)
| ТОГДА 1
| ИНАЧЕ 0
| КОНЕЦ) КАК Проиграно
| ИЗ
| Справочник.СделкиСКлиентами КАК СделкиСКлиентами
| ГДЕ
| (НЕ СделкиСКлиентами.ПометкаУдаления)
| И СделкиСКлиентами.Закрыта
| И СделкиСКлиентами.ДатаОкончания МЕЖДУ &ДатаНачалаДополнительныйПериод И &ДатаОкончанияДополнительныйПериод
| И СделкиСКлиентами.Ответственный В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)
|
| СГРУППИРОВАТЬ ПО
| ВЫБОР
| КОГДА СделкиСКлиентами.Ответственный = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)
| ТОГДА &НеУказан
| ИНАЧЕ СделкиСКлиентами.Ответственный
| КОНЕЦ) КАК ВложенныйЗапрос
|;
|
|
|
|ВЫБРАТЬ
| ЕСТЬNULL(ЭффективностьВеденияСделокТекущий.Менеджер, ЭффективностьВеденияСделокПредыдущий.Менеджер) КАК Менеджер,
| ЕСТЬNULL(ЭффективностьВеденияСделокТекущий.ВыиграноСделок, 0) КАК ВыиграноСделокТекущий,
| ЕСТЬNULL(ЭффективностьВеденияСделокТекущий.ПроиграноСделок, 0) КАК ПроиграноСделокТекущий,
| ЕСТЬNULL(ЭффективностьВеденияСделокТекущий.ДоляВыигранныхСделок, 0) КАК ДоляВыигранныхСделокТекущий,
| ЕСТЬNULL(ЭффективностьВеденияСделокПредыдущий.ВыиграноСделок, 0) КАК ВыиграноСделокПредыдущий,
| ЕСТЬNULL(ЭффективностьВеденияСделокПредыдущий.ПроиграноСделок, 0) КАК ПроиграноСделокПредыдущий,
| ЕСТЬNULL(ЭффективностьВеденияСделокПредыдущий.ДоляВыигранныхСделок, 0) КАК ДоляВыигранныхСделокПредыдущий
|ИЗ
| ЭффективностьВеденияСделокТекущий КАК ЭффективностьВеденияСделокТекущий
|ПОЛНОЕ СОЕДИНЕНИЕ ЭффективностьВеденияСделокПредыдущий КАК ЭффективностьВеденияСделокПредыдущий
| ПО ЭффективностьВеденияСделокТекущий.Менеджер = ЭффективностьВеденияСделокПредыдущий.Менеджер
|
|УПОРЯДОЧИТЬ ПО
| ДоляВыигранныхСделокТекущий,
| ВыиграноСделокТекущий,
| ПроиграноСделокТекущий УБЫВ
|;
|
|
|";
Иначе
СоответствиеЗапросыДанные.Вставить("ЭффективностьВеденияСделок",НомерПоследнегоПакета + 1);
НомерПоследнегоПакета = НомерПоследнегоПакета + 1;
Возврат "ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ВложенныйЗапрос.Менеджер,
| ВложенныйЗапрос.Выиграно КАК ВыиграноСделок,
| ВложенныйЗапрос.Проиграно КАК ПроиграноСделок,
| ВЫБОР
| КОГДА ВложенныйЗапрос.Выиграно + ВложенныйЗапрос.Проиграно = 0
| ТОГДА 0
| ИНАЧЕ ВложенныйЗапрос.Выиграно / (ВложенныйЗапрос.Выиграно + ВложенныйЗапрос.Проиграно) * 100
| КОНЕЦ КАК ДоляВыигранныхСделок
|ИЗ
| (ВЫБРАТЬ
| ВЫБОР
| КОГДА СделкиСКлиентами.Ответственный = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)
| ТОГДА &НеУказан
| ИНАЧЕ СделкиСКлиентами.Ответственный
| КОНЕЦ КАК Менеджер,
| СУММА(ВЫБОР
| КОГДА СделкиСКлиентами.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыСделок.Выиграна)
| ТОГДА 1
| ИНАЧЕ 0
| КОНЕЦ) КАК Выиграно,
| СУММА(ВЫБОР
| КОГДА СделкиСКлиентами.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыСделок.Проиграна)
| ТОГДА 1
| ИНАЧЕ 0
| КОНЕЦ) КАК Проиграно
| ИЗ
| Справочник.СделкиСКлиентами КАК СделкиСКлиентами
| ГДЕ
| (НЕ СделкиСКлиентами.ПометкаУдаления)
| И СделкиСКлиентами.Закрыта
| И СделкиСКлиентами.ДатаОкончания МЕЖДУ &НачалоПериода И &ОкончаниеПериода
| И СделкиСКлиентами.Ответственный В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)
|
| СГРУППИРОВАТЬ ПО
| ВЫБОР
| КОГДА СделкиСКлиентами.Ответственный = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)
| ТОГДА &НеУказан
| ИНАЧЕ СделкиСКлиентами.Ответственный
| КОНЕЦ) КАК ВложенныйЗапрос
|
|УПОРЯДОЧИТЬ ПО
| ДоляВыигранныхСделок,
| ВыиграноСделок,
| ПроиграноСделок УБЫВ
|;
|
|
|";
КонецЕсли;
КонецФункции
Функция ТекстЗапросаОЭффективностиВзаимодействий(СоответствиеЗапросыДанные,НомерПоследнегоПакета, СтруктураПериодовФормированияОтчета)
Если СтруктураПериодовФормированияОтчета.ЕстьДополнительныйПериод Тогда
СоответствиеЗапросыДанные.Вставить("ЭффективностьВзаимодействий",НомерПоследнегоПакета + 7);
НомерПоследнегоПакета = НомерПоследнегоПакета + 7;
Возврат "ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ВложенныйЗапрос.Ответственный КАК Менеджер,
| СУММА(ВложенныйЗапрос.Ссылка) КАК Прочие
|ПОМЕСТИТЬ ПрочиеВзаимодействия
|ИЗ
| (ВЫБРАТЬ
| ЭлектронноеПисьмоИсходящее.Ответственный КАК Ответственный,
| КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ЭлектронноеПисьмоИсходящее.Ссылка) КАК Ссылка
| ИЗ
| Документ.ЭлектронноеПисьмоИсходящее КАК ЭлектронноеПисьмоИсходящее
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПредметыПапкиВзаимодействий КАК ПредметыПапкиВзаимодействий
| ПО (ПредметыПапкиВзаимодействий.Взаимодействие = ЭлектронноеПисьмоИсходящее.Ссылка)
| ГДЕ
| НЕ ПредметыПапкиВзаимодействий.Предмет ССЫЛКА Справочник.СделкиСКлиентами
| И НЕ ЭлектронноеПисьмоИсходящее.ПометкаУдаления
| И ЭлектронноеПисьмоИсходящее.Дата МЕЖДУ &НачалоПериода И &ОкончаниеПериода
| И ЭлектронноеПисьмоИсходящее.СтатусПисьма = ЗНАЧЕНИЕ(Перечисление.СтатусыИсходящегоЭлектронногоПисьма.Отправлено)
| И ЭлектронноеПисьмоИсходящее.Ответственный В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)
|
| СГРУППИРОВАТЬ ПО
| ЭлектронноеПисьмоИсходящее.Ответственный
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ЭлектронноеПисьмоВходящее.Ответственный,
| КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ЭлектронноеПисьмоВходящее.Ссылка)
| ИЗ
| Документ.ЭлектронноеПисьмоВходящее КАК ЭлектронноеПисьмоВходящее
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПредметыПапкиВзаимодействий КАК ПредметыПапкиВзаимодействий
| ПО (ПредметыПапкиВзаимодействий.Взаимодействие = ЭлектронноеПисьмоВходящее.Ссылка)
| ГДЕ
| НЕ ПредметыПапкиВзаимодействий.Предмет ССЫЛКА Справочник.СделкиСКлиентами
| И НЕ ЭлектронноеПисьмоВходящее.ПометкаУдаления
| И ЭлектронноеПисьмоВходящее.Дата МЕЖДУ &НачалоПериода И &ОкончаниеПериода
| И ЭлектронноеПисьмоВходящее.Ответственный В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)
|
| СГРУППИРОВАТЬ ПО
| ЭлектронноеПисьмоВходящее.Ответственный
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ТелефонныйЗвонок.Ответственный,
| КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ТелефонныйЗвонок.Ссылка)
| ИЗ
| Документ.ТелефонныйЗвонок КАК ТелефонныйЗвонок
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПредметыПапкиВзаимодействий КАК ПредметыПапкиВзаимодействий
| ПО (ПредметыПапкиВзаимодействий.Взаимодействие = ТелефонныйЗвонок.Ссылка)
| ГДЕ
| НЕ ПредметыПапкиВзаимодействий.Предмет ССЫЛКА Справочник.СделкиСКлиентами
| И НЕ ТелефонныйЗвонок.ПометкаУдаления
| И ТелефонныйЗвонок.Дата МЕЖДУ &НачалоПериода И &ОкончаниеПериода
| И ТелефонныйЗвонок.Ответственный В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)
|
| СГРУППИРОВАТЬ ПО
| ТелефонныйЗвонок.Ответственный
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| Встреча.Ответственный,
| КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Встреча.Ссылка)
| ИЗ
| Документ.Встреча КАК Встреча
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПредметыПапкиВзаимодействий КАК ПредметыПапкиВзаимодействий
| ПО (ПредметыПапкиВзаимодействий.Взаимодействие = Встреча.Ссылка)
| ГДЕ
| НЕ ПредметыПапкиВзаимодействий.Предмет ССЫЛКА Справочник.СделкиСКлиентами
| И НЕ Встреча.ПометкаУдаления
| И Встреча.Дата МЕЖДУ &НачалоПериода И &ОкончаниеПериода
| И Встреча.Ответственный В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)
|
| СГРУППИРОВАТЬ ПО
| Встреча.Ответственный) КАК ВложенныйЗапрос
|
|СГРУППИРОВАТЬ ПО
| ВложенныйЗапрос.Ответственный
|;
|
|
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ВложенныйЗапрос.Ответственный КАК Менеджер,
| СУММА(ВложенныйЗапрос.Выиграна) КАК Выиграна
|ПОМЕСТИТЬ ВзаимодействияПоСделкам
|ИЗ
| (ВЫБРАТЬ
| ЭлектронноеПисьмоИсходящее.Ответственный КАК Ответственный,
| СУММА(ВЫБОР
| КОГДА СделкиСКлиентами.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыСделок.Выиграна)
| ТОГДА 1
| ИНАЧЕ 0
| КОНЕЦ) КАК Выиграна,
| СУММА(ВЫБОР
| КОГДА СделкиСКлиентами.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыСделок.Проиграна)
| ТОГДА 1
| ИНАЧЕ 0
| КОНЕЦ) КАК Проиграна
| ИЗ
| Документ.ЭлектронноеПисьмоИсходящее КАК ЭлектронноеПисьмоИсходящее
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПредметыПапкиВзаимодействий КАК ПредметыПапкиВзаимодействий
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СделкиСКлиентами КАК СделкиСКлиентами
| ПО (СделкиСКлиентами.Ссылка = ПредметыПапкиВзаимодействий.Предмет)
| ПО (ПредметыПапкиВзаимодействий.Взаимодействие = ЭлектронноеПисьмоИсходящее.Ссылка)
| ГДЕ
| ПредметыПапкиВзаимодействий.Предмет ССЫЛКА Справочник.СделкиСКлиентами
| И НЕ ЭлектронноеПисьмоИсходящее.ПометкаУдаления
| И ЭлектронноеПисьмоИсходящее.Дата МЕЖДУ &НачалоПериода И &ОкончаниеПериода
| И ЭлектронноеПисьмоИсходящее.СтатусПисьма = ЗНАЧЕНИЕ(Перечисление.СтатусыИсходящегоЭлектронногоПисьма.Отправлено)
| И НЕ СделкиСКлиентами.ПометкаУдаления
| И СделкиСКлиентами.Закрыта
| И ЭлектронноеПисьмоИсходящее.Ответственный В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)
|
| СГРУППИРОВАТЬ ПО
| ЭлектронноеПисьмоИсходящее.Ответственный
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ЭлектронноеПисьмоВходящее.Ответственный,
| ВЫБОР
| КОГДА СделкиСКлиентами.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыСделок.Выиграна)
| ТОГДА 1
| ИНАЧЕ 0
| КОНЕЦ,
| ВЫБОР
| КОГДА СделкиСКлиентами.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыСделок.Проиграна)
| ТОГДА 1
| ИНАЧЕ 0
| КОНЕЦ
| ИЗ
| Документ.ЭлектронноеПисьмоВходящее КАК ЭлектронноеПисьмоВходящее
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПредметыПапкиВзаимодействий КАК ПредметыПапкиВзаимодействий
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СделкиСКлиентами КАК СделкиСКлиентами
| ПО (СделкиСКлиентами.Ссылка = ПредметыПапкиВзаимодействий.Предмет)
| ПО (ПредметыПапкиВзаимодействий.Взаимодействие = ЭлектронноеПисьмоВходящее.Ссылка)
| ГДЕ
| ПредметыПапкиВзаимодействий.Предмет ССЫЛКА Справочник.СделкиСКлиентами
| И НЕ ЭлектронноеПисьмоВходящее.ПометкаУдаления
| И ЭлектронноеПисьмоВходящее.Дата МЕЖДУ &НачалоПериода И &ОкончаниеПериода
| И НЕ СделкиСКлиентами.ПометкаУдаления
| И СделкиСКлиентами.Закрыта
| И ЭлектронноеПисьмоВходящее.Ответственный В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ТелефонныйЗвонок.Ответственный,
| ВЫБОР
| КОГДА СделкиСКлиентами.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыСделок.Выиграна)
| ТОГДА 1
| ИНАЧЕ 0
| КОНЕЦ,
| ВЫБОР
| КОГДА СделкиСКлиентами.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыСделок.Проиграна)
| ТОГДА 1
| ИНАЧЕ 0
| КОНЕЦ
| ИЗ
| Документ.ТелефонныйЗвонок КАК ТелефонныйЗвонок
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПредметыПапкиВзаимодействий КАК ПредметыПапкиВзаимодействий
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СделкиСКлиентами КАК СделкиСКлиентами
| ПО (СделкиСКлиентами.Ссылка = ПредметыПапкиВзаимодействий.Предмет)
| ПО (ПредметыПапкиВзаимодействий.Взаимодействие = ТелефонныйЗвонок.Ссылка)
| ГДЕ
| ПредметыПапкиВзаимодействий.Предмет ССЫЛКА Справочник.СделкиСКлиентами
| И НЕ ТелефонныйЗвонок.ПометкаУдаления
| И ТелефонныйЗвонок.Дата МЕЖДУ &НачалоПериода И &ОкончаниеПериода
| И НЕ СделкиСКлиентами.ПометкаУдаления
| И СделкиСКлиентами.Закрыта
| И ТелефонныйЗвонок.Ответственный В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| Встреча.Ответственный,
| ВЫБОР
| КОГДА СделкиСКлиентами.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыСделок.Выиграна)
| ТОГДА 1
| ИНАЧЕ 0
| КОНЕЦ,
| ВЫБОР
| КОГДА СделкиСКлиентами.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыСделок.Проиграна)
| ТОГДА 1
| ИНАЧЕ 0
| КОНЕЦ
| ИЗ
| Документ.Встреча КАК Встреча
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПредметыПапкиВзаимодействий КАК ПредметыПапкиВзаимодействий
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СделкиСКлиентами КАК СделкиСКлиентами
| ПО (СделкиСКлиентами.Ссылка = ПредметыПапкиВзаимодействий.Предмет)
| ПО (ПредметыПапкиВзаимодействий.Взаимодействие = Встреча.Ссылка)
| ГДЕ
| ПредметыПапкиВзаимодействий.Предмет ССЫЛКА Справочник.СделкиСКлиентами
| И НЕ Встреча.ПометкаУдаления
| И Встреча.Дата МЕЖДУ &НачалоПериода И &ОкончаниеПериода
| И НЕ СделкиСКлиентами.ПометкаУдаления
| И СделкиСКлиентами.Закрыта
| И Встреча.Ответственный В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)) КАК ВложенныйЗапрос
|
|СГРУППИРОВАТЬ ПО
| ВложенныйЗапрос.Ответственный
|;
|
|
|ВЫБРАТЬ
| ВложенныйЗапрос.Менеджер,
| ВложенныйЗапрос.Выиграна,
| ВложенныйЗапрос.Проиграна,
| ВложенныйЗапрос.Прочие,
| ВЫБОР
| КОГДА ВложенныйЗапрос.Выиграна + ВложенныйЗапрос.Проиграна + ВложенныйЗапрос.Прочие = 0
| ТОГДА 0
| ИНАЧЕ ВложенныйЗапрос.Выиграна / (ВложенныйЗапрос.Выиграна + ВложенныйЗапрос.Проиграна + ВложенныйЗапрос.Прочие) * 100
| КОНЕЦ КАК ДоляПоВыигранным
|ПОМЕСТИТЬ ЭффективностьВзаимодействийТекущийПериод
|ИЗ
| (ВЫБРАТЬ
| ВЫБОР
| КОГДА ВложенныйЗапрос.Менеджер = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)
| ТОГДА &НеУказан
| ИНАЧЕ ВложенныйЗапрос.Менеджер
| КОНЕЦ КАК Менеджер,
| СУММА(ВложенныйЗапрос.Выиграна) КАК Выиграна,
| СУММА(ВложенныйЗапрос.Проиграна) КАК Проиграна,
| СУММА(ВложенныйЗапрос.Прочие) КАК Прочие
| ИЗ
| (ВЫБРАТЬ
| ВзаимодействияПоСделкам.Менеджер КАК Менеджер,
| ВзаимодействияПоСделкам.Выиграна КАК Выиграна,
| NULL КАК Проиграна,
| 0 КАК Прочие
| ИЗ
| ВзаимодействияПоСделкам КАК ВзаимодействияПоСделкам
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ПрочиеВзаимодействия.Менеджер,
| 0,
| 0,
| ПрочиеВзаимодействия.Прочие
| ИЗ
| ПрочиеВзаимодействия КАК ПрочиеВзаимодействия) КАК ВложенныйЗапрос
|
| СГРУППИРОВАТЬ ПО
| ВЫБОР
| КОГДА ВложенныйЗапрос.Менеджер = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)
| ТОГДА &НеУказан
| ИНАЧЕ ВложенныйЗапрос.Менеджер
| КОНЕЦ) КАК ВложенныйЗапрос
|;
|
|
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ВложенныйЗапрос.Ответственный КАК Менеджер,
| СУММА(ВложенныйЗапрос.Ссылка) КАК Прочие
|ПОМЕСТИТЬ ПрочиеВзаимодействияПредыдущийПериод
|ИЗ
| (ВЫБРАТЬ
| ЭлектронноеПисьмоИсходящее.Ответственный КАК Ответственный,
| КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ЭлектронноеПисьмоИсходящее.Ссылка) КАК Ссылка
| ИЗ
| Документ.ЭлектронноеПисьмоИсходящее КАК ЭлектронноеПисьмоИсходящее
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПредметыПапкиВзаимодействий КАК ПредметыПапкиВзаимодействий
| ПО (ПредметыПапкиВзаимодействий.Взаимодействие = ЭлектронноеПисьмоИсходящее.Ссылка)
| ГДЕ
| НЕ ПредметыПапкиВзаимодействий.Предмет ССЫЛКА Справочник.СделкиСКлиентами
| И НЕ ЭлектронноеПисьмоИсходящее.ПометкаУдаления
| И ЭлектронноеПисьмоИсходящее.Дата МЕЖДУ &ДатаНачалаДополнительныйПериод И &ДатаОкончанияДополнительныйПериод
| И ЭлектронноеПисьмоИсходящее.СтатусПисьма = ЗНАЧЕНИЕ(Перечисление.СтатусыИсходящегоЭлектронногоПисьма.Отправлено)
| И ЭлектронноеПисьмоИсходящее.Ответственный В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)
|
| СГРУППИРОВАТЬ ПО
| ЭлектронноеПисьмоИсходящее.Ответственный
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ЭлектронноеПисьмоВходящее.Ответственный,
| КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ЭлектронноеПисьмоВходящее.Ссылка)
| ИЗ
| Документ.ЭлектронноеПисьмоВходящее КАК ЭлектронноеПисьмоВходящее
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПредметыПапкиВзаимодействий КАК ПредметыПапкиВзаимодействий
| ПО (ПредметыПапкиВзаимодействий.Взаимодействие = ЭлектронноеПисьмоВходящее.Ссылка)
| ГДЕ
| НЕ ПредметыПапкиВзаимодействий.Предмет ССЫЛКА Справочник.СделкиСКлиентами
| И НЕ ЭлектронноеПисьмоВходящее.ПометкаУдаления
| И ЭлектронноеПисьмоВходящее.Дата МЕЖДУ &ДатаНачалаДополнительныйПериод И &ДатаОкончанияДополнительныйПериод
| И ЭлектронноеПисьмоВходящее.Ответственный В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)
|
| СГРУППИРОВАТЬ ПО
| ЭлектронноеПисьмоВходящее.Ответственный
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ТелефонныйЗвонок.Ответственный,
| КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ТелефонныйЗвонок.Ссылка)
| ИЗ
| Документ.ТелефонныйЗвонок КАК ТелефонныйЗвонок
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПредметыПапкиВзаимодействий КАК ПредметыПапкиВзаимодействий
| ПО (ПредметыПапкиВзаимодействий.Взаимодействие = ТелефонныйЗвонок.Ссылка)
| ГДЕ
| НЕ ПредметыПапкиВзаимодействий.Предмет ССЫЛКА Справочник.СделкиСКлиентами
| И НЕ ТелефонныйЗвонок.ПометкаУдаления
| И ТелефонныйЗвонок.Дата МЕЖДУ &ДатаНачалаДополнительныйПериод И &ДатаОкончанияДополнительныйПериод
| И ТелефонныйЗвонок.Ответственный В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)
|
| СГРУППИРОВАТЬ ПО
| ТелефонныйЗвонок.Ответственный
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| Встреча.Ответственный,
| КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Встреча.Ссылка)
| ИЗ
| Документ.Встреча КАК Встреча
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПредметыПапкиВзаимодействий КАК ПредметыПапкиВзаимодействий
| ПО (ПредметыПапкиВзаимодействий.Взаимодействие = Встреча.Ссылка)
| ГДЕ
| НЕ ПредметыПапкиВзаимодействий.Предмет ССЫЛКА Справочник.СделкиСКлиентами
| И НЕ Встреча.ПометкаУдаления
| И Встреча.Дата МЕЖДУ &ДатаНачалаДополнительныйПериод И &ДатаОкончанияДополнительныйПериод
| И Встреча.Ответственный В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)
|
| СГРУППИРОВАТЬ ПО
| Встреча.Ответственный) КАК ВложенныйЗапрос
|
|СГРУППИРОВАТЬ ПО
| ВложенныйЗапрос.Ответственный
|;
|
|
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ВложенныйЗапрос.Ответственный КАК Менеджер,
| СУММА(ВложенныйЗапрос.Выиграна) КАК Выиграна,
| СУММА(ВложенныйЗапрос.Проиграна) КАК Проиграна
|ПОМЕСТИТЬ ВзаимодействияПоСделкамПредыдущийПериод
|ИЗ
| (ВЫБРАТЬ
| ЭлектронноеПисьмоИсходящее.Ответственный КАК Ответственный,
| СУММА(ВЫБОР
| КОГДА СделкиСКлиентами.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыСделок.Выиграна)
| ТОГДА 1
| ИНАЧЕ 0
| КОНЕЦ) КАК Выиграна,
| СУММА(ВЫБОР
| КОГДА СделкиСКлиентами.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыСделок.Проиграна)
| ТОГДА 1
| ИНАЧЕ 0
| КОНЕЦ) КАК Проиграна
| ИЗ
| Документ.ЭлектронноеПисьмоИсходящее КАК ЭлектронноеПисьмоИсходящее
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПредметыПапкиВзаимодействий КАК ПредметыПапкиВзаимодействий
| ПО (ПредметыПапкиВзаимодействий.Взаимодействие = ЭлектронноеПисьмоИсходящее.Ссылка)
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СделкиСКлиентами КАК СделкиСКлиентами
| ПО (ПредметыПапкиВзаимодействий.Предмет = СделкиСКлиентами.Ссылка)
| ГДЕ
| ПредметыПапкиВзаимодействий.Предмет ССЫЛКА Справочник.СделкиСКлиентами
| И НЕ ЭлектронноеПисьмоИсходящее.ПометкаУдаления
| И ЭлектронноеПисьмоИсходящее.Дата МЕЖДУ &ДатаНачалаДополнительныйПериод И &ДатаОкончанияДополнительныйПериод
| И ЭлектронноеПисьмоИсходящее.СтатусПисьма = ЗНАЧЕНИЕ(Перечисление.СтатусыИсходящегоЭлектронногоПисьма.Отправлено)
| И НЕ СделкиСКлиентами.ПометкаУдаления
| И СделкиСКлиентами.Закрыта
| И ЭлектронноеПисьмоИсходящее.Ответственный В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)
|
| СГРУППИРОВАТЬ ПО
| ЭлектронноеПисьмоИсходящее.Ответственный
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ЭлектронноеПисьмоВходящее.Ответственный,
| ВЫБОР
| КОГДА СделкиСКлиентами.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыСделок.Выиграна)
| ТОГДА 1
| ИНАЧЕ 0
| КОНЕЦ,
| ВЫБОР
| КОГДА СделкиСКлиентами.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыСделок.Проиграна)
| ТОГДА 1
| ИНАЧЕ 0
| КОНЕЦ
| ИЗ
| Документ.ЭлектронноеПисьмоВходящее КАК ЭлектронноеПисьмоВходящее
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПредметыПапкиВзаимодействий КАК ПредметыПапкиВзаимодействий
| ПО (ПредметыПапкиВзаимодействий.Взаимодействие = ЭлектронноеПисьмоВходящее.Ссылка)
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СделкиСКлиентами КАК СделкиСКлиентами
| ПО (ПредметыПапкиВзаимодействий.Предмет = СделкиСКлиентами.Ссылка)
| ГДЕ
| ПредметыПапкиВзаимодействий.Предмет ССЫЛКА Справочник.СделкиСКлиентами
| И НЕ ЭлектронноеПисьмоВходящее.ПометкаУдаления
| И ЭлектронноеПисьмоВходящее.Дата МЕЖДУ &ДатаНачалаДополнительныйПериод И &ДатаОкончанияДополнительныйПериод
| И НЕ СделкиСКлиентами.ПометкаУдаления
| И СделкиСКлиентами.Закрыта
| И ЭлектронноеПисьмоВходящее.Ответственный В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ТелефонныйЗвонок.Ответственный,
| ВЫБОР
| КОГДА СделкиСКлиентами.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыСделок.Выиграна)
| ТОГДА 1
| ИНАЧЕ 0
| КОНЕЦ,
| ВЫБОР
| КОГДА СделкиСКлиентами.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыСделок.Проиграна)
| ТОГДА 1
| ИНАЧЕ 0
| КОНЕЦ
| ИЗ
| Документ.ТелефонныйЗвонок КАК ТелефонныйЗвонок
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПредметыПапкиВзаимодействий КАК ПредметыПапкиВзаимодействий
| ПО (ПредметыПапкиВзаимодействий.Взаимодействие = ТелефонныйЗвонок.Ссылка)
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СделкиСКлиентами КАК СделкиСКлиентами
| ПО (ПредметыПапкиВзаимодействий.Предмет = СделкиСКлиентами.Ссылка)
| ГДЕ
| ПредметыПапкиВзаимодействий.Предмет ССЫЛКА Справочник.СделкиСКлиентами
| И НЕ ТелефонныйЗвонок.ПометкаУдаления
| И ТелефонныйЗвонок.Дата МЕЖДУ &ДатаНачалаДополнительныйПериод И &ДатаОкончанияДополнительныйПериод
| И НЕ СделкиСКлиентами.ПометкаУдаления
| И СделкиСКлиентами.Закрыта
| И ТелефонныйЗвонок.Ответственный В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| Встреча.Ответственный,
| ВЫБОР
| КОГДА СделкиСКлиентами.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыСделок.Выиграна)
| ТОГДА 1
| ИНАЧЕ 0
| КОНЕЦ,
| ВЫБОР
| КОГДА СделкиСКлиентами.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыСделок.Проиграна)
| ТОГДА 1
| ИНАЧЕ 0
| КОНЕЦ
| ИЗ
| Документ.Встреча КАК Встреча
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПредметыПапкиВзаимодействий КАК ПредметыПапкиВзаимодействий
| ПО (ПредметыПапкиВзаимодействий.Взаимодействие = Встреча.Ссылка)
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СделкиСКлиентами КАК СделкиСКлиентами
| ПО (ПредметыПапкиВзаимодействий.Предмет = СделкиСКлиентами.Ссылка)
| ГДЕ
| ПредметыПапкиВзаимодействий.Предмет ССЫЛКА Справочник.СделкиСКлиентами
| И НЕ Встреча.ПометкаУдаления
| И Встреча.Дата МЕЖДУ &ДатаНачалаДополнительныйПериод И &ДатаОкончанияДополнительныйПериод
| И НЕ СделкиСКлиентами.ПометкаУдаления
| И СделкиСКлиентами.Закрыта
| И Встреча.Ответственный В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)) КАК ВложенныйЗапрос
|
|СГРУППИРОВАТЬ ПО
| ВложенныйЗапрос.Ответственный
|;
|
|
|ВЫБРАТЬ
| ВложенныйЗапрос.Менеджер,
| ВложенныйЗапрос.Выиграна,
| ВложенныйЗапрос.Проиграна,
| ВложенныйЗапрос.Прочие,
| ВЫБОР
| КОГДА ВложенныйЗапрос.Выиграна + ВложенныйЗапрос.Проиграна + ВложенныйЗапрос.Прочие = 0
| ТОГДА 0
| ИНАЧЕ ВложенныйЗапрос.Выиграна / (ВложенныйЗапрос.Выиграна + ВложенныйЗапрос.Проиграна + ВложенныйЗапрос.Прочие) * 100
| КОНЕЦ КАК ДоляПоВыигранным
|ПОМЕСТИТЬ ЭффективностьВзаимодействийПредыдущийПериод
|ИЗ
| (ВЫБРАТЬ
| ВЫБОР
| КОГДА ВложенныйЗапрос.Менеджер = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)
| ТОГДА &НеУказан
| ИНАЧЕ ВложенныйЗапрос.Менеджер
| КОНЕЦ КАК Менеджер,
| СУММА(ВложенныйЗапрос.Выиграна) КАК Выиграна,
| СУММА(ВложенныйЗапрос.Проиграна) КАК Проиграна,
| СУММА(ВложенныйЗапрос.Прочие) КАК Прочие
| ИЗ
| (ВЫБРАТЬ
| ВзаимодействияПоСделкам.Менеджер КАК Менеджер,
| ВзаимодействияПоСделкам.Выиграна КАК Выиграна,
| ВзаимодействияПоСделкам.Проиграна КАК Проиграна,
| 0 КАК Прочие
| ИЗ
| ВзаимодействияПоСделкамПредыдущийПериод КАК ВзаимодействияПоСделкам
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ПрочиеВзаимодействия.Менеджер,
| 0,
| 0,
| ПрочиеВзаимодействия.Прочие
| ИЗ
| ПрочиеВзаимодействияПредыдущийПериод КАК ПрочиеВзаимодействия) КАК ВложенныйЗапрос
|
| СГРУППИРОВАТЬ ПО
| ВЫБОР
| КОГДА ВложенныйЗапрос.Менеджер = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)
| ТОГДА &НеУказан
| ИНАЧЕ ВложенныйЗапрос.Менеджер
| КОНЕЦ) КАК ВложенныйЗапрос
|;
|
|
|ВЫБРАТЬ
| ЕСТЬNULL(ЭффективностьВзаимодействийТекущийПериод.Менеджер, ЭффективностьВзаимодействийПредыдущийПериод.Менеджер) КАК Менеджер,
| ЕСТЬNULL(ЭффективностьВзаимодействийТекущийПериод.Выиграна, 0) КАК ВзаимодействийПоВыиграннымСделкамТекущий,
| ЕСТЬNULL(ЭффективностьВзаимодействийТекущийПериод.Проиграна, 0) КАК ВзаимодействийПоПроиграннымСделкамТекущий,
| ЕСТЬNULL(ЭффективностьВзаимодействийТекущийПериод.Прочие, 0) КАК ПрочиеВзаимодействияТекущий,
| ЕСТЬNULL(ЭффективностьВзаимодействийТекущийПериод.ДоляПоВыигранным, 0) КАК ДоляВзаимодействийПоВыиграннымСделкамТекущий,
| ЕСТЬNULL(ЭффективностьВзаимодействийПредыдущийПериод.Выиграна, 0) КАК ВзаимодействийПоВыиграннымСделкамПредыдущий,
| ЕСТЬNULL(ЭффективностьВзаимодействийПредыдущийПериод.Проиграна, 0) КАК ВзаимодействийПоПроиграннымСделкамПредыдущий,
| ЕСТЬNULL(ЭффективностьВзаимодействийПредыдущийПериод.Прочие, 0) КАК ПрочиеВзаимодействияПредыдущий,
| ЕСТЬNULL(ЭффективностьВзаимодействийПредыдущийПериод.ДоляПоВыигранным, 0) КАК ДоляВзаимодействийПоВыиграннымСделкамПредыдущий
|ИЗ
| ЭффективностьВзаимодействийТекущийПериод КАК ЭффективностьВзаимодействийТекущийПериод
| ПОЛНОЕ СОЕДИНЕНИЕ ЭффективностьВзаимодействийПредыдущийПериод КАК ЭффективностьВзаимодействийПредыдущийПериод
| ПО ЭффективностьВзаимодействийТекущийПериод.Менеджер = ЭффективностьВзаимодействийПредыдущийПериод.Менеджер
|
|УПОРЯДОЧИТЬ ПО
| ДоляВзаимодействийПоВыиграннымСделкамТекущий,
| ВзаимодействийПоВыиграннымСделкамТекущий
|;
|
|
|";
Иначе
СоответствиеЗапросыДанные.Вставить("ЭффективностьВзаимодействий",НомерПоследнегоПакета + 3);
НомерПоследнегоПакета = НомерПоследнегоПакета + 3;
Возврат "ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ВложенныйЗапрос.Ответственный КАК Менеджер,
| СУММА(ВложенныйЗапрос.Ссылка) КАК Прочие
|ПОМЕСТИТЬ ПрочиеВзаимодействия
|ИЗ
| (ВЫБРАТЬ
| ЭлектронноеПисьмоИсходящее.Ответственный КАК Ответственный,
| КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ЭлектронноеПисьмоИсходящее.Ссылка) КАК Ссылка
| ИЗ
| Документ.ЭлектронноеПисьмоИсходящее КАК ЭлектронноеПисьмоИсходящее
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПредметыПапкиВзаимодействий КАК ПредметыПапкиВзаимодействий
| ПО (ПредметыПапкиВзаимодействий.Взаимодействие = ЭлектронноеПисьмоИсходящее.Ссылка)
| ГДЕ
| НЕ ПредметыПапкиВзаимодействий.Предмет ССЫЛКА Справочник.СделкиСКлиентами
| И НЕ ЭлектронноеПисьмоИсходящее.ПометкаУдаления
| И ЭлектронноеПисьмоИсходящее.Дата МЕЖДУ &НачалоПериода И &ОкончаниеПериода
| И ЭлектронноеПисьмоИсходящее.СтатусПисьма = ЗНАЧЕНИЕ(Перечисление.СтатусыИсходящегоЭлектронногоПисьма.Отправлено)
| И ЭлектронноеПисьмоИсходящее.Ответственный В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)
|
| СГРУППИРОВАТЬ ПО
| ЭлектронноеПисьмоИсходящее.Ответственный
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ЭлектронноеПисьмоВходящее.Ответственный,
| КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ЭлектронноеПисьмоВходящее.Ссылка)
| ИЗ
| Документ.ЭлектронноеПисьмоВходящее КАК ЭлектронноеПисьмоВходящее
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПредметыПапкиВзаимодействий КАК ПредметыПапкиВзаимодействий
| ПО (ПредметыПапкиВзаимодействий.Взаимодействие = ЭлектронноеПисьмоВходящее.Ссылка)
| ГДЕ
| НЕ ПредметыПапкиВзаимодействий.Предмет ССЫЛКА Справочник.СделкиСКлиентами
| И НЕ ЭлектронноеПисьмоВходящее.ПометкаУдаления
| И ЭлектронноеПисьмоВходящее.Дата МЕЖДУ &НачалоПериода И &ОкончаниеПериода
| И ЭлектронноеПисьмоВходящее.Ответственный В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)
|
| СГРУППИРОВАТЬ ПО
| ЭлектронноеПисьмоВходящее.Ответственный
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ТелефонныйЗвонок.Ответственный,
| КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ТелефонныйЗвонок.Ссылка)
| ИЗ
| Документ.ТелефонныйЗвонок КАК ТелефонныйЗвонок
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПредметыПапкиВзаимодействий КАК ПредметыПапкиВзаимодействий
| ПО (ПредметыПапкиВзаимодействий.Взаимодействие = ТелефонныйЗвонок.Ссылка)
| ГДЕ
| НЕ ПредметыПапкиВзаимодействий.Предмет ССЫЛКА Справочник.СделкиСКлиентами
| И НЕ ТелефонныйЗвонок.ПометкаУдаления
| И ТелефонныйЗвонок.Дата МЕЖДУ &НачалоПериода И &ОкончаниеПериода
| И ТелефонныйЗвонок.Ответственный В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)
|
| СГРУППИРОВАТЬ ПО
| ТелефонныйЗвонок.Ответственный
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| Встреча.Ответственный,
| КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Встреча.Ссылка)
| ИЗ
| Документ.Встреча КАК Встреча
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПредметыПапкиВзаимодействий КАК ПредметыПапкиВзаимодействий
| ПО (ПредметыПапкиВзаимодействий.Взаимодействие = Встреча.Ссылка)
| ГДЕ
| НЕ ПредметыПапкиВзаимодействий.Предмет ССЫЛКА Справочник.СделкиСКлиентами
| И НЕ Встреча.ПометкаУдаления
| И Встреча.Дата МЕЖДУ &НачалоПериода И &ОкончаниеПериода
| И Встреча.Ответственный В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)
|
| СГРУППИРОВАТЬ ПО
| Встреча.Ответственный) КАК ВложенныйЗапрос
|
|СГРУППИРОВАТЬ ПО
| ВложенныйЗапрос.Ответственный
|;
|
|
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ВложенныйЗапрос.Ответственный КАК Менеджер,
| СУММА(ВложенныйЗапрос.Выиграна) КАК Выиграна,
| СУММА(ВложенныйЗапрос.Проиграна) КАК Проиграна
|ПОМЕСТИТЬ ВзаимодействияПоСделкам
|ИЗ
| (ВЫБРАТЬ
| ЭлектронноеПисьмоИсходящее.Ответственный КАК Ответственный,
| СУММА(ВЫБОР
| КОГДА СделкиСКлиентами.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыСделок.Выиграна)
| ТОГДА 1
| ИНАЧЕ 0
| КОНЕЦ) КАК Выиграна,
| СУММА(ВЫБОР
| КОГДА СделкиСКлиентами.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыСделок.Проиграна)
| ТОГДА 1
| ИНАЧЕ 0
| КОНЕЦ) КАК Проиграна
| ИЗ
| Документ.ЭлектронноеПисьмоИсходящее КАК ЭлектронноеПисьмоИсходящее
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПредметыПапкиВзаимодействий КАК ПредметыПапкиВзаимодействий
| ПО (ПредметыПапкиВзаимодействий.Взаимодействие = ЭлектронноеПисьмоИсходящее.Ссылка)
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СделкиСКлиентами КАК СделкиСКлиентами
| ПО (ПредметыПапкиВзаимодействий.Предмет = СделкиСКлиентами.Ссылка)
| ГДЕ
| ПредметыПапкиВзаимодействий.Предмет ССЫЛКА Справочник.СделкиСКлиентами
| И НЕ ЭлектронноеПисьмоИсходящее.ПометкаУдаления
| И ЭлектронноеПисьмоИсходящее.Дата МЕЖДУ &НачалоПериода И &ОкончаниеПериода
| И ЭлектронноеПисьмоИсходящее.СтатусПисьма = ЗНАЧЕНИЕ(Перечисление.СтатусыИсходящегоЭлектронногоПисьма.Отправлено)
| И НЕ СделкиСКлиентами.ПометкаУдаления
| И СделкиСКлиентами.Закрыта
| И ЭлектронноеПисьмоИсходящее.Ответственный В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)
|
| СГРУППИРОВАТЬ ПО
| ЭлектронноеПисьмоИсходящее.Ответственный
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ЭлектронноеПисьмоВходящее.Ответственный,
| ВЫБОР
| КОГДА СделкиСКлиентами.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыСделок.Выиграна)
| ТОГДА 1
| ИНАЧЕ 0
| КОНЕЦ,
| ВЫБОР
| КОГДА СделкиСКлиентами.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыСделок.Проиграна)
| ТОГДА 1
| ИНАЧЕ 0
| КОНЕЦ
| ИЗ
| Документ.ЭлектронноеПисьмоВходящее КАК ЭлектронноеПисьмоВходящее
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПредметыПапкиВзаимодействий КАК ПредметыПапкиВзаимодействий
| ПО (ПредметыПапкиВзаимодействий.Взаимодействие = ЭлектронноеПисьмоВходящее.Ссылка)
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СделкиСКлиентами КАК СделкиСКлиентами
| ПО (ПредметыПапкиВзаимодействий.Предмет = СделкиСКлиентами.Ссылка)
| ГДЕ
| ПредметыПапкиВзаимодействий.Предмет ССЫЛКА Справочник.СделкиСКлиентами
| И НЕ ЭлектронноеПисьмоВходящее.ПометкаУдаления
| И ЭлектронноеПисьмоВходящее.Дата МЕЖДУ &НачалоПериода И &ОкончаниеПериода
| И НЕ СделкиСКлиентами.ПометкаУдаления
| И СделкиСКлиентами.Закрыта
| И ЭлектронноеПисьмоВходящее.Ответственный В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ТелефонныйЗвонок.Ответственный,
| ВЫБОР
| КОГДА СделкиСКлиентами.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыСделок.Выиграна)
| ТОГДА 1
| ИНАЧЕ 0
| КОНЕЦ,
| ВЫБОР
| КОГДА СделкиСКлиентами.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыСделок.Проиграна)
| ТОГДА 1
| ИНАЧЕ 0
| КОНЕЦ
| ИЗ
| Документ.ТелефонныйЗвонок КАК ТелефонныйЗвонок
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПредметыПапкиВзаимодействий КАК ПредметыПапкиВзаимодействий
| ПО (ПредметыПапкиВзаимодействий.Взаимодействие = ТелефонныйЗвонок.Ссылка)
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СделкиСКлиентами КАК СделкиСКлиентами
| ПО (ПредметыПапкиВзаимодействий.Предмет = СделкиСКлиентами.Ссылка)
| ГДЕ
| ПредметыПапкиВзаимодействий.Предмет ССЫЛКА Справочник.СделкиСКлиентами
| И НЕ ТелефонныйЗвонок.ПометкаУдаления
| И ТелефонныйЗвонок.Дата МЕЖДУ &НачалоПериода И &ОкончаниеПериода
| И НЕ СделкиСКлиентами.ПометкаУдаления
| И СделкиСКлиентами.Закрыта
| И ТелефонныйЗвонок.Ответственный В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| Встреча.Ответственный,
| ВЫБОР
| КОГДА СделкиСКлиентами.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыСделок.Выиграна)
| ТОГДА 1
| ИНАЧЕ 0
| КОНЕЦ,
| ВЫБОР
| КОГДА СделкиСКлиентами.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыСделок.Проиграна)
| ТОГДА 1
| ИНАЧЕ 0
| КОНЕЦ
| ИЗ
| Документ.Встреча КАК Встреча
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПредметыПапкиВзаимодействий КАК ПредметыПапкиВзаимодействий
| ПО (ПредметыПапкиВзаимодействий.Взаимодействие = Встреча.Ссылка)
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СделкиСКлиентами КАК СделкиСКлиентами
| ПО (ПредметыПапкиВзаимодействий.Предмет = СделкиСКлиентами.Ссылка)
| ГДЕ
| ПредметыПапкиВзаимодействий.Предмет ССЫЛКА Справочник.СделкиСКлиентами
| И НЕ Встреча.ПометкаУдаления
| И Встреча.Дата МЕЖДУ &НачалоПериода И &ОкончаниеПериода
| И НЕ СделкиСКлиентами.ПометкаУдаления
| И СделкиСКлиентами.Закрыта
| И Встреча.Ответственный В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)) КАК ВложенныйЗапрос
|
|СГРУППИРОВАТЬ ПО
| ВложенныйЗапрос.Ответственный
|;
|
|
|ВЫБРАТЬ
| ВложенныйЗапрос.Менеджер,
| ВложенныйЗапрос.Выиграна КАК ВзаимодействийПоВыиграннымСделкам,
| ВложенныйЗапрос.Проиграна КАК ВзаимодействийПоПроиграннымСделкам,
| ВложенныйЗапрос.Прочие КАК ПрочиеВзаимодействия,
| ВЫБОР
| КОГДА ВложенныйЗапрос.Выиграна + ВложенныйЗапрос.Проиграна + ВложенныйЗапрос.Прочие = 0
| ТОГДА 0
| ИНАЧЕ ВложенныйЗапрос.Выиграна / (ВложенныйЗапрос.Выиграна + ВложенныйЗапрос.Проиграна + ВложенныйЗапрос.Прочие) * 100
| КОНЕЦ КАК ДоляВзаимодействийПоВыиграннымСделкам
|ИЗ
| (ВЫБРАТЬ
| ВЫБОР
| КОГДА ВложенныйЗапрос.Менеджер = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)
| ТОГДА &НеУказан
| ИНАЧЕ ВложенныйЗапрос.Менеджер
| КОНЕЦ КАК Менеджер,
| СУММА(ВложенныйЗапрос.Выиграна) КАК Выиграна,
| СУММА(ВложенныйЗапрос.Проиграна) КАК Проиграна,
| СУММА(ВложенныйЗапрос.Прочие) КАК Прочие
| ИЗ
| (ВЫБРАТЬ
| ВзаимодействияПоСделкам.Менеджер КАК Менеджер,
| ВзаимодействияПоСделкам.Выиграна КАК Выиграна,
| ВзаимодействияПоСделкам.Проиграна КАК Проиграна,
| 0 КАК Прочие
| ИЗ
| ВзаимодействияПоСделкам КАК ВзаимодействияПоСделкам
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ПрочиеВзаимодействия.Менеджер,
| 0,
| 0,
| ПрочиеВзаимодействия.Прочие
| ИЗ
| ПрочиеВзаимодействия КАК ПрочиеВзаимодействия) КАК ВложенныйЗапрос
|
| СГРУППИРОВАТЬ ПО
| ВЫБОР
| КОГДА ВложенныйЗапрос.Менеджер = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)
| ТОГДА &НеУказан
| ИНАЧЕ ВложенныйЗапрос.Менеджер
| КОНЕЦ) КАК ВложенныйЗапрос
|
|УПОРЯДОЧИТЬ ПО
| ДоляВзаимодействийПоВыиграннымСделкам,
| ВзаимодействийПоВыиграннымСделкам
|;
|
|
|";
КонецЕсли;
КонецФункции
Функция ТекстЗапросаОПродажахНаОднуСделку(СоответствиеЗапросыДанные,НомерПоследнегоПакета, СтруктураПериодовФормированияОтчета)
Если СтруктураПериодовФормированияОтчета.ЕстьДополнительныйПериод Тогда
СоответствиеЗапросыДанные.Вставить("ПродажиНаОднуСделку",НомерПоследнегоПакета + 3);
НомерПоследнегоПакета = НомерПоследнегоПакета + 3;
Возврат "ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ВложенныйЗапрос.Ответственный КАК Менеджер,
| ВложенныйЗапрос.СуммаВыручкиОборот / ВложенныйЗапрос.КоличествоСделок КАК Показатель
|ПОМЕСТИТЬ ПродажиНаОднуСделкуТекущий
|ИЗ
| (ВЫБРАТЬ
| ВложенныйЗапрос.Ответственный КАК Ответственный,
| СУММА(ВложенныйЗапрос.Ссылка) КАК КоличествоСделок,
| СУММА(ВложенныйЗапрос.СуммаВыручкиОборот) КАК СуммаВыручкиОборот
| ИЗ
| (ВЫБРАТЬ
| КОЛИЧЕСТВО(РАЗЛИЧНЫЕ СделкиСКлиентами.Ссылка) КАК Ссылка,
| ВЫБОР
| КОГДА СделкиСКлиентами.Ответственный = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)
| ТОГДА &НеУказан
| ИНАЧЕ СделкиСКлиентами.Ответственный
| КОНЕЦ КАК Ответственный,
| 0 КАК СуммаВыручкиОборот
| ИЗ
| Справочник.СделкиСКлиентами КАК СделкиСКлиентами
| ГДЕ
| (НЕ СделкиСКлиентами.ПометкаУдаления)
| И СделкиСКлиентами.Закрыта
| И СделкиСКлиентами.ДатаОкончания МЕЖДУ &НачалоПериода И &ОкончаниеПериода
| И СделкиСКлиентами.Ответственный В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)
|
| СГРУППИРОВАТЬ ПО
| ВЫБОР
| КОГДА СделкиСКлиентами.Ответственный = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)
| ТОГДА &НеУказан
| ИНАЧЕ СделкиСКлиентами.Ответственный
| КОНЕЦ
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| 0,
| ЕСТЬNULL(ВыручкаИСебестоимостьПродажОбороты.ЗаказКлиента.Менеджер, &НеУказан),
| ВыручкаИСебестоимостьПродажОбороты.СуммаВыручкиОборот
| ИЗ
| РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(&НачалоПериода, &ОкончаниеПериода, ,АналитикаУчетаПоПартнерам.Партнер <> ЗНАЧЕНИЕ(Справочник.Партнеры.РозничныйПокупатель) И ЗаказКлиента.Менеджер В (ВЫБРАТЬ ОтборПоМенеджерам.Ссылка ИЗ ОтборПоМенеджерам КАК ОтборПоМенеджерам)) КАК ВыручкаИСебестоимостьПродажОбороты) КАК ВложенныйЗапрос
|
| СГРУППИРОВАТЬ ПО
| ВложенныйЗапрос.Ответственный
|
| ИМЕЮЩИЕ
| СУММА(ВложенныйЗапрос.Ссылка) > 0 И СУММА(ВложенныйЗапрос.СуммаВыручкиОборот) > 0) КАК ВложенныйЗапрос
|;
|
|
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ВложенныйЗапрос.Ответственный КАК Менеджер,
| ВложенныйЗапрос.СуммаВыручкиОборот / ВложенныйЗапрос.КоличествоСделок КАК Показатель
|ПОМЕСТИТЬ ПродажиНаОднуСделкуПредыдущий
|ИЗ
| (ВЫБРАТЬ
| ВложенныйЗапрос.Ответственный КАК Ответственный,
| СУММА(ВложенныйЗапрос.Ссылка) КАК КоличествоСделок,
| СУММА(ВложенныйЗапрос.СуммаВыручкиОборот) КАК СуммаВыручкиОборот
| ИЗ
| (ВЫБРАТЬ
| КОЛИЧЕСТВО(РАЗЛИЧНЫЕ СделкиСКлиентами.Ссылка) КАК Ссылка,
| ВЫБОР
| КОГДА СделкиСКлиентами.Ответственный = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)
| ТОГДА &НеУказан
| ИНАЧЕ СделкиСКлиентами.Ответственный
| КОНЕЦ КАК Ответственный,
| 0 КАК СуммаВыручкиОборот
| ИЗ
| Справочник.СделкиСКлиентами КАК СделкиСКлиентами
| ГДЕ
| (НЕ СделкиСКлиентами.ПометкаУдаления)
| И СделкиСКлиентами.Закрыта
| И СделкиСКлиентами.ДатаОкончания МЕЖДУ &ДатаНачалаДополнительныйПериод И &ДатаОкончанияДополнительныйПериод
| И СделкиСКлиентами.Ответственный В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)
|
| СГРУППИРОВАТЬ ПО
| ВЫБОР
| КОГДА СделкиСКлиентами.Ответственный = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)
| ТОГДА &НеУказан
| ИНАЧЕ СделкиСКлиентами.Ответственный
| КОНЕЦ
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| 0,
| ЕСТЬNULL(ВыручкаИСебестоимостьПродажОбороты.ЗаказКлиента.Менеджер, &НеУказан),
| ВыручкаИСебестоимостьПродажОбороты.СуммаВыручкиОборот
| ИЗ
| РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(&ДатаНачалаДополнительныйПериод, &ДатаОкончанияДополнительныйПериод, ,АналитикаУчетаПоПартнерам.Партнер <> ЗНАЧЕНИЕ(Справочник.Партнеры.РозничныйПокупатель) И ЗаказКлиента.Менеджер В (ВЫБРАТЬ ОтборПоМенеджерам.Ссылка ИЗ ОтборПоМенеджерам КАК ОтборПоМенеджерам)) КАК ВыручкаИСебестоимостьПродажОбороты) КАК ВложенныйЗапрос
|
| СГРУППИРОВАТЬ ПО
| ВложенныйЗапрос.Ответственный
|
| ИМЕЮЩИЕ
| СУММА(ВложенныйЗапрос.Ссылка) > 0 И СУММА(ВложенныйЗапрос.СуммаВыручкиОборот) > 0) КАК ВложенныйЗапрос
|;
|
|
|ВЫБРАТЬ
| ЕСТЬNULL(ВложенныйЗапрос.Менеджер, &НеУказан) КАК Менеджер,
| ВложенныйЗапрос.Текущий,
| ВложенныйЗапрос.Предыдущий,
| ВЫБОР
| КОГДА ВложенныйЗапрос.Текущий - ВложенныйЗапрос.Предыдущий > 0
| ТОГДА ВложенныйЗапрос.Текущий - ВложенныйЗапрос.Предыдущий
| ИНАЧЕ 0
| КОНЕЦ КАК Прирост,
| ВЫБОР
| КОГДА ВложенныйЗапрос.Текущий - ВложенныйЗапрос.Предыдущий < 0
| ТОГДА ВложенныйЗапрос.Текущий - ВложенныйЗапрос.Предыдущий
| ИНАЧЕ 0
| КОНЕЦ КАК Спад
|ИЗ
| (ВЫБРАТЬ
| ВЫБОР
| КОГДА ПредыдущийПериод.Менеджер ЕСТЬ NULL
| ТОГДА ТекущийПериод.Менеджер
| ИНАЧЕ ПредыдущийПериод.Менеджер
| КОНЕЦ КАК Менеджер,
| СУММА(ЕСТЬNULL(ПредыдущийПериод.Показатель, 0)) КАК Предыдущий,
| СУММА(ЕСТЬNULL(ТекущийПериод.Показатель, 0)) КАК Текущий
| ИЗ
| ПродажиНаОднуСделкуПредыдущий КАК ПредыдущийПериод
| ПОЛНОЕ СОЕДИНЕНИЕ ПродажиНаОднуСделкуТекущий КАК ТекущийПериод
| ПО ПредыдущийПериод.Менеджер = ТекущийПериод.Менеджер
|
| СГРУППИРОВАТЬ ПО
| ВЫБОР
| КОГДА ПредыдущийПериод.Менеджер ЕСТЬ NULL
| ТОГДА ТекущийПериод.Менеджер
| ИНАЧЕ ПредыдущийПериод.Менеджер
| КОНЕЦ) КАК ВложенныйЗапрос
|
|УПОРЯДОЧИТЬ ПО
| ВложенныйЗапрос.Текущий
|;
|
|
|";
Иначе
СоответствиеЗапросыДанные.Вставить("ПродажиНаОднуСделку",НомерПоследнегоПакета + 1);
НомерПоследнегоПакета = НомерПоследнегоПакета + 1;
Возврат "ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ВложенныйЗапрос.Ответственный КАК Менеджер,
| ВложенныйЗапрос.СуммаВыручкиОборот / ВложенныйЗапрос.КоличествоСделок КАК ПродажиНаСделку
|ИЗ
| (ВЫБРАТЬ
| ВложенныйЗапрос.Ответственный КАК Ответственный,
| СУММА(ВложенныйЗапрос.Ссылка) КАК КоличествоСделок,
| СУММА(ВложенныйЗапрос.СуммаВыручкиОборот) КАК СуммаВыручкиОборот
| ИЗ
| (ВЫБРАТЬ
| КОЛИЧЕСТВО(РАЗЛИЧНЫЕ СделкиСКлиентами.Ссылка) КАК Ссылка,
| ВЫБОР
| КОГДА СделкиСКлиентами.Ответственный = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)
| ТОГДА &НеУказан
| ИНАЧЕ СделкиСКлиентами.Ответственный
| КОНЕЦ КАК Ответственный,
| 0 КАК СуммаВыручкиОборот
| ИЗ
| Справочник.СделкиСКлиентами КАК СделкиСКлиентами
| ГДЕ
| (НЕ СделкиСКлиентами.ПометкаУдаления)
| И СделкиСКлиентами.Закрыта
| И СделкиСКлиентами.ДатаОкончания МЕЖДУ &НачалоПериода И &ОкончаниеПериода
| И СделкиСКлиентами.Ответственный В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)
|
| СГРУППИРОВАТЬ ПО
| ВЫБОР
| КОГДА СделкиСКлиентами.Ответственный = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)
| ТОГДА &НеУказан
| ИНАЧЕ СделкиСКлиентами.Ответственный
| КОНЕЦ
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| 0,
| ЕСТЬNULL(ВыручкаИСебестоимостьПродажОбороты.ЗаказКлиента.Менеджер, &НеУказан),
| ВыручкаИСебестоимостьПродажОбороты.СуммаВыручкиОборот
| ИЗ
| РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(&НачалоПериода, &ОкончаниеПериода, ,АналитикаУчетаПоПартнерам.Партнер <> ЗНАЧЕНИЕ(Справочник.Партнеры.РозничныйПокупатель) И ЗаказКлиента.Менеджер В (ВЫБРАТЬ ОтборПоМенеджерам.Ссылка ИЗ ОтборПоМенеджерам КАК ОтборПоМенеджерам)) КАК ВыручкаИСебестоимостьПродажОбороты) КАК ВложенныйЗапрос
|
| СГРУППИРОВАТЬ ПО
| ВложенныйЗапрос.Ответственный
|
| ИМЕЮЩИЕ
| СУММА(ВложенныйЗапрос.Ссылка) > 0 И СУММА(ВложенныйЗапрос.СуммаВыручкиОборот) > 0) КАК ВложенныйЗапрос
|
|УПОРЯДОЧИТЬ ПО
| ПродажиНаСделку
|;
|
|
|";
КонецЕсли;
КонецФункции
Функция ТекстЗапросаОПродажахНаОдноВзаимодействие(СоответствиеЗапросыДанные, НомерПоследнегоПакета, СтруктураПериодовФормированияОтчета)
Если СтруктураПериодовФормированияОтчета.ЕстьДополнительныйПериод Тогда
СоответствиеЗапросыДанные.Вставить("ПродажиНаОдноВзаимодействие",НомерПоследнегоПакета + 3);
НомерПоследнегоПакета = НомерПоследнегоПакета + 3;
Возврат "ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ВложенныйЗапрос.Ответственный КАК Менеджер,
| ВложенныйЗапрос.Продажи / ВложенныйЗапрос.Взаимодействия КАК Показатель
|ПОМЕСТИТЬ ПродажиНаОдноВзаимодействиеТекущий
|ИЗ
| (ВЫБРАТЬ
| ВложенныйЗапрос.Ответственный КАК Ответственный,
| СУММА(ВложенныйЗапрос.Ссылка) КАК Взаимодействия,
| СУММА(ВложенныйЗапрос.Продажи) КАК Продажи
| ИЗ
| (ВЫБРАТЬ
| КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ВложенныйЗапрос.Ссылка) КАК Ссылка,
| ВложенныйЗапрос.Ответственный КАК Ответственный,
| 0 КАК Продажи
| ИЗ
| (ВЫБРАТЬ
| ЭлектронноеПисьмоИсходящее.Ответственный КАК Ответственный,
| ЭлектронноеПисьмоИсходящее.Ссылка КАК Ссылка
| ИЗ
| Документ.ЭлектронноеПисьмоИсходящее КАК ЭлектронноеПисьмоИсходящее
| ГДЕ
| НЕ ЭлектронноеПисьмоИсходящее.ПометкаУдаления
| И ЭлектронноеПисьмоИсходящее.Дата МЕЖДУ &НачалоПериода И &ОкончаниеПериода
| И ЭлектронноеПисьмоИсходящее.СтатусПисьма = ЗНАЧЕНИЕ(Перечисление.СтатусыИсходящегоЭлектронногоПисьма.Отправлено)
| И ЭлектронноеПисьмоИсходящее.Ответственный В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ЭлектронноеПисьмоВходящее.Ответственный,
| ЭлектронноеПисьмоВходящее.Ссылка
| ИЗ
| Документ.ЭлектронноеПисьмоВходящее КАК ЭлектронноеПисьмоВходящее
| ГДЕ
| НЕ ЭлектронноеПисьмоВходящее.ПометкаУдаления
| И ЭлектронноеПисьмоВходящее.Дата МЕЖДУ &НачалоПериода И &ОкончаниеПериода
| И ЭлектронноеПисьмоВходящее.Ответственный В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ РАЗЛИЧНЫЕ
| ТелефонныйЗвонок.Ответственный,
| ТелефонныйЗвонок.Ссылка
| ИЗ
| Документ.ТелефонныйЗвонок КАК ТелефонныйЗвонок
| ГДЕ
| НЕ ТелефонныйЗвонок.ПометкаУдаления
| И ТелефонныйЗвонок.Дата МЕЖДУ &НачалоПериода И &ОкончаниеПериода
| И ТелефонныйЗвонок.Ответственный В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ РАЗЛИЧНЫЕ
| Встреча.Ответственный,
| Встреча.Ссылка
| ИЗ
| Документ.Встреча КАК Встреча
| ГДЕ
| НЕ Встреча.ПометкаУдаления
| И Встреча.Дата МЕЖДУ &НачалоПериода И &ОкончаниеПериода
| И Встреча.Ответственный В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)) КАК ВложенныйЗапрос
|
| СГРУППИРОВАТЬ ПО
| ВложенныйЗапрос.Ответственный
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| 0,
| ЕСТЬNULL(ВыручкаИСебестоимостьПродажОбороты.ЗаказКлиента.Менеджер, &НеУказан),
| ВыручкаИСебестоимостьПродажОбороты.СуммаВыручкиОборот
| ИЗ
| РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(
| &НачалоПериода,
| &ОкончаниеПериода,
| ,
| ЗаказКлиента.Менеджер В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)) КАК ВыручкаИСебестоимостьПродажОбороты) КАК ВложенныйЗапрос
|
| СГРУППИРОВАТЬ ПО
| ВложенныйЗапрос.Ответственный
|
| ИМЕЮЩИЕ
| СУММА(ВложенныйЗапрос.Ссылка) > 0 И
| СУММА(ВложенныйЗапрос.Продажи) > 0) КАК ВложенныйЗапрос
|;
|
|
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ВложенныйЗапрос.Ответственный КАК Менеджер,
| ВложенныйЗапрос.Продажи / ВложенныйЗапрос.Взаимодействия КАК Показатель
|ПОМЕСТИТЬ ПродажиНаОдноВзаимодействиеПредыдущий
|ИЗ
| (ВЫБРАТЬ
| ВложенныйЗапрос.Ответственный КАК Ответственный,
| СУММА(ВложенныйЗапрос.Ссылка) КАК Взаимодействия,
| СУММА(ВложенныйЗапрос.Продажи) КАК Продажи
| ИЗ
| (ВЫБРАТЬ
| КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ВложенныйЗапрос.Ссылка) КАК Ссылка,
| ВложенныйЗапрос.Ответственный КАК Ответственный,
| 0 КАК Продажи
| ИЗ
| (ВЫБРАТЬ
| ЭлектронноеПисьмоИсходящее.Ответственный КАК Ответственный,
| ЭлектронноеПисьмоИсходящее.Ссылка КАК Ссылка
| ИЗ
| Документ.ЭлектронноеПисьмоИсходящее КАК ЭлектронноеПисьмоИсходящее
| ГДЕ
| НЕ ЭлектронноеПисьмоИсходящее.ПометкаУдаления
| И ЭлектронноеПисьмоИсходящее.Дата МЕЖДУ &ДатаНачалаДополнительныйПериод И &ДатаОкончанияДополнительныйПериод
| И ЭлектронноеПисьмоИсходящее.СтатусПисьма = ЗНАЧЕНИЕ(Перечисление.СтатусыИсходящегоЭлектронногоПисьма.Отправлено)
| И ЭлектронноеПисьмоИсходящее.Ответственный В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ЭлектронноеПисьмоВходящее.Ответственный,
| ЭлектронноеПисьмоВходящее.Ссылка
| ИЗ
| Документ.ЭлектронноеПисьмоВходящее КАК ЭлектронноеПисьмоВходящее
| ГДЕ
| НЕ ЭлектронноеПисьмоВходящее.ПометкаУдаления
| И ЭлектронноеПисьмоВходящее.Дата МЕЖДУ &ДатаНачалаДополнительныйПериод И &ДатаОкончанияДополнительныйПериод
| И ЭлектронноеПисьмоВходящее.Ответственный В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ РАЗЛИЧНЫЕ
| ТелефонныйЗвонок.Ответственный,
| ТелефонныйЗвонок.Ссылка
| ИЗ
| Документ.ТелефонныйЗвонок КАК ТелефонныйЗвонок
| ГДЕ
| НЕ ТелефонныйЗвонок.ПометкаУдаления
| И ТелефонныйЗвонок.Дата МЕЖДУ &ДатаНачалаДополнительныйПериод И &ДатаОкончанияДополнительныйПериод
| И ТелефонныйЗвонок.Ответственный В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ РАЗЛИЧНЫЕ
| Встреча.Ответственный,
| Встреча.Ссылка
| ИЗ
| Документ.Встреча КАК Встреча
| ГДЕ
| НЕ Встреча.ПометкаУдаления
| И Встреча.Дата МЕЖДУ &ДатаНачалаДополнительныйПериод И &ДатаОкончанияДополнительныйПериод
| И Встреча.Ответственный В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)) КАК ВложенныйЗапрос
|
| СГРУППИРОВАТЬ ПО
| ВложенныйЗапрос.Ответственный
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| 0,
| ЕСТЬNULL(ВыручкаИСебестоимостьПродажОбороты.ЗаказКлиента.Менеджер, &НеУказан),
| ВыручкаИСебестоимостьПродажОбороты.СуммаВыручкиОборот
| ИЗ
| РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(&ДатаНачалаДополнительныйПериод, &ДатаОкончанияДополнительныйПериод, , ) КАК ВыручкаИСебестоимостьПродажОбороты) КАК ВложенныйЗапрос
|
| СГРУППИРОВАТЬ ПО
| ВложенныйЗапрос.Ответственный
|
| ИМЕЮЩИЕ
| СУММА(ВложенныйЗапрос.Ссылка) > 0 И
| СУММА(ВложенныйЗапрос.Продажи) > 0) КАК ВложенныйЗапрос
|;
|
|
|ВЫБРАТЬ
| ЕСТЬNULL(ВложенныйЗапрос.Менеджер, &НеУказан) КАК Менеджер,
| ВложенныйЗапрос.Текущий,
| ВложенныйЗапрос.Предыдущий,
| ВЫБОР
| КОГДА ВложенныйЗапрос.Текущий - ВложенныйЗапрос.Предыдущий > 0
| ТОГДА ВложенныйЗапрос.Текущий - ВложенныйЗапрос.Предыдущий
| ИНАЧЕ 0
| КОНЕЦ КАК Прирост,
| ВЫБОР
| КОГДА ВложенныйЗапрос.Текущий - ВложенныйЗапрос.Предыдущий < 0
| ТОГДА ВложенныйЗапрос.Текущий - ВложенныйЗапрос.Предыдущий
| ИНАЧЕ 0
| КОНЕЦ КАК Спад
|ИЗ
| (ВЫБРАТЬ
| ВЫБОР
| КОГДА ПредыдущийПериод.Менеджер ЕСТЬ NULL
| ТОГДА ТекущийПериод.Менеджер
| ИНАЧЕ ПредыдущийПериод.Менеджер
| КОНЕЦ КАК Менеджер,
| СУММА(ЕСТЬNULL(ПредыдущийПериод.Показатель, 0)) КАК Предыдущий,
| СУММА(ЕСТЬNULL(ТекущийПериод.Показатель, 0)) КАК Текущий
| ИЗ
| ПродажиНаОдноВзаимодействиеПредыдущий КАК ПредыдущийПериод
| ПОЛНОЕ СОЕДИНЕНИЕ ПродажиНаОдноВзаимодействиеТекущий КАК ТекущийПериод
| ПО ПредыдущийПериод.Менеджер = ТекущийПериод.Менеджер
|
| СГРУППИРОВАТЬ ПО
| ВЫБОР
| КОГДА ПредыдущийПериод.Менеджер ЕСТЬ NULL
| ТОГДА ТекущийПериод.Менеджер
| ИНАЧЕ ПредыдущийПериод.Менеджер
| КОНЕЦ) КАК ВложенныйЗапрос
|
|УПОРЯДОЧИТЬ ПО
| ВложенныйЗапрос.Текущий
|;
|
|
|";
Иначе
СоответствиеЗапросыДанные.Вставить("ПродажиНаОдноВзаимодействие",НомерПоследнегоПакета + 1);
НомерПоследнегоПакета = НомерПоследнегоПакета + 1;
Возврат "ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ВложенныйЗапрос.Ответственный КАК Менеджер,
| ВложенныйЗапрос.Продажи / ВложенныйЗапрос.Взаимодействия КАК ПродажиНаВзаимодействие
|ИЗ
| (ВЫБРАТЬ
| ВложенныйЗапрос.Ответственный КАК Ответственный,
| СУММА(ВложенныйЗапрос.Ссылка) КАК Взаимодействия,
| СУММА(ВложенныйЗапрос.Продажи) КАК Продажи
| ИЗ
| (ВЫБРАТЬ
| КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ВложенныйЗапрос.Ссылка) КАК Ссылка,
| ВложенныйЗапрос.Ответственный КАК Ответственный,
| 0 КАК Продажи
| ИЗ
| (ВЫБРАТЬ
| ЭлектронноеПисьмоИсходящее.Ответственный КАК Ответственный,
| ЭлектронноеПисьмоИсходящее.Ссылка КАК Ссылка
| ИЗ
| Документ.ЭлектронноеПисьмоИсходящее КАК ЭлектронноеПисьмоИсходящее
| ГДЕ
| НЕ ЭлектронноеПисьмоИсходящее.ПометкаУдаления
| И ЭлектронноеПисьмоИсходящее.Дата МЕЖДУ &НачалоПериода И &ОкончаниеПериода
| И ЭлектронноеПисьмоИсходящее.СтатусПисьма = ЗНАЧЕНИЕ(Перечисление.СтатусыИсходящегоЭлектронногоПисьма.Отправлено)
| И ЭлектронноеПисьмоИсходящее.Ответственный В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ЭлектронноеПисьмоВходящее.Ответственный,
| ЭлектронноеПисьмоВходящее.Ссылка
| ИЗ
| Документ.ЭлектронноеПисьмоВходящее КАК ЭлектронноеПисьмоВходящее
| ГДЕ
| НЕ ЭлектронноеПисьмоВходящее.ПометкаУдаления
| И ЭлектронноеПисьмоВходящее.Дата МЕЖДУ &НачалоПериода И &ОкончаниеПериода
| И ЭлектронноеПисьмоВходящее.Ответственный В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ РАЗЛИЧНЫЕ
| ТелефонныйЗвонок.Ответственный,
| ТелефонныйЗвонок.Ссылка
| ИЗ
| Документ.ТелефонныйЗвонок КАК ТелефонныйЗвонок
| ГДЕ
| НЕ ТелефонныйЗвонок.ПометкаУдаления
| И ТелефонныйЗвонок.Дата МЕЖДУ &НачалоПериода И &ОкончаниеПериода
| И ТелефонныйЗвонок.Ответственный В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ РАЗЛИЧНЫЕ
| Встреча.Ответственный,
| Встреча.Ссылка
| ИЗ
| Документ.Встреча КАК Встреча
| ГДЕ
| НЕ Встреча.ПометкаУдаления
| И Встреча.Дата МЕЖДУ &НачалоПериода И &ОкончаниеПериода
| И Встреча.Ответственный В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)) КАК ВложенныйЗапрос
|
| СГРУППИРОВАТЬ ПО
| ВложенныйЗапрос.Ответственный
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| 0,
| ЕСТЬNULL(ВыручкаИСебестоимостьПродажОбороты.ЗаказКлиента.Менеджер, &НеУказан),
| ВыручкаИСебестоимостьПродажОбороты.СуммаВыручкиОборот
| ИЗ
| РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(&НачалоПериода, &ОкончаниеПериода, , ) КАК ВыручкаИСебестоимостьПродажОбороты) КАК ВложенныйЗапрос
|
| СГРУППИРОВАТЬ ПО
| ВложенныйЗапрос.Ответственный
|
| ИМЕЮЩИЕ
| СУММА(ВложенныйЗапрос.Ссылка) > 0 И
| СУММА(ВложенныйЗапрос.Продажи) > 0) КАК ВложенныйЗапрос
|
|УПОРЯДОЧИТЬ ПО
| ПродажиНаВзаимодействие
|;
|
|
|";
КонецЕсли;
КонецФункции
Функция ТекстЗапросаОПричинахПроигрышаСделок(СоответствиеЗапросыДанные,НомерПоследнегоПакета, СтруктураПериодовФормированияОтчета)
Если СтруктураПериодовФормированияОтчета.ЕстьДополнительныйПериод Тогда
СоответствиеЗапросыДанные.Вставить("ПричиныПроигрышаСделок",НомерПоследнегоПакета + 3);
НомерПоследнегоПакета = НомерПоследнегоПакета + 3;
Возврат "ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 5
| ПРЕДСТАВЛЕНИЕ(СделкиСКлиентами.Ответственный) КАК Менеджер,
| ПРЕДСТАВЛЕНИЕ(СделкиСКлиентами.ПричинаПроигрышаСделки),
| СУММА(1) КАК Количество
|ПОМЕСТИТЬ ПричиныПроигрышаСделокТекущий
|ИЗ
| Справочник.СделкиСКлиентами КАК СделкиСКлиентами
|ГДЕ
| СделкиСКлиентами.ДатаОкончания МЕЖДУ &НачалоПериода И &ОкончаниеПериода
| И СделкиСКлиентами.Закрыта
| И (НЕ СделкиСКлиентами.ПометкаУдаления)
| И СделкиСКлиентами.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыСделок.Проиграна)
| И СделкиСКлиентами.Ответственный В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)
|
|СГРУППИРОВАТЬ ПО
| ПРЕДСТАВЛЕНИЕ(СделкиСКлиентами.Ответственный),
| ПРЕДСТАВЛЕНИЕ(СделкиСКлиентами.ПричинаПроигрышаСделки)
|
|УПОРЯДОЧИТЬ ПО
| Количество УБЫВ
|;
|
|
|ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 5
| ПРЕДСТАВЛЕНИЕ(СделкиСКлиентами.Ответственный) КАК Менеджер,
| ПРЕДСТАВЛЕНИЕ(СделкиСКлиентами.ПричинаПроигрышаСделки),
| СУММА(1) КАК Количество
|ПОМЕСТИТЬ ПричиныПроигрышаСделокПредыдущий
|ИЗ
| Справочник.СделкиСКлиентами КАК СделкиСКлиентами
|ГДЕ
| СделкиСКлиентами.ДатаОкончания МЕЖДУ &ДатаНачалаДополнительныйПериод И &ДатаОкончанияДополнительныйПериод
| И СделкиСКлиентами.Закрыта
| И (НЕ СделкиСКлиентами.ПометкаУдаления)
| И СделкиСКлиентами.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыСделок.Проиграна)
| И СделкиСКлиентами.Ответственный В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)
|
|СГРУППИРОВАТЬ ПО
| ПРЕДСТАВЛЕНИЕ(СделкиСКлиентами.Ответственный),
| ПРЕДСТАВЛЕНИЕ(СделкиСКлиентами.ПричинаПроигрышаСделки)
|
|УПОРЯДОЧИТЬ ПО
| Количество УБЫВ
|;
|
|
|ВЫБРАТЬ
| ПричиныПроигрышаСделокПредыдущий.Менеджер,
| ПричиныПроигрышаСделокПредыдущий.ПричинаПроигрышаСделкиПредставление,
| ПричиныПроигрышаСделокПредыдущий.Количество КАК ЗначениеПоказателя,
| ""Предыдущий"" КАК Период
|ИЗ
| ПричиныПроигрышаСделокПредыдущий КАК ПричиныПроигрышаСделокПредыдущий
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ПричиныПроигрышаСделокТекущий.Менеджер,
| ПричиныПроигрышаСделокТекущий.ПричинаПроигрышаСделкиПредставление,
| ПричиныПроигрышаСделокТекущий.Количество,
| ""Текущий""
|ИЗ
| ПричиныПроигрышаСделокТекущий КАК ПричиныПроигрышаСделокТекущий
|;
|
|
|";
Иначе
СоответствиеЗапросыДанные.Вставить("ПричиныПроигрышаСделок",НомерПоследнегоПакета + 1);
НомерПоследнегоПакета = НомерПоследнегоПакета + 1;
Возврат "ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 5
| ПРЕДСТАВЛЕНИЕ(СделкиСКлиентами.Ответственный) КАК Менеджер,
| ПРЕДСТАВЛЕНИЕ(СделкиСКлиентами.ПричинаПроигрышаСделки),
| СУММА(1) КАК Количество
|ИЗ
| Справочник.СделкиСКлиентами КАК СделкиСКлиентами
|ГДЕ
| СделкиСКлиентами.ДатаОкончания МЕЖДУ &НачалоПериода И &ОкончаниеПериода
| И СделкиСКлиентами.Закрыта
| И (НЕ СделкиСКлиентами.ПометкаУдаления)
| И СделкиСКлиентами.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыСделок.Проиграна)
| И СделкиСКлиентами.Ответственный В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)
|
|СГРУППИРОВАТЬ ПО
| ПРЕДСТАВЛЕНИЕ(СделкиСКлиентами.Ответственный),
| ПРЕДСТАВЛЕНИЕ(СделкиСКлиентами.ПричинаПроигрышаСделки)
|
|УПОРЯДОЧИТЬ ПО
| Количество УБЫВ
|;
|
|
|";
КонецЕсли;
КонецФункции
Функция ТекстЗапросаООсновныхЭтапахПотерь(СоответствиеЗапросыДанные,НомерПоследнегоПакета, СтруктураПериодовФормированияОтчета)
Если СтруктураПериодовФормированияОтчета.ЕстьДополнительныйПериод Тогда
СоответствиеЗапросыДанные.Вставить("ОсновныеЭтапыПотерь",НомерПоследнегоПакета + 3);
НомерПоследнегоПакета = НомерПоследнегоПакета + 3;
Возврат "ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 5
| ПРЕДСТАВЛЕНИЕ(СтатистикаСделокСКлиентами.Ответственный) КАК Менеджер,
| ПРЕДСТАВЛЕНИЕ(СтатистикаСделокСКлиентами.ЭтапПроцесса),
| СУММА(1) КАК Количество
|ПОМЕСТИТЬ ОсновныеЭтапыПотерьТекущий
|ИЗ
| РегистрСведений.СтатистикаСделокСКлиентами КАК СтатистикаСделокСКлиентами
|ГДЕ
| СтатистикаСделокСКлиентами.ДатаОкончания МЕЖДУ &НачалоПериода И &ОкончаниеПериода
| И СтатистикаСделокСКлиентами.Результат = ЗНАЧЕНИЕ(Перечисление.СтатусыСделок.Проиграна)
| И СтатистикаСделокСКлиентами.Ответственный В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)
|
|СГРУППИРОВАТЬ ПО
| СтатистикаСделокСКлиентами.Ответственный,
| СтатистикаСделокСКлиентами.ЭтапПроцесса
|
|УПОРЯДОЧИТЬ ПО
| Количество УБЫВ
|;
|
|
|ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 5
| ПРЕДСТАВЛЕНИЕ(СтатистикаСделокСКлиентами.Ответственный) КАК Менеджер,
| ПРЕДСТАВЛЕНИЕ(СтатистикаСделокСКлиентами.ЭтапПроцесса),
| СУММА(1) КАК Количество
|ПОМЕСТИТЬ ОсновныеЭтапыПотерьПредыдущий
|ИЗ
| РегистрСведений.СтатистикаСделокСКлиентами КАК СтатистикаСделокСКлиентами
|ГДЕ
| СтатистикаСделокСКлиентами.ДатаОкончания МЕЖДУ &ДатаНачалаДополнительныйПериод И &ДатаОкончанияДополнительныйПериод
| И СтатистикаСделокСКлиентами.Результат = ЗНАЧЕНИЕ(Перечисление.СтатусыСделок.Проиграна)
| И СтатистикаСделокСКлиентами.Ответственный В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)
|
|СГРУППИРОВАТЬ ПО
| СтатистикаСделокСКлиентами.Ответственный,
| СтатистикаСделокСКлиентами.ЭтапПроцесса
|
|УПОРЯДОЧИТЬ ПО
| Количество УБЫВ
|;
|
|
| ВЫБРАТЬ
| ОсновныеЭтапыПотерьПредыдущий.Менеджер,
| ОсновныеЭтапыПотерьПредыдущий.ЭтапПроцессаПредставление,
| ОсновныеЭтапыПотерьПредыдущий.Количество КАК ЗначениеПоказателя,
| ""Предыдущий"" КАК Период
|ИЗ
| ОсновныеЭтапыПотерьПредыдущий КАК ОсновныеЭтапыПотерьПредыдущий
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ОсновныеЭтапыПотерьТекущий.Менеджер,
| ОсновныеЭтапыПотерьТекущий.ЭтапПроцессаПредставление,
| ОсновныеЭтапыПотерьТекущий.Количество,
| ""Текущий""
|ИЗ
| ОсновныеЭтапыПотерьТекущий КАК ОсновныеЭтапыПотерьТекущий
|;
|
|
|";
Иначе
СоответствиеЗапросыДанные.Вставить("ОсновныеЭтапыПотерь",НомерПоследнегоПакета + 1);
НомерПоследнегоПакета = НомерПоследнегоПакета + 1;
Возврат "ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 5
| ПРЕДСТАВЛЕНИЕ(СтатистикаСделокСКлиентами.Ответственный) КАК Менеджер,
| ПРЕДСТАВЛЕНИЕ(СтатистикаСделокСКлиентами.ЭтапПроцесса),
| СУММА(1) КАК Количество
|ИЗ
| РегистрСведений.СтатистикаСделокСКлиентами КАК СтатистикаСделокСКлиентами
|ГДЕ
| СтатистикаСделокСКлиентами.ДатаОкончания МЕЖДУ &НачалоПериода И &ОкончаниеПериода
| И СтатистикаСделокСКлиентами.Результат = ЗНАЧЕНИЕ(Перечисление.СтатусыСделок.Проиграна)
| И СтатистикаСделокСКлиентами.Ответственный В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)
|
|СГРУППИРОВАТЬ ПО
| СтатистикаСделокСКлиентами.Ответственный,
| СтатистикаСделокСКлиентами.ЭтапПроцесса
|
|УПОРЯДОЧИТЬ ПО
| Количество УБЫВ
|;
|
|
|";
КонецЕсли;
КонецФункции
Функция ТекстЗапросаОПричинахНеудовлетворенияПервичногоСпроса(СоответствиеЗапросыДанные,НомерПоследнегоПакета,СтруктураПериодовФормированияОтчета)
Если СтруктураПериодовФормированияОтчета.ЕстьДополнительныйПериод Тогда
СоответствиеЗапросыДанные.Вставить("НеудовлетворениеПервичногоСпроса",НомерПоследнегоПакета + 3);
НомерПоследнегоПакета = НомерПоследнегоПакета + 3;
Возврат "ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 5
| ВЫБОР
| КОГДА СделкиСКлиентами.Ответственный = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)
| ТОГДА &НеУказан
| ИНАЧЕ СделкиСКлиентами.Ответственный
| КОНЕЦ КАК Менеджер,
| ПРЕДСТАВЛЕНИЕ(СделкиСКлиентамиПервичныйСпрос.ПричинаНеудовлетворения) КАК ПричинаНеудовлетворения,
| СУММА(СделкиСКлиентамиПервичныйСпрос.Сумма - СделкиСКлиентамиПервичныйСпрос.Сумма * СделкиСКлиентамиПервичныйСпрос.ПроцентУдовлетворения / 100) КАК СуммаНеудовлетворенногоСпроса
|ПОМЕСТИТЬ НеудовлетворениеПервичногоСпросаТекущий
|ИЗ
| Справочник.СделкиСКлиентами.ПервичныйСпрос КАК СделкиСКлиентамиПервичныйСпрос
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.СделкиСКлиентами КАК СделкиСКлиентами
| ПО СделкиСКлиентамиПервичныйСпрос.Ссылка = СделкиСКлиентами.Ссылка
|ГДЕ
| СделкиСКлиентами.Закрыта
| И (НЕ СделкиСКлиентами.ПометкаУдаления)
| И СделкиСКлиентами.ДатаОкончания МЕЖДУ &НачалоПериода И &ОкончаниеПериода
| И СделкиСКлиентамиПервичныйСпрос.ПроцентУдовлетворения < 100
| И СделкиСКлиентами.Ответственный В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)
|
|СГРУППИРОВАТЬ ПО
| ВЫБОР
| КОГДА СделкиСКлиентами.Ответственный = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)
| ТОГДА &НеУказан
| ИНАЧЕ СделкиСКлиентами.Ответственный
| КОНЕЦ,
| ПРЕДСТАВЛЕНИЕ(СделкиСКлиентамиПервичныйСпрос.ПричинаНеудовлетворения)
|
|ИМЕЮЩИЕ
| СУММА(СделкиСКлиентамиПервичныйСпрос.Сумма - СделкиСКлиентамиПервичныйСпрос.Сумма * СделкиСКлиентамиПервичныйСпрос.ПроцентУдовлетворения / 100) > 0
|
|УПОРЯДОЧИТЬ ПО
| СуммаНеудовлетворенногоСпроса УБЫВ
|;
|
|
|ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 5
| ВЫБОР
| КОГДА СделкиСКлиентами.Ответственный = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)
| ТОГДА &НеУказан
| ИНАЧЕ СделкиСКлиентами.Ответственный
| КОНЕЦ КАК Менеджер,
| ПРЕДСТАВЛЕНИЕ(СделкиСКлиентамиПервичныйСпрос.ПричинаНеудовлетворения) КАК ПричинаНеудовлетворения,
| СУММА(СделкиСКлиентамиПервичныйСпрос.Сумма - СделкиСКлиентамиПервичныйСпрос.Сумма * СделкиСКлиентамиПервичныйСпрос.ПроцентУдовлетворения / 100) КАК СуммаНеудовлетворенногоСпроса
|ПОМЕСТИТЬ НеудовлетворениеПервичногоСпросаПредыдущий
|ИЗ
| Справочник.СделкиСКлиентами.ПервичныйСпрос КАК СделкиСКлиентамиПервичныйСпрос
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.СделкиСКлиентами КАК СделкиСКлиентами
| ПО СделкиСКлиентамиПервичныйСпрос.Ссылка = СделкиСКлиентами.Ссылка
|ГДЕ
| СделкиСКлиентами.Закрыта
| И (НЕ СделкиСКлиентами.ПометкаУдаления)
| И СделкиСКлиентами.ДатаОкончания МЕЖДУ &ДатаНачалаДополнительныйПериод И &ДатаОкончанияДополнительныйПериод
| И СделкиСКлиентамиПервичныйСпрос.ПроцентУдовлетворения < 100
| И СделкиСКлиентами.Ответственный В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)
|
|СГРУППИРОВАТЬ ПО
| ВЫБОР
| КОГДА СделкиСКлиентами.Ответственный = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)
| ТОГДА &НеУказан
| ИНАЧЕ СделкиСКлиентами.Ответственный
| КОНЕЦ,
| ПРЕДСТАВЛЕНИЕ(СделкиСКлиентамиПервичныйСпрос.ПричинаНеудовлетворения)
|
|ИМЕЮЩИЕ
| СУММА(СделкиСКлиентамиПервичныйСпрос.Сумма - СделкиСКлиентамиПервичныйСпрос.Сумма * СделкиСКлиентамиПервичныйСпрос.ПроцентУдовлетворения / 100) > 0
|
|УПОРЯДОЧИТЬ ПО
| СуммаНеудовлетворенногоСпроса УБЫВ
|;
|
|
|ВЫБРАТЬ
| ВЫБОР
| КОГДА НеудовлетворениеПервичногоСпросаПредыдущий.Менеджер = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)
| ТОГДА &НеУказан
| ИНАЧЕ ПРЕДСТАВЛЕНИЕ(НеудовлетворениеПервичногоСпросаПредыдущий.Менеджер)
| КОНЕЦ КАК Менеджер,
| НеудовлетворениеПервичногоСпросаПредыдущий.ПричинаНеудовлетворения,
| НеудовлетворениеПервичногоСпросаПредыдущий.СуммаНеудовлетворенногоСпроса КАК ЗначениеПоказателя,
| ""Предыдущий"" КАК Период
|ИЗ
| НеудовлетворениеПервичногоСпросаПредыдущий КАК НеудовлетворениеПервичногоСпросаПредыдущий
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ВЫБОР
| КОГДА НеудовлетворениеПервичногоСпросаТекущий.Менеджер = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)
| ТОГДА &НеУказан
| ИНАЧЕ ПРЕДСТАВЛЕНИЕ(НеудовлетворениеПервичногоСпросаТекущий.Менеджер)
| КОНЕЦ,
| НеудовлетворениеПервичногоСпросаТекущий.ПричинаНеудовлетворения,
| НеудовлетворениеПервичногоСпросаТекущий.СуммаНеудовлетворенногоСпроса,
| ""Текущий""
|ИЗ
| НеудовлетворениеПервичногоСпросаТекущий КАК НеудовлетворениеПервичногоСпросаТекущий
|;
|
|
|";
Иначе
СоответствиеЗапросыДанные.Вставить("НеудовлетворениеПервичногоСпроса",НомерПоследнегоПакета + 1);
НомерПоследнегоПакета = НомерПоследнегоПакета + 1;
Возврат "ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 5
| ВЫБОР
| КОГДА СделкиСКлиентами.Ответственный = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)
| ТОГДА &НеУказан
| ИНАЧЕ ПРЕДСТАВЛЕНИЕ(СделкиСКлиентами.Ответственный)
| КОНЕЦ КАК Менеджер,
| ПРЕДСТАВЛЕНИЕ(СделкиСКлиентамиПервичныйСпрос.ПричинаНеудовлетворения) КАК ПричинаНеудовлетворения,
| СУММА(СделкиСКлиентамиПервичныйСпрос.Сумма - СделкиСКлиентамиПервичныйСпрос.Сумма * СделкиСКлиентамиПервичныйСпрос.ПроцентУдовлетворения / 100) КАК СуммаНеудовлетворенногоСпроса
|ИЗ
| Справочник.СделкиСКлиентами.ПервичныйСпрос КАК СделкиСКлиентамиПервичныйСпрос
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.СделкиСКлиентами КАК СделкиСКлиентами
| ПО СделкиСКлиентамиПервичныйСпрос.Ссылка = СделкиСКлиентами.Ссылка
|ГДЕ
| СделкиСКлиентами.Закрыта
| И (НЕ СделкиСКлиентами.ПометкаУдаления)
| И СделкиСКлиентами.ДатаОкончания МЕЖДУ &НачалоПериода И &ОкончаниеПериода
| И СделкиСКлиентамиПервичныйСпрос.ПроцентУдовлетворения < 100
| И СделкиСКлиентами.Ответственный В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)
|
|СГРУППИРОВАТЬ ПО
| ВЫБОР
| КОГДА СделкиСКлиентами.Ответственный = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)
| ТОГДА &НеУказан
| ИНАЧЕ ПРЕДСТАВЛЕНИЕ(СделкиСКлиентами.Ответственный)
| КОНЕЦ,
| ПРЕДСТАВЛЕНИЕ(СделкиСКлиентамиПервичныйСпрос.ПричинаНеудовлетворения)
|
|ИМЕЮЩИЕ
| СУММА(СделкиСКлиентамиПервичныйСпрос.Сумма - СделкиСКлиентамиПервичныйСпрос.Сумма * СделкиСКлиентамиПервичныйСпрос.ПроцентУдовлетворения / 100) > 0
|
|УПОРЯДОЧИТЬ ПО
| СуммаНеудовлетворенногоСпроса УБЫВ
|;
|
|
|";
КонецЕсли;
КонецФункции
Функция ТекстЗапросаДинамикаКлиентскойБазы(СоответствиеЗапросыДанные,НомерПоследнегоПакета, СтруктураПериодовФормированияОтчета)
Если СтруктураПериодовФормированияОтчета.ЕстьДополнительныйПериод Тогда
СоответствиеЗапросыДанные.Вставить("ДинамикаКлиентскойБазы",НомерПоследнегоПакета + 9);
НомерПоследнегоПакета = НомерПоследнегоПакета + 9;
Возврат "ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
| ABCXYZКлассификацияКлиентов.Партнер,
| ВЫБОР
| КОГДА ABCXYZКлассификацияКлиентов.Класс = ЗНАЧЕНИЕ(Перечисление.ABCКлассификация.НеКлассифицирован)
| ТОГДА ЛОЖЬ
| ИНАЧЕ ИСТИНА
| КОНЕЦ КАК Классифицирован
|ПОМЕСТИТЬ ПоследняяКлассификация
|ИЗ
| РегистрСведений.ABCXYZКлассификацияКлиентов КАК ABCXYZКлассификацияКлиентов
|ГДЕ
| ABCXYZКлассификацияКлиентов.ТипКлассификации = ЗНАЧЕНИЕ(Перечисление.ТипыКлассификации.ABC)
| И ABCXYZКлассификацияКлиентов.Период В
| (ВЫБРАТЬ
| МАКСИМУМ(ABCXYZКлассификацияКлиентов.Период) КАК Период
| ИЗ
| РегистрСведений.ABCXYZКлассификацияКлиентов КАК ABCXYZКлассификацияКлиентов
| ГДЕ
| ABCXYZКлассификацияКлиентов.Период >= &ОкончаниеПериода)
| И ABCXYZКлассификацияКлиентов.Партнер <> ЗНАЧЕНИЕ(Справочник.Партнеры.РозничныйПокупатель)
| И ABCXYZКлассификацияКлиентов.Партнер.ОсновнойМенеджер В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)
|;
|
|
|ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
| ABCXYZКлассификацияКлиентовСрезПоследних.Партнер,
| ВЫБОР
| КОГДА ABCXYZКлассификацияКлиентовСрезПоследних.Класс = ЗНАЧЕНИЕ(Перечисление.ABCКлассификация.НеКлассифицирован)
| ТОГДА ЛОЖЬ
| ИНАЧЕ ИСТИНА
| КОНЕЦ КАК Классифицирован
|ПОМЕСТИТЬ НаНачалоПериода
|ИЗ
| РегистрСведений.ABCXYZКлассификацияКлиентов.СрезПоследних(&НачалоПериода, Партнер <> ЗНАЧЕНИЕ(Справочник.Партнеры.РозничныйПокупатель) И Партнер.ОсновнойМенеджер В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)) КАК ABCXYZКлассификацияКлиентовСрезПоследних
|ГДЕ
| ABCXYZКлассификацияКлиентовСрезПоследних.ТипКлассификации = ЗНАЧЕНИЕ(Перечисление.ТипыКлассификации.ABC)
|;
|
|
|ВЫБРАТЬ
| ВложенныйЗапрос.Клиент,
| ВложенныйЗапрос.СтатусКлиента
|ПОМЕСТИТЬ КлиентыСтатусы
|ИЗ
| (ВЫБРАТЬ
| ЕСТЬNULL(НаНачалоПериода.Партнер, ПоследняяКлассификация.Партнер) КАК Клиент,
| ВЫБОР
| КОГДА НаНачалоПериода.Классифицирован ЕСТЬ NULL
| ТОГДА ВЫБОР
| КОГДА ПоследняяКлассификация.Классифицирован
| ТОГДА ""Новый""
| КОНЕЦ
| ИНАЧЕ ВЫБОР
| КОГДА НаНачалоПериода.Классифицирован
| И (НЕ ЕСТЬNULL(ПоследняяКлассификация.Классифицирован, ЛОЖЬ))
| ТОГДА ""Потерянный""
| ИНАЧЕ ВЫБОР
| КОГДА (НЕ НаНачалоПериода.Классифицирован)
| И ЕСТЬNULL(ПоследняяКлассификация.Классифицирован, ЛОЖЬ)
| ТОГДА ""Вернувшийся""
| КОНЕЦ
| КОНЕЦ
| КОНЕЦ КАК СтатусКлиента
| ИЗ
| НаНачалоПериода КАК НаНачалоПериода
| ПОЛНОЕ СОЕДИНЕНИЕ ПоследняяКлассификация КАК ПоследняяКлассификация
| ПО НаНачалоПериода.Партнер = ПоследняяКлассификация.Партнер) КАК ВложенныйЗапрос
|ГДЕ
| (НЕ ВложенныйЗапрос.СтатусКлиента ЕСТЬ NULL )
|;
|
|
|ВЫБРАТЬ
| ВложенныйЗапрос.Менеджер,
| ВложенныйЗапрос.Потерянные,
| ВложенныйЗапрос.Новые КАК Новые,
| ВложенныйЗапрос.Вернувшиеся,
| ВЫБОР
| КОГДА (ВложенныйЗапрос.Новые + ВложенныйЗапрос.Потерянные) = 0
| ТОГДА 0
| ИНАЧЕ ВложенныйЗапрос.Новые / (ВложенныйЗапрос.Новые + ВложенныйЗапрос.Потерянные)
| КОНЕЦ КАК ДоляНовыхКлиентов
|ПОМЕСТИТЬ ДинамикаКлиентскойБазыТекущий
|ИЗ
| (ВЫБРАТЬ
| ВЫБОР
| КОГДА КлиентыСтатусы.Клиент.ОсновнойМенеджер = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)
| ТОГДА &НеУказан
| ИНАЧЕ КлиентыСтатусы.Клиент.ОсновнойМенеджер
| КОНЕЦ КАК Менеджер,
| СУММА(ВЫБОР
| КОГДА КлиентыСтатусы.СтатусКлиента = ""Потерянный""
| ТОГДА -1
| ИНАЧЕ 0
| КОНЕЦ) КАК Потерянные,
| СУММА(ВЫБОР
| КОГДА КлиентыСтатусы.СтатусКлиента = ""Новый""
| ТОГДА 1
| ИНАЧЕ 0
| КОНЕЦ) КАК Новые,
| СУММА(ВЫБОР
| КОГДА КлиентыСтатусы.СтатусКлиента = ""Вернувшийся""
| ТОГДА 1
| ИНАЧЕ 0
| КОНЕЦ) КАК Вернувшиеся
| ИЗ
| КлиентыСтатусы КАК КлиентыСтатусы
|
| СГРУППИРОВАТЬ ПО
| ВЫБОР
| КОГДА КлиентыСтатусы.Клиент.ОсновнойМенеджер = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)
| ТОГДА &НеУказан
| ИНАЧЕ КлиентыСтатусы.Клиент.ОсновнойМенеджер
| КОНЕЦ) КАК ВложенныйЗапрос
|;
|
|
|ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
| ABCXYZКлассификацияКлиентов.Партнер,
| ВЫБОР
| КОГДА ABCXYZКлассификацияКлиентов.Класс = ЗНАЧЕНИЕ(Перечисление.ABCКлассификация.НеКлассифицирован)
| ТОГДА ЛОЖЬ
| ИНАЧЕ ИСТИНА
| КОНЕЦ КАК Классифицирован
|ПОМЕСТИТЬ ПоследняяКлассификацияПредыдущий
|ИЗ
| РегистрСведений.ABCXYZКлассификацияКлиентов КАК ABCXYZКлассификацияКлиентов
|ГДЕ
| ABCXYZКлассификацияКлиентов.ТипКлассификации = ЗНАЧЕНИЕ(Перечисление.ТипыКлассификации.ABC)
| И ABCXYZКлассификацияКлиентов.Период В
| (ВЫБРАТЬ
| МАКСИМУМ(ABCXYZКлассификацияКлиентов.Период) КАК Период
| ИЗ
| РегистрСведений.ABCXYZКлассификацияКлиентов КАК ABCXYZКлассификацияКлиентов
| ГДЕ
| ABCXYZКлассификацияКлиентов.Период >= &ДатаОкончанияДополнительныйПериод)
| И ABCXYZКлассификацияКлиентов.Партнер <> ЗНАЧЕНИЕ(Справочник.Партнеры.РозничныйПокупатель)
| И Партнер.ОсновнойМенеджер В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)
|;
|
|
|ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
| ABCXYZКлассификацияКлиентовСрезПоследних.Партнер,
| ВЫБОР
| КОГДА ABCXYZКлассификацияКлиентовСрезПоследних.Класс = ЗНАЧЕНИЕ(Перечисление.ABCКлассификация.НеКлассифицирован)
| ТОГДА ЛОЖЬ
| ИНАЧЕ ИСТИНА
| КОНЕЦ КАК Классифицирован
|ПОМЕСТИТЬ НаНачалоПериодаПредыдущий
|ИЗ
| РегистрСведений.ABCXYZКлассификацияКлиентов.СрезПоследних(&ДатаНачалаДополнительныйПериод, Партнер <> ЗНАЧЕНИЕ(Справочник.Партнеры.РозничныйПокупатель) И Партнер.ОсновнойМенеджер В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)) КАК ABCXYZКлассификацияКлиентовСрезПоследних
|ГДЕ
| ABCXYZКлассификацияКлиентовСрезПоследних.ТипКлассификации = ЗНАЧЕНИЕ(Перечисление.ТипыКлассификации.ABC)
|;
|
|
|ВЫБРАТЬ
| ВложенныйЗапрос.Клиент,
| ВложенныйЗапрос.СтатусКлиента
|ПОМЕСТИТЬ КлиентыСтатусыПредыдущий
|ИЗ
| (ВЫБРАТЬ
| ЕСТЬNULL(НаНачалоПериода.Партнер, ПоследняяКлассификация.Партнер) КАК Клиент,
| ВЫБОР
| КОГДА НаНачалоПериода.Классифицирован ЕСТЬ NULL
| ТОГДА ВЫБОР
| КОГДА ПоследняяКлассификация.Классифицирован
| ТОГДА ""Новый""
| КОНЕЦ
| ИНАЧЕ ВЫБОР
| КОГДА НаНачалоПериода.Классифицирован
| И (НЕ ЕСТЬNULL(ПоследняяКлассификация.Классифицирован, ЛОЖЬ))
| ТОГДА ""Потерянный""
| ИНАЧЕ ВЫБОР
| КОГДА (НЕ НаНачалоПериода.Классифицирован)
| И ЕСТЬNULL(ПоследняяКлассификация.Классифицирован, ЛОЖЬ)
| ТОГДА ""Вернувшийся""
| КОНЕЦ
| КОНЕЦ
| КОНЕЦ КАК СтатусКлиента
| ИЗ
| НаНачалоПериодаПредыдущий КАК НаНачалоПериода
| ПОЛНОЕ СОЕДИНЕНИЕ ПоследняяКлассификацияПредыдущий КАК ПоследняяКлассификация
| ПО НаНачалоПериода.Партнер = ПоследняяКлассификация.Партнер) КАК ВложенныйЗапрос
|ГДЕ
| (НЕ ВложенныйЗапрос.СтатусКлиента ЕСТЬ NULL )
|;
|
|
|ВЫБРАТЬ
| ВложенныйЗапрос.Менеджер,
| ВложенныйЗапрос.Потерянные,
| ВложенныйЗапрос.Новые КАК Новые,
| ВложенныйЗапрос.Вернувшиеся,
| ВЫБОР
| КОГДА (ВложенныйЗапрос.Новые + ВложенныйЗапрос.Потерянные) = 0
| ТОГДА 0
| ИНАЧЕ ВложенныйЗапрос.Новые / (ВложенныйЗапрос.Новые + ВложенныйЗапрос.Потерянные)
| КОНЕЦ КАК ДоляНовыхКлиентов
|ПОМЕСТИТЬ ДинамикаКлиентскойБазыПредыдущий
|ИЗ
| (ВЫБРАТЬ
| ВЫБОР
| КОГДА КлиентыСтатусы.Клиент.ОсновнойМенеджер = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)
| ТОГДА &НеУказан
| ИНАЧЕ КлиентыСтатусы.Клиент.ОсновнойМенеджер
| КОНЕЦ КАК Менеджер,
| СУММА(ВЫБОР
| КОГДА КлиентыСтатусы.СтатусКлиента = ""Потерянный""
| ТОГДА -1
| ИНАЧЕ 0
| КОНЕЦ) КАК Потерянные,
| СУММА(ВЫБОР
| КОГДА КлиентыСтатусы.СтатусКлиента = ""Новый""
| ТОГДА 1
| ИНАЧЕ 0
| КОНЕЦ) КАК Новые,
| СУММА(ВЫБОР
| КОГДА КлиентыСтатусы.СтатусКлиента = ""Вернувшийся""
| ТОГДА 1
| ИНАЧЕ 0
| КОНЕЦ) КАК Вернувшиеся
| ИЗ
| КлиентыСтатусыПредыдущий КАК КлиентыСтатусы
|
| СГРУППИРОВАТЬ ПО
| ВЫБОР
| КОГДА КлиентыСтатусы.Клиент.ОсновнойМенеджер = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)
| ТОГДА &НеУказан
| ИНАЧЕ КлиентыСтатусы.Клиент.ОсновнойМенеджер
| КОНЕЦ) КАК ВложенныйЗапрос
|;
|
|
|ВЫБРАТЬ
| ЕСТЬNULL(ДинамикаКлиентскойБазыТекущий.Менеджер, ДинамикаКлиентскойБазыПредыдущий.Менеджер) КАК Менеджер,
| ЕСТЬNULL(ДинамикаКлиентскойБазыТекущий.Потерянные, 0) КАК ПотерянныеТекущий,
| ЕСТЬNULL(ДинамикаКлиентскойБазыТекущий.Новые, 0) КАК НовыеТекущий,
| ЕСТЬNULL(ДинамикаКлиентскойБазыТекущий.Вернувшиеся, 0) КАК ВернувшиесяТекущий,
| ЕСТЬNULL(ДинамикаКлиентскойБазыТекущий.ДоляНовыхКлиентов, 0) КАК ДоляНовыхКлиентовТекущий,
| ЕСТЬNULL(ДинамикаКлиентскойБазыПредыдущий.Потерянные, 0) КАК ПотерянныеПредыдущий,
| ЕСТЬNULL(ДинамикаКлиентскойБазыПредыдущий.Новые, 0) КАК НовыеПредыдущий,
| ЕСТЬNULL(ДинамикаКлиентскойБазыПредыдущий.Вернувшиеся, 0) КАК ВернувшиесяПредыдущий,
| ЕСТЬNULL(ДинамикаКлиентскойБазыПредыдущий.ДоляНовыхКлиентов, 0) КАК ДоляНовыхКлиентовПредыдущий
|ИЗ
| ДинамикаКлиентскойБазыТекущий КАК ДинамикаКлиентскойБазыТекущий
| ПОЛНОЕ СОЕДИНЕНИЕ ДинамикаКлиентскойБазыПредыдущий КАК ДинамикаКлиентскойБазыПредыдущий
| ПО ДинамикаКлиентскойБазыТекущий.Менеджер = ДинамикаКлиентскойБазыПредыдущий.Менеджер
|
|УПОРЯДОЧИТЬ ПО
| ДоляНовыхКлиентовТекущий,
| НовыеТекущий
|;
|
|
|";
Иначе
СоответствиеЗапросыДанные.Вставить("ДинамикаКлиентскойБазы",НомерПоследнегоПакета + 4);
НомерПоследнегоПакета = НомерПоследнегоПакета + 4;
Возврат "ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
| ABCXYZКлассификацияКлиентов.Партнер,
| ВЫБОР
| КОГДА ABCXYZКлассификацияКлиентов.Класс = ЗНАЧЕНИЕ(Перечисление.ABCКлассификация.НеКлассифицирован)
| ТОГДА ЛОЖЬ
| ИНАЧЕ ИСТИНА
| КОНЕЦ КАК Классифицирован
|ПОМЕСТИТЬ ПоследняяКлассификация
|ИЗ
| РегистрСведений.ABCXYZКлассификацияКлиентов КАК ABCXYZКлассификацияКлиентов
|ГДЕ
| ABCXYZКлассификацияКлиентов.ТипКлассификации = ЗНАЧЕНИЕ(Перечисление.ТипыКлассификации.ABC)
| И ABCXYZКлассификацияКлиентов.Период В
| (ВЫБРАТЬ
| МАКСИМУМ(ABCXYZКлассификацияКлиентов.Период) КАК Период
| ИЗ
| РегистрСведений.ABCXYZКлассификацияКлиентов КАК ABCXYZКлассификацияКлиентов
| ГДЕ
| ABCXYZКлассификацияКлиентов.Период >= &ОкончаниеПериода)
| И ABCXYZКлассификацияКлиентов.Партнер <> ЗНАЧЕНИЕ(Справочник.Партнеры.РозничныйПокупатель)
| И Партнер.ОсновнойМенеджер В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)
|;
|
|
|ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
| ABCXYZКлассификацияКлиентовСрезПоследних.Партнер,
| ВЫБОР
| КОГДА ABCXYZКлассификацияКлиентовСрезПоследних.Класс = ЗНАЧЕНИЕ(Перечисление.ABCКлассификация.НеКлассифицирован)
| ТОГДА ЛОЖЬ
| ИНАЧЕ ИСТИНА
| КОНЕЦ КАК Классифицирован
|ПОМЕСТИТЬ НаНачалоПериода
|ИЗ
| РегистрСведений.ABCXYZКлассификацияКлиентов.СрезПоследних(&НачалоПериода, Партнер <> ЗНАЧЕНИЕ(Справочник.Партнеры.РозничныйПокупатель) И Партнер.ОсновнойМенеджер В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)) КАК ABCXYZКлассификацияКлиентовСрезПоследних
|ГДЕ
| ABCXYZКлассификацияКлиентовСрезПоследних.ТипКлассификации = ЗНАЧЕНИЕ(Перечисление.ТипыКлассификации.ABC)
|;
|
|
|ВЫБРАТЬ
| ВложенныйЗапрос.Клиент,
| ВложенныйЗапрос.СтатусКлиента
|ПОМЕСТИТЬ КлиентыСтатусы
|ИЗ
| (ВЫБРАТЬ
| ЕСТЬNULL(НаНачалоПериода.Партнер, ПоследняяКлассификация.Партнер) КАК Клиент,
| ВЫБОР
| КОГДА НаНачалоПериода.Классифицирован ЕСТЬ NULL
| ТОГДА ВЫБОР
| КОГДА ПоследняяКлассификация.Классифицирован
| ТОГДА ""Новый""
| КОНЕЦ
| ИНАЧЕ ВЫБОР
| КОГДА НаНачалоПериода.Классифицирован
| И (НЕ ЕСТЬNULL(ПоследняяКлассификация.Классифицирован, ЛОЖЬ))
| ТОГДА ""Потерянный""
| ИНАЧЕ ВЫБОР
| КОГДА (НЕ НаНачалоПериода.Классифицирован)
| И ЕСТЬNULL(ПоследняяКлассификация.Классифицирован, ЛОЖЬ)
| ТОГДА ""Вернувшийся""
| КОНЕЦ
| КОНЕЦ
| КОНЕЦ КАК СтатусКлиента
| ИЗ
| НаНачалоПериода КАК НаНачалоПериода
| ПОЛНОЕ СОЕДИНЕНИЕ ПоследняяКлассификация КАК ПоследняяКлассификация
| ПО НаНачалоПериода.Партнер = ПоследняяКлассификация.Партнер) КАК ВложенныйЗапрос
|ГДЕ
| (НЕ ВложенныйЗапрос.СтатусКлиента ЕСТЬ NULL )
|;
|
|
|ВЫБРАТЬ
| ВложенныйЗапрос.Менеджер,
| ВложенныйЗапрос.Потерянные,
| ВложенныйЗапрос.Новые КАК Новые,
| ВложенныйЗапрос.Вернувшиеся,
| ВЫБОР
| КОГДА (ВложенныйЗапрос.Новые + ВложенныйЗапрос.Потерянные) = 0
| ТОГДА 0
| ИНАЧЕ ВложенныйЗапрос.Новые / (ВложенныйЗапрос.Новые + ВложенныйЗапрос.Потерянные)
| КОНЕЦ КАК ДоляНовыхКлиентов
|ИЗ
| (ВЫБРАТЬ
| ВЫБОР
| КОГДА КлиентыСтатусы.Клиент.ОсновнойМенеджер = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)
| ТОГДА &НеУказан
| ИНАЧЕ КлиентыСтатусы.Клиент.ОсновнойМенеджер
| КОНЕЦ КАК Менеджер,
| СУММА(ВЫБОР
| КОГДА КлиентыСтатусы.СтатусКлиента = ""Потерянный""
| ТОГДА -1
| ИНАЧЕ 0
| КОНЕЦ) КАК Потерянные,
| СУММА(ВЫБОР
| КОГДА КлиентыСтатусы.СтатусКлиента = ""Новый""
| ТОГДА 1
| ИНАЧЕ 0
| КОНЕЦ) КАК Новые,
| СУММА(ВЫБОР
| КОГДА КлиентыСтатусы.СтатусКлиента = ""Вернувшийся""
| ТОГДА 1
| ИНАЧЕ 0
| КОНЕЦ) КАК Вернувшиеся
| ИЗ
| КлиентыСтатусы КАК КлиентыСтатусы
|
| СГРУППИРОВАТЬ ПО
| ВЫБОР
| КОГДА КлиентыСтатусы.Клиент.ОсновнойМенеджер = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)
| ТОГДА &НеУказан
| ИНАЧЕ КлиентыСтатусы.Клиент.ОсновнойМенеджер
| КОНЕЦ) КАК ВложенныйЗапрос
|
|УПОРЯДОЧИТЬ ПО
| ДоляНовыхКлиентов,
| Новые
|;
|
|
|";
КонецЕсли;
КонецФункции
Функция ТекстЗапросаПродажиНовымКлиентам(СоответствиеЗапросыДанные,НомерПоследнегоПакета, СтруктураПериодовФормированияОтчета)
Если СтруктураПериодовФормированияОтчета.ЕстьДополнительныйПериод Тогда
СоответствиеЗапросыДанные.Вставить("ПродажиНовымКлиентам",НомерПоследнегоПакета + 3);
НомерПоследнегоПакета = НомерПоследнегоПакета + 3;
Возврат "ВЫБРАТЬ
| ВЫБОР
| КОГДА ВыручкаИСебестоимостьПродажОбороты.ЗаказКлиента.Менеджер ЕСТЬ NULL
| ТОГДА &НеУказан
| ИНАЧЕ ВыручкаИСебестоимостьПродажОбороты.ЗаказКлиента.Менеджер
| КОНЕЦ КАК Менеджер,
| СУММА(ВыручкаИСебестоимостьПродажОбороты.СуммаВыручкиОборот) КАК Показатель
|ПОМЕСТИТЬ ПродажиНовымКлиентамТекущий
|ИЗ
| РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(
| &НачалоПериода,
| &ОкончаниеПериода,
| ,
| (НЕ АналитикаУчетаПоПартнерам.Партнер В
| (ВЫБРАТЬ РАЗЛИЧНЫЕ
| ABCXYZКлассификацияКлиентовСрезПоследних.Партнер
| ИЗ
| РегистрСведений.ABCXYZКлассификацияКлиентов.СрезПоследних(&НачалоПериода, ) КАК ABCXYZКлассификацияКлиентовСрезПоследних))
| И АналитикаУчетаПоПартнерам.Партнер <> ЗНАЧЕНИЕ(Справочник.Партнеры.РозничныйПокупатель) И ЗаказКлиента.Менеджер В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)) КАК ВыручкаИСебестоимостьПродажОбороты
|
|СГРУППИРОВАТЬ ПО
| ВЫБОР
| КОГДА ВыручкаИСебестоимостьПродажОбороты.ЗаказКлиента.Менеджер ЕСТЬ NULL
| ТОГДА &НеУказан
| ИНАЧЕ ВыручкаИСебестоимостьПродажОбороты.ЗаказКлиента.Менеджер
| КОНЕЦ
|
|;
|
|
|ВЫБРАТЬ
| ВЫБОР
| КОГДА ВыручкаИСебестоимостьПродажОбороты.ЗаказКлиента.Менеджер ЕСТЬ NULL
| ТОГДА &НеУказан
| ИНАЧЕ ВыручкаИСебестоимостьПродажОбороты.ЗаказКлиента.Менеджер
| КОНЕЦ КАК Менеджер,
| СУММА(ВыручкаИСебестоимостьПродажОбороты.СуммаВыручкиОборот) КАК Показатель
|ПОМЕСТИТЬ ПродажиНовымКлиентамПредыдущий
|ИЗ
| РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(
| &НачалоПериода,
| &ОкончаниеПериода,
| ,
| (НЕ АналитикаУчетаПоПартнерам.Партнер В
| (ВЫБРАТЬ РАЗЛИЧНЫЕ
| ABCXYZКлассификацияКлиентовСрезПоследних.Партнер
| ИЗ
| РегистрСведений.ABCXYZКлассификацияКлиентов.СрезПоследних(&ДатаНачалаДополнительныйПериод, ) КАК ABCXYZКлассификацияКлиентовСрезПоследних))
| И АналитикаУчетаПоПартнерам.Партнер <> ЗНАЧЕНИЕ(Справочник.Партнеры.РозничныйПокупатель) И ЗаказКлиента.Менеджер В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)) КАК ВыручкаИСебестоимостьПродажОбороты
|
|СГРУППИРОВАТЬ ПО
| ВЫБОР
| КОГДА ВыручкаИСебестоимостьПродажОбороты.ЗаказКлиента.Менеджер ЕСТЬ NULL
| ТОГДА &НеУказан
| ИНАЧЕ ВыручкаИСебестоимостьПродажОбороты.ЗаказКлиента.Менеджер
| КОНЕЦ
|
|;
|
|
|ВЫБРАТЬ
| ЕСТЬNULL(ВложенныйЗапрос.Менеджер, &НеУказан) КАК Менеджер,
| ВложенныйЗапрос.Текущий,
| ВложенныйЗапрос.Предыдущий,
| ВЫБОР
| КОГДА ВложенныйЗапрос.Текущий - ВложенныйЗапрос.Предыдущий > 0
| ТОГДА ВложенныйЗапрос.Текущий - ВложенныйЗапрос.Предыдущий
| ИНАЧЕ 0
| КОНЕЦ КАК Прирост,
| ВЫБОР
| КОГДА ВложенныйЗапрос.Текущий - ВложенныйЗапрос.Предыдущий < 0
| ТОГДА ВложенныйЗапрос.Текущий - ВложенныйЗапрос.Предыдущий
| ИНАЧЕ 0
| КОНЕЦ КАК Спад
|ИЗ
| (ВЫБРАТЬ
| ВЫБОР
| КОГДА ПредыдущийПериод.Менеджер ЕСТЬ NULL
| ТОГДА ТекущийПериод.Менеджер
| ИНАЧЕ ПредыдущийПериод.Менеджер
| КОНЕЦ КАК Менеджер,
| СУММА(ЕСТЬNULL(ПредыдущийПериод.Показатель, 0)) КАК Предыдущий,
| СУММА(ЕСТЬNULL(ТекущийПериод.Показатель, 0)) КАК Текущий
| ИЗ
| ПродажиНовымКлиентамПредыдущий КАК ПредыдущийПериод
| ПОЛНОЕ СОЕДИНЕНИЕ ПродажиНовымКлиентамТекущий КАК ТекущийПериод
| ПО ПредыдущийПериод.Менеджер = ТекущийПериод.Менеджер
|
| СГРУППИРОВАТЬ ПО
| ВЫБОР
| КОГДА ПредыдущийПериод.Менеджер ЕСТЬ NULL
| ТОГДА ТекущийПериод.Менеджер
| ИНАЧЕ ПредыдущийПериод.Менеджер
| КОНЕЦ) КАК ВложенныйЗапрос
|
|УПОРЯДОЧИТЬ ПО
| ВложенныйЗапрос.Текущий
|;
|
|
|";
Иначе
СоответствиеЗапросыДанные.Вставить("ПродажиНовымКлиентам",НомерПоследнегоПакета + 1);
НомерПоследнегоПакета = НомерПоследнегоПакета + 1;
Возврат "ВЫБРАТЬ
| ВЫБОР
| КОГДА ВыручкаИСебестоимостьПродажОбороты.ЗаказКлиента.Менеджер ЕСТЬ NULL
| ТОГДА &НеУказан
| ИНАЧЕ ПРЕДСТАВЛЕНИЕ(ВыручкаИСебестоимостьПродажОбороты.ЗаказКлиента.Менеджер)
| КОНЕЦ КАК Менеджер,
| СУММА(ВыручкаИСебестоимостьПродажОбороты.СуммаВыручкиОборот) КАК Продажи
|ИЗ
| РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(
| &НачалоПериода,
| &ОкончаниеПериода,
| ,
| (НЕ АналитикаУчетаПоПартнерам.Партнер В
| (ВЫБРАТЬ РАЗЛИЧНЫЕ
| ABCXYZКлассификацияКлиентовСрезПоследних.Партнер
| ИЗ
| РегистрСведений.ABCXYZКлассификацияКлиентов.СрезПоследних(&НачалоПериода, ) КАК ABCXYZКлассификацияКлиентовСрезПоследних))
| И АналитикаУчетаПоПартнерам.Партнер <> ЗНАЧЕНИЕ(Справочник.Партнеры.РозничныйПокупатель) И ЗаказКлиента.Менеджер В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)) КАК ВыручкаИСебестоимостьПродажОбороты
|
|СГРУППИРОВАТЬ ПО
| ВЫБОР
| КОГДА ВыручкаИСебестоимостьПродажОбороты.ЗаказКлиента.Менеджер ЕСТЬ NULL
| ТОГДА &НеУказан
| ИНАЧЕ ПРЕДСТАВЛЕНИЕ(ВыручкаИСебестоимостьПродажОбороты.ЗаказКлиента.Менеджер)
| КОНЕЦ
|
|УПОРЯДОЧИТЬ ПО
| Продажи ВОЗР
|;
|
|
|";
КонецЕсли;
КонецФункции
Функция ТекстЗапросаОВозникшихПретензияхКлиентов(СоответствиеЗапросыДанные,НомерПоследнегоПакета, СтруктураПериодовФормированияОтчета)
Если СтруктураПериодовФормированияОтчета.ЕстьДополнительныйПериод Тогда
СоответствиеЗапросыДанные.Вставить("ВозникшиеПретензииКлиентов",НомерПоследнегоПакета + 3);
НомерПоследнегоПакета = НомерПоследнегоПакета + 3;
Возврат "ВЫБРАТЬ
| ВЫБОР
| КОГДА ПретензииКлиентов.Ответственный = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)
| ТОГДА &НеУказан
| ИНАЧЕ ПретензииКлиентов.Ответственный
| КОНЕЦ КАК Менеджер,
| КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ПретензииКлиентов.Ссылка) КАК Показатель
|ПОМЕСТИТЬ ВозникшиеПретензииКлиентовТекущий
|ИЗ
| Справочник.Претензии КАК ПретензииКлиентов
|ГДЕ
| (НЕ ПретензииКлиентов.ПометкаУдаления)
| И ПретензииКлиентов.ДатаРегистрации МЕЖДУ &НачалоПериода И &ОкончаниеПериода
| И ПретензииКлиентов.Ответственный В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)
|
|СГРУППИРОВАТЬ ПО
| ВЫБОР
| КОГДА ПретензииКлиентов.Ответственный = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)
| ТОГДА &НеУказан
| ИНАЧЕ ПретензииКлиентов.Ответственный
| КОНЕЦ
|
|;
|
|
|ВЫБРАТЬ
| ВЫБОР
| КОГДА ПретензииКлиентов.Ответственный = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)
| ТОГДА &НеУказан
| ИНАЧЕ ПретензииКлиентов.Ответственный
| КОНЕЦ КАК Менеджер,
| КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ПретензииКлиентов.Ссылка) КАК Показатель
|ПОМЕСТИТЬ ВозникшиеПретензииКлиентовПредыдущий
|ИЗ
| Справочник.Претензии КАК ПретензииКлиентов
|ГДЕ
| (НЕ ПретензииКлиентов.ПометкаУдаления)
| И ПретензииКлиентов.ДатаРегистрации МЕЖДУ &ДатаНачалаДополнительныйПериод И &ДатаОкончанияДополнительныйПериод
| И ПретензииКлиентов.Ответственный В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)
|
|СГРУППИРОВАТЬ ПО
| ВЫБОР
| КОГДА ПретензииКлиентов.Ответственный = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)
| ТОГДА &НеУказан
| ИНАЧЕ ПретензииКлиентов.Ответственный
| КОНЕЦ
|
|;
|
|
|ВЫБРАТЬ
| ЕСТЬNULL(ВложенныйЗапрос.Менеджер, &НеУказан) КАК Менеджер,
| ВложенныйЗапрос.Текущий,
| ВложенныйЗапрос.Предыдущий,
| ВЫБОР
| КОГДА ВложенныйЗапрос.Текущий - ВложенныйЗапрос.Предыдущий > 0
| ТОГДА ВложенныйЗапрос.Текущий - ВложенныйЗапрос.Предыдущий
| ИНАЧЕ 0
| КОНЕЦ КАК Прирост,
| ВЫБОР
| КОГДА ВложенныйЗапрос.Текущий - ВложенныйЗапрос.Предыдущий < 0
| ТОГДА ВложенныйЗапрос.Текущий - ВложенныйЗапрос.Предыдущий
| ИНАЧЕ 0
| КОНЕЦ КАК Спад
|ИЗ
| (ВЫБРАТЬ
| ВЫБОР
| КОГДА ПредыдущийПериод.Менеджер ЕСТЬ NULL
| ТОГДА ТекущийПериод.Менеджер
| ИНАЧЕ ПредыдущийПериод.Менеджер
| КОНЕЦ КАК Менеджер,
| СУММА(ЕСТЬNULL(ПредыдущийПериод.Показатель, 0)) КАК Предыдущий,
| СУММА(ЕСТЬNULL(ТекущийПериод.Показатель, 0)) КАК Текущий
| ИЗ
| ВозникшиеПретензииКлиентовПредыдущий КАК ПредыдущийПериод
| ПОЛНОЕ СОЕДИНЕНИЕ ВозникшиеПретензииКлиентовТекущий КАК ТекущийПериод
| ПО ПредыдущийПериод.Менеджер = ТекущийПериод.Менеджер
|
| СГРУППИРОВАТЬ ПО
| ВЫБОР
| КОГДА ПредыдущийПериод.Менеджер ЕСТЬ NULL
| ТОГДА ТекущийПериод.Менеджер
| ИНАЧЕ ПредыдущийПериод.Менеджер
| КОНЕЦ) КАК ВложенныйЗапрос
|
|УПОРЯДОЧИТЬ ПО
| ВложенныйЗапрос.Текущий
|;
|
|
|";
Иначе
СоответствиеЗапросыДанные.Вставить("ВозникшиеПретензииКлиентов",НомерПоследнегоПакета + 1);
НомерПоследнегоПакета = НомерПоследнегоПакета + 1;
Возврат "ВЫБРАТЬ
| ВЫБОР
| КОГДА ПретензииКлиентов.Ответственный = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)
| ТОГДА &НеУказан
| ИНАЧЕ ПРЕДСТАВЛЕНИЕ(ПретензииКлиентов.Ответственный)
| КОНЕЦ КАК Менеджер,
| КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ПретензииКлиентов.Ссылка) КАК Количество
|ИЗ
| Справочник.Претензии КАК ПретензииКлиентов
|ГДЕ
| (НЕ ПретензииКлиентов.ПометкаУдаления)
| И ПретензииКлиентов.ДатаРегистрации МЕЖДУ &НачалоПериода И &ОкончаниеПериода
| И ПретензииКлиентов.Ответственный В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)
|
|СГРУППИРОВАТЬ ПО
| ВЫБОР
| КОГДА ПретензииКлиентов.Ответственный = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)
| ТОГДА &НеУказан
| ИНАЧЕ ПРЕДСТАВЛЕНИЕ(ПретензииКлиентов.Ответственный)
| КОНЕЦ
|
|УПОРЯДОЧИТЬ ПО
| Количество
|;
|
|
|";
КонецЕсли;
КонецФункции
Функция ТекстЗапросаОПричинахВозникновенияПретензийКлиентов(СоответствиеЗапросыДанные,НомерПоследнегоПакета, СтруктураПериодовФормированияОтчета)
Если СтруктураПериодовФормированияОтчета.ЕстьДополнительныйПериод Тогда
СоответствиеЗапросыДанные.Вставить("ПричиныВозникновенияПретензий",НомерПоследнегоПакета + 3);
НомерПоследнегоПакета = НомерПоследнегоПакета + 3;
Возврат "ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 5
| ПретензииКлиентов.Ответственный КАК Менеджер,
| ПРЕДСТАВЛЕНИЕ(ПретензииКлиентов.ПричинаВозникновения) КАК ПричинаВозникновения,
| КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ПретензииКлиентов.Ссылка) КАК Количество
|ПОМЕСТИТЬ ПричиныВозникновенияПретензийТекущий
|ИЗ
| Справочник.Претензии КАК ПретензииКлиентов
|ГДЕ
| (НЕ ПретензииКлиентов.ПометкаУдаления)
| И ПретензииКлиентов.ДатаРегистрации МЕЖДУ &НачалоПериода И &ОкончаниеПериода
| И ПретензииКлиентов.Ответственный В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)
|
|СГРУППИРОВАТЬ ПО
| ПретензииКлиентов.ПричинаВозникновения,
| ПретензииКлиентов.Ответственный
|
|УПОРЯДОЧИТЬ ПО
| Количество УБЫВ
|;
|
|
|ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 5
| ПретензииКлиентов.Ответственный КАК Менеджер,
| ПРЕДСТАВЛЕНИЕ(ПретензииКлиентов.ПричинаВозникновения) КАК ПричинаВозникновения,
| КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ПретензииКлиентов.Ссылка) КАК Количество
|ПОМЕСТИТЬ ПричиныВозникновенияПретензийПредыдущий
|ИЗ
| Справочник.Претензии КАК ПретензииКлиентов
|ГДЕ
| (НЕ ПретензииКлиентов.ПометкаУдаления)
| И ПретензииКлиентов.ДатаРегистрации МЕЖДУ &ДатаНачалаДополнительныйПериод И &ДатаОкончанияДополнительныйПериод
| И ПретензииКлиентов.Ответственный В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)
|
|СГРУППИРОВАТЬ ПО
| ПретензииКлиентов.ПричинаВозникновения,
| ПретензииКлиентов.Ответственный
|
|УПОРЯДОЧИТЬ ПО
| Количество УБЫВ
|;
|
|
|ВЫБРАТЬ
| ВЫБОР
| КОГДА ПричиныВозникновенияПретензийПредыдущий.Менеджер = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)
| ТОГДА &НеУказан
| ИНАЧЕ ПРЕДСТАВЛЕНИЕ(ПричиныВозникновенияПретензийПредыдущий.Менеджер)
| КОНЕЦ КАК Менеджер,
| ПричиныВозникновенияПретензийПредыдущий.ПричинаВозникновения,
| ПричиныВозникновенияПретензийПредыдущий.Количество КАК ЗначениеПоказателя,
| ""Предыдущий"" КАК Период
|ИЗ
| ПричиныВозникновенияПретензийПредыдущий КАК ПричиныВозникновенияПретензийПредыдущий
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ВЫБОР
| КОГДА ПричиныВозникновенияПретензийТекущий.Менеджер = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)
| ТОГДА &НеУказан
| ИНАЧЕ ПРЕДСТАВЛЕНИЕ(ПричиныВозникновенияПретензийТекущий.Менеджер)
| КОНЕЦ,
| ПричиныВозникновенияПретензийТекущий.ПричинаВозникновения,
| ПричиныВозникновенияПретензийТекущий.Количество,
| ""Текущий""
|ИЗ
| ПричиныВозникновенияПретензийТекущий КАК ПричиныВозникновенияПретензийТекущий
|;
|
|
|";
Иначе
СоответствиеЗапросыДанные.Вставить("ПричиныВозникновенияПретензий",НомерПоследнегоПакета + 1);
НомерПоследнегоПакета = НомерПоследнегоПакета + 1;
Возврат "ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 5
| ВЫБОР
| КОГДА ПретензииКлиентов.Ответственный = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)
| ТОГДА &НеУказан
| ИНАЧЕ ПРЕДСТАВЛЕНИЕ(ПретензииКлиентов.Ответственный)
| КОНЕЦ КАК Менеджер,
| ПРЕДСТАВЛЕНИЕ(ПретензииКлиентов.ПричинаВозникновения) КАК ПричинаВозникновения,
| КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ПретензииКлиентов.Ссылка) КАК Количество
|ИЗ
| Справочник.Претензии КАК ПретензииКлиентов
|ГДЕ
| (НЕ ПретензииКлиентов.ПометкаУдаления)
| И ПретензииКлиентов.ДатаРегистрации МЕЖДУ &НачалоПериода И &ОкончаниеПериода
| И ПретензииКлиентов.Ответственный В
| (ВЫБРАТЬ
| ОтборПоМенеджерам.Ссылка
| ИЗ
| ОтборПоМенеджерам КАК ОтборПоМенеджерам)
|
|СГРУППИРОВАТЬ ПО
| ПретензииКлиентов.ПричинаВозникновения,
| ВЫБОР
| КОГДА ПретензииКлиентов.Ответственный = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)
| ТОГДА &НеУказан
| ИНАЧЕ ПРЕДСТАВЛЕНИЕ(ПретензииКлиентов.Ответственный)
| КОНЕЦ
|
|УПОРЯДОЧИТЬ ПО
| Количество УБЫВ
|;
|
|
|";
КонецЕсли;
КонецФункции
Процедура ДополнительныеДействияДляНабораПотериПросроченнаяДебиторка(Запрос, СтруктураПериодовФормированияОтчета)
Если Запрос.МенеджерВременныхТаблиц = Неопределено Тогда
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
КонецЕсли;
Если НЕ ПолучитьФункциональнуюОпцию("НоваяАрхитектураВзаиморасчетов") Тогда
ВзаиморасчетыСервер.РассчитатьДатыПлатежаКлиента(Запрос.МенеджерВременныхТаблиц, КонецДня(СтруктураПериодовФормированияОтчета.ДатаОкончания));
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ВыводДанных
Процедура ВывестиДанные(РезультатЗапроса,
ТаблицаОтчета,
ПараметрыФормирования,
НаборДанных,
ВалютаУправленческогоУчета,
СтруктураПериодовФормированияОтчета,
Макет)
Если РезультатЗапроса.Пустой() Тогда
Возврат;
КонецЕсли;
ИмяНабора = НаборДанных.Имя ;
ТекстЗаголовка = НаборДанных.Наименование ;
ВывестиШапкуНабораДанных(ТаблицаОтчета,ТекстЗаголовка,СтруктураПериодовФормированияОтчета.ЕстьДополнительныйПериод, Макет);
ТаблицаОтчета.НачатьГруппуСтрок(ИмяНабора);
Если ПараметрыФормирования.ВыводитьЛегенду Тогда
ВывестиЛегенду(ТаблицаОтчета,
ИмяНабора,
СтруктураПериодовФормированияОтчета.ЕстьДополнительныйПериод,
ПараметрыФормирования,
ВалютаУправленческогоУчета,
СтруктураПериодовФормированияОтчета,
Макет);
КонецЕсли;
ТаблицаДанных = РезультатЗапроса.Выгрузить();
Если ПараметрыФормирования.ВыводитьДиаграммы Тогда
ВывестиДиаграмму(ТаблицаДанных,ТаблицаОтчета,ИмяНабора,Истина, СтруктураПериодовФормированияОтчета, Макет);
Если СтруктураПериодовФормированияОтчета.ЕстьДополнительныйПериод Тогда
ВывестиДиаграмму(ТаблицаДанных, ТаблицаОтчета, ИмяНабора, Ложь, СтруктураПериодовФормированияОтчета, Макет);
КонецЕсли;
КонецЕсли;
Если ПараметрыФормирования.ВыводитьТаблицы Тогда
ВывестиТаблицу(ТаблицаДанных,ТаблицаОтчета,ПараметрыФормирования,ИмяНабора,СтруктураПериодовФормированияОтчета, Макет);
КонецЕсли;
ТаблицаОтчета.ЗакончитьГруппуСтрок();
КонецПроцедуры
Процедура ВывестиЛегенду(ТаблицаОтчета,ИмяНабораДанных,ЕстьДополнительныйПериод,ПараметрыФормирования, ВалютаУправленческогоУчета, СтруктураПериодовФормированияОтчета, Макет)
ВывестиОбластьБезПараметров("ПустаяСтрока",ТаблицаОтчета, Макет);
Область = Макет.ПолучитьОбласть("Легенда|ЛегендаОтступ");
ТаблицаОтчета.Вывести(Область);
Область = Макет.ПолучитьОбласть("Легенда|ЛегендаКолонка");
ТекстЛегенды = ТекстЛегенды(ИмяНабораДанных, Ложь, ВалютаУправленческогоУчета, СтруктураПериодовФормированияОтчета);
Если ЕстьДополнительныйПериод И (НЕ ПараметрыФормирования.ВыводитьДиаграммы) Тогда
ТекстЛегенды = ТекстЛегенды +"
|";
ТекстЛегенды = ТекстЛегенды
+ СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='Выполняется сравнение с данными за период с %1 по %2'") + " ",
Формат(СтруктураПериодовФормированияОтчета.ДатаНачалаДополнительныйПериод,"ДЛФ=D"),
Формат(СтруктураПериодовФормированияОтчета.ДатаОкончанияДополнительныйПериод,"ДЛФ=D"));
КонецЕсли;
Область.Параметры.ТекстЛегенды = ТекстЛегенды;
ТаблицаОтчета.Присоединить(Область);
Если ЕстьДополнительныйПериод И ПараметрыФормирования.ВыводитьДиаграммы Тогда
Область = Макет.ПолучитьОбласть("Легенда|ЛегендаКолонка");
Область.Параметры.ТекстЛегенды = ТекстЛегенды(ИмяНабораДанных, Истина, ВалютаУправленческогоУчета, СтруктураПериодовФормированияОтчета);
ТаблицаОтчета.Присоединить(Область);
КонецЕсли;
ВывестиОбластьБезПараметров("ПустаяСтрока",ТаблицаОтчета, Макет);
КонецПроцедуры
Процедура ВывестиДиаграмму(ТаблицаДанных, ТаблицаОтчета, ИмяНабора, ВыводитсяОсновнойПериод, СтруктураПериодовФормированияОтчета, Макет)
Если ВыводитсяОсновнойПериод Тогда
Область = Макет.ПолучитьОбласть("Диаграмма|ДиаграммаОтступ");
ТаблицаОтчета.Вывести(Область);
КонецЕсли;
Область = Макет.ПолучитьОбласть("Диаграмма|ДиаграммаКолонка");
Рисунок = Область.Рисунки.D1;
ДиаграммаОбъект = Рисунок.Объект;
ТаблицаПодготовленныеДанные = ПреобразоватьТаблицуДанныхДляДиаграммы(ИмяНабора,ТаблицаДанных,ВыводитсяОсновнойПериод,СтруктураПериодовФормированияОтчета.ЕстьДополнительныйПериод);
Если ВыводитсяОсновнойПериод Тогда
Если ИмяНабора = "Прибыль" Или ИмяНабора = "Продажи"
ИЛИ ИмяНабора = "ПоступлениеДС" ИЛИ ИмяНабора = "ПоступлениеДС_МинусСебестоимость"
ИЛИ ИмяНабора = "ПотериПросроченнаяДебиторка" ИЛИ ИмяНабора = "ПродажиНаОднуСделку"
ИЛИ ИмяНабора = "ПродажиНаОдноВзаимодействие" ИЛИ ИмяНабора = "ПродажиНовымКлиентам"
ИЛИ ИмяНабора = "ВозникшиеПретензииКлиентов" Тогда
ДиаграммаОбъект.ТипДиаграммы = ТипДиаграммы.ГистограммаГоризонтальная;
ДиаграммаОбъект.СерииВСтроках = Ложь;
ДиаграммаОбъект.ВидПодписей = ВидПодписейКДиаграмме.Значение;
КонецЕсли;
Иначе
Если ИмяНабора = "Прибыль" Или ИмяНабора = "Продажи"
ИЛИ ИмяНабора = "ПоступлениеДС" ИЛИ ИмяНабора = "ПоступлениеДС_МинусСебестоимость"
ИЛИ ИмяНабора = "ПотериПросроченнаяДебиторка" ИЛИ ИмяНабора = "ПродажиНаОднуСделку"
ИЛИ ИмяНабора = "ПродажиНаОдноВзаимодействие" ИЛИ ИмяНабора = "ПродажиНовымКлиентам"
ИЛИ ИмяНабора = "ВозникшиеПретензииКлиентов" Тогда
ДиаграммаОбъект.ТипДиаграммы = ТипДиаграммы.ГистограммаСНакоплениемГоризонтальная;
ДиаграммаОбъект.СерииВСтроках = Ложь;
ДиаграммаОбъект.ВидПодписей = ВидПодписейКДиаграмме.Значение;
КонецЕсли;
КонецЕсли;
Если ИмяНабора = "ПредоставленныеРучныеСкидки" ИЛИ ИмяНабора = "ЭффективностьВеденияСделок"
ИЛИ ИмяНабора = "ЭффективностьВзаимодействий" Тогда
ДиаграммаОбъект.ТипДиаграммы = ТипДиаграммы.ГистограммаСНакоплениемГоризонтальная;
ДиаграммаОбъект.СерииВСтроках = Ложь;
ДиаграммаОбъект.ВидПодписей = ВидПодписейКДиаграмме.Значение;
ИначеЕсли ИмяНабора = "ДинамикаКлиентскойБазы" Тогда
ДиаграммаОбъект.ТипДиаграммы = ТипДиаграммы.ГистограммаГоризонтальная ;
ДиаграммаОбъект.ВидПодписей = ВидПодписейКДиаграмме.Значение;
ДиаграммаОбъект.СерииВСтроках = Ложь;
ИначеЕсли ИмяНабора = "ПричиныПроигрышаСделок" ИЛИ ИмяНабора = "ОсновныеЭтапыПотерь"
Или ИмяНабора = "НеудовлетворениеПервичногоСпроса" Или ИмяНабора = "ПричиныВозникновенияПретензий" Тогда
ДиаграммаОбъект.ТипДиаграммы = ТипДиаграммы.Круговая ;
ДиаграммаОбъект.ВидПодписей = ВидПодписейКДиаграмме.СерияПроцент;
КонецЕсли;
ДиаграммаОбъект.ФорматЗначенийВПодписях = "ЧДЦ=2; ДЛФ=D";
ДиаграммаОбъект.ИсточникДанных = ТаблицаПодготовленныеДанные;
ДиаграммаОбъект.ИсточникДанных = Неопределено;
ПреобразоватьИменаЦветаСерийТочекДиаграммы(ИмяНабора,ДиаграммаОбъект.Серии);
ТаблицаОтчета.Присоединить(Область);
КонецПроцедуры
Процедура ПреобразоватьИменаЦветаСерийТочекДиаграммы(ИмяНабора,Серии)
ЦветСинийСоСтальнымОттенком = WebЦвета.СинийСоСтальнымОттенком;
ЦветПриростПрибыли = Новый Цвет(55,201,117);
ЦветПотери = Новый Цвет(216,216,216);
ЦветПрочиеВзаимодействия = Новый Цвет(179,172,134);
ЦветКруговаяПервый = Новый Цвет(55,201,117);
ЦветКруговаяВторой = WebЦвета.СинийСоСтальнымОттенком;
ЦветКруговаяТретий = Новый Цвет(0,70,110);
ЦветКруговаяЧетвертый = Новый Цвет(216,216,216);
ЦветКруговаяПятый = Новый Цвет(62,72,55);
Если ИмяНабора = "Продажи" Тогда
Для Каждого Серия Из Серии Цикл
Если Серия.Текст = "Продажи" ИЛИ Серия.Текст = "Текущий" Тогда
Серия.Текст = НСтр("ru='Продажи'");
Серия.Цвет = ЦветСинийСоСтальнымОттенком;
ИначеЕсли Серия.Текст = "Предыдущий" Тогда
Серия.Текст = НСтр("ru='Продажи предыдущего периода'");
Серия.Цвет = ЦветСинийСоСтальнымОттенком;
ИначеЕсли Серия.Текст = "Прирост" Тогда
Серия.Текст = НСтр("ru='Прирост продаж в текущем периоде'");
Серия.Цвет = ЦветПриростПрибыли;
ИначеЕсли Серия.Текст = "Спад" Тогда
Серия.Текст = НСтр("ru='Уменьшение продаж в текущем периоде'");
Серия.Цвет = ЦветПотери;
КонецЕсли;
КонецЦикла;
ИначеЕсли ИмяНабора = "Прибыль" Тогда
Для Каждого Серия Из Серии Цикл
Если Серия.Текст = "Прибыль" ИЛИ Серия.Текст = "Текущий" Тогда
Серия.Текст = НСтр("ru='Прибыль'");
Серия.Цвет = ЦветСинийСоСтальнымОттенком;
ИначеЕсли Серия.Текст = "Предыдущий" Тогда
Серия.Текст = НСтр("ru='Прибыль в предыдущем периоде'");
Серия.Цвет = ЦветСинийСоСтальнымОттенком;
ИначеЕсли Серия.Текст = "Прирост" Тогда
Серия.Текст = НСтр("ru='Прирост прибыли в текущем периоде'");
Серия.Цвет = ЦветПриростПрибыли;
ИначеЕсли Серия.Текст = "Спад" Тогда
Серия.Текст = НСтр("ru='Уменьшение прибыли в текущем периоде'");
Серия.Цвет = ЦветПотери;
КонецЕсли;
КонецЦикла;
ИначеЕсли ИмяНабора = "ПоступлениеДС" Тогда
Для Каждого Серия Из Серии Цикл
Если Серия.Текст = "ПоступлениеДС" ИЛИ Серия.Текст = "Текущий" Тогда
Серия.Текст = НСтр("ru='Поступление денежных средств'");
Серия.Цвет = ЦветСинийСоСтальнымОттенком;
ИначеЕсли Серия.Текст = "Предыдущий" Тогда
Серия.Текст = НСтр("ru='Поступление денежных средств в предыдущем периоде'");
Серия.Цвет = ЦветСинийСоСтальнымОттенком;
ИначеЕсли Серия.Текст = "Прирост" Тогда
Серия.Текст = НСтр("ru='Прирост поступления денежных средств в текущем периоде'");
Серия.Цвет = ЦветПриростПрибыли;
ИначеЕсли Серия.Текст = "Спад" Тогда
Серия.Текст = НСтр("ru='Уменьшение поступления денежных средств в текущем периоде'");
Серия.Цвет = ЦветПотери;
КонецЕсли;
КонецЦикла;
ИначеЕсли ИмяНабора = "ПоступлениеДС_МинусСебестоимость" Тогда
Для Каждого Серия Из Серии Цикл
Если Серия.Текст = "ПоступлениеДС_МинусСебестоимость" ИЛИ Серия.Текст = "Текущий" Тогда
Серия.Текст = НСтр("ru='Выручка (по оплате) минус себестоимость (по отгрузке)'");
Серия.Цвет = ЦветСинийСоСтальнымОттенком;
ИначеЕсли Серия.Текст = "Предыдущий" Тогда
Серия.Текст = НСтр("ru='Значение показателя в предыдущем периоде'");
Серия.Цвет = ЦветСинийСоСтальнымОттенком;
ИначеЕсли Серия.Текст = "Прирост" Тогда
Серия.Текст = НСтр("ru='Прирост показателя в текущем периоде'");
Серия.Цвет = ЦветПриростПрибыли;
ИначеЕсли Серия.Текст = "Спад" Тогда
Серия.Текст = НСтр("ru='Уменьшение показателя в текущем периоде'");
Серия.Цвет = ЦветПотери;
КонецЕсли;
КонецЦикла;
ИначеЕсли ИмяНабора = "ПотериПросроченнаяДебиторка" Тогда
Для Каждого Серия Из Серии Цикл
Если Серия.Текст = "ПотериДебиторка" ИЛИ Серия.Текст = "Текущий" Тогда
Серия.Текст = НСтр("ru='Потери'");
Серия.Цвет = ЦветПотери;
ИначеЕсли Серия.Текст = "Предыдущий" Тогда
Серия.Текст = НСтр("ru='Значение показателя в предыдущем периоде'");
Серия.Цвет = ЦветСинийСоСтальнымОттенком;
ИначеЕсли Серия.Текст = "Прирост" Тогда
Серия.Текст = НСтр("ru='Прирост показателя в текущем периоде'");
Серия.Цвет = ЦветПотери;
ИначеЕсли Серия.Текст = "Спад" Тогда
Серия.Текст = НСтр("ru='Уменьшение показателя в текущем периоде'");
Серия.Цвет = ЦветПриростПрибыли;
КонецЕсли;
КонецЦикла;
ИначеЕсли ИмяНабора = "ПредоставленныеРучныеСкидки" Тогда
Для Каждого Серия Из Серии Цикл
Если Серия.Текст = "Прибыль" ИЛИ Серия.Текст = "ПрибыльТекущий"Тогда
Серия.Текст = НСтр("ru='Прибыль'");
Серия.Цвет = ЦветСинийСоСтальнымОттенком;
ИначеЕсли Серия.Текст = "СуммаРучнойСкидки" ИЛИ Серия.Текст = "СуммаРучнойСкидкиТекущий" Тогда
Серия.Текст = НСтр("ru='Сумма ручной скидки'");
Серия.Цвет = ЦветПотери;
ИначеЕсли Серия.Текст = "ПрибыльПредыдущий" Тогда
Серия.Текст = НСтр("ru='Прибыль в предыдущем периоде'");
Серия.Цвет = ЦветСинийСоСтальнымОттенком;
ИначеЕсли Серия.Текст = "СуммаРучнойСкидкиПредыдущий" Тогда
Серия.Текст = НСтр("ru='Сумма ручной скидки в предыдущем периоде'");
Серия.Цвет = ЦветПриростПрибыли;
Серия.Цвет = ЦветПотери;
КонецЕсли;
КонецЦикла;
ИначеЕсли ИмяНабора = "ЭффективностьВеденияСделок" Тогда
Для Каждого Серия Из Серии Цикл
Если Серия.Текст = "ВыиграноСделок" ИЛИ Серия.Текст = "ВыиграноСделокТекущий"Тогда
Серия.Текст = НСтр("ru='Выиграно сделок'");
Серия.Цвет = ЦветСинийСоСтальнымОттенком;
ИначеЕсли Серия.Текст = "ПроиграноСделок" ИЛИ Серия.Текст = "ПроиграноСделокТекущий" Тогда
Серия.Текст = НСтр("ru='Проиграно сделок'");
Серия.Цвет = ЦветПотери;
ИначеЕсли Серия.Текст = "ВыиграноСделокПредыдущий" Тогда
Серия.Текст = НСтр("ru='Выиграно сделок в предыдущем периоде'");
Серия.Цвет = ЦветСинийСоСтальнымОттенком;
ИначеЕсли Серия.Текст = "ПроиграноСделокПредыдущий" Тогда
Серия.Текст = НСтр("ru='Проиграно сделок в предыдущем периоде'");
Серия.Цвет = ЦветПриростПрибыли;
Серия.Цвет = ЦветПотери;
КонецЕсли;
КонецЦикла;
ИначеЕсли ИмяНабора = "ЭффективностьВзаимодействий" Тогда
Для Каждого Серия Из Серии Цикл
Если Серия.Текст = "ВзаимодействийПоВыиграннымСделкам" ИЛИ Серия.Текст = "ВзаимодействийПоВыиграннымСделкамТекущий"Тогда
Серия.Текст = НСтр("ru='Взаимодействий по выигранным сделкам'");
Серия.Цвет = ЦветСинийСоСтальнымОттенком;
ИначеЕсли Серия.Текст = "ВзаимодействийПоПроиграннымСделкам" ИЛИ Серия.Текст = "ВзаимодействийПоПроиграннымСделкамТекущий" Тогда
Серия.Текст = НСтр("ru='Взаимодействий по проигранным сделкам'");
Серия.Цвет = ЦветПотери;
ИначеЕсли Серия.Текст = "ПрочиеВзаимодействия" ИЛИ Серия.Текст = "ПрочиеВзаимодействияТекущий" Тогда
Серия.Текст = НСтр("ru='Прочие взаимодействия'");
Серия.Цвет = ЦветПрочиеВзаимодействия;
ИначеЕсли Серия.Текст = "ВзаимодействийПоВыиграннымСделкамПредыдущий" Тогда
Серия.Текст = НСтр("ru='Взаимодействий по выигранным сделкам в предыдущем периоде'");
Серия.Цвет = ЦветСинийСоСтальнымОттенком;
ИначеЕсли Серия.Текст = "ВзаимодействийПоПроиграннымСделкамПредыдущий" Тогда
Серия.Текст = НСтр("ru='Взаимодействий по проигранным сделкам в предыдущем периоде'");
Серия.Цвет = ЦветПриростПрибыли;
Серия.Цвет = ЦветПотери;
ИначеЕсли Серия.Текст = "ПрочиеВзаимодействияПредыдущий" Тогда
Серия.Текст = НСтр("ru='Прочие взаимодействия в предыдущем периоде'");
Серия.Цвет = ЦветПрочиеВзаимодействия;
КонецЕсли;
КонецЦикла;
ИначеЕсли ИмяНабора = "ПродажиНаОднуСделку" Тогда
Для Каждого Серия Из Серии Цикл
Если Серия.Текст = "ПродажиНаСделку" ИЛИ Серия.Текст = "Текущий" Тогда
Серия.Текст = НСтр("ru='Продажи на одну сделку'");
Серия.Цвет = ЦветСинийСоСтальнымОттенком;
ИначеЕсли Серия.Текст = "Предыдущий" Тогда
Серия.Текст = НСтр("ru='Продажи на одну сделку в предыдущем периоде'");
Серия.Цвет = ЦветСинийСоСтальнымОттенком;
ИначеЕсли Серия.Текст = "Прирост" Тогда
Серия.Текст = НСтр("ru='Прирост продаж на одну сделку в текущем периоде'");
Серия.Цвет = ЦветПриростПрибыли;
ИначеЕсли Серия.Текст = "Спад" Тогда
Серия.Текст = НСтр("ru='Уменьшение продаж на одну сделку в текущем периоде'");
Серия.Цвет = ЦветПотери;
КонецЕсли;
КонецЦикла;
ИначеЕсли ИмяНабора = "ПродажиНаОдноВзаимодействие" Тогда
Для Каждого Серия Из Серии Цикл
Если Серия.Текст = "ПродажиНаВзаимодействие" ИЛИ Серия.Текст = "Текущий" Тогда
Серия.Текст = НСтр("ru='Продажи на одно взаимодействие'");
Серия.Цвет = ЦветСинийСоСтальнымОттенком;
ИначеЕсли Серия.Текст = "Предыдущий" Тогда
Серия.Текст = НСтр("ru='Продажи на одно взаимодействие в предыдущем периоде'");
Серия.Цвет = ЦветСинийСоСтальнымОттенком;
ИначеЕсли Серия.Текст = "Прирост" Тогда
Серия.Текст = НСтр("ru='Прирост продаж на одно взаимодействие в текущем периоде'");
Серия.Цвет = ЦветПриростПрибыли;
ИначеЕсли Серия.Текст = "Спад" Тогда
Серия.Текст = НСтр("ru='Уменьшение продаж на одно взаимодействие в текущем периоде'");
Серия.Цвет = ЦветПотери;
КонецЕсли;
КонецЦикла;
ИначеЕсли ИмяНабора = "ОсновныеЭтапыПотерь" ИЛИ ИмяНабора = "ПричиныПроигрышаСделок"
ИЛИ ИмяНабора = "НеудовлетворениеПервичногоСпроса" ИЛИ ИмяНабора = "ПричиныВозникновенияПретензий" Тогда
Если Серии.Количество() > 0 Тогда
Серии[0].Цвет = ЦветКруговаяПервый;
КонецЕсли;
Если Серии.Количество() > 1 Тогда
Серии[1].Цвет = ЦветКруговаяВторой;
КонецЕсли;
Если Серии.Количество() > 2 Тогда
Серии[2].Цвет = ЦветКруговаяТретий;
КонецЕсли;
Если Серии.Количество() > 3 Тогда
Серии[3].Цвет = ЦветКруговаяЧетвертый;
КонецЕсли;
Если Серии.Количество() > 4 Тогда
Серии[4].Цвет = ЦветКруговаяПятый;
КонецЕсли;
ИначеЕсли ИмяНабора = "ПродажиНовымКлиентам" Тогда
Для Каждого Серия Из Серии Цикл
Если Серия.Текст = "Продажи" ИЛИ Серия.Текст = "Текущий" Тогда
Серия.Текст = НСтр("ru='Продажи'");
Серия.Цвет = ЦветСинийСоСтальнымОттенком;
ИначеЕсли Серия.Текст = "Предыдущий" Тогда
Серия.Текст = НСтр("ru='Продажи новым клиентам в предыдущем периоде'");
Серия.Цвет = ЦветСинийСоСтальнымОттенком;
ИначеЕсли Серия.Текст = "Прирост" Тогда
Серия.Текст = НСтр("ru='Прирост продаж новым клиентам в текущем периоде'");
Серия.Цвет = ЦветПриростПрибыли;
ИначеЕсли Серия.Текст = "Спад" Тогда
Серия.Текст = НСтр("ru='Уменьшение продаж новым клиентам в текущем периоде'");
Серия.Цвет = ЦветПотери;
КонецЕсли;
КонецЦикла;
ИначеЕсли ИмяНабора = "ВозникшиеПретензииКлиентов" Тогда
Для Каждого Серия Из Серии Цикл
Если Серия.Текст = "Количество" ИЛИ Серия.Текст = "Текущий" Тогда
Серия.Текст = НСтр("ru='Количество претензий'");
Серия.Цвет = ЦветПотери;
ИначеЕсли Серия.Текст = "Предыдущий" Тогда
Серия.Текст = НСтр("ru='Количество претензий в предыдущем периоде'");
Серия.Цвет = ЦветСинийСоСтальнымОттенком;
ИначеЕсли Серия.Текст = "Прирост" Тогда
Серия.Текст = НСтр("ru='Прирост зарегистрированных претензий в текущем периоде'");
Серия.Цвет = ЦветПотери;
ИначеЕсли Серия.Текст = "Спад" Тогда
Серия.Текст = НСтр("ru='Уменьшение зарегистрированных претензий в текущем периоде'");
Серия.Цвет = ЦветПриростПрибыли;
КонецЕсли;
КонецЦикла;
ИначеЕсли ИмяНабора = "ДинамикаКлиентскойБазы" Тогда
Для Каждого Серия Из Серии Цикл
Если Серия.Текст = "Новые" ИЛИ Серия.Текст = "НовыеТекущий" Тогда
Серия.Текст = НСтр("ru='Новые клиенты'");
Серия.Цвет = ЦветПриростПрибыли;
ИначеЕсли Серия.Текст = "Потерянные" ИЛИ Серия.Текст = "ПотерянныеТекущий" Тогда
Серия.Текст = НСтр("ru='Потерянные клиенты'");
Серия.Цвет = ЦветПотери;
ИначеЕсли Серия.Текст = "Вернувшиеся" ИЛИ Серия.Текст = "ВернувшиесяТекущий"Тогда
Серия.Текст = НСтр("ru='Вернувшиеся клиенты'");
Серия.Цвет = ЦветСинийСоСтальнымОттенком;
ИначеЕсли Серия.Текст = "НовыеПредыдущий" Тогда
Серия.Текст = НСтр("ru='Новые клиенты в предыдущем периоде'");
Серия.Цвет = ЦветПриростПрибыли;
ИначеЕсли Серия.Текст = "ВернувшиесяПредыдущий" Тогда
Серия.Текст = НСтр("ru='Вернувшиеся клиенты в предыдущем периоде'");
Серия.Цвет = ЦветСинийСоСтальнымОттенком;
ИначеЕсли Серия.Текст = "ПотерянныеПредыдущий" Тогда
Серия.Текст = НСтр("ru='Потерянные клиенты в предыдущем периоде'");
Серия.Цвет = ЦветПотери;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецПроцедуры
Функция ТекстЛегенды(ИмяНабораДанных, ДляДополнительногоПериода, ВалютаУправленческогоУчета, СтруктураПериодовФормированияОтчета)
Если НЕ ДляДополнительногоПериода Тогда
ДатаНачала = Формат(СтруктураПериодовФормированияОтчета.ДатаНачала,"ДЛФ=D");
ДатаОкончания = Формат(СтруктураПериодовФормированияОтчета.ДатаОкончания,"ДЛФ=D");
Иначе
ДатаНачала = Формат(СтруктураПериодовФормированияОтчета.ДатаНачалаДополнительныйПериод,"ДЛФ=D");
ДатаОкончания = Формат(СтруктураПериодовФормированияОтчета.ДатаОкончанияДополнительныйПериод,"ДЛФ=D");
КонецЕсли;
Если ИмяНабораДанных = "Продажи" Тогда
Если НЕ ДляДополнительногоПериода Тогда
ТекстЛегенды = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='Информация о продажах за период с %1 по %2 в валюте управленческого учета (%3).
|Сортировка производится в порядке убывания продаж.'"),
ДатаНачала,
ДатаОкончания,
ВалютаУправленческогоУчета);
Иначе
ТекстЛегенды = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='Сравнение с продажами за период с %1 по %2 в валюте управленческого учета (%3).
|Выводится информация о продажах предыдущего периода. Если в текущем периоде сумма продаж увеличилась
|по сравнению с предыдущим периодом, то дополнительно (зеленым цветом) отображается сумма, на которую
|увеличились продажи по сравнению с предыдущим периодом. Если суммы продаж в текущем периоде уменьшились
|по сравнению с предыдущим периодом, то суммы, на которую уменьшились продажи отображаются серым цветом.'"),
ДатаНачала,
ДатаОкончания,
ВалютаУправленческогоУчета);
КонецЕсли;
ИначеЕсли ИмяНабораДанных = "Прибыль" Тогда
Если НЕ ДляДополнительногоПериода Тогда
ТекстЛегенды = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='Информация о прибыли полученной за период с %1 по %2 в валюте управленческого учета (%3).
|Сортировка производится в порядке убывания прибыли.'"),
ДатаНачала,
ДатаОкончания,
ВалютаУправленческогоУчета);
Иначе
ТекстЛегенды = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='Сравнение с прибылью полученной за период с %1 по %2 в валюте управленческого учета (%3).
|Выводится информация о полученной прибыли в предыдущем периоде. Если в текущем периоде прибыль увеличилась
|по сравнению с предыдущим периодом, то дополнительно (зеленым цветом) отображается сумма, на которую
|увеличилась прибыль по сравнению с предыдущим периодом. Если прибыль в текущем периоде уменьшилась
|по сравнению с предыдущим периодом, то сумма, на которую уменьшилась прибыль отображается серым цветом.'"),
ДатаНачала,
ДатаОкончания,
ВалютаУправленческогоУчета);
КонецЕсли;
ИначеЕсли ИмяНабораДанных = "ПоступлениеДС" Тогда
Если НЕ ДляДополнительногоПериода Тогда
ТекстЛегенды = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='Информация о поступлении денежных средств за период с %1 по %2 в валюте управленческого учета (%3).
|Сортировка производится в порядке убывания суммы поступивших денежных средств.'"),
ДатаНачала,
ДатаОкончания,
ВалютаУправленческогоУчета);
Иначе
ТекстЛегенды = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='Сравнение с поступившими денежными средствами за период с %1 по %2 в валюте управленческого учета (%3).
|Выводится информация о поступивших денежных средствах в предыдущем периоде. Если в текущем периоде сумма поступивших
|денежных средств увеличилась по сравнению с предыдущим периодом, то дополнительно (зеленым цветом) отображается сумма,
|на которую увеличилось поступление денежных средств по сравнению с предыдущим периодом. Если сумма поступления денежных
|средств в текущем периоде уменьшилась по сравнению с предыдущим периодом, то сумма, на которую уменьшилось поступление
|денежных средств, отображается серым цветом.'"),
ДатаНачала,
ДатаОкончания,
ВалютаУправленческогоУчета);
КонецЕсли;
ИначеЕсли ИмяНабораДанных = "ПоступлениеДС_МинусСебестоимость" Тогда
Если НЕ ДляДополнительногоПериода Тогда
ТекстЛегенды = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='Информация о поступивших денежных средствах за вычетом себестоимости продаж в период с %1 по %2
|в валюте управленческого учета (%3). Сортировка производится в порядке убывания показателя.'"),
ДатаНачала,
ДатаОкончания,
ВалютаУправленческогоУчета);
Иначе
ТекстЛегенды = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='Сравнение со значением показателя за период с %1 по %2 в валюте управленческого учета (%3).
|Выводится информация о значении показателя в предыдущем периоде. Если в текущем периоде значение показателя выросло
|по сравнению с предыдущим периодом,то дополнительно (зеленым цветом) отображается значение, на которое увеличился показатель
|по сравнению с предыдущим периодом. Если значение показателя в текущем периоде уменьшилось по сравнению с предыдущим периодом,
|то значение, на которое уменьшился показатель отображается серым цветом.'"),
ДатаНачала,
ДатаОкончания,
ВалютаУправленческогоУчета);
КонецЕсли;
ИначеЕсли ИмяНабораДанных = "ПотериПросроченнаяДебиторка" Тогда
Если НЕ ДляДополнительногоПериода Тогда
ТекстЛегенды = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='Информация о потерях, понесенных компанией в результате несоблюдения договорных сроков оплаты клиентами
|в период с %1 по %2 в валюте управленческого учета (%3). Показатель рассчитывается по формуле:
|Потери = Сумма просроченной задолженности * Дни просроченной задолженности * Годовая ставка для расчета финансовых
|потерь / (100*365).
|Сортировка производится в порядке убывания показателя.'"),
ДатаНачала,
ДатаОкончания,
ВалютаУправленческогоУчета);
Иначе
ТекстЛегенды = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='Сравнение со значением показателя за период с %1 по %2 в валюте управленческого учета (%3).
|Выводится информация о значении показателя в предыдущем периоде. Если в текущем периоде значение показателя выросло
|по сравнению с предыдущим периодом,то дополнительно (серым цветом) отображается значение, на которое увеличился показатель
|по сравнению с предыдущим периодом. Если значение показателя в текущем периоде уменьшилось по сравнению с предыдущим периодом,
|то значение, на которое уменьшился показатель, отображается зеленым цветом.'"),
ДатаНачала,
ДатаОкончания,
ВалютаУправленческогоУчета);
КонецЕсли;
ИначеЕсли ИмяНабораДанных = "ПредоставленныеРучныеСкидки" Тогда
Если НЕ ДляДополнительногоПериода Тогда
ТекстЛегенды = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='Информация о полученной прибыли и предоставленных ручных скидках в период с %1 по %2 в валюте управленческого учета (%3).
|Сортировка производится в порядке убывания доли предоставленных ручных скидок относительно полученной прибыли.'"),
ДатаНачала,
ДатаОкончания,
ВалютаУправленческогоУчета);
Иначе
ТекстЛегенды = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='Информация о полученной прибыли и предоставленных ручных скидках в период с %1 по %2 в валюте управленческого учета (%3).'"),
ДатаНачала,
ДатаОкончания,
ВалютаУправленческогоУчета);
КонецЕсли;
ИначеЕсли ИмяНабораДанных = "ЭффективностьВеденияСделок" Тогда
Если НЕ ДляДополнительногоПериода Тогда
ТекстЛегенды = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='Информация о выигранных и проигранных сделках, завершившихся в период с %1 по %2.
|Сортировка производится в порядке убывания доли выигранных сделок.'"),
ДатаНачала,
ДатаОкончания);
Иначе
ТекстЛегенды = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='Информация о выигранных и проигранных сделках, завершившихся в период с %1 по %2.'"),
ДатаНачала,
ДатаОкончания);
КонецЕсли;
ИначеЕсли ИмяНабораДанных = "ЭффективностьВзаимодействий" Тогда
Если НЕ ДляДополнительногоПериода Тогда
ТекстЛегенды = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='Информация о взаимодействиях, посвященных выигранным, проигранным сделкам, а также
|прочим взаимодействиям, зарегистрированным в период с %1 по %2.
|Сортировка производится в порядке убывания доли взаимодействий, посвященным выигранным сделкам.'"),
ДатаНачала,
ДатаОкончания);
Иначе
ТекстЛегенды = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='Информация о взаимодействиях, посвященных выигранным, проигранным сделкам, а также
|прочим взаимодействиям, зарегистрированным в период с %1 по %2.'"),
ДатаНачала,
ДатаОкончания);
КонецЕсли;
ИначеЕсли ИмяНабораДанных = "ПродажиНаОднуСделку" Тогда
Если НЕ ДляДополнительногоПериода Тогда
ТекстЛегенды = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='Информация о сумме продаж на одну завершенную сделку в период с %1 по %2 в валюте управленческого учета (%3).
|Сортировка производится в порядке убывания продаж.'"),
ДатаНачала,
ДатаОкончания,
ВалютаУправленческогоУчета);
Иначе
ТекстЛегенды = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='Сравнение с продажами на одну завершенную сделку в с %1 по %2 в валюте управленческого учета (%3).
|Выводится информация о значении показателя в предыдущем периоде. Если в текущем периоде значение показателя выросло
|по сравнению с предыдущим периодом,то дополнительно(зеленым цветом) отображается значение, на которое увеличился показатель
|по сравнению с предыдущим периодом. Если значение показателя в текущем периоде уменьшилось по сравнению с предыдущим периодом,
|то значение, на которое уменьшился показатель отображается серым цветом.'"),
ДатаНачала,
ДатаОкончания,
ВалютаУправленческогоУчета);
КонецЕсли;
ИначеЕсли ИмяНабораДанных = "ПродажиНаОдноВзаимодействие" Тогда
Если НЕ ДляДополнительногоПериода Тогда
ТекстЛегенды = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='Информация о сумме продаж на одно зарегистрированное взаимодействие в период с %1 по %2 в валюте управленческого учета (%3).
|Сортировка производится в порядке убывания продаж.'"),
ДатаНачала,
ДатаОкончания,
ВалютаУправленческогоУчета);
Иначе
ТекстЛегенды = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='Сравнение с продажами одно зарегистрированное взаимодействие в с %1 по %2 в валюте управленческого учета (%3).
|Выводится информация о значении показателя в предыдущем периоде. Если в текущем периоде значение показателя выросло
|по сравнению с предыдущим периодом,то дополнительно (зеленым цветом) отображается значение, на которое увеличился показатель
|по сравнению с предыдущим периодом. Если значение показателя в текущем периоде уменьшилось по сравнению с предыдущим периодом,
|то значение, на которое уменьшился показатель, отображается серым цветом.'"),
ДатаНачала,
ДатаОкончания,
ВалютаУправленческогоУчета);
КонецЕсли;
ИначеЕсли ИмяНабораДанных = "ОсновныеЭтапыПотерь" Тогда
Если НЕ ДляДополнительногоПериода Тогда
ТекстЛегенды = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='Информация о 5 наиболее часто встречающихся при проигрыше сделок в период с %1 по %2
|сочетаниях ""менеджер - этап сделки"".'"),
ДатаНачала,
ДатаОкончания,
ВалютаУправленческогоУчета);
Иначе
ТекстЛегенды = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='Информация о 5 наиболее часто встречающихся при проигрыше сделок в период с %1 по %2
|сочетаниях ""менеджер - этап сделки"".'"),
ДатаНачала,
ДатаОкончания,
ВалютаУправленческогоУчета);
КонецЕсли
ИначеЕсли ИмяНабораДанных = "ПричиныПроигрышаСделок" Тогда
Если НЕ ДляДополнительногоПериода Тогда
ТекстЛегенды = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='Информация о 5 наиболее часто встречающихся при проигрыше сделок в период с %1 по %2
|сочетаниях ""менеджер - причина проигрыша сделки"".'"),
ДатаНачала,
ДатаОкончания);
Иначе
ТекстЛегенды = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='Информация о 5 наиболее часто встречающихся при проигрыше сделок в период с %1 по %2
|сочетаниях ""менеджер - причина проигрыша сделки"".'"),
ДатаНачала,
ДатаОкончания);
КонецЕсли;
ИначеЕсли ИмяНабораДанных = "НеудовлетворениеПервичногоСпроса" Тогда
Если НЕ ДляДополнительногоПериода Тогда
ТекстЛегенды = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='Информация о 5 наиболее часто встречающихся для закрытых в период с %1 по %2 сделок
|сочетаниях ""менеджер - причина неудовлетворения первичного спроса"".
|Информация выводится в валюте управленческого учета (%3)'"),
ДатаНачала,
ДатаОкончания,
ВалютаУправленческогоУчета);
Иначе
ТекстЛегенды = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='Информация о 5 наиболее часто встречающихся для закрытых в период с %1 по %2 сделок
|сочетаниях ""менеджер - причина неудовлетворения первичного спроса"".
|Информация выводится в валюте управленческого учета (%3)'"),
ДатаНачала,
ДатаОкончания,
ВалютаУправленческогоУчета);
КонецЕсли;
ИначеЕсли ИмяНабораДанных = "ДинамикаКлиентскойБазы" Тогда
Если НЕ ДляДополнительногоПериода Тогда
ТекстЛегенды = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='Информация о новых, вернувшихся и потерянных в период с %1 по %2 клиентах'"),
ДатаНачала,
ДатаОкончания);
Иначе
ТекстЛегенды = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='Информация о новых, вернувшихся и потерянных в период с %1 по %2 клиентах'"),
ДатаНачала,
ДатаОкончания);
КонецЕсли;
ИначеЕсли ИмяНабораДанных = "ПродажиНовымКлиентам" Тогда
Если НЕ ДляДополнительногоПериода Тогда
ТекстЛегенды = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='Информация о продажах новым клиентам за период с %1 по %2 в валюте управленческого учета (%3).
|Сортировка производится в порядке убывания продаж новым клиентам.'"),
ДатаНачала,
ДатаОкончания,
ВалютаУправленческогоУчета);
Иначе
ТекстЛегенды = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='Сравнение с продажами новым клиентам за период с %1 по %2 в валюте управленческого учета (%3).
|Выводится информация о продажах новым клиентам предыдущего периода. Если в текущем периоде значение показателя выросло
|по сравнению с предыдущим периодом,то дополнительно (зеленым цветом) отображается значение, на которое увеличился показатель
|по сравнению с предыдущим периодом. Если значение показателя в текущем периоде уменьшилось по сравнению с предыдущим периодом,
|то значение, на которое уменьшился показатель, отображается серым цветом.'"),
ДатаНачала,
ДатаОкончания,
ВалютаУправленческогоУчета);
КонецЕсли;
ИначеЕсли ИмяНабораДанных = "ВозникшиеПретензииКлиентов" Тогда
Если НЕ ДляДополнительногоПериода Тогда
ТекстЛегенды = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='Информация о количестве возникших в период с %1 по %2 претензий клиентах.
|Сортировка производится в порядке убывания количества возникших претензий клиентов.'"),
ДатаНачала,
ДатаОкончания);
Иначе
ТекстЛегенды = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='Сравнение с количеством возникших в период с %1 по %2 претензий клиентов.
|Выводится информация о количестве возникших в предыдущий период претензий клиентов. Если в текущем периоде значение показателя выросло
|по сравнению с предыдущим периодом,то дополнительно (серым цветом) отображается значение, на которое увеличился показатель
|по сравнению с предыдущим периодом. Если значение показателя в текущем периоде уменьшилось по сравнению с предыдущим периодом,
|то значение, на которое уменьшился показатель отображается зеленым цветом.'"),
ДатаНачала,
ДатаОкончания);
КонецЕсли;
ИначеЕсли ИмяНабораДанных = "ПричиныВозникновенияПретензий" Тогда
Если НЕ ДляДополнительногоПериода Тогда
ТекстЛегенды = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='Информация о 5 наиболее часто встречающихся для зарегистрированных в период с %1 по %2 претензий клиентов
|сочетаниях ""менеджер - причина возникновения претензии"".'"),
ДатаНачала,
ДатаОкончания);
Иначе
ТекстЛегенды = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='Информация о 5 наиболее часто встречающихся для зарегистрированных в период с %1 по %2 претензий клиентов
|сочетаниях ""менеджер - причина возникновения претензии"".'"),
ДатаНачала,
ДатаОкончания);
КонецЕсли;
КонецЕсли;
Возврат ТекстЛегенды;
КонецФункции
Процедура ВывестиТаблицу(ТаблицаДанных,ТаблицаОтчета,ПараметрыФормирования,ИмяНабора, СтруктураПериодовФормированияОтчета, Макет)
ВывестиОбластьБезПараметров("ПустаяСтрока",ТаблицаОтчета, Макет);
ТаблицаПодготовленныеДанные = ТаблицаДанныхДляТабличногоВывода(ИмяНабора,ТаблицаДанных,СтруктураПериодовФормированияОтчета.ЕстьДополнительныйПериод);
Для инд = 0 По ТаблицаПодготовленныеДанные.Колонки.Количество() - 1 Цикл
Если инд = 0 Тогда
Область = Макет.ПолучитьОбласть("ШапкаТаблицы|Отступ");
ТаблицаОтчета.Вывести(Область);
КонецЕсли;
Область = Макет.ПолучитьОбласть("ШапкаТаблицы|Показатель");
КолонкаТаблицы = ТаблицаПодготовленныеДанные.Колонки[инд];
Область.Параметры.ИмяПоказателя = КолонкаТаблицы.Заголовок;
ТаблицаОтчета.Присоединить(Область);
КонецЦикла;
Для Каждого СтрокаТаблицы Из ТаблицаПодготовленныеДанные Цикл
Для инд = 0 По ТаблицаПодготовленныеДанные.Колонки.Количество() - 1 Цикл
Если инд = 0 Тогда
Область = Макет.ПолучитьОбласть("ШапкаТаблицы|Отступ");
ТаблицаОтчета.Вывести(Область);
КонецЕсли;
Область = Макет.ПолучитьОбласть("СтрокаТаблицы|Показатель");
Область.Параметры.ЗначениеПоказателя = СтрокаТаблицы[инд];
ТаблицаОтчета.Присоединить(Область);
КонецЦикла;
КонецЦикла;
ВывестиОбластьБезПараметров("ПустаяСтрока",ТаблицаОтчета, Макет);
КонецПроцедуры
Функция ТаблицаДанныхДляТабличногоВывода(ИмяНабора,ТаблицаДанных,ЕстьДополнительныйПериод)
ТаблицаКВозврату = ТаблицаДанных.Скопировать();
Если НЕ ЕстьДополнительныйПериод Тогда
Если ИмяНабора = "Прибыль" ИЛИ ИмяНабора = "Продажи"
ИЛИ ИмяНабора = "ПоступлениеДС" ИЛИ ИмяНабора = "ПоступлениеДС_МинусСебестоимость"
ИЛИ ИмяНабора = "ПотериПросроченнаяДебиторка" ИЛИ ИмяНабора = "ПродажиНаОднуСделку"
ИЛИ ИмяНабора = "ПродажиНаОдноВзаимодействие" ИЛИ ИмяНабора = "ПродажиНовымКлиентам"
ИЛИ ИмяНабора = "ВозникшиеПретензииКлиентов"Тогда
ТаблицаКВозврату.Сортировать(ТаблицаКВозврату.Колонки[1].Имя + " DESC");
ТаблицаКВозврату.Колонки[1].Заголовок = ЗаголовокПоказателя(ИмяНабора);
ИначеЕсли ИмяНабора = "ПредоставленныеРучныеСкидки" Тогда
ТаблицаКВозврату.Сортировать(ТаблицаКВозврату.Колонки[3].Имя + " DESC," + ТаблицаКВозврату.Колонки[1].Имя + " DESC");
Для Инд = 1 По ТаблицаКВозврату.Колонки.Количество() - 1 Цикл
КолонкаТаблицы = ТаблицаКВозврату.Колонки[инд];
КолонкаТаблицы.Заголовок = ЗаголовокПоказателя(КолонкаТаблицы.Имя);
КонецЦикла;
ИначеЕсли ИмяНабора = "ЭффективностьВеденияСделок" Тогда
ТаблицаКВозврату.Сортировать(ТаблицаКВозврату.Колонки[3].Имя + " DESC," + ТаблицаКВозврату.Колонки[1].Имя + " DESC,"+ ТаблицаКВозврату.Колонки[2].Имя + " ASC");
Для Инд = 1 По ТаблицаКВозврату.Колонки.Количество() - 1 Цикл
КолонкаТаблицы = ТаблицаКВозврату.Колонки[инд];
КолонкаТаблицы.Заголовок = ЗаголовокПоказателя(КолонкаТаблицы.Имя);
КонецЦикла;
ИначеЕсли ИмяНабора = "ЭффективностьВзаимодействий" Тогда
ТаблицаКВозврату.Сортировать(ТаблицаКВозврату.Колонки[4].Имя + " DESC," + ТаблицаКВозврату.Колонки[1].Имя + " DESC");
Для Инд = 1 По ТаблицаКВозврату.Колонки.Количество() - 1 Цикл
КолонкаТаблицы = ТаблицаКВозврату.Колонки[инд];
КолонкаТаблицы.Заголовок = ЗаголовокПоказателя(КолонкаТаблицы.Имя);
КонецЦикла;
ИначеЕсли ИмяНабора = "ДинамикаКлиентскойБазы" Тогда
ТаблицаКВозврату.Сортировать(ТаблицаКВозврату.Колонки[4].Имя + " DESC," + ТаблицаКВозврату.Колонки[1].Имя + " DESC");
Для Инд = 1 По ТаблицаКВозврату.Колонки.Количество() - 1 Цикл
КолонкаТаблицы = ТаблицаКВозврату.Колонки[инд];
КолонкаТаблицы.Заголовок = ЗаголовокПоказателя(КолонкаТаблицы.Имя);
КонецЦикла;
Для каждого СтрокаТаблицыКВозврату Из ТаблицаКВозврату Цикл
СтрокаТаблицыКВозврату.Потерянные = - СтрокаТаблицыКВозврату.Потерянные;
КонецЦикла;
ИначеЕсли ИмяНабора = "ПричиныПроигрышаСделок" ИЛИ ИмяНабора = "ОсновныеЭтапыПотерь"
Или ИмяНабора = "НеудовлетворениеПервичногоСпроса" Или ИмяНабора = "ПричиныВозникновенияПретензий" Тогда
Для каждого СтрокаТаблицы Из ТаблицаКВозврату Цикл
СтрокаТаблицы[0] = СтрокаТаблицы[0] + " - " + СтрокаТаблицы[1];
КонецЦикла;
ТаблицаКВозврату.Колонки.Удалить(1);
КолонкаТаблицы = ТаблицаКВозврату.Колонки[0];
КолонкаТаблицы.Заголовок = ЗаголовокПоказателя(ИмяНабора);
КонецЕсли;
Иначе
Если ИмяНабора = "Прибыль" ИЛИ ИмяНабора = "Продажи"
ИЛИ ИмяНабора = "ПоступлениеДС" ИЛИ ИмяНабора = "ПоступлениеДС_МинусСебестоимость"
ИЛИ ИмяНабора = "ПотериПросроченнаяДебиторка" ИЛИ ИмяНабора = "ПродажиНаОднуСделку"
ИЛИ ИмяНабора = "ПродажиНаОдноВзаимодействие" ИЛИ ИмяНабора = "ПродажиНовымКлиентам"
ИЛИ ИмяНабора = "ВозникшиеПретензииКлиентов" Тогда
КолонкаТаблицы = ТаблицаКВозврату.Колонки[1];
ТаблицаКВозврату.Сортировать(КолонкаТаблицы.Имя + " DESC");
Для каждого СтрокаТаблицы Из ТаблицаКВозврату Цикл
АбсолютноеИзменение = СтрокаТаблицы[3] + СтрокаТаблицы[4];
СтрокаТаблицы[3] = СтрокаТаблицы[3] + СтрокаТаблицы[4];
СтрокаТаблицы[4] = ?(СтрокаТаблицы[1] = 0 ИЛИ СтрокаТаблицы[2] = 0 , 0 , АбсолютноеИзменение / СтрокаТаблицы[2] * 100);
КонецЦикла;
КолонкаТаблицы1 = ТаблицаКВозврату.Колонки[1];
КолонкаТаблицы2 = ТаблицаКВозврату.Колонки[2];
КолонкаТаблицы3 = ТаблицаКВозврату.Колонки[3];
КолонкаТаблицы4 = ТаблицаКВозврату.Колонки[4];
КолонкаТаблицы1.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='%1 в текущем периоде'"),ЗаголовокПоказателя(ИмяНабора));
КолонкаТаблицы2.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='%1 в предыдущем периоде'"),ЗаголовокПоказателя(ИмяНабора));
КолонкаТаблицы3.Заголовок = НСтр("ru='Абсолютное изменение'");
КолонкаТаблицы4.Заголовок = НСтр("ru='Относительное изменение(%)'");
ИначеЕсли ИмяНабора = "ПредоставленныеРучныеСкидки" Тогда
КолонкаТаблицы3 = ТаблицаКВозврату.Колонки[3];
КолонкаТаблицы1 = ТаблицаКВозврату.Колонки[1];
ТаблицаКВозврату.Сортировать(КолонкаТаблицы3.Имя + " DESC," + КолонкаТаблицы1.Имя + " DESC");
Для Инд = 1 По ТаблицаКВозврату.Колонки.Количество() - 1 Цикл
КолонкаТаблицы = ТаблицаКВозврату.Колонки[инд];
КолонкаТаблицы.Заголовок = ЗаголовокПоказателя(КолонкаТаблицы.Имя);
КонецЦикла;
ИначеЕсли ИмяНабора = "ЭффективностьВеденияСделок" Тогда
КолонкаТаблицы1 = ТаблицаКВозврату.Колонки[1];
КолонкаТаблицы2 = ТаблицаКВозврату.Колонки[2];
КолонкаТаблицы3 = ТаблицаКВозврату.Колонки[3];
ТаблицаКВозврату.Сортировать(КолонкаТаблицы3.Имя + " DESC," + КолонкаТаблицы1.Имя + " DESC,"+ КолонкаТаблицы2.Имя + " ASC");
Для Инд = 1 По ТаблицаКВозврату.Колонки.Количество() - 1 Цикл
КолонкаТаблицы = ТаблицаКВозврату.Колонки[инд];
КолонкаТаблицы.Заголовок = ЗаголовокПоказателя(КолонкаТаблицы.Имя);
КонецЦикла;
ИначеЕсли ИмяНабора = "ЭффективностьВзаимодействий" Тогда
КолонкаТаблицы1 = ТаблицаКВозврату.Колонки[1];
КолонкаТаблицы4 = ТаблицаКВозврату.Колонки[4];
ТаблицаКВозврату.Сортировать(КолонкаТаблицы4.Имя + " DESC," + КолонкаТаблицы1.Имя + " DESC");
Для Инд = 1 По ТаблицаКВозврату.Колонки.Количество() - 1 Цикл
КолонкаТаблицы = ТаблицаКВозврату.Колонки[инд];
КолонкаТаблицы.Заголовок = ЗаголовокПоказателя(КолонкаТаблицы.Имя);
КонецЦикла;
ИначеЕсли ИмяНабора = "ДинамикаКлиентскойБазы" Тогда
КолонкаТаблицы1 = ТаблицаКВозврату.Колонки[1];
КолонкаТаблицы4 = ТаблицаКВозврату.Колонки[4];
ТаблицаКВозврату.Сортировать(КолонкаТаблицы4.Имя + " DESC," + КолонкаТаблицы1.Имя + " DESC");
Для Инд = 1 По ТаблицаКВозврату.Колонки.Количество() - 1 Цикл
КолонкаТаблицы = ТаблицаКВозврату.Колонки[инд];
КолонкаТаблицы.Заголовок = ЗаголовокПоказателя(КолонкаТаблицы.Имя);
КонецЦикла;
Для каждого СтрокаТаблицыКВозврату Из ТаблицаКВозврату Цикл
СтрокаТаблицыКВозврату.ПотерянныеПредыдущий = - СтрокаТаблицыКВозврату.ПотерянныеПредыдущий;
СтрокаТаблицыКВозврату.ПотерянныеТекущий = - СтрокаТаблицыКВозврату.ПотерянныеТекущий;
КонецЦикла;
ИначеЕсли ИмяНабора = "ПричиныПроигрышаСделок" ИЛИ ИмяНабора = "ОсновныеЭтапыПотерь"
Или ИмяНабора = "НеудовлетворениеПервичногоСпроса" Или ИмяНабора = "ПричиныВозникновенияПретензий" Тогда
Для каждого СтрокаТаблицы Из ТаблицаКВозврату Цикл
СтрокаТаблицы[0] = СтрокаТаблицы[0] + " - " + СтрокаТаблицы[1];
КонецЦикла;
ТаблицаКВозврату.Колонки.Удалить(1);
ТаблицаДляПреобразования = Новый ТаблицаЗначений;
ТаблицаДляПреобразования.Колонки.Добавить("ИмяПоказателяТекущий");
ТаблицаДляПреобразования.Колонки.Добавить("ЗначениеПоказателяТекущий");
ТаблицаДляПреобразования.Колонки.Добавить("ИмяПоказателяПредыдущий");
ТаблицаДляПреобразования.Колонки.Добавить("ЗначениеПоказателяПредыдущий");
НомерСтрокиТекущийПериод = 1;
Для каждого СтрокаТаблицы Из ТаблицаКВозврату Цикл
Если СтрокаТаблицы.Период = "Предыдущий" Тогда
СтрокаТаблицыДляПреобразования = ТаблицаДляПреобразования.Добавить();
СтрокаТаблицыДляПреобразования.ИмяПоказателяПредыдущий = СтрокаТаблицы.Менеджер;
СтрокаТаблицыДляПреобразования.ЗначениеПоказателяПредыдущий = СтрокаТаблицы.ЗначениеПоказателя;
Иначе
Если НомерСтрокиТекущийПериод > ТаблицаДляПреобразования.Количество() Тогда
СтрокаТаблицыДляПреобразования = ТаблицаДляПреобразования.Добавить();
Иначе
СтрокаТаблицыДляПреобразования = ТаблицаДляПреобразования[НомерСтрокиТекущийПериод - 1];
КонецЕсли;
НомерСтрокиТекущийПериод = НомерСтрокиТекущийПериод + 1;
СтрокаТаблицыДляПреобразования.ИмяПоказателяТекущий = СтрокаТаблицы.Менеджер;
СтрокаТаблицыДляПреобразования.ЗначениеПоказателяТекущий = СтрокаТаблицы.ЗначениеПоказателя;
КонецЕсли;
КонецЦикла;
ТаблицаКВозврату = ТаблицаДляПреобразования.Скопировать();
КолонкаТаблицы0 = ТаблицаКВозврату.Колонки[0];
КолонкаТаблицы1 = ТаблицаКВозврату.Колонки[1];
КолонкаТаблицы2 = ТаблицаКВозврату.Колонки[2];
КолонкаТаблицы3 = ТаблицаКВозврату.Колонки[3];
КолонкаТаблицы0.Заголовок = ЗаголовокПоказателя(ИмяНабора + "ИмяПоказателя" + "Текущий");
КолонкаТаблицы1.Заголовок = ЗаголовокПоказателя(ИмяНабора + "ЗначениеПоказателя" + "Текущий");
КолонкаТаблицы2.Заголовок = ЗаголовокПоказателя(ИмяНабора + "ИмяПоказателя" + "Предыдущий");
КолонкаТаблицы3.Заголовок = ЗаголовокПоказателя(ИмяНабора + "ЗначениеПоказателя" + "Предыдущий");
КонецЕсли;
КонецЕсли;
Возврат ТаблицаКВозврату;
КонецФункции
Функция ЗаголовокПоказателя(ИмяПоказателя)
ЗаголовокПоказателя = ИмяПоказателя;
ЭтоВыводЗаголовкаТекущегоПериода = Ложь;
ЭтоВыводЗаголовкаПредыдущегоПериода = Ложь;
Если СтрЧислоВхождений(ЗаголовокПоказателя,"Текущий") > 0 Тогда
ЗаголовокПоказателя = Лев(ЗаголовокПоказателя,СтрДлина(ЗаголовокПоказателя) - СтрДлина("Текущий"));
ЭтоВыводЗаголовкаТекущегоПериода = Истина;
ИначеЕсли СтрЧислоВхождений(ЗаголовокПоказателя,"Предыдущий") > 0 Тогда
ЗаголовокПоказателя = Лев(ЗаголовокПоказателя,СтрДлина(ЗаголовокПоказателя) - СтрДлина("Предыдущий"));
ЭтоВыводЗаголовкаПредыдущегоПериода = Истина;
КонецЕсли;
Если ЗаголовокПоказателя = "ПоступлениеДС" Тогда
ЗаголовокПоказателя = НСтр("ru='Поступление денежных средств'");
ИначеЕсли ЗаголовокПоказателя = "ПоступлениеДС_МинусСебестоимость" Тогда
ЗаголовокПоказателя = НСтр("ru='Выручка (по оплате) минус себестоимость (по отгрузке)'");
ИначеЕсли ЗаголовокПоказателя = "ПотериПросроченнаяДебиторка" Тогда
ЗаголовокПоказателя = НСтр("ru='Потери'");
ИначеЕсли ЗаголовокПоказателя = "ПродажиНаОднуСделку" Тогда
ЗаголовокПоказателя = НСтр("ru='Продажи на одну сделку'");
ИначеЕсли ЗаголовокПоказателя = "ПродажиНаОдноВзаимодействие" Тогда
ЗаголовокПоказателя = НСтр("ru='Продажи на одно взаимодействие'");
ИначеЕсли ЗаголовокПоказателя = "ПродажиНовымКлиентам" Тогда
ЗаголовокПоказателя = НСтр("ru='Продажи новым клиентам'");
ИначеЕсли ЗаголовокПоказателя = "СуммаРучнойСкидки" Тогда
ЗаголовокПоказателя = НСтр("ru='Сумма ручной скидки'");
ИначеЕсли ЗаголовокПоказателя = "ДоляСкидкиОтПрибыли" Тогда
ЗаголовокПоказателя = НСтр("ru='Доля предоставленной ручной скидки от прибыли (%)'");
ИначеЕсли ЗаголовокПоказателя = "ВыиграноСделок" Тогда
ЗаголовокПоказателя = НСтр("ru='Выиграно сделок'");
ИначеЕсли ЗаголовокПоказателя = "ПроиграноСделок" Тогда
ЗаголовокПоказателя = НСтр("ru='Проиграно сделок'");
ИначеЕсли ЗаголовокПоказателя = "ДоляВыигранныхСделок" Тогда
ЗаголовокПоказателя = НСтр("ru='Доля выигранных сделок (%)'");
ИначеЕсли ЗаголовокПоказателя = "ВзаимодействийПоВыиграннымСделкам" Тогда
ЗаголовокПоказателя = НСтр("ru='Взаимодействий по выигранным сделкам'");
ИначеЕсли ЗаголовокПоказателя = "ВзаимодействийПоПроиграннымСделкам" Тогда
ЗаголовокПоказателя = НСтр("ru='Взаимодействий по проигранным сделкам'");
ИначеЕсли ЗаголовокПоказателя = "ПрочиеВзаимодействия" Тогда
ЗаголовокПоказателя = НСтр("ru='Прочие взаимодействия'");
ИначеЕсли ЗаголовокПоказателя = "ДоляВзаимодействийПоВыиграннымСделкам" Тогда
ЗаголовокПоказателя = НСтр("ru='Доля взаимодействий по выигранным сделкам(%)'");
ИначеЕсли ЗаголовокПоказателя = "Новые" Тогда
ЗаголовокПоказателя = НСтр("ru='Новые клиенты'");
ИначеЕсли ЗаголовокПоказателя = "Потерянные" Тогда
ЗаголовокПоказателя = НСтр("ru='Потерянные клиенты'");
ИначеЕсли ЗаголовокПоказателя = "Прибыль" Тогда
ЗаголовокПоказателя = НСтр("ru='Прибыль'");
ИначеЕсли ЗаголовокПоказателя = "Продажи" Тогда
ЗаголовокПоказателя = НСтр("ru='Продажи'");
ИначеЕсли ЗаголовокПоказателя = "Вернувшиеся" Тогда
ЗаголовокПоказателя = НСтр("ru='Вернувшиеся клиенты'");
ИначеЕсли ЗаголовокПоказателя = "ДоляНовыхКлиентов" Тогда
ЗаголовокПоказателя = НСтр("ru='Доля новых клиентов (%)'");
ИначеЕсли ЗаголовокПоказателя = "ВозникшиеПретензииКлиентов" Тогда
ЗаголовокПоказателя = НСтр("ru='Возникшие претензии'");
ИначеЕсли ЗаголовокПоказателя = "ПричиныПроигрышаСделок" ИЛИ ЗаголовокПоказателя = "ПричиныПроигрышаСделок" + "ИмяПоказателя" Тогда
ЗаголовокПоказателя = НСтр("ru='""Менеджер - причина проигрыша""'");
ИначеЕсли ЗаголовокПоказателя = "ОсновныеЭтапыПотерь" ИЛИ ЗаголовокПоказателя = "ОсновныеЭтапыПотерь" + "ИмяПоказателя" Тогда
ЗаголовокПоказателя = НСтр("ru='""Менеджер - этап сделки""'");
ИначеЕсли ЗаголовокПоказателя = "ОсновныеЭтапыПотерь" + "ЗначениеПоказателя" ИЛИ ЗаголовокПоказателя = "ПричиныПроигрышаСделок" + "ЗначениеПоказателя"
ИЛИ ЗаголовокПоказателя = "ПричиныВозникновенияПретензий" + "ЗначениеПоказателя" Тогда
ЗаголовокПоказателя = НСтр("ru='Количество'");
ИначеЕсли ЗаголовокПоказателя = "НеудовлетворениеПервичногоСпроса" ИЛИ ЗаголовокПоказателя = "НеудовлетворениеПервичногоСпроса" + "ИмяПоказателя" Тогда
ЗаголовокПоказателя = НСтр("ru='""Менеджер - причина неудовлетворения""'");
ИначеЕсли ЗаголовокПоказателя = "СуммаПервичногоСпроса" ИЛИ ЗаголовокПоказателя = "НеудовлетворениеПервичногоСпроса" + "ЗначениеПоказателя" Тогда
ЗаголовокПоказателя = НСтр("ru='Сумма неудовлетворенного спроса'");
ИначеЕсли ЗаголовокПоказателя = "ПричиныВозникновенияПретензий" ИЛИ ЗаголовокПоказателя = "ПричиныВозникновенияПретензий" + "ИмяПоказателя" Тогда
ЗаголовокПоказателя = НСтр("ru='""Менеджер - причина возникновения""'");
КонецЕсли;
Если ЭтоВыводЗаголовкаТекущегоПериода Тогда
ЗаголовокПоказателя = ЗаголовокПоказателя + " " + НСтр("ru='в текущем периоде'");
ИначеЕсли ЭтоВыводЗаголовкаПредыдущегоПериода Тогда
ЗаголовокПоказателя = ЗаголовокПоказателя + " " + НСтр("ru='в предыдущем периоде'");
КонецЕсли;
Возврат ЗаголовокПоказателя;
КонецФункции
Функция ПреобразоватьТаблицуДанныхДляДиаграммы(ИмяНабора,ТаблицаДанных,ВыводитсяОсновнойПериод,ЕстьДополнительныйПериод)
ТаблицаКВозврату = ТаблицаДанных.Скопировать();
Если ИмяНабора = "Прибыль" ИЛИ ИмяНабора = "Продажи"
ИЛИ ИмяНабора = "ПоступлениеДС" ИЛИ ИмяНабора = "ПоступлениеДС_МинусСебестоимость"
ИЛИ ИмяНабора = "ПотериПросроченнаяДебиторка" ИЛИ ИмяНабора = "ПродажиНаОднуСделку"
ИЛИ ИмяНабора = "ПродажиНаОдноВзаимодействие" ИЛИ ИмяНабора = "ПродажиНовымКлиентам"
ИЛИ ИмяНабора = "ВозникшиеПретензииКлиентов"Тогда
КолонкаТаблицы1 = ТаблицаКВозврату.Колонки[1];
ТаблицаКВозврату.Сортировать(КолонкаТаблицы1.Имя + " DESC");
ИначеЕсли ИмяНабора = "ПредоставленныеРучныеСкидки" Тогда
КолонкаТаблицы1 = ТаблицаКВозврату.Колонки[1];
КолонкаТаблицы3 = ТаблицаКВозврату.Колонки[3];
ТаблицаКВозврату.Сортировать(КолонкаТаблицы3.Имя + " DESC," + КолонкаТаблицы1.Имя + " DESC");
ИначеЕсли ИмяНабора = "ЭффективностьВеденияСделок" Тогда
КолонкаТаблицы1 = ТаблицаКВозврату.Колонки[1];
КолонкаТаблицы2 = ТаблицаКВозврату.Колонки[2];
КолонкаТаблицы3 = ТаблицаКВозврату.Колонки[3];
ТаблицаКВозврату.Сортировать(КолонкаТаблицы3.Имя + " DESC," + КолонкаТаблицы1.Имя + " DESC,"+ КолонкаТаблицы2.Имя + " ASC");
ИначеЕсли ИмяНабора = "ЭффективностьВзаимодействий" Тогда
КолонкаТаблицы1 = ТаблицаКВозврату.Колонки[1];
КолонкаТаблицы4 = ТаблицаКВозврату.Колонки[4];
ТаблицаКВозврату.Сортировать(КолонкаТаблицы4.Имя + " DESC," + КолонкаТаблицы1.Имя + " DESC");
ИначеЕсли ИмяНабора = "ДинамикаКлиентскойБазы" Тогда
КолонкаТаблицы1 = ТаблицаКВозврату.Колонки[1];
КолонкаТаблицы4 = ТаблицаКВозврату.Колонки[4];
ТаблицаКВозврату.Сортировать(КолонкаТаблицы4.Имя + " DESC," + КолонкаТаблицы1.Имя + " DESC");
КонецЕсли;
Если НЕ ЕстьДополнительныйПериод Тогда
Если ИмяНабора = "ПредоставленныеРучныеСкидки" ИЛИ ИмяНабора = "ЭффективностьВеденияСделок" Тогда
ТаблицаКВозврату.Колонки.Удалить(3);
ИначеЕсли ИмяНабора = "ДинамикаКлиентскойБазы" ИЛИ ИмяНабора = "ЭффективностьВзаимодействий" Тогда
ТаблицаКВозврату.Колонки.Удалить(4);
КонецЕсли;
Иначе
Если ВыводитсяОсновнойПериод Тогда
Если ИмяНабора = "Прибыль" ИЛИ ИмяНабора = "Продажи"
ИЛИ ИмяНабора = "ПоступлениеДС" ИЛИ ИмяНабора = "ПоступлениеДС_МинусСебестоимость"
ИЛИ ИмяНабора = "ПотериПросроченнаяДебиторка" ИЛИ ИмяНабора = "ПродажиНаОднуСделку"
ИЛИ ИмяНабора = "ПродажиНаОдноВзаимодействие" ИЛИ ИмяНабора = "ПродажиНовымКлиентам"
ИЛИ ИмяНабора = "ВозникшиеПретензииКлиентов" Тогда
ТаблицаКВозврату.Колонки.Удалить(2);
ТаблицаКВозврату.Колонки.Удалить(2);
ТаблицаКВозврату.Колонки.Удалить(2);
ИначеЕсли ИмяНабора = "ПредоставленныеРучныеСкидки" ИЛИ ИмяНабора = "ЭффективностьВеденияСделок" Тогда
ТаблицаКВозврату.Колонки.Удалить(3);
ТаблицаКВозврату.Колонки.Удалить(3);
ТаблицаКВозврату.Колонки.Удалить(3);
ТаблицаКВозврату.Колонки.Удалить(3);
ИначеЕсли ИмяНабора = "ЭффективностьВзаимодействий" ИЛИ ИмяНабора = "ДинамикаКлиентскойБазы" Тогда
ТаблицаКВозврату.Колонки.Удалить(4);
ТаблицаКВозврату.Колонки.Удалить(4);
ТаблицаКВозврату.Колонки.Удалить(4);
ТаблицаКВозврату.Колонки.Удалить(4);
ТаблицаКВозврату.Колонки.Удалить(4);
ИначеЕсли ИмяНабора = "ПричиныПроигрышаСделок" ИЛИ ИмяНабора = "ОсновныеЭтапыПотерь"
ИЛИ ИмяНабора = "НеудовлетворениеПервичногоСпроса" Или ИмяНабора = "ПричиныВозникновенияПретензий" Тогда
КоличествоСтрок = ТаблицаКВозврату.Количество();
Для Инд = 1 По КоличествоСтрок Цикл
Если ТаблицаКВозврату[КоличествоСтрок - Инд].Период = "Предыдущий" Тогда
ТаблицаКВозврату.Удалить(КоличествоСтрок - Инд);
КонецЕсли;
КонецЦикла;
ТаблицаКВозврату.Колонки.Удалить(3);
КонецЕсли;
Иначе
Если ИмяНабора = "Прибыль" ИЛИ ИмяНабора = "Продажи"
ИЛИ ИмяНабора = "ПоступлениеДС" ИЛИ ИмяНабора = "ПоступлениеДС_МинусСебестоимость"
ИЛИ ИмяНабора = "ПотериПросроченнаяДебиторка" ИЛИ ИмяНабора = "ПродажиНаОднуСделку"
ИЛИ ИмяНабора = "ПродажиНаОдноВзаимодействие" ИЛИ ИмяНабора = "ПродажиНовымКлиентам"
ИЛИ ИмяНабора = "ВозникшиеПретензииКлиентов" Тогда
ТаблицаКВозврату.Колонки.Удалить(1);
ИначеЕсли ИмяНабора = "ПредоставленныеРучныеСкидки" ИЛИ ИмяНабора = "ЭффективностьВеденияСделок" Тогда
ТаблицаКВозврату.Колонки.Удалить(1);
ТаблицаКВозврату.Колонки.Удалить(1);
ТаблицаКВозврату.Колонки.Удалить(1);
ТаблицаКВозврату.Колонки.Удалить(3);
ИначеЕсли ИмяНабора = "ЭффективностьВзаимодействий" ИЛИ ИмяНабора = "ДинамикаКлиентскойБазы" Тогда
ТаблицаКВозврату.Колонки.Удалить(1);
ТаблицаКВозврату.Колонки.Удалить(1);
ТаблицаКВозврату.Колонки.Удалить(1);
ТаблицаКВозврату.Колонки.Удалить(1);
ТаблицаКВозврату.Колонки.Удалить(4);
ИначеЕсли ИмяНабора = "ПричиныПроигрышаСделок" ИЛИ ИмяНабора = "ОсновныеЭтапыПотерь"
ИЛИ ИмяНабора = "НеудовлетворениеПервичногоСпроса" Или ИмяНабора = "ПричиныВозникновенияПретензий" Тогда
КоличествоСтрок = ТаблицаКВозврату.Количество();
Для Инд = 1 По КоличествоСтрок Цикл
Если ТаблицаКВозврату[КоличествоСтрок - Инд].Период = "Текущий" Тогда
ТаблицаКВозврату.Удалить(КоличествоСтрок - Инд);
КонецЕсли;
КонецЦикла;
ТаблицаКВозврату.Колонки.Удалить(3);
КонецЕсли;
КонецЕсли;
КонецЕсли;
Если ИмяНабора = "ПричиныПроигрышаСделок" ИЛИ ИмяНабора = "ОсновныеЭтапыПотерь" Или ИмяНабора = "НеудовлетворениеПервичногоСпроса"
Или ИмяНабора = "ПричиныВозникновенияПретензий" Тогда
Для каждого СтрокаТаблицы Из ТаблицаКВозврату Цикл
СтрокаТаблицы[0] = СтрокаТаблицы[0] + " - " + СтрокаТаблицы[1];
КонецЦикла;
ТаблицаКВозврату.Колонки.Удалить(1);
КонецЕсли;
Возврат ТаблицаКВозврату;
КонецФункции
#КонецОбласти
#Область Прочее
Процедура СформироватьОтчет(ТаблицаОтчета,ПараметрыФормирования) Экспорт
Макет = ПолучитьМакет("СравнительныйАнализМенеджеров");
СтруктураПериодовФормированияОтчета = СтруктураПериодовФормированияОтчетов(ПараметрыФормирования);
ВалютаУправленческогоУчета = Константы.ВалютаУправленческогоУчета.Получить();
ДеревоНаборовДанных = ПолучитьИзВременногоХранилища(ПараметрыФормирования.ДеревоНаборовДанных);
СоответствиеЗапросыДанные = Новый Соответствие;
МассивРезультатовЗапросов = ВыполнитьПакетЗапросов(СоответствиеЗапросыДанные,ДеревоНаборовДанных,ПараметрыФормирования, СтруктураПериодовФормированияОтчета);
Для каждого ГруппаДанных Из ДеревоНаборовДанных.Строки Цикл
Если ГруппаДанных.Включать <> 0 Тогда
ВывестиШапкуГруппыДанных(ТаблицаОтчета,ГруппаДанных["Наименование"], Макет);
ТаблицаОтчета.НачатьГруппуСтрок(ГруппаДанных["Имя"]);
ВывестиОбластьБезПараметров("ПустаяСтрока",ТаблицаОтчета, Макет);
Для каждого НаборДанных Из ГруппаДанных.Строки Цикл
Если НаборДанных.Включать = 1 Тогда
ВывестиДанные(МассивРезультатовЗапросов[СоответствиеЗапросыДанные[НаборДанных["Имя"]]],
ТаблицаОтчета,
ПараметрыФормирования,
НаборДанных,
ВалютаУправленческогоУчета,
СтруктураПериодовФормированияОтчета,
Макет);
КонецЕсли;
КонецЦикла;
ТаблицаОтчета.ЗакончитьГруппуСтрок();
ВывестиОбластьБезПараметров("ПустаяСтрока",ТаблицаОтчета, Макет);
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Функция СтруктураПериодовФормированияОтчетов(ПараметрыФормирования)
ПериодФормированияОтчета = ПараметрыФормирования.ПериодФормированияОтчета;
ДополнительныйПериодДляАнализа = ПараметрыФормирования.ДополнительныйПериодДляАнализа;
СтруктураКВозврату = Новый Структура;
СтруктураКВозврату.Вставить("ДатаНачала", ПериодФормированияОтчета.ДатаНачала);
СтруктураКВозврату.Вставить("ДатаОкончания", ПериодФормированияОтчета.ДатаОкончания);
СтруктураКВозврату.Вставить("ЕстьДополнительныйПериод", Ложь);
СтруктураКВозврату.Вставить("ДатаНачалаДополнительныйПериод", Дата(1,1,1));
СтруктураКВозврату.Вставить("ДатаОкончанияДополнительныйПериод", Дата(1,1,1));
Если ДополнительныйПериодДляАнализа = "ПрошлыйГод" Тогда
СтруктураКВозврату.ЕстьДополнительныйПериод = Истина;
СтруктураКВозврату.ДатаНачалаДополнительныйПериод = ДобавитьМесяц(ПериодФормированияОтчета.ДатаНачала, -12);
СтруктураКВозврату.ДатаОкончанияДополнительныйПериод = ДобавитьМесяц(ПериодФормированияОтчета.ДатаОкончания, -12);
ИначеЕсли ДополнительныйПериодДляАнализа = "ПредыдущийПериод" Тогда
ВеличинаПериода = ПериодФормированияОтчета.ДатаОкончания - ПериодФормированияОтчета.ДатаНачала + 1;
СтруктураКВозврату.ЕстьДополнительныйПериод = Истина;
СтруктураКВозврату.ДатаНачалаДополнительныйПериод = ПериодФормированияОтчета.ДатаНачала - ВеличинаПериода;
СтруктураКВозврату.ДатаОкончанияДополнительныйПериод = ПериодФормированияОтчета.ДатаОкончания - ВеличинаПериода;
КонецЕсли;
Возврат СтруктураКВозврату;
КонецФункции
Процедура ВывестиШапкуНабораДанных(ТаблицаОтчета,ТекстЗаголовка,ЕстьДополнительныйПериод, Макет)
Область = Макет.ПолучитьОбласть("ШапкаНабораДанных|ДиаграммаОтступ");
ТаблицаОтчета.Вывести(Область);
Область = Макет.ПолучитьОбласть("ШапкаНабораДанных|ДиаграммаКолонка");
ПараметрыОбластиДанных = ПараметрыОбластиДанных(ТекстЗаголовка);
ЗаполнитьЗначенияСвойств(Область.Параметры, ПараметрыОбластиДанных);
ТаблицаОтчета.Присоединить(Область);
Если ЕстьДополнительныйПериод Тогда
ПараметрыОбластиДанных = ПараметрыОбластиДанных("");
ЗаполнитьЗначенияСвойств(Область.Параметры, ПараметрыОбластиДанных);
ТаблицаОтчета.Присоединить(Область);
КонецЕсли;
КонецПроцедуры
Процедура ВывестиШапкуГруппыДанных(ТаблицаОтчета,ТекстЗаголовка, Макет)
Область = Макет.ПолучитьОбласть("ШапкаГруппыДанных");
ПараметрыОбластиДанных = ПараметрыОбластиДанных(ТекстЗаголовка);
ЗаполнитьЗначенияСвойств(Область.Параметры, ПараметрыОбластиДанных);
ТаблицаОтчета.Вывести(Область);
КонецПроцедуры
Функция ПараметрыОбластиДанных(ТекстЗаголовка)
ПараметрыОбласти = Новый Структура;
ПараметрыОбласти.Вставить("ТекстЗаголовка", ТекстЗаголовка);
Возврат ПараметрыОбласти;
КонецФункции
Процедура ВывестиОбластьБезПараметров(ИмяОбласти,ТаблицаОтчета, Макет)
Область = Макет.ПолучитьОбласть(ИмяОбласти);
ТаблицаОтчета.Вывести(Область);
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#КонецЕсли