Здравствуйте, собственно сабж: (все работает) НО если больше одного ящика, переносит только самый последний.
Например
1) в УТ добавили 2 ящика - в БП (был 1) в БП перенесся самый последний, затерся изначальный.
2) в БП этому же контрагенту добавили 1 который был, и еще один как в УТ. Теперь уже в УТ перенесся только 1 (самый последний).

WTF?
---
Теперь понятно,у меня просто этот реквизит бы без галки "несколько значений".
Придется менять правила загрузки в БП :
в модуле МенеджерОбменаЧерезУниверсальныйФормат13 есть процедура ЗаполнитьКонтактнуюИнформациюВПолученныхДанных(ПолученныеДанные, ДанныеXDTO) в ней используется процедура в конце
УправлениеКонтактнойИнформацией.ДобавитьКонтактнуюИнформацию(ПолученныеДанные, СокрЛП(СтрокаXDTO.ЗначенияПолей), ТекВидКИ);
Надо поменять на :
УправлениеКонтактнойИнформацией.ДобавитьКонтактнуюИнформацию(ПолученныеДанные, СокрЛП(СтрокаXDTO.ЗначенияПолей), ТекВидКИ, , Ложь);
Сейчас по умолчанию используется флаг Замещение и из за него перезаписывается конт. информация с одним типом и датой
---
В файле выгрузки при этом все ящики.
---
Кто такой ящик(и)?
---
адрес электронной почты
---
В стандартной УТ на вкладке "Адрес,телефоны" только один реквизит подходящий : "Электронная почта". Я так понимаю добавили новый вид контактной информации? Если можно то покажите скрин карточки контрагента пожалуйста
---
Правила свежие (май 2020 года), типовые. В УТ/БП все ок, типовые. Только проблема с загрузкой нескольких ящиков у контрагентов. Выгружаются все, а загружается только последний.
Нужны правила, или что исправить в типовых?
С КД никогда не работал, всегда хватало правил/настроек типового обмена.
*Ну все вроде разжевал.
---
Я в карточке контрагента вижу только один реквизит для ввода Электронной почты
---
Внизу кнопка
 потом "Электронная почта" и можно добавлять сколько хочешь.
---
Теперь понятно,у меня просто этот реквизит бы без галки "несколько значений".
Придется менять правила загрузки в БП :
в модуле МенеджерОбменаЧерезУниверсальныйФормат13 есть процедура ЗаполнитьКонтактнуюИнформациюВПолученныхДанных(ПолученныеДанные, ДанныеXDTO) в ней используется процедура в конце
УправлениеКонтактнойИнформацией.ДобавитьКонтактнуюИнформацию(ПолученныеДанные, СокрЛП(СтрокаXDTO.ЗначенияПолей), ТекВидКИ);
Надо поменять на :
УправлениеКонтактнойИнформацией.ДобавитьКонтактнуюИнформацию(ПолученныеДанные, СокрЛП(СтрокаXDTO.ЗначенияПолей), ТекВидКИ, , Ложь);
Сейчас по умолчанию используется флаг Замещение и из за него перезаписывается конт. информация с одним типом и датой
---
Спасибо.
Для БП - сделал через расширение (&Вместо). Теперь если в УТ 2 ящика, а в БП 5 то после обмена в БП становится тоже 2 ящика, это лучше чем 1, но все еще не совсем то =)

Для УТ сделал аналогично: только

```1c
    МенеджерОбменаЧерезУниверсальныйФормат -
    Процедура ЗагрузитьКонтактнуюИнформацию(ДанныеXDTO, ПолученныеДанные, ГруппаВидовКИ)

    ...
    УправлениеКонтактнойИнформацией.ДобавитьКонтактнуюИнформацию(ПолученныеДанные, СокрЛП(СтрокаXDTO.ЗначенияПолей), ТекВидКИ);
```

В Расширении:

```1c
    &Вместо("ЗагрузитьКонтактнуюИнформацию")
    Процедура Расш1_ЗагрузитьКонтактнуюИнформацию(ДанныеXDTO, ПолученныеДанные, ГруппаВидовКИ)
    Если Не (ДанныеXDTO.Свойство("КонтактнаяИнформация")
    И ЗначениеЗаполнено(ДанныеXDTO.КонтактнаяИнформация)) Тогда
    Возврат;
    КонецЕсли;

    Для Каждого СтрокаXDTO Из ДанныеXDTO.КонтактнаяИнформация Цикл
    ВидКИСтрокой = СокрЛП(СтрокаXDTO.ВидКонтактнойИнформации.Значение);
    НаименованиеКИ = СокрЛП(СтрокаXDTO.НаименованиеКонтактнойИнформации);

    ТекВидКИ = ВидКонтактнойИнформацииИзСтроки(ВидКИСтрокой, НаименованиеКИ, ГруппаВидовКИ);

    Если Не ЗначениеЗаполнено(ТекВидКИ) Тогда
    Продолжить;
    КонецЕсли;

    УправлениеКонтактнойИнформацией.ДобавитьКонтактнуюИнформацию(ПолученныеДанные, СокрЛП(СтрокаXDTO.ЗначенияПолей), ТекВидКИ,,ЛОЖЬ);
    КонецЦикла;
    КонецПроцедуры
```

Продебажил, процедура отрабатывает, в

```1c
    Процедура ДобавитьКонтактнуюИнформацию(СсылкаИлиОбъект, ЗначениеИлиПредставление, ВидКонтактнойИнформации, Дата = Неопределено, Замещать = Истина) Экспорт

    ...

    Если Замещать Тогда
    НайденныеСтроки = НайтиСтрокиКонтактнойИнформации(ВидКонтактнойИнформации, Дата, КонтактнаяИнформация);
    Для Каждого СтрокаТабличнойЧасти Из НайденныеСтроки Цикл
    КонтактнаяИнформация.Удалить(СтрокаТабличнойЧасти);
    КонецЦикла;
    СтрокаКонтактнойИнформации = КонтактнаяИнформация.Добавить();
    Иначе
    Если ЗапрещенВводНесколькихЗначений(ВидКонтактнойИнформации, КонтактнаяИнформация, Дата) Тогда
    Если ЭтоКонтактнаяИнформацияВXML Тогда
    СтрокаКонтактнойИнформации = Объект.КонтактнаяИнформация.Найти(ЗначениеИлиПредставление, "ЗначенияПолей");
    ИначеЕсли ЭтоКонтактнаяИнформацияВJSON Тогда
    СтрокаКонтактнойИнформации = Объект.КонтактнаяИнформация.Найти(ЗначениеИлиПредставление, "Значение");
    Иначе
    СтрокаКонтактнойИнформации = Объект.КонтактнаяИнформация.Найти(ЗначениеИлиПредставление, "Представление");
    КонецЕсли;
    Если СтрокаКонтактнойИнформации <> Неопределено Тогда
    Возврат; // Допускается только одно значение этого вида контактной информации.
    КонецЕсли;
    КонецЕсли;
    СтрокаКонтактнойИнформации = КонтактнаяИнформация.Добавить();
    КонецЕсли;
```

В Иначе заходит, НО всеравно только 1 ящик после обмена остается.
---
UPD.
Ящики все создаются, но чего-то не хватает - в самой карточке отображается только 1. Консолью запросов - выводит все.
---
UPD 2:
В УТ еще же Партнеры есть, так при обмене/синхронизации, разработчики зачем-то удаление/добавление в одном цикле сделали... (ну да быстрее же). В расширение добавил 2 процедуру:

```1c
    &Вместо("ОтложеннаяОбработка_Контрагенты")
    Процедура Расш1_ОтложеннаяОбработка_Контрагенты(Объект, КомпонентыОбмена, ОбъектМодифицирован)
    ...
    //Для Каждого СтрокаКИКонтрагента Из Объект.КонтактнаяИнформация Цикл
    // ВидКИПартнера = ВидКИПартнераПоВидуКИКонтрагента(СтрокаКИКонтрагента.Вид, ИспользоватьПартнеровКакКонтрагентов);
    // Если ВидКИПартнера = Неопределено Тогда
    // Продолжить;
    // КонецЕсли;
    //
    // СтрокиКИПартнера = ПартнерОбъект.КонтактнаяИнформация.НайтиСтроки(Новый Структура("Вид", ВидКИПартнера));
    // Для Каждого СтрокаКИПартнера Из СтрокиКИПартнера Цикл
    // ПартнерОбъект.КонтактнаяИнформация.Удалить(СтрокаКИПартнера);
    // КонецЦикла;
    //
    // СтрокаКИПартнера = ПартнерОбъект.КонтактнаяИнформация.Добавить();
    // ЗаполнитьЗначенияСвойств(СтрокаКИПартнера, СтрокаКИКонтрагента);
    // СтрокаКИПартнера.Вид = ВидКИПартнера;
    //КонецЦикла;

    //разделил - сперва все удалим
    Для Каждого СтрокаКИКонтрагента Из Объект.КонтактнаяИнформация Цикл
    ВидКИПартнера = ВидКИПартнераПоВидуКИКонтрагента(СтрокаКИКонтрагента.Вид, ИспользоватьПартнеровКакКонтрагентов);
    Если ВидКИПартнера = Неопределено Тогда
    Продолжить;
    КонецЕсли;

    СтрокиКИПартнера = ПартнерОбъект.КонтактнаяИнформация.НайтиСтроки(Новый Структура("Вид", ВидКИПартнера));
    Для Каждого СтрокаКИПартнера Из СтрокиКИПартнера Цикл
    ПартнерОбъект.КонтактнаяИнформация.Удалить(СтрокаКИПартнера);
    КонецЦикла;
    КонецЦикла;

    //потом все добавим
    Для Каждого СтрокаКИКонтрагента Из Объект.КонтактнаяИнформация Цикл
    ВидКИПартнера = ВидКИПартнераПоВидуКИКонтрагента(СтрокаКИКонтрагента.Вид, ИспользоватьПартнеровКакКонтрагентов);
    Если ВидКИПартнера = Неопределено Тогда
    Продолжить;
    КонецЕсли;

    СтрокаКИПартнера = ПартнерОбъект.КонтактнаяИнформация.Добавить();
    ЗаполнитьЗначенияСвойств(СтрокаКИПартнера, СтрокаКИКонтрагента);
    СтрокаКИПартнера.Вид = ВидКИПартнера;
    КонецЦикла;
    ...
    КонецПроцедуры
```

Теперь все работает как надо ;)

Еще раз bill33 спасибо за верное направление.
---
Если в БП отображается только 1 почт. ящик. посмотрите стоит ли галка ?
---
Не, не, в БП то все ок. Это в УТ - консоль - все показывает, а в карточке 1 отображается.
*Если руками вбивать, то отобразятся только те какие руками вбили.
Разбираюсь в чем разница, между синхр. созданием и ручным...
---
Странно, у меня в УТ все норм загружается, и видны все адреса
---
11.4.11.102 ?
---
11.4.12.81 )))
---
а процедура такая же? точнее алгоритм.
---
В процедуре ОтложеннаяОбработка_Контрагенты все по другому, процедура ДобавитьКонтактнуюИнформацию такая же