Документы и Печать · 9 мин
Как напечатать текст в 1С: пошаговая инструкция
Как напечатать текст в 1С: печать документов из интерфейса, настройка параметров печати, вывод текста программно, решение типичных проблем с принтером.
Печать текста в 1С — задача, которая встречается в двух разных ситуациях. Первая — обычная: пользователь открыл документ, отчёт или справку и хочет вывести её на принтер. Вторая — техническая: разработчику или продвинутому пользователю нужно программно сформировать и напечатать текст, например служебную надпись, этикетку или произвольное сообщение.
В обоих случаях действия отличаются. В интерфейсе «1С:Предприятие» печать выполняется через стандартные команды меню и кнопки «Печать», а программный вывод делается встроенным языком через объекты «ТекстовыйДокумент» и «ТабличныйДокумент». Ниже разобраны оба сценария с конкретными шагами, проверками результата и типичными ошибками.
Инструкции подходят для большинства типовых конфигураций («Бухгалтерия», «Управление торговлей», «Зарплата и управление персоналом») на платформе 8.3, как в тонком клиенте, так и в веб-клиенте. Названия кнопок в отдельных конфигурациях могут немного отличаться, но логика одинаковая.
Как напечатать документ или текст из интерфейса 1С
Самый простой способ — напечатать уже открытый документ. Откройте нужный документ, отчёт или печатную форму, затем нажмите кнопку «Печать» на панели инструментов (обычно это значок принтера) или сочетание клавиш Ctrl+P. Появится стандартное окно выбора принтера, где можно указать количество копий и диапазон страниц.
Если документ имеет несколько печатных форм (например, счёт, ТОРГ-12, акт), сначала нажмите кнопку со стрелкой рядом с «Печать» и выберите нужную форму из списка. 1С сформирует табличный документ и откроет его в режиме предварительного просмотра — оттуда печать запускается той же кнопкой.
- 1Откройте документ, отчёт или печатную форму
- 2Нажмите кнопку «Печать» или Ctrl+P
- 3В окне печати выберите принтер и число копий
- 4Проверьте предварительный просмотр: поля, ориентацию, масштаб
- 5Нажмите «ОК» и заберите распечатку с принтера
Перед отправкой на принтер полезно проверить предварительный просмотр: не обрезаются ли колонки, помещается ли таблица по ширине листа. Если таблица «уезжает» на вторую страницу, измените масштаб или ориентацию листа в настройках печати — об этом ниже.
Настройка параметров страницы перед печатью
Часто текст печатается криво не из-за 1С, а из-за неверных параметров страницы. В режиме предварительного просмотра табличного документа откройте меню «Файл» → «Параметры страницы» (в некоторых версиях — кнопка настроек на панели). Здесь задаются ориентация (книжная или альбомная), поля, масштаб и размещение по ширине страниц.
Для широких таблиц включите альбомную ориентацию или опцию «Поместить по ширине в 1 страницу» — тогда 1С автоматически уменьшит масштаб, и колонки не будут разрываться. Слишком мелкий шрифт после автомасштабирования — признак того, что форму лучше переработать или вывести в несколько листов по вертикали.
Если документ регулярно печатается с одними и теми же настройками, задайте их в свойствах принтера Windows по умолчанию — 1С подхватит эти параметры при каждой печати, и настраивать каждый раз ничего не придётся.
Как вывести произвольный текст программно
Когда нужно напечатать не типовую форму, а произвольный текст (памятку, служебную записку, простую этикетку), используется встроенный язык 1С. Основной инструмент — объект «ТабличныйДокумент»: в него помещают текст в ячейки, а затем вызывают метод «Напечатать()» или показывают пользователю для просмотра.
Минимальный пример выглядит так: создаётся табличный документ, в область записывается текст, затем документ отправляется на печать. Режим «ИспользованиеРежимаПечати.НепосредственнаяПечать» выводит документ сразу, без диалога.
ТабДок = Новый ТабличныйДокумент;
ТабДок.Область("R1C1").Текст = "Служебная записка";
ТабДок.Область("R2C1").Текст = "Прошу согласовать отгрузку по контрагенту.";
ТабДок.Напечатать(РежимИспользованияДиалогаПечати.Использовать);
ТабДок = Новый ТабличныйДокумент;
ТабДок.Область("R1C1").Текст = "Пример текста";
ТабДок.Напечатать(РежимИспользованияДиалогаПечати.Использовать);Для многострочного текста с форматированием удобнее создать макет (в конфигураторе: «Макеты» → «Табличный документ»), разметить в нём области и выводить их методом «ПолучитьОбласть()» и «Вывести()». Так текст и оформление хранятся отдельно от кода, и править форму может даже не программист.
Печать простого текста через ТекстовыйДокумент
Если нужен именно простой текст без таблиц и оформления — например, выгрузить сообщение в файл и распечатать — подойдёт объект «ТекстовыйДокумент». Он работает как обычный блокнот: в него добавляются строки, документ можно сохранить в файл .txt или показать пользователю.
Важное ограничение: «ТекстовыйДокумент» сам по себе на принтер не выводится — у него нет метода печати. Типовой сценарий: сохранить текст в файл, открыть его в блокноте или Word и напечатать оттуда, либо перенести содержимое в «ТабличныйДокумент» и напечатать уже его.
ТекстДок = Новый ТекстовыйДокумент;
ТекстДок.ДобавитьСтроку("Первая строка отчёта");
ТекстДок.ДобавитьСтроку("Вторая строка отчёта");
ТекстДок.Записать("C:\Temp\otchet.txt");
Что выбрать для вывода текста
Подходит для печати: поддерживает форматирование, области, макеты и прямой вывод на принтер. Требует чуть больше кода.
Подходит для простых текстовых файлов и выгрузок. Не печатается напрямую — нужен промежуточный шаг.
Подходит для повторяющихся документов: оформление хранится в конфигурации, код только подставляет данные.
Печать в веб-клиенте и на удалённом рабочем столе
При работе через браузер печать имеет особенности: 1С сначала формирует документ и предлагает сохранить его в PDF или отправить на принтер через диалог браузера. Чтобы печать работала корректно, в браузере должны быть разрешены всплывающие окна для адреса сервера 1С — иначе окно предварительного просмотра просто не откроется.
При работе через RDP (удалённый рабочий стол) принтер должен быть проброшен в сеанс: это настраивается в параметрах подключения («Локальные ресурсы» → «Принтеры»). Если принтера нет в списке 1С, хотя на локальном компьютере он работает, — почти всегда причина именно в отключённом пробросе.
Типичные проблемы и их решение
Если при нажатии «Печать» ничего не происходит, проверьте последовательно: выбран ли принтер по умолчанию в системе, не зависла ли очередь печати (откройте «Устройства и принтеры» в Windows), есть ли у пользователя права на печать данной формы в 1С. В клиент-серверном варианте печать идёт с компьютера пользователя, поэтому принтер должен быть доступен именно у него, а не на сервере.
Обрезанные поля и «пустая» вторая страница — признак неверных полей или масштаба. Крякозябры вместо русского текста при программном выводе обычно означают неверную кодировку при записи файла — укажите кодировку явно (например, КодировкаТекста.UTF8) при вызове метода «Записать()».
Как проверить результат
Весь текст и колонки видны, нумерация страниц корректна
Колонки обрезаны, есть пустые листы
Задание уходит на принтер и исчезает из очереди
Задание висит со статусом «Ошибка»
Текст читаем, поля ровные, кодировка корректна
Крякозябры, смещение, бледная печать
Часто задаваемые вопросы
Как напечатать документ в 1С без предварительного просмотра?
Используйте кнопку «Печать» с выпадающим списком — во многих конфигурациях есть пункт «Быстрая печать» или печать по умолчанию, которая отправляет форму сразу на принтер. Программно это делается методом «Напечатать()» с параметром непосредственной печати.
Почему 1С не видит принтер, хотя другие программы печатают?
Чаще всего принтер не назначен принтером по умолчанию или в сеансе удалённого рабочего стола отключён проброс локальных принтеров. Проверьте настройки подключения RDP и назначьте принтер по умолчанию в Windows.
Как сохранить документ в PDF вместо печати?
В предварительном просмотре выберите «Файл» → «Сохранить» и укажите формат PDF, либо выберите виртуальный принтер «Microsoft Print to PDF» в диалоге печати. Программно используется метод «Записать()» табличного документа с типом файла PDF.
Можно ли напечатать текст на принтере этикеток из 1С?
Да, но потребуется макет, рассчитанный под размер этикетки, и корректно настроенный драйвер принтера этикеток. В типовых конфигурациях есть обработки печати ценников и этикеток, для произвольного текста макет создаётся в конфигураторе.
Что делать, если при программной печати выходит пустой лист?
Проверьте, что в табличный документ действительно выведены области: вызов «Напечатать()» у пустого документа даёт пустую страницу. Убедитесь, что данные для подстановки в макет найдены и области выводятся методом «Вывести()» до печати.
Что важно запомнить
Для печати готовых форм используйте кнопку «Печать» и предварительный просмотр с настройкой параметров страницы. Для произвольного текста программно применяйте «ТабличныйДокумент» с методом «Напечатать()», а «ТекстовыйДокумент» оставьте для файловых выгрузок. Большинство проблем решается проверкой принтера по умолчанию, очереди печати и кодировки.