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

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

Как скопировать печатную форму в 1С

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

Копирование печатной формы в 1С — типовая задача, когда нужно изменить существующий шаблон документа, не трогая исходный. Например, добавить логотип в счёт на оплату, убрать лишние колонки из ТОРГ-12 или создать собственный вариант доверенности. Правильный подход — скопировать типовой макет и доработать копию, чтобы при обновлении конфигурации изменения не затерялись.

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

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

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

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

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

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

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

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

Обязательно сделайте резервную копию базы или хотя бы выгрузку конфигурации (Конфигурация → Сохранить конфигурацию в файл). Это страховка на случай, если изменения нарушат работу программы. Для файловой базы достаточно скопировать файл 1Cv8.1CD в отдельную папку.

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

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

Стандартный способ скопировать макет: откройте конфигуратор, разверните дерево конфигурации и найдите нужный макет. Щёлкните по нему правой кнопкой мыши и выберите «Копировать», затем на родительской ветке — «Вставить». Программа создаст копию с автоматическим именем (например, «Макет1»), которое следует сразу переименовать в осмысленное, например «МакетСчетСЛоготипом».

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

После копирования макета нужно переключить на него программный код. Откройте модуль менеджера или модуль объекта документа, найдите процедуру печати и строку вида ПолучитьМакет("Макет") или ПолучитьОбщийМакет("ПФ_MXL_Счет"). Замените имя макета на имя вашей копии. Если таких вызовов несколько, измените все — иначе в разных сценариях будет выводиться разная форма.

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

Копирование через внешнюю печатную форму

Для типовых конфигураций на БСП (1С:Бухгалтерия 3.0, 1С:Управление торговлей 11, 1С:ERP и другие) предпочтительный способ — внешняя печатная форма. Она подключается к программе без изменения конфигурации и переживает обновления. Скопировать типовую форму в этом случае означает создать внешнюю обработку, которая выводит изменённый макет.

Порядок действий: в конфигураторе создайте новую внешнюю обработку (Файл → Новый → Внешняя обработка). Скопируйте в неё макет из конфигурации (откройте типовой макет, сохраните табличный документ в файл MXL, затем загрузите его в макет обработки). В модуль объекта обработки добавьте функцию СведенияОВнешнейОбработке() и процедуру Печать() по шаблону БСП — их проще всего взять из любой готовой внешней печатной формы и адаптировать под свой макет.

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

Способы копирования печатной формы

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

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

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

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

Редактирование макета пользователем

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

Редактирование макета без конфигуратора

В ряде типовых конфигураций на платформе 8.3 макеты печатных форм можно менять прямо в пользовательском режиме. Путь: Администрирование → Печатные формы, отчеты и обработки → Пользовательские макеты печатных форм (название пункта может отличаться в зависимости от конфигурации). Откроется список макетов, доступных для редактирования.

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

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

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

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

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

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

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

Пункт печати в меню документа
Норма

Новая форма доступна и открывается без ошибок

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

Пункт отсутствует или при печати выводится сообщение об ошибке

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

Все параметры макета заполнены данными документа

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

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

Многострочный документ
Норма

Таблица корректно переносится на следующие страницы, итоги на месте

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

Обрезанные строки, «плавающие» итоги, разорванные шапки

Обновление конфигурации
Норма

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

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

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

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

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

К специалисту стоит обратиться, если нужно добавить в форму данные, которых нет в типовом макете (склады, дополнительные реквизиты, данные связанных документов), вывести штрихкод или QR-код, либо построить печатную форму на СКД. Эти задачи требуют изменения программного кода и понимания структуры конфигурации.

Итог

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

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

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

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

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

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

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

Как перенести скопированный макет в другую базу?

Макет табличного документа можно сохранить в файл MXL (Файл → Сохранить как при открытом макете) и загрузить в другую базу. Внешняя печатная форма переносится как файл обработки EPF — просто подключите её в другой базе через «Дополнительные отчеты и обработки».

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

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

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

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

Можно ли сделать две версии одной формы и выбирать нужную?

Да. Подключите две внешние печатные формы с разными названиями (например, «Счёт с НДС» и «Счёт без НДС») — обе появятся в меню «Печать» документа, и пользователь будет выбирать нужную при печати. Типовая форма при этом тоже останется доступной.