Разработка и Конфигурация · 13 мин
Что такое шаблон в макете 1С и как с ним работать
Разбираем, что такое шаблон в макете 1С: типы макетов, области, параметры и шаблоны ячеек, заполнение из кода, типичные ошибки и проверка результата.
Макет в 1С — это объект конфигурации, который описывает внешний вид печатной формы, табличного документа или схемы, а шаблон внутри макета определяет, как именно данные подставляются в ячейки. Когда пользователь нажимает кнопку «Печать», программа берёт макет, заполняет его областями и параметрами из кода и выводит готовый табличный документ. Без понимания устройства макета и шаблона невозможно ни создать свою печатную форму, ни грамотно поправить существующую.
Путаница возникает из-за того, что слово «шаблон» в 1С используется в нескольких смыслах: это и тип заполнения ячейки макета, и текстовый шаблон в файлах шаблонов конфигуратора, и шаблон ограничения доступа к данным. В контексте макета речь идёт именно о типе заполнения ячейки «Шаблон», который позволяет объединять статический текст и параметры в одной строке. Именно этот механизм разберём подробно.
Материал ориентирован на разработчиков и внедренцев, которые работают в конфигураторе и хотят уверенно редактировать печатные формы. Все действия описаны для управляемого и обычного приложения без привязки к конкретной версии платформы — механизм макетов стабилен и меняется крайне редко.
Что такое макет и где он хранится в конфигурации
Макет — это объект метаданных, который находится в ветке «Общие» → «Макеты» дерева конфигурации либо в подчинённых ветках конкретных объектов: справочников, документов, отчётов. Макет, привязанный к документу, обычно используется для печати именно этого документа, а общий макет доступен из любого места кода. Хранится макет внутри конфигурации и поставляется вместе с ней, поэтому при обновлении типовой конфигурации изменённые макеты могут быть замещены — это важно учитывать при доработках.
У макета есть тип, который задаётся при создании: табличный документ, текстовый документ, схема компоновки данных, HTML-документ, географическая схема и другие. Для печатных форм почти всегда используется тип «Табличный документ» — он выглядит как таблица с ячейками, похожая на лист Excel. Именно в ячейках такого макета и работает механизм шаблонов.
Кроме встроенных макетов существуют внешние печатные формы — файлы с расширением .epf, которые подключаются через механизм дополнительных отчётов и обработок. Они используют те же принципы, но хранятся отдельно от конфигурации, что безопаснее при обновлениях.
Структура макета: области, параметры и ячейки
Макет типа «Табличный документ» состоит из ячеек, объединённых в области. Область — это именованный фрагмент макета: строка, диапазон строк или прямоугольник ячеек. Типичный макет печатной формы содержит области «Шапка», «СтрокаТаблицы», «Подвал», «Итого». При печати код последовательно получает эти области методом ПолучитьОбласть(), заполняет параметры и выводит их в результирующий табличный документ методом Вывести().
Каждая ячейка имеет свойство «Заполнение», которое принимает одно из трёх значений: «Текст», «Параметр» и «Шаблон». От выбранного значения зависит, как платформа будет интерпретировать содержимое ячейки при выводе. Неправильно выбранный тип заполнения — одна из самых частых причин, почему в печатной форме вместо значения выводится имя параметра или пустая строка.
Параметры области — это именованные «входы», через которые код передаёт данные. Увидеть список параметров области можно, выделив область и открыв палитру свойств, либо нажав на ячейку с параметром правой кнопкой. Из кода обращение к параметру выглядит так: Область.Параметры.Номенклатура = СтрокаТовара.Номенклатура;.
Три типа заполнения ячейки: текст, параметр, шаблон
Тип «Текст» означает, что содержимое ячейки выводится как есть, без обработки. Так заполняют статичные надписи: «Покупатель:», «Итого:», заголовки колонок. Если в такой ячейке написать [Контрагент], на печать выйдет буквально строка «[Контрагент]» — платформа не станет искать параметр.
Тип «Параметр» превращает всю ячейку в один параметр. В свойстве «Параметр» указывается имя, и при выводе ячейка целиком заменяется значением, переданным из кода. Это удобно для отдельных полей: номер документа, сумма, дата. Дополнительно в свойстве «Формат» можно задать форматную строку, например для вывода даты в нужном виде или числа с двумя знаками после запятой.
Тип «Шаблон» — гибридный вариант. В тексте ячейки можно писать обычные слова и вставлять параметры в квадратных скобках: Договор № [НомерДоговора] от [ДатаДоговора]. При выводе платформа заменит каждый фрагмент в скобках значением соответствующего параметра, а остальной текст оставит без изменений. Это избавляет от необходимости дробить одну фразу на несколько ячеек.
Сравнение типов заполнения
Статичная надпись без подстановок. Подходит для заголовков и подписей; параметры внутри не обрабатываются.
Вся ячейка заменяется одним значением из кода. Подходит для отдельных полей; нельзя смешивать с текстом в той же ячейке.
Текст с параметрами в квадратных скобках. Подходит для составных фраз; требует аккуратности с именами параметров и форматами.
Как создать и заполнить шаблон в макете пошагово
Рассмотрим практический сценарий: нужно вывести в шапке печатной формы строку вида «Счёт на оплату № 145 от 12.03.2026». Статический текст здесь — «Счёт на оплату №» и «от», а переменные данные — номер и дата документа.
Код вывода области выглядит примерно так:
Макет = Документы.СчетНаОплату.ПолучитьМакет("Счет");
ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
ОбластьШапка.Параметры.Номер = НомерДокумента;
ОбластьШапка.Параметры.Дата = Формат(ДатаДокумента, "ДЛФ=D");
ТабличныйДокумент.Вывести(ОбластьШапка);
Обратите внимание: параметры объявляются неявно — достаточно упомянуть имя в квадратных скобках внутри шаблона, и оно появится в коллекции параметров области. Если в коде обратиться к параметру, которого нет ни в одной ячейке области, платформа выдаст ошибку «Параметр не найден».
Типичные ошибки при работе с шаблонами макетов
Большинство проблем с печатными формами связано не со сложной логикой, а с мелкими расхождениями между макетом и кодом. Ниже — ошибки, которые встречаются чаще всего.
Отдельно стоит упомянуть проблему объединённых ячеек. Если ячейка с шаблоном входит в объединение, редактировать её свойства нужно через ячейку-«якорь» (левую верхнюю в объединении). Попытка изменить свойства не той ячейки приводит к тому, что изменения визуально есть, а на печать они не попадают.
Как проверить результат и отладить печатную форму
Проверка начинается с простого: выведите печатную форму на тестовом документе с заполненными и с пустыми реквизитами. Пустые значения часто выявляют проблемы — например, вместо отсутствующего договора выводится строка «Не заполнено» или пустота в середине предложения, что выглядит неаккуратно.
Как проверить результат
Подставлены реальные данные документа, формат даты и чисел корректен
Видны имена параметров в скобках, пустые места или неформатированные значения
Выведены все строки документа, итоги совпадают с данными
Одна строка, пропущенные позиции, неверные итоги
Шапка таблицы повторяется на новой странице, строки не обрезаны
Заголовки теряются, строки разрываются посередине
Для отладки удобно использовать отладчик конфигуратора: поставьте точку останова перед строкой Вывести() и посмотрите в табло значения параметров области. Если параметр есть, но значение пустое — проблема в источнике данных. Если параметра нет в коллекции — проблема в макете: проверьте тип заполнения ячейки и написание имени в скобках.
Полезный приём — временно вывести макет без заполнения, просто последовательно выводя все области. Так видно, какие параметры где находятся, и проще сопоставить макет с кодом заполнения.
Как выбрать действие
Другие значения слова «шаблон» в 1С
Чтобы не путаться, полезно знать, где ещё встречается этот термин. Шаблоны текста в конфигураторе — это файлы подстановок (.st), которые ускоряют набор кода: например, по сокращению «Если» подставляется заготовка конструкции. Они настраиваются через Сервис → Шаблоны текста и к макетам отношения не имеют.
Шаблоны ограничения доступа (RLS) — это параметризованные конструкции языка ограничения доступа к данным на уровне записей. Они живут в ролях и определяют, какие строки таблиц видит пользователь. Третий контекст — шаблоны в механизме СКД: шаблоны заголовков группировок и шаблоны полей, которые настраивают представление данных в отчётах.
Общее у всех этих механизмов одно: шаблон — это заготовка с местами для подстановки, которую система заполняет конкретными значениями в момент использования. Но настраиваются они в разных местах и разными инструментами.
При доработке печатной формы давайте областям и параметрам говорящие имена: «СтрокаТовары», «ИтогоСумма», а не «Область1», «П2». Через полгода сопровождения это сэкономит заметное время и снизит риск ошибок при правках.
Ограничения механизма шаблонов в макетах
Шаблон в ячейке удобен, но не универсален. Внутри квадратных скобок можно указать только имя параметра — никаких выражений, вызовов функций или арифметики. Если нужно вывести вычисляемое значение, его придётся рассчитать в коде и передать как готовый параметр.
Второе ограничение — форматирование. Для ячейки-шаблона свойство «Формат» не применяется к вложенным параметрам, поэтому вся подготовка представления ложится на код. Третий момент: если параметр не заполнен, на его месте выводится пустая строка, и предложение может «развалиться» — например, «Договор № от 12.03.2026». Такие случаи обрабатывают условиями в коде, выбирая разные области макета для заполненного и пустого варианта.
Наконец, макеты табличных документов плохо подходят для сложной вёрстки с переменной высотой блоков и обтеканием. Для таких задач рассматривают HTML-макеты или офисные форматы через COM/внешние компоненты, но это уже компромисс между гибкостью и простотой сопровождения.
Что важно запомнить
Шаблон в макете 1С — это тип заполнения ячейки, объединяющий текст и параметры в квадратных скобках. Проверяйте соответствие имён параметров в макете и коде, форматируйте значения в коде, а типовые макеты меняйте только через расширения или внешние печатные формы.
Частые вопросы о шаблонах в макетах 1С
Чем шаблон отличается от параметра в ячейке макета?
Параметр заменяет содержимое всей ячейки одним значением и поддерживает свойство «Формат». Шаблон позволяет вписать несколько параметров внутрь произвольного текста одной ячейки, но форматировать значения придётся в коде. Выбор зависит от того, нужна ли ячейка со смешанным содержимым.
Почему вместо значения на печать выводится текст в квадратных скобках?
Почти всегда причина в том, что у ячейки тип заполнения «Текст», а не «Шаблон». Платформа воспринимает содержимое как обычную строку и не ищет параметры. Откройте свойства ячейки и смените заполнение на «Шаблон».
Можно ли в шаблоне ячейки использовать выражение или функцию?
Нет. В квадратных скобках допускается только имя параметра области. Любые вычисления — форматирование даты, склонение, арифметику — выполняют в коде и передают результат как готовое значение параметра.
Как изменить печатную форму, чтобы доработка не пропала при обновлении?
Два безопасных пути: внешняя печатная форма (.epf), подключаемая через механизм дополнительных отчётов и обработок, или расширение конфигурации с переопределением модуля печати. Прямое изменение макета в типовой конфигурации при обновлении будет замещено.
Что делать, если параметр не заполнен и фраза на печати «разваливается»?
Создайте в макете две версии области — для заполненного и пустого значения — и выбирайте нужную условием в коде. Альтернатива: заранее сформировать строку целиком в коде и передать её одним параметром в ячейку с типом «Параметр».
Где посмотреть список всех параметров области макета?
Выделите именованную область в макете и откройте палитру свойств — там отображаются параметры, собранные из всех ячеек области. Также параметры видны в отладчике: после ПолучитьОбласть() разверните в табло коллекцию Область.Параметры.