Имя: Пароль:
1C
1C 7.7
v7 Не пойму как смешиваются цвета RGB в ячейках таблицы
0 ---Fix---
 
18.12.14
09:02
Заполняю таблицу программным путем, попутно раскрашивая итоговые значения.
В моем понимании одинаковые значения R, G, B должны всегда давать одинаковые оттенки серого цвета.

//*******************************************
Процедура Сформировать()
    Таб = СоздатьОбъект("Таблица");
    Обл = Таб.Область(1,1,1,1); //Обл = ОбластьТаблицы
    Обл.ЦветФона(224,224,224);
    Обл = Таб.Область(2,1,2,1);
    Обл.ЦветФона(192,192,192);
    Обл = Таб.Область(3,1,3,1);
    Обл.ЦветФона(164,164,164);
    
    Таб.Показать();
КонецПроцедуры


А здесь в первой ячейке светло-зеленый вместо светло-серого. Почему?
1 dk
 
18.12.14
09:10
в 7-ке урезенная палитра - вроде 64 цвета
т.е. все твои ргб приводятся к этой палитре
2 DrZombi
 
гуру
18.12.14
09:12
(1) Если только не 16 :)
3 dk
 
18.12.14
09:17
не, открой цвет фона в ячейке таблицы - там 8колонок и 7 строк
4 ---Fix---
 
18.12.14
09:21
(1) Даже если передать конечное числовое значение вместо RGB он все равно его преобразует.

//======================================================================
Функция СтрокуВЦвет(пЦветоваяСтрока)
    Результат = 0;
    СЗ = глПреобразоватьСтрокуВСписокЗначений(пЦветоваяСтрока);
    КолвоЗначений = СЗ.РазмерСписка();
    Для ит=1 По КолвоЗначений Цикл
        стрЗначение = "";
        Значение = Число(СЗ.ПолучитьЗначение(ит, стрЗначение));
        Если ит = 1 Тогда
            Результат = Значение;
        ИначеЕсли ит = 2 Тогда
            //Результат = Результат + Значение * 256
            Результат = Результат + Значение * 64
        ИначеЕсли ит = 3 Тогда
            //Результат = Результат + Значение * 65536
            Результат = Результат + Значение * 4096
        КонецЕсли;
    КонецЦикла;

    Возврат Результат;
    
КонецФункции // СтрокуВЦвет

//*******************************************
Процедура Сформировать()
    Таб = СоздатьОбъект("Таблица");
    Обл = Таб.Область(1,1,1,1); //Обл = ОбластьТаблицы
    Обл.ЦветФона(СтрокуВЦвет("16,16,16"));
    Обл = Таб.Область(2,1,2,1);
    Обл.ЦветФона(СтрокуВЦвет("32,32,32"));
    Обл = Таб.Область(3,1,3,1);
    Обл.ЦветФона(СтрокуВЦвет("48,48,48"));
    
    Таб.Показать();
КонецПроцедуры


т.е это никак не обойти?
5 dk
 
18.12.14
09:24
делать раскраску в Excel
6 trad
 
18.12.14
09:25
Штатная палитра - 56 цветов
В ВК tabledoc есть средства использовать палитру в 256 цветов
Есть еще йоксел, там реальный RGB
7 dk
 
18.12.14
09:25
либо пользоваться палитрой 1с
8 lavalit
 
18.12.14
10:34
Пользуй формекс... оно позволяет полный набор цветов вывести. У 1С на борту действительно ооочень мало вариантов с цветами.... У меня куча журналов и табчастей документов которые покрашены нормальными цветами. При большой охоте можно цвет как в РГБ указывать так и в шестнадцатиричном коде.
9 lavalit
 
18.12.14
11:19
10 lavalit
 
18.12.14
11:30
А одинаковые значения РГБ аккурат будут градацией серого
https://cloud.mail.ru/public/eb5735708f27/Снимок%20экрана.png