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