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