Отправка отчетов (или других табличных документов) из 1С по электронной почте.

09.02.15

Интеграция - Email рассылки

Автоматизация (регламентное задание) рассылки отчетов (или других табличных документов) из 1С по электронной почте.

Здравствуйте, уважаемые форумчане. Чтобы ответить на 1 вопрос (я типо экстрасенс) оставлю ссылку с поиском, так как сам недавно нуждался, но пришлось все собирать по кирпичикам: Поиск
А теперь 2 вопрос - Зачем?
Итак, руководству понадобилось получать отчет по производству к началу планерки, сперва шло все хорошо - девочка на поддержке заходила в 1С, создавала отчет, сохраняла в Excel и всем отправляла. но наступил кризис, девочку сократили, а от отчета никто не отказался. Вот собственно для автоматизации всего этого процесса и было решено добавить регламентное задание, создать отчет, сохранить в читаемый (любимый для руководителй) тип файла и отправить по электронке.



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

Вот собственно всего 4 несложных процедурки и у нас все готово для настройки регламентного задания: Имя метода выбираем наш общий модуль с 1 процедурой (ОтправкаОтчетов.Отчет) и настраиваем расписание.


Теперь и руководство довольно - все вовремя приходит, и нам (программистам/администраторам 1С) время не надо тратить.

автоматизация отчет электронная почта фоновое задание регламентное задание

См. также

"Акты сверки +" Групповая подготовка и рассылка актов сверки для Бухгалтерии 3.0.

Взаиморасчеты Email рассылки Акт сверки Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Бухгалтерский учет Платные (руб)

Внешняя обработка для Бухгалтерии 3.0 - позволяет автоматически формировать документы «Акт сверки расчетов» с контрагентами за выбранный период с последующей фоновой отправкой на почту контрагента.

3000 руб.

25.11.2020    22465    183    6    

163

Email, SMS, Telegram рассылки из 1С - Директ Маркетинг

Управление взаимоотношениями с клиентами (CRM) Мессенджеры и боты SMS рассылки Email рассылки Платформа 1С v8.3 Конфигурации 1cv8 Управленческий учет Платные (руб)

Полный набор инструментов для качественных транзакционных и маркетинговых Email, SMS, Telegram рассылок из 1С. Даже простые уведомления об оплате счетов способны существенно упростить сбор дебиторской задолженности. Применение всех возможностей прямого маркетинга выводит коммуникацию с клиентами, уровень сервиса и лояльность на новый уровень.

7788 руб.

07.04.2014    84011    42    191    

127

Автоматическая рассылка отчетов из 1С: Управление торговлей 10.3 и 1С:УПП по электронной почте

Email рассылки Оптовая торговля Платформа 1С v8.3 1С:Управление торговлей 10 1С:Управление производственным предприятием Управленческий учет Платные (руб)

Многим сотрудникам предприятия требуется актуальная и достоверная информация для принятия верных управленческих решений. Получить данную информацию можно при помощи отчетов, существующих в конфигурации «1С: Управление торговлей 10.3» или «1С:УПП». Но не всегда у пользователей есть время, возможность и/или желание формировать отчеты непосредственно в системе. Намного привычней и удобней получать готовые отчеты на электронную почту, не открывая 1С.

12000 руб.

16.04.2014    84461    100    91    

94

Массовая рассылка печатных форм любых документов по электронной почте

Email рассылки Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

За $m и Руб. Решение для массовой рассылки печатных форм (в том числе и дополнительных) любых документов, и произвольных файлов по электронной почте. Рассылка пакета документов. Добавление факсимильных печати и подписи. Произвольные шаблоны HTML/Simple text с автозаполнением любыми полями документа. Любые форматы файлов. Упаковка вложений в архив. Транслитерация имен файлов. Разбиение рассылки на произвольные порции. Обход спам-фильтров. Журналирование рассылок.

3600 руб.

30.06.2022    9192    64    88    

27

Групповое создание актов сверок

Взаиморасчеты Email рассылки Акт сверки Платформа 1С v8.3 Бухгалтерский учет 1С:Управление торговлей 10 1С:Бухгалтерия 3.0 Бухгалтерский учет Платные (руб)

Обработки предназначены для массового создания актов сверки и отправки их по электронной почте для конфигураций Управление торговлей 10.3. и Бухгалтерия предприятия 3.0. Для Бухгалтерии 3.0 Разработка велась на 1С:Предприятие 8.3 (8.3.15.1830). проверялась на Бухгалтерия предприятия 3.0 (3.0.71.83) и 3.0.76.77 Для Управление торговлей 10.3 Разработка велась на 1С:Предприятие 8.3 релиз конфигурации (10.3.61.2) . РАБОТАЕТ НА БАЗОВЫХ и ПРОФ. ВЕРСИЯХ.

2000 руб.

24.04.2020    30567    121    66    

101

Групповое формирование, согласование, печать и отправка по e-mail актов сверок взаиморасчетов (Бухгалтерия предприятия, ред. 3.0)

Email рассылки Взаиморасчеты Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Указывайте любой период, список организаций, контрагентов, видов договоров (с покупателем, с поставщиком и др.), счетов бухгалтерского учёта, валюту, необходимость детализации по договорам, список печатных форм и форматов их сохранения, а затем формируйте, согласовывайте, контролируйте, печатайте и отправляйте по e-mail готовые акты сверок прямо из 1С: Бухгалтерия предприятия, ред. 3.0.

9000 руб.

03.04.2018    30672    64    24    

64
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Danil.Potapov 516 09.02.15 16:13 Сейчас в теме
рекомендую за основу брать подсистему рассылки отчетов от 1с в БСП.
zoikins; sapervodichka; +2 Ответить
2. DoctorRoza 09.02.15 16:27 Сейчас в теме
Самый простой, рабочий вариант.
criptid; kokman; +2 Ответить
3. burlakov 79 09.02.15 16:33 Сейчас в теме
давно подобный механизм сам реализовывал. только тут не хватает много чего еще.
1. справочник рассылок нужен
2. сформированные сообщения надо ставить в очередь и задание должно отправлять их каждые 5 мин допустим
3. все настройки должны задаваться, а не в коде писаться напрямки. изменят вам сервер - в код полезете переделывать?
4. помимо отчетов это можно использовать для информирования групп пользователей о любы событиях в системе (например о создании элемента справочника или проведении документа (в т.ч. с описаниями изменений по версионированию))

если кому интересно могу выложить такой механизм.
4. bashinsky 133 09.02.15 16:37 Сейчас в теме
5. burlakov 79 09.02.15 16:39 Сейчас в теме
(4) bashinsky, хорошо. сделаю вариант решения сбоку и выложу на днях. у нас работает уже четвертый год - вполне успешно.
6. bashinsky 133 09.02.15 16:52 Сейчас в теме
(5) burlakov, Спасибо, буду ждать.
7. succub1_5 89 09.02.15 16:56 Сейчас в теме
(3) burlakov, согласен - совершенству нет предела =)
1) в конечной версии у нас из excel файла берется список абонентов
2) зачем? более 30 абонентов всем приходит
3) да, а можно из настроенного почтового профиля брать
4) так я получается сразу 3 момента описал: программная отправка почтовых сообщений (много для чего нужно), программное создание отчета из СКД и 1 строчная выгрузка полученного табличного документа в excel
=)
user914179; +1 Ответить
9. burlakov 79 10.02.15 07:59 Сейчас в теме
(7)

очередь нужна на случай если упадет почтовик. у нас тоже вначале ее не было. много проблем было с потерями из-за этого периодически. а потом я придумал очередь и про проблемы вообще забыли.
10. succub1_5 89 10.02.15 08:09 Сейчас в теме
(9) burlakov, понятно, мы пока не сталкивались, но я был бы очень признателен за код, отвечающий за формирование очереди =)
11. GreenDragon 10.02.15 09:54 Сейчас в теме
(9) burlakov, реализовать очередь через регистр сведений, в случае успешной отправки отмечать записи или удалять их. Я правильно понял мысль? Сейчас как раз пишу подобное для отправки печатных форм документов клиентам(регламентным заданием).
12. succub1_5 89 10.02.15 10:48 Сейчас в теме
(11) GreenDragon, кстати сам принцип отправки писем интересен: 1) если 1С отправляет все данные скопом на почтовый сервер, то очередь (хотя зачем - по идее одно письмо рассылается 20+ адресатам) формировать на самом сервере, 2) если же в 1С формировать разные письма (в силу каких-то условий: разный тест сообщения, разные прикрепляемые файлы, разные заголовки тем и т.п.) - то да уже в 1С формировать очередь и отчет по отправке.
8. LexSeIch 210 10.02.15 06:19 Сейчас в теме
Мир этому дому!
Как раз столкнулся с подобной задачей в маленькой самописной системе. Автору большое спасибо.
user914179; +1 Ответить
13. burlakov 79 10.02.15 16:21 Сейчас в теме
выложил свой механизм по Вашим просьбам http://infostart.ru/public/329175/
14. jaroslav.h 180 18.06.15 23:12 Сейчас в теме
Дякую, реально робочий варіант, багато часу зекономив, дякую тобі добра людино! Дякую!
15. simgo83 69 20.03.16 19:30 Сейчас в теме
Спасибо, реально помогло для розницы 2.0
16. mila1231 30.05.16 07:59 Сейчас в теме
лучше поздно, чем никогда)) встал вопрос о формировании отчёта в фоновом режиме..
вопрос в том, как поступить, если отчёт формируется в табличный документ по запросу, т.е по сути как заполнить сам макет??
17. Manticor 66 17.08.17 20:24 Сейчас в теме
Как обойти эту ошибку при отрпавке??

Ошибка при вызове метода контекста (Подключиться): Can't connect to mail.ru,25: Refused
18. Shurgent 11 22.08.17 09:30 Сейчас в теме
(17) На сколько я понимаю, mail.ru, как и другие почтовые службы, уже давно перешли на SSL и на 25-й порт подключиться не удастся. Нужно использовать порт 465 и устанавливать признак использования SSL:
ИПП.ПортSMTP = 465;
ИПП.ИспользоватьSSLSMTP = Истина;
19. kostyaspb010 29.03.19 15:54 Сейчас в теме
Добрый день! А куда 3 остальных модулю поместить? 1 -ый в общий модуль, это понятно.
20. user1202361 13.04.19 19:34 Сейчас в теме
Спасибо, очень интересная статья.
21. vladimir-89 25 18.04.19 10:26 Сейчас в теме
22. mpeg1989 131 28.02.20 15:45 Сейчас в теме
Открою маленький секрет, но как минимум в современных конфигурациях (в 2015г таким вопросом не задавался) в шапке отчета есть кнопочка в виде конверта, и там можно настроить регламентную рассылку отчета.
23. tfel 5 15.12.20 12:17 Сейчас в теме
(22) как минимум в БП в стандартных бухгалтерских отчетах отправка по емейлу есть, но вот настройки регламентной отправки нет. да и вообще, стандартные бухотчеты не отправляются
24. user1480726 22.07.21 09:37 Сейчас в теме
(22) Даже сейчас не во всех конфигурациях есть конвертик, для отправки. а тогда о нем и думать не могли, как по мне :)
25. JannetP 16.09.22 11:56 Сейчас в теме
Не корректно так получать настройки, нужно это делать через компоновщик:

НашОтчет = Отчеты.УниверсальныйОтчет.Создать();
НастройкиОтчета = НашОтчет.КомпоновщикНастроек.ПолучитьНастройки(); 
СхемаКомпоновкиДанных = НашОтчет.СхемаКомпоновкиДанных; 
26. vp1c 10.11.22 11:38 Сейчас в теме
как в функцию СоздатьОтчет добавить отбор, например по организации или по складу?
Оставьте свое сообщение