Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
12 дек 2024, 13:34

Отправка письма определенным пользователям

Автор кто-то где-то, 09 окт 2022, 20:05

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

кто-то где-то

таблица значений.PNGВсем привет, помогите с решением задачи. Т.З. отправить письмо некоторым пользователям, если в базу добавили подразделение.
У нас есть регистр где записываются подразделения.  (администрация, ООО Ромашка) (Кухня, ООО У дома)
так же есть регистр где записываются пользователи у которых установлена огранизация (Вася Пупкин, ООО Ромашка) (Сережа Морозов, ООО У дома)
Я написал Запрос где соединил два регистра в одну таблицу.
помогите написать цикл чтобы Вася Пупкин получал подраздления в которых указан он, а Сережа Морозов получал свои подразделения.
Так же может один человек привязан к разным подразделениям
Соответвенно людей и подразделений у нас много.

Процедура ФормированиеПисьмаФинансистуОНовомПодразделенииНаСегодня() Экспорт
//ПолучитьОтветственныхБезУчетаОрганизацийНаСегодня - вызвать запрос
//ТЗ_ОтветственныеИПодразделенияНаСегодня - получить таблицу значений
ТЗ_ОтветственныеИПодразделенияНаСегодня = ПолучитьОтветственныхБезУчетаОрганизацийНаСегодня();
//вызвать учетку в базе
СистемнаяУчетнаяЗапись = РаботаСПочтовымиСообщениями.СистемнаяУчетнаяЗапись();
//Формируем параметры для отправки письма
//получаем пользователей с должностью  "Контролер финансирования"
ТЗ_ОтветственныеИПодразделенияНаСегодня = ПолучитьОтветственныхБезУчетаОрганизацийНаСегодня("Контролер финансирования");
//письмо
ПараметрыПисьма = Новый Структура;
АдресаЭП="";
//получатели
Для каждого СтрокаОтветственногоНаСегодня ИЗ ТЗ_ОтветственныеИПодразделенияНаСегодня цикл
АдресаЭП=АдресаЭП+СтрокаОтветственногоНаСегодня.АдресЭП+";";
КонецЦикла;   
    //письмо
Тема="";
Если АдресаЭП="" Тогда
АдресаЭП="admin@mail.ru";
Тема = "Назначь ответсвенного контролера финансирования! ";
КонецЕсли;
ПараметрыПисьма.Вставить("Кому",АдресаЭП);

Тема = Тема+"Оповещение: " + ТекущаяДата() + " На сегодня в 1С прилетели новые подразделения!";
ПараметрыПисьма.Вставить("Тема",Тема);

//Тело письма начало
ТелоПисьма = "<html>
|<head>
|<style>
|table, th, td {
|border: 2px solid black;
|border-collapse: collapse;
|padding: 5px;
|cellpadding: 5px;
|font: 12.0pt;
|font-family: 'Times New Roman'; }
|</style>
|</head>
|<table>
|<tr bgcolor='Orange'>
|<th>№</th> <th>Дата</th> <th>Подразделение</th> <th>Организация</th>
|</tr>";
Номер = 1;

Для каждого СтрокаНовоеПодразделениеНаСегодня ИЗ ТЗ_ОтветственныеИПодразделенияНаСегодня Цикл
ТелоПисьма=ТелоПисьма+"
| <tr>
| <td>"+Номер+"</td>
| <td align='center'>"+СтрокаНовоеПодразделениеНаСегодня.Дата+"</td>
| <td>"+СтрокаНовоеПодразделениеНаСегодня.Подразделение+"</td>
| <td>"+СтрокаНовоеПодразделениеНаСегодня.Подразделение.ГоловнаяОрганизация+"</td>
| </tr>";
Номер=Номер+1;
КонецЦикла;

ТелоПисьма=ТелоПисьма+"</table></html>";
//Тело письма конец

ПараметрыПисьма.Вставить("Тело",ТелоПисьма);
ПараметрыПисьма.Вставить("ТипТекста","HTML");

ПодготовленноеПисьмо = РаботаСПочтовымиСообщениями.ПодготовитьПисьмо(СистемнаяУчетнаяЗапись, ПараметрыПисьма);

Попытка
РезультатОтправкиПисьма = РаботаСПочтовымиСообщениями.ОтправитьПисьмо(СистемнаяУчетнаяЗапись, ПодготовленноеПисьмо);
Исключение
ЗаписьЖурналаРегистрации("ОтправкаПисьмаФинансовомуДиректору на почту "+ АдресаЭП, УровеньЖурналаРегистрации.Ошибка,,,
"Ошибка при отправке электронного письма: " + РезультатОтправкиПисьма.ОшибочныеПолучатели);
КонецПопытки;
КонецПроцедуры


кто-то где-то

В данном коде приходин письмо со всем подразделениями, а получатели как в таблице значения пишет по порядку через запятую.
Тестово выгружал по двум людям и обработка указала Васю и Сергея 182 раза

Теги:  

Похожие темы (5)

Рейтинг@Mail.ru

Поиск