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