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

Разработка и Конфигурация · 10 мин

Как сохранить табличный документ как картинку в 1С

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

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

Штатной кнопки «Сохранить как картинку» в типовых конфигурациях нет: метод Записать() объекта ТабличныйДокумент поддерживает форматы MXL, XLS, HTML, PDF, TXT, но не PNG или JPEG. Поэтому задача решается обходными путями: через промежуточный PDF, через буфер обмена, через COM-объекты или сторонние компоненты. Ниже разобраны рабочие варианты с их ограничениями.

Почему в 1С нет прямого сохранения в PNG или JPEG

Объект ТабличныйДокумент хранит данные во внутреннем формате MXL, ориентированном на печать и обмен между информационными базами. Метод Записать(ИмяФайла, ТипФайла) принимает типы файла табличного документа: ТипФайлаТабличногоДокумента.MXL, XLSX, ODS, PDF, HTML, HTML5, TXT и некоторые другие. Растровых форматов среди них нет.

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

Это важно понимать при выборе подхода: качество итоговой картинки всегда будет зависеть от промежуточного этапа рендеринга, а не от самого табличного документа.

Способ 1. Сохранение через PDF и конвертацию в картинку

Наиболее управляемый программный путь — сохранить табличный документ в PDF, а затем преобразовать PDF-страницы в PNG или JPEG. PDF сохраняет векторное качество, поэтому итоговое изображение получается чётким при любом масштабе.

Первый шаг выполняется штатным методом:

bsl
ТабДок.Записать("C:\Temp\Отчет.pdf", ТипФайлаТабличногоДокумента.PDF);

Для конвертации PDF в картинку используются внешние утилиты: ImageMagick, Ghostscript, pdftoppm из пакета Poppler. Их можно вызвать из 1С через ЗапуститьПриложение() или КомандаСистемы().

bsl
КомандаСистемы("magick convert -density 150 C:\Temp\Отчет.pdf C:\Temp\Отчет.png");

Параметр -density задаёт разрешение в DPI: значение 150 подходит для экрана, 300 — для качественной печати. Чем выше плотность, тем больше размер файла и время обработки. Утилита должна быть установлена на том компьютере, где выполняется код: на сервере 1С при серверном вызове или на клиенте.

Порядок действий при конвертации через PDF
  1. 1
    Сформируйте табличный документ и проверьте его внешний вид на экране
  2. 2
    Сохраните документ в PDF методом Записать()
  3. 3
    Убедитесь, что на компьютере установлен конвертер (ImageMagick, Ghostscript или Poppler)
  4. 4
    Выполните команду конвертации с нужным разрешением
  5. 5
    Откройте полученный PNG/JPEG и проверьте читаемость мелкого текста
  6. 6
    Удалите временные PDF-файлы, если они не нужны

Способ 2. Копирование области через буфер обмена

Для разовой задачи проще всего скопировать нужную область табличного документа в буфер обмена и вставить её в графический редактор. В тонком клиенте выделите область ячеек, скопируйте её (Ctrl+C), затем откройте Paint, Paint.NET или другой редактор и вставьте (Ctrl+V). Редактор предложит вставить изображение, которое можно сохранить как PNG или JPEG.

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

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

Способ 3. Скриншот области экрана

Самый быстрый вариант без программирования — сделать снимок экрана. В Windows нажмите Win+Shift+S, выделите область с табличным документом, и изображение попадёт в буфер обмена. Вставьте его в редактор и сохраните в нужном формате.

Перед снимком настройте отображение: уберите лишние панели, выставьте масштаб 100% или больше, чтобы текст был читаемым. Если нужен документ целиком, а он не влезает на экран, сделайте несколько снимков и склейте их в редакторе — либо используйте программы для скриншотов с прокруткой (например, ShareX или FastStone Capture).

Способ 4. Программные варианты через HTML и внешние компоненты

Табличный документ можно сохранить в HTML, а затем отрисовать HTML в картинку средствами браузерного движка. На практике это делается через утилиты вроде wkhtmltoimage или через автоматизацию браузера. Способ оправдан, когда PDF-конвертер недоступен, но требует аккуратности: HTML-выгрузка из 1С не всегда точно передаёт ширину колонок и шрифты.

Ещё один путь — внешние компоненты (Native API или COM), которые принимают табличный документ или его PDF-представление и возвращают картинку. Такие компоненты распространяются на профильных ресурсах для 1С-разработчиков. Перед внедрением проверяйте совместимость с вашей версией платформы и разрядностью клиента (32/64 бита).

В веб-клиенте программные варианты с командной строкой недоступны из соображений безопасности: там остаются только серверная обработка с последующей передачей файла клиенту или ручное копирование.

Сравнение способов

PDF + конвертер

Лучшее качество и автоматизация, но требует установки внешней утилиты и настройки вызова

Буфер обмена

Быстро для разовых задач, качество экранное, не подходит для больших документов

Скриншот

Мгновенно и без настройки, но низкое разрешение и ручная работа

HTML + wkhtmltoimage

Альтернатива при недоступности PDF-конвертеров, возможны искажения вёрстки

Проверка результата и типичные ошибки

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

Частая проблема — обрезка правой части широкой таблицы. Она возникает из-за настроек страницы табличного документа: перед сохранением в PDF проверьте масштаб, ориентацию листа и параметр «Автомасштаб» или ширину страниц в свойствах документа.

Типичные ошибки
01
Попытка вызвать внешний конвертер на клиенте, когда код выполняется на сервере, — утилита ищется не на той машине, команда завершается ошибкой
02
Низкое значение DPI при конвертации — мелкий текст в картинке нечитаем
03
Сохранение в JPEG вместо PNG для таблиц с текстом — артефакты сжатия на границах ячеек; для текста всегда выбирайте PNG
04
Игнорирование настроек страницы — широкая таблица обрезается или разбивается на лишние страницы
05
Забытые временные файлы PDF и PNG в общем каталоге — риск утечки данных из отчётов

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

Выбор способа под вашу задачу

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

Маршрут решения

Как выбрать действие

Нужна одна картинка прямо сейчасСделайте скриншот через Win+Shift+S или скопируйте область в буфер обмена
Картинки нужны регулярно и автоматическиНастройте сохранение в PDF и вызов конвертера из кода 1С на сервере
Важно качество для печати или увеличенияКонвертируйте через PDF с плотностью 300 DPI и сохраняйте в PNG
Работаете в веб-клиенте без доступа к серверуВыполните конвертацию на сервере и передайте готовый файл клиенту, либо используйте копирование через буфер
Документ содержит конфиденциальные данныеИспользуйте только локальные утилиты и удаляйте временные файлы после отправки
Итог

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

Прямого сохранения табличного документа в картинку в 1С нет. Для автоматизации используйте связку «PDF + конвертер» с PNG и достаточным DPI, для разовых задач — буфер обмена или скриншот. Проверяйте читаемость мелкого текста и не передавайте конфиденциальные документы через онлайн-сервисы.

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

Можно ли сохранить табличный документ в PNG без сторонних программ?

Штатными средствами платформы — нет: метод Записать() не поддерживает растровые форматы. Без установки утилит остаются только буфер обмена и скриншот. Любая автоматическая выгрузка в PNG потребует внешнего конвертера или внешней компоненты.

Почему на картинке размытый текст, хотя в 1С всё чётко?

Размытие означает, что картинка получена с экранного рендеринга (скриншот, буфер обмена) или с низким DPI при конвертации. Повысьте плотность до 150–300 DPI при конвертации из PDF и сохраняйте результат в PNG, а не JPEG.

Как сохранить многостраничный табличный документ одной картинкой?

Конвертеры PDF обычно создают отдельный файл на каждую страницу. Чтобы получить одно длинное изображение, используйте опцию вертикального объединения (в ImageMagick — параметр -append) либо заранее настройте табличный документ на одну страницу без разрывов.

Работает ли конвертация через командную строку в файловой базе без сервера?

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

Что лучше для таблиц — PNG или JPEG?

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

PDF обрезает правые колонки широкой таблицы. Что делать?

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