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