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