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

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

Как сделать кнопку «Печать» в 1С

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

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

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

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

Как вывести документ на печать штатной кнопкой

В типовых конфигурациях кнопка «Печать» расположена в командной панели формы документа — обычно рядом с кнопками «Провести» и «Записать». Нажатие открывает выпадающий список доступных печатных форм: например, для реализации это «Товарная накладная (ТОРГ-12)», «Счет-фактура», «Акт об оказании услуг». Выбираете нужную — открывается табличный документ с предпросмотром.

Из окна предпросмотра документ можно отправить на принтер (кнопка с изображением принтера или Ctrl+P), сохранить в PDF или Excel через «Файл → Сохранить как», либо отправить по электронной почте, если в программе настроена учётная запись почты. Перед печатью проверьте ориентацию листа и масштаб в настройках страницы — табличный документ иногда «разъезжается» на широких формах.

Порядок действий в типовой конфигурации
  1. 1
    Откройте проведённый документ
  2. 2
    Нажмите кнопку «Печать» в командной панели формы
  3. 3
    Выберите нужную печатную форму из списка
  4. 4
    В окне предпросмотра проверьте данные и разметку страницы
  5. 5
    Отправьте на принтер или сохраните в PDF

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

Что делать, если кнопка «Печать» не видна или неактивна

Самая частая причина «пропавшей» кнопки — документ не проведён. Многие печатные формы строятся по данным проведённого документа, и до проведения команда печати либо скрыта, либо при нажатии программа предложит провести документ. Проверьте статус документа и проведите его.

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

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

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

Как проверить, в чём причина

Статус документа
Норма

Документ проведён, кнопка активна

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

Документ не проведён — проведите и повторите

Права пользователя
Норма

Под полными правами кнопка видна так же

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

Под полными правами кнопка есть, у пользователя нет — настроить профиль доступа

Меню «Ещё» в форме
Норма

Команда печати найдена в списке

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

Команды нет нигде — форма доработана, нужен анализ в конфигураторе

Как подключить внешнюю печатную форму без изменения конфигурации

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

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

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

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

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

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

bsl
&НаКлиенте
Процедура ПечатьАкта(Команда)
	ТабДок = СформироватьАктНаСервере(Объект.Ссылка);
	ТабДок.Показать("Акт выполненных работ");
КонецПроцедуры

&НаСервереБезКонтекста
Функция СформироватьАктНаСервере(Ссылка)
	Макет = Документы.РеализацияТоваровУслуг.ПолучитьМакет("Акт");
	ТабДок = Новый ТабличныйДокумент;
	ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
	ОбластьШапка.Параметры.Заполнить(Ссылка);
	ТабДок.Вывести(ОбластьШапка);
	Возврат ТабДок;
КонецФункции

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

Как вывести кнопку в командную панель формы

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

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

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

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

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

Частые вопросы

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

Да, если речь о новой печатной форме: подключите внешнюю печатную форму (.epf) через «Администрирование → Печатные формы, отчеты и обработки». Команда появится в штатном меню «Печать» документа. Изменить состав кнопок внутри формы без конфигуратора нельзя.

Почему в меню «Печать» пусто или нет нужной формы?

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

Как сохранить печатную форму в PDF?

Откройте форму в предпросмотре и выберите «Файл → Сохранить как», указав тип файла PDF. Альтернатива — «печать» на виртуальный PDF-принтер, установленный в операционной системе.

Что лучше: доработка конфигурации или расширение?

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

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

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

Итог

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

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