Велосипед из статей на инфостарте, в одной из них указали что для костыля через форматированный текст --> чтмл нужно дважды установить цвет фона, иначе он не устанавливается в элемент.
ниже укороченный вариант на костылях, без проверки передан нам абсолютный или какой ещё цвет (если мы выбираем цвет через диалог выбора цветов (платформенный) то получаем цвет с цветами ргб -1,-1,-1) .
https://infostart.ru/public/484812/
https://infostart.ru/1c/articles/1304206/ - здесь и увидел комментарий про повторную установку стиля.
```
&НаКлиентеНаСервереБезКонтекста
Функция АбсолютныйЦвет(Цвет)
//ОбъектМетаданныхСтиля = Метаданные.ЭлементыСтиля.Найти(Сред(Строка(Цвет), 8))
ТекстХТМЛДокумента = "";
Шаблон = "0123456789ABCDEF";
ФорматированныйДокумент = Новый ФорматированныйДокумент;
ФорматированныйДокумент.Добавить("ОпределениеЦвета", Тип("ТекстФорматированногоДокумента"));
ФорматированныйДокумент.Элементы[0].Элементы[0].ЦветФона = Цвет;
ФорматированныйДокумент.Элементы[0].Элементы[0].ЦветФона = Цвет; // !!! баг платформы.
ФорматированныйДокумент.ПолучитьHTML(ТекстХТМЛДокумента, Новый Структура);
НомерСимволаЦвета = Найти(ТекстХТМЛДокумента, "background-color: #");
ЦветРезультатHex = Сред(ТекстХТМЛДокумента, НомерСимволаЦвета + 19, 6);
Возврат Новый Цвет(
итКонвертироватьHexВDec(Сред(ЦветРезультатHex, 1, 2)),
итКонвертироватьHexВDec(Сред(ЦветРезультатHex, 3, 2)),
итКонвертироватьHexВDec(Сред(ЦветРезультатHex, 5, 2)));
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция итКонвертироватьHexВDec(Знач ЧислоСтрокой)
Результат = 0;
Шаблон = "0123456789ABCDEF";
ЧислоСтрокой = ВРег(Строка(ЧислоСтрокой));
Для ТекущийСимвол = 1 По СтрДлина(ЧислоСтрокой) Цикл
ПозицияВШаблоне = Найти(Шаблон, Сред(ЧислоСтрокой, ТекущийСимвол, 1))-1;
Результат = Результат * СтрДлина(Шаблон) + ПозицияВШаблоне;
КонецЦикла;
Возврат Результат;
КонецФункции
```
Комментарии
Отправить комментарий