Попробую сформулировать вопрос.
Мне нужно сформировать ТЗ и передать ее как объект в СКД, никакими запросами не получатся сформировать результат, но вот вопрос - как передать в процедуору формирования параметр, да еще типа список значений, Как парамет формы его заводить, или как параметр СКД? и как ими пользоваться в процедуре?
---
попробуйте так

```1c
    Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
    ......
    Подразделение = ПолучитьЭлементОтбора(КомпоновщикНастроек, 1, , Истина);
    ........
    КонецПроцедуры
```

```1c
    &НаСервере
    // Возвращает элемент отбора для отчета на СКД
    Функция ПолучитьЭлементОтбора(КомпоновщикНастроек, Индекс, ДопПараметр=", РежимСписок = Ложь) Экспорт
    ЭлементОтбора =
    ?(КомпоновщикНастроек.ПользовательскиеНастройки.Элементы[Индекс].Использование,
    ?(ПустаяСтрока(ДопПараметр),
    КомпоновщикНастроек.ПользовательскиеНастройки.Элементы[Индекс].Значение,
    КомпоновщикНастроек.ПользовательскиеНастройки.Элементы[Индекс].Значение[ДопПараметр]),
    Неопределено);

    Если РежимСписок Тогда
    Если НЕ ЗначениеЗаполнено(ЭлементОтбора) Тогда
    Возврат Новый СписокЗначений;

    ИначеЕсли НЕ ТипЗнч(ЭлементОтбора) = Тип("СписокЗначений") Тогда
    //ИначеЕсли ТипЗнч(ЭлементОтбора) = Тип("СписокЗначений") Тогда
    // необходимо вернуть список с 1 элементом
    спЭлементовОтбора = Новый СписокЗначений;
    спЭлементовОтбора.Добавить(ЭлементОтбора);
    Возврат спЭлементовОтбора;

    КонецЕсли;

    Иначе
    Возврат ЭлементОтбора;

    КонецЕсли;
    Возврат ЭлементОтбора;
    КонецФункции
```

а в скд в параметрах задайте параметр как список значений
---
ну по сути можно как реквизиты отчета добавить, и в модуле при компановке обрабатывать через объект с точкой, либо как параметры в скд, но их так же получить в модуле при компановке через компановщик настроек.
---
как набор данных заведи и посмотри как сформировать скд со внешней ТЗ
---
Это у меня получилось, у меня сейчас проблема в том, что параметр СКД никак не могу получить в процедуре формирования ТЗ, он у меня получается без самих значений.
---
```1c
    например так можно
    до формирования ТЗ в процедуре прикомпоновке
    ПолучитьПараметрПользовательскойНастройки(КомпоновщикНастроек.ПользовательскиеНастройки, "ФИОСсылка", ФизЛицаСсылка);

    чтобы параметр был в пользовательских настройках в макете включается галочка включить в пользовательские настройки

    сама процедура
    Процедура ПолучитьПараметрПользовательскойНастройки(ПользовательскиеНастройки, ИмяНастройки, Значение)
    ПолеКомпоновкиПараметр = Новый ПараметрКомпоновкиДанных(ИмяНастройки);

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

```1c
    ПараметрыИК = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("ИК"));
    Так тоже вроде правильно
    Только мне возвращает ПараметрыИК .Значение = Неопределено
    ПараметрыИК .Использовать = ложь
```

как будто параметр не задан
---
если параметр задает пользователь то он должен быть в КомпоновщикНастроек.ПользовательскиеНастройки
а не в КомпоновщикНастроек.Настройки
---
Как реквизит отчета не получилось - нельзя тип задать список значений справочника
Пробую как параметр СКД
---
попробуйте так

```1c
    Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
    ......
    Подразделение = ПолучитьЭлементОтбора(КомпоновщикНастроек, 1, , Истина);
    ........
    КонецПроцедуры
```

```1c
    &НаСервере
    // Возвращает элемент отбора для отчета на СКД
    Функция ПолучитьЭлементОтбора(КомпоновщикНастроек, Индекс, ДопПараметр=", РежимСписок = Ложь) Экспорт
    ЭлементОтбора =
    ?(КомпоновщикНастроек.ПользовательскиеНастройки.Элементы[Индекс].Использование,
    ?(ПустаяСтрока(ДопПараметр),
    КомпоновщикНастроек.ПользовательскиеНастройки.Элементы[Индекс].Значение,
    КомпоновщикНастроек.ПользовательскиеНастройки.Элементы[Индекс].Значение[ДопПараметр]),
    Неопределено);

    Если РежимСписок Тогда
    Если НЕ ЗначениеЗаполнено(ЭлементОтбора) Тогда
    Возврат Новый СписокЗначений;

    ИначеЕсли НЕ ТипЗнч(ЭлементОтбора) = Тип("СписокЗначений") Тогда
    //ИначеЕсли ТипЗнч(ЭлементОтбора) = Тип("СписокЗначений") Тогда
    // необходимо вернуть список с 1 элементом
    спЭлементовОтбора = Новый СписокЗначений;
    спЭлементовОтбора.Добавить(ЭлементОтбора);
    Возврат спЭлементовОтбора;

    КонецЕсли;

    Иначе
    Возврат ЭлементОтбора;

    КонецЕсли;
    Возврат ЭлементОтбора;
    КонецФункции
```

а в скд в параметрах задайте параметр как список значений
---
ПолучитьЭлементОтбора(КомпоновщикНастроек, 0, , Истина);
получилось с индексом 0
---
Зачем так сложно, да и зачем отбор, я именно параметры смотрю
 ПараметрыИК = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("ИК"));

пробую так, по отладчику параметр как бы находит верно, ПараметрыИК.Значение там пусто