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