Код запроса:

```1c
    Запрос1 = Новый Запрос();
    Запрос1.УстановитьПараметр("ТекущийДокумент", ТекущийДокумент);
    Запрос1.Текст =
    "ВЫБРАТЬ
    | ПриемИПередачаВРемонт.Контрагент.КонтактнаяИнформация.(
    | Представление КАК Представление,
    | АдресЭП КАК АдресЭП,
    | НомерТелефона КАК НомерТелефона
    | )КАК ЧтоТо
    |ИЗ
    | Документ.ПриемИПередачаВРемонт КАК ПриемИПередачаВРемонт
    |ГДЕ
    | ПриемИПередачаВРемонт.Ссылка = &ТекущийДокумент";

    Шапка1 = Запрос1.Выполнить().Выбрать();
    Шапка1.Следующий();
    ОбластьМакета.Параметры.Контрагент = Шапка1.ЧтоТо.Представление;
    ОбластьМакета.Параметры.ТелефонКонтрагента = Шапка1.ЧтоТо.АдресЭП;
    ОбластьМакета.Параметры.EmailКонтрагента = Шапка1.ЧтоТо.НомерТелефона;
```

Ошибка: поле объекта "Представление" не найдено.

Вопрос: как правильно обратиться к этим данным?
---
Максимумы помогли, спасибо)

```1c
    Запрос1 = Новый Запрос();
    Запрос1.УстановитьПараметр("Ссылка", ТекущийДокумент.Контрагент.КонтактноеЛицо);
    Запрос1.Текст =
    "ВЫБРАТЬ
    | МАКСИМУМ(КонтактныеЛицаКонтактнаяИнформация.АдресЭП) КАК АдресЭП,
    | МАКСИМУМ(КонтактныеЛицаКонтактнаяИнформация.НомерТелефона) КАК НомерТелефона,
    | КонтактныеЛицаКонтактнаяИнформация.Ссылка.Представление КАК Представление
    |ИЗ
    | Справочник.КонтактныеЛица.КонтактнаяИнформация КАК КонтактныеЛицаКонтактнаяИнформация
    |ГДЕ
    | КонтактныеЛицаКонтактнаяИнформация.Ссылка = &Ссылка
    |СГРУППИРОВАТЬ ПО
    | КонтактныеЛицаКонтактнаяИнформация.Ссылка.Представление";

    Шапка1 = Запрос1.Выполнить().Выбрать();
    Шапка1.Следующий();
    ОбластьМакета.Параметры.Контрагент = Шапка1.Представление;
    ОбластьМакета.Параметры.ТелефонКонтрагента = Шапка1.НомерТелефона;
    ОбластьМакета.Параметры.EmailКонтрагента = Шапка1.АдресЭП;
```
---
вы на выходе в поле "ЧтоТо" получаете таблицу значений, соответственно обращаться нужно ОбластьМакета.Параметры.Контрагент = Шапка1.ЧтоТо[0].Представление (или выгрузить ее и обойти циклом). В таком случае лучше сделать проверку что ТЗ не пуста.
А вообще проще "ВЫБРАТЬ Т.Контрагент.КонтактнаяИнформация.Представление, Т.Контрагент.КонтактнаяИнформация.Представление, Т.Контрагент.КонтактнаяИнформация.АдресЭП,Т.Контрагент.КонтактнаяИнформация.НомерТелефона ИЗ Документ.ПриемИПередачаВРемонт КАК Т ГДЕ Т.Ссылка = &ТекущийДокумент"
---
Вариант 1: ошибка "Поле Контрагент не найдено".

```1c
    "ВЫБРАТЬ
    | Т.Контрагент.КонтактнаяИнформация.Представление,
    | Т.Контрагент.КонтактнаяИнформация.АдресЭП,
    | Т.Контрагент.КонтактнаяИнформация.НомерТелефона
    |ИЗ
    | Документ.ПриемИПередачаВРемонт КАК Т
    |ГДЕ
    | Т.Ссылка = &ТекущийДокумент";

    Шапка1 = Запрос1.Выполнить().Выбрать();
    Шапка1.Следующий();
    ОбластьМакета.Параметры.Контрагент = Шапка1.Контрагент.КонтактнаяИнформация.Представление;
    ОбластьМакета.Параметры.ТелефонКонтрагента = Шапка1.Контрагент.КонтактнаяИнформация.АдресЭП;
    ОбластьМакета.Параметры.EmailКонтрагента = Шапка1.Контрагент.КонтактнаяИнформация.НомерТелефона;
```

Вариант 2: ошибок нет. результата тоже, но похоже это уже совсем другая история..

```1c
    "ВЫБРАТЬ
    | Т.Контрагент.КонтактнаяИнформация.Представление КАК Представление,
    | Т.Контрагент.КонтактнаяИнформация.АдресЭП КАК АдресЭП,
    | Т.Контрагент.КонтактнаяИнформация.НомерТелефона КАК НомерТелефона
    |ИЗ
    | Документ.ПриемИПередачаВРемонт КАК Т
    |ГДЕ
    | Т.Ссылка = &ТекущийДокумент";

    Шапка1 = Запрос1.Выполнить().Выбрать();
    Шапка1.Следующий();
    ОбластьМакета.Параметры.Контрагент = Шапка1.Представление;
    ОбластьМакета.Параметры.ТелефонКонтрагента = Шапка1.АдресЭП;
    ОбластьМакета.Параметры.EmailКонтрагента = Шапка1.НомерТелефона;
```
---
через левое по контрачу к рс.контактнаяИнфа на дату дока
---
Не знаю как у вас в конфигурации, но возможно Контактная информация это РегистрСведений?

Если нет, то левым соединением, добавте таблицу из справочника Контрагентов!
---
Лучше через левое соединение
---
пипец какой-то

выбрать бла, бла, бла из БлаБлаБла
где контрагент = &Контрагент

запрос установить ("Контратент",ТекущийДокумент.Контратент)
---
У меня кровь из глаз идет уже.

```1c
    ВЫБРАТЬ
    КонтактнаяИнформация.Ссылка.Представление КАК Контрагент,
    КонтактнаяИнформация.АдресЭП,
    КонтактнаяИнформация.НомерТелефона
    ИЗ
    Справочник.Контрагенты.КонтактнаяИнформация КАК КонтактнаяИнформация
    ГДЕ
    КонтактнаяИнформация.Ссылка = &Ссылка
```

```1c
    Запрос.УстановитьПараметр("Ссылка", ТекущийДокумент.Контрагент);
```
---
ТекущийДокумент.Контрагент - это ссылка на контрагента, а КонтактнаяИнформация.Ссылка - это ссылка на табличную часть, что ни одно и то же..
---
это где такому учат? У табличной части нет ссылки. Это ссылка на владельца табличной части. В данном случае на справочник Контрагент.
---
Мда.. все и вправду очень плохо...

КонтактнаяИнформация.Ссылка - это ссылка на табличную часть

А владельцем этой табличной части кто является? Или табличную часть Вы рассматриваете как самостоятельную таблицу?
---
Может так?

```1c
    ВЫБРАТЬ
    КонтрагентыКонтактнаяИнформация.Представление,
    КонтрагентыКонтактнаяИнформация.НомерТелефона,
    КонтрагентыКонтактнаяИнформация.АдресЭП
    ИЗ
    Документ.ПриемИПередачаВРемонт КАК ПриемИПередачаВРемонт
    ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты.КонтактнаяИнформация КАК КонтрагентыКонтактнаяИнформация
    ПО ПриемИПередачаВРемонт.Контрагент = КонтрагентыКонтактнаяИнформация.Ссылка
    ГДЕ
    ПриемИПередачаВРемонт.Ссылка = &ТекущийДокумент
```
---
```1c
    ВЫБРАТЬ
    | ПриемИПередачаВРемонт.Представление КАК Представление,
    | ПриемИПередачаВРемонт.АдресЭП КАК АдресЭП,
    | ПриемИПередачаВРемонт.НомерТелефона КАК НомерТелефона
    |ИЗ
    | Документ.ПриемИПередачаВРемонт.КонтактнаяИнформация КАК ПриемИПередачаВРемонт
    |ГДЕ
    | ПриемИПередачаВРемонт.Ссылка = &ТекущийДокумент"

    Шапка1 = Запрос1.Выполнить().Выбрать();
    Шапка1.Следующий();
    ОбластьМакета.Параметры.Контрагент = Шапка1.Представление;
    ОбластьМакета.Параметры.ТелефонКонтрагента = Шапка1.АдресЭП;
    ОбластьМакета.Параметры.EmailКонтрагента = Шапка1.НомерТелефона;
```
---
Вариант 2: ошибок нет. результата тоже, но похоже это уже совсем другая история..

```1c
    "ВЫБРАТЬ
    | Т.Контрагент.КонтактнаяИнформация.Представление КАК Представление,
    | Т.Контрагент.КонтактнаяИнформация.АдресЭП КАК АдресЭП,
    | Т.Контрагент.КонтактнаяИнформация.НомерТелефона КАК НомерТелефона
    |ИЗ
    | Документ.ПриемИПередачаВРемонт КАК Т
    |ГДЕ
    | Т.Ссылка = &ТекущийДокумент";

    Шапка1 = Запрос1.Выполнить().Выбрать();
    Шапка1.Следующий();
    ОбластьМакета.Параметры.Контрагент = Шапка1.Представление;
    ОбластьМакета.Параметры.ТелефонКонтрагента = Шапка1.АдресЭП;
    ОбластьМакета.Параметры.EmailКонтрагента = Шапка1.НомерТелефона;
```

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

```1c
    "ВЫБРАТЬ
    | Т.Контрагент.КонтактнаяИнформация.Представление КАК Представление,
    | Т.Контрагент.КонтактнаяИнформация.АдресЭП КАК АдресЭП,
    | Т.Контрагент.КонтактнаяИнформация.НомерТелефона КАК НомерТелефона
    |ИЗ
    | Документ.ПриемИПередачаВРемонт КАК Т
    |ГДЕ
    | Т.Ссылка = &ТекущийДокумент";

    ТаблицаКИ = Запрос1.Выполнить().Выгрузить();
```

И посмотрите в отладчике что лежит в этой таблице. А дальше будет видно что и откуда брать (если конечно таблица не пуста).

ЗЫ: по вашему "не рабочему" варианту, конечно он не рабочий, кто сказал, что в результате запроса должно быть поле "контрагент"? Ну и самому обозначать алиасы полей - не лишнее дело.
---
Так.. Спасибо всем огромное, всё пробую, но пока результат не достигнут..

Вот текущий код:

```1c
    Запрос1 = Новый Запрос();
    Запрос1.УстановитьПараметр("ТекущийДокумент", ТекущийДокумент);
    Запрос1.Текст =
    "ВЫБРАТЬ
    | Т.Контрагент.КонтактноеЛицо.Представление КАК Представление,
    | Т.Контрагент.КонтактноеЛицо.КонтактнаяИнформация.АдресЭП КАК АдресЭП,
    | Т.Контрагент.КонтактноеЛицо.КонтактнаяИнформация.НомерТелефона КАК НомерТелефона
    |ИЗ
    | Документ.ПриемИПередачаВРемонт КАК Т
    |ГДЕ
    | Т.Ссылка = &ТекущийДокумент";

    Шапка1 = Запрос1.Выполнить().Выбрать();
    Шапка1.Следующий();
    ОбластьМакета.Параметры.Контрагент = Шапка1.Представление;
    ОбластьМакета.Параметры.ТелефонКонтрагента = Шапка1.АдресЭП;
    ОбластьМакета.Параметры.EmailКонтрагента = Шапка1.НомерТелефона;
```

Представление заполняется, а вот адрес и номер телефона из табличной части нет..
---
почему вы так уверены, что в табличной части всего одна строка и она обязательно заполнена? И переделайте уже запрос как в (8), мне очень жалко базу, над которой так издеваются.
---
нельзя как в (8).

{Документ.ПриемИПередачаВРемонт.МодульМенеджера(1357)}: Поле объекта не обнаружено (Представление)
        ОбластьМакета.Параметры.Контрагент = Шапка1.Представление;

Так работают эти люди (ремонт ноутбуков), только одно контактное лицо и всегда есть. у них уже база на 10к клиентов, везде так..

Код попробовал. Потом чуть поправил, но не помогло..

```1c
    Запрос1 = Новый Запрос();
    Запрос1.УстановитьПараметр("Ссылка", ТекущийДокумент.Контрагент);
    Запрос1.Текст =
    "ВЫБРАТЬ
    | КонтактныеЛицаКонтактнаяИнформация.АдресЭП КАК АдресЭП,
    | КонтактныеЛицаКонтактнаяИнформация.НомерТелефона КАК НомерТелефона,
    | КонтактныеЛицаКонтактнаяИнформация.Ссылка.Представление КАК Представление
    |ИЗ
    | Справочник.КонтактныеЛица.КонтактнаяИнформация КАК КонтактныеЛицаКонтактнаяИнформация
    |ГДЕ
    | КонтактныеЛицаКонтактнаяИнформация.Ссылка = &Ссылка";

    Шапка1 = Запрос1.Выполнить().Выбрать();
    Шапка1.Следующий();
    ОбластьМакета.Параметры.Контрагент = Шапка1.Представление;
    ОбластьМакета.Параметры.ТелефонКонтрагента = Шапка1.АдресЭП;
    ОбластьМакета.Параметры.EmailКонтрагента = Шапка1.НомерТелефона;
```
---
```1c
    КонтактныеЛицаКонтактнаяИнформация.Ссылка.Представление КАК Представление
```

а может все таки

```1c
    КонтактныеЛицаКонтактнаяИнформация.Представление КАК Представление
```
---
это представление названия типа контактной информации (Телефон, Эл. Почта и т.д.)
---
в начале было: ПриемИПередачаВРемонт.Контрагент.КонтактнаяИнформация.
Теперь контактные лица.
Вот для КонтактныеЛица:

```1c
    Запрос1 = Новый Запрос();
    Запрос1.УстановитьПараметр("Ссылка", ТекущийДокумент.Контрагент.КонтактноеЛицо);
    Запрос1.Текст =
    "ВЫБРАТЬ
    | КонтактныеЛицаКонтактнаяИнформация.Ссылка.Представление КАК Представление,
    | МАКСИМУМ(КонтактныеЛицаКонтактнаяИнформация.АдресЭП) КАК АдресЭП,
    | МАКСИМУМ(КонтактныеЛицаКонтактнаяИнформация.НомерТелефона) КАК НомерТелефона
    |ИЗ
    | Справочник.КонтактныеЛица.КонтактнаяИнформация КАК КонтактныеЛицаКонтактнаяИнформация
    |ГДЕ
    | КонтактныеЛицаКонтактнаяИнформация.Ссылка = &Ссылка
    |
    |СГРУППИРОВАТЬ ПО
    | КонтактныеЛицаКонтактнаяИнформация.Ссылка.Представление";

    Шапка1 = Запрос1.Выполнить().Выбрать();
    Если Шапка1.Следующий() Тогда
    ОбластьМакета.Параметры.Контрагент = Шапка1.Представление; // тут контактное лицо, или таки контрагент нужен?
    ОбластьМакета.Параметры.ТелефонКонтрагента = Шапка1.НомерТелефона;
    ОбластьМакета.Параметры.EmailКонтрагента = Шапка1.АдресЭП;
    КонецЕсли;
```
---
Повторяю. Табличная часть - одна. Телефон может быть в одной строке, емаил - в другой. При открытии карточки контрагента (у меня в УТ по крайней мере) по этой табличной части проходится цикл и заполняются поля формы. Попробуй сделать как в (22) - вытащить максимумы по этим полям и сгруппировать по ссылке. Или по представлению, если даст.
---
Максимумы помогли, спасибо)

```1c
    Запрос1 = Новый Запрос();
    Запрос1.УстановитьПараметр("Ссылка", ТекущийДокумент.Контрагент.КонтактноеЛицо);
    Запрос1.Текст =
    "ВЫБРАТЬ
    | МАКСИМУМ(КонтактныеЛицаКонтактнаяИнформация.АдресЭП) КАК АдресЭП,
    | МАКСИМУМ(КонтактныеЛицаКонтактнаяИнформация.НомерТелефона) КАК НомерТелефона,
    | КонтактныеЛицаКонтактнаяИнформация.Ссылка.Представление КАК Представление
    |ИЗ
    | Справочник.КонтактныеЛица.КонтактнаяИнформация КАК КонтактныеЛицаКонтактнаяИнформация
    |ГДЕ
    | КонтактныеЛицаКонтактнаяИнформация.Ссылка = &Ссылка
    |СГРУППИРОВАТЬ ПО
    | КонтактныеЛицаКонтактнаяИнформация.Ссылка.Представление";

    Шапка1 = Запрос1.Выполнить().Выбрать();
    Шапка1.Следующий();
    ОбластьМакета.Параметры.Контрагент = Шапка1.Представление;
    ОбластьМакета.Параметры.ТелефонКонтрагента = Шапка1.НомерТелефона;
    ОбластьМакета.Параметры.EmailКонтрагента = Шапка1.АдресЭП;
```
---
если достаточно только одного номера телефона и эл. почты:

```1c
    Запрос1 = Новый Запрос();
    Запрос1.УстановитьПараметр("Ссылка", ТекущийДокумент.Контрагент);
    Запрос1.Текст =
    "ВЫБРАТЬ
    | КонтактнаяИнформация.Ссылка.Представление КАК Контрагент,
    | МАКСИМУМ(КонтактнаяИнформация.АдресЭП) КАК АдресЭП,
    | МАКСИМУМ(КонтактнаяИнформация.НомерТелефона) КАК НомерТелефона
    |ИЗ
    | Справочник.Контрагенты.КонтактнаяИнформация КАК КонтактнаяИнформация
    |ГДЕ
    | КонтактнаяИнформация.Ссылка = &Ссылка
    |
    |СГРУППИРОВАТЬ ПО
    | КонтактнаяИнформация.Ссылка.Представление";

    Шапка1 = Запрос1.Выполнить().Выбрать();
    Если Шапка1.Следующий() Тогда
    ОбластьМакета.Параметры.Контрагент = Шапка1.Представление;
    ОбластьМакета.Параметры.ТелефонКонтрагента = Шапка1.НомерТелефона;
    ОбластьМакета.Параметры.EmailКонтрагента = Шапка1.АдресЭП;
    КонецЕсли;
```
---
```1c
    Запрос1.УстановитьПараметр("Ссылка", ТекущийДокумент.Контрагент.КонтактноеЛицо);
```
---
могу предположить, что
```1c
    ТекущийДокумент.Контрагент.КонтактноеЛицо
```
 имеет тип что то типа СправочникСсылка.КонтакныеЛица(могу ошибаться, но по логике...)
---
именно так и есть.
---
Спасибо! Взлетело! Ну.. почему-то кроме Email-а

```1c
    Запрос1 = Новый Запрос();
    Запрос1.УстановитьПараметр("Ссылка", ТекущийДокумент.Контрагент.КонтактноеЛицо);
    Запрос1.Текст =
    "ВЫБРАТЬ
    | КонтактныеЛицаКонтактнаяИнформация.АдресЭП КАК АдресЭП,
    | КонтактныеЛицаКонтактнаяИнформация.НомерТелефона КАК НомерТелефона,
    | КонтактныеЛицаКонтактнаяИнформация.Ссылка.Представление КАК Представление
    |ИЗ
    | Справочник.КонтактныеЛица.КонтактнаяИнформация КАК КонтактныеЛицаКонтактнаяИнформация
    |ГДЕ
    | КонтактныеЛицаКонтактнаяИнформация.Ссылка = &Ссылка";

    Шапка1 = Запрос1.Выполнить().Выбрать();
    Шапка1.Следующий();
    ОбластьМакета.Параметры.Контрагент = Шапка1.Представление;
    ОбластьМакета.Параметры.ТелефонКонтрагента = Шапка1.НомерТелефона;
    ОбластьМакета.Параметры.EmailКонтрагента = Шапка1.АдресЭП;
```
---
уж и не знаю, почему игнорируете мои сообщения...
Но пора уже отдавать премию (8), он честно это заслужил.
А Вам использовать таки код в (22).
---
E-Mail может быть в другой строке табличной части. Ну в отладчике результат запроса выгрузи и посмотри.
---
22 не вышло. Согласен.
---
вот только не надо, что не вышло. Если код в (25) отрабатывает, то и в (22) отработает.
И если в контактной информации есть и телефон и ЭлПочта, то все покажет.
---
ну может я рукожоп)
---
Ну вот искренне не понимаю..
---
Ну не понимание налицо - Вам уже несколько раз сказали - этот запрос выдает не одной строкой данные, а там будет столько строк, сколько есть записей в табличной части контрагента. Тут же выводится только первая строка. Сколько их там - в табло посмотрите
```1c
    Шапка1.Количество()
```
....

Многих вводит в заблуждение наличие отдельных полей в ТЧ (емейл, там телефон), посмотрите результат запроса в таблице значений (вместо .Выполнить(), наберите .Выгрузить()) или таки воспользуйтесь консолью, тоже не раз советывали))))))....
---
Вот телефон и емаил реквизиты одной табличной части. В запросе всё одинаково, но телефон есть, а емэйла нет..