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