Здравствуйте, есть рабочий код по отправке сообщений, он предназначен для отправки одному менеджеру. Подскажите пожалуйста как правильнее будет сделать отправку по менеджеру и сотруднику. Нужно будет отправлять два практически одинаковых письма, разница лишь в "Добрый день, <Менеджер>" и "Добрый день, <Сотрудник>". То есть задача добавить еще одно письмо только уже по сотруднику.
Функция ВыполнитьРассылку(ДатаРассылки) Экспорт
СписокПолучивших = "";
Если ЭтотОбъект.Документы.Количество() = 1 Тогда
Возврат СписокПолучивших;
КонецЕсли;
МассивМенеджеров = Новый Массив();
Для каждого Стр Из ЭтотОбъект.Документы Цикл
Если Стр.ОК = Истина Тогда
МассивМенеджеров.Добавить(Стр.Ответственный);
КонецЕсли;
КонецЦикла;
// Избавляемся от возможных дублей:
МассивМенеджеров = МассивБезДублей(МассивМенеджеров);
ЗаголовокПрограммы = "";
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ЗС.Значение КАК Значение
|ИЗ
| Константа.ЗаголовокСистемы КАК ЗС";
Рез = Запрос.Выполнить();
Если НЕ Рез.Пустой() Тогда
Выборка = Рез.Выбрать();
Выборка.Следующий();
ЗаголовокПрограммы = Выборка.Значение;
КонецЕсли;
// Через эту директиву значение не получить:
//ЗаголовокПрограммы = Метаданные.Константы.ЗаголовокСистемы;
Если ЗаголовокПрограммы <> "" Тогда
ЗаголовокПрограммы = "Комплексная " + ЗаголовокПрограммы;
Иначе
ЗаголовокПрограммы = "Комплексная Общая";
КонецЕсли;
Для каждого Менеджер Из МассивМенеджеров Цикл
Если Менеджер <> Справочники.Пользователи.ПустаяСсылка() Тогда
ТекстСписка = "";
ТекстПисьма = "";
Адрес = "";
Счетчик = 1;
Для каждого СтрТЧ Из ЭтотОбъект.Документы Цикл
Если СтрТЧ.ОК И СтрТЧ.Ответственный = Менеджер Тогда
СчетчикСтрока = "" + Строка(Счетчик) + ". ";
ТекстСписка = ТекстСписка + СчетчикСтрока + СтрТЧ.ДокСсылка + "" + Символы.ПС;
Адрес = СтрТЧ.АдресОтветственного;
Счетчик = Счетчик + 1;
КонецЕсли;
КонецЦикла;
//ТекстПисьма = "Добрый день, " + Строка(Менеджер) + Символы.ПС + ""
// + Символы.ПС
// + "На " + Формат(ДатаРассылки, "ДФ=dd.MM.yyyy") + " г. за Вами числятся следующие не принятые оповещения:"
// + Символы.ПС
// + "" + Символы.ПС
// + ТекстСписка + Символы.ПС
// + "Занудный доброжелатель ИВС" + Символы.ПС
// + "(отвечать мне не надо, лучше исправьте документы)";
ТекстПисьма = ТекстПисьмаДляОтветственногоВФорматеHTML(Менеджер, ДатаРассылки, ТекстСписка, ЗаголовокПрограммы);
РезультатОтправки = СозданиеИОтправкаПисьма(Адрес, ТекстПисьма);
Если РезультатОтправки = Истина Тогда
СписокПолучивших = СписокПолучивших + Менеджер + Символы.ПС;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Возврат СписокПолучивших;
КонецФункции // ВыполнитьРассылку(ДатаРассылки) Экспорт
Функция ТекстПисьмаДляОтветственногоВФорматеHTML(Менеджер, ДатаРассылки, ТекстСписка, ЗаголовокПрограммы)
ТекстПисьма =
"<HT ML>
|<ST YLE TYPE = ""text/css"">
|#s1 {color: #000000; font-family: Arial; font-size: 14px}
|</STYLE>
|<BODY ID=s1>
|Добрый день, " + Менеджер + ".
|
|На " + Формат(ДатаРассылки, "ДФ=dd.MM.yyyy") + " г." + " в информационной базе: " + ЗаголовокПрограммы + "
|у следующих сотрудников будет отпуск" + "
|
|" + ТекстСписка + "
|Автоматическая электронная рассылка ИВС" + "
|(отвечать на это письмо не требуется)
|</BODY>
|</HTML>";
Возврат ТекстПисьма;
КонецФункции // ТекстПисьмаВФорматеHTML()
Функция МассивБезДублей(Массив) Экспорт
ТекущийИндекс = 0;
ВсегоЭлементов = Массив.Количество();
Пока ТекущийИндекс < ВсегоЭлементов Цикл
Индекс = ТекущийИндекс + 1;
Пока Индекс < ВсегоЭлементов Цикл
Если Массив[Индекс] = Массив[ТекущийИндекс] Тогда
Массив.Удалить(Индекс);
ВсегоЭлементов = ВсегоЭлементов - 1;
Иначе
Индекс = Индекс + 1;
КонецЕсли;
КонецЦикла;
ТекущийИндекс = ТекущийИндекс + 1;
КонецЦикла;
Возврат Массив;
КонецФункции
ПоказатьПо теме из базы знаний
- Telegram bot API - разбор документации с примерами
- Отправка писем на электронную почту типовой функцией 1С
- Шаблоны сообщений пользователю - подсистема БСП
- Отправка и получение почтовых сообщений
- WhatsApp-клиент для 1С - отправка/получение сообщений, изображений, смайлов, файлов из 1С через сервис GreenApi
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот