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

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

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

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

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

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

Где хранятся макеты и какие они бывают

Макеты создаются в конфигураторе в ветке «Общие — Макеты» (общие макеты) или внутри конкретного объекта — документа, справочника, отчёта. Для печатных форм чаще всего используется тип «Табличный документ»: это сетка ячеек, похожая на Excel, в которую можно вставлять текст, параметры и рисунки.

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

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

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

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

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

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

Библиотека картинок и общие картинки

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

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

Способы добавления рисунка

Вставка из файла в макет

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

Общая картинка

Одно изображение для всей конфигурации, централизованная замена. Требует прав на изменение конфигурации.

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

Картинка хранится в данных (реквизит, хранилище значения) и подставляется при печати. Подходит для логотипов организаций, фото товаров, подписей.

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

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

В модуле менеджера объекта или в общем модуле печати после вывода области обратитесь к коллекции рисунков табличного документа и присвойте свойству «Картинка» нужное значение. Пример кода:

ТабДок = Новый ТабличныйДокумент;

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

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

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

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

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

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

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

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

КонецЕсли;

КонецЕсли;

bsl
Рисунок = ТабДок.Рисунки.Найти("Логотип");
Если Рисунок <> Неопределено Тогда
    Рисунок.Картинка = Новый Картинка(ДвоичныеДанные);
КонецЕсли;

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

Настройка размеров и положения рисунка

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

Для логотипов и печатей устанавливайте «РазмерКартинки = Пропорционально» — тогда при изменении рамки изображение масштабируется без искажений. Свойство «Линия» задаёт рамку вокруг рисунка; для логотипа рамку обычно убирают. Если рисунок должен перекрывать текст (например, печать поверх подписи), учтите, что порядок вывода и свойство «Узор» влияют на прозрачность.

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

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

Отображение в печатной форме
Норма

Рисунок виден, пропорции сохранены, текст не съехал

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

Пустая рамка, искажённое изображение, сдвиг колонок

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

Картинка присутствует и на экране, и в окне предпросмотра

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

На экране есть, при печати пропадает — проверьте защиту и область вывода

Повторное формирование
Норма

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

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

Выводится устаревший или чужой логотип — кэш или неверный поиск по имени

Типичные ошибки и ограничения

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

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

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

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

Альтернативы: расширения и внешние печатные формы

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

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

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

Как выбрать подход

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

FAQ

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

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

Какие форматы изображений поддерживает 1С?

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

Как заменить картинку в макете, не меняя код?

Если картинка вставлена статично, откройте макет, выделите рисунок и через «Таблица — Рисунки» укажите новый файл. Если используется общая картинка, достаточно обновить её в ветке «Общие картинки» — изменения подхватятся во всех макетах.

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

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

Что делать, если картинка искажается при печати?

Установите в свойствах рисунка «РазмерКартинки = Пропорционально» и проверьте, что высота строки и ширина колонки соответствуют пропорциям изображения. Не растягивайте картинку мышью без сохранения пропорций.

Безопасно ли менять макет в рабочей базе?

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

Итог

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

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