HelpF.pro

Руководство компании, хочет получать оперативную сводку продаж по фирме

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

Технический аспект реализации. на почтовом сервере компании заводим ящик autoreport.xxx.ru , в глобальный модуль в предопределенную процедуру ПриНачалеРаботыСистемы вставляем проверку строки запуска 1С для того, что бы определить момент старта проверки поступления новых писем в ящик.
Код 1C v 8.х
 
Процедура ПриНачалеРаботыСистемы()
Если Найти(ПараметрЗапуска,"changemail")>0 Тогда
Форма = Обработки.SaletoMail.ПолучитьФорму();
Форма.ОтсылкаПоЗаказу();
ЗавершитьРаботуСистемы(Ложь);
конецЕсли;
КонецПроцедуры


В планировщик задач вписываем запуск 1С Предприятия в “C:\Program Files\1cv8\bin\1cv8.exe” enterprise /DisableStartupMessages /smain\demo /cchangemail и ставим запуск каждые 5 минут. После запуска 1С проверяет переданный параметр если он подходит то происходит вызов внешней обработки в которой формируется отчет и происходит передача отчета обратно на ящик отправителя. Во внешнюю обработку писем процедуру ОтсылкаПоЗаказу() которая проверяет ящик на наличие писем, делает минимальную проверку , но то, что письмо пришло из нашего почтового сервера и отсылает продажи на адрес отправителя.

Код 1C v 8.х
 
Процедура ОтсылкаПоЗаказу()
Профиль = Новый ИнтернетПочтовыйПрофиль;
Профиль.АдресСервераSMTP = "mail.xxx.ru";
Профиль.АдресСервераPOP3 = "mail.xxx.ru";
Профиль.ПортSMTP = 25;
Профиль.ПортPOP3 = 110;
Профиль.Пользователь = "sale";
Профиль.Пароль = "Report";
Почта = Новый ИнтернетПочта;
Почта.Подключиться(Профиль);
Массив = Новый Массив; Сообщения = Почта.Выбрать(true ,Массив);
// true для того, что бы очистить обработанные сообщения
Для КолПисем= 1 По Сообщения.Количество() Цикл
ТекПисьмо = Сообщения.Получить(КолПисем-1);
Если (Найти(ТекПисьмо.Отправитель.Адрес,"xxx.ru")>0) and (НРег(ТекПисьмо.Тема)="magicsale") тогда Письмо = Новый ИнтернетПочтовоеСообщение; Письмо.ИмяОтправителя = "sale";
Сообщение = Новый ИнтернетПочтовоеСообщение;
Письмо.Тексты.Добавить("Продажи дня" + ТекущаяДата());
Письмо.Получатели.Добавить(""+Сообщения.Получить(КолПисем-1).Отправитель.Адрес);
// ….. Поскипано
// ….. Формируем отчет о продажах и сохраняем его во внешний файл , или текст.
// ….. вкладываем отчет как приатаченный файл или тело сообщения.
Почта.Послать(Письмо);
КонецЕсли;
КонецЦикла;
Почта.Отключиться();
КонецПроцедуры

Отправка отчетов из 1С по электронной почте (E-Mail)
Опубликовано на сайте: https://HelpF.pro
Прямая ссылка: https://HelpF.pro/faq8/view/465.html