Первое значение контактной информации объекта по типу. Получить первое значение определенного вида контактной информации у объекта.
// Получить первое значение определенного вида контактной информации у объекта.
//
// Параметры:
// Ссылка - ЛюбаяСсылка - ссылка на объект-владелец контактной информации (организация,
// контрагент, партнер и т.д.).
// ТипКонтактнойИнформации - Перечисление.ТипыКонтактнойИнформации - параметры обработки.
// Дата - Дата - Дата, на которую будет получено значение контактной информации.
//
// Возвращаемое значение:
// Строка - строковое представление значения.
//
Функция ПервоеЗначениеКонтактнойИнформацииОбъектаПоТипу(Ссылка, ТипКонтактнойИнформации, Дата) Экспорт
Результат = "";
ПолноеИмя = Ссылка.Метаданные().ПолноеИмя();
Если СтрНачинаетсяС(ПолноеИмя , НСтр("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 (БСП)
Канал FastCode 1C в Телеграм! Шаблоны кода, статьи, полезные советы, курсы по 1С (8К участников)