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