Добрый день!
Идея - выбирать тип справочника и подставлять его в запрос. Т.е. вместо &ТЗ(ниже) подставить, к примеру, Справочник.СтатьЗатрат.
На форме сделал выбор списка значений с выбором.
Сделал код:

```1c
    СправочникСтруктура = Новый Структура("ПДИР,СДДС,СЗ","Справочник.ПрочиеДоходыИРасходы", "Справочник.СтатьиДвиженияДенежныхСредств", "Справочник.СтатьЗатрат");
    ВидСправочника = ЭтаФорма.ВидСправочника;
    Для Каждого элем из СправочникСтруктура Цикл
    Если элем.Ключ = ВидСправочника Тогда
    ПарамВыбора = элем.Значение;
    КонецЕсли;
    КонецЦикла;
    ПарамВыбора1 = Новый ТаблицаЗначений;
    ПарамВыбора1.Колонки.Добавить("Свойство");
    СтрокаТЧ = ПарамВыбора1.Добавить();
    СтрокаТЧ.Свойство = ПарамВыбора;

    ПостроительЗапроса = Новый ПостроительЗапроса;
    ПостроительЗапроса.ИсточникДанных = Новый ОписаниеИсточникаДанных(ПарамВыбора1);
    ПостроительЗапроса.Выполнить();
    ТЗ = ПостроительЗапроса.Результат.Выгрузить();

    Запрос = Новый запрос;
    Запрос.УстановитьПараметр("ТЗ", ТЗ);
    Запрос.Текст = "ВЫБРАТЬ
    |Статьи.Ссылка КАК Ссылка
    |ПОМЕСТИТЬ ВТС
    |ИЗ
    | &ТЗ КАК Статьи
    |ГДЕ
    | (Статьи.Родитель.Код = "БП-000001"
    | ИЛИ Статьи.Родитель.Родитель.Код = "БП-000001"
    | ИЛИ Статьи.Родитель.Родитель.Родитель.Код = "БП-000001"
    | ИЛИ Статьи.Родитель.Родитель.Родитель.Родитель.Код = "БП-000001")
    |И Статьи.ЭтоГруппа = ЛОЖЬ
    |
    |;
    |
    |ВЫБРАТЬ
    | ВТС.Ссылка КАК Ссылка
    |ИЗ
    | ВТС КАК ВТС";

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

передаю как параметр &ТЗ КАК Статьи
начинает ругаться на

```1c
    Поле не найдено "Статьи.Родитель.Код"
    (Статьи.<<?>>Родитель.Код = "БП-000001"
```

Может по другому как-то сделать?
---
```1c
    Родитель = Справочники[ИмяСправочника].НайтиПоКоду("БП-000001");

    Запрос = Новый Запрос(
    "ВЫБРАТЬ
    | Т.Ссылка КАК Ссылка
    |ИЗ
    | Справочник.СтатьиЗатрат КАК Т
    |ГДЕ
    | Т.Ссылка В ИЕРАРХИИ(&Родитель)
    | И НЕ Т.ЭтоГруппа");

    Запрос.Текст = СтрЗаменить(Запрос.Текст, "СтатьиЗатрат", ИмяСправочника);
    Запрос.УстановитьПараметр("Родитель", Родитель);

    РезультатВМассив = Запрос.Выполнить().Выгрузить();
```
---
Как минимум колонка в ТЗ должна быть типизирована.
---
проблема заключается в том, что для временной таблицы в которую помещается ТЗ нельзя использовать секцию ГДЕ.
Перенесите секцию ГДЕ во второй запрос пакета.
---
>для временной таблицы в которую помещается ТЗ нельзя использовать секцию ГДЕ

С чего вдруг?
---
потому что следующий код:
|ГДЕ
        | (Статьи.Родитель.Код = ""БП-000001""
        | ИЛИ Статьи.Родитель.Родитель.Код = ""БП-000001""
        | ИЛИ Статьи.Родитель.Родитель.Родитель.Код = ""БП-000001""
        | ИЛИ Статьи.Родитель.Родитель.Родитель.Родитель.Код = ""БП-000001"")
делает неявное соединение источника данных ТЗ с таблицами базы данных. Что делать нельзя.
---
ну через точку, понятно, не взлетит. А так секцию ГДЕ вполне себе можно использовать.
---
Нафига такие сложности, проще просто менять текст запроса по ситуации.
---
Да и с точки зрения производительности не лучшее решение, так как нужно всю таблицу справочника загонять в запрос, а нужна она не вся.
---
```1c
    Родитель = Справочники[ИмяСправочника].НайтиПоКоду("БП-000001");

    Запрос = Новый Запрос(
    "ВЫБРАТЬ
    | Т.Ссылка КАК Ссылка
    |ИЗ
    | Справочник.СтатьиЗатрат КАК Т
    |ГДЕ
    | Т.Ссылка В ИЕРАРХИИ(&Родитель)
    | И НЕ Т.ЭтоГруппа");

    Запрос.Текст = СтрЗаменить(Запрос.Текст, "СтатьиЗатрат", ИмяСправочника);
    Запрос.УстановитьПараметр("Родитель", Родитель);

    РезультатВМассив = Запрос.Выполнить().Выгрузить();
```
---
Не понятна задача. Для чего вы хотите подставлять тип в запрос? Скажите что хотите сделать, возможно есть более простое решение. Ваш запрос очень не оптимальный по производительности. в плане запроса у вас будет жесть, оптимизатор sql по-любому свалится в table scan
---
Вместо
```1c
    &ТЗ КАК Статьи
```
 в зависимости от выбора в списке значений, поставлять справочник.
Было так:
```1c
    Справочник.СтатьЗатрат КАК Статьи
```
, а стало
```1c
    &ТЗ КАК Статьи
```
---
а, понял теперь.

ну тогда вам в (6) ответили уже

На форму вывести текстовый реквизит "ИмяСправочника", режим выбора из списка,

Задать список выбора:

"ПДИР,СДДС,СЗ","Справочник.ПрочиеДоходыИРасходы", "Справочник.СтатьиДвиженияДенежныхСредств", "Справочник.СтатьЗатрат"

а дальше код готов