Проблема
Потребовалось отображать установленный пользователем цвет в таблице значений в управляемых формах. На обычных формах это делалось просто, на управляемых предлагается использовать условное оформление. Но проблема в том, что для 24-х битного цвета возможно 65536 значений и использование условного оформления для этой цели не подходит. Конечно его можно задать программно, но это выглядит как гигантский костыль.
Поиск в интернете результатов не дал, кроме советов по условному оформлению. Ну почему должно быть всё так сложно, что может быть проще отображения цвета...
Стоп!
Ячейка таблицы формы может отображать картинку. Попробуем это использовать.
Решение
Оказалось всё очень просто.
У нас есть таблица значений. В одной колонке хранится цвет (тип Цвет, но можно и в любом другом немного адаптировав решение), в другой колонке будем отображать этот цвет (тип Картинка).
Нужно в цикле пробежать все строки таблицы и установить картинку нужного цвета. Где взять столько картинок - будем создавать в памяти "на лету".
- Создаём буфер двоичных данных, например из HEX-строки. Это двоичные данные 24-х битной картинки формата BMP размером 1х1 пиксель.
- Приводим цвет 1С к абсолютному цвету чтобы получить его компоненты.
- Устанавливаем байты в буфере отвечающие за компоненты цвета пикселя.
- Получаем из буфера двоичные данные.
- Получаем картинку из двоичных данных.
Как-то так. Кому просто нужен код и нет желания заморачиваться - качайте обработку из статьи Настройка цветов серий в диаграмме отчета на СКД. Там есть форма выбора цветов.