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

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

Как вставить картинку в печатную форму 1С

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

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

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

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

Какие способы вставки картинки существуют и какой выбрать

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

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

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

Маршрут решения

Как выбрать способ

Конфигурация типовая на полной поддержке, менять её нельзяСоздайте внешнюю печатную форму (.epf) или расширение конфигурации
Конфигурация снята с поддержки или самописнаяПравьте макет непосредственно в конфигураторе
Картинка зависит от данных документа (фото товара, печать организации)Храните изображение в базе и выводите программно
Нужен только логотип в шапке и есть доступ к конфигураторуДобавьте картинку прямо в макет табличного документа

Подготовка файла изображения

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

Размер изображения подбирайте под область печатной формы. Картинка 3000×2000 пикселей в ячейке шириной 3 см будет масштабирована, но при этом замедлит формирование документа и увеличит объём файла. Практичнее заранее уменьшить изображение до размера, близкого к реальному на печати — обычно достаточно 150–300 точек на дюйм итогового размера.

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

Вставка статической картинки в макет табличного документа

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

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

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

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

Программный вывод картинки из базы данных

Когда изображение зависит от данных — например, у каждой организации своя печать, а у каждого товара своё фото — картинку хранят в базе и выводят кодом при формировании печатной формы. Изображение обычно хранится в реквизите типа «ХранилищеЗначения» или в присоединенных файлах.

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

// Пример: вывод логотипа организации в шапку

ДвоичныеДанные = Организация.Логотип.Получить();

Если ДвоичныеДанные <> Неопределено Тогда

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

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

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

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

Иначе

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

КонецЕсли;

Обратите внимание: обращение к рисунку области идёт по имени (Рисунки.Логотип), поэтому рисунку-заглушке в макете нужно заранее задать понятное имя в свойствах. Если имени нет, обратиться к рисунку из кода не получится.

Для фотографий номенклатуры в типовых конфигурациях изображение обычно лежит в присоединенных файлах (справочник «НоменклатураПрисоединенныеФайлы» или аналогичный). Получить файл можно через методы работы с присоединенными файлами БСП, например РаботаСФайлами.ДвоичныеДанныеФайла().

bsl
ДвоичныеДанные = РаботаСФайлами.ДвоичныеДанныеФайла(ПрисоединенныйФайл);
КартинкаТовара = Новый Картинка(ДвоичныеДанные);
ОбластьСтрока.Рисунки.ФотоТовара.Картинка = КартинкаТовара;

Вставка картинки через внешнюю печатную форму

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

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

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

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

Проверка результата и настройка отображения

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

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

Полезно проверить форму на разных принтерах и при выгрузке в PDF. Некоторые эффекты (прозрачность, тонкие линии сканов) могут отображаться иначе при печати, чем на экране.

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

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

Видимость картинки
Норма

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

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

Пустое место или крестик вместо картинки — неверный путь к данным или пустое хранилище

Пропорции
Норма

Логотип не растянут и не сплющен

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

Искажённые пропорции — задан жёсткий размер без учёта соотношения сторон

Влияние на макет
Норма

Текст и таблица формы не сдвинулись, страница не разрывается

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

Шапка увеличилась, таблица уехала на вторую страницу

Динамические картинки
Норма

У разных организаций/товаров выводятся свои изображения

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

Везде одна и та же картинка — ошибка в коде выборки данных

Типичные ошибки и их устранение

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

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

Третья группа — организационные: доработанный макет типовой конфигурации затёрся при обновлении. Признак — после обновления логотип пропал. Лечение одно: восстановить из копии и перенести доработку во внешнюю печатную форму или расширение.

Типичные ошибки
01
Вставка рисунка в область, которая не выводится кодом — картинка не появляется в форме
02
Правка макета типовой конфигурации напрямую — потеря доработки при обновлении
03
Рисунок без имени в макете — невозможно подставить картинку программно
04
Тяжёлые BMP или огромные фото — медленное формирование печатных форм и раздутая база
05
Скан подписи с белым фоном на цветной шапке — грязное пятно вместо аккуратного изображения

Часто задаваемые вопросы

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

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

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

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

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

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

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

Для логотипов, печатей и подписей — PNG с прозрачным фоном, для фотографий — JPEG. Размер подбирайте под реальные габариты на печати с запасом по качеству (порядка 150–300 dpi итогового размера). Слишком большие файлы замедляют формирование документов и увеличивают размер базы или конфигурации.

Законно ли ставить скан подписи и печати в печатные формы?

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

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

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

Итог

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

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