Вводная:
=========
Есть справочник СхемаСкидок, у него есть табличная часть ТоварыДействия (с реквизитом Номенклатура - могут быть как группы так и элементы).

Пример:
========

СхемаСкидок1
 Товар1 (элемент)
 Товар2 (элемент)
 Товар3 (ГРУППА) - внутри куча подгрупп и элементов

СхемаСкидок2
 Товар4 (элемент)
 Товар5 (ГРУППА) - внутри куча подгрупп и элементов
 Товар6 (элемент)

Задача:
========

Как запросом получить таблицу вида:

СхемаСкидок1 Товар1 (элемент)
СхемаСкидок1 Товар2 (элемент)
СхемаСкидок1 Товар3.1 (элемент)
СхемаСкидок1 Товар3.2 (элемент)
СхемаСкидок1 Товар3.3 (элемент)

СхемаСкидок2 Товар4 (элемент)
СхемаСкидок2 Товар5.1 (элемент)
СхемаСкидок2 Товар5.2 (элемент)
СхемаСкидок2 Товар5.3 (элемент)
СхемаСкидок2 Товар6 (элемент)

То есть , таблица должна содержать скидки и принадлежащие ей товары (только элементы)

PS
========
Сделать нужно все одним запросом.
Вариант "соединения по Родитель.Родитель.Родитель" - не подходит.
Вариант "сделать сначала запрос по скидкам, потом в цикле в обходе получать товары" - не подходит.

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

    ОБЪЕДИНИТЬ

    ВЫБРАТЬ
    Номенклатура.Ссылка,
    Номенклатура.Ссылка
    ИЗ
    Справочник.Номенклатура КАК Номенклатура
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ РАЗЛИЧНЫЕ
    ПерваяДуга.НачалоДуги,
    ВтораяДуга.КонецДуги
    ПОМЕСТИТЬ ЗамыканияДлины2
    ИЗ
    ЗамыканияДлины1 КАК ПерваяДуга
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ ЗамыканияДлины1 КАК ВтораяДуга
    ПО ПерваяДуга.КонецДуги = ВтораяДуга.НачалоДуги
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ РАЗЛИЧНЫЕ
    ПерваяДуга.НачалоДуги,
    ВтораяДуга.КонецДуги
    ПОМЕСТИТЬ ЗамыканияДлины4
    ИЗ
    ЗамыканияДлины2 КАК ПерваяДуга
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ ЗамыканияДлины2 КАК ВтораяДуга
    ПО ПерваяДуга.КонецДуги = ВтораяДуга.НачалоДуги
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ РАЗЛИЧНЫЕ
    ПерваяДуга.НачалоДуги,
    ВтораяДуга.КонецДуги
    ПОМЕСТИТЬ ЗамыканияДлины8
    ИЗ
    ЗамыканияДлины4 КАК ПерваяДуга
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ ЗамыканияДлины4 КАК ВтораяДуга
    ПО ПерваяДуга.КонецДуги = ВтораяДуга.НачалоДуги
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ РАЗЛИЧНЫЕ
    ПерваяДуга.НачалоДуги,
    ВтораяДуга.КонецДуги
    ПОМЕСТИТЬ ЗамыканияДлины16
    ИЗ
    ЗамыканияДлины8 КАК ПерваяДуга
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ ЗамыканияДлины8 КАК ВтораяДуга
    ПО ПерваяДуга.КонецДуги = ВтораяДуга.НачалоДуги
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ РАЗЛИЧНЫЕ
    ПерваяДуга.НачалоДуги,
    ВтораяДуга.КонецДуги
    ПОМЕСТИТЬ ЗамыканияДлины32
    ИЗ
    ЗамыканияДлины16 КАК ПерваяДуга
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ ЗамыканияДлины16 КАК ВтораяДуга
    ПО ПерваяДуга.КонецДуги = ВтораяДуга.НачалоДуги
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    СхемаСкидокТоварыДействия.Ссылка КАК СхемаСкидок,
    ЗамыканияДлины32.КонецДуги КАК Товар
    ИЗ
    Справочник.СхемаСкидок.ТоварыДействия КАК СхемаСкидокТоварыДействия
    ЛЕВОЕ СОЕДИНЕНИЕ ЗамыканияДлины32 КАК ЗамыканияДлины32
    ПО СхемаСкидокТоварыДействия.Товар = ЗамыканияДлины32.НачалоДуги
    ГДЕ
    НЕ ЗамыканияДлины32.КонецДуги.ЭтоГруппа
```

Запрос построен по материалам статьи Транзитивное замыкаие запросом. Ограничением является максимальная глубина иерархии номенклатуры 32. Если нужно больше, в запрос добавляется секция вида
```1c
    ВЫБРАТЬ РАЗЛИЧНЫЕ
    ПерваяДуга.НачалоДуги,
    ВтораяДуга.КонецДуги
    ПОМЕСТИТЬ ЗамыканияДлины64
    ИЗ
    ЗамыканияДлины32 КАК ПерваяДуга
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ ЗамыканияДлины32 КАК ВтораяДуга
    ПО ПерваяДуга.КонецДуги = ВтораяДуга.НачалоДуги
```
---
Предоставившему рабочее решение (ПОЛНОСТЬЮ С ПОМОЩЬЮ ЗАПРОСА) - переведу 50 стартмани
---
Интересная задачка ...
---
Так вроде не сложно... Через временные таблицы Первую таблицу делаешь с условием , что это не группа и помещаешь во временную таблицу (это для тч схем). Второй запрос делаешь тоже по условию (это для номенклатуры), что это не группа и добавляешь еще одно условие в иерархии (где вложенный запрос по тч схем по условию группы и в иерархии ). Все это объединяешь. Была бы база, - сделал готовый запрос. А то я привык конструктором больше...
---
Вот запрос, решающий данную задачу
```1c
    ВЫБРАТЬ
    Номенклатура.Родитель КАК НачалоДуги,
    Номенклатура.Ссылка КАК КонецДуги
    ПОМЕСТИТЬ ЗамыканияДлины1
    ИЗ
    Справочник.Номенклатура КАК Номенклатура
    ГДЕ
    Номенклатура.Родитель <> ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)

    ОБЪЕДИНИТЬ

    ВЫБРАТЬ
    Номенклатура.Ссылка,
    Номенклатура.Ссылка
    ИЗ
    Справочник.Номенклатура КАК Номенклатура
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ РАЗЛИЧНЫЕ
    ПерваяДуга.НачалоДуги,
    ВтораяДуга.КонецДуги
    ПОМЕСТИТЬ ЗамыканияДлины2
    ИЗ
    ЗамыканияДлины1 КАК ПерваяДуга
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ ЗамыканияДлины1 КАК ВтораяДуга
    ПО ПерваяДуга.КонецДуги = ВтораяДуга.НачалоДуги
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ РАЗЛИЧНЫЕ
    ПерваяДуга.НачалоДуги,
    ВтораяДуга.КонецДуги
    ПОМЕСТИТЬ ЗамыканияДлины4
    ИЗ
    ЗамыканияДлины2 КАК ПерваяДуга
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ ЗамыканияДлины2 КАК ВтораяДуга
    ПО ПерваяДуга.КонецДуги = ВтораяДуга.НачалоДуги
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ РАЗЛИЧНЫЕ
    ПерваяДуга.НачалоДуги,
    ВтораяДуга.КонецДуги
    ПОМЕСТИТЬ ЗамыканияДлины8
    ИЗ
    ЗамыканияДлины4 КАК ПерваяДуга
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ ЗамыканияДлины4 КАК ВтораяДуга
    ПО ПерваяДуга.КонецДуги = ВтораяДуга.НачалоДуги
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ РАЗЛИЧНЫЕ
    ПерваяДуга.НачалоДуги,
    ВтораяДуга.КонецДуги
    ПОМЕСТИТЬ ЗамыканияДлины16
    ИЗ
    ЗамыканияДлины8 КАК ПерваяДуга
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ ЗамыканияДлины8 КАК ВтораяДуга
    ПО ПерваяДуга.КонецДуги = ВтораяДуга.НачалоДуги
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ РАЗЛИЧНЫЕ
    ПерваяДуга.НачалоДуги,
    ВтораяДуга.КонецДуги
    ПОМЕСТИТЬ ЗамыканияДлины32
    ИЗ
    ЗамыканияДлины16 КАК ПерваяДуга
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ ЗамыканияДлины16 КАК ВтораяДуга
    ПО ПерваяДуга.КонецДуги = ВтораяДуга.НачалоДуги
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    СхемаСкидокТоварыДействия.Ссылка КАК СхемаСкидок,
    ЗамыканияДлины32.КонецДуги КАК Товар
    ИЗ
    Справочник.СхемаСкидок.ТоварыДействия КАК СхемаСкидокТоварыДействия
    ЛЕВОЕ СОЕДИНЕНИЕ ЗамыканияДлины32 КАК ЗамыканияДлины32
    ПО СхемаСкидокТоварыДействия.Товар = ЗамыканияДлины32.НачалоДуги
    ГДЕ
    НЕ ЗамыканияДлины32.КонецДуги.ЭтоГруппа
```

Запрос построен по материалам статьи Транзитивное замыкаие запросом. Ограничением является максимальная глубина иерархии номенклатуры 32. Если нужно больше, в запрос добавляется секция вида
```1c
    ВЫБРАТЬ РАЗЛИЧНЫЕ
    ПерваяДуга.НачалоДуги,
    ВтораяДуга.КонецДуги
    ПОМЕСТИТЬ ЗамыканияДлины64
    ИЗ
    ЗамыканияДлины32 КАК ПерваяДуга
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ ЗамыканияДлины32 КАК ВтораяДуга
    ПО ПерваяДуга.КонецДуги = ВтораяДуга.НачалоДуги
```
---
С(5) ildarovich, Спасибо. Ваш ответ лучший и рабочий (проверил).

Как мне вам перевести стартмани, при переводе пишет "В связи с участившимися случаями мошенничества, переводы временно отключены" ????
---
dimbasbear, мне переводили с помощью скачивания моих обработок н-раз=))
---
50 раз придется качать )))
---
разобрался, перевел :)