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

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

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

Как отредактировать печатную форму в 1С: изменение макета через конфигуратор, внешние печатные формы, типовые механизмы БСП. Пошаговые инструкции, ошибки и FAQ.

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

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

Ниже разобраны все рабочие способы: от простого изменения надписей в макете до создания полноценной внешней печатной формы с программным заполнением параметров. Материал ориентирован на конфигурации на управляемых формах (УТ 11, ERP, Бухгалтерия 3.0, ЗУП 3.1), но принципы справедливы и для обычных форм.

Как устроена печатная форма и что именно вы редактируете

Любая печатная форма в 1С состоит из двух частей: макета и программного кода, который его заполняет. Макет — это табличный документ-шаблон с областями (шапка, строка таблицы, подвал), ячейками и параметрами вида [НомерДокумента] или именованными параметрами вроде <%Организация%>. Код в модуле менеджера документа или в общем модуле получает данные, выводит области макета и подставляет значения в параметры.

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

Способ 1. Редактирование макета в конфигураторе

Этот способ подходит, если у вас есть доступ к конфигуратору и вы готовы снять объект с поддержки или работаете в собственной (нетиповой) конфигурации. Откройте конфигуратор, перейдите в ветку «Общие → Макеты» и найдите нужный макет по имени — обычно оно содержит название документа и формы, например «МакетСчетНаОплату» или «PF_MXL_ТОРГ12». Если макетов несколько и неясно, какой используется, посмотрите модуль менеджера документа: там в процедуре печати вызывается ПолучитьМакет("ИмяМакета").

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

После правки сохраните конфигурацию (F7 или «Конфигурация → Обновить конфигурацию базы данных» — обновление требуется только если менялась структура метаданных; для правки макета достаточно просто сохранить) и проверьте печать в режиме «Предприятие». Обязательно проверьте все варианты документа: с длинными наименованиями, с большим числом строк, с пустыми реквизитами — именно там всплывают сдвиги и обрезанный текст.

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

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

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

Макет добавляется прямо в обработку: в дереве обработки создайте макет типа «Табличный документ» и оформите его так же, как встроенный макет. Удобный приём — выгрузить типовой макет из конфигурации в файл mxl и загрузить его в макет обработки, а затем править уже копию. Так вы сохраните всю структуру областей и параметров и измените только нужное.

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

Способ 3. Правка макета в режиме «Предприятие»

Некоторые конфигурации позволяют редактировать макеты без конфигуратора. В БСП-конфигурациях есть обработка «Редактирование макета печатной формы»: она доступна из формы предварительного просмотра печатного документа по кнопке «Ещё → Изменить макет» (точное расположение зависит от версии библиотеки). Макет открывается в редакторе табличного документа прямо в пользовательском режиме, изменения сохраняются в базе данных и применяются сразу для всех пользователей.

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

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

Макет в конфигураторе

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

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

Не трогает конфигурацию, переживает обновления. Требует написания модуля печати и функции сведений об обработке.

Редактор макета в режиме Предприятие

Самый быстрый для косметических правок. Нельзя добавить новые параметры и изменить логику заполнения.

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

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

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

bsl
ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
ОбластьШапка.Параметры.НомерДоговора = Выборка.ДоговорНомер;
ТабличныйДокумент.Вывести(ОбластьШапка);

Если параметр в макете есть, а в коде не заполняется, на печати вы увидите пустое место или текст вида <ИмяПараметра> — это признак того, что заполнение забыли. Обратная ситуация: параметр заполняется в коде, но в макете ячейки с ним нет — значение просто не выводится, ошибки не будет.

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

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

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

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

Форма появилась в меню «Печать» документа
Норма

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

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

Команды нет — проверьте назначения обработки и права пользователя

Заполнение параметров
Норма

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

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

Пустые ячейки или <ИмяПараметра> на печати

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

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

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

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

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

Внешняя форма продолжает работать после обновления

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

Форма исчезла или ошибка — значит, правили типовой объект внутри конфигурации

Когда стоит привлечь специалиста

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

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

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

Как выбрать способ

Нужно поменять только текст, шрифт или расположение блоков, конфигурация на БСПИспользуйте редактор макета в режиме Предприятие (кнопка изменения макета в форме печати)
Нужно добавить новое поле с данными, конфигурация типовая и обновляетсяСоздайте внешнюю печатную форму .epf на основе типового макета
Конфигурация собственная или уже снята с поддержкиПравьте макет и модуль печати напрямую в конфигураторе
Нужна форма, которой нет в типовой поставкеВнешняя печатная форма с собственным макетом и процедурой Печать

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

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

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

Как понять, какой именно макет используется при печати документа?

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

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

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

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

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

Внешняя печатная форма подключена, но в меню «Печать» её нет. Что проверить?

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

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

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

Итог

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

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