Имя: Пароль:
1C
 
Как организовать выбор цвета?
0 Domovoi
 
26.04.11
10:41
Допусти есть справочник, скажем настройки статусов какого-либо документа. Надо каждому статусу выбрать цвет. Создаем реквизит ВидДокумента и ТЧ СписокСтатусов.
Я, например, делал следующим способом: в ТЧ завел реквизиты Статус, Цвет, ВыборЦвета, Красный, Зеленый, Синий. В статусе выбирал необходимый мне статус, цвет - недоступен, служил для отображения цвета, в выбореЦвета стояли 2 кнопочки выбор и очистить. в красный, синий, зеленый заносились РГБ цвета и они были не видны.

Интересует, можно ли как-нибудь проще сделать, возможно хранение можно осуществить в одной ячейке как тип цвет? Если цвета спицифические, например, цвет формы, как хранить их? Второй момент с кнопкой выбора цвета, можно ли сделать или так же или как-то по другому, но чтоб в каждой строке была кнопка выбора цвета и она всегда видна была, не важно редактируют поле или нет.
1 skunk
 
26.04.11
10:52
ничего не понял
2 Domovoi
 
26.04.11
10:54
(1)Печально. А ничего не поняли в том что я делал, или в том что интересует, или и там и там?
3 Живой Ископаемый
 
26.04.11
10:56
много букв.
поэтому отвечу просто на топик:
===

Как открыть пользователю стандартный диалог выбора цвета?
Диалог = Новый ДиалогВыбораЦвета;
Если Диалог.Выбрать() Тогда
   ВыбранныйЦвет = Диалог.Цвет;
КонецЕсли;
Диалог = Новый ДиалогВыбораШрифта;
Если Диалог.Выбрать() Тогда
   ВыбранныйШрифт = Диалог.Шрифт;
КонецЕсли;

(с) Габец, простые примеры
4 Ork
 
26.04.11
10:58
(3) Ему еще интересно как потом выбранный цвет сохранить надежно и надолго.
5 Живой Ископаемый
 
26.04.11
10:59
пусть распечатывает и сдает в архив.
6 Ork
 
26.04.11
11:01
+(4) Вопрос звучал как :
"возможно хранение можно осуществить в одной ячейке как тип цвет?"

Хотя логичнее было бы завести числовой реквизит и внем хранить значения RGB выбранного цвета. Но ему хочется именно _цвет_.
7 Domovoi
 
26.04.11
11:02
Можно по другому, без моего примера. Как в ТЧ организовать выбор, хранение и отображение цвета(в каждой строке)?

http://s005.radikal.ru/i212/1104/62/b423c8c4c050.jpg - это пример того что я навелосипедил.
8 Domovoi
 
26.04.11
11:04
(3)Это я знаю, меня интересует, где хранить цвет в чем его хранить и как разместить кнопку в строке ТЧ или действием каким организовать выбор.
9 Domovoi
 
26.04.11
11:05
http://s54.radikal.ru/i143/1104/af/c3a8f1cf6972.png - вот так лучше наверно
10 Domovoi
 
26.04.11
11:07
(6)Я завел реквизиты под 3 цвета RGB и там храню. Или вы другое предлагаете? Возникает вопрос как хранить цвет "цвет формы" или "цвет кнопки" - ну и т.д. в том же духе.
11 Ork
 
26.04.11
11:11
(7) В ТЧ - три невидимых колонки с именами "Красный", "Синий", "Зеленый". Одна видимая колонка например "образец".

В обработчке ПриВыводеСтроки():
========================================================
ЦветФона=Новый Цвет(ДанныеСтроки.Красный, ДанныеСтроки.Синий, ДанныеСтроки.Зеленый);
ОформлениеСтроки.Ячейки.Образец.ЦветФонаПоля=ЦветФона;
========================================================

В обработчике ПередНачаломИзменения
========================================================
Если ТекущаяКолонка.Имя="Образец" Тогда
    Отказ=Истина;
    ДиалогЦвета=....
    ТекущаяСтрока.Красный=ДиалогЦвета.Цвет.Красный;
    ТекущаяСтрока.Зеленый=ДиалогЦвета.Цвет.Зеленый;
    ТекущаяСтрока.Синий=ДиалогЦвета.Цвет.Синий;
КонецЕсли;

Както так.
12 Domovoi
 
26.04.11
11:17
Диалог = Новый ДиалогВыбораЦвета;
Если Диалог.Выбрать() Тогда
   ВыбранныйЦвет = Диалог.Цвет;
КонецЕсли;

Я тут получу только RGB цвет? Получается я и не могу получить цвет "Фон формы"?
13 Ork
 
26.04.11
11:18
Тоесть нужен инчтрумент типа "пипетка" в пайнте?
14 Живой Ископаемый
 
26.04.11
11:19
15 Domovoi
 
26.04.11
11:21
(13)Нет. Нужно чтобы я сохранил цвет "Фон формы"(как пример), а после передал его где потребуется и там цвет будет не жеско прописан RGB, а будет меняться взависимости от цвета формы
16 Ork
 
26.04.11
11:24
(15) Цвет формы регулируется свойством стиль. Его и меняй.
17 Domovoi
 
26.04.11
11:34
(14)Это что? У вас это при выборедиалога выдает значение?
(15)Ну допустим вид, я получу. При повторном выборе цвета, я должен передать цвет в диалогвыборацвета. Я делал вот так:

СТЧ = ЭлементыФормы.НастройкиСтатусов.ТекущаяСтрока;
   
Диалог = Новый ДиалогВыбораЦвета;
Диалог.Цвет = Новый Цвет(СТЧ.Красный,СТЧ.Зеленый,СТЧ.Синий);

А как Вид передать?
18 Domovoi
 
26.04.11
11:37
+(17)И как завести реквизит с типом ВидЦвета?
19 Asmody
 
26.04.11
11:41
(18) т.е. вызывает вопрос, что такое ЗначениеВСтрокуВнутр() и как из ее результата получить значение?
20 Абыр
 
26.04.11
11:43
Цвет сериализуется. Можно хранить в виде XML-строки.
21 Domovoi
 
26.04.11
11:49
(19)Понял.
22 Domovoi
 
26.04.11
11:54
Ну все получилось, всем спасибо.
23 Stagor
 
26.04.11
11:54
.
24 Domovoi
 
26.04.11
12:01
Нет не до конца разобрался)
(11)Выбор цвета вариант вроде как подходит. Но вот проблемка, неплохо было бы сделать чтоб цвет сбрасывался на "поумолчанию".

У меня было две кнопочки выбор и очисть, можно ли их как то зафиксировать в строке ТЧ, чтоб всегда видно было или добавить как то кнопки такие чтоб всегда видно было их?
25 Domovoi
 
26.04.11
12:03
+(24)Криво написал.
Но вот проблемка, неплохо было бы сделать все-таки кнопку чтоб цвет сбрасывался на "поумолчанию".
26 Domovoi
 
26.04.11
12:32
Ап.
Ответеть на (24)(25), что можно сделать?
27 Жан Пердежон
 
26.04.11
13:37
канонично:
Цвет24 = Кр+Сн*256+Зл*65536;

Кр = Цвет24%256;
Сн = Цел(Цвет24/256)%256;
Зл = Цел(Цвет24/65536);

(26) смотри синтакс-помощник -> Системные наборы значений -> Цвета стиля
28 Domovoi
 
26.04.11
13:47
(27)Вы не поняли) Я хочу узнать как сделать кнопочки в строке ТЧ постоянно видимыми(во всех строках одновременно видимыми), а уже в последующем я их запрограммирую: одна для выбора цвета, вторая для сброса цвета по умолчанию.
В (9) видно, что я сделал отдельную колонку шириной в 2 кнопки и при нажатии на нее появляются кнопки и нажимаешь на то что надо, но в неактивных строках получается пустое поле, а это не красиво да и не понятно что это и для чего.
29 Vladal
 
26.04.11
17:48
Тип значения в ячейке с цветом какой?
Отсюда и плясать - можно указать, какие кнопки управления будут в ячейке.

А так, чтобы во всех строках кнопочки одновременно видны были - никак. Только в редактируемой ячейке.

НО если набор цветов ограничен, имеет смысл такую фишку забахать гиперссылками - на форму кинул сколько надо гиперссылок, там же поле с примером цвета, рядом ссылка или кнопка - редактировать и очистить.

http://s57.radikal.ru/i156/1104/09/56438ae8a39b.jpg
30 Domovoi
 
26.04.11
18:03
(29)Спасибо, но не очень нравиться, что-нибудь придумаю)
31 DrHiHi
 
26.04.11
18:06
(0) видел такое в какой-то российской конфигурации, там все настройки по цветам записывал в регистр сведений... там точно помню была раскраска справочника "Контрагенты"
32 Domovoi
 
26.04.11
18:29
(31)Наверно тоже перекину в регистр, быстрее доставать будет.
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.