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

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

Как изменить макет в 1С: редактирование печатных форм и табличных документов

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

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

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

Ниже разобраны все три подхода с конкретными шагами, проверкой результата и типичными ошибками. Материал ориентирован на типовые конфигурации на управляемых формах (Бухгалтерия предприятия, Управление торговлей, УНФ, ERP), но принципы одинаковы для любых решений на платформе 1С:Предприятие 8.

Как определить, какой макет нужно менять

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

Самый быстрый способ найти нужный макет — открыть модуль менеджера или модуля объекта документа и найти функцию печати. В ней будет строка вида ПолучитьМакет("МакетСчетЗаказ") или ПолучитьОбщийМакет("...") — имя в кавычках и есть искомый макет. Альтернатива — глобальный поиск по конфигурации (Ctrl+Shift+F) по названию печатной формы.

Макет в «Общих макетах»Используется несколькими объектами

Правка затронет все формы, которые его вызывают

Макет внутри объектаПривязан к одному документу или справочнику

Изменения локальны, риск побочных эффектов минимален

Конфигурация на поддержкеТиповая, обновляется автоматически

Прямая правка макета усложнит обновление — лучше внешняя печатная форма

Изменение макета через конфигуратор

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

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

Чтобы добавить новое поле, вставьте в нужную ячейку параметр, например [Директор], а затем в модуле, который формирует печать, добавьте заполнение этого параметра: Область.Параметры.Директор = ДанныеПечати.Руководитель;. Если параметр есть в макете, но не заполняется в коде, на печати будет пустое место; если параметр заполняется в коде, но отсутствует в макете, будет ошибка «Параметр не найден».

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

Работа с областями макета

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

Горизонтальная область — это диапазон строк целиком. Если нужно добавить условный блок (скажем, строку «Скидка», которая выводится не всегда), создайте отдельную область и выводите её в коде только при выполнении условия. Не пытайтесь «спрятать» часть строк внутри уже выводимой области — это ломает логику заполнения.

При копировании областей следите за именами: дубли имён областей в одном макете приведут к тому, что программа будет получать не ту область. После переименования области обязательно поправьте её имя и в коде — Макет.ПолучитьОбласть("Шапка") должен ссылаться на существующее имя.

Изменение макета без конфигуратора

В ряде типовых конфигураций часть макетов можно править прямо в режиме предприятия. Например, в «1С:Бухгалтерии» и «Управлении нашей фирмой» есть механизм редактирования макетов печатных форм: Администрирование → Печатные формы, отчеты и обработки → Макеты печатных форм (в разных версиях путь может отличаться). Откроется список макетов, где выбранный можно отредактировать как табличный документ.

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

Внешняя печатная форма как безопасная альтернатива

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

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

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

Правка в конфигураторе

Полный доступ к макету и коду, но усложняет обновление типовой конфигурации

Редактор макетов в режиме предприятия

Быстро и без разработчика, но только простые правки и риск расхождения с типовым макетом после обновлений

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

Не трогает конфигурацию, переживает обновления; требует навыков разработки и поддержки самого файла обработки

Добавление логотипа и изображений в макет

Логотип в табличный макет вставляется через меню «Таблица → Рисунки → Вставить рисунок» (или копированием картинки в буфер обмена и вставкой в макет). В конфигураторе выберите файл изображения — оно сохранится внутри макета. Поддерживаются распространённые растровые форматы; слишком большие файлы раздувают размер конфигурации, поэтому изображение лучше предварительно сжать.

Если логотип должен меняться в зависимости от организации, статичная картинка не подойдёт. Тогда в макет добавляется область-рисунок, а в коде её свойству «Картинка» присваивается значение, полученное из хранилища значения (например, из реквизита «Логотип» справочника организаций): Рисунок.Картинка = Новый Картинка(ДанныеКартинки);. Это уже требует правки модуля формирования печати.

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

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

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

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

Все параметры на печати
Норма

Поля заполнены данными документа

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

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

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

Форма строится без сообщений об ошибках

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

Ошибка «Область не найдена» или «Параметр не найден»

Внешний вид на листе
Норма

Текст не обрезан, таблица помещается по ширине

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

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

Другие печатные формы
Норма

Смежные формы работают как раньше

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

После правки общего макета сломалась печать в других документах

Частые вопросы

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

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

Почему после правки макета на печати пустое поле?

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

Как вернуть типовой макет после неудачной правки?

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

Чем макет отличается от печатной формы?

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

Можно ли менять макеты отчётов на СКД так же?

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

Итог

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

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