Отчеты и Аналитика · 10 мин
Как вывести отчет на печать в 1С
Как вывести отчет на печать в 1С: настройка макета, вывод табличного документа, печать из типовых конфигураций, разбор ошибок и проверка результата.
Печать отчета в 1С — задача, с которой сталкиваются и бухгалтер, и менеджер, и разработчик. В типовых конфигурациях практически любой сформированный отчет представляет собой табличный документ, который можно отправить на принтер напрямую, сохранить в файл или вывести через стандартный диалог печати. Однако на практике пользователи регулярно сталкиваются с обрезанными колонками, пустыми страницами и отсутствующей кнопкой печати.
Способ вывода зависит от того, кто выполняет задачу. Пользователю достаточно кнопок на форме отчета и настроек страницы. Разработчику нужно понимать, как программно сформировать табличный документ и управлять его параметрами печати: полями, ориентацией, колонтитулами и масштабом. Ниже разобраны оба сценария — от простого вывода готового отчета до программной печати из внешней обработки.
Важный нюанс: поведение печати отличается в тонком клиенте, веб-клиенте и на сервере. Код, который безупречно работает на компьютере разработчика, может выдавать ошибку при серверном вызове, потому что на сервере нет доступа к локальному принтеру. Эти ограничения также разобраны ниже.
Как распечатать готовый отчет из формы
Сформируйте отчет стандартной кнопкой «Сформировать» и убедитесь, что данные выведены в табличный документ. Дальше есть два пути: быстрая печать с настройками по умолчанию и печать через диалог с выбором принтера, числа копий и диапазона страниц.
Для быстрой печати нажмите кнопку «Печать» на командной панели формы (обычно значок принтера) или сочетание клавиш Ctrl+P. Откроется стандартный диалог печати, где выбирается принтер, количество копий и страницы. Если нужно напечатать только часть отчета, сначала выделите нужный диапазон мышью — в диалоге можно указать печать выделенной области.
Перед отправкой на принтер откройте пункт «Еще» → «Предварительный просмотр» (если конфигурация его поддерживает) или просто пролистайте табличный документ с включенным режимом разметки страниц. Это позволяет увидеть, как отчет будет разбит на листы, до расхода бумаги.
- 1Сформируйте отчет кнопкой «Сформировать»
- 2Откройте «Еще» → «Параметры страницы» и задайте ориентацию и масштаб
- 3Проверьте разбивку на страницы в режиме разметки
- 4Нажмите Ctrl+P, выберите принтер и число копий
- 5Убедитесь, что все колонки помещаются на лист
Настройка страницы перед печатью
Большинство проблем с печатью решается не в диалоге принтера, а в параметрах страницы табличного документа. Откройте «Еще» → «Параметры страницы» (в некоторых конфигурациях — «Файл» → «Параметры страницы») и проверьте ключевые настройки: ориентацию, масштаб, поля и заголовки колонок на каждой странице.
Широкие отчеты — оборотно-сальдовые ведомости, анализы продаж — почти всегда требуют альбомной ориентации. Если колонок много, уместно включить автомасштаб или задать масштаб вручную, например 80%. Альтернатива — флажок «Разместить не более чем на N страницах в ширину», который автоматически сжимает документ до заданной ширины.
Для многостраничных отчетов полезны сквозные строки и колонки: шапка таблицы будет повторяться на каждом листе. В пользовательском режиме эта настройка доступна не всегда — она задается разработчиком в свойствах табличного документа (ЧерновикПечати, ПовторятьПриПечатиСтроки). Если шапка на второй странице пропадает, это повод обратиться к разработчику, а не искать кнопку в интерфейсе.
Программный вывод отчета на печать
Разработчик управляет печатью через объект «ТабличныйДокумент». Типовая схема: сформировать отчет компоновкой данных или заполнить макет, получить табличный документ, установить параметры печати и вызвать метод печати. Метод Напечатать() с параметром РежимИспользованияДиалогаПечати.Использовать показывает диалог, без параметра печатает сразу на принтер по умолчанию.
ТабДок = Новый ТабличныйДокумент;
ОтчетОбъект = Отчеты.ПродажиПоМесяцам.Создать();
ОтчетОбъект.СкомпоноватьРезультат(ТабДок);
ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
ТабДок.АвтоМасштаб = Истина;
ТабДок.ПолеСверху = 10;
ТабДок.ПолеСнизу = 10;
ТабДок.Напечатать(РежимИспользованияДиалогаПечати.Использовать);Обратите внимание на порядок: сначала документ полностью формируется, затем задаются параметры страницы, и только потом вызывается печать. Если менять ориентацию после вывода части областей, результат может отличаться от ожидаемого, особенно при использовании разрывов страниц.
Для печати без диалога на конкретном принтере задайте свойство ИмяПринтера табличного документа. Это удобно для автоматической печати этикеток или счетов, но требует, чтобы принтер с таким именем существовал на том компьютере, где выполняется код.
Печать на сервере и в веб-клиенте: ограничения
Ключевое ограничение платформы: интерактивная печать с диалогом возможна только на клиенте. Сервер 1С не имеет доступа к принтеру пользователя, поэтому вызов Напечатать() в серверной процедуре либо не даст результата, либо отправит документ на принтер, подключенный к серверу, что почти никогда не нужно.
Правильный шаблон для клиент-серверного режима: серверная процедура формирует табличный документ и возвращает его (или адрес во временном хранилище), а клиентская процедура получает результат и вызывает печать. В веб-клиенте дополнительно может потребоваться установка расширения работы с файлами, а диалог печати открывается браузером.
Сохранение в файл вместо печати
Часто вместо бумажной копии нужен электронный документ. Табличный документ сохраняется в PDF, Excel (XLSX), HTML, MXL и другие форматы через пункт «Еще» → «Сохранить» или программно методом Записать(). PDF — оптимальный выбор для передачи контрагенту: форматирование не «поедет», а изменить данные сложнее, чем в Excel.
Программное сохранение выглядит так: ТабДок.Записать("C:\\Отчеты\\Продажи.pdf", ТипФайлаТабличногоДокумента.PDF);. Учтите, что запись в файл на клиенте в веб-клиенте требует расширения работы с файлами, а на сервере — прав на целевой каталог у учетной записи службы агента сервера 1С.
Куда выводить отчет
Подходит для подписываемых документов. Ограничение: нужен доступный принтер и проверка разбивки на страницы.
Для отправки контрагентам и архива. Сохраняет форматирование, не редактируется штатно.
Для дальнейшей обработки данных. Сложные макеты с объединенными ячейками могут искажаться.
Родной формат 1С. Открывается только в 1С, подходит для обмена между своими сотрудниками.
Типичные ошибки и способы их устранения
Самая частая жалоба — «отчет обрезает справа». Причина почти всегда в книжной ориентации и широком макете. Решение: альбомная ориентация, автомасштаб или уменьшение масштаба вручную. Если макет формируется программно, проверьте суммарную ширину колонок — она может превышать ширину листа даже при автомасштабе.
Вторая группа проблем — пустые страницы и «разорванные» блоки. Пустые листы обычно появляются из-за лишних разрывов страниц или областей с большой высотой. Разрывы таблиц посреди строки устраняются свойством «Не разрывать» у области макета. Если отчет печатается с чужими колонтитулами или старым названием, проверьте свойства НижнийКолонтитул и ВерхнийКолонтитул — они могли остаться от предыдущего вывода в тот же табличный документ.
Проверка результата перед массовой печатью
Перед печатью большого пакета документов или регулярным выводом отчета выполните контроль на одном экземпляре. Убедитесь, что шапка повторяется на каждой странице, итоги не оторваны от таблицы, а номера страниц и колонтитулы отображаются корректно. Дешевле потратить минуту на просмотр, чем перепечатывать пачку листов.
Как проверить результат
В режиме разметки страниц документ укладывается в ширину листа
Справа появляются отдельные страницы с одной-двумя колонками
Повторяется на каждой странице
На второй и следующих страницах нет заголовков колонок
Строка итогов на той же странице, что и последние данные
Итоги уехали на отдельный лист
Актуальное название отчета и номера страниц
Пустые колонтитулы или данные от прошлого отчета
Частые вопросы
Почему кнопка «Печать» неактивна в отчете?
Чаще всего отчет еще не сформирован — табличный документ пуст. Нажмите «Сформировать». Если кнопка недоступна и после этого, проверьте права пользователя: в некоторых конфигурациях вывод на печать ограничен ролями, а также убедитесь, что результат выводится в табличный документ, а не только в виде диаграммы.
Как напечатать только часть отчета?
Выделите нужный диапазон ячеек мышью, затем откройте диалог печати (Ctrl+P) и выберите вариант печати выделенного диапазона. Альтернатива — указать номера страниц в диалоге печати, если известно, на каких листах находится нужный фрагмент.
Можно ли печатать отчет автоматически по расписанию?
Да, но не напрямую на принтер: регламентное задание выполняется на сервере, где нет доступа к клиентскому принтеру. Рабочая схема — регламентное задание формирует отчет, сохраняет его в PDF или Excel и отправляет по электронной почте или складывает в сетевую папку, откуда документы печатаются вручную или сторонним скриптом.
Почему при сохранении в Excel «ломается» форматирование?
Табличный документ 1С и Excel по-разному работают с объединенными ячейками, шириной колонок и шрифтами. Сложные макеты с многоуровневыми шапками переносятся с искажениями. Если важен внешний вид, сохраняйте в PDF; если важны данные для обработки — допустимы небольшие отклонения форматирования в Excel.
Как убрать надпись о незарегистрированной версии или лишние колонтитулы?
Колонтитулы задаются свойствами табличного документа ВерхнийКолонтитул и НижнийКолонтитул. В пользовательском режиме они очищаются в параметрах страницы, программно — присвоением пустой структуры или нужных значений перед выводом. Если текст добавляет сторонняя печатная форма, искать причину нужно в ее модуле.
Отчет печатается мелким шрифтом после автомасштаба. Что делать?
Автомасштаб сжимает документ до ширины листа, и при очень широком макете текст становится нечитаемым. Варианты: убрать лишние колонки из настроек отчета, перейти на бумагу большего формата (A3), разбить отчет на несколько по периодам или подразделениям либо задать фиксированный масштаб и смириться с печатью на нескольких листах в ширину.
Что важно запомнить
Пользователь печатает отчет через Ctrl+P после проверки ориентации, масштаба и разбивки на страницы. Разработчик управляет печатью через объект ТабличныйДокумент, помня главное правило: интерактивная печать выполняется только на клиенте, а на сервере отчет сохраняют в файл. Предварительный просмотр одного экземпляра перед массовой печатью экономит время и бумагу.