Палитра web-цветов в 1С: как получить список и задать цвет
Содержание
Нужно раскрасить элемент формы, ячейку отчёта или график, но под рукой только имя вроде «светло-жёлтый». В 1С за это отвечают web-цвета — набор именованных оттенков объекта WebЦвета и тип Цвет с компонентами RGB.
Разберём, чем web-цвета в 1С отличаются от произвольного RGB, как задать оттенок по имени, где взять полную палитру и как получить список всех цветов в коде — с таблицей значений и рабочими примерами.
Что такое web-цвета в 1С и объект WebЦвета
WebЦвета — это глобальный объект платформы. Он содержит набор именованных оттенков, каждый из которых возвращает значение типа Цвет.
Имена совпадают с классическими web-цветами HTML/CSS, только по-русски:
Цвет = WebЦвета.Красный;
Фон = WebЦвета.СветлоЖелтый;
Всего в наборе порядка 140 именованных цветов — от базовых Белый, Черный, Красный до оттенков вроде Томатный или КоролевскийСиний.
Если нужен строго конкретный оттенок под бренд или фирменный стиль — имя не обязательно. Проще собрать цвет из компонентов через Новый Цвет().
Как задать цвет: три способа
Определитесь, что именно нужно — и путь станет очевиден.
WebЦвета: WebЦвета.Синий, WebЦвета.Оранжевый. Код читается сам собой, палитра предсказуема.Новый Цвет(Красный, Зеленый, Синий) — три компонента от 0 до 255.Именованный цвет из WebЦвета
Самый короткий вариант. Присваиваете свойству элемента готовое значение:
Элементы.ПолеСумма.ЦветТекста = WebЦвета.Красный;
Элементы.ПолеСумма.ЦветФона = WebЦвета.СветлоЖелтый;
Свой цвет через Новый Цвет()
Компоненты RGB задаются числами 0..255. Например, светло-серый фон:
МойФон = Новый Цвет(240, 240, 240);
Элементы.Группа.ЦветФона = МойФон;
У готового значения Цвет можно прочитать компоненты обратно — свойства Красный, Зеленый, Синий:
Ц = WebЦвета.Оранжевый;
Сообщить(Ц.Красный + "/" + Ц.Зеленый + "/" + Ц.Синий);
Компоненты — целые от 0 до 255. Значение вне диапазона вызовет ошибку, а не «обрежется» само.
Палитра web-цветов: таблица популярных значений
Держите под рукой шпаргалку по самым ходовым оттенкам. HEX пригодится, если цвет пришёл из макета дизайнера, а RGB — для Новый Цвет().
| Имя в 1С | HEX | RGB |
|---|---|---|
| Белый | #FFFFFF | 255, 255, 255 |
| Черный | #000000 | 0, 0, 0 |
| Красный | #FF0000 | 255, 0, 0 |
| Зеленый | #008000 | 0, 128, 0 |
| Синий | #0000FF | 0, 0, 255 |
| Желтый | #FFFF00 | 255, 255, 0 |
| Оранжевый | #FFA500 | 255, 165, 0 |
| Серый | #808080 | 128, 128, 128 |
| СветлоСерый | #D3D3D3 | 211, 211, 211 |
| СветлоЖелтый | #FFFFE0 | 255, 255, 224 |
Полный набор имён шире — это лишь самые частые. Обратите внимание: web-цвет Зеленый (#008000) заметно темнее «чистого» зелёного #00FF00 — так же, как в стандарте HTML.
Безопасные web-цвета: 216 оттенков и как собрать их в коде
Есть отдельная палитра «безопасных» web-цветов (web-safe). Это 216 оттенков, у которых каждый компонент берётся только из шести значений: 0, 51, 102, 153, 204, 255 (в HEX — 00, 33, 66, 99, CC, FF).
Шесть уровней на три канала дают 6 × 6 × 6 = 216. Такую сетку удобно показывать пользователю как палитру выбора.
Соберём весь набор программно:
Уровни = Новый Массив;
Для Каждого З Из СтрРазделить("0,51,102,153,204,255", ",") Цикл
Уровни.Добавить(Число(З));
КонецЦикла;
Палитра = Новый Массив;
Для Каждого R Из Уровни Цикл
Для Каждого G Из Уровни Цикл
Для Каждого B Из Уровни Цикл
Палитра.Добавить(Новый Цвет(R, G, B));
КонецЦикла;
КонецЦикла;
КонецЦикла;
// Палитра.Количество() = 216
Дальше цвета из массива раскладываете по ячейкам табличного документа или по элементам формы — получаете готовую палитру выбора.
Как получить список web-цветов в 1С: 4 способа
Главная сложность: объект WebЦвета не умеет перечислять сам себя циклом Для Каждого. Отсюда и разные подходы.
Способ 1. Сгенерировать безопасную палитру
Тот самый тройной цикл из раздела выше. Плюс: полный, предсказуемый набор из 216 цветов без ручного ввода. Минус: это не именованные web-цвета, а математическая сетка.
Способ 2. Перебор через внутреннее представление
Значение Цвет можно сериализовать (ЗначениеВСтрокуВнутр) и разобрать. Способ рабочий, но хрупкий: формат внутреннего представления не документирован и может меняться между релизами.
Не завязывайте боевой код на разбор внутреннего представления. Обновление платформы может тихо сломать логику.
Способ 3. Справочный список имён в коде
Прописываете соответствие «имя → значение» вручную:
Список = Новый СписокЗначений;
Список.Добавить(WebЦвета.Красный, "Красный");
Список.Добавить(WebЦвета.Зеленый, "Зеленый");
Список.Добавить(WebЦвета.Синий, "Синий");
// ... и так далее по нужным именам
Дольше в наборе, зато вы получаете именно именованные цвета и полный контроль над списком.
Способ 4. Макет табличного документа с палитрой
В конфигурацию добавляют макет типа «Табличный документ», раскрашивают ячейки нужными цветами один раз, а в коде читают ЦветФона каждой ячейки. Удобно, когда палитру рисует не программист, а дизайнер прямо в конфигураторе.
Диалог выбора цвета и превью в конфигураторе
В палитре свойств конфигуратора у свойства-цвета есть кнопка выбора. Диалог разбит на вкладки:
- 🎨 Оформление (стили) — цвета из стилей конфигурации;
- 🌐 Web-цвета — те самые именованные оттенки;
- 🪟 Windows-цвета — системные цвета ОС (меняются вместе с темой Windows);
- 🎛️ Прочее — произвольный RGB ползунками.
Для превью и подбора web-цветов вне конфигуратора удобны сторонние палитры и подсказки синтаксиса BSL — там цвет виден рядом с именем.
Отдельного универсального диалога выбора цвета «на лету» для управляемых форм платформа не даёт — интерактивную палитру собирают сами, обычно на макете табличного документа или на форме с сеткой из 216 web-safe цветов.
Типичные ошибки
- ❌ Путают Web-цвета и Windows-цвета. Windows-цвет зависит от темы ОС пользователя и на разных машинах выглядит по-разному. Для стабильного оформления берите
WebЦветаили свой RGB. - ❌ Пробуют перебрать
WebЦветацикломДля Каждого. Объект это не поддерживает — нужен один из четырёх способов выше. - ❌ Задают компоненты в диапазоне 0–100 или дробью. Только целые
0..255. - ❌ Сравнивают цвета «на глаз». Два визуально близких оттенка — это разные значения
Цвет; сравнивайте по компонентам RGB.
Если не помогло
Цвет не применился или выглядит не так, как ждали — пройдитесь по чек-листу.
Если раскраска приходит из условного оформления списка или таблицы значений — правьте элемент оформления, а не свойство напрямую: условное оформление имеет приоритет.
Частые вопросы
Чем WebЦвета отличается от Нового Цвета?
WebЦвета — готовый набор именованных оттенков (WebЦвета.Красный). Новый Цвет(R, G, B) создаёт произвольный цвет из компонентов 0–255. Оба возвращают тип Цвет и взаимозаменяемы в свойствах формы.Как получить список всех web-цветов в 1С?
Сколько всего web-цветов?
WebЦвета — около 140. Отдельно есть «безопасная» палитра из 216 оттенков (по 6 уровней на каждый из каналов RGB).Можно ли задать цвет по HEX-коду?
Новый Цвет(). Например, #FFA500 → Новый Цвет(255, 165, 0).Почему цвет разный на двух компьютерах?
WebЦвета или явный RGB, тогда оттенок будет одинаковым везде.Как узнать RGB готового цвета?
Цвет есть свойства Красный, Зеленый, Синий: WebЦвета.Оранжевый.Красный вернёт 255.