Здравствуйте! Встала задача скрыть в таблице строки по отбору. Исходные данные: внешняя обработка с таблицей "Товары", необходимо в таблице по нажатию кнопки оставить только те строки, в которых есть номенклатура из заранее сформированного списка. Формы управляемые, пытаюсь сделать через условное оформление:

```1c
    УО = УсловноеОформление;
    УО.Элементы.Очистить();
    НовУО = УО.Элементы.Добавить();

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

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

    НовУО.Оформление.УстановитьЗначениеПараметра("Отображать", Ложь);
    НовУО.Использование = Истина;
```

В итоге строки, которые попали под отбор становятся просто пустыми. Можно ли как-то их совсем скрыть и оставить только нужные?
---
В настройке условного оформления формы прописать видимость всех полей в таблице!
в коде формы прописать что-то типа:
(у меня в примере это кнопка)

```1c
    &НаКлиенте
    Процедура ПоказатьРасхождения(Команда)
    ВключитьУОНаСервере(Истина);
    КонецПроцедуры

    &НаСервере
    Процедура ВключитьУОНаСервере(Использование)

    УО = ЭтаФорма.УсловноеОформление.Элементы.Получить(0);
    УО.Использование = Использование;

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

Скриншот "свойства формы"
В поле "Оформление" Видимость = Ложь
---
В настройке условного оформления формы прописать видимость всех полей в таблице!
в коде формы прописать что-то типа:
(у меня в примере это кнопка)

```1c
    &НаКлиенте
    Процедура ПоказатьРасхождения(Команда)
    ВключитьУОНаСервере(Истина);
    КонецПроцедуры

    &НаСервере
    Процедура ВключитьУОНаСервере(Использование)

    УО = ЭтаФорма.УсловноеОформление.Элементы.Получить(0);
    УО.Использование = Использование;

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

Скриншот "свойства формы"
В поле "Оформление" Видимость = Ложь
---
на досуге проверю, спасибо)
---
А зачем через УО, а не просто отбор?
---
Ну в итоге добавил служебный реквизит и сделал через ОтборСтрок, ибо не было нужной колонки. И да, речь идет о ТЗ, а не о динамических списках: с ними было бы проще)
---
визит и сделал через ОтборСтрок, ибо не было нужной колонки. И да, речь идет о ТЗ, а не о динамических списках: с ними было бы проще)
спасибо за подсказку!
---
Добавлю свой коммент, после того как несколько часов поковырялся в этом дерьме)
Чтобы скрыть строку в табличном поле, нужно в условном оформлении установить свойство Видимость = Ложь для ВСЕХ колонок Табличного поля которые выведены на форме.
Отличие Отображать от Видимость
Свойство условного оформления Отображать - влияет на отображение данных в ячейки строки. Т.е. если для всех колонок установить свойство Отображать = Ложь, то строка останется видна, но во все колонки будут с пустыми значениями.
---
```1c
    ЭлементОформления = УсловноеОформление.Элементы.Добавить();
    ДобавитьОтборУсловногоОформления(ЭлементОформления,"ПомещенияПлатаКУ.ФиктивноеПомещение",ВидСравненияКомпоновкиДанных.Равно,Истина);
    ДобавитьПолеУсловногоОформления(ЭлементОформления,"ПомещенияПлатаКУКолонка1");
    ДобавитьПолеУсловногоОформления(ЭлементОформления,"ПомещенияПлатаКУКолонка2");
    ДобавитьПолеУсловногоОформления(ЭлементОформления,"ПомещенияПлатаКУКолонка3");
    ДобавитьПолеУсловногоОформления(ЭлементОформления,"ПомещенияПлатаКУКолонка4");
    ЭлементОформления.Оформление.УстановитьЗначениеПараметра("Видимость", Ложь);

    &НаСервере
    Процедура ДобавитьОтборУсловногоОформления(ЭлементОформления, ЛевоеЗначение, ВидСравнения, ПравоеЗначение )

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

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

    &НаСервере
    Процедура ДобавитьПолеУсловногоОформления(ЭлементОформления,Поле)

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

    КонецПроцедуры
```
---
Добрый день! Задача- скрыть строки в табличной части по списку (СписокДляОтбора). СписокДляОтбора заранее сформирован, форма управляемая. Но в 1С:Предприятие 8.3 (8.3.6.2041) ничего не происходит, а вот в (8.3.10.2252 и далее) все прекрасно срабатывает. Пользователь категорически против смены платформы. Как быть?

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

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

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

    НовУО.Оформление.УстановитьЗначениеПараметра("Видимость", Ложь);

    НовУО.Использование = Истина;

    КонецПроцедуры
    &НаСервере
    Процедура ДобавитьОтборУсловногоОформления(ЭлементОформления, ЛевоеЗначение, ВидСравнения, ПравоеЗначение )Экспорт

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

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

    &НаСервере
    Процедура ДобавитьПолеУсловногоОформления(ЭлементОформления,Поле) Экспорт

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

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

    &НаСервере
    Процедура УсловноеОф(СписокДляОтбора)//2022
    УО = УсловноеОформление;
    УО.Элементы.Очистить();

    ОбщийМодуль2022.УсловноеОформление(УО,Элементы.Расходы2.Имя,"Объект.Расходы.ВидДохода",СписокДляОтбора);

    ЭлементОформления = УсловноеОформление.Элементы.Добавить();
    ОбщийМодуль2022.ДобавитьОтборУсловногоОформления(ЭлементОформления,"Расходы2.ВидДохода",ВидСравненияКомпоновкиДанных.Равно,Истина);
    ОбщийМодуль2022.ДобавитьПолеУсловногоОформления(ЭлементОформления,"Расходы2НомерСтроки");
    ОбщийМодуль2022.ДобавитьПолеУсловногоОформления(ЭлементОформления,"Расходы2ВидДохода");
    ОбщийМодуль2022.ДобавитьПолеУсловногоОформления(ЭлементОформления,"Расходы2Контрагент");
    ОбщийМодуль2022.ДобавитьПолеУсловногоОформления(ЭлементОформления,"Расходы2Представитель");
    ОбщийМодуль2022.ДобавитьПолеУсловногоОформления(ЭлементОформления,"Расходы2Валюта");
    ОбщийМодуль2022.ДобавитьПолеУсловногоОформления(ЭлементОформления,"Расходы2Сумма");
    ОбщийМодуль2022.ДобавитьПолеУсловногоОформления(ЭлементОформления,"Расходы2СуммаВОсновнойВалюте");
    ОбщийМодуль2022.ДобавитьПолеУсловногоОформления(ЭлементОформления,"Расходы2СуммаВыдано");
    ОбщийМодуль2022.ДобавитьПолеУсловногоОформления(ЭлементОформления,"Расходы2СуммаUZS");
    ОбщийМодуль2022.ДобавитьПолеУсловногоОформления(ЭлементОформления,"Расходы2СуммаФ1");
    ОбщийМодуль2022.ДобавитьПолеУсловногоОформления(ЭлементОформления,"Расходы2СуммаФ2");
    ОбщийМодуль2022.ДобавитьПолеУсловногоОформления(ЭлементОформления,"Расходы2СуммаФ3");
    ОбщийМодуль2022.ДобавитьПолеУсловногоОформления(ЭлементОформления,"Расходы2Исполнение");
    ЭлементОформления.Оформление.УстановитьЗначениеПараметра("Видимость", Ложь);

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