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

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

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

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

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

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

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

Как устроены печатные формы и где «живёт» картинка

Печатная форма в 1С 8 — это табличный документ, сформированный по макету. Макет хранится в конфигурации (у документа, справочника или обработки) и состоит из именованных областей: шапка, строка, подвал. Картинка может быть размещена в макете как объект «Рисунок» либо добавлена в готовый табличный документ программно при формировании печати.

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

Способ 1. Вставка картинки в макет через конфигуратор

Это самый простой вариант, когда изображение постоянное — например, логотип в шапке счёта. Откройте конфигуратор, найдите нужный макет: обычно это «Документы — [ваш документ] — Макеты — Макет» или общий макет печатной формы. Двойным щелчком откройте макет — перед вами табличный документ.

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

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

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

Способ 2. Программная вставка рисунка при формировании формы

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

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

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

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

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

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

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

Если ДанныеКартинки <> Неопределено Тогда

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

КонецЕсли;

КонецЕсли;

Чтобы рисунок был доступен по имени, его нужно заранее добавить в макет (даже пустым) и задать имя в свойствах. Альтернатива — создать рисунок программно в нужной области табличного документа, но вариант с именованным рисунком в макете проще сопровождать.

Способ 3. Внешняя печатная форма без изменения конфигурации

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

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

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

Правка макета в конфигураторе

Быстро и наглядно, но снимает объект с поддержки и усложняет обновления типовой конфигурации

Программная вставка из базы

Подходит для разных логотипов по организациям; требует доработки кода и проверок на пустые данные

Внешняя печатная форма

Не трогает конфигурацию, безопасна при обновлениях; требует навыков разработки и регистрации обработки

Проверка результата и типичные ошибки

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

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

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

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

Отображение в табличном документе
Норма

Картинка видна целиком, пропорции сохранены

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

Изображение обрезано, растянуто или отсутствует

Предварительный просмотр печати
Норма

Размер и положение соответствуют ожиданию на странице

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

Рисунок смещён, выходит за поля или налезает на текст

Формирование для разных документов
Норма

Форма строится без ошибок для всех организаций и дат

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

На части документов ошибка или пустое место вместо картинки

Ограничения и когда лучше привлечь специалиста

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

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

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

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

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

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

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

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

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

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

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

Пропадёт ли моя картинка после обновления конфигурации?

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

Как вставить QR-код на счёт или акт?

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

Итог

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

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