Как добавить логотип в печатную форму накладной в 1С:Управление торговым предприятием (УТП)?

Программист 1С v8.3 (Обычные формы) Управленческий учет Торговля и дистрибуция
← На главную

При работе в конфигурации «Управление торговым предприятием для Украины» (УТП) пользователи часто сталкиваются с тем, что стандартные средства не позволяют просто загрузить картинку в справочнике организации, чтобы она автоматически появилась на бланках. В отличие от современных конфигураций на управляемых формах (таких как Бухгалтерия 3.0), архитектура УТП базируется на «обычных формах», что требует более технического подхода к брендированию документов.

В этой статье мы подробно разберем, как интегрировать логотип вашей компании в печатные формы документов, проанализируем различные способы реализации и выясним, какой из них наиболее безопасен для стабильной работы системы.

Способ 1. Прямое изменение макета в Конфигураторе

Рассмотрим самый быстрый, но требующий осторожности метод — редактирование типового макета документа непосредственно в конфигурации. Этот способ подойдет вам, если база снята с поддержки или вы готовы вручную объединять изменения при обновлениях.

Для начала разберем алгоритм действий:

  1. Запустим систему в режиме Конфигуратор.
  2. В дереве метаданных найдем нужный нам документ. Чаще всего это РеализацияТоваровУслуг или СчетНаОплатуПокупателю.
  3. Раскроем ветку документа и перейдем в раздел Макеты. Обычно основной макет называется Печать или Накладная. Откроем его двойным щелчком.
  4. Перед нами откроется табличный документ. Нам нужно подготовить место для логотипа. Для этого выделим строки в шапке документа и раздвинем их или добавим новые пустые строки сверху.
  5. Воспользуемся верхним меню: Таблица — Рисунки — Вставить картинку.
  6. Выберем файл логотипа на диске. Важно: для корректного отображения лучше использовать формат .bmp или .jpg на белом фоне, так как старые версии платформы могут некорректно обрабатывать прозрачность в .png.

После вставки картинки проанализируем её свойства. Нажмем правой кнопкой мыши на изображение и выберем Свойства. В пункте Размер картинки установим значение Пропорционально, чтобы логотип не искажался при изменении границ ячеек. В свойстве Размещение крайне желательно выбрать Переносить вместе со строками, чтобы при печати многостраничных документов логотип не «уплывал».

Способ 2. Использование внешней печатной формы (Рекомендуемый)

Теперь разберем более профессиональный и безопасный метод — создание внешней печатной формы (ВПФ). Этот способ хорош тем, что мы не вносим изменения в саму конфигурацию, а значит, проблем с обновлением программы не возникнет.

Процесс создания ВПФ в УТП выглядит следующим образом:

  1. Создадим новую внешнюю обработку через меню Файл — Новый — Внешняя обработка.
  2. Добавим в неё макет, скопировав его из типовой конфигурации (как мы находили его в первом способе).
  3. Вставим логотип в этот макет так же, как описывалось ранее.
  4. В модуле обработки необходимо прописать обязательную экспортную процедуру Печать().

Посмотрим на пример упрощенного кода в модуле внешней обработки, который инициализирует печать:


Функция Печать() Экспорт
    
    ТабДокумент = Новый ТабличныйДокумент;
    ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_РеализацияТоваровУслуг_Накладная";
    
    Макет = ПолучитьМакет("Накладная");
    
    // Здесь происходит заполнение областей макета данными из документа
    // Вывод области шапки, где уже размещен наш логотип
    ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
    ТабДокумент.Вывести(ОбластьШапка);
    
    Возврат ТабДокумент;
    
КонецФункции

После создания файла .epf его нужно зарегистрировать в базе. Перейдем в меню Сервис — Дополнительные отчеты и обработки — Дополнительные внешние печатные формы. Создадим новую запись, выберем наш файл и укажем документ, к которому эта форма относится. Теперь при нажатии кнопки «Печать» в документе вы сможете выбрать вашу новую форму с логотипом.

Способ 3. Динамическое добавление логотипа программным кодом

Выясним причину, по которой иногда недостаточно просто «вклеить» картинку в макет. Бывают случаи, когда у одной компании несколько филиалов или брендов, и для каждого нужен свой логотип. В такой ситуации мы воспользуемся программным созданием объекта РисунокТабличногоДокумента.

Предположим, у нас логотип хранится в справочнике Организации в виде присоединенного файла (или мы программно подтягиваем его по пути к файлу). Рассмотрим пример кода, который динамически вставляет изображение в готовую печатную форму:


// Предположим, ТабДокумент уже сформирован
Рисунок = ТабДокумент.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка);
Рисунок.Верх = 2; // Координаты в миллиметрах
Рисунок.Лево = 2;
Рисунок.Ширина = 50;
Рисунок.Высота = 25;
Рисунок.Картинка = Новый Картинка("C:\Logos\MyLogo.jpg");
Рисунок.ГраницаСверху = Ложь;
Рисунок.ГраницаСлева = Ложь;
Рисунок.ГраницаСправа = Ложь;
Рисунок.ГраницаСнизу = Ложь;
Рисунок.РазмерКартинки = РазмерКартинки.Пропорционально;

Этот метод позволяет гибко управлять брендированием без создания десятков разных макетов. Мы можем прописать условие в коде: если Организация = "Бренд А", то загружаем один файл, если "Бренд Б" — другой.

Важные технические нюансы

При работе с графикой в 1С 8.3 на обычных формах следует помнить о нескольких критических моментах:

Подводя итог, отметим: если вы новичок, самым простым и правильным путем будет использование внешней печатной формы. Это сохранит чистоту конфигурации и позволит вам экспериментировать с дизайном макета, не опасаясь повредить основные функции системы.

← На главную