В начало

Рассылка отчета СКД на почту

 

Листинг. Общий модуль

&НаСервере

Функция СоздатьОтчетИСохранитьВИксель(Знач ДатаДокументаНачало, Знач ДатаДокументаКонец, Знач Организация)

            ТабДок = Новый ТабличныйДокумент();

           

            СКД=Отчеты.СверкаДокументаПРСизБазыДЗФЗсБазойБП.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");

            Настройки=СКД.НастройкиПоУмолчанию; 

 

            //Задаем параметры

            Параметр1 = Настройки.ПараметрыДанных.Элементы.Найти("ДатаДокументаНачало");

            Параметр1.Значение = ДатаДокументаНачало;

            Параметр1.Использование = Истина;

 

            Параметр2 = Настройки.ПараметрыДанных.Элементы.Найти("ДатаДокументаКонец");

            Параметр2.Значение = ДатаДокументаКонец;

            Параметр2.Использование = Истина; 

           

            Параметр3 = Настройки.ПараметрыДанных.Элементы.Найти("Организация");

            Параметр3.Значение = Организация;

            Параметр3.Использование = Истина; 

           

            Расшифровка = Новый ДанныеРасшифровкиКомпоновкиДанных;

            КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;   

           

            //Передаем в макет компоновки схему, настройки и данные расшифровки

            МакетКомпоновки = КомпоновщикМакета.Выполнить(СКД, Настройки, Расшифровка);   

            ВнешниеПараметры = Новый Структура;   

           

            //Выполним компоновку с помощью процессора компоновки

            ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;

            ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешниеПараметры, Расшифровка);   

           

            //Выводим результат в табличный документ

            ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;

            ПроцессорВывода.УстановитьДокумент(ТабДок);    

            ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных, Истина);            

           

            //ТабДок.Записать(КаталогВременныхФайлов() + "ДинамикаДЗдляИнцидентов.xls", ТипФайлаТабличногоДокумента.XLS);

           

            Возврат ТабДок;

КонецФункции

             

&НаСервере

Процедура ОтправитьПочтовоеСообщениеСИнцидентом(Знач Почта, Знач Сообщение, Знач ИмяФайлаОтчета, Знач ПутьКОтчету)

 

Попытка        

    АдресПолучателя = Почта;

            АдресОтвета = "";

            ТемаПисьма = Сообщение;

            ТекстПисьма = Сообщение; 

           

            МодульРаботаСПочтовымиСообщениями = ОбщегоНазначения.ОбщийМодуль("РаботаСПочтовымиСообщениями");

            УчетнаяЗапись = МодульРаботаСПочтовымиСообщениями.СистемнаяУчетнаяЗапись();  

           

            ПараметрыПисьма = Новый Структура;

            ПараметрыПисьма.Вставить("Кому", АдресПолучателя);

            ПараметрыПисьма.Вставить("УчетнаяЗапись", УчетнаяЗапись);                                                              

            ПараметрыПисьма.Вставить("АдресОтвета", АдресОтвета);

            ПараметрыПисьма.Вставить("Тема", ТемаПисьма);        

            ПараметрыПисьма.Вставить("Тело", ТекстПисьма);

            ПараметрыПисьма.Вставить("ТипТекста", "ПростойТекст");

 

            Вложения = Новый Соответствие;

            Вложения.Вставить(ИмяФайлаОтчета, Новый ДвоичныеДанные(ПутьКОтчету));

            ПараметрыПисьма.Вставить("Вложения", Вложения);  

                                  

            РаботаСПочтовымиСообщениями.ОтправитьПочтовоеСообщение(УчетнаяЗапись, ПараметрыПисьма);          

Исключение

КонецПопытки;

 

КонецПроцедуры

 

&НаСервере

Процедура ДляРегламентногоЗадания() Экспорт

                       

            Выборка = Справочники.СписокРассылкиОтчетаСверки.Выбрать();

           

            Пока Выборка.Следующий() Цикл

                       

                        ВремФайл = КаталогВременныхФайлов() + "Отчет.xls";

                        ТабДок = СоздатьОтчетИСохранитьВИксель(НачалоГода(ТекущаяДата()), ТекущаяДата(), Выборка.Организация);

                        ТабДок.Записать(ВремФайл, ТипФайлаТабличногоДокумента.XLS);

                       

                        ОтправитьПочтовоеСообщениеСИнцидентом(Выборка.Почта, "Отчет", "Отчет.xls", КаталогВременныхФайлов() + "Отчет.xls");

                       

                        УдалитьФайлы(ВремФайл);

                       

            КонецЦикла;            

           

КонецПроцедуры