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

```1c
    &НаСервере
    Функция ВывестиОтчётНаСервере()
    Схема=Элементы.Список.ПолучитьИсполняемуюСхемуКомпоновкиДанных();
    Настройки=Элементы.Список.ПолучитьИсполняемыеНастройкиКомпоновкиДанных();

    ЭлементУсловногоОформления=Настройки.УсловноеОформление.Элементы.Добавить();
    ЭлементУсловногоОформления.Использование=Истина;

    Поле=ЭлементУсловногоОформления.Поля.Элементы.Добавить();
    Поле.Использование=Истина;
    Поле.Поле = Новый ПолеКомпоновкиДанных("Наименование");

    Отбор=ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    Отбор.ВидСравнения=ВидСравненияКомпоновкиДанных.Равно;
    Отбор.ЛевоеЗначение= Новый ПолеКомпоновкиДанных("ВидНоменклатуры");
    Отбор.ПравоеЗначение=Перечисления.ВидыНоменклатуры.Услуга;

    ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.СветлоСерый);

    КомпоновщикМакета= Новый КомпоновщикМакетаКомпоновкиДанных;
    Макет=КомпоновщикМакета.Выполнить(Схема, Настройки);

    ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновки.Инициализировать(Макет);

    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ТабДок = Новый ТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(ТабДок);
    ПроцессорВывода.Вывести(ПроцессорКомпоновки);

    Возврат ТабДок;
    КонецФункции

    &НаКлиенте
    Процедура ВывестиОтчёт(Команда)
    ВывестиОтчётНаСервере().Показать();
    КонецПроцедуры
```

Одна беда - если пользователь зайдёт в какую-нибудь группу, то в отбор по этой группе автоматически не включается, хотя другие пользовательские отборы работают.

Как получить текущего родителя из формы списка и установить отбор по нему?

И чтобы 2 раза не вставать - как в такой отчёт подсунуть свой макет?
---
егче отчёт вручную через макет выводить или табличный документ после / в процессе вывода форматировать.Именно это я и имел ввиду. С помощью СКД получить таблицу значений, сгенерировать для отчета макет и выводить таблицу значений используя этот макет.
---
Как получить текущего родителя из формы списка и установить отбор по нему?Получить текущего родителя не сложно:

```1c
    Элементы.Список.ТекущийРодитель
```

как в такой отчёт подсунуть свой макет?На сколько сложный макет Вы хотите применить для своего отчета? Почему банальная настройка полей не подходит? У получаемой схемы есть свойство "Макеты", но есть подозрение, что для достаточно сложного макета отчета дешевле отчет выводить не непосредственно в табличный документ, а используя промежуточную таблицу/дерево значений.
---
Элементы.Список.ТекущийРодитель

Спасибо!

(2) На сколько сложный макет Вы хотите применить для своего отчета?

Логотип, шапку жирным, рамки.

(2) Почему банальная настройка полей не подходит?

В смысле - пользователю форматировать руками или программно через условное оформление?

(2) для достаточно сложного макета отчета дешевле отчет выводить не непосредственно в табличный документ, а используя промежуточную таблицу/дерево значений.

Если выводить таблицу/дерево значений через СКД через объект, то придется программно задавать переменный состав полей, легче отчёт вручную через макет выводить или табличный документ после / в процессе вывода форматировать.
---
программно через условное оформление?Да, через условное оформление и оформление полей, что в конструкторе на закладке "Наборы данных".
---
егче отчёт вручную через макет выводить или табличный документ после / в процессе вывода форматировать.Именно это я и имел ввиду. С помощью СКД получить таблицу значений, сгенерировать для отчета макет и выводить таблицу значений используя этот макет.