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