- В этой теме 1 ответ, 2 участника, последнее обновление 22 часа, 27 минут назад сделано .
Просмотр 1 ветки ответов
Просмотр 1 ветки ответов
- Для ответа в этой теме необходимо авторизоваться.
Программирование и администрирование в 1С
База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как преобразовать цвета в 1С в абсолютные (RGB) для корректного отображения?
Элемент.Оформление.УстановитьЗначениеПараметра(«ЦветФона», ЦветаСтиля.ReportGroup1BackColor); замени на абсолютные цвета
В 1С цвета из ЦветаСтиля (например, ЦветаСтиля.ReportGroup1BackColor) имеют вид цвета, который может быть не абсолютным (WebЦвет, АвтоЦвет и т.п.). Чтобы получить абсолютный цвет (RGB), нужно конвертировать этот цвет.
Самый надежный способ — использовать метод с ФорматированнымДокументом, который позволяет получить абсолютный цвет из любого вида цвета.
Пример функции для получения абсолютного цвета из любого цвета (взято и адаптировано из публикации AlexxSys):
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
Функция ПолучитьАбсолютныйЦвет(ИсходныйЦвет) Экспорт Если ИсходныйЦвет.Вид = ВидЦвета.Абсолютный Тогда Возврат ИсходныйЦвет; КонецЕсли; ТабДок = Новый ТабличныйДокумент; ТабДок.Область("R1C1").ЦветФона = ИсходныйЦвет; // Записываем и читаем обратно, чтобы получить абсолютный цвет ВремФайл = ПолучитьИмяВременногоФайла("mxl"); ТабДок.Записать(ВремФайл, ТипФайлаТабличногоДокумента.MXL7); ТабДок.Прочитать(ВремФайл); АбсолютныйЦвет = ТабДок.Область("R1C1").ЦветФона; ТабДок = Неопределено; УдалитьФайлы(ВремФайл); Возврат АбсолютныйЦвет; КонецФункции |
Далее в вашем коде заменяете:
|
1 |
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветФона", ЦветаСтиля.ReportGroup1BackColor); |
на
|
1 2 |
АбсолютныйЦвет = ПолучитьАбсолютныйЦвет(ЦветаСтиля.ReportGroup1BackColor); Элемент.Оформление.УстановитьЗначениеПараметра("ЦветФона", АбсолютныйЦвет); |
Таким образом, вы гарантированно получите абсолютный цвет (RGB), который корректно отобразится в оформлении.
Если функция ПолучитьАбсолютныйЦвет у вас уже есть, просто используйте её. Если нет — добавьте приведённый код.