Документы и Печать · 12 мин
Как скопировать печатную форму в 1С
Как скопировать печатную форму в 1С: копирование макета в конфигураторе, внешние печатные формы, изменение шаблона без программирования и типичные ошибки.
Копирование печатной формы в 1С — типовая задача, когда нужно изменить существующий шаблон документа, не трогая исходный. Например, добавить логотип в счёт на оплату, убрать лишние колонки из ТОРГ-12 или создать собственный вариант доверенности. Правильный подход — скопировать типовой макет и доработать копию, чтобы при обновлении конфигурации изменения не затерялись.
Способ копирования зависит от того, как устроена конфигурация: типовая она или самописная, есть ли у вас доступ к конфигуратору, поддерживает ли программа внешние печатные формы. В типовых решениях (1С:Бухгалтерия, 1С:Управление торговлей, 1С:ЗУП) чаще всего используют механизм внешних печатных форм или редактирование макета через конфигуратор.
Ниже разобраны основные сценарии: копирование макета в конфигураторе, создание внешней печатной формы на основе типовой, редактирование макета без изменения конфигурации и проверка результата. Отдельно описаны ограничения и ошибки, которые приводят к потере изменений при обновлении.
Когда нужно копировать печатную форму
Копия макета требуется в нескольких типичных ситуациях. Первая — изменение внешнего вида документа: добавление реквизитов организации, печати и подписи, изменение состава колонок табличной части. Вторая — создание альтернативного варианта формы: например, счёта с НДС и без НДС, когда оба варианта должны быть доступны пользователям одновременно.
Третья ситуация — сохранение типовой формы как эталона перед экспериментами. Если вы сомневаетесь в результате доработки, копия позволяет вернуться к исходному варианту без восстановления конфигурации из резервной копии.
Важно понимать: копирование формы и копирование макета — не всегда одно и то же. Макет — это шаблон внешнего вида (табличный документ), а печатная форма — это связка макета с программным кодом, который заполняет шаблон данными. При простом копировании макета код продолжит обращаться к старому макету, пока вы не измените ссылку в модуле.
Подготовка: что проверить перед копированием
Перед началом работы убедитесь, что у вас есть права на запуск конфигуратора и изменение конфигурации. В файловой базе достаточно полных прав пользователя, в клиент-серверной — могут потребоваться дополнительные разрешения. Также проверьте, стоит ли конфигурация на полной поддержке: если да, изменение типовых объектов потребует включения возможности изменений, что усложнит будущие обновления.
Обязательно сделайте резервную копию базы или хотя бы выгрузку конфигурации (Конфигурация → Сохранить конфигурацию в файл). Это страховка на случай, если изменения нарушат работу программы. Для файловой базы достаточно скопировать файл 1Cv8.1CD в отдельную папку.
Определите, где находится нужный макет. Быстрый способ — открыть в пользовательском режиме печатную форму документа, посмотреть её название в меню печати, а затем в конфигураторе найти соответствующий макет через поиск по имени (обычно имена макетов содержат слова «Макет», «ПФ» или название формы). В типовых конфигурациях макеты печатных форм документа часто лежат в ветке «Макеты» самого документа либо в «Общие макеты».
Копирование макета в конфигураторе
Стандартный способ скопировать макет: откройте конфигуратор, разверните дерево конфигурации и найдите нужный макет. Щёлкните по нему правой кнопкой мыши и выберите «Копировать», затем на родительской ветке — «Вставить». Программа создаст копию с автоматическим именем (например, «Макет1»), которое следует сразу переименовать в осмысленное, например «МакетСчетСЛоготипом».
Альтернативный вариант — выгрузка и загрузка: правый клик по макету → «Сохранить как внешнюю обработку» недоступен для макетов напрямую, но сам табличный документ можно открыть и сохранить в файл MXL через меню «Файл → Сохранить как». Затем создайте новый макет нужного типа и загрузите в него сохранённый файл. Это удобно, когда макет нужно перенести между разными конфигурациями.
После копирования макета нужно переключить на него программный код. Откройте модуль менеджера или модуль объекта документа, найдите процедуру печати и строку вида ПолучитьМакет("Макет") или ПолучитьОбщийМакет("ПФ_MXL_Счет"). Замените имя макета на имя вашей копии. Если таких вызовов несколько, измените все — иначе в разных сценариях будет выводиться разная форма.
- 1Сделайте резервную копию базы или выгрузите конфигурацию в файл
- 2Откройте конфигуратор и найдите макет в ветке документа или в «Общие макеты»
- 3Скопируйте макет через контекстное меню и переименуйте копию
- 4Откройте копию, внесите нужные изменения в шаблон и сохраните
- 5В модуле печати замените имя макета на имя копии
- 6Обновите конфигурацию базы данных (F7) и проверьте печать в пользовательском режиме
Копирование через внешнюю печатную форму
Для типовых конфигураций на БСП (1С:Бухгалтерия 3.0, 1С:Управление торговлей 11, 1С:ERP и другие) предпочтительный способ — внешняя печатная форма. Она подключается к программе без изменения конфигурации и переживает обновления. Скопировать типовую форму в этом случае означает создать внешнюю обработку, которая выводит изменённый макет.
Порядок действий: в конфигураторе создайте новую внешнюю обработку (Файл → Новый → Внешняя обработка). Скопируйте в неё макет из конфигурации (откройте типовой макет, сохраните табличный документ в файл MXL, затем загрузите его в макет обработки). В модуль объекта обработки добавьте функцию СведенияОВнешнейОбработке() и процедуру Печать() по шаблону БСП — их проще всего взять из любой готовой внешней печатной формы и адаптировать под свой макет.
Готовую обработку подключите в пользовательском режиме: Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки (предварительно включите использование этого механизма в настройках). После добавления укажите, для каких документов доступна форма. В меню «Печать» документа появится новый пункт рядом с типовыми — типовая форма при этом остаётся нетронутой.
Способы копирования печатной формы
Подходит для самописных и снятых с поддержки конфигураций. Быстро, но изменения могут затереться при обновлении типовой конфигурации
Оптимально для типовых конфигураций на БСП. Не требует изменения конфигурации и сохраняется при обновлениях, но требует базовых навыков работы с обработками
В некоторых конфигурациях доступно изменение макета прямо из пользовательского режима (Администрирование → Печатные формы). Подходит для простых правок: логотип, текст, шрифты
Редактирование макета без конфигуратора
В ряде типовых конфигураций на платформе 8.3 макеты печатных форм можно менять прямо в пользовательском режиме. Путь: Администрирование → Печатные формы, отчеты и обработки → Пользовательские макеты печатных форм (название пункта может отличаться в зависимости от конфигурации). Откроется список макетов, доступных для редактирования.
Чтобы скопировать макет, откройте нужный, сохраните его копию под новым именем и внесите изменения: добавьте рисунок логотипа, измените текстовые области, настройте шрифты. Изменённый пользовательский макет автоматически заменяет типовой при печати, а сам типовой остаётся в конфигурации нетронутым — при необходимости к нему можно вернуться, удалив пользовательский.
Ограничение этого способа: можно менять только внешний вид существующих областей и параметров. Добавить новое поле с данными, которых нет в типовом макете (например, дополнительный реквизит документа), без доработки кода не получится — параметр просто не будет заполнен.
Проверка результата и типичные ошибки
После копирования и доработки проверьте форму на реальном документе с заполненными данными: длинными наименованиями, несколькими строками табличной части, копейками в суммах. Обратите внимание на перенос строк, разрывы страниц и итоговые суммы — именно здесь чаще всего всплывают проблемы с изменёнными областями макета.
Проверьте печать из разных сценариев: из формы документа, из списка документов (групповая печать), из комплекта печатных форм, если он используется. Если код печати вызывается в нескольких местах, а вы заменили имя макета не везде, в одних сценариях будет выводиться новая форма, в других — старая.
Как проверить результат
Новая форма доступна и открывается без ошибок
Пункт отсутствует или при печати выводится сообщение об ошибке
Все параметры макета заполнены данными документа
Пустые поля или вывод текста с именем параметра в квадратных скобках
Таблица корректно переносится на следующие страницы, итоги на месте
Обрезанные строки, «плавающие» итоги, разорванные шапки
После обновления форма работает (внешняя печатная форма или пользовательский макет)
Изменения пропали — значит, был изменён типовой объект
Ограничения и когда нужен специалист
Самостоятельное копирование печатной формы безопасно в трёх случаях: через механизм пользовательских макетов, через внешние печатные формы и в копии базы для тестирования. Изменение типовых модулей и макетов в рабочей базе под полной поддержкой — зона риска: ошибка в модуле печати может затронуть все документы данного вида, а восстановление потребует отката конфигурации.
К специалисту стоит обратиться, если нужно добавить в форму данные, которых нет в типовом макете (склады, дополнительные реквизиты, данные связанных документов), вывести штрихкод или QR-код, либо построить печатную форму на СКД. Эти задачи требуют изменения программного кода и понимания структуры конфигурации.
Что важно запомнить
Копируйте макет, а не изменяйте типовой: для типовых конфигураций используйте внешние печатные формы или пользовательские макеты, для самописных — копию макета в конфигураторе. После копирования обязательно переключите код на новый макет, проверьте печать на многострочном документе и храните резервную копию базы.
Частые вопросы
Можно ли скопировать печатную форму без доступа к конфигуратору?
Да, если конфигурация поддерживает пользовательские макеты: откройте Администрирование → Печатные формы → Пользовательские макеты, найдите нужный макет и сохраните его копию. Без конфигуратора можно менять внешний вид, но нельзя добавлять новые поля с данными.
Почему после обновления конфигурации мои изменения в печатной форме пропали?
Значит, был изменён типовой объект конфигурации (макет или модуль), и обновление заменило его типовой версией. Чтобы изменения сохранялись, используйте внешние печатные формы или пользовательские макеты — они хранятся отдельно от конфигурации поставщика.
Как перенести скопированный макет в другую базу?
Макет табличного документа можно сохранить в файл MXL (Файл → Сохранить как при открытом макете) и загрузить в другую базу. Внешняя печатная форма переносится как файл обработки EPF — просто подключите её в другой базе через «Дополнительные отчеты и обработки».
Почему в скопированном макете поле выводится пустым?
Чаще всего имя параметра в макете не совпадает с именем, которое заполняет код, либо область с параметром была скопирована не полностью. Откройте свойства ячейки макета и проверьте поле «Заполнение»: для параметров должно стоять значение «Параметр», а имя должно точно совпадать с используемым в процедуре печати.
Чем отличается внешняя печатная форма от внешней обработки?
Внешняя печатная форма — это частный случай внешней обработки с обязательными функциями регистрации (СведенияОВнешнейОбработке) и процедурой Печать. Обычная обработка запускается вручную, а печатная форма подключается к меню «Печать» конкретных документов и получает от программы ссылки на печатаемые объекты.
Можно ли сделать две версии одной формы и выбирать нужную?
Да. Подключите две внешние печатные формы с разными названиями (например, «Счёт с НДС» и «Счёт без НДС») — обе появятся в меню «Печать» документа, и пользователь будет выбирать нужную при печати. Типовая форма при этом тоже останется доступной.