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