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