Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
29 Май 2017, 12:37
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Механизм автоматической отправке отчетов на почту  (Прочитано 756 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Маргарита

  • *
  • Сообщений: 3
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2016-08-09
  • Сайт: 
  • Профессия: Консультант 1С
Здравствуйте. Требуется создать регламентное задание по автоматической отправке отчетов на почту.
Создала общий модуль, в котором прописала:
1) Общую процедуру, запускаемую из фонового задания:
Процедура Отчет() Экспорт
ТекстПисьма = "Отчет по ... за " + Строка(НачалоДня(ТекущаяДата())-60*60*16) + " - " + Строка(НачалоДня(ТекущаяДата())+60*60*8) + Символы.ПС;
Таб = СоздатьОтчет(ТекстПисьма);

ПутьКФайлу = "C:\Users\Public\";
ИмяФайла = "temp.xls";
ПолноеИмяФайла = ПутьКФайлу+ИмяФайла;

ВыгрузитьТДвФайл(Таб, ПолноеИмяФайла, ТекстПисьма);

ОтправкаУведомлений(ТекстПисьма, ПолноеИмяФайла);
КонецПроцедуры


2) Формирование отчета
Функция СоздатьОтчет(ТекстПисьма)
Таб = Новый ТабличныйДокумент;
Попытка
//Получаем схему из макета
СхемаКомпоновкиДанных = Отчеты.УниверсальныйОтчет.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
//Из схемы возьмем настройки по умолчанию
Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;
//Настроим период
НачальнаяДата = Настройки.ПараметрыДанных.Элементы.Найти("НачальнаяДата");
НачальнаяДата.Значение = НачалоДня(ТекущаяДата())-60*60*16;
КонечнаяДата = Настройки.ПараметрыДанных.Элементы.Найти("КонечнаяДата");
КонечнаяДата.Значение = НачалоДня(ТекущаяДата())+60*60*8;

//Помещаем в переменную данные о расшифровке данных
Расшифровка = Новый ДанныеРасшифровкиКомпоновкиДанных;
//Формируем макет, с помощью компоновщика макета
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
//Передаем в макет компоновки схему, настройки и данные расшифровки
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, Расшифровка);
ВнешниеПараметры = Новый Структура;
//Выполним компоновку с помощью процессора компоновки
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешниеПараметры, Расшифровка);
//Выводим результат в табличный документ
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(Таб);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных, Истина);
Возврат Таб;

Исключение
ТекстПисьма = ТекстПисьма + "Ошибка при создании отчета! " + ОписаниеОшибки() + Символы.ПС;
Возврат Таб;
КонецПопытки;
КонецФункции
3) Сохранение в файл (Excel):

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

Исключение
ТекстПисьма = ТекстПисьма + "Не удалось создать файл! " + ОписаниеОшибки() + Символы.ПС;
КонецПопытки;
КонецПроцедуры

4) Отправление почту:

Процедура ОтправкаУведомлений(ТекстПисьма, ПолноеИмяФайла)
ИПП = Новый ИнтернетПочтовыйПрофиль;
ИПП.АдресСервераSMTP = "mail.ru";
ИПП.ПарольSMTP = "pass";
ИПП.ПользовательSMTP = "login";
ИПП.ПортSMTP = 25;

Сообщение = Новый ИнтернетПочтовоеСообщение;
Сообщение.Кодировка = "UTF-8";
Сообщение.Получатели.Добавить("1@mail.ru");
Сообщение.Получатели.Добавить("2@mail.ru");

Сообщение.Отправитель.Адрес = "0@mail.ru";

Сообщение.Тема = "Регл.задание: Отчет";
Попытка
Сообщение.Вложения.Добавить(ПолноеИмяФайла,"Отчет");
Исключение
ТекстПисьма = ТекстПисьма + "Не удалось добавить вложение! " + ОписаниеОшибки() + Символы.ПС;
КонецПопытки;
Сообщение.Тексты.Добавить(ТекстПисьма);

Почта = Новый ИнтернетПочта;
Почта.Подключиться(ИПП);
Почта.Послать(Сообщение);
Почта.Отключиться();
КонецПроцедуры.

Код написан для внутреннего отчета. А нужно для внешнего отчета. Как получить систему компоновки данных для внешнего отчета? Подскажите, пожалуйста


Онлайн LexaK

  • *****
  • Сообщений: 1216
  • РЕПУТАЦИЯ: 333
  • КПД: 27%
  • Регистрация: 2012-05-16
  • Сайт: 
  • Профессия: Программист 1С
для БСП20 упр.формы
есть справочник ДополнительныеОтчетыИОбработки, там регистрируете свой внешний отчет.

программно его можно получить по команде

    //ссылка - элемент справочника ДополнительныеОтчетыИОбработки с вашим отчетом
    лкОтчет = ДополнительныеОтчетыИОбработки.ПолучитьОбъектВнешнейОбработки(Ссылка);
    ...

примерно такой-же механизм есть и для БСП1.2

какая у вас конфигурация вы не написали.
Помогло? - Нажми СПАСИБО!!!
                       :)


 

«Единица для отчетов» и «Единица хранения остатков»

Автор tranceferРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 6661
Последний ответ 14 Фев 2012, 02:29
от Dethmontt
Как понять почему перестало работать регламентное задание - "отправка отчетов"?

Автор virtusРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 1892
Последний ответ 26 Июл 2014, 16:00
от virtus
Консоль отчетов. Вопрос "Загрузить стандартные настройки?"

Автор KatishРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 2182
Последний ответ 04 Апр 2012, 03:47
от Katish
Построитель отчетов, сводная таблица.Ошибка при вызове метода контекста...

Автор alekseyРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 4663
Последний ответ 28 Ноя 2009, 23:31
от aleksey
Предлагаю свои услуги по написанию различных обработок, отчетов, конфигураций

Автор Шурыгин Иван СергеевичРаздел Резюме

Ответов: 4
Просмотров: 4715
Последний ответ 20 Мар 2013, 14:48
от ОСНО

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
81 Сообщений
wise wise
64 Сообщений
MuI_I_Ika MuI_I_Ika
50 Сообщений
Dethmontt Dethmontt
49 Сообщений
alex0402
43 Сообщений
Сергей Федоров Сергей Федоров
32 Сообщений
ilyay ilyay
30 Сообщений
ilnur75
25 Сообщений
Дмитрий Медведков Дмитрий Медведков
19 Сообщений
DmitriyF DmitriyF
17 Сообщений

* Кто онлайн

  • Точка Гостей: 971
  • Точка Скрытых: 0
  • Точка Пользователей: 15
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal