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