Доброго времени суток.
Необходимо результат запроса выгрузить в json массивом структур, но есть проблема с вложенной в запрос таблицей значений "контактная информация".
Подскажите, как мне поместить данную таблицу в структуру? Что-то я никак не могу допетрить.

Код запроса:

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

```1c
    РезультатЗапроса = Запрос.Выполнить();
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

    МассивНоменклатур = Новый Массив;
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    ДанныеНоменклатуры = Новый Структура;
    ДанныеНоменклатуры.Вставить("Name", "+ВыборкаДетальныеЗаписи.Наименование);
    ...

    ВыборкаКИ = ВыборкаДетальныеЗаписи.КонтактнаяИнформация.Выбрать();
    МассивКИ = Новый Массив;
    Пока ВыборкаКИ.Следующий() Цикл
    СтруктураКИ = Новый Структура;
    СтруктураКИ.Вставить("Address",ВыборкаКИ.Представление);
    МассивКИ.Добавить(СтруктураКИ);
    КонецЦикла;
    ДанныеНоменклатуры.Вставить("МассивКонтактнойИнформации", МассивКИ);

    МассивНоменклатур.Добавить(ДанныеНоменклатуры);
    КонецЦикла;

    ЗаписьJSON = Новый ЗаписьJSON;
    ЗаписьJSON.УстановитьСтроку();
    ЗаписатьJSON(ЗаписьJSON,МассивНоменклатур);
    СтрокаJSON = ЗаписьJSON.Закрыть()
```

Конечно, не обязательно для МассивКонтактнойИнформации делать структуру, если Вам нужно только одно значение строкового типа, то можно обойтись и массивом строк. Пример кусочка:

```1c
    ...
    МассивКИ = Новый Массив;
    Пока ВыборкаКИ.Следующий() Цикл
    МассивКИ.Добавить(ВыборкаКИ.Представление);
    КонецЦикла;
    ДанныеНоменклатуры.Вставить("МассивКонтактнойИнформации", МассивКИ);
    ...
```
---
и правильно делают, что сообщают.
Вложенный запрос необходимо выгрузить/инициализировать выборку, чтобы получить само значение.

Нужно что-то вроде:

```1c
    Если ТипЗнч(ВыборкаДетальныеЗаписи.КонтактнаяИнформация) = Тип("РезультатЗапроса") Тогда
    Выборка = ВыборкаДетальныеЗаписи.КонтактнаяИнформация.Выбрать();

    Пока Выборка.Следующий() Цикл
    //////формирование структур(-ы) КИ
    КонецЦикла;
    КонецЕсли;
```
---
Если у вас в принципе нет проблем с превращением ТЗ в структуру(-ы), то вложенный запрос ровно так же превращается, как и сам результат запроса.
---
Ну может я туплю.
Пытался так:

```1c
    РезультатЗапроса = Запрос.Выполнить();
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

    МассивНоменклатур = Новый Массив;
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    ДанныеНоменклатуры = Новый Структура;
    ДанныеНоменклатуры.Вставить("Name", "+ВыборкаДетальныеЗаписи.Наименование);
    ДанныеНоменклатуры.Вставить("Address", "+ВыборкаДетальныеЗаписи.КонтактнаяИнформация.Представление)

    МассивНоменклатур.Добавить(ДанныеНоменклатуры);
    КонецЦикла;
```

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

Нужно что-то вроде:

```1c
    Если ТипЗнч(ВыборкаДетальныеЗаписи.КонтактнаяИнформация) = Тип("РезультатЗапроса") Тогда
    Выборка = ВыборкаДетальныеЗаписи.КонтактнаяИнформация.Выбрать();

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

Сейчас, правда, другая проблема образовалась.
В контактной информации содержится несколько строк, а цикл помещает только одну.
Можно ли каким-то образом все обойти?
---
Нам не видно, что у вас там происходит в процессе работы алгоритма.
Обойти все точно можно, вопрос в том, что и как вы собираетесь обходить.....
---
может в массив структур поместить массив структур из контактной информации?
---
Если я правильно понимаю, то нужно в структуре создать массив и поместить туда структуру из табличной части?
---
думаю да
нужно в структуре создать массив и поместить туда структурЫ из табличной части
---
Пробовал так, ругается, когда на метод заходит "ЗаписатьJSON". Если по другому не выйдет, то буду разбираться.
Спасибо
---
В Вашем случае нужно как-то так:

```1c
    РезультатЗапроса = Запрос.Выполнить();
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

    МассивНоменклатур = Новый Массив;
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    ДанныеНоменклатуры = Новый Структура;
    ДанныеНоменклатуры.Вставить("Name", "+ВыборкаДетальныеЗаписи.Наименование);
    ...

    ВыборкаКИ = ВыборкаДетальныеЗаписи.КонтактнаяИнформация.Выбрать();
    МассивКИ = Новый Массив;
    Пока ВыборкаКИ.Следующий() Цикл
    СтруктураКИ = Новый Структура;
    СтруктураКИ.Вставить("Address",ВыборкаКИ.Представление);
    МассивКИ.Добавить(СтруктураКИ);
    КонецЦикла;
    ДанныеНоменклатуры.Вставить("МассивКонтактнойИнформации", МассивКИ);

    МассивНоменклатур.Добавить(ДанныеНоменклатуры);
    КонецЦикла;

    ЗаписьJSON = Новый ЗаписьJSON;
    ЗаписьJSON.УстановитьСтроку();
    ЗаписатьJSON(ЗаписьJSON,МассивНоменклатур);
    СтрокаJSON = ЗаписьJSON.Закрыть()
```

Конечно, не обязательно для МассивКонтактнойИнформации делать структуру, если Вам нужно только одно значение строкового типа, то можно обойтись и массивом строк. Пример кусочка:

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

```1c
    ЗаписатьJSON(ЗаписьJSON,МассивНоменклатур);
```

Пока что решил проблему так:

```1c
    Пока Выборка.Следующий() Цикл
    Сумм = Сумм +"/"+ Выборка.ВидПредставление+":"+Выборка.Представление;

    КонецЦикла;
    ДанныеНоменклатуры.Вставить("Address1", Сумм);
```