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