|
&НаСервере
Функция ВыгрузитьДанные_вТЗ()
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| УКЕДС_Заявки.Фамилия КАК ФИО,
| УКЕДС_Заявки.УКЖКХ_АдресАЗ.Владелец.ФИАС_КодЗдания КАК КодФИАС,
| УКЕДС_Заявки.Телефоны КАК Телефоны
|ИЗ
| Документ.УКЕДС_Заявки КАК УКЕДС_Заявки
|ГДЕ
| УКЕДС_Заявки.Дата >= &ДатаНачала
| И УКЕДС_Заявки.Дата <= &ДатаОкончания
| И УКЕДС_Заявки.Телефоны <> """"
| И УКЕДС_Заявки.УКЖКХ_АдресАЗ.Владелец.ФИАС_КодЗдания
<> """"
| И УКЕДС_Заявки.Фамилия <>
""""";
Запрос.Параметры.Вставить("ДатаНачала", НачалоДня(ТекущаяДата() - 86400*120));
Запрос.Параметры.Вставить("ДатаОкончания", КонецДня(ТекущаяДата() - 86400*120));
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
Если Выборка.Следующий()
Тогда
Возврат Результат.Выгрузить();
Иначе
Возврат Неопределено;
КонецЕсли;
КонецФункции
&НаСервере
Функция ТабличныйДокументИзТаблицыЗначений(Знач ТЗ)
ТабДокумент = Новый ТабличныйДокумент;
// Выводим заголовок таблицы
КолонкаИндекс =
0;
Пока КолонкаИндекс
< ТЗ.Колонки.Количество() Цикл
Колонка = ТЗ.Колонки[КолонкаИндекс];
ОбластьКолонки = ТабДокумент.Область(1, КолонкаИндекс
+ 1, 1, КолонкаИндекс + 1);
Если ПустаяСтрока(Колонка.Заголовок) Тогда
ОбластьКолонки.Текст
= Колонка.Имя;
Иначе
ОбластьКолонки.Текст
= Колонка.Заголовок;
КонецЕсли;
ОбластьКолонки.ШиринаКолонки
= Колонка.Ширина;
КолонкаИндекс
= КолонкаИндекс + 1;
КонецЦикла;
// Выводим строки таблицы
СтрокаИндекс =
0;
Пока СтрокаИндекс
< ТЗ.Количество() Цикл
Таблица_Строка
= ТЗ[СтрокаИндекс];
КолонкаИндекс
= 0;
Пока КолонкаИндекс
< ТЗ.Колонки.Количество() Цикл
Колонка = ТЗ.Колонки[КолонкаИндекс];
ТабДокумент.Область(СтрокаИндекс + 2, КолонкаИндекс
+ 1, СтрокаИндекс + 2, КолонкаИндекс
+ 1).Текст = Таблица_Строка[Колонка.Имя]; // + 2, т.к. в первой строке выведен
заголовок
КолонкаИндекс
= КолонкаИндекс + 1;
КонецЦикла;
СтрокаИндекс
= СтрокаИндекс + 1;
КонецЦикла;
Возврат ТабДокумент;
КонецФункции
&НаСервере
Процедура ОтправитьПочтовоеСообщение(Знач ФайлСТелефонами)
ПочтовыйПрофиль = новый ИнтернетПочтовыйПрофиль;
ПочтовыйПрофиль.ВремяОжидания
= 300;
ПочтовыйПрофиль.Пользователь
= "obmen_eds_dzfz";
//SMTP
ПочтовыйПрофиль.АдресСервераSMTP
= "mail.gktower.ru";
ПочтовыйПрофиль.ПортSMTP =
587;
ПочтовыйПрофиль.ПользовательSMTP
= "obmen_eds_dzfz";
ПочтовыйПрофиль.ПарольSMTP =
"+HBeo8V~MoCWkRDX";
ПочтовыйПрофиль.АутентификацияSMTP
= СпособSMTPАутентификации.Login;
//IMAP
ПочтовыйПрофиль.АдресСервераIMAP
= "mail.gktower.ru";
ПочтовыйПрофиль.ПортIMAP =
993;
ПочтовыйПрофиль.ПользовательIMAP
= "obmen_eds_dzfz";
ПочтовыйПрофиль.ПарольIMAP =
"+HBeo8V~MoCWkRDX";
Отправитель1 =
"obmen_eds_dzfz@gktower.ru";
Сообщение = Новый ИнтернетПочтовоеСообщение;
Сообщение.ИмяОтправителя =
Отправитель1;
Сообщение.Отправитель =
Отправитель1;
Сообщение.Тема =
"Тестовая тема";
Сообщение.Получатели.Добавить("obmen_eds_dzfz@gktower.ru");
Сообщение.Тексты.Добавить("Тестовое
сообщение");
Сообщение.Вложения.Добавить(ФайлСТелефонами, "Список телефонов");
Почта = Новый ИнтернетПочта;
Попытка
Почта.Подключиться(ПочтовыйПрофиль);
Почта.Послать(Сообщение);
Исключение
//Сообщить("Ошибка ...",СтатусСообщения.ОченьВажное);
//Сообщить(""+ОписаниеОшибки());
КонецПопытки;
Конецпроцедуры
&НаСервере
Процедура Отправить_НаСервере()
ТЗ = ВыгрузитьДанные_вТЗ();
Если ЗначениеЗаполнено(ТЗ)
Тогда
ТабДок = ТабличныйДокументИзТаблицыЗначений(ТЗ);
ИмяФайла = ПолучитьИмяВременногоФайла("xlsx");
ТабДок.Записать(ИмяФайла, ТипФайлаТабличногоДокумента.XLSX);
//Отправляем файл
ОтправитьПочтовоеСообщение(ИмяФайла);
УдалитьФайлы(ИмяФайла);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура
Отправить(Команда)
Отправить_НаСервере();
КонецПроцедуры
|