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

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

Макеты в 1С: что это такое и как с ними работать

Что такое макет в 1С, какие бывают виды макетов, как создать и заполнить макет печатной формы, типичные ошибки и способы проверки результата.

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

Без макетов невозможно представить типовую работу в 1С: именно макеты лежат в основе всех печатных форм, а в отчётах на СКД макет определяет, как данные будут сгруппированы и оформлены. Понимание устройства макетов нужно и бухгалтеру, который хочет поправить печатную форму, и разработчику, который строит отчёт.

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

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

Макет — это именованный объект, который содержит заготовку будущего результата. В простейшем случае это табличный документ с ячейками, часть из которых заполнена постоянным текстом («Поставщик», «ИНН»), а часть — именами параметров, в которые программа подставит значения при печати.

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

Обращение к макету из встроенного языка выполняется через метод ПолучитьМакет("ИмяМакета") — для объекта — или ПолучитьОбщийМакет("ИмяМакета") — для общего. Дальше программа получает области макета, заполняет параметры и выводит их в итоговый табличный документ.

Какие виды макетов существуют в 1С

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

Тип макетаДля чего используетсяКогда выбирать
Табличный документПечатные формы документов, этикетки, прайсыКогда нужен точный внешний вид формы с рамками и колонками
Схема компоновки данныхОтчёты, динамические списки, произвольные выборкиКогда результат строится из запроса с группировками и настройками
Текстовый документШаблоны писем, текстов запросов, скриптовКогда нужен изменяемый текст без жёсткой структуры
HTML-документСтраницы для отображения в поле HTMLДля справок, веб-подобных интерфейсов внутри форм
Двоичные данные / ActiveXХранение картинок, внешних компонентовКогда нужно встроить файл в конфигурацию
Географическая схема, графическая схемаКарты, блок-схемы бизнес-процессовВ специализированных решениях

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

Структура табличного макета: области и параметры

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

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

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

Как создать макет печатной формы пошагово

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

Порядок действий
  1. 1
    Откройте конфигуратор и найдите нужный объект (документ) или ветку «Общие → Макеты»
  2. 2
    Добавьте новый макет, выберите тип «Табличный документ», задайте понятное имя, например «МакетСчета»
  3. 3
    Нарисуйте форму: введите постоянный текст, настройте шрифты, границы и ширину колонок
  4. 4
    В ячейках, куда подставляются данные, укажите тип заполнения «Параметр» и имя параметра
  5. 5
    Выделите строки шапки, строки товаров и подвала, назначьте им имена областей через свойство «Имя»
  6. 6
    В модуле менеджера объекта или обработки напишите код: получите макет, получите области, заполните параметры и выведите их в табличный документ
  7. 7
    Сохраните конфигурацию, обновите базу и проверьте печать на тестовом документе

После вывода формы полезно проверить её на документах с разным объёмом данных: одна строка товаров, два десятка строк, длинные наименования, пустые необязательные поля. Именно на таких вариациях всплывают проблемы с переносом текста, разрывом страниц и пустыми параметрами.

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

Макет схемы компоновки данных для отчётов

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

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

Для большинства прикладных задач править схему компоновки вручную не требуется: достаточно настроить отчёт в режиме предприятия через «Изменить вариант». Ручное редактирование схемы оправдано, когда нужен нестандартный запрос, собственные итоги или сложная структура группировок.

Сравнение вариантов

Макет «Табличный документ»

Подходит для печатных форм с фиксированной структурой. Ограничение: изменение состава данных требует правки кода и макета.

Схема компоновки данных

Подходит для отчётов с гибкими настройками группировок и отборов. Ограничение: сложнее освоить, точную «пиксельную» форму сделать труднее.

Внешняя печатная форма

Подходит, когда нельзя менять конфигурацию. Ограничение: работает только в рамках механизма дополнительных отчётов и обработок БСП.

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

Большинство проблем с макетами проявляется не при создании, а при печати реальных документов. Знание типовых ошибок экономит время на поиске причины.

Типичные ошибки
01
Несовпадение имени параметра в макете и в коде — ячейка выводится пустой, ошибки в журнале нет
02
Область названа в макете, но в коде запрашивается другое имя — программа падает с ошибкой «Область не найдена»
03
Правка макета в типовой конфигурации без расширения или внешней формы — изменения затираются при обновлении
04
Не проверен вывод длинных наименований — текст обрезается или ломает структуру таблицы
05
Забытые объединённые ячейки — при выводе области структура строки съезжает
06
Макет изменён, но конфигурация базы данных не обновлена — пользователи видят старую форму

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

Как проверить результат после изменения макета

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

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

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

Все параметры заполнены
Норма

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

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

Пустые ячейки или вывод имени параметра вместо значения

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

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

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

Пропущенные строки, неверные суммы, дублирование строк

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

Шапка и подвал не разорваны, итоги не уходят на отдельный лист

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

Подпись на одной странице, таблица на другой

Длинные значения
Норма

Длинные наименования переносятся, структура не разъезжается

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

Текст обрезан или колонки сдвинуты

Если форма формируется кодом, полезно временно вывести итоговый табличный документ на экран до отправки на принтер — так проще заметить пустые параметры и ошибки структуры. Для отчётов на СКД проверяйте не только результат по умолчанию, но и пользовательские варианты настроек: отборы и группировки могут обнажить поля, которые в основном варианте не выводятся.

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

Частые вопросы о макетах в 1С

Можно ли изменить печатную форму без программиста?

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

Чем макет отличается от табличного документа?

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

Почему после обновления конфигурации мои правки макета пропали?

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

Как вывести в макете значение с форматированием, например дату в нужном виде?

Форматирование лучше задавать в коде при заполнении параметра с помощью функции Формат(), например Формат(ДатаДокумента, "ДЛФ=D"). Также в свойствах ячейки макета можно указать форматную строку, но вариант с кодом нагляднее и проще для сопровождения.

Можно ли использовать один макет для нескольких документов?

Да. Создайте общий макет в ветке «Общие → Макеты» и обращайтесь к нему через ПолучитьОбщийМакет() из модулей разных объектов. Это удобно для унифицированных форм, но требует, чтобы набор параметров подходил всем документам, которые используют шаблон.

Что делать, если область макета не выводится и программа сообщает об ошибке?

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

Итог

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

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