Обработка конвертирует цвет RGB (155, 25, 34) в формат HEX (#9B1922) и обратно.
В обработке используются новые функции работы с двоичными данными платформы 8.3.11 (ПобитовоеИли, ПобитовыйСдвигВлево, ЧислоИзШестнадцатеричнойСтроки).
Тестирование проводилось на платформае: 1С:Предприятие 8.3 (8.3.11.2954).
Важно! У конфигурации установить режим совместимости не ниже 8.3.11 или "Не использовать".
&НаКлиенте
Процедура ВыполнитьПреобразование()
HEX = RGB_HEX(Red, Green, Blue);
RED = ЧислоИзШестнадцатеричнойСтроки("0x" + Сред(HEX, 2, 2));
GREEN = ЧислоИзШестнадцатеричнойСтроки("0x" + Сред(HEX, 4, 2));
BLUE = ЧислоИзШестнадцатеричнойСтроки("0x" + Сред(HEX, 6, 2));
RGB = Строка(RED) + ", " + Строка(GREEN) + ", " + Строка(BLUE);
КонецПроцедуры
&НаКлиенте
Функция RGB_HEX(Знач Red, Знач Green, Знач Blue)
Возврат "#" + Сред(DecToAny(ПобитовоеИли(ПобитовоеИли(ПобитовоеИли(Blue, ПобитовыйСдвигВлево(Green, 8)), ПобитовыйСдвигВлево(Red, 16)), ПобитовыйСдвигВлево(1, 24)), 16), 2);
КонецФункции
&НаКлиенте
Функция DecToAny(Знач тЗначение, тОснование)
тРезультат = "";
Пока тЗначение > 0 Цикл
тРезультат = Сред("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ", тЗначение%тОснование + 1, 1) + тРезультат;
тЗначение = Цел(тЗначение/тОснование) ;
КонецЦикла;
Возврат тРезультат;
КонецФункции
Функцию преобразования из 10 в любую систему исчисления взял отсюда: