Заполнить получателей. Добавляет актуальные адреса почты или номера телефонов из контактной информации объекта в список получателей.
// Добавляет актуальные адреса почты или номера телефонов из контактной информации объекта в список получателей.
// В выборку адресов почты или номеров телефонов попадают только актуальные сведения,
// т.к. нет смысла отправлять письма или сообщения SMS на архивные данные.
//
// Параметры:
// ПолучателиПисьма - ТаблицаЗначений - список получателей письма или сообщения SMS
// ПредметСообщения - Произвольный - объект-родитель, у которого есть реквизиты, содержащие контактную информацию.
// ИмяРеквизита - Строка - имя реквизита в объекте-родителе, из которого следует получить адреса почты или
// номера телефонов.
// ТипКонтактнойИнформации - ПеречислениеСсылка.ТипыКонтактнойИнформации - если тип Адрес, то будут добавлены адреса
// почты, если Телефон, то номера телефонов.
//
Процедура ЗаполнитьПолучателей(ПолучателиПисьма, ПредметСообщения, ИмяРеквизита, ТипКонтактнойИнформации = Неопределено) Экспорт
Если ТипЗнч(ПредметСообщения) = Тип("Структура") Тогда
Предмет = ПредметСообщения.Предмет;
Иначе
Предмет = ПредметСообщения;
КонецЕсли;
Если Предмет.Метаданные().Реквизиты.Найти(ИмяРеквизита) = Неопределено Тогда
Возврат;
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда
МодульУправлениеКонтактнойИнформацией = ОбщегоНазначения.ОбщийМодуль("УправлениеКонтактнойИнформацией");
Если Предмет[ИмяРеквизита] = Неопределено Тогда
Возврат;
КонецЕсли;
Если ТипКонтактнойИнформации = Неопределено Тогда
ТипКонтактнойИнформации = МодульУправлениеКонтактнойИнформацией.ТипКонтактнойИнформацииПоНаименованию("АдресЭлектроннойПочты");
КонецЕсли;
ОбъектыКонтактнойИнформации = Новый Массив;
ОбъектыКонтактнойИнформации.Добавить(Предмет[ИмяРеквизита]);
КонтактнойИнформация = МодульУправлениеКонтактнойИнформацией.КонтактнаяИнформацияОбъектов(ОбъектыКонтактнойИнформации, ТипКонтактнойИнформации,, ТекущаяДатаСеанса());
Для каждого ЭлементКонтактнойИнформации Из КонтактнойИнформация Цикл
Получатель = ПолучателиПисьма.Добавить();
Если ТипКонтактнойИнформации = МодульУправлениеКонтактнойИнформацией.ТипКонтактнойИнформацииПоНаименованию("Телефон") Тогда
Получатель.НомерТелефона = ЭлементКонтактнойИнформации.Представление;
Получатель.Представление = Строка(ЭлементКонтактнойИнформации.Объект);
Получатель.Контакт = ОбъектыКонтактнойИнформации[0];
Иначе
Получатель.Адрес = ЭлементКонтактнойИнформации.Представление;
Получатель.Представление = Строка(ЭлементКонтактнойИнформации.Объект);
Получатель.Контакт = ОбъектыКонтактнойИнформации[0];
КонецЕсли;
КонецЦикла;
КонецЕсли
КонецПроцедуры
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
СформироватьСписокПолучателейРассылки (БСП)
ИнициализироватьСтруктуруПолучатели (БСП)
ПослеОпределенияПолучателей (БСП)
РезультатАнализаОшибочныхПолучателей (БСП)
Канал FastCode 1C в Телеграм! Шаблоны кода, статьи, полезные советы, курсы по 1С (8К участников)