Отчеты и Аналитика · 10 мин
Как добавить картинку в отчет 1С
Как добавить картинку в отчет 1С: логотип в шапке печатной формы, изображение в макете СКД и табличном документе, вывод фото товара. Пошаговые инструкции и ошибки.
Вставка изображения в отчет 1С требуется в нескольких типовых ситуациях: вывести логотип компании в шапке печатной формы, показать фотографию товара в прайсе или каталоге, добавить подпись и печать в виде картинок, проиллюстрировать акт или отчет схемой. Способ зависит от того, каким инструментом построен отчет: табличный документ, схема компоновки данных (СКД) или внешняя печатная форма.
В большинстве конфигураций (1С:Бухгалтерия, 1С:Управление торговлей, 1С:ERP) логотип и факсимиле подключаются вовсе без программирования — через настройки организации. Для нестандартных задач понадобится изменить макет отчета в конфигураторе или добавить код на встроенном языке. Ниже разобраны все рабочие сценарии: от простого включения логотипа до вывода фото товаров из справочника.
Перед любыми изменениями конфигурации сделайте резервную копию информационной базы и проверяйте доработки на копии, а не в рабочей базе. Ошибка в макете не испортит данные, но может сломать печать документов у всех пользователей.
Способ 1. Логотип и печать через карточку организации
Это самый простой сценарий, доступный пользователю без прав разработчика. В типовых конфигурациях откройте раздел Главное → Организации (в некоторых конфигурациях — Справочники → Организации) и перейдите на вкладку или по ссылке «Логотип и печать». Загрузите из файла изображения логотипа, факсимильной подписи и оттиска печати.
После сохранения картинки автоматически подставляются в печатные формы, где это предусмотрено макетом: счета на оплату, акты, накладные, доверенности. Никаких дополнительных настроек отчета не требуется — макеты типовых форм уже содержат области, куда подставляются эти изображения.
Требования к файлам простые: используйте формат PNG или JPG, разумный размер (логотип примерно до 300–400 пикселей по ширине), прозрачный фон для печати и подписи, чтобы они корректно накладывались на текст. Слишком большой файл увеличит размер печатной формы и замедлит формирование.
- 1Откройте Главное → Организации и выберите нужную организацию
- 2Перейдите по ссылке «Логотип и печать»
- 3Загрузите файлы логотипа, подписи и печати
- 4Сохраните карточку организации
- 5Сформируйте печатную форму и проверьте результат
Способ 2. Вставка картинки в макет табличного документа
Если отчет построен на макете табличного документа (это характерно для печатных форм и простых отчетов), картинка вставляется прямо в конфигураторе. Откройте конфигуратор, найдите нужный макет (например, у документа или отчета — ветка «Макеты»), откройте его на редактирование.
Установите курсор в нужную ячейку и выполните команду Таблица → Рисунки → Вставить рисунок (в новых версиях платформы — через меню «Вставка»). Выберите файл изображения — он будет добавлен как рисунок, привязанный к ячейке или свободно размещенный поверх таблицы. Размер и положение настраиваются перетаскиванием и растягиванием рамки.
Альтернатива — тип картинки «Ссылка»: тогда изображение не встраивается в макет, а подгружается из файла или библиотеки картинок. Это удобно, если одна и та же картинка используется в нескольких макетах и должна обновляться централизованно.
Способ 3. Программный вывод картинки в табличный документ
Когда изображение нужно подставлять динамически (например, разные логотипы для разных организаций или фото, хранящееся в базе), используют код на встроенном языке. Логика такая: получить двоичные данные картинки, создать объект «Картинка» и поместить его в область табличного документа.
Типовой фрагмент кода выглядит следующим образом:
ДвоичныеДанные = Константы.ЛоготипКомпании.Получить().Получить();
Если ДвоичныеДанные <> Неопределено Тогда
Картинка = Новый Картинка(ДвоичныеДанные);
Область = ТабличныйДокумент.Область("R1C1");
Рисунок = ТабличныйДокумент.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка);
Рисунок.Картинка = Картинка;
Рисунок.Верх = 2; Рисунок.Лево = 2;
Рисунок.Высота = 15; Рисунок.Ширина = 40;
КонецЕсли;
Координаты (Верх, Лево) и размеры (Высота, Ширина) задаются в миллиметрах. Подберите их опытным путем, формируя отчет и проверяя положение картинки. Если картинка хранится в присоединенном файле справочника (например, фото товара), двоичные данные получают через менеджер присоединенных файлов: РаботаСФайлами.ДвоичныеДанныеФайла(ПрисоединенныйФайл) в конфигурациях на БСП.
Картинка = Новый Картинка(ДвоичныеДанные);
Рисунок = ТабДок.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка);
Рисунок.Картинка = Картинка;Способ 4. Картинка в отчете на СКД
В отчетах на системе компоновки данных картинки выводятся сложнее, потому что СКД работает с данными, а не с оформлением напрямую. Есть два рабочих подхода.
Первый — статическая картинка в макете СКД. В конструкторе макета отчета создайте область макета, в ячейку которой вставлен рисунок (аналогично табличному документу), и назначьте эту область, например, заголовку отчета. Так размещают логотип в шапке отчета.
Второй — динамические картинки в строках отчета, например фото товаров в прайсе. Здесь в запрос набора данных добавляют поле, содержащее двоичные данные картинки или ссылку на присоединенный файл, а вывод реализуют через событие «При компоновке результата» или постобработку табличного документа: после формирования отчета проходят по ячейкам и вставляют рисунки программно. Это задача уровня разработчика: потребуется модуль объекта отчета и аккуратная работа с расшифровкой.
Практическое ограничение
СКД сама по себе не умеет отображать картинки в ячейках как «значение поля». Все решения — обходные: либо макет с фиксированными областями, либо программная доработка результата. Если отчет формируется редко и строк немного, проще вывести данные в табличный документ и добавить картинки кодом, чем строить сложную схему.
Сравнение вариантов
Быстро и без кода, но работает только для логотипа, подписи и печати в типовых формах
Подходит для статичных картинок в печатных формах; замена требует конфигуратора
Гибко: любые картинки из базы или файлов; нужны навыки разработки
Логотип в шапке отчета на СКД; не подходит для картинок в строках данных
Вывод фото товаров в прайс или каталог
Частая прикладная задача — прайс-лист или каталог с фотографиями номенклатуры. Условие: у каждой позиции в справочнике «Номенклатура» должно быть заполнено изображение (в типовых конфигурациях — «Файл картинки» или присоединенные файлы).
Порядок решения: сформируйте табличный документ с данными прайса, затем в цикле по строкам для каждого товара получите двоичные данные картинки и добавьте рисунок в соответствующую строку. Задайте фиксированную высоту строки и размер рисунка (например, 20×20 мм), чтобы миниатюры выглядели аккуратно и не «разъезжались».
Учтите производительность: если в прайсе сотни позиций с «тяжелыми» фото, формирование займет заметное время, а файл отчета получится большим. Рекомендуется заранее уменьшать картинки до нужного размера при загрузке в базу или хранить для отчетов отдельные миниатюры.
Проверка результата и типичные ошибки
После вставки картинки сформируйте отчет и проверьте три вещи: изображение видно на экране, корректно выглядит при предварительном просмотре печати и не обрезается при экспорте в PDF или Excel. Расхождения обычно возникают из-за неправильных координат рисунка или слишком маленькой высоты строки.
Если картинка не отображается, проверьте по порядку: заполнено ли хранилище изображения (константа, реквизит, присоединенный файл), получены ли двоичные данные (не Неопределено), не перекрывает ли рисунок другая область, совпадает ли формат файла с поддерживаемыми (PNG, JPG, BMP).
Как проверить результат
Картинка видна в сформированном отчете
Пустая область или рамка без изображения
Изображение сохраняется и не обрезано
Картинка пропадает или смещается
Отчет формируется за обычное время
Заметное зависание, рост размера файла
У всех пользователей картинка отображается
Изображение есть только у автора доработки
FAQ
Можно ли добавить картинку в отчет без доступа к конфигуратору?
Да, если речь о логотипе, подписи и печати — они загружаются через карточку организации в пользовательском режиме. Произвольную картинку в произвольное место макета без конфигуратора или внешней обработки добавить нельзя.
Почему картинка видна на экране, но пропадает при печати?
Чаще всего рисунок выходит за границы печатной области или перекрывается разрывом страницы. Проверьте предварительный просмотр, уменьшите размер рисунка и убедитесь, что он целиком помещается в пределах одной страницы.
Какие форматы изображений поддерживает 1С?
Объект «Картинка» работает с распространенными растровыми форматами: PNG, JPG, BMP, GIF. Для логотипов и печатей удобнее PNG с прозрачным фоном — он корректно накладывается на текст и фон ячеек.
Как вывести разные логотипы для разных организаций в одном отчете?
Используйте программную вставку: в момент формирования определяйте организацию, получайте ее логотип из хранилища (реквизит или присоединенный файл) и подставляйте в рисунок табличного документа. Статический рисунок в макете для этой задачи не подойдет.
Пропадет ли вставленная в макет картинка после обновления конфигурации?
Если вы изменили типовой макет, при обновлении конфигурации доработка может быть затерта. Безопасные варианты: использовать расширение конфигурации, внешнюю печатную форму или хранить картинку в данных (константа, справочник) и вставлять программно.
Что важно запомнить
Логотип и печать подключаются через карточку организации без кода. Статичные картинки вставляются рисунком в макет табличного документа, динамические — программно через объект «Картинка» и двоичные данные. В отчетах на СКД картинки в строках требуют программной доработки. Сжимайте изображения, проверяйте экспорт и печать, а доработки делайте через расширение или внешние формы, чтобы не потерять их при обновлении.