Разработка и Конфигурация · 9 мин
Декорация в 1С: назначение, виды и практическая настройка
Что такое декорация в 1С, виды элемента (надпись, картинка, форматированная строка), настройка свойств, программное управление и типичные ошибки при работе.
Декорация — это элемент управляемой формы в платформе 1С:Предприятие, который служит для оформления интерфейса, а не для ввода данных. С его помощью разработчик выводит на форму надписи, картинки, форматированные строки и разделители, не связанные напрямую с реквизитами объекта. В отличие от поля ввода декорация не хранит значение в данных формы — она отображает информацию, заданную в конфигураторе или установленную программно.
На практике декорации встречаются в каждой типовой конфигурации: подсказки и предупреждения на формах документов, гиперссылки «Подробнее», цветные индикаторы состояния, логотипы и пиктограммы. Понимание того, как работает этот элемент, нужно и разработчику, и администратору, который дорабатывает формы через расширение без изменения основной конфигурации.
Элемент «Декорация» добавляется на форму через палитру элементов в редакторе формы либо создаётся программно методом Элементы.Добавить() с типом ВидДекорацииФормы. Дальнейшее поведение определяется видом декорации и набором её свойств.
Какие виды декораций существуют в 1С
Платформа предоставляет три вида декорации, которые задаются свойством «Вид»:
- Надпись — выводит текстовую строку. Используется для заголовков, пояснений, статусов и гиперссылок.
- Картинка — отображает изображение из библиотеки картинок платформы, общей картинки конфигурации или двоичных данных.
- Форматированная строка — текст с разным оформлением фрагментов: цветом, шрифтом, гиперссылками внутри одной строки.
Выбор вида определяет набор доступных свойств. У надписи важны «Заголовок», «Гиперссылка», «ЦветТекста», «Шрифт». У картинки — «Картинка», «РазмерКартинки», «Подсказка». У форматированной строки заголовок задаётся объектом ФорматированнаяСтрока, который чаще всего строится программно.
Как добавить декорацию на форму в конфигураторе
Стандартный путь — через редактор формы. Откройте форму объекта, в командной панели дерева элементов нажмите «Добавить» и выберите «Декорация». Затем в палитре свойств задайте вид, заголовок или картинку, расположение относительно других элементов.
Для надписи-гиперссылки включите свойство «Гиперссылка» и создайте обработчик события «Нажатие». Именно в обработчике описывается реакция: открытие другой формы, переход по ссылке, запуск команды. Без обработчика гиперссылка визуально выглядит активной, но ничего не делает — это частая причина замечаний при тестировании.
Обратите внимание на свойства растягивания: «РастягиватьПоГоризонтали» и «АвтоМаксимальнаяШирина». Если форма должна адаптироваться под разную ширину окна, длинные поясняющие надписи лучше размещать с автопереносом, иначе текст обрежется.
- 1Откройте форму в конфигураторе и добавьте элемент «Декорация» в нужную группу
- 2Установите вид «Надпись» и заполните заголовок
- 3При необходимости включите «Гиперссылка» и создайте обработчик события «Нажатие»
- 4Настройте цвет, шрифт и растягивание под макет формы
- 5Сохраните форму и проверьте отображение в режиме предприятия при разной ширине окна
Программная работа с декорацией
Декорацию можно создать и изменить из кода модуля формы. Это удобно, когда состав элементов зависит от данных: например, предупреждение показывается только при определённом состоянии документа.
НовыйЭлемент = Элементы.Добавить("ДекорацияПредупреждение", Тип("ДекорацияФормы"), РодительскаяГруппа);
НовыйЭлемент.Вид = ВидДекорацииФормы.Надпись;
НовыйЭлемент.Заголовок = НСтр("ru = 'Документ требует проверки'");
НовыйЭлемент.ЦветТекста = WebЦвета.Красный;
Изменение существующей декорации выполняется обращением по имени: Элементы.ДекорацияСтатус.Заголовок = "Проведён";. Это типовой приём для индикаторов состояния — текст и цвет меняются в обработчиках формы без пересоздания элемента.
Форматированная строка строится конструктором с перечислением фрагментов: обычный текст, затем фрагмент с шрифтом или гиперссылкой, затем снова текст. Ссылки внутри такой строки обрабатываются событием «ОбработкаНавигационнойСсылки», где по значению ссылки определяется нужное действие.
Элементы.ДекорацияСтатус.Заголовок = "Проведён";
Элементы.ДекорацияСтатус.ЦветТекста = WebЦвета.Зеленый;
Элементы.ДекорацияСтатус.Видимость = Истина;Типичные сценарии использования
Подсказки и предупреждения на форме
Надпись с поясняющим текстом и визуальным выделением — самый частый сценарий. Например, рядом с полем контрагента выводится «У контрагента есть задолженность». Рекомендуется управлять видимостью такой декорации программно, чтобы пустое предупреждение не занимало место на форме.
Гиперссылки для навигации
Надпись с включённым свойством «Гиперссылка» заменяет кнопку, когда действие второстепенное: «История изменений», «Перейти к настройкам». В обработчике нажатия открывается нужная форма через ОткрытьФорму().
Индикаторы и пиктограммы
Декорация-картинка показывает состояние объекта: зелёная галочка для проведённого документа, жёлтый треугольник для предупреждения. Картинку удобно брать из библиотеки картинок платформы — тогда она будет соответствовать общему стилю интерфейса.
Выбор вида декорации
Простой текст, статусы, гиперссылки. Не подходит, если внутри строки нужны разные стили фрагментов.
Пиктограммы состояния, логотипы. Ограничение: нет текста, размер зависит от исходного изображения.
Смешанное оформление и несколько ссылок в одной строке. Сложнее в настройке, заголовок строится программно.
Свойства, которые влияют на поведение
Несколько свойств декорации регулярно вызывают вопросы при настройке. «АвтоОтметкаНезаполненного» и свойства ввода у декорации отсутствуют — элемент не участвует в проверке заполнения. «Доступность» делает гиперссылку неактивной без скрытия элемента. «Видимость» полностью убирает декорацию из компоновки формы.
Свойство «ВертикальноеПоложение» и «ГоризонтальноеПоложение» влияют на выравнивание текста внутри элемента, а не на его место на форме — расположение элемента определяется группировкой родительских контейнеров. Это различие важно при выравнивании надписей в колонках.
Типичные ошибки и ограничения
Первая ошибка — попытка сохранить значение декорации в базу. Элемент не имеет связи с данными, поэтому для редактируемого текста нужен реквизит формы и поле надписи. Вторая — гиперссылка без обработчика нажатия, которая визуально активна, но не выполняет действий.
Третья ошибка — жёсткая фиксация ширины длинных надписей. При другом масштабе интерфейса или локализации текст обрезается. Используйте автоперенос и растягивание. Четвёртая — создание декораций программно в обработчике, который вызывается многократно: элементы дублируются. Проверяйте существование элемента перед добавлением.
Как проверить результат
После настройки откройте форму в режиме предприятия и проверьте три вещи: текст полностью читается при минимальной и максимальной ширине окна, гиперссылки выполняют ожидаемое действие, а программно управляемые декорации корректно появляются и скрываются при изменении данных. Если форма открывается из разных ролей, проверьте отображение под пользователем с ограниченными правами — обработчик гиперссылки может обращаться к недоступным объектам.
Как проверить результат
Надпись полностью видна при разной ширине окна
Текст обрезан или налезает на соседние элементы
Нажатие вызывает обработчик и выполняет действие
Нажатие ни к чему не приводит
Видимость и заголовок меняются по условиям без дублирования элементов
Элементы дублируются или не обновляются
Что важно запомнить
Декорация — элемент оформления формы без связи с данными. Выбирайте вид под задачу: надпись для текста и ссылок, картинку для индикаторов, форматированную строку для смешанного оформления. Проверяйте обработчики гиперссылок и поведение при разной ширине окна.
Частые вопросы
Чем декорация отличается от поля надписи?
Поле надписи связано с реквизитом данных формы через путь к данным и отображает его значение. Декорация не привязана к данным — её заголовок задаётся напрямую в конфигураторе или кодом. Для отображения значений из базы используйте поле надписи, для статических подсказок и ссылок — декорацию.
Можно ли сделать декорацию кликабельной?
Да. Для надписи включите свойство «Гиперссылка» и создайте обработчик события «Нажатие». У декорации-картинки также доступно событие нажатия при соответствующей настройке. Без обработчика элемент не выполнит никакого действия.
Как изменить текст декорации из кода?
Обратитесь к элементу по имени: Элементы.ИмяДекорации.Заголовок = "Новый текст";. Аналогично меняются цвет текста, видимость и картинка. Изменения применяются немедленно, без перерисовки всей формы.
Можно ли добавить декорацию через расширение конфигурации?
Да, расширения позволяют добавлять элементы на заимствованные формы, включая декорации, и назначать им обработчики из модуля расширения. Это безопасный способ доработки типовой формы без изменения основной конфигурации и без потери поддержки обновлений.
Почему длинный текст декорации обрезается?
Чаще всего из-за фиксированной ширины элемента или отключённого автопереноса. Включите растягивание по горизонтали и убедитесь, что родительская группа не ограничивает ширину. Проверяйте отображение при минимальной ширине окна и при увеличенном масштабе интерфейса.