|   |   | 
| 
 | Где хранить цвет? | ☑ | ||
|---|---|---|---|---|
| 0
    
        bebibo 14.08.20✎ 16:25 | 
        Есть диалог, в котором пользователь выбирает цвет. Данный цвет сохраняется в справочнике.
 Далее я его буду вытаскивать и окрашивать. Вопрос, в каком типе реквизита мне его хранить? тремя реквизитами RGB не подходит. А просто если создаю реквизит "Выбранный цвет" с типом число, то в дальнейшем при передаче этого реквизита в оформление нужной мне формы, пишет: "несоответствие типов". (Оно и понятно, число передаю) Вот как мне выкрутиться тут? | |||
| 1
    
        polosov 14.08.20✎ 16:27 | 
        Определяемый тип не хочешь?     | |||
| 2
    
        Kigo_Kigo 14.08.20✎ 16:28 | 
        а набор цветов какой и откуда вы его будете брать?     | |||
| 3
    
        bebibo 14.08.20✎ 16:29 | 
        (1) что это? не работала с таким     | |||
| 4
    
        bebibo 14.08.20✎ 16:30 | 
        (2) буду брать из справочника
 Хранится в абсолютном виде, а не в стиле | |||
| 5
    
        polosov 14.08.20✎ 16:31 | 
        (3) Найди в дереве метаданных "ОпределяемыеТипы", создай свой тип с типом "цвет" и устанавливай своим реквизитам этот тип     | |||
| 6
    
        bebibo 14.08.20✎ 16:36 | 
        (5) Попробую     | |||
| 7
    
        polosov 14.08.20✎ 16:38 | 
        (6) Хотя не, цвет не хотит.     | |||
| 8
    
        bebibo 14.08.20✎ 16:38 | 
        (6) При сохранении пишет что мой реквизит - недопустимый тип))     | |||
| 9
    
        bebibo 14.08.20✎ 16:41 | 
        может есть функция или метод, которая число преобразовывает в цвет)) Ну число в тип "Цвет"     | |||
| 10
    
        arsik гуру 14.08.20✎ 16:42 | 
        А чем число не подходит?
 типа 123 123 123 | |||
| 11
    
        bebibo 14.08.20✎ 16:44 | 
        (10) то место куда я передаю, нужно передавать числовое значение с типом ЦВЕТ
 А я получается передаю числовое значение цвета с типом число И мне пишет - несоответствие типа | |||
| 12
    
        программистище 14.08.20✎ 16:45 | 
        Хранил в строковом виде R;G;B
 &НаКлиенте Процедура ЦветПриИзмененииПосле(Элемент) Объект.Цвет = "" + Цвет.Вид + ";" + Формат(Цвет.Красный, "ЧЦ=3; ЧН=; ЧВН=") + ";" + Формат(Цвет.Зеленый, "ЧЦ=3; ЧН=; ЧВН=") + ";" + Формат(Цвет.Синий, "ЧЦ=3; ЧН=; ЧВН=");//RGB КонецПроцедуры &НаСервере Процедура ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка) МассивЦветов = СтроковыеФункции.МассивИзСтроки(Объект.Цвет, ";");//RGB Если Не МассивЦветов.Количество() = 0 И Не МассивЦветов.Количество() = 1 И МассивЦветов[0] = "Абсолютный" Тогда Цвет = Новый Цвет(Число(МассивЦветов[1]), Число(МассивЦветов[2]), Число(МассивЦветов[3])); КонецЕсли; КонецПроцедуры Функция ОтделитьРазделителем(Стр, Знач Разделитель, Режим=0) ПраваяЧасть = ""; ПозРазделителя = СтрНайти(Стр, Разделитель); ДлинаРазделителя = СтрДлина(Разделитель); Если ПозРазделителя > 0 Тогда ПраваяЧасть = Сред(Стр, ПозРазделителя + ?(Режим=2, 0, ДлинаРазделителя)); Стр = СокрЛП(Лев(Стр, ПозРазделителя - ?(Режим=1, -ДлинаРазделителя + 1, 1))); КонецЕсли; Возврат(ПраваяЧасть); КонецФункции | |||
| 13
    
        программистище 14.08.20✎ 16:46 | 
        Функция МассивИзСтроки(Знач Стр, Разделитель=",") Экспорт
 Массив = Новый Массив; ПраваяЧасть = ОтделитьРазделителем(Стр, Разделитель); Пока Не ПустаяСтрока(Стр) Цикл Массив.Добавить(СокрЛП(Стр)); Стр = ПраваяЧасть; ПраваяЧасть = ОтделитьРазделителем(Стр, Разделитель); КонецЦикла; Возврат(Массив); КонецФункции | |||
| 14
    
        arsik гуру 14.08.20✎ 16:47 | 
        (11) Я не могу понять, что значит "числовое значение с типом ЦВЕТ"     | |||
| 15
    
        arsik гуру 14.08.20✎ 16:48 | 
        Может тебе нужно в 16-ричном формате передавать? Например #15E5D8     | |||
| 16
    
        bebibo 14.08.20✎ 16:48 | 
        (14) Есть типы: строка, дата, число, цвет
 у типа число - в значении цифры у типа цвет - в значении тоже цифры | |||
| 17
    
        VladZ 14.08.20✎ 16:48 | 
        (0) Храни в одном реквизите в виде строки: как пример "255,0,0".     | |||
| 18
    
        VladZ 14.08.20✎ 16:49 | 
        +17 Через "выполнить" приводи к типу Цвет.     | |||
| 19
    
        bebibo 14.08.20✎ 16:50 | 
        (18) это как?     | |||
| 20
    
        VladZ 14.08.20✎ 16:52 | 
        ЦветВажный = "";
 ПараметрыЦвета = "255,0,0"; // вот тут твой цвет. Выполнить("ЦветВажный = Новый Цвет(" + ПараметрыЦвета + ");"); сообщить(ЦветВажный); | |||
| 21
    
        vde69 14.08.20✎ 16:53 | 
        чем не устраивает 
 Новый ХранилищеЗначений(ТвойЦвет) | |||
| 22
    
        bebibo 14.08.20✎ 16:57 | 
        (20) Ошибка компиляции при вычислении выражения или выполнении фрагмента кода
 Конструктор не найден ЦветВажный = Новый <<?>>Цвет(0) | |||
| 23
    
        Жан Пердежон 14.08.20✎ 17:02 | 
        (0) 
 Чем "тремя реквизитами RGB не подходит"? или срокой? | |||
| 24
    
        VladZ 14.08.20✎ 17:05 | 
        (22) Цвет задается тремя значениями, см. (20).  А у тебя просто "0". Косяк!     | |||
| 25
    
        ГдеСобака Зарыта 14.08.20✎ 17:09 | 
        Помниться я хранил цвета в строке через ЗначениеВСтрокуВнутр()     | |||
| 26
    
        Kesim 14.08.20✎ 17:11 | 
        (0) вроде как цвет как тип работает:
 &НаСервере Процедура Команда1НаСервере() Элементы.Полепокраски.ЦветФона = реквизит1; КонецПроцедуры &НаКлиенте Процедура Команда1(Команда) //реквизит1 - реквизит формы с типом цвет Команда1НаСервере(); КонецПроцедуры | |||
| 27
    
        Kesim 14.08.20✎ 17:16 | 
        (0) варианты создания цвета:
 ЦветВажнойКнопки = Новый Цвет(255, 0, 0); ЦветОбычнойКнопки = ЦветаСтиля.ЦветФонаКнопки; ЦветВеб = WebЦвета.Аквамарин; дальше сам, хочешь цифрами , хочешь строкой, хочешь цветом сп: Доступность: Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер. Сериализуется. Данный объект может быть сериализован в/из XML. Может использоваться в реквизитах управляемой формы. Данный объект может быть сериализован в/из XDTO. Тип XDTO, соответствующий данному объекту, определяется в пространстве имен {http://v8.1c.ru/8.1/data/ui}. Имя типа XDTO: Color. | |||
| 28
    
        Tatitutu 14.08.20✎ 17:45 | 
        Идея или как сохранить ЦВЕТ, ШРИФТ, ОФОРМЛЕНИЕ пользователя
 http://catalog.mista.ru/1c/articles/370554/ | |||
| 29
    
        acht 14.08.20✎ 19:25 | 
        (27) > Сериализуется. Данный объект может быть сериализован в/из XML
 Практически готовый ответ. ХранилищеЗначений или строка. В обоих случаях надо чуть-чуть пританцовывать при присвоении и извлечении, но ХранилищеЗначений проще. | |||
| 30
    
        Ёпрст гуру 14.08.20✎ 20:14 | 
        Можно и условноеОфоррмление сериализовать, там и цвет и шрифт и усё на свете     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |