Платформа 8.3.5
Делаю отчет "Остатки товаров". Запрос берет остатки из регистра накопления. Подскажите как привести его к нужному виду.
Картинки прикрепляю, базу на всякий случай тоже

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

    ЗапросОстатков.УстановитьПараметр("Организация" , Отчет.Организация);
    ЗапросОстатков.УстановитьПараметр("Склад" , Отчет.Склад);
    ЗапросОстатков.УстановитьПараметр("Номенклатура" , Отчет.Номенклатура);
    Если ЭтотОбъект.НаКонецДня Тогда
    ЗапросОстатков.УстановитьПараметр("Период" , КонецДня(Отчет.ДатаОстатка));
    Иначе
    ЗапросОстатков.УстановитьПараметр("Период" , НачалоДня(Отчет.ДатаОстатка));
    КонецЕсли;

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

    ОбластьОстатки = Макет.ПолучитьОбласть("Остатки");

    Пока ВыборкаОстатков.Следующий() Цикл
    //**************
    КонецЦикла;

    ТабДок.Вывести(ОбластьОстатки);
```
---
Немного переделал, чтобы и иерархия номенклатуры отображалась
---
qqwweerrttyy160679, я всегда на СКД делаю и прячу кнопарик "изменить Вариант"
---
qqwweerrttyy160679,

```1c
    Выборка = Результат.Выбрать(); // обход прямой!!

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

    КонецЕсли;

    Область = Макет.ПолучитьОбласть(ИмяОбласти);
    Область.Параметры.Заполнить(Выборка);
    ТабДок.Вывести(Область);

    КонецЦикла;
```
---
+ единственное, отступ для иерархии надо будет делать ручками, ну да это не сложно
---
Fragster, У меня группировка идет не только по организации, но и по группам складов, складам, группам номенклатура, подгруппам номенклатуры и цене номенклатуры. Во как!
---
qqwweerrttyy160679, ну я по этому там "если" и написал. В нем надо имя нужной области макета получать
---
qqwweerrttyy160679, Это конечно, не СКД, но как вариант могу предложить. Работать будет быстро и правильно.
1. Добавить в запрос:
        |Сгруппировать По
        | Организация,
        | Склад,
        | Номенклатура,
        | Цена
2. в Макет добавляете соответствующие области "Организация", "Склад", "Номенклатура", "Строка". в каждой строки по 3 параметра, как в таблице на картинке (наименование, кол-во, сумма).
3. Организовываем сам процесс выборки из запроса.
---
vadim28, Роутер повис не отправил всё что набирал, ну да ладно. В кратце так:
Результат = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
ТабличныйДокумент.НачатьАвтогруппировкуСтрок();
ТабличныйДокумент.НачатьГруппуСтрок();
Пока Результат.Следующий() Цикл //Органицазию
  ОбластьОрг.параметр.Наименование = Результат.Организация;
  ......
  ......
  ТабличныйДокумент.НачатьАвтогруппировкуСтрок();
 ТабличныйДокумент.НачатьГруппуСтрок();
 РезультатСклад = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
 Пока РезультатСклад.Следующий() Цикл // выводим Склады
 ОбластьДок.Параметры.Наименование = РезультатСклад.Наименование;
        .....
        ......
 КонецЦикла;
 ТабличныйДокумент.ЗакончитьГруппуСтрок();
 ТабличныйДокумент.ЗакончитьАвтогруппировкуСтрок();
КонецЦикла;
ТабличныйДокумент.ЗакончитьГруппуСтрок();
ТабличныйДокумент.ЗакончитьАвтогруппировкуСтрок();
Как-то так, только у вас будет ещё и По номенклатуре и по цене циклы.

РезультатНоменклатура = РезультатСклад.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
Пока РезультатНоменклатура.Следующий() Цикл // выводим Номенклатуру

РезультатЦена = РезультатНоменклатура.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
Пока РезультатЦена.Следующий() Цикл // выводим Номенклатуру по цене
КонецЦикла;
ТабличныйДокумент.ЗакончитьГруппуСтрок();
ТабличныйДокумент.ЗакончитьАвтогруппировкуСтрок();
КонецЦикла;
ТабличныйДокумент.ЗакончитьГруппуСтрок();
ТабличныйДокумент.ЗакончитьАвтогруппировкуСтрок();
---
vadim28,
```1c
    РезультатСклад = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
```
 Что то мне подсказывает что вот это не сработает :) Вы попробуйте обход с иерархией написать :)
---
qqwweerrttyy160679, мы здесь так сумбурно высказались все, вам удалось получить ответ на свой вопрос?
---
ture,
karpik, vadim28 были ближе всех.
---
Мне не нужно на СКД. Мне нужно так.
---
ОбластьЯчеекТабличногоДокумента (SpreadsheetDocumentRange)
Отступ (Indent)
Использование:

Чтение и запись.
Описание:

Тип: Число.
Отступ текста от края ячейки в символах.
---
и Еще нужно чтобы были слева плюсики (свертка по группам как в консоли запросов на картинке)
---
qqwweerrttyy160679, это немного сложнее. нужно в зависимости от изменения Выборка.Уровень() для недетальных (выборка.ТипЗаписи) записей либо ТабДок.НачатьАвтогруппировкуСтрок() (при увеличении уровня) либо ЗакончитьАвтогруппировкуСтрок() (при уменьшении уровня) перед выводом области в ТабДок.
---
qqwweerrttyy160679, плюсик, папочки - это все стандартный набор, который уже сразу есть в СКД. Это как "Кристал репорт" юзать сразу, а не с нуля интерфейс отчета колбасить. Хотя СКД конечно мощнее кристала, но это уже другая история.

Сразу концентрируйтесь на современных технологиях, вы ведь не с 1С77 начали изучать 8-ку.
---
Кстати, в отступ можно Выборка.Уровень() и запихивать
---
А может как-нибудь видоизменить сам запрос? чтобы не заморачиваться с (ТабДок.НачатьАвтогруппировкуСтрок()) и (Выборка.Уровень())
---
qqwweerrttyy160679, если не хочешь ни СКД использовать, ни код писать - используй построитель отчета.
---
ни каких предложений?
---
qqwweerrttyy160679, Итоги с видом иерархия не пробовали ? )
---
nSpirit2,
А у меня и есть итоги с иерархией

вот же в запросе
        |ИТОГИ
        | СУММА(КоличествоОстаток)
        |ПО
        | Организация,
        | Склад ИЕРАРХИЯ,
        | Номенклатура ИЕРАРХИЯ";
---
qqwweerrttyy160679,
зачем "Номенклатура ИЕРАРХИЯ"?
Может лучше "Номенклатура ТОЛЬКО ИЕРАРХИЯ"?
---
qqwweerrttyy160679, Ну есть итоги, но есть они только в модели "выборка".
Выборка, а в ней другая выборка. На деле просто фильтр на исходный рекорд сет. Ну есть суммовые итоги, но по сути - это обертка на обертке.
---
В консоле запросов на картинке же видно что итоги - ИЕРАРХИЯ.
---
qqwweerrttyy160679, Ну да а вы что хотите чтобы вы в запросе выбирали в разные колонки а итоги у вас собирались все в 1 ?
---
nSpirit2,
Ну вот я и спрашиваю как можно реализовать. В СКД все просто, показываешь иерархию полей и всё, а тут как сделать ума не приложу.
Здесь должен быть какой-то сложный механизм обхода результата запроса и вывода его в ТЧ
---
qqwweerrttyy160679, Вы что на выходе то получить хотите ? XLS ?
---
qqwweerrttyy160679, можно сложно обходить, можно использовать (4). это реально будет работать. Можно даже с одной областью, если не надо разное оформление. Только тогда надо в Если вместо получения имени области сделать заполнение параметров.
---
+ В зависимости от того, на какой группировке мы находимся (и являются ли это итоги по группе или по элементу) будет разный Выборка.ТипЗаписи(), Выборка.Группировка() и Выборка.Уровень(). Если хочется сложно - то тогда надо писать кучу вложенных циклов, а для иерархии - еще и рекурсивных.
---
Fragster,
Так вот же нужно чтобы группы отображались жирным шрифтом. Нужны плюсики сворачивания и разворачивания групп и чтобы итоги подставлялись в каждую подргуппу и группу по номенклатуре, складам и подразделениям.
---
qqwweerrttyy160679, Я может че не понимаю что вам мешает СКД то генерировать свой ТабДок зачем все эти фокусы с запросами ? )
---
nSpirit2,
Цель.
---
qqwweerrttyy160679, Цель сделать костыль ?
---
qqwweerrttyy160679, зачем использовать старую технологию?
---
дохлый номер, многоуровненый цикл и обходи выборку, цель блин
---
zikonza, можно без вложенных циклов, автору был показан пример кода в (4), но она так не хочет, видимо.

(24) что уже сделано, кроме запроса?
---
zikonza, работает очень быстро. Проверено.
---
Сделал, как вам нужно
---
Немного переделал, чтобы и иерархия номенклатуры отображалась
---
karpik666, - молодец!