Документы и Печать · 10 мин
Для чего предназначен макет в 1С
Макет в 1С — шаблон для печатных форм, отчётов и вывода данных. Разбираем виды макетов, их назначение, создание и типичные ошибки при работе.
Макет в 1С — это шаблон, который описывает, как данные из информационной базы должны выглядеть на экране или на бумаге. Без макета программа хранит данные в таблицах базы, но не знает, в каком виде показать их пользователю: где разместить шапку счёта, как выровнять колонки накладной, какой шрифт использовать в акте сверки.
Макет отделяет представление данных от самих данных. Благодаря этому одна и та же накладная может выводиться по-разному: в виде ТОРГ-12, внутренней формы отгрузки или упрощённого списка для склада — при этом источник данных один, а макетов несколько. Изменение макета не затрагивает сами документы в базе.
Встретить макет можно в двух местах: в составе конфигурации (разработчик создаёт его в конфигураторе) и в виде внешней печатной формы, которую подключают без изменения конфигурации. Понимание назначения макета помогает правильно выбрать способ доработки печатных форм и не сломать типовой механизм.
Что такое макет и где он хранится в конфигурации
В конфигураторе макеты находятся в ветке «Общие» → «Макеты», а также внутри конкретных объектов: у документа, справочника или отчёта может быть собственный макет. Общий макет доступен из любого места программы, макет объекта — обычно используется только для печати этого объекта.
Физически макет — это часть конфигурации, а не пользовательский файл. Поэтому изменение встроенного макета требует снятия объекта с поддержки, что усложняет обновление. Именно поэтому для правки печатных форм чаще применяют внешние макеты или механизм «Администрирование» → «Печатные формы, отчёты и обработки».
Макет не выполняется сам по себе: его заполняет программный код. Процедура получает макет, выводит области (шапку, строки, подвал) и подставляет в параметры реальные значения — номер документа, наименование товара, сумму. Результатом становится табличный документ, который пользователь видит и печатает.
Основные виды макетов и их назначение
Платформа поддерживает несколько типов макетов, и выбор типа определяет, чем можно управлять при выводе. Чаще всего встречаются табличный документ, макет СКД, макет оформления компоновки данных и географическая схема.
Табличный документ — универсальный тип для печатных форм: счетов, накладных, актов, доверенностей. Он позволяет рисовать ячейки, границы, объединения и задавать параметры внутри текста. Макет СКД (схема компоновки данных) описывает структуру отчёта: какие поля выводить, как группировать и сортировать. Макет оформления СКД управляет внешним видом отчёта — цветами, шрифтами, оформлением итогов.
| Тип макета | Для чего предназначен | Где применяется |
|---|---|---|
| Табличный документ | Печатные формы с точным расположением ячеек | Счета, накладные, акты, этикетки |
| Схема компоновки данных (СКД) | Структура отчёта: поля, группировки, отборы | Аналитические отчёты, оборотки |
| Макет оформления СКД | Внешний вид отчёта: цвета, шрифты, итоги | Фирменное оформление отчётов |
| HTML-документ, текстовый документ | Выгрузка данных, письма, файлы обмена | Рассылки, интеграции |
| Географическая схема | Отображение данных на карте | Отчёты по регионам |
Для правки печатной формы документа почти всегда нужен табличный документ. Если задача — изменить состав колонок отчёта или добавить группировку, работать придётся со схемой компоновки данных, а не с табличным макетом.
Как макет превращается в готовую печатную форму
Механизм формирования печатной формы строится на областях и параметрах. Макет разбит на именованные области: «Шапка», «СтрокаТовары», «Подвал». Внутри ячеек размещены параметры в квадратных скобках, например [НомерДокумента] или [НаименованиеТовара].
Код обработки печати выполняет простую последовательность: получает макет, в цикле или последовательно выводит области в результирующий табличный документ и перед выводом заполняет параметры области значениями из базы. После вывода всех областей табличный документ показывается пользователю или отправляется на принтер.
- 1Код получает макет: ПолучитьМакет("ИмяМакета")
- 2Из макета извлекается нужная область: Макет.ПолучитьОбласть("Шапка")
- 3Параметрам области присваиваются значения из документа
- 4Область выводится в результирующий табличный документ
- 5Шаги 2–4 повторяются для строк табличной части и подвала
- 6Готовый табличный документ отображается пользователю или печатается
Важно понимать: если параметр в макете назван иначе, чем в коде, на печать выйдет пустое место или текст параметра как есть. Поэтому после любой правки макета форму проверяют на реальном документе с заполненными данными.
Когда править типовой макет, а когда создавать внешний
Главный критерий выбора — планируются ли обновления конфигурации. Изменение встроенного макета снимает объект с полной поддержки, и при каждом обновлении придётся сравнивать и переносить правки вручную. Для типовых конфигураций это лишняя работа и риск потерять изменения.
Внешняя печатная форма подключается через «Дополнительные отчёты и обработки» и хранится отдельным файлом. Конфигурация не меняется, обновления проходят штатно, а форму можно отключить в любой момент. Это рекомендуемый путь для большинства доработок печати.
Способы доработки печатной формы
Подходит для самописных и сильно переписанных конфигураций. Ограничение: осложняет обновление типовых решений.
Оптимально для типовых конфигураций на поддержке. Ограничение: требует навыка написания обработки.
Разовые правки прямо в сформированном табличном документе. Ограничение: изменения не сохраняются и не повторяются автоматически.
Если нужно лишь один раз поправить формулировку в конкретном документе, достаточно открыть сформированную печатную форму, включить режим редактирования и исправить текст вручную. Это не трогает макет и не влияет на другие документы.
Как самостоятельно изменить макет печатной формы
Базовый сценарий для типовой конфигурации: скопировать макет из конфигуратора, внести правки и подключить результат как внешнюю печатную форму. Работа ведётся в конфигураторе, поэтому потребуются права разработчика и тестовая копия базы.
Откройте конфигуратор, найдите нужный макет в общих макетах или в составе объекта. Изменяйте ячейки осторожно: текст в квадратных скобках — это параметры, их имена менять нельзя, иначе код перестанет их заполнять. Можно править статический текст, шрифты, ширину колонок, добавлять логотип через вставку картинки.
После правки проверьте форму на документах разной длины: с одной строкой и с длинной табличной частью, с длинными наименованиями товаров. Частая проблема — текст не помещается в отведённую ячейку и строки «расползаются» на печати.
Типичные ошибки при работе с макетами
Большинство проблем с печатными формами возникает не из-за сложности механизма, а из-за невнимательности к деталям макета и его связи с кодом.
Отдельная группа ошибок связана с внешними печатными формами: обработка подключается, но не появляется в меню печати. Причина обычно в том, что в модуле обработки не заполнены сведения о внешней обработке или не указано, к каким документам она привязана.
Как проверить, что печатная форма работает правильно
Проверку проводят на реальных данных, а не на пустом тестовом документе: только так видно поведение формы с длинными наименованиями, копейками в суммах и многострочными табличными частями.
Как проверить результат
Все параметры подставлены, нет пустых ячеек и текста в квадратных скобках
Видны [Параметр] или пустые места там, где должны быть данные
Все строки выведены, итоги совпадают с документом
Строки обрезаны, итоги не сходятся
Подвал и подписи не отрываются от таблицы, нумерация страниц корректна
Подпись уходит на отдельный лист или границы ячеек рвутся
Поля и колонтитулы не срезаются, масштаб корректный
Часть формы не помещается на лист
Если форма формируется без ошибок, но выглядит не так, как ожидалось, сравните её с макетом: откройте макет и готовый табличный документ рядом. Расхождения почти всегда видны визуально — не та область, не тот порядок вывода или лишняя пустая строка.
Перед правкой макета сохраните его копию под другим именем прямо в конфигурации или выгрузите во внешний файл. Откат занимает секунды, а восстановить случайно испорченный макет по памяти — заметно дольше.
Частые вопросы о макетах в 1С
Чем макет отличается от печатной формы?
Макет — это шаблон, хранящийся в конфигурации или во внешнем файле. Печатная форма — результат: заполненный данными табличный документ, который видит пользователь. Один макет порождает неограниченное число печатных форм для разных документов.
Можно ли изменить макет без конфигуратора?
Встроенный макет — нет, он редактируется только в конфигураторе. Но в некоторых конфигурациях макеты для отчётов и форм хранятся в справочниках базы и правятся в пользовательском режиме. Также готовую печатную форму можно отредактировать вручную перед печатью — это разовая правка без изменения шаблона.
Почему после обновления конфигурации печатная форма стала выглядеть иначе?
Если правился встроенный макет, при обновлении он мог быть заменён типовым вариантом поставщика. Чтобы этого избежать, доработки оформляют как внешние печатные формы — они не затрагиваются обновлением конфигурации.
Что делать, если вместо значения печатается текст в квадратных скобках?
Это признак того, что параметр макета не был заполнен кодом: либо параметр переименовали в макете, либо в коде печати его не присваивают. Сверьте имя параметра в ячейке макета с именем в процедуре формирования печатной формы — они должны совпадать точно.
Нужен ли отдельный макет для каждого документа?
Нет. Макет может быть общим для нескольких видов документов, если структура формы совпадает — например, один макет акта для разных видов услуг. Код печати определяет, какой макет использовать для конкретного документа.
Что важно запомнить
Макет в 1С — шаблон оформления данных для печати и отчётов, отделённый от самих данных. Для типовых конфигураций правки безопаснее делать через внешние печатные формы, не переименовывая параметры и области, а результат всегда проверять на реальных документах с длинными данными.