1С 8.2. УПП
Необходимо перед закрытием программы формировать отчет(отчеты) и отправлять их по указанным электронным адресам. Никогда с таким не сталкивался, подскажите куда копать.
Функция ОтправитьЭлектронноеПисьмоHTML(
пАдрес,
пИмяОтправителя = "sender records",
пОтправитель = "reportbot@SCI.com.ua",
пТема,
пТекст,
пВложения,
пОписаниеПисьма = "",
пПочтовоеСоединение = Неопределено
) Экспорт
Сообщение = Новый ИнтернетПочтовоеСообщение;
Если ПустаяСтрока(пАдрес) Тогда
ОбщегоНазначения.СообщитьОбОшибке("Ошибка! В электронном письме ("+пОписаниеПисьма+") не указан адрес",,, СтатусСообщения.ОченьВажное);
Возврат ложь;
КонецЕсли;
Сообщение.Получатели.Добавить(пАдрес);
Сообщение.Тема =пТема;
Сообщение.ИмяОтправителя=пИмяОтправителя;
Сообщение.Отправитель=пОтправитель;
Для каждого лИмяФайлВложения из пВложения Цикл
Если ПустаяСтрока(лИмяФайлВложения) Тогда
Продолжить;
КонецЕсли;
Попытка
Сообщение.Вложения.Добавить(лИмяФайлВложения);
Исключение
ОбщегоНазначения.СообщитьОбОшибке(ОписаниеОшибки(),,"Ошибка при присоединении вложения к электронному письму", СтатусСообщения.ОченьВажное);
Возврат ложь;
КонецПопытки;
КонецЦикла;
Сообщение.Кодировка = "windows-1251";
ТекстПисьма = Сообщение.Тексты.Добавить(пТекст);
ТекстПисьма.Кодировка = "windows-1251";
ТекстПисьма.ТипТекста = ТипТекстаПочтовогоСообщения.HTML;
Если пПочтовоеСоединение = Неопределено Тогда
Почта = Новый ИнтернетПочта();
ПочтовыйПрофиль = ПолучитьПочтовыйПрофиль();
Попытка
Почта.Подключиться(ПочтовыйПрофиль);
Исключение
ОбщегоНазначения.СообщитьОбОшибке(ОписаниеОшибки(),,"Ошибка при подключению к почтовому профилю", СтатусСообщения.ОченьВажное);
Возврат ложь;
КонецПопытки;
Попытка
Почта.Послать(Сообщение);
Исключение
ОбщегоНазначения.СообщитьОбОшибке(ОписаниеОшибки(),,"Ошибка при отправке электронного письма на адрес "+пАдрес, СтатусСообщения.ОченьВажное);
Возврат ложь;
КонецПопытки;
Почта.Отключиться();
Иначе
Попытка
пПочтовоеСоединение.Послать(Сообщение);
Исключение
ОбщегоНазначения.СообщитьОбОшибке(ОписаниеОшибки(),,"Ошибка при отправке электронного письма на адрес "+пАдрес, СтатусСообщения.ОченьВажное);
Возврат ложь;
КонецПопытки;
КонецЕсли;
Возврат истина;
КонецФункции
Функция ПолучитьПочтовыйПрофиль() Экспорт
Профиль = Новый ИнтернетПочтовыйПрофиль;
Профиль.АдресСервераSMTP = "192.168.4.16";
Профиль.АдресСервераPOP3 = "192.168.4.16";
Профиль.Пользователь = "MailUser";
Профиль.Пароль = "MailPassword";
Профиль.ПортSMTP = 25;
Профиль.ПортPOP3 = 110;
Профиль.ВремяОжидания = 60;
Возврат Профиль;
КонецФункции
Для каждого АдресЭлектроннойПочты из масАдресаЭлектроннойПочты Цикл
Если ПустаяСтрока(АдресЭлектроннойПочты) Тогда
Сообщить("Для клиента "+Клиент+" не установлен адрес электронной почты");
Продолжить;
КонецЕсли;
УправлениеЭлектроннойПочтой
.ОтправитьЭлектронноеПисьмоHTML(
АдресЭлектроннойПочты,
"Sharashkyna Contora Incorporated",
"reportbot@SCI.com.ua",
"Задолженность по оплате комиссии",
ТекстСообщения,
Вложения);
КонецЦикла;
а если введены еще не все данные, а пользователь случайно вышел? такой отчет кому нибудь нужен? разве сто это мониторинг работы пользоваеля
Я саму идею считаю не совсем разумной. В чем сложность сформировать отчеты в программе - непонятно.
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua