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

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

Как добавить свой макет в 1С: пошаговое руководство

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

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

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

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

Какие типы макетов существуют в 1С и какой выбрать

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

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

Сравнение типов макетов

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

Печатные формы документов: счета, акты, накладные. Поддерживает области, параметры и форматирование ячеек.

Текстовый документ

Договоры и письма с подстановкой реквизитов. Проще в редактировании, но слабее в оформлении.

Двоичные данные

Хранение шаблонов Word, Excel, изображений внутри конфигурации. Файл обрабатывается кодом.

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

Основа отчётов: наборы данных, связи, настройки группировок и отборов.

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

Подготовка: где безопасно работать и что проверить заранее

Любые изменения конфигурации выполняйте сначала на копии базы. Создайте резервную копию через конфигуратор (Администрирование — Выгрузить информационную базу) или средствами СУБД, если база клиент-серверная. Это займёт несколько минут, но позволит откатиться, если макет или код печати будут работать неправильно.

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

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

Добавление макета в конфигураторе

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

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

Заполнение макета параметрами

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

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

Код вывода макета на печать

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

Функция СформироватьПечатнуюФорму(СсылкаНаДокумент)

ТабДок = Новый ТабличныйДокумент;

Макет = ПолучитьМакет("МакетСчетаСЛоготипом");

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

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

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

ТабДок.Вывести(Шапка);

Для Каждого СтрокаТовара Из СсылкаНаДокумент.Товары Цикл

Строка = Макет.ПолучитьОбласть("СтрокаТаблицы");

Строка.Параметры.Номенклатура = СтрокаТовара.Номенклатура;

Строка.Параметры.Количество = СтрокаТовара.Количество;

Строка.Параметры.Сумма = СтрокаТовара.Сумма;

ТабДок.Вывести(Строка);

КонецЦикла;

Возврат ТабДок;

КонецФункции

Если макет хранится у конкретного объекта, его получают через менеджер объекта: Документы.РеализацияТоваровУслуг.ПолучитьМакет("ИмяМакета") в серверном контексте. Общие макеты доступны через ПолучитьОбщийМакет("ИмяМакета"). После изменения кода обновите конфигурацию базы данных и проверьте печать.

Добавление внешней печатной формы без изменения конфигурации

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

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

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

Проверка результата и типичные ошибки

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

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

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

Новая форма в меню «Печать» документа
Норма

Форма отображается и открывается без ошибок

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

Форма отсутствует или появляется сообщение об ошибке при формировании

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

Все поля содержат данные документа

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

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

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

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

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

Строки теряются, итоги не сходятся, таблица обрывается

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

Подвал и подписи не отрываются от таблицы

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

Подписи уходят на отдельный лист, шапка дублируется некорректно

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

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

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

Часто задаваемые вопросы

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

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

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

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

Что будет с моим макетом при обновлении конфигурации?

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

Как вставить логотип компании в макет?

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

Можно ли использовать шаблон Word вместо табличного макета?

Да. Шаблон Word сохраняют в макете типа «Двоичные данные», а код заполняет его через COM-объект или механизмы работы с офисными документами. Это удобно для договоров, но требует установленного офисного пакета на компьютере или сервере, где формируется печать.

Почему новая печатная форма не видна части пользователей?

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

Итог

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

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