ПервоеЗначениеКонтактнойИнформацииОбъектаПоТипу (БСП)

Автор: 1С
ОбщийМодуль.УправлениеКонтактнойИнформациейСлужебный
БСП

Первое значение контактной информации объекта по типу. Получить первое значение определенного вида контактной информации у объекта.

// Получить первое значение определенного вида контактной информации у объекта.
//
// Параметры:
//     Ссылка                  - ЛюбаяСсылка - ссылка на объект-владелец контактной информации (организация,
//                                             контрагент, партнер и т.д.).
//     ТипКонтактнойИнформации - Перечисление.ТипыКонтактнойИнформации - параметры обработки.
//     Дата                     - Дата - Дата, на которую будет получено значение контактной информации.
//
// Возвращаемое значение:
//     Строка - строковое представление значения.
//
Функция ПервоеЗначениеКонтактнойИнформацииОбъектаПоТипу(Ссылка, ТипКонтактнойИнформации, Дата) Экспорт

	Результат = "";
	ПолноеИмя = Ссылка.Метаданные().ПолноеИмя();

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

КонецФункции

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

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

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

ТипВидаКонтактнойИнформации (БСП)

ТипКонтактнойИнформации (БСП)

ТипКонтактнойИнформацииПоНаименованию (БСП)

ВидыКонтактнойИнформацияОбъекта (БСП)

УстановитьКонтактнуюИнформациюОбъекта (БСП)

КонтактнаяИнформацияИзXML (БСП)

СоответствиеXDTOТиповКонтактнойИнформации (БСП)

СтруктураКонтактнойИнформацииПоТипу (БСП)

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