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

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

Что такое шаблон в макете 1С и как с ним работать

Разбираем, что такое шаблон в макете 1С: типы макетов, области, параметры и шаблоны ячеек, заполнение из кода, типичные ошибки и проверка результата.

Макет в 1С — это объект конфигурации, который описывает внешний вид печатной формы, табличного документа или схемы, а шаблон внутри макета определяет, как именно данные подставляются в ячейки. Когда пользователь нажимает кнопку «Печать», программа берёт макет, заполняет его областями и параметрами из кода и выводит готовый табличный документ. Без понимания устройства макета и шаблона невозможно ни создать свою печатную форму, ни грамотно поправить существующую.

Путаница возникает из-за того, что слово «шаблон» в 1С используется в нескольких смыслах: это и тип заполнения ячейки макета, и текстовый шаблон в файлах шаблонов конфигуратора, и шаблон ограничения доступа к данным. В контексте макета речь идёт именно о типе заполнения ячейки «Шаблон», который позволяет объединять статический текст и параметры в одной строке. Именно этот механизм разберём подробно.

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

Что такое макет и где он хранится в конфигурации

Макет — это объект метаданных, который находится в ветке «Общие» → «Макеты» дерева конфигурации либо в подчинённых ветках конкретных объектов: справочников, документов, отчётов. Макет, привязанный к документу, обычно используется для печати именно этого документа, а общий макет доступен из любого места кода. Хранится макет внутри конфигурации и поставляется вместе с ней, поэтому при обновлении типовой конфигурации изменённые макеты могут быть замещены — это важно учитывать при доработках.

У макета есть тип, который задаётся при создании: табличный документ, текстовый документ, схема компоновки данных, HTML-документ, географическая схема и другие. Для печатных форм почти всегда используется тип «Табличный документ» — он выглядит как таблица с ячейками, похожая на лист Excel. Именно в ячейках такого макета и работает механизм шаблонов.

Кроме встроенных макетов существуют внешние печатные формы — файлы с расширением .epf, которые подключаются через механизм дополнительных отчётов и обработок. Они используют те же принципы, но хранятся отдельно от конфигурации, что безопаснее при обновлениях.

Структура макета: области, параметры и ячейки

Макет типа «Табличный документ» состоит из ячеек, объединённых в области. Область — это именованный фрагмент макета: строка, диапазон строк или прямоугольник ячеек. Типичный макет печатной формы содержит области «Шапка», «СтрокаТаблицы», «Подвал», «Итого». При печати код последовательно получает эти области методом ПолучитьОбласть(), заполняет параметры и выводит их в результирующий табличный документ методом Вывести().

Каждая ячейка имеет свойство «Заполнение», которое принимает одно из трёх значений: «Текст», «Параметр» и «Шаблон». От выбранного значения зависит, как платформа будет интерпретировать содержимое ячейки при выводе. Неправильно выбранный тип заполнения — одна из самых частых причин, почему в печатной форме вместо значения выводится имя параметра или пустая строка.

Параметры области — это именованные «входы», через которые код передаёт данные. Увидеть список параметров области можно, выделив область и открыв палитру свойств, либо нажав на ячейку с параметром правой кнопкой. Из кода обращение к параметру выглядит так: Область.Параметры.Номенклатура = СтрокаТовара.Номенклатура;.

Три типа заполнения ячейки: текст, параметр, шаблон

Тип «Текст» означает, что содержимое ячейки выводится как есть, без обработки. Так заполняют статичные надписи: «Покупатель:», «Итого:», заголовки колонок. Если в такой ячейке написать [Контрагент], на печать выйдет буквально строка «[Контрагент]» — платформа не станет искать параметр.

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

Тип «Шаблон» — гибридный вариант. В тексте ячейки можно писать обычные слова и вставлять параметры в квадратных скобках: Договор № [НомерДоговора] от [ДатаДоговора]. При выводе платформа заменит каждый фрагмент в скобках значением соответствующего параметра, а остальной текст оставит без изменений. Это избавляет от необходимости дробить одну фразу на несколько ячеек.

Сравнение типов заполнения

Текст

Статичная надпись без подстановок. Подходит для заголовков и подписей; параметры внутри не обрабатываются.

Параметр

Вся ячейка заменяется одним значением из кода. Подходит для отдельных полей; нельзя смешивать с текстом в той же ячейке.

Шаблон

Текст с параметрами в квадратных скобках. Подходит для составных фраз; требует аккуратности с именами параметров и форматами.

Как создать и заполнить шаблон в макете пошагово

Рассмотрим практический сценарий: нужно вывести в шапке печатной формы строку вида «Счёт на оплату № 145 от 12.03.2026». Статический текст здесь — «Счёт на оплату №» и «от», а переменные данные — номер и дата документа.

Код вывода области выглядит примерно так:

Макет = Документы.СчетНаОплату.ПолучитьМакет("Счет");

ОбластьШапка = Макет.ПолучитьОбласть("Шапка");

ОбластьШапка.Параметры.Номер = НомерДокумента;

ОбластьШапка.Параметры.Дата = Формат(ДатаДокумента, "ДЛФ=D");

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

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

Типичные ошибки при работе с шаблонами макетов

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

Типичные ошибки
01
Имя параметра в шаблоне не совпадает с именем в коде, включая регистр и опечатки — в итоге ошибка «Параметр не найден» или пустое значение.
02
Ячейке оставлен тип «Текст», а внутри написан [Параметр] — на печать выводится буквально текст со скобками.
03
Попытка задать формат через свойство «Формат» для ячейки-шаблона — формат применяется только к ячейкам с типом «Параметр», в шаблоне он игнорируется.
04
Вывод области «СтрокаТаблицы» вне цикла — печатается только одна строка вместо всей табличной части.
05
Изменение макета типовой конфигурации без расширения или внешней печатной формы — при обновлении доработка теряется.

Отдельно стоит упомянуть проблему объединённых ячеек. Если ячейка с шаблоном входит в объединение, редактировать её свойства нужно через ячейку-«якорь» (левую верхнюю в объединении). Попытка изменить свойства не той ячейки приводит к тому, что изменения визуально есть, а на печать они не попадают.

Как проверить результат и отладить печатную форму

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

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

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

Значения параметров на печати
Норма

Подставлены реальные данные документа, формат даты и чисел корректен

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

Видны имена параметров в скобках, пустые места или неформатированные значения

Табличная часть
Норма

Выведены все строки документа, итоги совпадают с данными

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

Одна строка, пропущенные позиции, неверные итоги

Разрывы страниц
Норма

Шапка таблицы повторяется на новой странице, строки не обрезаны

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

Заголовки теряются, строки разрываются посередине

Для отладки удобно использовать отладчик конфигуратора: поставьте точку останова перед строкой Вывести() и посмотрите в табло значения параметров области. Если параметр есть, но значение пустое — проблема в источнике данных. Если параметра нет в коллекции — проблема в макете: проверьте тип заполнения ячейки и написание имени в скобках.

Полезный приём — временно вывести макет без заполнения, просто последовательно выводя все области. Так видно, какие параметры где находятся, и проще сопоставить макет с кодом заполнения.

Маршрут решения

Как выбрать действие

На печати виден текст вида [ИмяПараметра]Проверьте тип заполнения ячейки — вероятно, стоит «Текст» вместо «Шаблон»
Ошибка «Параметр не найден» при выводеСверьте имя параметра в коде с именем в ячейке макета посимвольно
Нужно изменить типовую печатную формуСоздайте внешнюю печатную форму или расширение, не меняя макет в основной конфигурации
В ячейке нужен только формат значения без текстаИспользуйте тип «Параметр» со свойством «Формат», а не шаблон

Другие значения слова «шаблон» в 1С

Чтобы не путаться, полезно знать, где ещё встречается этот термин. Шаблоны текста в конфигураторе — это файлы подстановок (.st), которые ускоряют набор кода: например, по сокращению «Если» подставляется заготовка конструкции. Они настраиваются через Сервис → Шаблоны текста и к макетам отношения не имеют.

Шаблоны ограничения доступа (RLS) — это параметризованные конструкции языка ограничения доступа к данным на уровне записей. Они живут в ролях и определяют, какие строки таблиц видит пользователь. Третий контекст — шаблоны в механизме СКД: шаблоны заголовков группировок и шаблоны полей, которые настраивают представление данных в отчётах.

Общее у всех этих механизмов одно: шаблон — это заготовка с местами для подстановки, которую система заполняет конкретными значениями в момент использования. Но настраиваются они в разных местах и разными инструментами.

При доработке печатной формы давайте областям и параметрам говорящие имена: «СтрокаТовары», «ИтогоСумма», а не «Область1», «П2». Через полгода сопровождения это сэкономит заметное время и снизит риск ошибок при правках.
ПЗ
Практическое замечание

Ограничения механизма шаблонов в макетах

Шаблон в ячейке удобен, но не универсален. Внутри квадратных скобок можно указать только имя параметра — никаких выражений, вызовов функций или арифметики. Если нужно вывести вычисляемое значение, его придётся рассчитать в коде и передать как готовый параметр.

Второе ограничение — форматирование. Для ячейки-шаблона свойство «Формат» не применяется к вложенным параметрам, поэтому вся подготовка представления ложится на код. Третий момент: если параметр не заполнен, на его месте выводится пустая строка, и предложение может «развалиться» — например, «Договор № от 12.03.2026». Такие случаи обрабатывают условиями в коде, выбирая разные области макета для заполненного и пустого варианта.

Наконец, макеты табличных документов плохо подходят для сложной вёрстки с переменной высотой блоков и обтеканием. Для таких задач рассматривают HTML-макеты или офисные форматы через COM/внешние компоненты, но это уже компромисс между гибкостью и простотой сопровождения.

Итог

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

Шаблон в макете 1С — это тип заполнения ячейки, объединяющий текст и параметры в квадратных скобках. Проверяйте соответствие имён параметров в макете и коде, форматируйте значения в коде, а типовые макеты меняйте только через расширения или внешние печатные формы.

Частые вопросы о шаблонах в макетах 1С

Чем шаблон отличается от параметра в ячейке макета?

Параметр заменяет содержимое всей ячейки одним значением и поддерживает свойство «Формат». Шаблон позволяет вписать несколько параметров внутрь произвольного текста одной ячейки, но форматировать значения придётся в коде. Выбор зависит от того, нужна ли ячейка со смешанным содержимым.

Почему вместо значения на печать выводится текст в квадратных скобках?

Почти всегда причина в том, что у ячейки тип заполнения «Текст», а не «Шаблон». Платформа воспринимает содержимое как обычную строку и не ищет параметры. Откройте свойства ячейки и смените заполнение на «Шаблон».

Можно ли в шаблоне ячейки использовать выражение или функцию?

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

Как изменить печатную форму, чтобы доработка не пропала при обновлении?

Два безопасных пути: внешняя печатная форма (.epf), подключаемая через механизм дополнительных отчётов и обработок, или расширение конфигурации с переопределением модуля печати. Прямое изменение макета в типовой конфигурации при обновлении будет замещено.

Что делать, если параметр не заполнен и фраза на печати «разваливается»?

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

Где посмотреть список всех параметров области макета?

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