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