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