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