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

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

Как добавить картинку в макет 1С

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

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

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

Ниже разобраны оба способа для табличного макета — самого распространённого типа, а также особенности работы с макетами ActiveDocument, ограничения форматов и типичные ошибки, из-за которых изображение не появляется на печати.

Какие типы макетов поддерживают картинки

Не каждый макет в 1С умеет хранить изображения. Табличный макет (тип «Табличный документ») поддерживает рисунки полноценно: их можно вставить, переместить, изменить размер и заполнить программно. Это стандартный выбор для печатных форм.

Макет типа «Двоичные данные» или «Другой файл» позволяет хранить сам файл картинки как ресурс конфигурации — так изображение поставляется вместе с конфигурацией и извлекается кодом. Макеты HTML и текстовые документы картинки напрямую не содержат, но могут ссылаться на них. Макет ActiveDocument (например, документ Word) поддерживает вставку изображений средствами самого офисного формата.

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

Статическая вставка подходит для элементов, которые не меняются: логотипа, фирменного бланка, декоративной рамки. Откройте конфигуратор, найдите нужный макет (у объекта метаданных — документа, справочника или обработки — на закладке «Макеты») и откройте его двойным щелчком.

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

После вставки настройте привязку: в свойствах рисунка (правый клик — «Свойства») задайте размер, прозрачный фон при необходимости и положение. Убедитесь, что рисунок не перекрывает ячейки с параметрами — при выводе макета текст и картинка могут наложиться друг на друга.

Порядок действий при статической вставке
  1. 1
    Откройте макет в конфигураторе и выделите целевую ячейку
  2. 2
    Вставьте картинку через «Таблица — Рисунки — Вставить рисунок» или Ctrl+V
  3. 3
    Отрегулируйте размер и положение рисунка мышью
  4. 4
    Проверьте свойства рисунка: размер, прозрачность, границы
  5. 5
    Сохраните конфигурацию и сформируйте печатную форму для проверки

Как подставить картинку в макет программно

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

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

ОбластьМакета = Макет.ПолучитьОбласть("Шапка");

ТабДок.Вывести(ОбластьМакета);

Рисунок = ТабДок.Рисунки.Найти("Логотип");

Если Рисунок <> Неопределено Тогда

Рисунок.Картинка = Новый Картинка(ДвоичныеДанныеЛоготипа);

КонецЕсли;

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

Картинка в макете ActiveDocument (Word)

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

Для динамической подстановки в Word-шаблоне размещают закладку или элемент управления, а кодом через COM-объект Word заменяют его содержимое на изображение. Этот подход требует установленного офисного пакета на машине, где формируется документ, что ограничивает его применение на сервере — для серверной печати надёжнее табличный макет.

Сравнение подходов

Статическая вставка в табличный макет

Подходит для неизменных элементов (логотип, рамка). Простая настройка, но картинка одинакова для всех документов.

Программная подстановка в область-рисунок

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

Макет ActiveDocument (Word)

Подходит для сложных форм, которые пользователи редактируют вручную. Ограничение: нужен установленный Word и осторожность при серверной печати.

Типичные ошибки и ограничения

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

Вторая группа ошибок связана с форматами и размером. Табличный документ корректно работает с распространёнными растровыми форматами (PNG, JPEG, BMP); экзотические форматы могут не отобразиться. Очень большие изображения раздувают размер макета и замедляют формирование — перед вставкой логотип стоит уменьшить до разумных размеров во внешнем редакторе.

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

Типичные ошибки
01
Вставка картинки поверх параметров макета — при выводе текст накладывается на изображение и становится нечитаемым
02
Поиск рисунка кодом до вывода области в табличный документ — метод Найти возвращает Неопределено
03
Отсутствие проверки пустых двоичных данных — формирование печатной формы прерывается с ошибкой
04
Вставка логотипа в исходном разрешении в несколько мегабайт — макет раздувается, печать тормозит

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

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

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

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

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

Видимость картинки на печатной форме
Норма

Изображение отображается в нужном месте и масштабе

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

Область пуста или рисунок перекрыт ячейками

Документ без картинки в данных
Норма

Форма формируется без ошибок, область остаётся пустой

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

Ошибка формирования или вывод «битой» заглушки

Размер файла макета
Норма

Макет сохраняется и открывается быстро

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

Конфигуратор заметно тормозит при открытии макета

FAQ

Можно ли вставить картинку в макет без конфигуратора, из пользовательского режима?

Напрямую в макет — нет: макеты редактируются только в конфигураторе. Но если макет предусматривает динамическую подстановку, пользователь может загрузить своё изображение в реквизит (например, логотип в карточку организации), и оно попадёт на печатную форму без изменения конфигурации.

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

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

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

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

Как вывести разные логотипы для разных организаций?

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

Можно ли хранить картинку прямо в конфигурации и использовать её в макете?

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

Что делать, если при подстановке картинки возникает ошибка?

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

Итог

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

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