Как вывести документ на печать в 1С 8.3
Содержание
Вывод на печать в 1С — это формирование бумажной или PDF-версии документа, отчёта или произвольной таблицы. В типовых конфигурациях 1С 8.3 для этого есть кнопка Печать, а под капотом работает объект «Табличный документ»: именно он превращает данные из базы в лист, который уходит на принтер.
Разберём всё по слоям: как обычному пользователю распечатать накладную или отчёт, как программно вывести на печать табличный документ и как собрать свою печатную форму через конструктор печати — с макетом, областями и внешним подключением.
Видео по теме
Как вывести документ на печать: кнопка «Печать»
Самый частый сценарий — распечатать проведённый документ: счёт, накладную ТОРГ-12, акт, платёжку.
- Откройте документ (например,
Реализация (акты, накладные)). - Нажмите кнопку
Печатьна командной панели. - Выберите форму из списка —
Счёт на оплату,Товарная накладная (ТОРГ-12),Универсальный передаточный документи т.д. - Откроется предпросмотр — табличный документ на экране.
- Нажмите значок принтера или
Ctrl+P, выберите принтер и число копий.
Кнопка Печать в списке документов позволяет распечатать сразу несколько выделенных строк — удобно для пачки накладных за день.
Если нужно не на принтер, а в файл — в окне предпросмотра есть Сохранить (форматы pdf, xlsx, mxl) и Отправить (сразу вложением в письмо).
Комплект документов одной кнопкой
В Реализации и Поступлении есть пункт Печать → Комплект документов. Отмечаете галочками накладную, счёт-фактуру, счёт — и всё уходит на печать единым заданием, с нужным числом копий по каждой форме.
Как вывести на печать отчёт
Отчёты (ОСВ, карточка счёта, анализ субконто) печатаются похоже, но есть нюансы масштаба.
- Сформируйте отчёт кнопкой
Сформировать. - Проверьте, что таблица целиком видна.
- Нажмите
Печатьили значок принтера. - Через
Ещё → Параметры страницызадайте ориентацию и масштаб.
Широкие отчёты часто «съезжают» на второй лист. Лечится это в параметрах страницы — об этом ниже.
Табличный документ: что выводится на печать
Всё, что вы видите на экране перед печатью, — это объект ТабличныйДокумент (mxl). Он состоит из ячеек, областей, колонтитулов и настроек печати. На принтер уходит именно он, а не «сам документ базы».
Понимание этого помогает на трёх уровнях:
- 🖱️ Пользователю — знать, что предпросмотр можно править: скрыть колонки, поменять поля, задать область печати.
- 🛠️ Разработчику — вывести таблицу программно из обработки или отчёта.
- 📄 При доработке форм — понимать, откуда берётся макет и как его изменить.
Программный вывод табличного документа на печать в самом простом виде выглядит так:
ТабДок = Новый ТабличныйДокумент;
Макет = Отчеты.МойОтчет.ПолучитьМакет("Макет");
Область = Макет.ПолучитьОбласть("Шапка");
ТабДок.Вывести(Область);
ТабДок.Показать(); // открыть предпросмотр
// ТабДок.Напечатать(РежимИспользованияДиалогаПечати.НеИспользовать); // сразу на принтер
Метод Показать() открывает окно предпросмотра, а Напечатать() отправляет документ на принтер напрямую.
Конструктор печати 1С: своя печатная форма за 5 минут
Когда типовой формы не хватает, печатную форму собирают через конструктор печати. Он генерирует и макет, и процедуру вывода — руками код писать почти не нужно.
Макеты → правой кнопкой Конструкторы → Конструктор печати. Задайте имя команды печати, например Печать.Товары) и её колонки — конструктор создаст область строки и цикл вывода.ОК. Конструктор сам создаст макет mxl и процедуру, которая выводит области на печать. Останется подправить оформление.После этого форма появляется в меню Печать документа. Правки оформления (шрифты, рамки, ширина колонок) делаются прямо в макете — это визуальный редактор, похожий на таблицу Excel.
Создание макета внешней печатной формы
Если базу нельзя менять (типовая конфигурация на поддержке), печатную форму делают внешней — отдельным файлом .epf, который подключается через справочник.
Порядок такой:
- Создайте
Внешнюю обработкув Конфигураторе. - Добавьте макет табличного документа и нарисуйте форму (области
Шапка,Строка,Подвал). - Напишите экспортную процедуру, которая заполняет области данными переданного документа.
- Для типовых на БСП — реализуйте функцию
СведенияОВнешнейОбработке(), чтобы платформа увидела форму. - Сохраните
.epfи подключите:НСИ и администрирование → Печатные формы, отчёты и обработки → Дополнительные обработки.
Внешняя печатная форма подключается только при включённой опции Дополнительные отчёты и обработки в настройках программы. Без неё раздела в меню не будет.
Плюс подхода — обновления типовой конфигурации не затирают вашу форму. Минус — нужно следить за совместимостью при крупных релизах.
Вывод данных в печатную форму: области и параметры
Данные попадают в макет через параметры — именованные ячейки со знаком <>. В коде их заполняют так:
Область = Макет.ПолучитьОбласть("Шапка");
Область.Параметры.Контрагент = Документ.Контрагент;
Область.Параметры.Дата = Документ.Дата;
ТабДок.Вывести(Область);
Строки табличной части выводят в цикле:
ОбластьСтрока = Макет.ПолучитьОбласть("Строка");
Для Каждого СтрокаТЧ Из Документ.Товары Цикл
ОбластьСтрока.Параметры.Заполнить(СтрокаТЧ);
ТабДок.Вывести(ОбластьСтрока);
КонецЦикла;
Метод Заполнить() разом переносит одноимённые поля строки в параметры области — не нужно перечислять каждую колонку.
Настройка параметров печати: поля, ориентация, масштаб
Чтобы форма не разъезжалась и влезала на лист, настраивают параметры печати табличного документа.
| Параметр | Где менять | Зачем |
|---|---|---|
| Ориентация | Параметры страницы | Альбомная для широких отчётов |
| Масштаб | Параметры страницы → Масштаб | Вписать в ширину страницы |
| Поля | Параметры страницы → Поля | Сдвинуть содержимое, уместить рамку |
| Область печати | Выделить → Задать область печати | Печатать только часть таблицы |
| Повтор шапки | Таблица → Повторять при печати | Заголовок на каждом листе |
Программно те же настройки задаются свойствами табличного документа:
ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
ТабДок.АвтоМасштаб = Истина; // вписать по ширине
ТабДок.ПолеСлева = 5;
АвтоМасштаб = Истина — самый быстрый способ убрать «висящую» вторую страницу у широкого отчёта. 1С сама подберёт масштаб так, чтобы всё влезло по ширине.
Сохранение и вывод в PDF
Часто печать нужна не на бумагу, а в файл — отправить контрагенту.
- PDF — в предпросмотре
Сохранить → Тип файла PDF документ (.pdf). - Excel — тот же диалог, формат
Лист Microsoft Excel (.xlsx). - Программно —
ТабДок.Записать("C:\doc.pdf", ТипФайлаТабличногоДокумента.PDF);
PDF-версия сохраняет разметку один в один — то, что видно в предпросмотре, то и в файле.
Частые ошибки и как их избежать
Разберём, почему вывод на печать в 1С «не работает» или выглядит криво.
АвтоМасштаб / масштаб «вписать по ширине» в параметрах страницы.Область.Параметры и цикл Для Каждого.Ctrl+P) вместо кнопки прямой печати.СведенияОВнешнейОбработке() или обработка подключена не как «Печатная форма». Проверьте вид обработки и назначение (к какому справочнику/документу).Перед доработкой макетов типовой конфигурации сделайте резервную копию и работайте на копии базы. Правка форм на поддержке снимает часть объектов с автообновления.
Чек-лист: печать документа без сюрпризов
Частые вопросы
Как вывести на печать сразу несколько документов в 1С?
Ctrl или Shift), нажмите Печать и выберите форму — 1С сформирует их одним заданием. Для полного пакета используйте Печать → Комплект документов.Почему в 1С не выводится на печать — кнопка не нажимается?
Дополнительные отчёты и обработки в настройках программы.Как распечатать табличный документ целиком, если он не влезает на лист?
Параметры страницы, поставьте альбомную ориентацию и масштаб «вписать по ширине страницы» либо включите автомасштаб. Для программного вывода — свойство АвтоМасштаб = Истина.Как сделать свою печатную форму, не меняя типовую конфигурацию?
.epf) и подключите её через НСИ и администрирование → Печатные формы, отчёты и обработки. Типовая конфигурация при этом остаётся на полной поддержке.Чем «Показать» отличается от «Напечатать» в коде?
ТабДок.Показать() открывает окно предпросмотра, где пользователь сам решает печатать или нет. ТабДок.Напечатать() отправляет документ на принтер сразу, минуя предпросмотр.Можно ли вывести форму сразу в PDF без принтера?
Сохранить и формат PDF документ (.pdf). Программно — ТабДок.Записать(Путь, ТипФайлаТабличногоДокумента.PDF).