Имя: Пароль:
1C
 
Условное оформление группировки
,
0 Dantes80
 
25.12.24
13:07
Привет, с таким вопросом, есть динамическая таблица и в ней группировка, как сделать условное оформление группировки?
ps. отдельно по полям в группе не ставится оформление
1 Dantes80
 
25.12.24
13:08
УТ11
Если что сам код таблицы и уо:
МассивТипаВыбора = Новый Массив;
    МассивТипаВыбора.Добавить(Тип("ТаблицаЗначений"));
    ОписаниеТипаВыбора = Новый ОписаниеТипов(МассивТипаВыбора);
    МассивРеквизитов = Новый Массив;
    МассивРеквизитов.Добавить(Новый РеквизитФормы("ПредметыЛизинга", ОписаниеТипаВыбора, "", "ТЗН"));
    
    ТЗ = Новый ТаблицаЗначений;              

    ТЗ.Колонки.Добавить("Наименование", ОбщегоНазначения.ОписаниеТипаСтрока(100));
    ТЗ.Колонки.Добавить("КоличествоБП2", ОбщегоНазначения.ОписаниеТипаЧисло(10, 3));
    ТЗ.Колонки.Добавить("КоличествоБП3", ОбщегоНазначения.ОписаниеТипаЧисло(10, 3));
    
    Для Каждого Колонка Из ТЗ.Колонки Цикл
        МассивРеквизитов.Добавить(Новый РеквизитФормы(Колонка.Имя, Колонка.ТипЗначения,"ПредметыЛизинга"));  
    КонецЦикла;      
    
    ИзменитьРеквизиты(МассивРеквизитов);      
    ТаблицаПолейВыбора = Элементы.Добавить("ТЗН", Тип("ТаблицаФормы"));
    ТаблицаПолейВыбора.ПутьКДанным = "ПредметыЛизинга";
    ТаблицаПолейВыбора.Отображение = ОтображениеТаблицы.Список;
    
    НовыйЭлемент = Элементы.Добавить("Наименование", Тип("ПолеФормы"), ТаблицаПолейВыбора);      
    НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода;
    НовыйЭлемент.ПутьКДанным = "ПредметыЛизинга.Наименование";
    
    Группа = Элементы.Добавить("Количество",Тип("ГруппаФормы"),ТаблицаПолейВыбора);
    Группа.Вид = ВидГруппыФормы.ГруппаКолонок;
    
    Для Каждого Колонка Из ТЗ.Колонки Цикл
        Если СтрНайти(Колонка.Имя,"К") = 1 Тогда         
            НовыйЭлемент = Элементы.Добавить(Колонка.Имя, Тип("ПолеФормы"), ТаблицаПолейВыбора);      
            НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода;
            НовыйЭлемент.ПутьКДанным = "ПредметыЛизинга." + Колонка.Имя;
            Элементы.Переместить(НовыйЭлемент,Группа,Группа);
        КонецЕсли;    
    КонецЦикла;              
    
    //Заполнение данными
    НовСтр = ТЗ.Добавить();
    НовСтр.Наименование = "Тарелки";
    НовСтр.КоличествоБП2 = 10;
    НовСтр.КоличествоБП3 = 10;
    
    НовСтр = ТЗ.Добавить();
    НовСтр.Наименование = "Ложки";
    НовСтр.КоличествоБП2 = 9;
    НовСтр.КоличествоБП3 = 10;
    
    НовСтр = ТЗ.Добавить();
    НовСтр.Наименование = "Вилки";
    НовСтр.КоличествоБП2 = 2;
    НовСтр.КоличествоБП3 = 2;

    НовСтр = ТЗ.Добавить();
    НовСтр.Наименование = "Чашки";
    НовСтр.КоличествоБП2 = 6;
    НовСтр.КоличествоБП3 = 2;  
    
    ЭтаФорма.ЗначениеВРеквизитФормы(ТЗ, "ПредметыЛизинга");
    
    //УО
    НовыйЭлементУО = УсловноеОформление.Элементы.Добавить();
                                                                                        
    НастройкаОтбора = НовыйЭлементУО.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    НастройкаОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПредметыЛизинга.КоличествоБП2");
    НастройкаОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно;
    НастройкаОтбора.ПравоеЗначение = Новый ПолеКомпоновкиДанных("ПредметыЛизинга.КоличествоБП3");
    
    ОформлениеЦветФона = НовыйЭлементУО.Оформление.Элементы.Найти("ЦветФона");
    ОформлениеЦветФона.Значение = WebЦвета.ЛососьСветлый;
    ОформлениеЦветФона.Использование = Истина;
    
    ОформляемоеПоле = НовыйЭлементУО.Поля.Элементы.Добавить();
    ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("ПредметыЛизингаКоличествоБП3");
2 Dantes80
 
25.12.24
13:24
Сейчас почитал, что УО нельзя применять к группам, нужно к самим полям, не подскажете какой путь указать, что бы применить к полям количествобп2/3?
Пробовал: ПредметыЛизингаКоличествоБП3, ПредметыЛизингаКоличествоКоличествоБП3,ТЗНКоличествоБП3,ТЗНКоличествоКоличествоБП3,ТЗНПредметыЛизингаКоличествоБП3

При УО таблицы ТЗН в целом, оформляется вся строка нормально, а вот к полям попасть вообще не могу
3 Волшебник
 
25.12.24
13:28
абстрактная херня
4 Волшебник
 
25.12.24
13:28
ложки, тарелки... в лизинг... ага
5 Dantes80
 
25.12.24
13:33
(4) очевидно же, что ложки тарелки для примера на тестовую обработку закинул, не сразу же данными заполнят
6 Волшебник
 
25.12.24
13:34
(5) Очевидно же, что Вы жертва БСП и вообще не понимаете сути работы программиста 1С
7 Dantes80
 
25.12.24
13:38
(6) подскажите уже пожалуйста, как обратиться к полю, уже все форумы перерыл, вообще найти не могу. Понимаю что ответ скорее всего прям очевидный будет
8 Волшебник
 
25.12.24
13:40
(7) Ой, хватит заливать... Форумы перерыл... Сколько пальцев на фото?

9 Dantes80
 
25.12.24
13:42
(8) 6)именно что перерыл, ищу по запросу "условное оформление группировки"
10 НоваяВолна
 
25.12.24
14:44
11 Волшебник
 
25.12.24
14:47
(9) Что ты врёшь всем в лицо?! Как ты посмел?!
12 Мультук
 
гуру
25.12.24
16:14
(1)

Я думаю, что проблема в УсловноеОформление.ДоступныеПоляПолей
Там пусто.

Вероятно они заполняются "чудесным образом" и при при добавлении динамически  созданных реквизитов должны (кому должны ?) перезаполниться.

В ИТС ничего умного не нашёл

P.S.

По "УсловноеОформление.ДоступныеПоляПолей" нашёл чудесное (я про условие). Так что видимо я прав.


Если ЭтотОбъект[ИмяСписка].УсловноеОформление.ДоступныеПоляПолей.НайтиПоле(ПолеЕстьНевалидныеПодписиПоМЧД) <> Неопределено Тогда
		
			Элемент = ЭтотОбъект[ИмяСписка].УсловноеОформление.Элементы.Добавить();
			Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ЦветТекстаНеУдачнаяПроверкаМЧД);
			
			ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
			ОтборЭлемента.ЛевоеЗначение = ПолеЕстьНевалидныеПодписиПоМЧД;
			ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
			ОтборЭлемента.ПравоеЗначение = Истина;
			
		КонецЕсли;
2 + 2 = 3.9999999999999999999999999999999...