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

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

Как добавить кнопку печати в документ 1С

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

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

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

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

Как устроен механизм печати в 1С

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

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

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

Способ 1. Добавить внешнюю печатную форму без изменения конфигурации

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

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

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

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

Способ 2. Добавить кнопку печати через конфигуратор

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

Создание макета печатной формы

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

Код формирования печатной формы

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

1c
Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
	КомандаПечати = КомандыПечати.Добавить();
	КомандаПечати.Идентификатор = "МояФорма";
	КомандаПечати.Представление = НСтр("ru = 'Моя печатная форма'");
КонецПроцедуры

Вывод кнопки на форму документа

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

Способ 3. Добавить кнопку через расширение конфигурации

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

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

Сравнение способов добавления кнопки печати

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

Быстро и без изменения конфигурации; ограничение — команда появляется только в меню «Печать», отдельную кнопку на форме не сделать

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

Полный контроль, кнопка в любом месте формы; ограничение — снятие с поддержки и сложности при обновлении

Расширение конфигурации

Кнопка на форме без снятия с поддержки; ограничение — требует навыков разработки и контроля совместимости при обновлениях

Проверка результата

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

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

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

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

Видимость кнопки
Норма

Команда есть в меню «Печать» или на форме у всех целевых пользователей

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

Кнопка видна только администратору — проблема с правами или размещением

Заполнение данных
Норма

Все поля формы содержат данные документа

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

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

Групповая печать
Норма

Из списка документов печатаются все выделенные

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

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

Типичные ошибки и их устранение

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

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

Типичные ошибки
01
Доработка типовой конфигурации напрямую без расширения — при обновлении изменения теряются или блокируют автообновление
02
Опечатка в имени макета в коде — ошибка формирования печатной формы у всех пользователей
03
Проверка только под администратором — у рядовых пользователей кнопки нет из-за прав
04
Процедура печати принимает одну ссылку вместо массива — групповая печать из списка не работает

Часто задаваемые вопросы

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

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

Почему кнопка «Печать» есть, но список форм пуст?

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

Как вывести печать сразу на принтер, минуя предпросмотр?

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

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

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

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

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

Итог

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

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