При разработке конфигураций на платформе «1С:Предприятие 8.3» часто возникает задача визуального разделения функциональных блоков. Например, когда необходимо выделить финансовый контур или новые сущности, чтобы пользователь мог мгновенно ориентироваться в интерфейсе. Рассмотрим, какие инструменты предоставляет платформа для решения этой задачи, разберем существующие ограничения и найдем наиболее эффективные обходные пути.
Проанализируем ситуацию, с которой сталкиваются многие разработчики: попытка изменить цвет шрифта или фона отдельных кнопок в панели разделов или панели функций. Выясним причину, по которой стандартные стили не приносят ожидаемого результата в этой области. В современном интерфейсе «Такси» дизайн системы стремится к унификации. Настройка основного стиля конфигурации влияет на всю систему целиком. Платформа не предоставляет штатных средств для того, чтобы «покрасить» одну подсистему в синий цвет, а другую — в зеленый непосредственно в главном меню.
Важный момент: Свойство стиля, примененное к подсистеме, не меняет цвет ее заголовка в панели разделов. Это свойство скорее указывает на принадлежность объектов к определенному визуальному контексту, который может наследоваться в некоторых типах форм, но не в командном интерфейсе. Поэтому, если ваша задача — выделить подсистему именно в главном меню, нам придется использовать иные методы визуального акцентирования.
Посмотрим на самый простой и при этом стандартный для 1С способ выделения — использование картинок (иконок) для подсистем. Это «легитимный» метод разделения сущностей, который предусмотрен архитектурой «Такси». Разберем, как это сделать правильно:
Картинка.Картинка выберем созданный нами объект.После этих действий в панели разделов слева от названия вашей «Финансовой системы» появится иконка. Это позволяет пользователю на подсознательном уровне идентифицировать блок данных по графическому символу, даже если текст остается стандартного цвета.
Если нам необходимо выделить именно внутреннее содержимое сущностей (формы документов, справочников), мы можем использовать Элементы стиля. Это позволяет избежать «жесткого» кодирования цветов и дает возможность управлять оформлением централизованно. Проанализируем алгоритм создания своего стиля:
Общие -> Элементы стиля добавим новый элемент, назовем его, например, ЦветФонаФинансовыхДокументов.Цвет и выберем нужный оттенок (например, мягкий светло-зеленый).В дизайнере формы выберем корневой элемент (Форма) или отдельную Группу, и в свойстве ЦветФона укажем наш элемент стиля. Рассмотрим пример программного изменения цвета формы при ее открытии:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// Устанавливаем цвет фона формы из элементов стиля
ЭтаФорма.ЦветФона = СтилиЭлементов.ЦветФонаФинансовыхДокументов;
КонецПроцедуры
Такой подход позволяет пометить все финансовые сущности единым стилем. Если в будущем потребуется сменить цвет с зеленого на желтый, вам достаточно будет изменить его в одном месте — в объекте Элемент стиля.
Выясним наиболее эффективный метод «пометки сущностей в системе учета», о котором часто забывают новички. Это Условное оформление динамических списков. Поскольку сущности (документы) отображаются в списках, именно там логично выделить их цветом. Разберем, как реализовать выделение финансовых операций в общем журнале документов или в списках самих сущностей.
Для этого в конфигураторе откройте форму списка документа и перейдите на вкладку Условное оформление:
Оформление установим Цвет текста или Цвет фона.Условие зададим критерий (например, СуммаОперации > 100000 или ВидОперации = Финансы).Оформляемые поля укажем те колонки, которые должны окраситься (или оставим пустым для окрашивания всей строки).Если необходимо реализовать это программно (что более гибко), используем следующий код в процедуре ПриСозданииНаСервере:
ЭлементОформления = Список.УсловноеОформление.Элементы.Добавить();
ЭлементОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", ЦветаСтиля.КритическоеСостояние);
Условие = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
Условие.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("СтатусОплаты");
Условие.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
Условие.ПравоеЗначение = Перечисления.СтатусыОплаты.Оплачено;
ПолеОформления = ЭлементОформления.Поля.Элементы.Добавить();
ПолеОформления.Поле = Новый ПолеКомпоновкиДанных("Номер");
Этот метод наглядно «помечает» данные непосредственно в рабочем интерфейсе, что полностью соответствует задаче визуального выделения сущностей в системе учета.
Как было отмечено в ходе обсуждения на форуме, в обычных формах (толстый клиент) возможностей для прямой настройки стиля формы через свойства было больше. Если вы работаете в режиме совместимости или со старыми конфигурациями, вы можете напрямую указать объект Стиль в свойствах формы. Рассмотрим путь в Синтакс-помощнике для изучения этого вопроса: Интерфейс (обычный) -> Форма -> Свойства -> Стиль. Однако помните, что для современных решений на базе управляемых форм (интерфейс «Такси») этот метод не применим, и следует ориентироваться на Элементы стиля и Условное оформление.
Посмотрим на еще один способ визуального выделения — группировку. Внутри подсистемы элементы можно объединять в группы. Хотя мы не можем раскрасить заголовки групп в разные цвета, само разделение сущностей на «Основные данные» и «Финансовые операции» создает структуру. В сочетании с уникальными иконками для каждого типа документов это создает законченный и профессиональный вид интерфейса.
Подведем итог: Для решения задачи студента по визуальному выделению сущностей наиболее правильным путем будет использование комплекса мер: яркие **иконки** для подсистем, создание собственных **элементов стиля** для оформления форм документов и настройка **условного оформления** в списках для выделения финансовых транзакций цветом.