Меняем цвета в 1С 8.3: от настроек пользователя до кода
Содержание
Единой кнопки «сменить цветовую схему» в 1С 8.3 нет. Цвета окон и кнопок задаёт стиль платформы, а пользователь управляет только тем, что разработчик оставил в настройках. Зато цвет отдельных полей, строк списков и групп на форме менять можно, причём тремя способами: в конфигураторе, через условное оформление и из кода.
Какой способ ваш, зависит от роли. Рядовой пользователь может подсветить строки в списке. Администратор с правом на изменение форм перекрасит поле или группу. Разработчик задаст цвет по условию или из кода. Дальше — по порядку, от простого к сложному.
Что можно перекрасить, а что нет
Сначала расставим границы, чтобы не искать невозможное.
| Объект | Можно менять | Кто и где |
|---|---|---|
| Строки и ячейки списков | Цвет текста, фона, шрифт | Пользователь или администратор, условное оформление |
| Поля и реквизиты формы | Цвет текста, фона, рамки | Разработчик, свойства элемента формы |
| Группы и панели | Цвет фона, рамка, отступы | Разработчик, свойства группы |
| Надписи и декорации | Цвет текста, фона | Разработчик |
| Фон окон, заголовки, кнопки платформы | Нет, определяет стиль | Только разработчик конфигурации, на уровне стиля |
💡 Если нужно «потемнее» или «покрупнее» для всего интерфейса, сначала проверьте масштаб и параметры в настройках клиента: вызовите команду настроек программы (значок шестерёнки или меню «Сервис» в зависимости от интерфейса) и посмотрите раздел параметров. Цветовую тему целиком отсюда не сменить, но масштаб и шрифты регулируются.
Договоритесь внутри команды, что означает каждый цвет. Если у одного бухгалтера красный — «просрочено», а у другого — «срочно позвонить», список превращается в пёстрый ковёр, и подсветка перестаёт работать.
Цвета на уровне пользователя: подсветка строк в списках
Без конфигуратора и без прав разработчика можно настроить условное оформление динамических списков: номенклатуры, документов, контрагентов. Работает в тонком клиенте и в веб-клиенте.
- Откройте нужный список, например список документов.
- Нажмите «Ещё» в командной панели и найдите пункт настройки списка. Название у него вида «Настройка списка…» или похожее.
- Перейдите на вкладку «Условное оформление».
- Добавьте элемент: задайте условие (например,
Суммабольше100000) и оформление (цвет текста или фона). - Выберите, к каким колонкам применять правило. Если не выбрать, оформится вся строка.
- Сохраните настройку.
Пользовательские правила хранятся в настройках вашей учётной записи и других пользователей не затрагивают. Это удобно: бухгалтер красит просроченные документы красным, а коллега видит список по-своему.
⚠️ Пункт настройки списка может отсутствовать, если разработчик отключил пользовательские настройки у конкретной формы. Тогда подсветку придётся делать в конфигураторе.
Цвет полей и реквизитов в конфигураторе
Здесь меняем внешний вид самой формы, а не данных. Нужны права администратора и режим конфигуратора.
- Откройте нужный объект (справочник, документ, обработку) и его форму.
- В редакторе формы выделите поле. Рядом откроется палитра свойств.
- Найдите свойства цвета: цвет текста, цвет фона, цвет рамки. Нужная часть также зависит от типа элемента, поэтому у надписи и у поля ввода набор слегка различается.
- Выберите значение. Доступны три источника:
- цвета стиля — берутся из стиля конфигурации и меняются вместе с ним;
- веб-цвета — стандартная палитра, например красный, зелёный, серый;
- произвольный цвет — задаётся числами RGB.
- Сохраните форму и запустите 1С:Предприятие в режиме отладки, чтобы проверить результат.
Для постоянных цветов выбирайте цвета стиля, а не жёсткий RGB. Если позже платформа или конфигурация сменит стиль, элементы с цветами стиля подстроятся сами, а «зашитые» RGB останутся как были и могут стать нечитаемыми на новом фоне.
Шрифт настраивается рядом: размер, жирность, начертание. Крупный шрифт и контрастный цвет вместе решают задачу «чтобы бросалось в глаза» лучше, чем один цвет.
Как подобрать цвета, которые читаются
Цвет в 1С задаётся тремя числами от 0 до 255: красная, зелёная и синяя составляющие. Несколько заготовок для условного оформления:
| Назначение | Цвет фона (RGB) | Цвет текста |
|---|---|---|
| Просрочка, ошибка | 255, 225, 225 | Тёмно-красный |
| Внимание | 255, 245, 200 | Тёмно-серый или чёрный |
| Выполнено | 225, 245, 225 | Серо-зелёный |
| Неактуальное | без фона | Серый |
Правила простые:
- Фон — бледный, текст — тёмный. Насыщенный красный фон под чёрным текстом на плохом мониторе читается хуже, чем бледно-розовый.
- Не опирайтесь только на цвет. Часть людей плохо различает красный и зелёный, поэтому добавьте жирный шрифт или отдельную колонку со статусом.
- Проверьте форму в чёрно-белом режиме экрана или распечатке. Если смысл ясен без цвета, подсветка сделана правильно.
- Не смешивайте больше трёх оттенков на одной форме.
Перед тем как раскатывать оформление на всех, покажите форму двум-трём будущим пользователям. Человек, который работает с ней каждый день, быстро скажет, какой цвет мешает, а какой действительно помогает находить нужные строки. Правка оттенка занимает минуту, а привыкание к неудачной подсветке тянется месяцами. Фиксируйте принятую схему в короткой памятке для сотрудников: цвет, значение, кто отвечает за изменение правил.
Условное оформление: цвет меняется по данным
Когда цвет зависит от значения, статически его не задать. Нужно условное оформление. Классический пример: просроченная задолженность красным, оплаченное зелёным, черновики серым.
В конфигураторе оно настраивается в свойствах формы или динамического списка. В редакторе формы откройте вкладку условного оформления и добавьте элемент:
- Оформляемые поля — к каким полям или колонкам применяется правило.
- Отбор — условие, при котором правило срабатывает.
- Оформление — цвет текста, цвет фона, шрифт и другие параметры.
Сложные условия собираются из нескольких отборов. Они объединяются как «И» либо как «ИЛИ», как в обычной настройке отбора списка.
| Задача | Условие | Что менять |
|---|---|---|
| Просрочка | Дата оплаты меньше текущей, статус не «Оплачено» | Цвет текста — красный |
| Закрытые элементы | Пометка выполнения включена | Цвет текста — серый |
| Крупные суммы | Сумма больше порога | Фон — светло-жёлтый, шрифт — жирный |
💡 Подбирайте контраст. Светлый текст на светлом фоне в веб-клиенте и на плохом мониторе читается тяжело. Хорошее правило: фон — бледный оттенок, текст — тёмный.
Цвет из кода на встроенном языке
Если условий много или они зависят от расчёта, цвет задают программно. Два типовых случая: поле на обычной форме и условное оформление динамического списка.
Цвет элемента формы
В модуле формы, например в процедуре ПриОткрытии, можно обратиться к элементу и задать свойства:
&НаКлиенте
Процедура ПриОткрытии(Отказ)
Если Объект.Сумма > 100000 Тогда
Элементы.Сумма.ЦветТекста = WebЦвета.Красный;
Элементы.Сумма.ЦветФона = Новый Цвет(255, 245, 200);
Иначе
Элементы.Сумма.ЦветТекста = Новый Цвет;
КонецЕсли;
КонецПроцедуры
Новый Цвет без параметров возвращает «автоматический» цвет, то есть сбрасывает ручную настройку. Для динамичных значений вызывайте код в обработчике изменения реквизита, а не только при открытии: иначе цвет не обновится, пока форму не переоткроют.
Условное оформление списка из кода
Правило добавляют в коллекцию условного оформления формы. Пример: красим текст в колонке Сумма, когда она превышает 100000.
&НаСервере
Процедура ДобавитьПодсветкуСуммы()
Элемент = УсловноеОформление.Элементы.Добавить();
Поле = Элемент.Поля.Элементы.Добавить();
Поле.Поле = Новый ПолеКомпоновкиДанных("Сумма");
Отбор = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
Отбор.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Сумма");
Отбор.ВидСравнения = ВидСравненияКомпоновкиДанных.Больше;
Отбор.ПравоеЗначение = 100000;
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", WebЦвета.Красный);
КонецПроцедуры
Вызывайте процедуру один раз, например из ПриСозданииНаСервере. При повторном вызове правила накопятся дублями, поэтому перед добавлением очистите коллекцию: УсловноеОформление.Элементы.Очистить().
⚠️ Цвет задаётся на стороне клиента, поэтому свойства элементов формы из серверных процедур без контекста доступны не всегда. Если платформа ругается на обращение к Элементы на сервере, вынесите установку цвета в клиентскую процедуру или используйте условное оформление.
Сброс цвета и очистка из кода
Бывает, что нужно вернуть полю исходный вид после того, как условие перестало выполняться. Для этого присвойте автоматический цвет:
&НаКлиенте
Процедура СуммаПриИзменении(Элемент)
Если Объект.Сумма > 100000 Тогда
Элементы.Сумма.ЦветФона = Новый Цвет(255, 225, 225);
Иначе
Элементы.Сумма.ЦветФона = Новый Цвет;
КонецЕсли;
КонецПроцедуры
Здесь цвет пересчитывается при каждом изменении суммы, так что подсветка всегда соответствует текущему значению. В записи документа цвет никак не сохраняется: это только оформление формы, данные базы не меняются.
Оформление групп и панелей
Цветом удобно разделять блоки формы: шапку, итоги, блок «внимание». Для этого у групп формы настраивают:
- цвет фона группы (если свойство доступно для выбранного вида группы);
- рамку и её цвет;
- отображение — обычное, слабое или сильное выделение;
- заголовок группы с собственным шрифтом и цветом.
Если у группы нужного свойства нет, делают «подложку» из декорации. Создайте декорацию-надпись, растяните её на нужную область, задайте цвет фона и разместите в группе перед остальными элементами.
Не злоупотребляйте. Три-четыре цветовых акцента на форму — предел. Когда подсвечено всё, не выделяется ничего.
Веб-клиент и мобильное приложение
Работает не всё одинаково, и это важно проверить до того, как вы переделали полконфигурации.
| Среда | Цвета полей и условное оформление | Особенности |
|---|---|---|
| Тонкий клиент | Поддерживаются полностью | Эталон поведения |
| Веб-клиент | Поддерживаются, отображение зависит от браузера | Оттенки могут чуть отличаться |
| Мобильное приложение | Поддерживаются частично | Оформление ограничено, внешний вид задаёт стиль платформы |
Что стоит учесть:
- Проверяйте цвета в том клиенте, где реально работают люди. Разработчик сидит в тонком клиенте, а бухгалтер — в браузере.
- Мелкие оттенки (разница между
#FFF5C8и#FFF3C0) на экранах телефонов не видна. - Для мобильных форм полагайтесь на форму, спроектированную под мобильный интерфейс, а не на перекрашенную настольную.
Отдельно про печатные формы. Цвет в макете печатной формы (табличном документе) задаётся иначе: в свойствах ячеек макета, на вкладке оформления. Цвета экранной формы и печатной формы между собой не связаны. Если нужно, чтобы просрочка была красной ещё и на бумаге, правило придётся сделать в обоих местах. Для чёрно-белой печати красный всё равно превратится в серый, поэтому дублируйте цвет словом или значком.
Частые ошибки
- Цвет есть в конфигураторе, а в программе нет. Форма не обновилась: закройте и откройте её заново или перезапустите клиент. Если в базе включено кэширование интерфейса, возможно придётся сбросить кэш пользователя.
- Правило условного оформления не срабатывает. Проверьте, что поле в «Оформляемых полях» указано верно, а тип в отборе совпадает с типом колонки: число с числом, дата с датой.
- Текст не виден. Цвет текста совпал с фоном. Сбросьте оформление элемента и задайте пару заново.
- Цвет одного пользователя «пропал». Пользовательские настройки списка хранятся отдельно для каждой учётной записи. Если настройки сброшены в профиле, правила исчезнут.