Отправка отчетов (или других табличных документов) из 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С) время не надо тратить.

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

См. также

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

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

3000 руб.

25.11.2020    25356    267    8    

230

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

Создать и отправить 1000 Актов серки контрагентам за 5 мин ?! Легко! Разработано для конфигурации УНФ Массовое создание и рассылка Актов сверки в три клика.

6000 руб.

13.01.2022    11091    9    13    

14

Email рассылки Программист Пользователь Платформа 1С v8.3 1C:Бухгалтерия 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x Платные (руб)

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

4920 руб.

30.06.2022    11589    75    100    

37

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

Данная обработка позволяет сократить объем ручных операций, выполняемых ежемесячно бухгалтером или его помощником за счет автоматизации систематического процесса.

7800 руб.

12.02.2019    33558    27    24    

26

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

Обработка позволяет автоматически сформировать акты сверок на почту контрагентов (почта берется из контактных данных контрагента). При формировании акта сверки формируется подпись с указанием контактов для связи с бухгалтерией нашей организации (формируется исходя из контактов из карточки организации). Присутствует возможность ручного редактирования электронной почты контрагента для отправки. Отправка осуществляется с системной записи электронной почты. В случае, если у контрагента нет адреса электронной почты, эти контрагенты будут выведены в отдельной табличной части. Это очень удобно, так как сразу наглядно виден список контрагентов, которым невозможно отправить акты сверок!

7080 руб.

11.05.2021    9947    7    2    

7

Взаиморасчеты 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) . РАБОТАЕТ НА БАЗОВЫХ и ПРОФ. ВЕРСИЯХ.

2520 руб.

24.04.2020    32179    123    66    

102

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

Помощник бухгалтера, занимающегося контролем за взаиморасчётами с клиентами, выполнен в форме внешней обработки, позволяющей упростить процесс создания и рассылки сверки взаиморасчётов клиентам.

3600 руб.

18.12.2024    330    1    0    

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

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

очередь нужна на случай если упадет почтовик. у нас тоже вначале ее не было. много проблем было с потерями из-за этого периодически. а потом я придумал очередь и про проблемы вообще забыли.
10. succub1_5 92 10.02.15 08:09 Сейчас в теме
(9) burlakov, понятно, мы пока не сталкивались, но я был бы очень признателен за код, отвечающий за формирование очереди =)
11. GreenDragon 10.02.15 09:54 Сейчас в теме
(9) burlakov, реализовать очередь через регистр сведений, в случае успешной отправки отмечать записи или удалять их. Я правильно понял мысль? Сейчас как раз пишу подобное для отправки печатных форм документов клиентам(регламентным заданием).
12. succub1_5 92 10.02.15 10:48 Сейчас в теме
(11) GreenDragon, кстати сам принцип отправки писем интересен: 1) если 1С отправляет все данные скопом на почтовый сервер, то очередь (хотя зачем - по идее одно письмо рассылается 20+ адресатам) формировать на самом сервере, 2) если же в 1С формировать разные письма (в силу каких-то условий: разный тест сообщения, разные прикрепляемые файлы, разные заголовки тем и т.п.) - то да уже в 1С формировать очередь и отчет по отправке.
8. LexSeIch 212 10.02.15 06:19 Сейчас в теме
Мир этому дому!
Как раз столкнулся с подобной задачей в маленькой самописной системе. Автору большое спасибо.
user914179; +1 Ответить
13. burlakov 83 10.02.15 16:21 Сейчас в теме
выложил свой механизм по Вашим просьбам http://infostart.ru/public/329175/
14. jaroslav.h 181 18.06.15 23:12 Сейчас в теме
Дякую, реально робочий варіант, багато часу зекономив, дякую тобі добра людино! Дякую!
15. simgo83 71 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 26 18.04.19 10:26 Сейчас в теме
22. mpeg1989 131 28.02.20 15:45 Сейчас в теме
Открою маленький секрет, но как минимум в современных конфигурациях (в 2015г таким вопросом не задавался) в шапке отчета есть кнопочка в виде конверта, и там можно настроить регламентную рассылку отчета.
23. tfel 6 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 Сейчас в теме
как в функцию СоздатьОтчет добавить отбор, например по организации или по складу?
Оставьте свое сообщение