- В этой теме 1 ответ, 2 участника, последнее обновление 7 часов, 28 минут назад сделано .
Просмотр 1 ветки ответов
Просмотр 1 ветки ответов
- Для ответа в этой теме необходимо авторизоваться.
Программирование и администрирование в 1С
База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как программно изменить цвет фона поля группировки в макете СКД?
дай код программного изменения цвета поля макета группировки скд
Вот пример кода на 1С, который программно меняет цвет фона поля в макете группировки СКД. Предполагается, что у вас есть объект макета компоновки данных (МакетКомпоновки), и вы хотите изменить цвет фона для определённого поля группировки.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
Процедура ИзменитьЦветПоляГруппировки(МакетКомпоновки, ИмяПоляГруппировки, НовыйЦвет) ПараметрЦветФона = Новый ПараметрКомпоновкиДанных("ЦветФона"); Для каждого Макет Из МакетКомпоновки.Макеты Цикл Для каждого Строка Из Макет.Макет Цикл Если ТипЗнч(Строка) <> Тип("СтрокаТаблицыОбластиКомпоновкиДанных") Тогда Продолжить; КонецЕсли; Для каждого Ячейка Из Строка.Ячейки Цикл Если Строка(Ячейка.Элементы.Получить(0).Значение) = ИмяПоляГруппировки Тогда Ячейка.Оформление.УстановитьЗначениеПараметра(ПараметрЦветФона, НовыйЦвет); Прервать; // уменьшаем вложенность, выходим из внутреннего цикла после установки цвета КонецЕсли; КонецЦикла; КонецЦикла; КонецЦикла; КонецПроцедуры |
Пример вызова:
|
1 2 3 |
// Предположим, МакетКомпоновки - объект макета компоновки данных // Меняем цвет фона поля группировки "Склад" на светло-зелёный ИзменитьЦветПоляГруппировки(МакетКомпоновки, "Склад", "#CCFFCC"); |
Обратите внимание:
— Имя поля группировки должно точно совпадать с именем параметра в макете.
— Цвет задаётся в формате HTML (например, «#RRGGBB»).
— Если в макете несколько макетов, процедура пройдётся по всем.
— Для изменения цвета текста используйте параметр «ЦветТекста» аналогично.
Если нужно менять цвет условно, то лучше использовать условное оформление в СКД, но для прямого программного изменения макета этот способ подходит.