Добрый день! Подскажите пожалуйста, как в запросе или в СКД или обход по группировкам, объединить две строки и более , в дну строку
номер Подразделение Организация
50 Офис Главная
50 Офис1 Организация2
50 Офис2 Организация 3

Количество повторений не известно.

Необходимо объединить по номеру:

Номер Подразделение1 Организация1 Подразделение2 Организация2 Подразделение 3 Организация 3
  50 Офис Главная Офис1 Организация2 Офис2 Организация3
---
Вот набросал пример:

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

    Сп = Новый СписокЗначений;
    Сп.Добавить(Справочники.Контрагенты.НайтиПоКоду("000016903"));
    Сп.Добавить(Справочники.Контрагенты.НайтиПоКоду("000009426"));
    Запрос.УстановитьПараметр("ГоловнойКонтрагент", Сп);

    РезультатЗапроса = Запрос.Выполнить();

    ВыборкаГоловнойКонтрагент = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);

    ТЗ = Новый ТаблицаЗначений();
    ТЗ.Колонки.Добавить("ГК");

    Пока ВыборкаГоловнойКонтрагент.Следующий() Цикл

    ВыборкаДетальныеЗаписи = ВыборкаГоловнойКонтрагент.Выбрать();
    нКолонка = 0;
    нов = ТЗ.Добавить();
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    Если ТЗ.Колонки.Найти("К"+нКолонка) = Неопределено Тогда
    ТЗ.Колонки.Добавить("К"+нКолонка);
    КонецЕсли;
    Если ТЗ.Колонки.Найти("Н"+нКолонка) = Неопределено Тогда
    ТЗ.Колонки.Добавить("Н"+нКолонка);
    КонецЕсли;
    нов.ГК = ВыборкаГоловнойКонтрагент.ГоловнойКонтрагент;
    нов["К"+нКолонка] = ВыборкаДетальныеЗаписи.Код;
    нов["Н"+нКолонка] = ВыборкаДетальныеЗаписи.Наименование;

    нКолонка = нКолонка +1;
    КонецЦикла;

    КонецЦикла;
```
---
только обходом по группировкам, как-то так;

```1c
    .....
    ВыборкаНомера = Запрос.Выполнить().Выбрать(ОбходРезультата.ПоГруппировкам);

    Пока ВыборкаНомера.Следующий() Цикл

    СтрокаРезультат = ";

    СтрокаРезультат = СтрокаРезультат + Выборка.НомерСтрока + " ";

    ВыборкаПодразделения = ВыбркаНомера.Выбрать(ОбходРезультата.ПоГруппировкам);

    Пока ВыборкаПодразделения.Следующий() Цикл

    СтрокаРезультат = СтрокаРезультат + Выборка.ПодразделениеНаименование + " ";

    ВыборкаОрганизации = ВыборкаПодразделения.Выбрать();

    Пока ВыборкаОрганизации.Следующий() Цикл

    СтрокаРезультат = СтрокаРезультат + ВыборкаДетальныеЗаписи.ОрганизацияНаименование;

    КонецЦикла;

    КонецЦикла;

    МоеЗначение = СтрокаРезультат;

    КонецЦикла;
```
---
Спасибо, только я этот метод примерно знала, а как сделать в отдельных колонках ?
---
В отдельных колонках оно у вас изначально будет или в чем именно вопрос?
---
Спасибо, только я этот метод примерно знала, а как сделать в отдельных колонках ?

(4) Там получается в одной строчке , строкой
---
Если количество подразделений и организаций по одному номеру изначально не известно, то запросом сделать результат в одну строку не представляется возможным.
---
мне нужно в отдельных колонках в результате
---
а обходом по группировках , как сделать, чтобы в результате при обходе не собирать всё в одну строку, а был результат в новой колонке
---
Так как в файле
---
Ну если нужно в отдельных колонках то придется сформировать запрос с группировкой по номеру, создать отдельную таблицу значений А потом обход запроса по группировках с созданием и заполнением колонок на лету. Потом уже запрос новой ТЗ
---
Вот набросал пример:

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

    Сп = Новый СписокЗначений;
    Сп.Добавить(Справочники.Контрагенты.НайтиПоКоду("000016903"));
    Сп.Добавить(Справочники.Контрагенты.НайтиПоКоду("000009426"));
    Запрос.УстановитьПараметр("ГоловнойКонтрагент", Сп);

    РезультатЗапроса = Запрос.Выполнить();

    ВыборкаГоловнойКонтрагент = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);

    ТЗ = Новый ТаблицаЗначений();
    ТЗ.Колонки.Добавить("ГК");

    Пока ВыборкаГоловнойКонтрагент.Следующий() Цикл

    ВыборкаДетальныеЗаписи = ВыборкаГоловнойКонтрагент.Выбрать();
    нКолонка = 0;
    нов = ТЗ.Добавить();
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    Если ТЗ.Колонки.Найти("К"+нКолонка) = Неопределено Тогда
    ТЗ.Колонки.Добавить("К"+нКолонка);
    КонецЕсли;
    Если ТЗ.Колонки.Найти("Н"+нКолонка) = Неопределено Тогда
    ТЗ.Колонки.Добавить("Н"+нКолонка);
    КонецЕсли;
    нов.ГК = ВыборкаГоловнойКонтрагент.ГоловнойКонтрагент;
    нов["К"+нКолонка] = ВыборкаДетальныеЗаписи.Код;
    нов["Н"+нКолонка] = ВыборкаДетальныеЗаписи.Наименование;

    нКолонка = нКолонка +1;
    КонецЦикла;

    КонецЦикла;
```
---
нов.ГК = ВыборкаГоловнойКонтрагент.ГоловнойКонтрагент;
            нов["К"+нКолонка] = ВыборкаДетальныеЗаписи.Код;
            нов["Н"+нКолонка] = ВыборкаДетальныеЗаписи.Наименование;

            нКолонка = нКолонка +1;

Спасибо, сделала.