Документы и Печать · 13 мин
Как редактировать печатную форму в 1С
Как отредактировать печатную форму в 1С: изменение макета через конфигуратор, внешние печатные формы, типовые механизмы БСП. Пошаговые инструкции, ошибки и FAQ.
Печатная форма в 1С — это макет, по которому программа выводит документ на бумагу: счёт, акт, накладную, доверенность. Редактировать её можно несколькими способами: через встроенный редактор макетов в конфигураторе, через механизм внешних печатных форм или через пользовательские настройки в режиме «Предприятие», если конфигурация это поддерживает. Выбор способа зависит от того, есть ли у вас доступ к конфигуратору, стоит ли конфигурация на поддержке и нужно ли сохранить возможность обновления.
Главное правило безопасной работы: не вносите изменения в типовой макет внутри конфигурации, если можно решить задачу внешней печатной формой. Изменённый типовой объект усложняет обновление — при каждом обновлении придётся вручную сравнивать и переносить правки. Внешняя печатная форма подключается отдельным файлом и не затрагивает конфигурацию вообще.
Ниже разобраны все рабочие способы: от простого изменения надписей в макете до создания полноценной внешней печатной формы с программным заполнением параметров. Материал ориентирован на конфигурации на управляемых формах (УТ 11, ERP, Бухгалтерия 3.0, ЗУП 3.1), но принципы справедливы и для обычных форм.
Как устроена печатная форма и что именно вы редактируете
Любая печатная форма в 1С состоит из двух частей: макета и программного кода, который его заполняет. Макет — это табличный документ-шаблон с областями (шапка, строка таблицы, подвал), ячейками и параметрами вида [НомерДокумента] или именованными параметрами вроде <%Организация%>. Код в модуле менеджера документа или в общем модуле получает данные, выводит области макета и подставляет значения в параметры.
Когда вы «редактируете печатную форму», на практике вы делаете одно из трёх действий: меняете внешний вид макета (шрифты, надписи, расположение блоков), добавляете новый параметр и код его заполнения, либо меняете логику вывода (например, печатать цены со скидкой вместо базовых). Первое — самая простая задача, доступная даже без глубокого знания языка 1С. Второе и третье требуют понимания встроенного языка.
Способ 1. Редактирование макета в конфигураторе
Этот способ подходит, если у вас есть доступ к конфигуратору и вы готовы снять объект с поддержки или работаете в собственной (нетиповой) конфигурации. Откройте конфигуратор, перейдите в ветку «Общие → Макеты» и найдите нужный макет по имени — обычно оно содержит название документа и формы, например «МакетСчетНаОплату» или «PF_MXL_ТОРГ12». Если макетов несколько и неясно, какой используется, посмотрите модуль менеджера документа: там в процедуре печати вызывается ПолучитьМакет("ИмяМакета").
Двойной щелчок открывает макет в редакторе табличного документа. Здесь вы можете править текст ячеек, менять шрифты, границы, объединять ячейки, добавлять строки. Ячейки бывают трёх типов заполнения: «Текст» — выводится как есть, «Параметр» — заменяется значением параметра, «Шаблон» — текст с параметрами в квадратных скобках внутри строки. Тип заполнения меняется в палитре свойств ячейки.
После правки сохраните конфигурацию (F7 или «Конфигурация → Обновить конфигурацию базы данных» — обновление требуется только если менялась структура метаданных; для правки макета достаточно просто сохранить) и проверьте печать в режиме «Предприятие». Обязательно проверьте все варианты документа: с длинными наименованиями, с большим числом строк, с пустыми реквизитами — именно там всплывают сдвиги и обрезанный текст.
Способ 2. Внешняя печатная форма — безопасный вариант для типовых конфигураций
Внешняя печатная форма — это файл с расширением .epf, который подключается к типовой конфигурации без её изменения. В конфигурациях на базе Библиотеки стандартных подсистем (БСП) подключение выполняется через раздел «Администрирование → Печатные формы, отчеты и обработки», пункт «Дополнительные отчеты и обработки». Предварительно включите сам механизм — флажок «Дополнительные отчеты и обработки» в том же разделе.
Чтобы создать внешнюю печатную форму, в конфигураторе создайте новую внешнюю обработку (Файл → Новый → Внешняя обработка). В модуле объекта обязательно нужна экспортная функция СведенияОВнешнейОбработке(), которая возвращает структуру с видом «ПечатнаяФорма», перечнем назначений (документов, для которых форма доступна) и списком команд печати. Также реализуется экспортная процедура Печать(), в которой формируется табличный документ по вашему макету.
Макет добавляется прямо в обработку: в дереве обработки создайте макет типа «Табличный документ» и оформите его так же, как встроенный макет. Удобный приём — выгрузить типовой макет из конфигурации в файл mxl и загрузить его в макет обработки, а затем править уже копию. Так вы сохраните всю структуру областей и параметров и измените только нужное.
- 1Включите «Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки»
- 2Откройте список дополнительных обработок и нажмите «Добавить из файла»
- 3Выберите файл .epf и подтвердите регистрацию
- 4Проверьте назначение: в карточке обработки должны быть указаны нужные документы
- 5Откройте документ, нажмите «Печать» и найдите новую форму в подменю «Дополнительные печатные формы»
- 6Сформируйте печатную форму и сверьте результат с ожидаемым
Способ 3. Правка макета в режиме «Предприятие»
Некоторые конфигурации позволяют редактировать макеты без конфигуратора. В БСП-конфигурациях есть обработка «Редактирование макета печатной формы»: она доступна из формы предварительного просмотра печатного документа по кнопке «Ещё → Изменить макет» (точное расположение зависит от версии библиотеки). Макет открывается в редакторе табличного документа прямо в пользовательском режиме, изменения сохраняются в базе данных и применяются сразу для всех пользователей.
Этот путь удобен для простых правок: поменять текст подписи, добавить строку «Основание», поправить ширину колонки. Ограничение — вы не можете добавить новый параметр, которого нет в коде печати: редактор макета меняет только оформление, а набор заполняемых данных определяется модулем печати конфигурации. Если нужного поля в макете нет, придётся идти путём внешней печатной формы или доработки кода.
Сравнение способов редактирования
Полный контроль, но снимает объект с поддержки и усложняет обновления. Подходит для собственных и сильно доработанных конфигураций.
Не трогает конфигурацию, переживает обновления. Требует написания модуля печати и функции сведений об обработке.
Самый быстрый для косметических правок. Нельзя добавить новые параметры и изменить логику заполнения.
Как добавить в форму новое поле или параметр
Частая задача — вывести на печать то, чего в типовой форме нет: ИНН грузополучателя, номер договора, комментарий менеджера. Алгоритм одинаков для встроенного макета и внешней формы. Сначала в макете добавьте ячейку с типом заполнения «Параметр» и задайте имя параметра, например НомерДоговора. Затем в коде, формирующем печать, найдите место, где заполняются параметры области (обычно это структура или заполнение через Параметры.ИмяПараметра), и добавьте своё значение.
Для внешней печатной формы данные берутся из массива объектов, который передаётся в процедуру Печать. Типичный фрагмент кода выглядит так: запрос выбирает реквизиты документа, затем в цикле по выборке выводятся области макета с заполнением параметров. Если нужное значение — реквизит документа или связанного справочника, его получают через точку (Ссылка.Договор.Номер) или добавляют в текст запроса.
ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
ОбластьШапка.Параметры.НомерДоговора = Выборка.ДоговорНомер;
ТабличныйДокумент.Вывести(ОбластьШапка);Если параметр в макете есть, а в коде не заполняется, на печати вы увидите пустое место или текст вида <ИмяПараметра> — это признак того, что заполнение забыли. Обратная ситуация: параметр заполняется в коде, но в макете ячейки с ним нет — значение просто не выводится, ошибки не будет.
Проверка результата и типичные ошибки
После правки форму нужно проверить на реальных данных, а не на одном идеальном документе. Минимальный набор проверок: документ с одной строкой и с несколькими десятками строк (перенос страниц, повторение шапки таблицы), длинные наименования товаров и контрагентов (перенос текста, высота строк), пустые необязательные реквизиты (не должно быть «висячих» подписей вроде «Основание: » с пустотой), печать сразу на принтер и в PDF.
Как проверить результат
Новая команда видна и формирует документ без ошибок
Команды нет — проверьте назначения обработки и права пользователя
Все поля содержат данные документа, нет текста с именами параметров
Пустые ячейки или <ИмяПараметра> на печати
Шапка таблицы повторяется, итоги на последней странице, нумерация страниц корректна
Таблица разрывается без шапки, подвал уезжает на отдельный лист
Внешняя форма продолжает работать после обновления
Форма исчезла или ошибка — значит, правили типовой объект внутри конфигурации
Когда стоит привлечь специалиста
Самостоятельно разумно делать косметические правки: тексты, шрифты, расположение блоков, добавление статичных надписей. Это безопасно при наличии копии базы и легко откатывается. Сложнее обстоит дело с программными изменениями: выводом данных из связанных объектов, изменением логики итогов, условным форматированием строк, печатью штрихкодов и QR-кодов. Здесь ошибка может привести к неверным суммам в документах, которые уйдут контрагентам, — а это уже финансовый и юридический риск.
Также без разработчика не обойтись, если печатная форма формируется не макетом табличного документа, а программно (построчным созданием ячеек в коде) или через офисные шаблоны DOCX — такие механизмы встречаются в отраслевых решениях. Признак: в конфигурации нет подходящего макета, а в модуле печати много строк вида ТабДок.Область(...).Текст = ...
Как выбрать способ
Частые вопросы
Почему после обновления конфигурации мои изменения в печатной форме пропали?
Вы редактировали типовой макет внутри конфигурации. При обновлении мастер сравнения заменил его на новый типовой вариант. Восстановить правки можно из копии базы или cf-файла, сделанного до обновления. Чтобы проблема не повторялась, перенесите форму во внешнюю обработку .epf — она не затрагивается обновлениями.
Как понять, какой именно макет используется при печати документа?
Откройте модуль менеджера документа и найдите процедуру, формирующую печать (обычно Печать или ДобавитьКомандыПечати). В ней видно, какой макет запрашивается через ПолучитьМакет и как называется команда печати. Альтернатива — точка останова в отладчике на моменте формирования печатной формы.
Можно ли редактировать печатную форму без прав администратора?
Правка макета в режиме «Предприятие» и подключение внешних обработок обычно требуют прав администратора или специальной роли на добавление дополнительных отчетов и обработок. Обычный пользователь может только формировать и сохранять уже готовые печатные формы. Уточните набор прав у администратора вашей базы.
Как вывести в печатную форму логотип или подпись в виде картинки?
В макете добавьте область с рисунком: в редакторе табличного документа используйте вставку картинки из файла или из библиотеки картинок конфигурации. Если изображение должно меняться в зависимости от организации, картинку подставляют программно — через параметр типа «Картинка» и заполнение из двоичных данных, хранящихся в базе.
Внешняя печатная форма подключена, но в меню «Печать» её нет. Что проверить?
Проверьте три вещи: включён ли механизм дополнительных отчетов и обработок, указаны ли в карточке обработки назначения (типы документов), и совпадает ли идентификатор команды с тем, что объявлен в функции СведенияОВнешнейОбработке. Также убедитесь, что у пользователя есть право на выполнение дополнительных обработок.
Можно ли сделать разные печатные формы для разных организаций в одной базе?
Да. Проще всего — несколько внешних печатных форм с разными названиями команд, и пользователь выбирает нужную при печати. Более сложный вариант — одна форма, которая в коде проверяет организацию документа и выводит соответствующий макет. В обоих случаях типовая конфигурация не изменяется.
Что важно запомнить
Для косметических правок используйте редактор макета в режиме «Предприятие», для добавления полей и новых форм — внешнюю печатную форму .epf, а прямую правку в конфигураторе оставьте для собственных конфигураций. Перед любыми изменениями сохраните копию, после — проверьте печать на документах с длинными данными и большим числом строк.