Добрый день. Помогите, пожалуйста, разобраться. Программно заполняю контактную информацию в справочник Контрагенты (записываю в табличную часть). Если проверить результат с помощью запроса, то информация записывается в табл. часть Контактная информация. Но если в режиме Предприятия зайти в спр.Контрагенты на вкладке "Адреса, телефоны" данных НЕТ, т.е. их почему то не видно.
---
Да, Ирина, Вы правы. Я сама эту ошибку увидела.
заработало вот так:

```1c
    Тел=НовПартнер.КонтактнаяИнформация.Добавить();
    тел.тип=Перечисления.ТипыКонтактнойИнформации.Телефон ;
    Тел.Вид=Справочники.ВидыКонтактнойИнформации.ТелефонПартнера ;
    Тел.Представление= ЗначениеЯчейкиТелефон;
    тел.ВидДляСписка=Справочники.ВидыКонтактнойИнформации.ТелефонПартнера;
    тел.ЗначенияПолей="<КонтактнаяИнформация xmlns="http://www.v8.1c.ru/ssl/contactinfo" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Представление=""+ЗначениеЯчейкиТелефон+""><Состав xsi:type="НомерТелефона" КодСтраны="" КодГорода="" Номер=""+ЗначениеЯчейкиТелефон+"" Добавочный=""/></КонтактнаяИнформация>";
    тел.НомерТелефона=ЗначениеЯчейкиТелефон;
    тел.НомерТелефонаБезКодов=ЗначениеЯчейкиТелефон;
    НовПартнер.Записать();
```
---
вы смогли написать код по добавлению реквизитов, а посмотреть отладчиком код

```1c
    УправлениеКонтактнойИнформацией.ПриСозданииНаСервере(ЭтаФорма,
    Объект,
    "ГруппаКонтактнаяИнформация",
    ПоложениеЗаголовкаЭлементаФормы.Лево);
```

не смогли?
---
УправлениеКонтактнойИнформацией.ПриСозданииНаСервере

а отладчиком если проходить эту процедуру, то везде КонтактнаяИнформация=результату Запроса ПУСТАЯ почему-то, хотя объект видит правильно
---
значит вы не корректно формируете КИ программно
---
вот так:

```1c
    Тел=НовПартнер.КонтактнаяИнформация.Добавить();
    тел.тип=Перечисления.ТипыКонтактнойИнформации.Телефон ;
    Тел.Вид=Справочники.ВидыКонтактнойИнформации.ТелефонКонтрагента ;
    Тел.Представление= ЗначениеЯчейкиТелефон;
    тел.ВидДляСписка=Справочники.ВидыКонтактнойИнформации.ТелефонКонтрагента;
    тел.ЗначенияПолей="НомерТелефона="+ ЗначениеЯчейкиТелефон;
    тел.НомерТелефона=ЗначениеЯчейкиТелефон;
    тел.НомерТелефонаБезКодов=ЗначениеЯчейкиТелефон;
    НовПартнер.Записать();
```
---
я когда-то вносил так:

```1c
    СтрокаКИ = ИзменяемПартнер.КонтактнаяИнформация.Добавить();
    СтрокаКИ.Тип = Перечисления.ТипыКонтактнойИнформации.Телефон;
    СтрокаКИ.Вид = Справочники.ВидыКонтактнойИнформации.ТелефонПартнера;
    СтрокаКИ.ЗначенияПолей = "<КонтактнаяИнформация xmlns="http://www.v8.1c.ru/ssl/contactinfo" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Представление=""+Выборка.Представление+""><Состав xsi:type="НомерТелефона" КодСтраны="" КодГорода="" Номер=""+Выборка.Представление+"" Добавочный=""/></КонтактнаяИнформация>";
    СтрокаКИ.НомерТелефона = Выборка.Представление;
    СтрокаКИ.НомерТелефонаБезКодов = Выборка.Представление;
    СтрокаКИ.Представление = Выборка.Представление;
```

Где Выборка.Представление - строка с телефоном
---
"";
спасибо, но все также: КИ записывает, а на форме ее не видно
---
вы тёплое с мягкий не путаете?
у вас вопрос по контрагенту, а добавляете вы его к партнёру
---
Добавляю и партнеру, и контрагенту. Если их отдельно не вести-программа открывает форму партнеров, а не контрагентов. Поэтому и записываю к партнерам тоже, как посоветовали здесь на форуме
---
Партнеров используете? Если да, то вы видите там контактную информацию партнера(могу ошибаться)

Если нет то я, например, пишу так:

```1c
    АдресЭП = МылоКонтрагента;

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

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

P.S^ Контактную информацию для партнера можно записать по аналогии, только изменить "Вид" и соответственно объектом передавать "партнера"
---
АдресЭП = МылоКонтрагента;

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

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

спасибо :), но не помогло
---
Попробуйте записать КИ для партнера!
---
Вы можете посмотреть, при открытии формы из списка, у вас открывается форма элемента справочника "Контрагенты" или форма "ФормаЭлементаРеквизитыКонтрагента" справочника "Партнеры" (думаю что всё же вторая тогда запись КИ для партнера поможет)
---
Попробовала записать и для партнера - все равно не видит :(. А сама запросом проверяю и в партнере, и в контрагенте - есть данные
---
Тебе кажется когда открываешь справочник "Контрагенты", чудеса творятся? Нет, не чудеса, и при открытии справочника выполняется запрос. Так что, у тебя что-то не хватает. Можешь из предприятия создавать контактную информацию и с помощью запроса сравнить своя запись.
---
Спасибо) заработало
---
Если у вас здесь Партнер

```1c
    Тел=НовПартнер.КонтактнаяИнформация.Добавить();
```

То тут, я думаю, должно быть Справочники.ВидыКонтактнойИнформации.ТелефонПартнера, а не Контрагента

```1c
    Тел.Вид=Справочники.ВидыКонтактнойИнформации.ТелефонКонтрагента ;
```

А здесь

```1c
    тел.ЗначенияПолей="НомерТелефона="+ ЗначениеЯчейкиТелефон;
```

должно быть явно по-другому, к примеру

```1c
    тел.ЗначенияПолей="<КонтактнаяИнформация xmlns="http://www.v8.1c.ru/ssl/contactinfo" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Представление=""+ЗначениеЯчейкиТелефон+""><Состав xsi:type="НомерТелефона" КодСтраны="" КодГорода="" Номер=""+ЗначениеЯчейкиТелефон+"" Добавочный=""/></КонтактнаяИнформация>";
    ЗначениеЯчейкиТелефон = ЗначениеЯчейкиТелефон;
```
---
Да, Ирина, Вы правы. Я сама эту ошибку увидела.
заработало вот так:

```1c
    Тел=НовПартнер.КонтактнаяИнформация.Добавить();
    тел.тип=Перечисления.ТипыКонтактнойИнформации.Телефон ;
    Тел.Вид=Справочники.ВидыКонтактнойИнформации.ТелефонПартнера ;
    Тел.Представление= ЗначениеЯчейкиТелефон;
    тел.ВидДляСписка=Справочники.ВидыКонтактнойИнформации.ТелефонПартнера;
    тел.ЗначенияПолей="<КонтактнаяИнформация xmlns="http://www.v8.1c.ru/ssl/contactinfo" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Представление=""+ЗначениеЯчейкиТелефон+""><Состав xsi:type="НомерТелефона" КодСтраны="" КодГорода="" Номер=""+ЗначениеЯчейкиТелефон+"" Добавочный=""/></КонтактнаяИнформация>";
    тел.НомерТелефона=ЗначениеЯчейкиТелефон;
    тел.НомерТелефонаБезКодов=ЗначениеЯчейкиТелефон;
    НовПартнер.Записать();
```
---
Спасибо ВСЕМ за помощь!!!
---
Здравствуйте! Оксана подскажите какой из вариантов подошёл!
---
сообщение 17 (мое)- я написала как заработало
---
Запишите интерактивно и сравните с программной строкой. Сразу будет видно что не так.
---
Да уже разобрался!
---
```1c
    &НаСервере
    Процедура ЗаписатьКИНаСервере()

    ПустаяДата = Дата(1, 1, 1);

    Для Каждого СтрокаДерева Из ДеревоКонтактов.ПолучитьЭлементы() Цикл

    Для Каждого СтрокаВторая Из СтрокаДерева.ПолучитьЭлементы() Цикл

    Если СтрокаВторая.Изменить Тогда

    КонтактнаяИнформация = КонтактнаяИнформацияПоЗначениюРеквизитов(СтрокаВторая);

    КонтактнаяИнформация = УправлениеКонтактнойИнформациейСлужебный.СтруктураВСтрокуJSON(КонтактнаяИнформация);

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

    КонецЕсли;

    КонецЦикла;

    КонецЦикла;

    КонецПроцедуры

    // Возвращает XTDO объект типа "Контактная информация" по значению реквизитов.
    &НаСервере
    Функция КонтактнаяИнформацияПоЗначениюРеквизитов(Данные)

    Результат = УправлениеКонтактнойИнформациейКлиентСервер.ОписаниеНовойКонтактнойИнформации(ТипКонтактнойИнформации);

    Результат.CountryCode = Данные.КодСтраны;
    Результат.AreaCode = Данные.КодГорода;
    Результат.Number = Данные.НомерТелефона;
    Результат.ExtNumber = Данные.Добавочный;
    Результат.Value = УправлениеКонтактнойИнформациейКлиентСервер.СформироватьПредставлениеТелефона(Данные.КодСтраны, Данные.КодГорода, Данные.НомерТелефона, Данные.Добавочный, ");

    Результат.Comment = Данные.Комментарий;

    Возврат Результат;

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

Два часа разборов.
Из ключевого правильно указать вид КИ и указать пустую дату, там идет поиск по ней, но если используете историю, то придется переписать немного.