Надпись в 1С: текст в печатной форме и на форме документа

· 9 мин

Содержание

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

Разберём оба варианта: как вписать статический текст в ячейку макета, как вывести значение из кода, как показать надпись на форме и управлять её видимостью, шрифтом и положением. Примеры кода — на встроенном языке 1С, пути — для платформы 8.3 с интерфейсом «Такси».

Макет печатной формы и форму типовой конфигурации правильнее менять через расширение конфигурации (доступно с платформы 8.3.6). Так вы не снимаете основную конфигурацию с поддержки и спокойно обновляетесь дальше.

Где в 1С размещают текстовые надписи

Текст в интерфейсе и в печати живёт в трёх хранилищах, и каждое настраивается отдельно:

  • 📄 Макет печатной формы — табличный документ. Надпись печатается на листе. Самый частый случай: штамп, шапка, подпись, примечание в счёте или акте.
  • 🖥️ Управляемая форма — элемент «Декорация» вида «Надпись». Текст виден на экране, при печати формы попадает в её табличный документ.
  • 🗂️ Реквизит объекта — не надпись в чистом виде, а поле данных. Если текст должен сохраняться в базе (например, комментарий), это уже реквизит, а не оформительская подпись.

Статическая надпись — та, что не меняется: заголовок колонки, слово «Итого», фраза «Товар отпустил». Динамическая — подставляет значение: номер документа, сумму, ФИО. Механизм для них разный, и его стоит выбрать заранее.

Что выбрать под задачу:

Где нужна надписьИнструментКак добавить
Текст на печатном листеЯчейка макета, заполнение ТекстВ конфигураторе, в табличном документе макета
Значение из документа в печатиЯчейка макета, заполнение ПараметрТо же + заполнение из кода
Фраза со значением вперемешкуЯчейка макета, заполнение ШаблонТекст и [Параметр] в одной ячейке
Пояснение на экране формыДекорация вида «Надпись»На закладке «Элементы» редактора формы
Крупный штамп поверх печатиГрафический объект-надписьПанель рисунков табличного документа

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

Макет открывается в конфигураторе двойным щелчком по строке макета в дереве объекта (ветка Макеты). Перед глазами — табличный документ, разлинованный на ячейки.

Чтобы добавить постоянный текст:

  1. Выделите ячейку, куда ляжет надпись.
  2. Наберите текст прямо в ячейке.
  3. Откройте палитру свойств ячейки (Alt+Enter или контекстное меню → Свойства).
  4. В свойстве Заполнение оставьте значение Текст.

Значение Текст означает, что в ячейке именно строка, а не имя параметра. Это и есть статическая надпись — она попадёт в печать как есть.

Если надпись длиннее одной ячейки, объедините несколько: выделите диапазон и в меню Таблица → Объединить (или через контекстное меню ячеек). Объединённая область ведёт себя как одна ячейка.

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

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

Макет = Документы.РасходнаяНакладная.ПолучитьМакет("Печать");
ОбластьШапка = Макет.ПолучитьОбласть("Шапка");

ТабДок = Новый ТабличныйДокумент;
ТабДок.Вывести(ОбластьШапка);

Имя области («Шапка») задаётся в макете: выделяете диапазон строк, в его свойствах пишете Имя. Метод ПолучитьОбласть берёт именно этот именованный кусок.

С отчётом логика та же: результат отчёта выводится в табличный документ, и надпись печатается из области макета. Если отчёт построен на системе компоновки данных, общий заголовок проще задать не в макете, а в настройках — раздел Другие настройки → Заголовок. Произвольные подписи внутри отчёта выводятся через собственный макет группировки, назначенный в схеме компоновки.

Динамическая надпись: подстановка значения через параметр

Когда в надписи должно появиться значение из документа — номер, дата, сумма, — используют не текст, а параметр.

В ячейке макета:

  1. Напишите имя параметра латиницей или кириллицей, например НомерДокумента.
  2. В свойстве Заполнение выберите Параметр.

Теперь ячейка хранит не текст, а имя переменной. Заполняется она из кода перед выводом области:

ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
ОбластьШапка.Параметры.НомерДокумента = Номер;
ОбластьШапка.Параметры.ДатаДокумента = Дата;
ТабДок.Вывести(ОбластьШапка);

Есть и третий вариант заполнения — Шаблон. Он смешивает постоянный текст и параметры в квадратных скобках прямо в ячейке:

Накладная № [НомерДокумента] от [ДатаДокумента]

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

Добавляем надпись в макет
Выполнено: 0 / 6

Надпись на управляемой форме через декорацию

На форме документа, справочника или обработки надпись — это элемент типа Декорация с видом Надпись.

Чтобы добавить её в конфигураторе:

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

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

Элементы.Примечание.Заголовок = Новый ФорматированнаяСтрока(
	"Внимание: ",
	Новый ФорматированнаяСтрока("документ не проведён",
		Новый Шрифт(, , Истина), WebЦвета.Красный));

Первый аргумент печатается обычным шрифтом, второй — жирным красным. Так в одной надписи уживаются спокойный текст и акцент.

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

Декорация не хранит данные. Если текст должен сохраняться в базе и редактироваться пользователем — это реквизит с полем ввода, а не надпись.

Управление видимостью и текстом надписи из кода

И декорацию на форме, и параметр в макете можно менять программно — показывать надпись по условию или подставлять текст на лету.

Видимость декорации переключают через коллекцию Элементы:

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	Элементы.ПредупреждениеОбОтгрузке.Видимость = (Объект.Статус = "Отгружен");
КонецПроцедуры

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

Текст надписи меняется присваиванием заголовка:

Элементы.ПредупреждениеОбОтгрузке.Заголовок =
	"Отгружено " + Формат(Объект.Дата, "ДФ=dd.MM.yyyy");

Обратите внимание: число или дату перед склейкой со строкой прогоняют через Формат(), иначе 1С выдаст служебное представление. Для даты подойдёт шаблон "ДФ=dd.MM.yyyy", для числа — "ЧГ=0" (без разделителей групп).

В макете печатной формы показать или скрыть надпись по условию проще всего, выводя или не выводя её область:

Если ЭтоКопия Тогда
	ТабДок.Вывести(Макет.ПолучитьОбласть("Копия"));
КонецЕсли;

Так область с крупной надписью «КОПИЯ» выводится только тогда, когда она нужна.

Шрифт, цвет и выравнивание

Внешний вид надписи настраивается и мышью в палитре свойств, и из кода.

В макете за оформление отвечают свойства ячейки или области: Шрифт, Цвет текста, Цвет фона, Горизонтальное положение, Вертикальное положение. В конфигураторе их задают в палитре свойств. Из кода — через объект области:

Область = ОбластьШапка.Область("R1C1");
Область.Шрифт = Новый Шрифт("Arial", 12, Истина); // имя, размер, жирный
Область.ЦветТекста = Новый Цвет(0, 0, 0);
Область.ГоризонтальноеПоложение = ГоризонтальноеПоложение.Центр;

Конструктор Новый Шрифт(ИмяШрифта, Размер, Жирный, Наклонный) принимает имя гарнитуры, размер в пунктах и флаги начертания. Третий параметр Истина делает текст жирным, четвёртый — наклонным.

Для выравнивания используют перечисления ГоризонтальноеПоложение (Лево, Центр, Право, ПоШирине) и ВертикальноеПоложение (Верх, Центр, Низ). Центровка заголовка по объединённой области даёт аккуратный штамп.

На форме у декорации те же по смыслу свойства: Шрифт, Цвет текста, Горизонтальное положение. Их тоже можно переопределить в коде через Элементы.ИмяДекорации.Шрифт. Если нужен единый стиль, лучше взять готовый стилевой элемент из свойства шрифта, а не прописывать гарнитуру вручную, — тогда надпись подстроится под оформление платформы.

Для крупной акцентной надписи («ОБРАЗЕЦ», «КОПИЯ») поверх печати удобнее не ячейка, а отдельный графический объект-надпись: он не зависит от сетки и ложится слоем над таблицей.

Позиция и координаты надписи

В макете печатной формы есть два способа разместить текст.

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

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

На управляемой форме абсолютных координат нет — там работает потоковая раскладка. Положение декорации определяется порядком элементов и свойствами групп: горизонтальная группа ставит элементы в ряд, вертикальная — в столбец. Чтобы прижать надпись к краю или растянуть, настраивают свойства Растягивать по горизонтали/вертикали и положение внутри группы, а не пиксельные отступы.

Типичные ошибки

Короткий разбор того, почему надпись не появляется или выглядит не так:

Диагностика: выберите симптом

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

Чем надпись отличается от реквизита?
Надпись (декорация или текст в макете) — это оформление, она не хранит данные и не редактируется в базе. Реквизит — поле данных: его значение сохраняется и меняется пользователем.
Можно ли сделать многострочную надпись?
Да. В макете включите у ячейки перенос по словам и задайте нужную высоту строки. У декорации на форме перенос включается свойством многострочного режима заголовка.
Как добавить надпись в типовую печатную форму, не снимая конфигурацию с поддержки?
Через расширение конфигурации: добавьте в расширение изменяемый макет или собственную печатную форму. Основная конфигурация остаётся на поддержке, обновления не затирают правки.
Как повернуть надпись вертикально?
В ячейке макета есть свойство ориентации текста (угол в градусах) — поверните на 90°. У графического объекта-надписи поворот задаётся в его свойствах положения.
Почему надпись на форме «прыгает» при изменении размера окна?
Декорация не закреплена в группе. Поместите её в группу с нужной разбивкой и настройте растягивание — потоковая раскладка управляемой формы расставит элементы предсказуемо.