![]() |
![]() |
![]() |
|
Как сохранить цвета в БД | ☑ | ||
---|---|---|---|---|
0
ХочуСпец
17.06.11
✎
14:46
|
Задача: форма списка в зависимости от значения некоторого реквизита необходимо раскрасить как пожелает пользователь.
Где хранить пользовательские цвета? Была идея запихать все это в типовой ПВХ Настройки пользователя, но вот с каким типом? Или можно как то по другому спс |
|||
1
dimoff
17.06.11
✎
14:48
|
Тип ХранилищеЗначения
|
|||
2
butterbean
17.06.11
✎
14:49
|
разложи на 3 числовых реквизита - RGB
|
|||
3
Maxus43
17.06.11
✎
14:49
|
да и строка сойдёт имхо
|
|||
4
dimoff
17.06.11
✎
14:50
|
"разложи на 3 числовых реквизита - RGB"
Системные и вэб-цвета не раскладываются |
|||
5
ХочуСпец
17.06.11
✎
14:51
|
(1) такого типа нет в ПВХ
а вот со строкой можно слышал что кто то как то через макет делал |
|||
6
Blast
17.06.11
✎
14:51
|
(0)
Решал подобную задачу буквально пару недель назад и решил так: Тоже хранил пользовательские цвета в ПВХ Настройки пользователя. Тип данных выберал Строка с длиной 11. Формат строки ххх,ууу,zzz где ххх - красный; ууу - зеленый, zzz - синий. |
|||
7
ХочуСпец
17.06.11
✎
14:51
|
(4) да не раскладываются
как быть |
|||
8
ХочуСпец
17.06.11
✎
14:52
|
(6) а как раскладывал системные цвета?
|
|||
9
Blast
17.06.11
✎
14:52
|
(7) Как это не раскладываются?
// Преобразует строку в формате RBG в объект цвет // // Параметры: // СтрокаРГБ - строка, содержащая цветовые составляющие в формате: "красный:тип число,зеленый:тип число,синий:тип число" // Функция ПреобразоватьСтрокуRGBвЦвет(СтрокаРГБ) Экспорт Если Не ЗначениеЗаполнено(СтрокаРГБ) Тогда Возврат Неопределено; КонецЕсли; ПозицияРазделителя = Найти(СтрокаРГБ,","); Красный = Число(Лев(СтрокаРГБ,ПозицияРазделителя-1)); СтрокаРГБ = Сред(СтрокаРГБ,ПозицияРазделителя+1); ПозицияРазделителя = Найти(СтрокаРГБ,","); Зеленый = Число(Лев(СтрокаРГБ,ПозицияРазделителя-1)); Синий = Число(Сред(СтрокаРГБ,ПозицияРазделителя+1)); Возврат Новый Цвет(Красный,Зеленый,Синий); КонецФункции // ПреобразоватьСтрокуRGBвЦвет() // Преобразует объект цвет в строку формата RGB: "красный:тип число,зеленый:тип число,синий:тип число" // // Параметры: // Цвет - объект типа Цвет // Функция ПреобразоватьЦветВСтрокуRGB(Цвет) Экспорт Если ТипЗнч(Цвет) <> Тип("Цвет") Тогда Возврат Неопределено; КонецЕсли; Красный = Цвет.Красный; Зеленый = Цвет.Зеленый; Синий = Цвет.Синий; Возврат Строка(Красный)+","+Строка(Зеленый)+","+Строка(Синий); КонецФункции // ПреобразоватьЦветВСтрокуRGB() |
|||
10
ХочуСпец
17.06.11
✎
14:53
|
в отладчике смотрю у цвета системного как у и всех
где (-1) - красный; (-1) - зеленый, (-1) - синий. |
|||
11
Maxus43
17.06.11
✎
14:53
|
ЗначениеВСтрокуВнутр кстати цвет обработает? так и хранитиь может? потом ЗначениеИзСтроки и все дела
|
|||
12
Blast
17.06.11
✎
14:54
|
(10) (-1) - красный; (-1) - зеленый, (-1) - синий
это цвет по умолчанию (белый) |
|||
13
ХочуСпец
17.06.11
✎
14:55
|
(12) все выбранные цвета с этим значением!
|
|||
14
ХочуСпец
17.06.11
✎
14:55
|
ТекущийЦвет = Элемент.ЦветФона;
Диалог = Новый ДиалогВыбораЦвета; Диалог.Цвет = ТекущийЦвет; Диалог.Выбрать(); ВыбранныйЦвет = Диалог.Цвет; Красный, Синий, Зеленый во всех случаях возвращает -1 |
|||
15
Blast
17.06.11
✎
14:56
|
(11) Кстати согласен, наверное эти функции использовать более эффективно, чем мой разбор строки
|
|||
16
Живой Ископаемый
17.06.11
✎
14:56
|
Вот может еще поможет:
v8: Обратиться к значению системного перечисления по индексу. |
|||
17
ХочуСпец
17.06.11
✎
14:58
|
Зеленый (G)
Использование: Из синтаксиса Зеленый (G) Только чтение. Описание: Тип: Число. Содержит зеленую составляющую цвета. Доступность: Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение. Примечание: Если цвет задан не абсолютным, то содержит -1 Как задать абсолютным? |
|||
18
Blast
17.06.11
✎
14:58
|
(14) Цвет выбирал так:
п_Настройка = ЭлементыФормы.ДеревоНастроек.ТекущаяСтрока.Настройка; Если (п_Настройка = ПланыВидовХарактеристик.упНастройкиПользователей.асаЦветФонаСтрокиЗадание) Или (п_Настройка = ПланыВидовХарактеристик.упНастройкиПользователей.асаЦветФонаСтрокиРейс) Тогда ДиалогЦвет = Новый ДиалогВыбораЦвета(); ЗначениеЦвета = ЭлементыФормы.ДеревоНастроек.ТекущаяСтрока.Значение; Если ЗначениеЗаполнено(ЗначениеЦвета) Тогда ДиалогЦвет.Цвет = ПреобразоватьСтрокуRGBвЦвет(ЗначениеЦвета); КонецЕсли; Если ДиалогЦвет.Выбрать() Тогда ЭлементыФормы.ДеревоНастроек.ТекущаяСтрока.Значение = ПреобразоватьЦветВСтрокуRGB(ДиалогЦвет.Цвет); КонецЕсли; КонецЕсли; |
|||
19
Maxus43
17.06.11
✎
14:59
|
(17) > (11) проверь, имхо прокатит
|
|||
20
ХочуСпец
17.06.11
✎
14:59
|
(19) аха попробую
|
|||
21
Живой Ископаемый
17.06.11
✎
15:00
|
уже попробовали:
http://screencast.com/t/cwoAgFZLBC |
|||
22
Maxus43
17.06.11
✎
15:02
|
(21) норм же? так и хранить, удобно
|
|||
23
Живой Ископаемый
17.06.11
✎
15:03
|
по-моему, да...
|
|||
24
ХочуСпец
17.06.11
✎
15:03
|
(22) отлично! сработало, спасибо
|
|||
25
Maxus43
17.06.11
✎
15:04
|
определится с максимальной длинной только надо
|
|||
26
Blast
17.06.11
✎
15:10
|
(25) Да можно указать и 255, главное чтобы тип длины был переменная
|
|||
27
Maxus43
17.06.11
✎
15:14
|
можно конечно, но по феншую будет вычислить точную!)
|
|||
28
ХочуСпец
17.06.11
✎
15:15
|
А сохранить в строку мн-во цветов можно?
Н-р, цвет1 = Лиловый, цвет2 = Бирюзовый ... цвет n СЗ = новый СписокЗначение; Сз.Добавить(цвет1) Сз.Добавить(цвет2) ..... Сз.Добавить(цветn) ЗначениеВСтрокуВнутр(Сз) При восстановлении настроек в данном случае ЗначениеИзСтрокиВнутр() нормально отработает? |
|||
29
Maxus43
17.06.11
✎
15:16
|
(28) да, хоть ТЗ туда загони, главно чтоб месиа в строке хватило
|
|||
30
Живой Ископаемый
17.06.11
✎
15:16
|
2(28) дядька ты чего? не понял как вызвать Табло чтобы попробовать в нем реализовать свои фантазии?
|
|||
31
ptiz
17.06.11
✎
15:18
|
(28) +100
|
|||
32
Tapo4ek
17.06.11
✎
15:18
|
Да бред, через хранилище надо делать восстановление и сохранение - в одну строчку кода делается, а на форме элемент не связанный с данными типа "Цвет" и все.
|
|||
33
Maxus43
17.06.11
✎
15:20
|
(32) он ПВХ хочет (5)
|
|||
34
Живой Ископаемый
17.06.11
✎
15:22
|
хотя нет, Табло не справиться
http://screencast.com/t/2QXG23y8 |
|||
35
ХочуСпец
17.06.11
✎
15:28
|
(33) вообще такая задача в ПВХ появилась когда у пользователей могут быть разные колонки. Хранилище значений справится с этой задачей?
|
|||
36
ХочуСпец
17.06.11
✎
15:28
|
ведь на компьютере могут работать разные пользователи теоретически
|
|||
37
Maxus43
17.06.11
✎
15:29
|
(35) > (32) Туда вопросы, там ответы. Я не заморачивался)
|
|||
38
ХочуСпец
17.06.11
✎
15:30
|
к тебе говорят (32)
|
|||
39
Maxus43
17.06.11
✎
15:44
|
кстати минус:
Доступность: Сервер, толстый клиент, внешнее соединение. |
|||
40
lxs
17.06.11
✎
15:53
|
р = ЗначениеВСтрокуВнутр(Новый Цвет(234,0,0));
ЭлементыФормы.Кнопка1.ЦветФонаКнопки = ЗначениеИзСтрокиВнутр(р); прекрасно отрабатывает |
|||
41
Tapo4ek
17.06.11
✎
16:00
|
(37) Хранилище может все, даже фильмы хранить.
|
|||
42
GenV
17.06.11
✎
16:04
|
(39)+1 Для тонкого клиента только если заранее список создать с именами и значениями цветов.
|
|||
43
Domovoi
17.06.11
✎
16:23
|
А что такое ПВХ? И что решили, где хранить пользовательские цвета?
|
|||
44
Blast
17.06.11
✎
16:32
|
(43) План видов характеристик :-))
Варианты хранения представлены выше, а где Вы будете хранить дело Ваше. |
|||
45
Domovoi
17.06.11
✎
16:33
|
Варианты то я знаю, мне интересно что решили, в чем лучше?
|
|||
46
Maxus43
17.06.11
✎
16:34
|
про ХранилищеЗначения тема не раскрыта немного, точнее не раскрыто как разные юзеры будут получать свои настройки
|
|||
47
Blast
17.06.11
✎
16:37
|
(45) Скажем так. Поскольку я конфу с нуля не писал и там уже был ПВХ настройки пользователей, то я и решил добавить настройки цветов именно туда. Как реализовал написал в (9) и (18).
|
|||
48
Domovoi
17.06.11
✎
16:55
|
(47)Меня просто мучает вопрос, что лучше регистр сведений или ПВХ?
|
|||
49
dimoff
17.06.11
✎
17:02
|
(48) Этот вопрос не одно столетие занимает умы ученых и философов, но к окончательному ответу они так и не пришли, недостаточно знаний о вселенной.
|
|||
50
Domovoi
17.06.11
✎
17:16
|
Может голосовалку прикрутят, и народ просто проголосует кто как делает? А то эта хрень уже нужна(по крайней мере клиентам с которыми я работаю - всем), а как ее делать не определился еще, пока на регистре делаю, но вот хотелось бы узнать пока сильно не нагрузили базу этими раскрасками, чем же лучше, чтоб если что переделать, пока не так много.
|
|||
51
Tapo4ek
17.06.11
✎
17:18
|
(49) Этот вопрос не одно столетие занимает умы ученых и философов, но к окончательному ответу они так и не пришли, недостаточно знаний о вселенной. - бредятину говорите-с.
|
|||
52
Domovoi
17.06.11
✎
17:19
|
(51)И каков же ответ?
|
|||
53
Tapo4ek
17.06.11
✎
17:20
|
(49) Вообще непохожие друг на друга объекты, все равно что регистр накопления и справочник. Какая вселенная? Какие философы?
|
|||
54
Живой Ископаемый
17.06.11
✎
17:21
|
вселенная обычная, философы - различные...
|
|||
55
Domovoi
17.06.11
✎
17:22
|
(53)Ну так в чем лучше делать?
|
|||
56
dimoff
17.06.11
✎
17:23
|
Или наоборот, различная вселенная и обычные философы...Впрочем это тоже вопрос обсуждения
|
|||
57
Tapo4ek
17.06.11
✎
17:23
|
Есть только один философский вопрос подобного плана "Справочник или регистр сведений", а ПВХ имеет другое назначение, только потому что умеет хранить типы.
|
|||
58
Domovoi
17.06.11
✎
17:23
|
+(55)и желательно сказать чем лучше в данном случаем чем в другом.
|
|||
59
Tapo4ek
17.06.11
✎
17:26
|
(55) Зависит от контекста, чего цвет надо хранить, чего красить будем?
|
|||
60
dimoff
17.06.11
✎
17:26
|
В данном случае абсолютно по барабану где хранить эти цвета: в справочнике, РС или ПВХ. Точка. Печать. На исполнение.
|
|||
61
Tapo4ek
17.06.11
✎
17:28
|
(60) Елки, ПВХ цвета хранить не может. О чем вы говорите?
|
|||
62
Domovoi
17.06.11
✎
17:28
|
(57)Нее справочник для меня отпал, на каждую раскраску справочник, а если в один впихнуть, то по регистру поиск будет быстрее чем по такому справочнику.
(59)А какой может быть контекст? Цвет нужно хранить, любой который доступен 1с. |
|||
63
Domovoi
17.06.11
✎
17:29
|
(61)Почему?
|
|||
64
Maxus43
17.06.11
✎
17:29
|
Для РС - Измерение Юзер, Ресурс Строка, и всё. если только толстый клиент - то ЗначениеВСтрокуВнутр и пофиг
|
|||
65
Maxus43
17.06.11
✎
17:30
|
(61) По большому счету ХранилищеЗначение = ЗначениеВСтрокуВнутр. разница в где хранить
|
|||
66
Domovoi
17.06.11
✎
17:31
|
(64)Ну вот так и делаю, тока измерений по больше. А тут собирались в ПВХ хранить, вот мне интересно есть ли в чем то преимущество?
|
|||
67
Maxus43
17.06.11
✎
17:32
|
(66) ПВХ настройки пользователей просто в типовой уже изобретено. Зачем создавать новые объекты если они уже есть
|
|||
68
Domovoi
17.06.11
✎
17:34
|
Ну а еслиб надо было создавать новый, то в чем луше? или все равно?
|
|||
69
Maxus43
17.06.11
✎
17:35
|
в данном случае имхо - РС. более подходит
|
|||
70
dimoff
17.06.11
✎
17:35
|
(61) ПВХ может хранить ссылку на справочник, которых может хранить хранилище значения
|
|||
71
Maxus43
17.06.11
✎
17:35
|
подходит по смыслу, ибо хранит состояние измерения (юзера)
|
|||
72
Живой Ископаемый
17.06.11
✎
17:36
|
2(68) ну... ПВХ клевый еще тем, что в нем как и в справочнике можно использовать предопределенные элементы... А в РС - нельзя.. но если таковых не будет - то и...
|
|||
73
Domovoi
17.06.11
✎
17:37
|
+(68)Да и эти настройки разрастуться из-за раскраски ппц как, вплане пользования будет не удобвно наверно.
(72)Тока предопределнные использовать, как то не очень) |
|||
74
Domovoi
17.06.11
✎
17:39
|
Ясно, в обшем РС, ну и слава богу)
|
|||
75
Живой Ископаемый
17.06.11
✎
17:42
|
(74) капец, дядька, с такой рефлексией ты спать нормально не сможешь... тебя ждет ментальное истощение
|
|||
76
Domovoi
17.06.11
✎
17:44
|
(75)Всмысле?
Я еще хлопчик) да и сплю я нормально, кто бы дал. |
|||
77
Domovoi
17.06.11
✎
17:54
|
ментальное истощение - а это что? нашел только: истощение разума противника.
|
|||
78
Живой Ископаемый
17.06.11
✎
17:59
|
а что такое физическое истощение?
|
|||
79
Domovoi
17.06.11
✎
18:03
|
(78)упадок сил, резкое исхудание, повышение утомляемости, отсутствие аппетита, ослабление организма и т.д.
|
|||
80
Живой Ископаемый
17.06.11
✎
18:04
|
ну а что такое ментальное истощение по-твоему? не истощение же ментов, верно?
|
|||
81
Domovoi
17.06.11
✎
18:09
|
(80)Так я хз, вот и спрашиваю, теоретически конечно могу предположить что мозга. Погуглил, там тока про линейку 2 как я описал в (77), ну думаю вы не это имели ввиду. Ну а если вы про истощение мозга? Из-за чего оно у меня произовйдет, из-за того что сплю мало? Ну если я буду 10 лет учить 1с то думаю повешусь до истощения мозга)
|
|||
82
Живой Ископаемый
17.06.11
✎
18:12
|
похоже ментальное истощение уже наступило...
проиллюстрирую цепочкой: если тебя так мучают вопросы - чтоже лучше ПВХ или РС, что аж прямо мучают, и если этих вопросов много, то пытаясь их все решить и обдумать ты станешь плохо спать, а из-за этого мозг начинает работать не очень хорошо... ему для здоровья нужен здоровый сон, а раз сна не будет - то есть он не будет этим сном в достаточном количестве питаться, если тебе угодно - то стало быть начнется истощение... но ментальное, потому что вес ты конечно же терять не станешь. |
|||
83
Domovoi
17.06.11
✎
18:17
|
(82)О как, ну теперь ясно) Вообще не особо мучался этим вопрсом пока тут не заговорили, но многие вопросы мучают.
А как же не думать? Иначе быдлокодер и позор на всю жизнь) Да и переделывать потом сложнее чем сразу норм писать. |
|||
84
Domovoi
17.06.11
✎
18:20
|
(82)Кстате хотелось бы прервать вашу цепочку. После плохо спать от обдумывания, начиняет осинять, короче становишься гением.
|
|||
85
Живой Ископаемый
17.06.11
✎
18:24
|
да вот хрен там... я практиковал депривацию - никаких осинений.
=== начинает осенять когда обдумывание происходит в фоне; схематично это выглядит так.. представь что у тебя в черепе - два чувак, один умный и нахрапистый, а второй - креативный и застенчивый.. и вот они вдвоем затеяли типа мозговой штурм - что лучше ПВХ или РС... угадай чей только голос будет слышен? что нужно сделать, чтобы вступил в действие креативный и застенчивый? правильно, отвлечь просто умного и наглого какой-то задачкой - кроссвордом или судоку, или просто скажем пробежать 10 километров, чтобы он успокоился... вот тогда креативный и скромный выходит вперед и произносит осинение... |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |