К статье
Практический материал

Разработка и Конфигурация · 9 мин

Декорация в 1С: назначение, виды и практическая настройка

Что такое декорация в 1С, виды элемента (надпись, картинка, форматированная строка), настройка свойств, программное управление и типичные ошибки при работе.

Декорация — это элемент управляемой формы в платформе 1С:Предприятие, который служит для оформления интерфейса, а не для ввода данных. С его помощью разработчик выводит на форму надписи, картинки, форматированные строки и разделители, не связанные напрямую с реквизитами объекта. В отличие от поля ввода декорация не хранит значение в данных формы — она отображает информацию, заданную в конфигураторе или установленную программно.

На практике декорации встречаются в каждой типовой конфигурации: подсказки и предупреждения на формах документов, гиперссылки «Подробнее», цветные индикаторы состояния, логотипы и пиктограммы. Понимание того, как работает этот элемент, нужно и разработчику, и администратору, который дорабатывает формы через расширение без изменения основной конфигурации.

Элемент «Декорация» добавляется на форму через палитру элементов в редакторе формы либо создаётся программно методом Элементы.Добавить() с типом ВидДекорацииФормы. Дальнейшее поведение определяется видом декорации и набором её свойств.

Какие виды декораций существуют в 1С

Платформа предоставляет три вида декорации, которые задаются свойством «Вид»:

  • Надпись — выводит текстовую строку. Используется для заголовков, пояснений, статусов и гиперссылок.
  • Картинка — отображает изображение из библиотеки картинок платформы, общей картинки конфигурации или двоичных данных.
  • Форматированная строка — текст с разным оформлением фрагментов: цветом, шрифтом, гиперссылками внутри одной строки.

Выбор вида определяет набор доступных свойств. У надписи важны «Заголовок», «Гиперссылка», «ЦветТекста», «Шрифт». У картинки — «Картинка», «РазмерКартинки», «Подсказка». У форматированной строки заголовок задаётся объектом ФорматированнаяСтрока, который чаще всего строится программно.

Как добавить декорацию на форму в конфигураторе

Стандартный путь — через редактор формы. Откройте форму объекта, в командной панели дерева элементов нажмите «Добавить» и выберите «Декорация». Затем в палитре свойств задайте вид, заголовок или картинку, расположение относительно других элементов.

Для надписи-гиперссылки включите свойство «Гиперссылка» и создайте обработчик события «Нажатие». Именно в обработчике описывается реакция: открытие другой формы, переход по ссылке, запуск команды. Без обработчика гиперссылка визуально выглядит активной, но ничего не делает — это частая причина замечаний при тестировании.

Обратите внимание на свойства растягивания: «РастягиватьПоГоризонтали» и «АвтоМаксимальнаяШирина». Если форма должна адаптироваться под разную ширину окна, длинные поясняющие надписи лучше размещать с автопереносом, иначе текст обрежется.

Порядок добавления декорации-надписи
  1. 1
    Откройте форму в конфигураторе и добавьте элемент «Декорация» в нужную группу
  2. 2
    Установите вид «Надпись» и заполните заголовок
  3. 3
    При необходимости включите «Гиперссылка» и создайте обработчик события «Нажатие»
  4. 4
    Настройте цвет, шрифт и растягивание под макет формы
  5. 5
    Сохраните форму и проверьте отображение в режиме предприятия при разной ширине окна

Программная работа с декорацией

Декорацию можно создать и изменить из кода модуля формы. Это удобно, когда состав элементов зависит от данных: например, предупреждение показывается только при определённом состоянии документа.

НовыйЭлемент = Элементы.Добавить("ДекорацияПредупреждение", Тип("ДекорацияФормы"), РодительскаяГруппа);

НовыйЭлемент.Вид = ВидДекорацииФормы.Надпись;

НовыйЭлемент.Заголовок = НСтр("ru = 'Документ требует проверки'");

НовыйЭлемент.ЦветТекста = WebЦвета.Красный;

Изменение существующей декорации выполняется обращением по имени: Элементы.ДекорацияСтатус.Заголовок = "Проведён";. Это типовой приём для индикаторов состояния — текст и цвет меняются в обработчиках формы без пересоздания элемента.

Форматированная строка строится конструктором с перечислением фрагментов: обычный текст, затем фрагмент с шрифтом или гиперссылкой, затем снова текст. Ссылки внутри такой строки обрабатываются событием «ОбработкаНавигационнойСсылки», где по значению ссылки определяется нужное действие.

bsl
Элементы.ДекорацияСтатус.Заголовок = "Проведён";
Элементы.ДекорацияСтатус.ЦветТекста = WebЦвета.Зеленый;
Элементы.ДекорацияСтатус.Видимость = Истина;

Типичные сценарии использования

Подсказки и предупреждения на форме

Надпись с поясняющим текстом и визуальным выделением — самый частый сценарий. Например, рядом с полем контрагента выводится «У контрагента есть задолженность». Рекомендуется управлять видимостью такой декорации программно, чтобы пустое предупреждение не занимало место на форме.

Гиперссылки для навигации

Надпись с включённым свойством «Гиперссылка» заменяет кнопку, когда действие второстепенное: «История изменений», «Перейти к настройкам». В обработчике нажатия открывается нужная форма через ОткрытьФорму().

Индикаторы и пиктограммы

Декорация-картинка показывает состояние объекта: зелёная галочка для проведённого документа, жёлтый треугольник для предупреждения. Картинку удобно брать из библиотеки картинок платформы — тогда она будет соответствовать общему стилю интерфейса.

Выбор вида декорации

Надпись

Простой текст, статусы, гиперссылки. Не подходит, если внутри строки нужны разные стили фрагментов.

Картинка

Пиктограммы состояния, логотипы. Ограничение: нет текста, размер зависит от исходного изображения.

Форматированная строка

Смешанное оформление и несколько ссылок в одной строке. Сложнее в настройке, заголовок строится программно.

Свойства, которые влияют на поведение

Несколько свойств декорации регулярно вызывают вопросы при настройке. «АвтоОтметкаНезаполненного» и свойства ввода у декорации отсутствуют — элемент не участвует в проверке заполнения. «Доступность» делает гиперссылку неактивной без скрытия элемента. «Видимость» полностью убирает декорацию из компоновки формы.

Свойство «ВертикальноеПоложение» и «ГоризонтальноеПоложение» влияют на выравнивание текста внутри элемента, а не на его место на форме — расположение элемента определяется группировкой родительских контейнеров. Это различие важно при выравнивании надписей в колонках.

Типичные ошибки и ограничения

Первая ошибка — попытка сохранить значение декорации в базу. Элемент не имеет связи с данными, поэтому для редактируемого текста нужен реквизит формы и поле надписи. Вторая — гиперссылка без обработчика нажатия, которая визуально активна, но не выполняет действий.

Третья ошибка — жёсткая фиксация ширины длинных надписей. При другом масштабе интерфейса или локализации текст обрезается. Используйте автоперенос и растягивание. Четвёртая — создание декораций программно в обработчике, который вызывается многократно: элементы дублируются. Проверяйте существование элемента перед добавлением.

Типичные ошибки
01
Гиперссылка без обработчика «Нажатие» — элемент выглядит активным, но ничего не делает
02
Программное создание декорации без проверки существования — при повторном вызове элементы дублируются
03
Фиксированная ширина длинной надписи — текст обрезается при другом масштабе интерфейса
04
Попытка хранить данные в декорации вместо реквизита формы — значение теряется

Как проверить результат

После настройки откройте форму в режиме предприятия и проверьте три вещи: текст полностью читается при минимальной и максимальной ширине окна, гиперссылки выполняют ожидаемое действие, а программно управляемые декорации корректно появляются и скрываются при изменении данных. Если форма открывается из разных ролей, проверьте отображение под пользователем с ограниченными правами — обработчик гиперссылки может обращаться к недоступным объектам.

Контрольные точки

Как проверить результат

Отображение текста
Норма

Надпись полностью видна при разной ширине окна

Тревожный признак

Текст обрезан или налезает на соседние элементы

Работа гиперссылки
Норма

Нажатие вызывает обработчик и выполняет действие

Тревожный признак

Нажатие ни к чему не приводит

Программное управление
Норма

Видимость и заголовок меняются по условиям без дублирования элементов

Тревожный признак

Элементы дублируются или не обновляются

Итог

Что важно запомнить

Декорация — элемент оформления формы без связи с данными. Выбирайте вид под задачу: надпись для текста и ссылок, картинку для индикаторов, форматированную строку для смешанного оформления. Проверяйте обработчики гиперссылок и поведение при разной ширине окна.

Частые вопросы

Чем декорация отличается от поля надписи?

Поле надписи связано с реквизитом данных формы через путь к данным и отображает его значение. Декорация не привязана к данным — её заголовок задаётся напрямую в конфигураторе или кодом. Для отображения значений из базы используйте поле надписи, для статических подсказок и ссылок — декорацию.

Можно ли сделать декорацию кликабельной?

Да. Для надписи включите свойство «Гиперссылка» и создайте обработчик события «Нажатие». У декорации-картинки также доступно событие нажатия при соответствующей настройке. Без обработчика элемент не выполнит никакого действия.

Как изменить текст декорации из кода?

Обратитесь к элементу по имени: Элементы.ИмяДекорации.Заголовок = "Новый текст";. Аналогично меняются цвет текста, видимость и картинка. Изменения применяются немедленно, без перерисовки всей формы.

Можно ли добавить декорацию через расширение конфигурации?

Да, расширения позволяют добавлять элементы на заимствованные формы, включая декорации, и назначать им обработчики из модуля расширения. Это безопасный способ доработки типовой формы без изменения основной конфигурации и без потери поддержки обновлений.

Почему длинный текст декорации обрезается?

Чаще всего из-за фиксированной ширины элемента или отключённого автопереноса. Включите растягивание по горизонтали и убедитесь, что родительская группа не ограничивает ширину. Проверяйте отображение при минимальной ширине окна и при увеличенном масштабе интерфейса.