1С:Предприятие 8.3 (8.3.17.1851)
"Управление торговлей", редакция 10.3 (10.3.73.2)

Отчет СКД с формой. Программно устанавливаю использование выбранных полей, но в отчет все-равно попадает поле с параметром Использование=ЛОЖЬ

Почему такое может быть?
---
Вопрос снят. Сам тупил. СкомпоноватьРезультат был до моих манипуляций с выбранными полями. Поставил после и заработало.
---
Возможно, их использование включено на уровне "Отчет".
---
отключено
Скриншот

В этом отчете есть 4 варианта, в первых трех программное отключение выбранных полей работает, а в четвертом варианте нет.
---
Возможно использование этого поля стоит в пользовательских настройках. Можно копаться в полях при компоновке, но я бы сделал иначе:

Попробуйте вместо этого программно запрещать не использование, как "флажок",
а задавать ограничение этого поля для использования вообще. Лень прикреплять скриншот - см. "ограничение поля" - флажок "поле".
И, разумеется, удаляйте его из выбранных полей.

По крайней
---
Не нашел, где это. Все-таки скриншот бы помог.
---
Даже после программного удаления второго поля СКД упрямо показывает две колонки вместо одной (поле то осталось одно)
---
Ну зайдите в настройки компоновщика настроек в событии при компоновке и посмотрите, что у вас творится, например, вот тут.
---
И вдогонку, само поле можно удалить как-то так: КомпоновщикНастроек.Настройки.Выбор.Элементы.Удалить(КомпоновщикНастроек.Настройки.Выбор.Элементы.Получить(3));

А как обратно добавить не помню, но точно можно.
---
Так тоже делаю
---
Всю компоновку излазил вдоль и поперек, мог конечно что-то упустить. Три из четырех вариантов работают по настройкам, а четвертому варианту все настройки побарабану)
---
Процедура выводящая отчет:

```1c
    Если СброситьНастройки Тогда
    КомпоновщикНастроек.Восстановить(СпособВосстановленияНастроекКомпоновкиДанных.Полное);
    КомпоновщикНастроек.ЗагрузитьНастройки(ВариантОтчета.Настройки);
    Иначе
    НастройкиКД = КомпоновщикНастроек.ПолучитьНастройки();
    КомпоновщикНастроек.ЗагрузитьНастройки(ВариантОтчета.Настройки);
    КонецЕсли;
    ЭлементыФормы.Результат.Очистить();
    УстановитьОтборВОтчет(ПолеВводаМенеджеровВСписок, "Контрагент.ОсновнойМенеджерПокупателя", ВидСравненияКомпоновкиДанных.ВСписке, ОтборПоМенеджерамВкл);
    УстановитьОтборВОтчет(ПолеВводаГруппНоменклатуры, "Номенклатура", ВидСравненияКомпоновкиДанных.ВИерархии, ОтборПоГруппамВкл);
    УстановитьЗначениеПараметра("ДатаНачала", ПолеДатаНачала);
    УстановитьЗначениеПараметра("ДатаОкончания", ПолеДатаОкончания);
    ВыбранныеПоля = КомпоновщикНастроек.Настройки.Выбор.Элементы;
    МассивПолейКоличества = Новый Массив;
    МассивПолейКоличества.Добавить("КоличествоТ");
    МассивПолейКоличества.Добавить("КоличествоП");
    МассивПолейКоличества.Добавить("ПользовательскиеПоля.Поле1");
    МассивПолейСтоимости = Новый Массив;
    МассивПолейСтоимости.Добавить("СтоимостьТ");
    МассивПолейСтоимости.Добавить("СтоимостьП");
    МассивПолейСтоимости.Добавить("ПользовательскиеПоля.Поле2");
    Для Каждого ВыбранноеПоле Из ВыбранныеПоля Цикл
    Если ТипЗнч(ВыбранноеПоле) = Тип("ВыбранноеПолеКомпоновкиДанных") Тогда
    Если МассивПолейСтоимости.Найти(Строка(ВыбранноеПоле.Поле)) <> Неопределено Тогда
    ВыбранноеПоле.Использование = ПоказыватьСтоимость;
    КонецЕсли;
    Если МассивПолейКоличества.Найти(Строка(ВыбранноеПоле.Поле)) <> Неопределено Тогда
    ВыбранноеПоле.Использование = ПоказыватьКоличество;
    КонецЕсли;
    КонецЕсли;
    КонецЦикла;
    СкомпоноватьРезультат(ЭлементыФормы.Результат, ДанныеРасшифровки); //таб док на форме
    ЭлементыФормы.Результат.ПоказатьУровеньГруппировокКолонок(0);
    ЭлементыФормы.Результат.ПоказатьУровеньГруппировокСтрок(0);

    Если ВариантОтчета.Имя="Вариант4" Тогда
    МассивМаркеров=Новый Массив;
    МассивМаркеров.Добавить("янв.");
    МассивМаркеров.Добавить("февр.");
    МассивМаркеров.Добавить("март");
    МассивМаркеров.Добавить("апр.");
    МассивМаркеров.Добавить("май");
    МассивМаркеров.Добавить("июнь");
    МассивМаркеров.Добавить("июль");
    МассивМаркеров.Добавить("авг.");
    МассивМаркеров.Добавить("сент.");
    МассивМаркеров.Добавить("окт.");
    МассивМаркеров.Добавить("нояб.");
    МассивМаркеров.Добавить("дек.");

    Для Каждого Маркер Из МассивМаркеров Цикл
    ОбъединитьЯчейкиВТабличномДокументе(ЭлементыФормы.Результат, Маркер);
    КонецЦикла;
    КонецЕсли;

    УдаляемоеПолеКомпоновки1=Неопределено;
    Для Каждого тэКНКОлонки Из КомпоновщикНастроек.Настройки.Структура[0].Колонки[0].Выбор.Элементы Цикл
    Если Строка(тэКНКОлонки.Поле)="СтоимостьТ" Тогда
    Если Не ПоказыватьСтоимость Тогда
    УдаляемоеПолеКомпоновки1=тэКНКОлонки;
    КонецЕсли;
    тэКНКОлонки.Использование=ПоказыватьСтоимость;
    КонецЕсли;
    Если Строка(тэКНКОлонки.Поле)="КоличествоТ" Тогда
    Если Не ПоказыватьКоличество Тогда
    УдаляемоеПолеКомпоновки1=тэКНКОлонки;
    КонецЕсли;
    тэКНКОлонки.Использование=ПоказыватьКоличество;
    КонецЕсли;
    КонецЦикла;

    УдаляемоеПолеКомпоновки2=Неопределено;
    Для Каждого тэКНКОлонки Из КомпоновщикНастроек.Настройки.Выбор.Элементы Цикл
    Если Строка(тэКНКОлонки.Поле)="СтоимостьТ" Тогда
    Если Не ПоказыватьСтоимость Тогда
    УдаляемоеПолеКомпоновки2=тэКНКОлонки;
    КонецЕсли;
    КонецЕсли;
    Если Строка(тэКНКОлонки.Поле)="КоличествоТ" Тогда
    Если Не ПоказыватьКоличество Тогда
    УдаляемоеПолеКомпоновки2=тэКНКОлонки;
    КонецЕсли;
    КонецЕсли;
    КонецЦикла;

    Если Не УдаляемоеПолеКомпоновки1=Неопределено Тогда
    КомпоновщикНастроек.Настройки.Структура[0].Колонки[0].Выбор.Элементы.Удалить(УдаляемоеПолеКомпоновки1);
    КонецЕсли;

    Если Не УдаляемоеПолеКомпоновки2=Неопределено Тогда
    КомпоновщикНастроек.Настройки.Выбор.Элементы.Удалить(УдаляемоеПолеКомпоновки2);
    КонецЕсли;
```
---
Вопрос снят. Сам тупил. СкомпоноватьРезультат был до моих манипуляций с выбранными полями. Поставил после и заработало.