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

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

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

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

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

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

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

Как устроена кнопка «Печать» в типовых конфигурациях

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

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

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

Способ 1: подключение через «Дополнительные отчеты и обработки»

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

Порядок подключения:

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

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

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

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

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

Упрощённый пример регистрации команды:

Функция СведенияОВнешнейОбработке() Экспорт

ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке();

ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиПечатнаяФорма();

ПараметрыРегистрации.Назначение.Добавить("Документ.РеализацияТоваровУслуг");

НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();

НоваяКоманда.Представление = НСтр("ru = 'Акт (свой шаблон)'");

НоваяКоманда.Идентификатор = "АктСвойШаблон";

НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();

НоваяКоманда.ПоказыватьОповещение = Ложь;

Возврат ПараметрыРегистрации;

КонецФункции

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

Способ 2: добавление формы в конфигураторе

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

Последовательность действий:

  1. Откройте конфигуратор, найдите нужный документ и добавьте макет типа «Табличный документ» с областями (шапка, строка, подвал).
  2. В модуле менеджера документа найдите процедуру ДобавитьКомандыПечати и добавьте команду: КомандаПечати = КомандыПечати.Добавить(); КомандаПечати.Идентификатор = "АктСвойШаблон"; КомандаПечати.Представление = НСтр("ru = 'Акт (свой шаблон)'");
  3. В процедуре Печать модуля менеджера добавьте ветку по новому идентификатору, которая формирует табличный документ по макету.
  4. Обновите конфигурацию базы данных и проверьте результат в режиме предприятия.

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

Сравнение способов

Дополнительные отчеты и обработки

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

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

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

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

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

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

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

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

Наличие формы в меню кнопки «Печать»
Норма

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

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

Формы нет в списке или она серая

Формирование документа
Норма

Открывается предпросмотр, данные подставлены, макет не «разваливается»

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

Ошибка выполнения, пустые поля или съехавшая структура

Поведение после обновления конфигурации
Норма

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

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

Форма пропала — значит, она была встроена в конфигурацию и затёрта обновлением

Типичные ошибки
01
Загрузка обработки без проверки назначения — форма не появляется в нужном документе
02
Несовпадение идентификатора команды и имени формы в процедуре Печать — ошибка при вызове
03
Изменение типовой печатной формы прямо в конфигурации — доработка теряется при обновлении
04
Выдача права на дополнительные обработки только администратору — обычные пользователи не видят форму
05
Использование макета из другой конфигурации без адаптации — пустые или неверные данные в полях

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

Самостоятельно без навыков программирования реально выполнить только подключение готовой обработки. Написание внешней печатной формы требует знания встроенного языка 1С, структуры БСП и работы с табличными документами — это задача уровня начинающего разработчика.

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

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

Перед разработкой собственной формы проверьте, нельзя ли решить задачу редактированием макета существующей типовой формы: часто достаточно скопировать внешнюю обработку-шаблон из поставки БСП и заменить в ней макет на свой, не переписывая код заполнения.
ПЗ
Практическое замечание
Итог

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

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

Частые вопросы о добавлении печатных форм в 1С

Почему загруженная обработка не появилась в меню кнопки «Печать»?

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

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

Да, если у вас есть готовая внешняя обработка (.epf): подключение через «Дополнительные отчеты и обработки» выполняется мышкой. Но создание самой обработки с макетом и кодом требует знания встроенного языка 1С.

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

Нет. Внешние обработки хранятся в данных информационной базы, а не в конфигурации, поэтому обновление их не затрагивает. Пропадают только формы, встроенные прямо в типовую конфигурацию доработкой.

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

Создайте внешнюю обработку на основе кода типовой формы, замените в ней макет на свой и подключите через дополнительные обработки. Типовая форма при этом останется доступной, а ваша появится отдельным пунктом в меню.

Почему при формировании возникает ошибка «Печатная форма не найдена»?

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

Будет ли форма доступна всем пользователям базы?

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