Документы и Печать · 10 мин
Как вставить рисунок в макет в 1С
Как вставить рисунок в макет 1С: вставка картинки в табличный макет, загрузка из файла и из базы, вывод логотипа на печатную форму, типичные ошибки и FAQ.
Рисунок в макете 1С нужен чаще всего для печатных форм: логотип компании в счёте, подпись и печать на акте, штрихкод в этикетке, фото товара в прайсе. Платформа поддерживает вставку картинок несколькими способами — напрямую в табличный макет, из файла на диске и из хранилища значений в базе данных.
Способ выбирается по задаче. Если изображение статично и одинаково для всех печатных форм (например, логотип), его проще встроить прямо в макет. Если картинка меняется — фото сотрудника или товара — её хранят в базе и подставляют в макет программно при формировании печатной формы.
Ниже разобраны оба подхода с пошаговыми действиями, проверкой результата и типичными ошибками. Инструкции применимы к конфигурациям на управляемых и обычных формах — механика работы с макетами одинакова, отличается лишь место хранения макета (в общих макетах, в объекте конфигурации или в поставляемом макете печатной формы).
Где хранятся макеты и как открыть нужный
Макет — это шаблон, по которому 1С строит печатную форму или отчёт. Табличные макеты (именно они используются для печати документов) могут находиться в нескольких местах конфигурации:
- Общие макеты — ветка «Общие → Макеты» в дереве конфигурации. Здесь лежат макеты, общие для нескольких объектов.
- Макеты объекта — у справочников, документов и отчётов есть своя ветка «Макеты». Макет печатной формы конкретного документа обычно находится там.
- Внешние печатные формы — файлы .epf, подключаемые через «Дополнительные отчеты и обработки». Их макеты редактируются через «Файл — Открыть» в конфигураторе.
Чтобы открыть макет, запустите конфигуратор, найдите нужный объект в дереве конфигурации, разверните ветку «Макеты» и дважды щёлкните по имени макета. Откроется табличный документ — рабочая область, похожая на лист Excel.
Вставка статичного рисунка прямо в макет
Этот способ подходит для изображений, которые не меняются: логотип компании, образец печати, декоративные элементы. Рисунок сохраняется внутри конфигурации и доступен всем пользователям без дополнительных настроек.
- 1Откройте конфигуратор и найдите нужный макет в дереве конфигурации
- 2Откройте макет двойным щелчком — появится табличный документ
- 3Выделите ячейку, в которую нужно поместить рисунок
- 4В главном меню выберите «Таблица — Рисунки — Вставить рисунок» (в некоторых версиях — «Таблица — Вставить рисунок»)
- 5Укажите файл изображения на диске (поддерживаются PNG, JPEG, BMP, GIF)
- 6Подгоните размер: потяните за границы рисунка или задайте размер ячейки/объединённой области
- 7Сохраните макет и обновите конфигурацию базы данных (F7)
После вставки рисунок появляется в списке «Таблица — Рисунки», откуда его можно выделить, переместить, изменить размер или удалить. Каждый рисунок в макете имеет имя — оно понадобится, если позже вы захотите управлять им программно.
Учтите: встроенный в макет рисунок увеличивает размер конфигурации. Логотип весом в несколько мегабайт, вставленный в десяток макетов, заметно раздует файл конфигурации. Перед вставкой сжимайте изображения до разумного размера — для печати обычно достаточно ширины 300–600 пикселей.
Вывод рисунка из базы данных программно
Когда изображение хранится в базе — в хранилище значений справочника, в присоединённых файлах или в регистре сведений — его подставляют в макет кодом в момент формирования печатной формы. Так работают фото товаров, подписи ответственных лиц и сменные логотипы организаций.
Принцип такой: в макете заранее создаётся область с рисунком-заполнителем, а при выводе области этому рисунку присваивается объект типа «Картинка», построенный из данных базы. Типовой фрагмент кода:
ОбластьМакета = Макет.ПолучитьОбласть("Шапка");
Рисунок = ОбластьМакета.Рисунки.Логотип;
ДанныеКартинки = Организация.Логотип.Получить(); // хранилище значения
Если ДанныеКартинки <> Неопределено Тогда
Рисунок.Картинка = Новый Картинка(ДанныеКартинки);
Иначе
Рисунок.Картинка = Новый Картинка; // пустая картинка
КонецЕсли;
ТабДок.Вывести(ОбластьМакета);
Ключевой момент — обращение к рисунку по имени: ОбластьМакета.Рисунки.Логотип. Имя задаётся в свойствах рисунка в макете. Если имя не задано или не совпадает с именем в коде, платформа выдаст ошибку «Поле объекта не обнаружено».
Рисунок = ОбластьМакета.Рисунки.Логотип;
Рисунок.Картинка = Новый Картинка(ДанныеКартинки);Выбор способа: в макет или из базы
Оба подхода рабочие, но у каждого свои условия применения. Неверный выбор не ломает печать, но создаёт лишнюю работу при сопровождении.
Сравнение вариантов
Подходит для статичных изображений: логотип, рамка, образец печати. Не требует кода, но при смене картинки нужно править конфигурацию.
Подходит для меняющихся изображений: фото товаров, подписи, логотипы разных организаций. Требует кода, но картинку меняет пользователь без конфигуратора.
Подходит, когда нельзя менять типовую конфигурацию. Макет с рисунком живёт внутри внешней обработки и обновляется её заменой.
Если конфигурация на поддержке и обновляется типовым способом, изменения в типовых макетах могут затереться при обновлении. В этом случае безопаснее выносить печатную форму во внешнюю обработку или хранить рисунок в базе, а в макете оставлять только заполнитель.
Настройка размера и положения рисунка
Рисунок в макете привязан к ячейке или объединённой области. Чтобы логотип не «разъезжался» при печати, задайте ему фиксированные размеры: выделите рисунок, откройте палитру свойств (правый клик — «Свойства») и укажите ширину и высоту в явном виде, сняв флажок автоподбора, если он установлен.
Для аккуратного выравнивания удобно объединить несколько ячеек под рисунок и задать им фиксированную высоту строки. Тогда картинка займёт предсказуемое место, а соседние области макета не сдвинутся. Проверяйте результат не только на экране, но и в предварительном просмотре печати — масштаб на экране и на бумаге различается.
Если рисунок выводится программно и исходные изображения разного размера (например, фото товаров), присваивайте картинке размер через свойства рисунка в макете с включённым сохранением пропорций — платформа впишет изображение в заданные границы.
Проверка результата и типичные ошибки
После вставки рисунка сформируйте печатную форму из пользовательского режима и проверьте результат на реальных данных. Не ограничивайтесь просмотром макета в конфигураторе — параметры и рисунки могут вести себя иначе при фактическом выводе.
Как проверить результат
Картинка видна, не растянута, не перекрывает текст
Пустое место, искажённые пропорции, наложение на текст
Рисунок в пределах области печати, поля страницы не обрезают изображение
Картинка уходит за край страницы или переносится на второй лист
Рисунок отображается у всех пользователей
У части пользователей пусто — вероятно, картинка берётся из локального файла
Частые вопросы
Какие форматы изображений поддерживает макет 1С?
Табличный документ работает с распространёнными растровыми форматами: PNG, JPEG, BMP, GIF. Для логотипов с прозрачным фоном удобнее PNG. Векторные форматы (SVG, WMF) напрямую в табличный макет обычно не вставляются — их предварительно конвертируют в растр.
Почему рисунок виден у меня, но не виден у других пользователей?
Почти всегда причина в том, что картинка привязана к файлу на вашем локальном диске, а не встроена в макет или базу. Удалите рисунок и вставьте его заново через «Таблица — Рисунки — Вставить рисунок», либо перенесите изображение в базу и выводите программно.
Как вставить разные логотипы для разных организаций?
Храните логотип в реквизите справочника «Организации» типа «ХранилищеЗначения». В макете оставьте рисунок-заполнитель, а в коде печатной формы присваивайте ему картинку из реквизита той организации, по которой формируется документ.
Можно ли вставить рисунок без изменения конфигурации?
Да, через механизм внешних печатных форм: создаётся внешняя обработка (.epf) с собственным макетом, в который вставляется рисунок, и подключается через «Дополнительные отчеты и обработки». Типовая конфигурация при этом не меняется и остаётся на поддержке.
Рисунок при печати обрезается по краю страницы. Что делать?
Проверьте поля страницы в свойствах табличного документа макета и уменьшите ширину рисунка или области, в которой он находится. Также убедитесь, что суммарная ширина колонок макета не превышает ширину области печати при выбранной ориентации листа.
Как удалить рисунок из макета?
Откройте макет, перейдите в меню «Таблица — Рисунки», выберите нужный рисунок в списке и нажмите «Удалить». Если рисунок выводился программно, дополнительно удалите или закомментируйте соответствующий код в модуле формирования печатной формы.
Что важно запомнить
Статичный рисунок вставляется прямо в табличный макет через «Таблица — Рисунки — Вставить рисунок», меняющиеся изображения выводятся кодом через именованный рисунок-заполнитель. Перед правкой типового макета делайте копию базы, сжимайте изображения и проверяйте печатную форму у разных пользователей.