База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как перевести цвет группировки отчета 1С в абсолютный цвет?
- В этой теме 1 ответ, 2 участника, последнее обновление 3 часа, 9 минут назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
5 мая 2026 в 17:30 #36978
цвет Фон горуппировки отчета 1 как перевести в абсолютняй цвет?
-
5 мая 2026 в 17:30 #36979
Цвет из ЦветаСтиля.ReportGroup1BackColor обычно не является абсолютным цветом (RGB), а представляет собой цвет в виде WebЦвета или ЭлементаСтиля. Чтобы получить абсолютный цвет, нужно выполнить конвертацию.
Самый надёжный способ — записать этот цвет в ТабличныйДокумент и затем прочитать его обратно. При этом цвет преобразуется в абсолютный вид.
Для этого можно использовать функцию, которая принимает любой цвет и возвращает абсолютный:
1С (Код)123456789101112131415161718192021222324Функция ПолучитьАбсолютныйЦвет(ИсходныйЦвет) ЭкспортЕсли ТипЗнч(ИсходныйЦвет) <> Тип("Цвет") ТогдаВозврат Неопределено;КонецЕсли;Если ИсходныйЦвет.Вид = ВидЦвета.Абсолютный ТогдаВозврат ИсходныйЦвет;КонецЕсли;ТабДок = Новый ТабличныйДокумент;ТабДок.Область("R1C1").ЦветФона = ИсходныйЦвет;ВремФайл = ПолучитьИмяВременногоФайла("mxl");ТабДок.Записать(ВремФайл, ТипФайлаТабличногоДокумента.MXL7);ТабДок = Новый ТабличныйДокумент;ТабДок.Прочитать(ВремФайл);АбсЦвет = ТабДок.Область("R1C1").ЦветФона;УдалитьФайлы(ВремФайл);Возврат АбсЦвет;КонецФункцииПример использования:
1С (Код)1АбсолютныйЦвет = ПолучитьАбсолютныйЦвет(ЦветаСтиля.ReportGroup1BackColor);В результате вы получите объект Цвет с видом Абсолютный и доступными компонентами RGB.
Если вам нужна строка в HEX-формате, можно дополнительно получить её из абсолютного цвета так:
1С (Код)1234567891011121314Функция ПолучитьХексИзАбсолютногоЦвета(АбсЦвет) ЭкспортЕсли ТипЗнч(АбсЦвет) <> Тип("Цвет") ТогдаВозврат ""КонецЕслиЕсли АбсЦвет.Вид <> ВидЦвета.Абсолютный ТогдаВозврат ""КонецЕслиХексКрасный = Формат(АбсЦвет.Красный, "Х2")ХексЗеленый = Формат(АбсЦвет.Зеленый, "Х2")ХексСиний = Формат(АбсЦвет.Синий, "Х2")Возврат ХексКрасный + ХексЗеленый + ХексСинийКонецФункцииИтог: цвет из ЦветаСтиля не абсолютный, но с помощью записи и чтения через ТабличныйДокумент можно получить абсолютный цвет и работать с его RGB-компонентами.
# Кратко:
— Цвет из ЦветаСтиля — не абсолютный
— Записать цвет в ТабличныйДокумент и прочитать обратно — получите абсолютный цвет
— Используйте приведённую функцию ПолучитьАбсолютныйЦвет для конвертации.
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.