Имя: Пароль:
1C
1C 7.7
v7: Цветовая палитра 1с 7.7
,
0 Amig0_0
 
13.05.19
12:13
Всем привет!
В очередной раз столкнулся с проблемой цветов в 7.7 ...((
Вопрос довольно глубокий и комплексный, по этому опишу в 2-х словах.
Есть гистограмма (столбцы) с количеством точек равным количеству месяцев в периоде. Количество серий (непосредственно столбец) = количество производителей участвовавших в продажах.
Гистограмма сама распределяет цвета по производителям. И если построить ее за 1 месяц, никаких проблем не возникает, но если построить за условно, год, одному и тому же производителю в разном месяце может присвоить разные цвета.
Причины понятны: сортировка. В одном месяце производитель может быть лидером, в другом отстающим. Но есть задача, раскрасить их одинаково (естесстно).
Я подумал создать ТЗ с производителями и присвоить каждому свой цвет, но ни нашел НИ одной нормально работающей механики градации цвета без повторок для RGB. Семерка понимает меньше 60 цветов и этого достаточно, на крайняк буду переприсваивать цвета по второму кругу. Но как адекватно сделать градиент, так увы и не разобрался...

Вот подумал, может у кого есть достойное предложение по данной проблеме?
И еще, 1с сама нормально присваивает цвета. Есть метод позволяющий установить цвет для серии (столбца), А есть ли возможность предварительно его получить? Это тоже помогло бы.
Заранее спасибо!
1 ДенисЧ
 
13.05.19
12:14
вставь ексель-объект и в нём рисуй диаграмму. Там они удобней
2 Amig0_0
 
13.05.19
12:20
(1) Типа каждый раз при формировании отчета создавать Эксель - документ и отрисовывать там диаграмму программно?
3 Amig0_0
 
13.05.19
12:28
(1) боюсь это не очень - то подходит
4 Mikeware
 
13.05.19
12:39
(3) у вас ежеминутно формируются отчеты за прошедшее десятилетие? :-)
если серьезно, то есть ROM-Chart, есть ActiveX'ы всякие
5 trad
 
13.05.19
12:44
(2) нет, отдельно эксель-документ создавать не нужно
нужно диаграмму экселя внедрить в таблицу 1с
семерка поддерживает технологию внедрения оле-объектов
6 Amig0_0
 
13.05.19
12:54
(5) оля объектом может быть эксель?
7 Amig0_0
 
13.05.19
12:54
*оле
8 Вася Теркин
 
13.05.19
13:09
(6) Майкрософт это скрывает. Так что не очень-то.
9 Вася Теркин
 
13.05.19
13:10
А формекс не умеет подрисовывать цвета и всякое такое?
10 Amig0_0
 
13.05.19
13:16
(9) Ничего сверхестественного. Во всяком случае в данном контексте.
11 Amig0_0
 
13.05.19
13:19
Вообще, я вот думаю, весь вопрос можно свести к одному: как получить действительно используемый перечень цветов, которые 1с 7.7. умеет показывать на таблицах)
(4) Скачал ROM-Chart, щас посмотрю что это, может быть интересным, спасибо!
12 Mikeware
 
13.05.19
13:30
(11) загугли что-нибудь типа  "цветовая палитра 1с 7.7"
http://online-anna.ru/soft-01/rgb-i-sreda-programmirovaniya-1s-7-7.php
"оценить все скудное многообразие красок в среде 1С 7.7."©
13 trad
 
13.05.19
13:43
(11) Цвета которые 1с 7.7 умеет показывать штатно
https://www.dropbox.com/s/k1p1pv4yka463w5/Цвета_.mxl?dl=0
14 trad
 
13.05.19
13:44
Цвета которые 1с 7.7 умеет показывать (в ячейках), но устанавливать их надо через ВК tabledoc.dll
https://www.dropbox.com/s/kmhoo6l2ugyuiiy/Цвета_Расш.mxl?dl=0
15 dk
 
13.05.19
14:01
можно и диаграммы просто в таблице рисовать
https://i.ibb.co/NtJKvcJ/image.png
16 Amig0_0
 
13.05.19
14:01
(12)
1) гуглил, много)) информация чисто справочная, мол вот цвета, вот их коды, но половина из них будут идентичными, хоть ты вручную перебирай все варианты.
2) кто-то перебрал))))
я бы назвал эту обработку Тлен Бытия)) 4к+ строк тупого перебора всей палитры РГБ)) ад. монументально) забрал себе - спасибо!

(13)  а как вы их получили и вывели в таблицу. просто перебрали руками палитру которая есть в свойствах ячейки или штатно вывели как-то все доступные варианты?
17 Amig0_0
 
13.05.19
14:05
(15) да, прикольно. я бы возможно к этому пришел, если бы не было необходимости именно в графике. правда потом он все равно атрофировался до столбцов)) но всё же, уже реализована добрая часть работы, буду домучивать)
18 trad
 
13.05.19
14:29
(16)
//*******************************************
Процедура Сформировать()
    
    Таб = СоздатьОбъект("Таблица");
    Менеджер = СоздатьОбъект("МенеджерТабличногоДокумента");
    Менеджер.УстановитьТаблицу(Таб);
    
    Для Стр = 1 По 32 Цикл
        Для Кол = 1 По 8 Цикл
            
            Индекс = (Стр-1) * 8 + (Кол-1);
            //к штатной палитре относятся только цвета с индексами 0..55
            //остальные - расширенные, и установка их штатным способом, выполняется через приведение к ближайшему.
            
            
            //Расширенная палитра - 256 цветов
            РасшОбласть = Менеджер.Область(Стр, Кол); //расширенная область
            РасшОбласть.ЦветФонаПоИндексу(Индекс);
            РасшЦвет = РасшОбласть.ЦветФона();
            РасшОбласть.Текст = РасшЦвет;
            
            //Штатная палитра - 56 цветов
            Область = Таб.Область(Стр, Кол+9); //штатная область
            Область.ЦветФона(РасшЦвет); //происходит приведение "расширенного" цвета к штатной палитре
            Область.Текст = Область.ЦветФона(); //уже приведнный цвет
            
        КонецЦикла;
        
        Если Стр > 7 Тогда
            Область = Таб.Область(Стр, 18);
            Область.Текст = "<--приведенные цвета";
        КонецЕсли;
        
    КонецЦикла;
    
    Область = Таб.Область(Стр, 1, Стр, 8);
    Область.Объединить();
    Область.ГоризонтальноеПоложение(3);
    Область.Текст = "^ расширенные цвета ^";
    
    Область = Таб.Область(Стр, 10, Стр, 17);
    Область.Объединить();
    Область.ГоризонтальноеПоложение(3);
    Область.Текст = "^ штатные цвета ^";
    
    Таб.Показать();
    
КонецПроцедуры


ЗагрузитьВнешнююКомпоненту("tabledoc.dll");
19 Amig0_0
 
13.05.19
14:50
(18) Классно! Спасибо тебе добрый человек, это возможно спасет ситуацию.
20 trad
 
13.05.19
15:05
на всякий случай, эта штука не годится к Диаграмма.ЦветСерии
21 trad
 
13.05.19
15:08
22 Amig0_0
 
13.05.19
15:15
(21) Да, я уже бился раньше с этим. просто тогда не понял к чему приведенная вами таблица цветов. Не понял что это компонента.
23 Amig0_0
 
13.05.19
15:16
(20) да) только что понял, нужно как то преобразовывать в РГБ((
24 trad
 
13.05.19
15:24
(23) неважно
если Диаграмма.ЦветСерии ограничена палитрой в 56 цветов, а скорее всего это так, то компоненты r,g,b допустимы только из этой палитры
25 Ёпрст
 
13.05.19
15:26
(0) смотри лучше это:

http://www.1cpp.ru/forum/YaBB.pl?num=1206456271
26 Amig0_0
 
13.05.19
15:32
(25) Читал про нее, да. Спасибо, попробую. Может тогда в принципе не нужны будут эти расшифровки по цветам, если получится писать названия подразделений прямо в столбцах вертикально)