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

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

Все контакты по началу наименования адресами электронной почты. Формирует текст запроса для поиска контактов по началу наименования с адресами электронной почты

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

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

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

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

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

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

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

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

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

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

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

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

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

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