На примере самого простого отчета:
Набор данных - запрос на регистр оборотов. Пытаемся получить количество прихода номенклатуры. По номенклатуре есть приход, но в настройках отчета колонку "Приход" мы скрыли, в итоге выводится просто номенклатура. Есть возможность как-то скрыть такую номенклатуру, по которой как будто бы нет ресурса?

На примере другого отчета, зачем это нужно:
Есть 2 набора с количеством прихода и расхода. По одной номенклатуре есть лишь расход, но колонку с расходом мы скрыли, чтобы увидеть лишь приход номенклатуры. В итоге в отчет попадает куча строк, где нет прихода.
---
Попробовал. Так-то работает вроде как. Разумеется, структура/настройки у отчёта могут быть совершенно разные.

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

    СтандартнаяОбработка = Ложь;

    СхемаКомпоновкиДанных = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");

    НастройкиКомпоновкиДанных = КомпоновщикНастроек.ПолучитьНастройки();

    ПоляКД = Новый Массив();
    Для Каждого ВыбранноеПолеКД Из НастройкиКомпоновкиДанных.Выбор.Элементы Цикл
    Если Не ВыбранноеПолеКД.Использование Тогда
    ПоляКД.Добавить(ВыбранноеПолеКД.Поле);
    КонецЕсли;
    КонецЦикла;

    ГруппировкаКомпоновкиДанных = НайтиГруппировку(НастройкиКомпоновкиДанных.Структура, Новый ПолеКомпоновкиДанных("Номенклатура"));
    Если ГруппировкаКомпоновкиДанных <> Неопределено Тогда
    Для Каждого ПолеКД Из ПоляКД Цикл
    Элемент = ГруппировкаКомпоновкиДанных.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    Элемент.ЛевоеЗначение = ПолеКД;
    Элемент.ВидСравнения = ВидСравненияКомпоновкиДанных.Больше;
    Элемент.ПравоеЗначение = 0;
    КонецЦикла;
    ЗначениеПараметра = ГруппировкаКомпоновкиДанных.ПараметрыВывода.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("ВыводитьОтбор"));
    ЗначениеПараметра.Значение = ТипВыводаТекстаКомпоновкиДанных.НеВыводить;
    ЗначениеПараметра.Использование = Истина;
    КонецЕсли;

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

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

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

    КонецПроцедуры

    Функция НайтиГруппировку(Коллекция, ПолеКД)

    Для Каждого ГруппировкаКомпоновкиДанных Из Коллекция Цикл
    Для Каждого ПолеГруппировки Из ГруппировкаКомпоновкиДанных.ПоляГруппировки.Элементы Цикл
    Если ПолеГруппировки.Поле = ПолеКД Тогда
    Возврат ГруппировкаКомпоновкиДанных;
    КонецЕсли;
    КонецЦикла;
    ГруппировкаКомпоновкиДанных = НайтиГруппировку(ГруппировкаКомпоновкиДанных.Структура, ПолеКД);
    Если ГруппировкаКомпоновкиДанных <> Неопределено Тогда
    Возврат ГруппировкаКомпоновкиДанных;
    КонецЕсли;
    КонецЦикла;

    Возврат Неопределено;

    КонецФункции
```
---
Отбор для группировки приход > 0, в других настройках не выводить отбор?
---
Ну это условная ситуация, мы же не знаем, какие из колонок отключены, чтобы отбор вешать на остальные. Разве что, в событии "ПриКомпоновкеРезультата"?
---
Попробовал. Так-то работает вроде как. Разумеется, структура/настройки у отчёта могут быть совершенно разные.

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

    СтандартнаяОбработка = Ложь;

    СхемаКомпоновкиДанных = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");

    НастройкиКомпоновкиДанных = КомпоновщикНастроек.ПолучитьНастройки();

    ПоляКД = Новый Массив();
    Для Каждого ВыбранноеПолеКД Из НастройкиКомпоновкиДанных.Выбор.Элементы Цикл
    Если Не ВыбранноеПолеКД.Использование Тогда
    ПоляКД.Добавить(ВыбранноеПолеКД.Поле);
    КонецЕсли;
    КонецЦикла;

    ГруппировкаКомпоновкиДанных = НайтиГруппировку(НастройкиКомпоновкиДанных.Структура, Новый ПолеКомпоновкиДанных("Номенклатура"));
    Если ГруппировкаКомпоновкиДанных <> Неопределено Тогда
    Для Каждого ПолеКД Из ПоляКД Цикл
    Элемент = ГруппировкаКомпоновкиДанных.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    Элемент.ЛевоеЗначение = ПолеКД;
    Элемент.ВидСравнения = ВидСравненияКомпоновкиДанных.Больше;
    Элемент.ПравоеЗначение = 0;
    КонецЦикла;
    ЗначениеПараметра = ГруппировкаКомпоновкиДанных.ПараметрыВывода.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("ВыводитьОтбор"));
    ЗначениеПараметра.Значение = ТипВыводаТекстаКомпоновкиДанных.НеВыводить;
    ЗначениеПараметра.Использование = Истина;
    КонецЕсли;

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

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

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

    КонецПроцедуры

    Функция НайтиГруппировку(Коллекция, ПолеКД)

    Для Каждого ГруппировкаКомпоновкиДанных Из Коллекция Цикл
    Для Каждого ПолеГруппировки Из ГруппировкаКомпоновкиДанных.ПоляГруппировки.Элементы Цикл
    Если ПолеГруппировки.Поле = ПолеКД Тогда
    Возврат ГруппировкаКомпоновкиДанных;
    КонецЕсли;
    КонецЦикла;
    ГруппировкаКомпоновкиДанных = НайтиГруппировку(ГруппировкаКомпоновкиДанных.Структура, ПолеКД);
    Если ГруппировкаКомпоновкиДанных <> Неопределено Тогда
    Возврат ГруппировкаКомпоновкиДанных;
    КонецЕсли;
    КонецЦикла;

    Возврат Неопределено;

    КонецФункции
```