Как правильно добавить контактную информацию (БСП)
Теги: 1С,КонтактнаяИнформация,Адрес,БСП,Телефон

Фрагмент программного добавления контактной информации

# Код реализации

```1c
//вид контактной информации (адрес партнера, адрес контрагента, телефон партнера и т.д.)
ВидКИ = Справочники.ВидыКонтактнойИнформации.АдресПартнера;
//тип контактной информации (Адрес, Телефон, ЭлектроннаяПочта)
ТипКИ = ВидКИ.Тип;

//получение объекта XDTO по представлению контактной информации
ОбъектXDTOКИ = УправлениеКонтактнойИнформациейСлужебный.КонтактнаяИнформацияXDTOПоПредставлению("г. Минск, ул. Пинская, 28А", ТипКИ);
ЗначенияПолей =

//преобразование объекта XDTO в xml
УправлениеКонтактнойИнформациейСлужебный.КонтактнаяИнформацияXDTOВXML(ОбъектXDTOКИ);

//запись контактной информации в табличную часть объекта
//ПартнерОбъект - тип СправочникОбъект.ИмяСправочника
УправлениеКонтактнойИнформацией.ЗаписатьКонтактнуюИнформацию(ПартнерОбъект, ЗначенияПолей, ВидКИ, ТипКИ);
```

# Примечания

- Использовать служебный программный интерфейс стоит с большой осторожностью. А лучше вообще не использовать 😃

- (1) nixel2007, Почему?

- не работает, ни какой ошибки но и не заполняет

- УправлениеКонтактнойИнформацией.ЗаписатьКонтактнуюИнформацию(ПартнерОбъект, ЗначенияПолей, ВидКИ, ТипКИ);
не работает в ЗКГУ и БГУ, поэтому пишите вот так и будет вам счастье
для каждого СтрокаФЛ из Объект.ФизическиеЛица цикл

		ПочтаСтруктура = Новый Структура;
	    Вид = Справочники.ВидыКонтактнойИнформации.EMailФизическиеЛица;
		ВидДляФЛ = Справочники.ВидыКонтактнойИнформации.EmailФизическиеЛица;
	    ПочтаСтруктура.Вставить("Представление",  СтрокаФЛ.emailИзФайла);
		ПочтаСтруктура.Вставить("АдресЭП", СтрокаФЛ.emailИзФайла);
	    ЭПАДРЕС_XML = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияВXML(ПочтаСтруктура,"", Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты);
	    ЭПАДРЕС_JSON = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияВJSON(ЭПАДРЕС_XML);
		УправлениеКонтактнойИнформацией.ДобавитьКонтактнуюИнформацию(СтрокаФЛ.ФизЛицо, ЭПАДРЕС_JSON, ВидДляФЛ, ТекущаяДата(), Истина);
		

конеццикла;

- не сработало,  сработало так:

ДанныеЗаполненияКИ = Новый Структура("Представление,КонтактнаяИнформация,Комментарий,Значение, Корректный");
	СтруктураДанных = Новый Структура("Комментарий");
	Если ДанныеКонтрагента.Свойство("ЮридическийАдрес")
		И ДанныеКонтрагента.ЮридическийАдрес <> Неопределено Тогда
		
		ДанныеЗаполненияКИ.Представление = ДанныеКонтрагента.ЮридическийАдрес;
		ДанныеЗаполненияКИ.Комментарий = "";
		
				
		
		//////////////////////////////////////////////////////////////////////////////////////////////////////////////
		// 									В свободной форме   
		//////////////////////////////////////////////////////////////////////////////////////////////////////////////
		//вид контактной информации (адрес партнера, адрес контрагента, телефон партнера и т.д.)
		ВидКИ = Справочники.ВидыКонтактнойИнформации.ЮридическийАдресКонтрагента;
		//тип контактной информации (Адрес, Телефон, ЭлектроннаяПочта)
		ТипКИ = ВидКИ.Тип;
		
		//получение объекта XDTO по представлению контактной информации
		ОбъектXDTOКИ = УправлениеКонтактнойИнформациейЛокализация.КонтактнаяИнформацияXDTOПоПредставлению( ДанныеКонтрагента.ЮридическийАдрес, ТипКИ);
		ЗначенияПолей = 
		
		//преобразование объекта XDTO в xml
		УправлениеКонтактнойИнформациейЛокализация.КонтактнаяИнформацияXDTOВXML(ОбъектXDTOКИ);
		
		ДанныеЗаполненияКИ.Значение = ЗначенияПолей;
		
		ЗаполнитьЭлементКонтактнойИнформации(ВидКИ,ДанныеЗаполненияКИ);   
		
	КонецЕсли;


&НаСервере
Процедура ЗаполнитьЭлементКонтактнойИнформации(ВидКонтактнойИнформации, СтруктураДанных)
	
		Если СтруктураДанных = Неопределено 
		ИЛИ НЕ ЗначениеЗаполнено(СтруктураДанных.Представление) Тогда
		Возврат;
	КонецЕсли;
	
	Отбор  = Новый Структура("Вид", ВидКонтактнойИнформации);
	Строки = ЭтотОбъект.КонтактнаяИнформацияОписаниеДополнительныхРеквизитов.НайтиСтроки(Отбор);
	ДанныеСтроки = ?(Строки.Количество() = 0, Неопределено, Строки[0]);
	Если ДанныеСтроки = Неопределено Тогда
		Возврат;
	КонецЕсли;
	ДанныеСтроки.Представление = СтруктураДанных.Представление;
	ДанныеСтроки.Значение = СтруктураДанных.КонтактнаяИнформация;
	ЭтотОбъект[ДанныеСтроки.ИмяРеквизита] = СтруктураДанных.Представление;
КонецПроцедуры