НаименованиеИАдресаЭлектроннойПочтыКонтакта (БСП)

Автор: 1С
ОбщийМодуль.ВзаимодействияВызовСервера
БСП

Наименование адреса электронной почты контакта. Получает наименование и адреса электронной почты контакта.

// Получает наименование и адреса электронной почты контакта.
//
// Параметры:
//  Контакт - Ссылка - контакт, для которого получаются данные.
//
// Возвращаемое значение:
//  Структура - содержит наименование контакта и список значений электронной почты контакта.
//
Функция НаименованиеИАдресаЭлектроннойПочтыКонтакта(Контакт) Экспорт
	
	Если Не ЗначениеЗаполнено(Контакт) 
		Или ТипЗнч(Контакт) = Тип("СправочникСсылка.СтроковыеКонтактыВзаимодействий") Тогда
		Возврат Неопределено;
	КонецЕсли;
	
	МетаданныеКонтакта = Контакт.Метаданные();
	
	Если МетаданныеКонтакта.Иерархический Тогда
		Если Контакт.ЭтоГруппа Тогда
			Возврат Неопределено;
		КонецЕсли;
	КонецЕсли;
	
	МассивОписанияТиповКонтактов = ВзаимодействияКлиентСервер.ОписанияКонтактов();
	ЭлементМассиваОписания = Неопределено;
	Для Каждого ЭлементМассива Из МассивОписанияТиповКонтактов Цикл
		
		Если ЭлементМассива.Имя = МетаданныеКонтакта.Имя Тогда
			ЭлементМассиваОписания = ЭлементМассива;
			Прервать;
		КонецЕсли;
		
	КонецЦикла;
	
	Если ЭлементМассиваОписания = Неопределено Тогда
		Возврат Неопределено;
	КонецЕсли;
	
	ИмяТаблицы = МетаданныеКонтакта.ПолноеИмя();
	
	ТекстЗапроса =
	"ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
	|	ЕСТЬNULL(ТаблицаКонтактнаяИнформация.АдресЭП,"""") КАК АдресЭП,
	|	СправочникКонтакт." + ЭлементМассиваОписания.ИмяРеквизитаПредставлениеКонтакта + " КАК Наименование
	|ИЗ
	|	" + ИмяТаблицы + " КАК СправочникКонтакт
	|		ЛЕВОЕ СОЕДИНЕНИЕ " + ИмяТаблицы + ".КонтактнаяИнформация КАК ТаблицаКонтактнаяИнформация
	|		ПО (ТаблицаКонтактнаяИнформация.Ссылка = СправочникКонтакт.Ссылка)
	|			И (ТаблицаКонтактнаяИнформация.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты))
	|ГДЕ
	|	СправочникКонтакт.Ссылка = &Контакт
	|ИТОГИ ПО
	|	Наименование";
	
	Запрос = Новый Запрос;
	Запрос.Текст = ТекстЗапроса;
	Запрос.УстановитьПараметр("Контакт", Контакт);
	Выборка = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
	
	Если Не Выборка.Следующий() Тогда
		Возврат Неопределено;
	КонецЕсли;
	
	Адреса = Новый Структура("Наименование,Адреса", Выборка.Наименование, Новый СписокЗначений);
	ВыборкаАдреса = Выборка.Выбрать();
	Пока ВыборкаАдреса.Следующий() Цикл
		Адреса.Адреса.Добавить(ВыборкаАдреса.АдресЭП);
	КонецЦикла;
	
	Возврат Адреса;
	
КонецФункции

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

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

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

ВсеКонтактыПоНачалуНаименованияСАдресамиЭлектроннойПочты (БСП)

ПолучитьАдресаЭлектроннойПочтыКонтакта (БСП)

ПолучитьАдресаЭлектроннойПочтыДляМассиваКонтактов (БСП)

ОбновитьАдресЭлектроннойПочты (БСП)

ОпределитьАдресЭлектроннойПочтыПользователя (БСП)

АдресаЭлектроннойПочтыИзСтроки (БСП)

СоздатьЗапросНаСменуПочты (БСП)

ДоменАдресаКонтактнойИнформации (БСП)

ПриСозданииЗапросаНаСменуПочты (БСП)

Обновлятор-1С: групповое (пакетное) обновление и обслуживание всех баз за один раз