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