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