Имя: Пароль:
1C
 
Как сохранить выбранный цвет в реквизите справочника.
0 vlad71
 
18.01.07
15:37
Подскажите пожалуйста как можно сохранить выбранный цвет в диалоге в реквизите справочника. Т.е. какой должен быть тип этого реквизита и каким методом.

// это диалог выбора цвета
Диалог = Новый ДиалогВыбораЦвета;
Если Диалог.Выбрать() Тогда
       ВыбранныйЦвет = Диалог.Цвет;
КонецЕсли;
1 vlad71
 
18.01.07
15:56
Может другой способ есть какой. Необходимо для каждого элемента справочника задать свой цвет серии при выводе в график.
2 dimoff
 
18.01.07
15:57
Хранилище
3 vlad71
 
18.01.07
15:58
а каким образом?
4 vlad71
 
18.01.07
16:06
и что бы при открытии элемента справочника было видно какой назначен цвет
5 ymv
 
18.01.07
16:07
3 числовых реквизита не катят что ли?
RGB еще никто не отменял :)
6 Scooter
 
18.01.07
16:08
в одном реквезите
R*256*256 + G*256 + B
7 vlad71
 
18.01.07
16:14
тоже идея
8 dimoff
 
18.01.07
16:21
Для системных значений насколько я  помню указанные в 6 не читаются.
9 dimoff
 
18.01.07
16:22
По хранилищу достаточно просто посмотреть примеры в типовых.
10 vlad71
 
18.01.07
16:25
так понимаю необходимо создать реквизит спарвочника, задать ему тип хранилищезначений. После выбора цвета записать туда значение ,  а при необходимости считывать его оттуда.
11 dimoff
 
18.01.07
16:26
(10) Да
12 dimoff
 
18.01.07
16:27
считывание происходит через Объект[ИмяРеквизита].Получить(), запись не помню, посмотри методы и конструктор объекта ХранилищеЗначений
13 SKrin
 
18.01.07
16:29
Процедура ДокументСписокПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
   // Вставить содержимое обработчика.
   
   СправочникСсылка = Справочники.Месяцы.НайтиПоКоду(Месяц(ДанныеСтроки.Дата));
   
   Если НЕ СправочникСсылка.Пустая() Тогда
       ТекЦвет = СправочникСсылка.Цвет;
       Красный = Лев(ТекЦвет,3);
       Зеленый = Сред(ТекЦвет,4,3);
       Синий   = Прав(ТекЦвет,3);
       Попытка
           ОформлениеСтроки.ЦветФона = Новый Цвет(Число(Красный),Число(Зеленый),Число(Синий));
       Исключение
       КонецПопытки;    
   КонецЕсли;
КонецПроцедуры

запись идет в числовой реквизит по типу "RGB"
14 vlad71
 
18.01.07
16:30
спасибо. А вывод на форму какой выбран цвет можно легко сделать. Например поместить на форму текст и при открытии элемента считывать цвет из хранилища и окрашивать этим цветом фон текста.
15 dimoff
 
18.01.07
16:31
(14) Да, можно попробоватьч ерз числовые значения ка костальные говорят, но насколько я помню если цвет выбирается в диалоге из системных перечислений, типа WebЦвета и WindowsЦвета то числовые значения возвращают нули.
16 dimoff
 
18.01.07
16:32
(14) Можно поле деалога, там ести тип Цвет
17 Scooter
 
18.01.07
16:33
(15) возвращает -1
18 vlad71
 
18.01.07
16:33
Спасибо, все получилось. Сделал через хранилище а потом считал его значение.
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс