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

· 7 мин

Содержание

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

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

Видео по теме

Видео с YouTube — канал «Программирование в 1С с Ильясом Низамутдиновым». Стороннее видео для наглядности; порядок действий в вашей версии 1С может отличаться.

Как вывести документ на печать: кнопка «Печать»

Самый частый сценарий — распечатать проведённый документ: счёт, накладную ТОРГ-12, акт, платёжку.

  1. Откройте документ (например, Реализация (акты, накладные)).
  2. Нажмите кнопку Печать на командной панели.
  3. Выберите форму из списка — Счёт на оплату, Товарная накладная (ТОРГ-12), Универсальный передаточный документ и т.д.
  4. Откроется предпросмотр — табличный документ на экране.
  5. Нажмите значок принтера или Ctrl+P, выберите принтер и число копий.

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

Если нужно не на принтер, а в файл — в окне предпросмотра есть Сохранить (форматы pdf, xlsx, mxl) и Отправить (сразу вложением в письмо).

Комплект документов одной кнопкой

В Реализации и Поступлении есть пункт Печать → Комплект документов. Отмечаете галочками накладную, счёт-фактуру, счёт — и всё уходит на печать единым заданием, с нужным числом копий по каждой форме.

Как вывести на печать отчёт

Отчёты (ОСВ, карточка счёта, анализ субконто) печатаются похоже, но есть нюансы масштаба.

  1. Сформируйте отчёт кнопкой Сформировать.
  2. Проверьте, что таблица целиком видна.
  3. Нажмите Печать или значок принтера.
  4. Через Ещё → Параметры страницы задайте ориентацию и масштаб.

Широкие отчёты часто «съезжают» на второй лист. Лечится это в параметрах страницы — об этом ниже.

Табличный документ: что выводится на печать

Всё, что вы видите на экране перед печатью, — это объект ТабличныйДокумент (mxl). Он состоит из ячеек, областей, колонтитулов и настроек печати. На принтер уходит именно он, а не «сам документ базы».

Понимание этого помогает на трёх уровнях:

  • 🖱️ Пользователю — знать, что предпросмотр можно править: скрыть колонки, поменять поля, задать область печати.
  • 🛠️ Разработчику — вывести таблицу программно из обработки или отчёта.
  • 📄 При доработке форм — понимать, откуда берётся макет и как его изменить.

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

ТабДок = Новый ТабличныйДокумент;
Макет = Отчеты.МойОтчет.ПолучитьМакет("Макет");
Область = Макет.ПолучитьОбласть("Шапка");
ТабДок.Вывести(Область);
ТабДок.Показать(); // открыть предпросмотр
// ТабДок.Напечатать(РежимИспользованияДиалогаПечати.НеИспользовать); // сразу на принтер

Метод Показать() открывает окно предпросмотра, а Напечатать() отправляет документ на принтер напрямую.

Конструктор печати 1С: своя печатная форма за 5 минут

Когда типовой формы не хватает, печатную форму собирают через конструктор печати. Он генерирует и макет, и процедуру вывода — руками код писать почти не нужно.

Пошаговый помощник
Открыть конструктор
В Конфигураторе откройте документ, вкладку Макеты → правой кнопкой Конструкторы → Конструктор печати. Задайте имя команды печати, например Печать.

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

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

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

Порядок такой:

  1. Создайте Внешнюю обработку в Конфигураторе.
  2. Добавьте макет табличного документа и нарисуйте форму (области Шапка, Строка, Подвал).
  3. Напишите экспортную процедуру, которая заполняет области данными переданного документа.
  4. Для типовых на БСП — реализуйте функцию СведенияОВнешнейОбработке(), чтобы платформа увидела форму.
  5. Сохраните .epf и подключите: НСИ и администрирование → Печатные формы, отчёты и обработки → Дополнительные обработки.

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

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

Вывод данных в печатную форму: области и параметры

Данные попадают в макет через параметры — именованные ячейки со знаком <>. В коде их заполняют так:

Область = Макет.ПолучитьОбласть("Шапка");
Область.Параметры.Контрагент = Документ.Контрагент;
Область.Параметры.Дата = Документ.Дата;
ТабДок.Вывести(Область);

Строки табличной части выводят в цикле:

ОбластьСтрока = Макет.ПолучитьОбласть("Строка");
Для Каждого СтрокаТЧ Из Документ.Товары Цикл
    ОбластьСтрока.Параметры.Заполнить(СтрокаТЧ);
    ТабДок.Вывести(ОбластьСтрока);
КонецЦикла;

Метод Заполнить() разом переносит одноимённые поля строки в параметры области — не нужно перечислять каждую колонку.

Настройка параметров печати: поля, ориентация, масштаб

Чтобы форма не разъезжалась и влезала на лист, настраивают параметры печати табличного документа.

ПараметрГде менятьЗачем
ОриентацияПараметры страницыАльбомная для широких отчётов
МасштабПараметры страницы → МасштабВписать в ширину страницы
ПоляПараметры страницы → ПоляСдвинуть содержимое, уместить рамку
Область печатиВыделить → Задать область печатиПечатать только часть таблицы
Повтор шапкиТаблица → Повторять при печатиЗаголовок на каждом листе

Программно те же настройки задаются свойствами табличного документа:

ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
ТабДок.АвтоМасштаб = Истина; // вписать по ширине
ТабДок.ПолеСлева = 5;

АвтоМасштаб = Истина — самый быстрый способ убрать «висящую» вторую страницу у широкого отчёта. 1С сама подберёт масштаб так, чтобы всё влезло по ширине.

Сохранение и вывод в PDF

Часто печать нужна не на бумагу, а в файл — отправить контрагенту.

  • PDF — в предпросмотре Сохранить → Тип файла PDF документ (.pdf).
  • Excel — тот же диалог, формат Лист Microsoft Excel (.xlsx).
  • ПрограммноТабДок.Записать("C:\doc.pdf", ТипФайлаТабличногоДокумента.PDF);

PDF-версия сохраняет разметку один в один — то, что видно в предпросмотре, то и в файле.

Частые ошибки и как их избежать

Разберём, почему вывод на печать в 1С «не работает» или выглядит криво.

Диагностика: выберите симптом

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

Чек-лист: печать документа без сюрпризов

Проверка перед печатью
Выполнено: 0 / 6

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

Как вывести на печать сразу несколько документов в 1С?
В журнале документов выделите нужные строки (Ctrl или Shift), нажмите Печать и выберите форму — 1С сформирует их одним заданием. Для полного пакета используйте Печать → Комплект документов.
Почему в 1С не выводится на печать — кнопка не нажимается?
Чаще всего документ не проведён или не заполнены обязательные поля. Проведите его. Если это внешняя печатная форма — включите Дополнительные отчёты и обработки в настройках программы.
Как распечатать табличный документ целиком, если он не влезает на лист?
Откройте Параметры страницы, поставьте альбомную ориентацию и масштаб «вписать по ширине страницы» либо включите автомасштаб. Для программного вывода — свойство АвтоМасштаб = Истина.
Как сделать свою печатную форму, не меняя типовую конфигурацию?
Создайте внешнюю печатную форму (.epf) и подключите её через НСИ и администрирование → Печатные формы, отчёты и обработки. Типовая конфигурация при этом остаётся на полной поддержке.
Чем «Показать» отличается от «Напечатать» в коде?
ТабДок.Показать() открывает окно предпросмотра, где пользователь сам решает печатать или нет. ТабДок.Напечатать() отправляет документ на принтер сразу, минуя предпросмотр.
Можно ли вывести форму сразу в PDF без принтера?
Да. В предпросмотре — Сохранить и формат PDF документ (.pdf). Программно — ТабДок.Записать(Путь, ТипФайлаТабличногоДокумента.PDF).