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

Документы и Печать · 12 мин

Как изменить макет документа в 1С

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

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

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

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

Как определить, где хранится макет вашей печатной формы

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

Быстрый способ найти источник: откройте в конфигураторе глобальный поиск (Ctrl+Shift+F) и введите название печатной формы, например «СчетНаОплату» или текст уникальной надписи из формы. Поиск приведёт к процедуре формирования, а в ней — к строке вида ПолучитьМакет("ИмяМакета"). По имени макета вы найдёте сам шаблон в дереве конфигурации.

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

Маршрут решения

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

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

Изменение макета напрямую в конфигураторе

Откройте конфигуратор, найдите нужный документ в дереве конфигурации и разверните ветку «Макеты». Двойной щелчок по макету откроет табличный документ-шаблон. Если макет общий, ищите его в ветке «Общие» → «Общие макеты».

Макет табличного типа состоит из именованных областей: шапка, строка табличной части, подвал. Имена областей заданы в свойствах строк или через выделенные диапазоны. Внутри ячеек встречаются параметры в квадратных скобках, например [НомерДокумента] или [НаименованиеТовара], — программа подставляет в них данные при формировании. Текст без скобок выводится как есть и редактируется напрямую.

Чтобы добавить новое поле, вставьте в ячейку параметр и дополнительно заполните его в процедуре формирования печатной формы: найдите место, где вызывается Область.Параметры.ИмяПараметра = Значение, и добавьте свою строку. Если параметр есть в макете, но не заполняется в коде, на печати он останется пустым или вызовет ошибку в зависимости от настроек.

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

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

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

Порядок такой: в конфигураторе откройте «Конфигурация» → «Расширения конфигурации», создайте новое расширение. Затем в дереве основной конфигурации найдите нужный макет, вызовите контекстное меню и выберите «Добавить в расширение». Макет скопируется в расширение, и дальше вы правите его копию. Программа при формировании печатной формы будет использовать макет из расширения.

Если нужно изменить не только шаблон, но и логику заполнения параметров, процедуру формирования печати тоже переносят в расширение с аннотацией &Вместо или &ИзменениеИКонтроль. Второй вариант предпочтительнее: он вызывает типовой код и добавляет ваши доработки, что снижает риск конфликтов при обновлении.

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

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

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

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

Сравнение способов изменения макета

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

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

Расширение конфигурации

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

Внешняя печатная форма (.epf)

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

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

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

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

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

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

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

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

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

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

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

Документ формируется без ошибок, все области на месте

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

Ошибка «Параметр не найден» или пустой табличный документ

Заполнение новых полей
Норма

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

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

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

Многостраничная печать
Норма

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

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

Таблица обрывается, подвал уезжает на середину страницы

Поведение при обновлении
Норма

После тестового обновления конфигурации изменения сохранились (расширение или внешняя форма)

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

Изменения исчезли — значит, правка была внесена напрямую в типовой макет

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

Ограничения и когда привлекать специалиста

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

Если конфигурация находится на поддержке у франчайзи или обслуживается по договору, самостоятельная правка может нарушить условия сопровождения. Уточните этот момент до внесения изменений. Для облачных сервисов 1С (например, 1С:Фреш) прямой доступ к конфигуратору отсутствует — там доступны только внешние печатные формы и настройки шаблонов через механизмы сервиса.

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

Итог

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

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

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

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

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

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

Обновление заменяет типовые объекты на эталонные из поставки. Если макет был изменён напрямую, правки стираются. Чтобы этого избежать, переносите изменения в расширение конфигурации или оформляйте форму как внешнюю обработку.

Как добавить логотип в печатную форму документа?

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

Что делать, если при печати появляется ошибка «Поле объекта не обнаружено»?

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

Можно ли сделать разные макеты для разных организаций в одной базе?

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

Как откатить изменения, если новая форма работает неправильно?

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