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

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

Как сделать надпись на форме 1С

Как добавить надпись на форму в 1С: через конфигуратор, программно и в расширении. Декорации, реквизиты формы, примеры кода и типичные ошибки.

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

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

Какие виды надписей существуют в 1С

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

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

Добавление статической надписи в конфигураторе

Откройте конфигуратор, найдите нужный объект (документ, справочник, обработку) и откройте его форму — либо основную, либо создайте новую через конструктор. В окне редактора формы элементы расположены в левой верхней панели в виде дерева.

Порядок действий:

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

Обратите внимание на свойство «ПоложениеЗаголовка» — для декорации-надписи заголовок выводится внутри самого элемента, поэтому это свойство обычно оставляют без изменений. Текст можно разбить на несколько строк, включив свойство «АвтоМаксимальнаяШирина» или задав переносы вручную.

После сохранения формы обновите конфигурацию базы данных (F7) и откройте объект в режиме предприятия. Надпись должна отображаться в том месте формы, где вы разместили декорацию.

Надпись с изменяемым текстом через реквизит формы

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

Затем перетащите реквизит из панели реквизитов в дерево элементов формы. 1С автоматически создаст элемент «Поле» с видом «Поле надписи». Внешне это обычная надпись, но её содержимое берётся из реквизита. Остаётся присваивать значение программно.

&НаКлиенте

Процедура ПриОткрытии(Отказ)

ОбновитьСтатусНадписи();

КонецПроцедуры

&НаСервере

Процедура ОбновитьСтатусНадписи()

Если Объект.Проведен Тогда

ТекстСтатуса = "Документ проведен";

Элементы.ТекстСтатуса.ЦветТекста = WebЦвета.Зеленый;

Иначе

ТекстСтатуса = "Документ не проведен";

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

КонецЕсли;

КонецПроцедуры

Обратите внимание: изменение цвета и других свойств элемента выполняется на сервере, поэтому процедура объявлена с директивой &НаСервере. Если надпись должна реагировать на изменение полей формы, повесьте вызов обновления на обработчики событий «ПриИзменении» соответствующих полей.

Программное создание надписи

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

&НаСервере

Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

НовыйРеквизит = Новый Массив;

НовыйРеквизит.Добавить(Новый РеквизитФормы("НадписьИтог",

Новый ОписаниеТипов("Строка"), "", "Итого", Ложь));

ИзменитьРеквизиты(НовыйРеквизит);

Элемент = Элементы.Добавить("НадписьИтог", Тип("ПолеФормы"), Элементы.ГруппаПодвал);

Элемент.Вид = ВидПоляФормы.ПолеНадписи;

Элемент.ПутьКДанным = "НадписьИтог";

КонецПроцедуры

Ключевой момент: сначала реквизит добавляется через ИзменитьРеквизиты(), и только потом создаётся элемент, привязанный к нему через свойство «ПутьКДанным». Обратный порядок вызовет ошибку, поскольку элемент ссылается на ещё не существующий реквизит.

Программное создание элементов допустимо только в обработчике «ПриСозданииНаСервере» — в других обработчиках состав реквизитов формы изменять нельзя.

Добавление надписи через расширение конфигурации

Если конфигурация типовая и находится на поддержке, прямая правка формы затруднит обновления. Расширение позволяет добавить надпись, не затрагивая основную конфигурацию.

Создайте новое расширение (раздел «Конфигурация» → «Расширения конфигурации»), добавьте в него нужную форму объекта через команду «Добавить в расширение». Заимствованная форма откроется в редакторе, и в неё можно добавлять собственные элементы — декорации и реквизиты — так же, как в обычной форме.

Для программного заполнения надписи в расширении используются аннотации перехвата обработчиков, например &После("ПриСозданииНаСервере"). Это позволяет выполнить свой код после типового, не изменяя его.

Сравнение способов

Декорация в конфигураторе

Подходит для статического текста. Быстро и без кода, но текст нельзя менять из данных.

Реквизит формы + поле надписи

Универсальный вариант для динамического текста. Требует минимального кода.

Программное создание

Для динамического набора элементов. Сложнее, требует работы с ИзменитьРеквизиты.

Расширение

Единственный безопасный вариант для типовых конфигураций на поддержке.

Оформление надписи: цвет, шрифт, гиперссылка

Для привлечения внимания надпись оформляют через свойства элемента: «ЦветТекста», «Шрифт», «ЦветФона», «Рамка». Значения можно задать в конфигураторе или программно через перечисления WebЦвета и ЦветаСтиля. Предпочтительнее использовать цвета стиля — они корректно отображаются при смене темы интерфейса.

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

Для длинных пояснений полезны свойства «Высота» и «АвтоМаксимальнаяШирина»: они позволяют тексту переноситься по строкам и не обрезаться при изменении размера окна.

Типичные ошибки
01
Добавление декорации вместо поля надписи, когда текст должен меняться — в итоге текст не обновляется
02
Присваивание значения реквизиту на клиенте, когда элемент создан программно на сервере — надпись остаётся пустой
03
Изменение типовой формы напрямую вместо расширения — правки теряются при обновлении конфигурации
04
Забытое обновление конфигурации базы данных (F7) — изменения не видны в режиме предприятия
05
Создание элемента до добавления реквизита через ИзменитьРеквизиты — ошибка выполнения

Проверка результата

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

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

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

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

Текст виден полностью, без обрезки

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

Текст пустой или обрезан — проверьте ПутьКДанным и ширину элемента

Обновление динамической надписи
Норма

Текст меняется при изменении данных объекта

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

Текст не меняется — проверьте обработчики событий и контекст сервера

Поведение после обновления конфигурации
Норма

Надпись на месте после обновления

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

Надпись пропала — форма была изменена напрямую, а не через расширение

Итог

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

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

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

Как сделать надпись на форме, не меняя конфигурацию?

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

Почему надпись не отображается в режиме предприятия?

Чаще всего не обновлена конфигурация базы данных (F7) после сохранения формы. Также проверьте, что элемент не скрыт свойством «Видимость», а реквизит, к которому привязано поле надписи, действительно заполняется.

Как вывести многострочный текст в надписи?

Задайте текст с символами переноса строки (Символы.ПС при программном формировании) и настройте свойства «Высота» и «АвтоМаксимальнаяШирина» элемента, чтобы текст переносился и не обрезался.

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

Декорация выводит фиксированный заголовок, заданный в конфигураторе, и не связана с данными. Поле надписи привязано к реквизиту через «ПутьКДанным» и отображает его текущее значение, которое можно менять программно.

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

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

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

Обратитесь к элементу формы и задайте свойство ЦветТекста, например: Элементы.ТекстСтатуса.ЦветТекста = WebЦвета.Красный. Для устойчивости к смене темы интерфейса лучше использовать ЦветаСтиля вместо фиксированных веб-цветов.