ЗаполнитьПолучателей (БСП)

Автор: 1С
ОбщийМодуль.ШаблоныСообщений
БСП

Заполнить получателей. Добавляет актуальные адреса почты или номера телефонов из контактной информации объекта в список получателей.

// Добавляет актуальные адреса почты или номера телефонов из контактной информации объекта в список получателей.
// В выборку адресов почты или номеров телефонов попадают только актуальные сведения, 
// т.к. нет смысла отправлять письма или сообщения SMS на архивные данные. 
//
// Параметры:
//  ПолучателиПисьма        - ТаблицаЗначений - список получателей письма или сообщения SMS
//  ПредметСообщения        - Произвольный - объект-родитель, у которого есть реквизиты, содержащие контактную информацию.
//  ИмяРеквизита            - Строка - имя реквизита в объекте-родителе, из которого следует получить адреса почты или
//                                     номера телефонов.
//  ТипКонтактнойИнформации - ПеречислениеСсылка.ТипыКонтактнойИнформации - если тип Адрес, то будут добавлены адреса
//                                                                          почты, если Телефон, то номера телефонов.
//
Процедура ЗаполнитьПолучателей(ПолучателиПисьма, ПредметСообщения, ИмяРеквизита, ТипКонтактнойИнформации = Неопределено) Экспорт
	
	Если ТипЗнч(ПредметСообщения) = Тип("Структура") Тогда
		Предмет = ПредметСообщения.Предмет;
	Иначе
		Предмет = ПредметСообщения;
	КонецЕсли;
		
		
	Если Предмет.Метаданные().Реквизиты.Найти(ИмяРеквизита) = Неопределено Тогда
		Возврат;
	КонецЕсли;
	
	Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда
		МодульУправлениеКонтактнойИнформацией = ОбщегоНазначения.ОбщийМодуль("УправлениеКонтактнойИнформацией");
		
		Если Предмет[ИмяРеквизита] = Неопределено Тогда
			Возврат;
		КонецЕсли;
		
		Если ТипКонтактнойИнформации = Неопределено Тогда
			ТипКонтактнойИнформации = МодульУправлениеКонтактнойИнформацией.ТипКонтактнойИнформацииПоНаименованию("АдресЭлектроннойПочты");
		КонецЕсли;
		
		ОбъектыКонтактнойИнформации = Новый Массив;
		ОбъектыКонтактнойИнформации.Добавить(Предмет[ИмяРеквизита]);
		
		КонтактнойИнформация = МодульУправлениеКонтактнойИнформацией.КонтактнаяИнформацияОбъектов(ОбъектыКонтактнойИнформации, ТипКонтактнойИнформации,, ТекущаяДатаСеанса());
		Для каждого ЭлементКонтактнойИнформации Из КонтактнойИнформация Цикл
			Получатель = ПолучателиПисьма.Добавить();
			Если ТипКонтактнойИнформации = МодульУправлениеКонтактнойИнформацией.ТипКонтактнойИнформацииПоНаименованию("Телефон") Тогда
				Получатель.НомерТелефона = ЭлементКонтактнойИнформации.Представление;
				Получатель.Представление = Строка(ЭлементКонтактнойИнформации.Объект);
				Получатель.Контакт       = ОбъектыКонтактнойИнформации[0];
			Иначе
				Получатель.Адрес         = ЭлементКонтактнойИнформации.Представление;
				Получатель.Представление = Строка(ЭлементКонтактнойИнформации.Объект);
				Получатель.Контакт       = ОбъектыКонтактнойИнформации[0];
			КонецЕсли;
			
		КонецЦикла;
	КонецЕсли
	
КонецПроцедуры

///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются 
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////

Рекомендации

Похожие публикации

СформироватьСписокПолучателейРассылки (БСП)

ИнициализироватьСтруктуруПолучатели (БСП)

ВсеПолучатели (БСП)

ПослеОпределенияПолучателей (БСП)

РезультатАнализаОшибочныхПолучателей (БСП)

ПолучитьПредставленияПолучателейВходящегоПисьма (БСП)

ДополнитьПолучателей (БСП)

СократитьПолучателей (БСП)

TurboConf 6 - расширение Конфигуратора 1С