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

Документы и Печать · 11 мин

Как вывести картинку на печать в 1С

Как вывести картинку на печать в 1С: вставка изображения в макет, печать логотипа и фото товара, работа с двоичными данными, типичные ошибки и проверка результата.

Вывод картинки на печать в 1С — типовая задача: логотип компании в счёте, фото товара в прайсе, подпись и печать в договоре, штрихкод в этикетке. Способ решения зависит от того, где хранится изображение (в макете, в справочнике, на диске) и какой тип макета используется — табличный документ или офисный (Word). В типовых конфигурациях часть задач решается без программирования, через настройку макета, а часть требует небольшого кода на встроенном языке.

Чаще всего применяется табличный документ: в макете создаётся область с картинкой, а при формировании печатной формы в эту область подставляется либо статичное изображение, либо картинка из базы данных. Если изображений много и они разные для каждого объекта (например, фото номенклатуры), картинки хранят в присоединённых файлах или в реквизите типа «ХранилищеЗначения» и выводят программно.

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

Определяем, откуда берётся картинка

Прежде чем править макет, ответьте на три вопроса: картинка одна для всех документов или разная для каждого объекта; хранится она в базе или на диске; кто будет её обновлять — разработчик или пользователь. От ответов зависит вся схема реализации.

Единый логотип, печать организации или факсимильная подпись — это статичные изображения, их проще всего вставить прямо в макет. Фото товаров, сканы документов, индивидуальные штрихкоды — динамические, их нужно хранить в базе и подставлять при формировании печатной формы. Хранение картинок только на диске (путь к файлу) — небезопасный вариант: при переносе базы или работе через веб-клиент файлы станут недоступны.

Сравнение вариантов хранения

Картинка внутри макета

Подходит для логотипа и печати. Ограничение: заменить может только разработчик через конфигуратор.

Присоединённые файлы (БСП)

Стандарт для фото товаров и сканов. Пользователь меняет картинки сам, без доработок. Требует подсистемы работы с файлами.

Реквизит «ХранилищеЗначения»

Компактно для одной картинки на объект. Неудобно при массовой загрузке и нет предпросмотра без доработки формы.

Файл на диске по пути

Быстро для разовых задач, но ломается при переносе базы, в клиент-серверном режиме и веб-клиенте. Не рекомендуется.

Вставляем статичную картинку в табличный макет

Это самый простой сценарий: логотип в шапке счёта или печать в договоре. Откройте конфигуратор, найдите нужный макет печатной формы (обычно в менеджере печати объекта или в общих макетах), установите курсор в нужную ячейку и через меню «Таблица → Рисунки → Вставить рисунок» (в новых версиях — вкладка «Вставка») добавьте картинку из файла или из общей картинки конфигурации.

После вставки настройте свойства рисунка: размер, обрамление, привязку к ячейке. Рекомендуется заранее подготовить изображение в нужном размере и разрешении — вставка «тяжёлой» фотографии в несколько мегабайт замедлит формирование каждой печатной формы. Для печати обычно достаточно разрешения около 150–300 точек на дюйм и размера, соответствующего месту в макете.

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

Выводим картинку программно из справочника

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

Если конфигурация построена на Библиотеке стандартных подсистем (УТ 11, ERP, БП 3.0), фото хранятся как присоединённые файлы. Получить двоичные данные можно через функцию работы с присоединёнными файлами, затем создать из них объект «Картинка» и присвоить его рисунку в табличном документе. Если используется реквизит «ХранилищеЗначения», картинку извлекают методом Получить() и передают в рисунок напрямую.

Порядок программного вывода картинки
  1. 1
    В макете выделите ячейку и вставьте рисунок-заполнитель, задайте ему имя (например, ФотоТовара)
  2. 2
    В модуле печати получите двоичные данные картинки из присоединённого файла или хранилища значения
  3. 3
    Создайте объект: Новый Картинка(ДвоичныеДанные)
  4. 4
    Найдите рисунок в выведенной области: Область.Рисунки.ФотоТовара.Картинка = ПолученнаяКартинка
  5. 5
    Сформируйте печатную форму и проверьте отображение для товара с фото и без фото

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

Вывод картинки в макет Word и другие форматы

Если печатная форма построена на макете типа «Документ Microsoft Word», механика другая: в шаблоне Word вставляется поле-заполнитель, а в коде через механизм вывода в офисные документы картинка передаётся как вложение и привязывается к полю. В БСП для этого есть специальные процедуры работы с макетами офисных документов, где картинка добавляется в коллекцию вложений с указанием идентификатора.

Преимущество Word-макета — пользователь может сам поправить шаблон без конфигуратора. Недостаток — формирование медленнее и требует установленного офисного пакета на клиенте или сервере. Для этикеток и ценников с штрихкодами чаще используют не картинки, а специальные компоненты печати штрихкодов, которые рисуют код векторно и не зависят от разрешения.

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

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

Контрольные точки

Как проверить результат

Отображение на экране
Норма

Картинка на своём месте, пропорции сохранены

Тревожный признак

Растянута, обрезана или перекрывает текст

Печать на принтере
Норма

Изображение чёткое, цвета адекватные

Тревожный признак

Размытие, артефакты, чёрный квадрат вместо фото

Сохранение в PDF
Норма

Файл разумного размера, картинка видна

Тревожный признак

Файл в десятки мегабайт или пустое место

Объект без картинки
Норма

Аккуратная заглушка или отсутствие области

Тревожный признак

Рамка с крестом или ошибка выполнения

Типичные ошибки
01
Вставка фото в полном разрешении — печатная форма формируется медленно, PDF весит десятки мегабайт
02
Хранение путей к файлам на диске — после переноса базы или в клиент-серверном режиме картинки пропадают
03
Отсутствие проверки на пустую картинку — у части документов печать падает с ошибкой
04
Правка типового макета напрямую — изменения теряются при ближайшем обновлении конфигурации
05
Картинка в формате, который не поддерживается платформой, — вместо изображения выводится пустое место

Отдельная частая проблема — формат изображения. Платформа надёжно работает с распространёнными форматами PNG и JPEG; экзотические форматы могут не отобразиться. Если картинка загружается пользователями, стоит привести её к стандартному формату при записи в базу — в типовых подсистемах такая конвертация часто уже предусмотрена.

Оптимизация: скорость и размер базы

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

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

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

Когда обращаться к специалисту

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

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

Итог

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

Статичные картинки вставляются прямо в табличный макет, изменяющиеся — подставляются кодом из присоединённых файлов или хранилища значений. Заранее уменьшайте изображения, обрабатывайте отсутствие картинки, не правьте типовые макеты напрямую и проверяйте результат на экране, принтере и в PDF.

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

Можно ли вывести картинку на печать без доработки конфигурации?

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

Почему картинка видна на экране, но не печатается на принтере?

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

Какой формат картинки лучше использовать в 1С?

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

Как вывести разные картинки для разных строк табличной части?

В макете создаётся область строки с рисунком-заполнителем. При выводе каждой строки в цикле в рисунок области подставляется картинка, полученная из данных текущей строки (присоединённый файл номенклатуры или хранилище значения). Область выводится отдельно для каждой строки.

Что делать, если после обновления конфигурации картинка пропала из печатной формы?

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

Влияют ли картинки в базе на скорость работы 1С?

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