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

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

Как вставить картинку в макет 1С

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

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

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

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

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

Изображения можно вставлять в макеты типа «Табличный документ» — именно они используются для печатных форм документов и отчётов. В макетах типа «Двоичные данные» картинка хранится как файл целиком, а в макетах «HTML-документ» — как ссылка или встроенный ресурс, но это отдельные сценарии.

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

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

Как вставить статичную картинку в макет через конфигуратор

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

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

После вставки рисунок становится элементом табличного документа, привязанным к ячейкам. У него есть свойства, доступные через палитру свойств: размер, положение, режим обработки прозрачности, параметр «Защита». Если картинка должна масштабироваться вместе с областью, проверьте настройки привязки к ячейкам — иначе при изменении ширины колонок рисунок останется на месте или «уедет».

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

Как вывести картинку программно из базы данных

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

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

Макет = ПолучитьМакет("ПечатьСчета");

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

Рисунок = ОбластьШапка.Рисунки.Логотип;

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

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

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

Как вставить картинку в макет управляемой формы и другие случаи

Картинка в макете для поля формы

Иногда под «макетом» понимают не печатную форму, а форму объекта, где нужно показать изображение. Там картинка выводится в элемент формы «Поле картинки», а источником служит либо адрес временного хранилища с двоичными данными, либо картинка из библиотеки картинок конфигурации. Макет табличного документа здесь не используется — механизм другой.

Картинка из макета типа «Двоичные данные»

Изображение можно заранее положить в конфигурацию как макет типа «Двоичные данные» и получать его кодом: Новый Картинка(ПолучитьМакет("ЛоготипКомпании")). Такой подход удобен, когда картинка едина для всей конфигурации, но не должна редактироваться пользователем. Минус — для замены логотипа придётся обновлять конфигурацию.

Штрихкоды и QR-коды

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

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

Статичный рисунок в макете

Подходит для постоянных элементов бланка. Просто и не требует кода, но замена картинки — только через конфигуратор.

Программная подстановка из реквизита

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

Макет «Двоичные данные»

Подходит для единой картинки на всю конфигурацию. Обновление только через конфигуратор, зато не зависит от данных в базе.

Типичные ошибки и как их избежать

Типичные ошибки
01
Рисунок вставлен, но печатная форма выводится без него — область с рисунком не входит в получаемую область макета или рисунок вышел за границы страницы.
02
Картинка из базы не отображается — реквизит с двоичными данными пуст или в хранилище значения лежит Неопределено; добавьте проверку перед установкой картинки.
03
Вокруг логотипа белый или серый прямоугольник — использован JPEG вместо PNG с прозрачностью.
04
Макет разросся, конфигурация обновляется долго — вставлена картинка в исходном разрешении; уменьшите файл перед вставкой.
05
Рисунок «съезжает» при изменении колонок — не настроена привязка рисунка к ячейкам табличного документа.
06
Свойство Картинка недоступно — попытка обратиться к рисунку после вывода области в табличный документ вместо работы с полученной областью.

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

Как проверить, что картинка вставлена правильно

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

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

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

Отображение в предпросмотре
Норма

Картинка на месте, чёткая, без искажений пропорций

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

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

Вывод на печать
Норма

Изображение попадает в область печати целиком

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

Картинка обрезана по краю листа или переносится на другую страницу

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

Картинка сохраняется в файле

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

В файле пустое место или искажённое изображение

Программная подстановка
Норма

У разных объектов выводятся их собственные картинки

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

У всех документов одна заглушка или пустой рисунок

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

Итог

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

Статичную картинку вставляют в макет табличного документа через «Таблица → Рисунки → Вставить рисунок», а изменяемую — подставляют кодом в рисунок-заглушку через свойство «Картинка» полученной области. Используйте PNG для логотипов и подписей, уменьшайте файлы перед вставкой, настраивайте привязку к ячейкам и проверяйте результат в предпросмотре, при печати и при сохранении в файл.

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

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

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

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

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

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

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

Как вывести фото товара в печатную форму накладной?

Добавьте в область строки табличной части рисунок-заглушку, а в коде при обходе товаров получайте двоичные данные из реквизита карточки номенклатуры (обычно это хранилище значения с файлом изображения) и присваивайте их свойству «Картинка» рисунка перед выводом каждой строки. Учтите, что с десятками фото печатная форма станет тяжёлой — фото стоит заранее уменьшать.

Картинка обрезается при печати, хотя в предпросмотре всё нормально. Что делать?

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

Можно ли хранить несколько картинок в одном макете и выбирать нужную?

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