ПолучитьВсеКонтактыПоТелефону (БСП)

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

Получить все контакты по телефону. Формирует текст запроса для поиска контактов по телефону и выполняет его.

// Формирует текст запроса для поиска контактов по телефону и выполняет его.
//
// Параметры:
//  Телефон - Строка - строка, содержащая телефон.
//  Форма   - ФормаКлиентскогоПриложения - Форма, для которой выполняется операция.
//
// Возвращаемое значение:
//  Булево - Истина, если найден хотя бы один контакт.
//
Функция ПолучитьВсеКонтактыПоТелефону(Телефон,Форма) Экспорт
	
	МассивОписанияТиповКонтактов = ВзаимодействияКлиентСервер.ОписанияКонтактов();
	
	ТекстЗапроса =
	"ВЫБРАТЬ
	|	ТаблицаКонтактнойИнформации.Ссылка КАК Контакт,
	|	ПОДСТРОКА(ТаблицаКонтактнойИнформации.Представление, 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 (БСП)

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

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

ОбновитьТелефон (БСП)

ПозвонитьПоТелефону (БСП)

ПроверитьТелефонПоКоду (БСП)

1С Менеджер конфигураций