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

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

Печатные формы 1С: как создавать и дорабатывать

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

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

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

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

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

Любая печатная форма состоит из двух частей: макета и кода, который его заполняет. Макет — это шаблон табличного документа, хранящийся в конфигурации (обычно в ветке «Общие макеты» или внутри объекта документа). В макете заданы области: шапка, строка таблицы, подвал. Внутри ячеек находятся либо фиксированные тексты, либо параметры вида [НомерДокумента], либо шаблоны с подстановкой.

Код формирования обычно расположен в модуле менеджера объекта (процедура Печать или функции вида ПечатнаяФормаСчетНаОплату). Он получает данные документа, последовательно выводит области макета через ТабличныйДокумент.Вывести() и подставляет значения через Область.Параметры.ИмяПараметра = Значение. Понимание этой связки важно: если вы добавили параметр в макет, но не заполнили его в коде, на печати появится пустое место или текст вида <ИмяПараметра>.

Способ 1: изменение макета прямо в конфигураторе

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

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

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

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

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

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

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

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

Способ 3: редактирование макета из режима предприятия

Во многих типовых конфигурациях есть возможность поправить макет без конфигуратора. Для этого служит обработка «Редактирование макета печатной формы» — обычно она доступна из формы предварительного просмотра печатного документа (кнопка «Ещё» → «Изменить макет») или из настроек печатных форм.

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

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

Выбор способа создания формы

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

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

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

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

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

Для снятых с поддержки или собственных конфигураций и глубоких изменений логики. Риск: конфликты при обновлении.

Как добавить свои данные: параметры, области, запросы

Типовая задача — вывести на печать дополнительный реквизит, например «Договор №» или телефон менеджера. Алгоритм одинаков для внешней формы и доработки конфигурации. Сначала в макете создаётся ячейка с параметром: в свойствах ячейки «Заполнение» = «Параметр», текст — [ДоговорНомер]. Затем в коде получается значение из объекта и присваивается параметру области.

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

Для повторяющихся элементов — номеров страниц, итогов, подписей — используйте отдельные именованные области макета. Область создаётся выделением строк и командой создания именованной области (Ctrl+Shift+N в редакторе макета). Не забывайте про ТабличныйДокумент.ПроверитьВывод() перед выводом подвала, чтобы подписи не «оторвались» от таблицы на отдельную страницу.

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

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

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

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

Типичные ошибки при создании печатных форм
01
Добавили параметр в макет, но не заполнили его в коде — на печати виден текст <ИмяПараметра> или пустая ячейка
02
Имя параметра в макете не совпадает с именем в коде (опечатка, лишний пробел) — значение не подставляется
03
Правка типового макета без фиксации изменений — после обновления конфигурации доработки потеряны
04
Не проверен вывод многостраничного документа — подвал с подписями уходит на отдельный лист
05
Тестирование только под полными правами — у рядовых пользователей форма не работает или падает с ошибкой
06
Во внешней обработке не указано назначение в СведенияОВнешнейОбработке — форма не появляется в меню печати документа

Ограничения и когда нужен разработчик

Самостоятельно без опыта программирования реально освоить редактор макета в режиме предприятия и простые правки текстов. Внешняя печатная форма требует базовых навыков работы в конфигураторе: создания обработки, написания запроса, обращения к параметрам макета. Это посильная задача для продвинутого пользователя, готового разобраться с синтаксисом встроенного языка.

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

Контрольные точки

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

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

Кнопка видна у всех пользователей, которым она нужна

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

Форма видна только администратору или не появляется вовсе

Подстановка данных
Норма

Все параметры заполнены, нет текстов в угловых скобках

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

На печати видны <ИмяПараметра> или пустые обязательные поля

Многостраничный вывод
Норма

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

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

Подписи на отдельном листе, таблица обрезана

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

Форма подключена как внешняя и работает после обновления

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

После обновления форма исчезла или вернулась к типовому виду

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

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

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

Почему внешняя печатная форма не появляется в меню печати?

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

Что произойдёт с доработанной формой при обновлении конфигурации?

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

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

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

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

Да. Во внешней обработке в массиве назначений перечисляются все нужные типы документов, а в процедуре печати через проверку типа документа выбирается нужный макет или логика заполнения. Это удобно, например, для единого акта, который печатается и из реализации, и из заказа.

Чем отличается печатная форма от отчёта?

Печатная форма привязана к конкретному документу и выводит его данные в строгом шаблоне (счёт, акт, накладная). Отчёт строится по произвольным данным базы с группировками, отборами и итогами (оборотно-сальдовая ведомость, анализ продаж). Для отчётов используется система компоновки данных, для печатных форм — макеты табличных документов.

Итог

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

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