Условное оформление: скрытие строк в таблице

1. RocKeR_13 1409 02.12.16 14:53 Сейчас в теме
Здравствуйте! Встала задача скрыть в таблице строки по отбору. Исходные данные: внешняя обработка с таблицей "Товары", необходимо в таблице по нажатию кнопки оставить только те строки, в которых есть номенклатура из заранее сформированного списка. Формы управляемые, пытаюсь сделать через условное оформление:
	УО = УсловноеОформление;
	УО.Элементы.Очистить();
	НовУО = УО.Элементы.Добавить();
	
   	ОформляемоеПоле = НовУО.Поля.Элементы.Добавить();
  	ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных(Элементы.Товары.Имя);
	ОформляемоеПоле.Использование = Истина;
	
 	ЭлементОтбора = НовУО.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
   	ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.Номенклатура");   
    ЭлементОтбора.Использование = Истина;
	ЭлементОтбора.ПравоеЗначение = СписокДляОтбора; //сформированный список значений из ссылок на номенклатуру
	ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.НеВСписке;
	
	НовУО.Оформление.УстановитьЗначениеПараметра("Отображать", Ложь);
    НовУО.Использование = Истина;
Показать

В итоге строки, которые попали под отбор становятся просто пустыми. Можно ли как-то их совсем скрыть и оставить только нужные?
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
2. Ганс 02.12.16 15:04 Сейчас в теме +3 $m
В настройке условного оформления формы прописать видимость всех полей в таблице!
в коде формы прописать что-то типа:
(у меня в примере это кнопка)
&НаКлиенте
Процедура ПоказатьРасхождения(Команда)
	ВключитьУОНаСервере(Истина);
КонецПроцедуры

&НаСервере
Процедура ВключитьУОНаСервере(Использование)
    
 УО = ЭтаФорма.УсловноеОформление.Элементы.Получить(0);
 УО.Использование =  Использование; 
   
КонецПроцедуры
Показать



Скриншот "свойства формы"
В поле "Оформление" Видимость = Ложь
Прикрепленные файлы:
Vitaly1C8; nvpwasp; kabantus; LavrJr; bahbah; Brook; vovan_victory; корум; +8 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Ганс 02.12.16 15:04 Сейчас в теме +3 $m
В настройке условного оформления формы прописать видимость всех полей в таблице!
в коде формы прописать что-то типа:
(у меня в примере это кнопка)
&НаКлиенте
Процедура ПоказатьРасхождения(Команда)
	ВключитьУОНаСервере(Истина);
КонецПроцедуры

&НаСервере
Процедура ВключитьУОНаСервере(Использование)
    
 УО = ЭтаФорма.УсловноеОформление.Элементы.Получить(0);
 УО.Использование =  Использование; 
   
КонецПроцедуры
Показать



Скриншот "свойства формы"
В поле "Оформление" Видимость = Ложь
Прикрепленные файлы:
Vitaly1C8; nvpwasp; kabantus; LavrJr; bahbah; Brook; vovan_victory; корум; +8 Ответить
5. RocKeR_13 1409 02.12.16 21:15 Сейчас в теме
(2) на досуге проверю, спасибо)
3. naa1c 82 02.12.16 16:13 Сейчас в теме
(0) А зачем через УО, а не просто отбор?
4. RocKeR_13 1409 02.12.16 21:15 Сейчас в теме
(3) Ну в итоге добавил служебный реквизит и сделал через ОтборСтрок, ибо не было нужной колонки. И да, речь идет о ТЗ, а не о динамических списках: с ними было бы проще)
Дмитрий74Чел; Merkalov; teyana; +3 Ответить
6. teyana 38 29.03.21 17:58 Сейчас в теме
(4)
визит и сделал через ОтборСтрок, ибо не было нужной колонки. И да, речь идет о ТЗ, а не о динамических списках: с ними было бы проще)

спасибо за подсказку!
Merkalov; +1 Ответить
7. kirich 19.04.21 17:58 Сейчас в теме
Добавлю свой коммент, после того как несколько часов поковырялся в этом дерьме)
Чтобы скрыть строку в табличном поле, нужно в условном оформлении установить свойство Видимость = Ложь для ВСЕХ колонок Табличного поля которые выведены на форме.
Отличие Отображать от Видимость
Свойство условного оформления Отображать - влияет на отображение данных в ячейки строки. Т.е. если для всех колонок установить свойство Отображать = Ложь, то строка останется видна, но во все колонки будут с пустыми значениями.
andryandry; user1895464; +2 Ответить
8. kirich 19.04.21 18:02 Сейчас в теме
ЭлементОформления = УсловноеОформление.Элементы.Добавить();
		ДобавитьОтборУсловногоОформления(ЭлементОформления,"ПомещенияПлатаКУ.ФиктивноеПомещение",ВидСравненияКомпоновкиДанных.Равно,Истина);
ДобавитьПолеУсловногоОформления(ЭлементОформления,"ПомещенияПлатаКУКолонка1");
ДобавитьПолеУсловногоОформления(ЭлементОформления,"ПомещенияПлатаКУКолонка2");
ДобавитьПолеУсловногоОформления(ЭлементОформления,"ПомещенияПлатаКУКолонка3");
ДобавитьПолеУсловногоОформления(ЭлементОформления,"ПомещенияПлатаКУКолонка4");
ЭлементОформления.Оформление.УстановитьЗначениеПараметра("Видимость", Ложь);

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

&НаСервере
Процедура ДобавитьПолеУсловногоОформления(ЭлементОформления,Поле)
	
	ПолеОформления = ЭлементОформления.Поля.Элементы.Добавить();
	ПолеОформления.Поле = Новый ПолеКомпоновкиДанных(Поле);
	ПолеОформления.Использование = Истина;
	
КонецПроцедуры
Показать
wild83; AlexeyPapanov; vgrichuk; kabantus; +4 Ответить
9. Guzal_i 13.12.22 22:27 Сейчас в теме
(8) Добрый день! Задача- скрыть строки в табличной части по списку (СписокДляОтбора). СписокДляОтбора заранее сформирован, форма управляемая. Но в 1С:Предприятие 8.3 (8.3.6.2041) ничего не происходит, а вот в (8.3.10.2252 и далее) все прекрасно срабатывает. Пользователь категорически против смены платформы. Как быть?


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

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

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

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

&НаСервере
Процедура УсловноеОф(СписокДляОтбора)//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Исполнение");
	ЭлементОформления.Оформление.УстановитьЗначениеПараметра("Видимость", Ложь);
	
КонецПроцедуры
Показать
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот