|
Как преобразовать цвет 1с в RGB? | ☑ | ||
---|---|---|---|---|
0
Andy MilkyWay
03.12.12
✎
16:48
|
В константе сохранил значение выбранного пользователем цвета в виде строки по функции ЗначениеВСтрокуВнутр(). Потом мне нужно использовать его:
1) для условной раскраски табличного поля (ПриВыводеСтроки) - это работает 2) для раскраски отдельных ячеек Excel при формировании печатной формы. В Excel'е цвет представляется в виде большого числа, которое можно сформировать, зная значения RGB для нужного цвета. Но получить RGB-составляющие для Web-цвета из 1с не могу (выдается -1,-1,-1). Вопрос: можно ли получить составляющие RGB для любого вида цвета 1с (Web,Windows и другие виды цветов)? |
|||
1
Wobland
03.12.12
✎
16:50
|
хранить в 1с в ргб предлагать?
|
|||
2
Wobland
03.12.12
✎
16:51
|
кстати, можно, но только красный, синий и зелёный
|
|||
3
Лефмихалыч
03.12.12
✎
16:51
|
Цвет (Color)
Свойства: Вид (Type) Зеленый (G) Красный (R) Синий (B) Конструкторы: Конструктор по умолчанию На основе цветовых составляющих Описание: Предназначен для определения и хранения значение цвета. Цвет может определяться абсолютным значением (сочетанием красного, синего и зеленого цветов), браться из элементов стиля, из палитры Windows, или использоваться один из web-цветов. Может присваиваться в качестве значения атрибутов других объектов, параметров методов, процедур или функций, имеющих тип Цвет. Доступность: Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение. Сериализуется. Данный объект может быть сериализован в/из XML. Может использоваться в реквизитах управляемой формы. Данный объект может быть сериализован в/из XDTO. Тип XDTO, соответствующий данному объекту, определяется в пространстве имен {http://v8.1c.ru/8.1/data/ui}. Имя типа XDTO: Color. Пример: ЦветВажнойКнопки = Новый Цвет(255, 0, 0); // красный ЦветОбычнойКнопки = ЦветаСтиля.ЦветФонаКнопки; // Для обычной формы Если ОстатокТовара <= Товар.Остаток Тогда ЭлементыФормы.КнопкаЗаказать.ЦветФонаКнопки = ЦветВажнойКнопки; Иначе ЭлементыФормы.КнопкаЗаказать.ЦветФонаКнопки = ЦветОбычнойКнопки; КонецЕсли; // Для управляемой формы Если ОстатокТовара <= Товар.Остаток Тогда Элементы.КнопкаЗаказать.ЦветФона = ЦветВажнойКнопки; Иначе Элементы.КнопкаЗаказать.ЦветФона = ЦветОбычнойКнопки; КонецЕсли; |
|||
4
Лефмихалыч
03.12.12
✎
16:53
|
а, ну да, правильный ответ - не использовать веб-цвета или использовать их RGB-аналоги
|
|||
5
Ager
03.12.12
✎
17:06
|
||||
6
Andy MilkyWay
04.12.12
✎
11:36
|
Я программировал раньше на FoxPro. Там были две возможности, которых я не нашел в 1с. Есть ли в 1с:
1. возможность макроподстановок, например, у меня есть структура, где ключ - наименование переменной, а значение - выражение для расчета этой переменной. В цикле нужно вычислить значение и поместить в ту переменную, которая равна ключу. В FoxPro можно было сделать так:
т.е. в переменной МояПеременная в результате хранится 3. 2. возможность выполнять динамические фрагменты кода. Т.е. я в строковую переменную стрПеременная динамически формирую текст программы, а потом выполняю его через
|
|||
7
Wobland
04.12.12
✎
11:37
|
1. Выполнить
2. Выполнить |
|||
8
Andy MilkyWay
04.12.12
✎
11:40
|
(7). 1. Выполнить вычислит только результат выражения, а как сохранить в переменную, указанную в Переменная1?
|
|||
9
Andy MilkyWay
04.12.12
✎
11:41
|
т.е. у меня в Переменная1 хранится имя другой переменной, в которую нужно сохранить результат выражения
|
|||
10
Wobland
04.12.12
✎
11:41
|
(8) выполнить выполнит тебе кусок кода
|
|||
11
Wobland
04.12.12
✎
11:42
|
(9) вот ересь какую-то задумал. обычно такой потребности не возникает
|
|||
12
Andy MilkyWay
04.12.12
✎
11:42
|
(10) да, я понял. Вопрос: как сохранить результат вычисления в переменную, указанную как строка в другой переменной?
|
|||
13
Andy MilkyWay
04.12.12
✎
11:43
|
(11) Возможно, вы правы. Так как в 1с есть другие механизмы, которых нет в FoxPro, просто, по привычке, хочется сделать так, как привык раньше
|
|||
14
Wobland
04.12.12
✎
11:44
|
(12) выполнить кусок кода, содержащий внутри "="
|
|||
15
Andy MilkyWay
04.12.12
✎
11:48
|
(14) Так сработает? Я пробовал, но у меня выдало ошибку. Может ошибся в тексте. Ага, надо попробовать. Благодарю
|
|||
16
Wobland
04.12.12
✎
11:49
|
(15) а я вот никогда не пробовал. отпишись, как взлетит - знать буду ;)
|
|||
17
Andy MilkyWay
04.12.12
✎
11:51
|
(16) Сейчас попробую
|
|||
18
Rovan
гуру
04.12.12
✎
11:52
|
(12) Переменная1 = "МояПеременная";
ВыражениеДляРасчета = "1+2"; Выполнить(Переменная1 + " = " + ВыражениеДляРасчета); |
|||
19
Rovan
гуру
04.12.12
✎
11:53
|
(+18) но на Мисте любят спрашивать "Зачем ?"
намекая на то, что скорее всего задачу можно выполнить проще |
|||
20
Andy MilkyWay
04.12.12
✎
11:57
|
(16) с небольшой поправкой к (18) получилось:
|
|||
21
Andy MilkyWay
04.12.12
✎
11:58
|
(19) не спорю. Как я уже писал выше, просто действует многолетняя привычка делать так, опыт FoxPro
|
|||
22
Wobland
04.12.12
✎
11:59
|
(21) рассказывай. какашкой кинут, но научат хоть. я сам не доброшу
|
|||
23
Andy MilkyWay
04.12.12
✎
12:01
|
(22) да я уже,собственно, рассказал в (20). Все получилось. Но сделал уже проще во 1-с-ному ;)
|
|||
24
Andy MilkyWay
04.12.12
✎
12:02
|
(+23) по 1-с-ному (опечатка)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |