Разработка и Конфигурация · 9 мин
Как добавить картинку в макет 1С
Как добавить картинку в макет 1С: вставка изображения в табличный макет, программный вывод через область рисунка, типичные ошибки и проверка результата.
Макет в 1С — это шаблон, по которому формируются печатные формы, отчёты и другие документы. Часто в макет требуется добавить картинку: логотип компании на счёте, штамп подписи, штрихкод или декоративный элемент. В зависимости от задачи изображение вставляют либо непосредственно в редакторе макета на этапе разработки, либо подставляют программно при формировании документа.
Существует два принципиально разных подхода. Первый — статическая вставка: картинка сохраняется внутри макета и всегда выводится одинаково. Второй — динамический: макет содержит область-заполнитель, а конкретное изображение подставляется кодом, например логотип из реквизита организации. Выбор зависит от того, должна ли картинка меняться от документа к документу.
Ниже разобраны оба способа для табличного макета — самого распространённого типа, а также особенности работы с макетами ActiveDocument, ограничения форматов и типичные ошибки, из-за которых изображение не появляется на печати.
Какие типы макетов поддерживают картинки
Не каждый макет в 1С умеет хранить изображения. Табличный макет (тип «Табличный документ») поддерживает рисунки полноценно: их можно вставить, переместить, изменить размер и заполнить программно. Это стандартный выбор для печатных форм.
Макет типа «Двоичные данные» или «Другой файл» позволяет хранить сам файл картинки как ресурс конфигурации — так изображение поставляется вместе с конфигурацией и извлекается кодом. Макеты HTML и текстовые документы картинки напрямую не содержат, но могут ссылаться на них. Макет ActiveDocument (например, документ Word) поддерживает вставку изображений средствами самого офисного формата.
Как вставить статическую картинку в табличный макет
Статическая вставка подходит для элементов, которые не меняются: логотипа, фирменного бланка, декоративной рамки. Откройте конфигуратор, найдите нужный макет (у объекта метаданных — документа, справочника или обработки — на закладке «Макеты») и откройте его двойным щелчком.
Выделите ячейку, куда должна попасть картинка. Затем используйте один из двух способов: меню «Таблица — Рисунки — Вставить рисунок» с выбором файла на диске, либо простое копирование изображения в буфер обмена (например, из Paint или браузера) и вставку через Ctrl+V. Картинка появится как отдельный объект поверх ячеек — её можно перетаскивать мышью и растягивать за углы.
После вставки настройте привязку: в свойствах рисунка (правый клик — «Свойства») задайте размер, прозрачный фон при необходимости и положение. Убедитесь, что рисунок не перекрывает ячейки с параметрами — при выводе макета текст и картинка могут наложиться друг на друга.
- 1Откройте макет в конфигураторе и выделите целевую ячейку
- 2Вставьте картинку через «Таблица — Рисунки — Вставить рисунок» или Ctrl+V
- 3Отрегулируйте размер и положение рисунка мышью
- 4Проверьте свойства рисунка: размер, прозрачность, границы
- 5Сохраните конфигурацию и сформируйте печатную форму для проверки
Как подставить картинку в макет программно
Динамическая подстановка нужна, когда изображение зависит от данных: логотип выбранной организации, фото товара в карточке, подпись ответственного лица. В этом случае в макете заранее создаётся пустая область-рисунок, а содержимое заполняется кодом при формировании табличного документа.
Логика работы такая: после вывода области макета в результирующий табличный документ обращаются к коллекции рисунков области и присваивают свойству «Картинка» объект типа «Картинка», созданный из файла, двоичных данных или хранилища значения. Пример типового кода:
ОбластьМакета = Макет.ПолучитьОбласть("Шапка");
ТабДок.Вывести(ОбластьМакета);
Рисунок = ТабДок.Рисунки.Найти("Логотип");
Если Рисунок <> Неопределено Тогда
Рисунок.Картинка = Новый Картинка(ДвоичныеДанныеЛоготипа);
КонецЕсли;
Двоичные данные обычно берут из реквизита типа «Хранилище значения» (например, из справочника «Организации» или присоединенных файлов). Важно проверять, что данные не пустые: попытка создать картинку из пустого значения вызовет ошибку и прервёт формирование печатной формы.
Картинка в макете ActiveDocument (Word)
Макеты типа ActiveDocument используются для печатных форм в формате Word. Картинку в такой шаблон вставляют средствами самого Word при редактировании макета: конфигуратор открывает встроенный редактор, где доступны обычные операции вставки изображений.
Для динамической подстановки в Word-шаблоне размещают закладку или элемент управления, а кодом через COM-объект Word заменяют его содержимое на изображение. Этот подход требует установленного офисного пакета на машине, где формируется документ, что ограничивает его применение на сервере — для серверной печати надёжнее табличный макет.
Сравнение подходов
Подходит для неизменных элементов (логотип, рамка). Простая настройка, но картинка одинакова для всех документов.
Подходит для логотипов организаций, фото товаров, подписей. Требует кода и хранения картинок в базе, но изображение меняется по данным документа.
Подходит для сложных форм, которые пользователи редактируют вручную. Ограничение: нужен установленный Word и осторожность при серверной печати.
Типичные ошибки и ограничения
Самая частая проблема — картинка вставлена, но на печатной форме не видна. Причины: рисунок полностью перекрыт белой заливкой ячеек, находится за пределами печатной области листа или его размер сведён к нулю. Проверьте границы печатной области макета и порядок наложения объектов.
Вторая группа ошибок связана с форматами и размером. Табличный документ корректно работает с распространёнными растровыми форматами (PNG, JPEG, BMP); экзотические форматы могут не отобразиться. Очень большие изображения раздувают размер макета и замедляют формирование — перед вставкой логотип стоит уменьшить до разумных размеров во внешнем редакторе.
При программной подстановке типичны три ошибки: поиск рисунка по неверному имени, создание картинки из пустых двоичных данных без проверки и обращение к рисунку до вывода области в табличный документ. Рисунки доступны только в уже выведенных областях результирующего документа.
Как проверить результат
После вставки или изменения кода сформируйте реальную печатную форму из пользовательского режима, а не только просмотрите макет в конфигураторе. Макет выглядит корректно и при ошибках, которые проявляются только при выводе: наложение параметров, смещение рисунка, пустая область.
Проверьте документ в двух режимах: просмотр на экране и предварительный просмотр перед печатью. Убедитесь, что картинка не обрезается на границе страницы, сохраняет пропорции и не сдвигает таблицу ниже по листу. Для динамических картинок проверьте минимум два случая: документ с заполненным изображением и документ, где изображение отсутствует.
Как проверить результат
Изображение отображается в нужном месте и масштабе
Область пуста или рисунок перекрыт ячейками
Форма формируется без ошибок, область остаётся пустой
Ошибка формирования или вывод «битой» заглушки
Макет сохраняется и открывается быстро
Конфигуратор заметно тормозит при открытии макета
FAQ
Можно ли вставить картинку в макет без конфигуратора, из пользовательского режима?
Напрямую в макет — нет: макеты редактируются только в конфигураторе. Но если макет предусматривает динамическую подстановку, пользователь может загрузить своё изображение в реквизит (например, логотип в карточку организации), и оно попадёт на печатную форму без изменения конфигурации.
Какие форматы изображений лучше использовать?
Наиболее безопасны PNG и JPEG: они корректно отображаются в табличных документах и при печати. PNG предпочтителен для логотипов и штампов, где нужен прозрачный фон. Перед вставкой изображение стоит уменьшить до фактически нужного размера.
Почему картинка видна в конфигураторе, но не печатается?
Чаще всего рисунок выходит за границы печатной области листа или перекрыт ячейками с непрозрачной заливкой. Проверьте настройки области печати макета и положение рисунка относительно ячеек. Также убедитесь, что в параметрах страницы не задано масштабирование, обрезающее края.
Как вывести разные логотипы для разных организаций?
Храните логотип в реквизите справочника «Организации» (тип «Хранилище значения») или в присоединённых файлах. В модуле менеджера печати получайте двоичные данные логотипа по организации документа и подставляйте в область-рисунок через свойство «Картинка».
Можно ли хранить картинку прямо в конфигурации и использовать её в макете?
Да. Добавьте общую картинку в ветку «Общие — Картинки» конфигурации или сохраните файл как макет типа «Двоичные данные». В коде такую картинку получают через библиотеку картинок или извлекают из макета и присваивают области-рисунку — файл не нужно хранить на диске.
Что делать, если при подстановке картинки возникает ошибка?
Проверьте три вещи: что рисунок с таким именем существует в уже выведенной области, что двоичные данные изображения не пустые, и что данные действительно являются картинкой, а не произвольным файлом. Оберните создание картинки в проверку на Неопределено и пустое значение.
Что важно запомнить
Статическую картинку вставляют в табличный макет через «Таблица — Рисунки» или Ctrl+V, динамическую — подставляют кодом в именованную область-рисунок после вывода области. Перед вставкой уменьшайте изображения, проверяйте печатную форму на реальных документах и всегда обрабатывайте случай отсутствия картинки в данных.