Как получить адрес Организации в ЗУП-3.1 в новой редакции 3.1.8.112 ?
Извиняюсь, не хватает мозгов написать правильный запрос.
Заранее Большое Спасибо!
---
Верно, для одного объекта нужно использовать другую функцию:

```1c
    // Возвращает таблицу, содержащую контактную информацию объекта.
    //
    // Параметры:
    // СсылкаИлиОбъект - ЛюбаяСсылка, Объект - Ссылка или объект-владелец контактной информации (организация,
    // контрагент, партнер и т.д.).
    // ВидКонтактнойИнформации - СправочникСсылка.ВидыКонтактнойИнформации - Необязательный, отбор по виду контактной информации.
    // Дата - Дата - необязательный, дата с которой действует запись контактной информации,
    // используется при хранении истории изменения контактной информации.
    // Если владелец хранит историю изменений, то при несоответствии параметра
    // дате будет вызвано исключение.
    // ТолькоПредставление - Булево - Если Истина, то возвращает только представление, иначе таблицу значений.
    // Для получения представление рекомендуется использовать см. функцию ПредставлениеКонтактнойИнформацииОбъекта.
    //
    // Возвращаемое значение:
    // Строка - строковое представление значения, если параметр ТолькоПредставление установлен в Истина, иначе
    // ТаблицаЗначений - таблица с контактной информацией объекта содержащая колонки:
    // * СсылкиИлиОбъекты - Ссылка - Владелец контактной информации.
    // * Вид - СправочникСсылка.ВидыКонтактнойИнформации - Вид контактной информации.
    // * Тип - ПеречислениеСсылка.ТипыКонтактнойИнформации - Тип контактной информации.
    // * ЗначенияПолей - Строка - XML соответствующий XDTO пакету КонтактнаяИнформация или Адрес.
    // * Представление - Строка - Представление контактной информации.
    // * Дата - Дата - Дата с которой действует запись контактной информации.
    //
    Функция КонтактнаяИнформацияОбъекта(СсылкаИлиОбъект, ВидКонтактнойИнформации = Неопределено, Дата = Неопределено, ТолькоПредставление = Истина) Экспорт

    ТипОбъекта = ТипЗнч(СсылкаИлиОбъект);
    Если НЕ ОбщегоНазначения.ЭтоСсылка(ТипОбъекта) Тогда
    МетаданныеОбъекта = Метаданные.НайтиПоТипу(ТипОбъекта);
    Результат = НоваяКонтактнаяИнформация();
    Если МетаданныеОбъекта <> Неопределено
    И МетаданныеОбъекта.ТабличныеЧасти.Найти("КонтактнаяИнформация") <> Неопределено Тогда

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

    КонецЕсли;

    Если ТолькоПредставление Тогда
    Если Результат.Количество() > 0 Тогда
    Возврат Результат[0].Представление;
    КонецЕсли;
    Возврат ";
    КонецЕсли;

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

    КонецЕсли;

    Если ТолькоПредставление Тогда
    // Оставлено для обратной совместимости.
    МассивОбъектов = Новый Массив;
    МассивОбъектов.Добавить(СсылкаИлиОбъект.Ссылка);

    Если НЕ ЗначениеЗаполнено(ВидКонтактнойИнформации) Тогда
    Возврат ";
    КонецЕсли;

    КонтактнаяИнформацияОбъекта = КонтактнаяИнформацияОбъектов(МассивОбъектов,, ВидКонтактнойИнформации, Дата);

    Если КонтактнаяИнформацияОбъекта.Количество() > 0 Тогда
    Возврат КонтактнаяИнформацияОбъекта[0].Представление;
    КонецЕсли;

    Возврат ";
    Иначе
    СсылкиИлиОбъекты = Новый Массив;
    СсылкиИлиОбъекты.Добавить(СсылкаИлиОбъект);

    Если ТипЗнч(ВидКонтактнойИнформации) = Тип("СправочникСсылка.ВидыКонтактнойИнформации") Тогда
    ВидыКонтактнойИнформации = Новый Массив;
    ВидыКонтактнойИнформации.Добавить(ВидКонтактнойИнформации);
    ТипыКонтактнойИнформации = Новый Массив;
    ТипыКонтактнойИнформации.Добавить(ВидКонтактнойИнформации.Тип);
    Иначе
    ВидыКонтактнойИнформации = Неопределено;
    КонецЕсли;

    Возврат КонтактнаяИнформацияОбъектов(СсылкиИлиОбъекты, ТипыКонтактнойИнформации, ВидыКонтактнойИнформации, Дата);
    КонецЕсли;

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

Обратите внимание, что нужно заполнить все параметры для функции, т.е. СсылкаИлиОбъект, ВидКонтактнойИнформации, Дата, ТолькоПредставление, в вашем примере заполнены только 3, и у последнего не совпадает тип
---
Не обязательно писать запрос, можно взять типовую функцию из общего модуля "УправлениеКонтактнойИнформацией":

```1c
    // Возвращает таблицу, содержащую контактную информацию нескольких объектов.
    //
    // Параметры:
    // СсылкиИлиОбъекты - Массив - владельцы контактной информации.
    // ТипыКонтактнойИнформации - Массив, ПеречислениеСсылка.ТипыКонтактнойИнформации - Если указаны, то будет получена
    // контактную информацию только этих типов.
    // ВидыКонтактнойИнформации - Массив, СправочникСсылка.ВидыКонтактнойИнформации - Если указаны, то будет получена
    // контактную информацию только этих видов.
    // Дата - Дата - необязательный, дата с которой действует запись контактной информации,
    // используется при хранении истории изменения контактной информации.
    // Если владелец хранит историю изменений, то при несоответствии параметра
    // дате будет вызвано исключение.
    //
    // Возвращаемое значение:
    // ТаблицаЗначений - таблица с контактной информацией объектов содержащая колонки:
    // * СсылкиИлиОбъекты - Ссылка - Владелец контактной информации.
    // * Вид - СправочникСсылка.ВидыКонтактнойИнформации - Вид контактной информации.
    // * Тип - ПеречислениеСсылка.ТипыКонтактнойИнформации - Тип контактной информации.
    // * ЗначенияПолей - Строка - XML соответствующий XDTO пакету КонтактнаяИнформация или Адрес.
    // * Представление - Строка - Представление контактной информации.
    // * Дата - Дата - Дата с которой действует запись контактной информации.
    //
    Функция КонтактнаяИнформацияОбъектов(СсылкиИлиОбъекты, Знач ТипыКонтактнойИнформации = Неопределено, Знач ВидыКонтактнойИнформации = Неопределено, Дата = Неопределено) Экспорт

    Запрос = Новый Запрос;
    Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;

    Если ТипЗнч(ТипыКонтактнойИнформации) = Тип("ПеречислениеСсылка.ТипыКонтактнойИнформации") Тогда
    ТипыКонтактнойИнформации = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ТипыКонтактнойИнформации);
    КонецЕсли;

    Если ТипЗнч(ВидыКонтактнойИнформации) = Тип("СправочникСсылка.ВидыКонтактнойИнформации") Тогда
    ВидыКонтактнойИнформации = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ВидыКонтактнойИнформации);
    КонецЕсли;

    СоздатьВТКонтактнаяИнформация(Запрос.МенеджерВременныхТаблиц, СсылкиИлиОбъекты, ТипыКонтактнойИнформации, ВидыКонтактнойИнформации, Дата);

    Если ТипЗнч(Дата) = Тип("Дата") Тогда
    ДействуетС = "КонтактнаяИнформация.ДействуетС";
    Иначе
    ДействуетС = "ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)";
    КонецЕсли;

    Запрос.Текст =
    "ВЫБРАТЬ
    | КонтактнаяИнформация.Объект КАК Объект,
    | КонтактнаяИнформация.Вид КАК Вид,
    | КонтактнаяИнформация.Тип КАК Тип,
    | КонтактнаяИнформация.ЗначенияПолей КАК ЗначенияПолей,
    | " + ДействуетС +" КАК Дата,
    | КонтактнаяИнформация.Представление КАК Представление
    |ИЗ
    | ВТКонтактнаяИнформация КАК КонтактнаяИнформация";

    Возврат Запрос.Выполнить().Выгрузить();

    КонецФункции
```
---
Спасибо! Мне нравятся встроенные функции, только я еще не про все знаю и в данном случае у меня сообщение об ошибке. Я написал вот так:

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

Если можно, поправьте пожалуйста (я в УФ еще новичок). Я не пойму, почему "КонтактнаяИнформацияОбъектов" (во множественном числе), а не "КонтактнаяИнформацияОбъекта"?
Большое спасибо!
---
Верно, для одного объекта нужно использовать другую функцию:

```1c
    // Возвращает таблицу, содержащую контактную информацию объекта.
    //
    // Параметры:
    // СсылкаИлиОбъект - ЛюбаяСсылка, Объект - Ссылка или объект-владелец контактной информации (организация,
    // контрагент, партнер и т.д.).
    // ВидКонтактнойИнформации - СправочникСсылка.ВидыКонтактнойИнформации - Необязательный, отбор по виду контактной информации.
    // Дата - Дата - необязательный, дата с которой действует запись контактной информации,
    // используется при хранении истории изменения контактной информации.
    // Если владелец хранит историю изменений, то при несоответствии параметра
    // дате будет вызвано исключение.
    // ТолькоПредставление - Булево - Если Истина, то возвращает только представление, иначе таблицу значений.
    // Для получения представление рекомендуется использовать см. функцию ПредставлениеКонтактнойИнформацииОбъекта.
    //
    // Возвращаемое значение:
    // Строка - строковое представление значения, если параметр ТолькоПредставление установлен в Истина, иначе
    // ТаблицаЗначений - таблица с контактной информацией объекта содержащая колонки:
    // * СсылкиИлиОбъекты - Ссылка - Владелец контактной информации.
    // * Вид - СправочникСсылка.ВидыКонтактнойИнформации - Вид контактной информации.
    // * Тип - ПеречислениеСсылка.ТипыКонтактнойИнформации - Тип контактной информации.
    // * ЗначенияПолей - Строка - XML соответствующий XDTO пакету КонтактнаяИнформация или Адрес.
    // * Представление - Строка - Представление контактной информации.
    // * Дата - Дата - Дата с которой действует запись контактной информации.
    //
    Функция КонтактнаяИнформацияОбъекта(СсылкаИлиОбъект, ВидКонтактнойИнформации = Неопределено, Дата = Неопределено, ТолькоПредставление = Истина) Экспорт

    ТипОбъекта = ТипЗнч(СсылкаИлиОбъект);
    Если НЕ ОбщегоНазначения.ЭтоСсылка(ТипОбъекта) Тогда
    МетаданныеОбъекта = Метаданные.НайтиПоТипу(ТипОбъекта);
    Результат = НоваяКонтактнаяИнформация();
    Если МетаданныеОбъекта <> Неопределено
    И МетаданныеОбъекта.ТабличныеЧасти.Найти("КонтактнаяИнформация") <> Неопределено Тогда

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

    КонецЕсли;

    Если ТолькоПредставление Тогда
    Если Результат.Количество() > 0 Тогда
    Возврат Результат[0].Представление;
    КонецЕсли;
    Возврат ";
    КонецЕсли;

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

    КонецЕсли;

    Если ТолькоПредставление Тогда
    // Оставлено для обратной совместимости.
    МассивОбъектов = Новый Массив;
    МассивОбъектов.Добавить(СсылкаИлиОбъект.Ссылка);

    Если НЕ ЗначениеЗаполнено(ВидКонтактнойИнформации) Тогда
    Возврат ";
    КонецЕсли;

    КонтактнаяИнформацияОбъекта = КонтактнаяИнформацияОбъектов(МассивОбъектов,, ВидКонтактнойИнформации, Дата);

    Если КонтактнаяИнформацияОбъекта.Количество() > 0 Тогда
    Возврат КонтактнаяИнформацияОбъекта[0].Представление;
    КонецЕсли;

    Возврат ";
    Иначе
    СсылкиИлиОбъекты = Новый Массив;
    СсылкиИлиОбъекты.Добавить(СсылкаИлиОбъект);

    Если ТипЗнч(ВидКонтактнойИнформации) = Тип("СправочникСсылка.ВидыКонтактнойИнформации") Тогда
    ВидыКонтактнойИнформации = Новый Массив;
    ВидыКонтактнойИнформации.Добавить(ВидКонтактнойИнформации);
    ТипыКонтактнойИнформации = Новый Массив;
    ТипыКонтактнойИнформации.Добавить(ВидКонтактнойИнформации.Тип);
    Иначе
    ВидыКонтактнойИнформации = Неопределено;
    КонецЕсли;

    Возврат КонтактнаяИнформацияОбъектов(СсылкиИлиОбъекты, ТипыКонтактнойИнформации, ВидыКонтактнойИнформации, Дата);
    КонецЕсли;

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

Обратите внимание, что нужно заполнить все параметры для функции, т.е. СсылкаИлиОбъект, ВидКонтактнойИнформации, Дата, ТолькоПредставление, в вашем примере заполнены только 3, и у последнего не совпадает тип
---
Большое Спасибо! Теперь получилось.
---
Пожалуйста :)