Имя: Пароль:
1C
1С v8
как сохранить цвет в регистре
0 vde69
 
03.08.22
16:46
понятно, что можно использовать хранилище или стерилизованную строку, но хочется что-то вроде целого числа что бы и запросы нормально работали и можно было в условном оформлении использовать.

если цвет RGB - то конвертировать в число легко, но есть и другие варианты, типа цвет стиля или веб цвет, с ними вообще засада...
1 СеменовСемен
 
03.08.22
16:47
Юзай справочник цветов
2 PuhUfa
 
03.08.22
16:51
(0) А что у цвета стиля или веб цвета нет RGB?
3 Garykom
 
гуру
03.08.22
16:52
как ни странно но да, можно завести "справочник цветов" с проверкой на дубли
в итоге удобно в запросах
4 YFedor
 
03.08.22
16:54
(2) Цвет стиля может меняться в самом стиле, при этом то, что было помечено, как "Цвет стиля" автоматически тоже поменяет цвет, поэтому и не хочет (0) хранить его в RGB
5 RomanYS
 
03.08.22
16:54
(2) -1 там
6 Ёпрст
 
03.08.22
18:18
7 Ёпрст
 
03.08.22
18:21
Ну или строка, на крайняк
https://forum.infostart.ru/forum9/topic185976/
8 Ёпрст
 
03.08.22
18:21
Можно и хранилище, но в запросе ой..
9 Ёпрст
 
03.08.22
18:24
10 Tatitutu
 
04.08.22
01:06
(0) дарю тебе лайфхак
Инфостарт - эту статью забанили :(
без объяснения причин

Нужно сохранить цвет, шрифт, оформление и.т.д

Создал  ТабличныйДокумен
Получил ЯЧЕЙКУ
и присвоил ей
Цветфона
Цветшрифта
Шрифт
Все что она умеет
И сохранил в нужном месте
А в регистр Номер строки макета
И твори, что хочешь)))

MAGAZKA не даст соврвть
11 Жан Пердежон
 
04.08.22
02:23
(0) Хранить RGB, а на стили и web забить
12 Garykom
 
гуру
04.08.22
08:56
(10) Чем это лучше справочника?
13 Garykom
 
гуру
04.08.22
08:56
(12)+ Справочник хотя бы ссылка будет
14 Ёпрст
 
04.08.22
09:02
(12) будет полное оформление - цвет\шрифт\другие свойства...в одном месте
15 kittystark
 
04.08.22
10:18
Функция ВернутьУебЦветПоИндексу(Индекс) Экспорт
    Возврат ЗначениеИзСтрокиВнутр("{""#"",9cd510c7-abfc-11d4-9434-004095e12fc7,2,{3,2,{"+Индекс+"}}}");
КонецФункции

Для инд = 1 по 147 цикл
    обл = ДокументРезультат.Область(инд*2,1);
    обл.ЦветФона = ВернутьУебЦветПоИндексу(инд);
КонецЦикла
16 kittystark
 
04.08.22
10:23
вот такую штуку в (15) использовал в качестве параметра СКД - для выбора цвета, правда на обычных формах, показывал отдельный ТД, выбор - на событии ТД ПриАктивизации
17 Garykom
 
гуру
04.08.22
10:28
(14) Так удобней именно справочник завести
Куда в реквизиты писать все эти "цвет\шрифт\другие свойства"
А в регистр уже ссылку на элемент справочника, где цвет описан

И не надо этих извратов с ТабДок и прочими
18 Garykom
 
гуру
04.08.22
10:29
Ну или классика когда цвет сериализуем в JSON и пишем в строку
19 Garykom
 
гуру
04.08.22
10:30
Все прочие варианты кроме (17) и (18) это извращенные высеры если честно.
20 Tatitutu
 
04.08.22
10:36
(19) Ты не честен :)

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

а я предоставлю ЯЧЕЙКУ ТАБЛИЧНОГО ПОЛЯ - пусть он выберет и сохранит
а где хранить и как обработать - это уже от задачи зависит
21 Garykom
 
гуру
04.08.22
11:16
(20) Я предоставлю стандартные инструменты 1С типа https://www.vdgb.ru/blog/vybor-kak-otkryt-polzovatelyu-standartnyj-dialog-vybora-cveta-ili-shrifta/
22 Dmitrii
 
гуру
04.08.22
11:26
(21) Вопрос ведь больше не в том как организовать выбор цвета. Это вкусовщина. И тут я соглашусь, что лучше типовые варианты действительно лучше, чем рисование собственных форм.
Ключевой вопрос - как хранить выбранный цвет в БД. ИМХО, тут лучше использовать типовые инструменты сериализации и хранить либо строку JSON, либо ЗначениеВСтрокуВнутр/ЗначениеИзСтрокиВнутр. Промежуточный справочник цветов тут, по-моему избыточен. Хотя конкретное решение может зависеть от особенностей самой задачи.
23 Garykom
 
гуру
04.08.22
12:43
(22) Промежуточный справочник дает ссылку (УИД по сути), что сильно лучше чем строка с JSON внутри.
И по нему удобно цвета отбирать по реквизитам раздельным.
24 vde69
 
05.08.22
11:37
сделал в справочнике, заодно там не только цвет, но и другие данные добавил.
25 mistеr
 
05.08.22
11:50
(0) Храни не в регистре, а в хранилище настроек (СохранитьЗначение). Я так делал.
Программист всегда исправляет последнюю ошибку.