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