Как добавить логотип в типовой прайс-лист УТ 11.4?

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

При работе с типовым функционалом УТ 11.4 пользователи часто сталкиваются с необходимостью кастомизации печатных форм под фирменный стиль компании. Одним из частых запросов является добавление логотипа в шапку прайс-листа. В ходе анализа данной задачи мы выяснили, что штатного механизма для простой вставки картинки в макет прайс-листа не существует, так как данная форма реализована на базе СКД (Системы Компоновки Данных).

Рассмотрим подробнее, почему возникают сложности и какими способами можно реализовать задуманное, не нарушая работу системы при обновлениях.

Особенности реализации прайс-листа на СКД

Типовой прайс-лист в УТ 11 формируется динамически. Это означает, что макет печатной формы не является статичным объектом, который можно просто открыть в режиме «Предприятие» и отредактировать через меню «Макеты печатных форм». Программный код, заложенный в конфигурации, собирает таблицу «на лету» в процессе выполнения запросов СКД.

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

Способ 1: Использование расширения конфигурации

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

  1. Создайте новое расширение и добавьте в него отчет «Прайс-лист».
  2. В расширении создайте новый макет типа «Табличный документ», в который поместите изображение вашего логотипа.
  3. Используйте механизмы событий, доступные в расширении (например, ПриКомпоновкеРезультата или переопределение функции формирования макета в модуле менеджера).
  4. Программно присоедините область вашего макета с логотипом к табличному документу, который генерирует СКД.

Реализация через расширение выглядит примерно так (логика перехвата вывода):


// Пример логики в модуле менеджера или обработчике события
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
    // 1. Формируем основной прайс-лист
    // 2. Вставляем логотип в начало документа
    МакетЛоготипа = ПолучитьМакет("Логотип");
    ОбластьЛого = МакетЛоготипа.ПолучитьОбласть("ШапкаЛого");
    ДокументРезультат.Вывести(ОбластьЛого);
    // 3. Довыводим остальной результат СКД
КонецПроцедуры

Способ 2: Использование внешней обработки

Если вы хотите избежать внесения изменений в структуру самой конфигурации (даже через расширение), можно воспользоваться внешней обработкой. Этот способ является «самым безопасным» для целостности УТ 11.4.

Проанализируем этот путь:

Рекомендации по выбору метода

Выясним, какой способ предпочтительнее в конкретной ситуации. Если вы планируете долгосрочное использование и хотите, чтобы прайс-лист обновлялся вместе с конфигурацией, выбирайте Расширение. Оно позволяет «подхватывать» изменения, если логика вывода макета в основном объекте не меняется кардинально.

Если же вам требуется максимально гибкий дизайн, который не зависит от типовых ограничений (например, специфическое расположение колонок, нестандартные шрифты, QR-коды), то внешняя обработка или специализированные решения с Инфостарта станут лучшим выходом. Они избавляют от необходимости «бодаться» с жесткими настройками типового отчета СКД.

В любом случае, при работе с печатными формами на СКД помните: любые правки должны быть обоснованы и протестированы, чтобы не нарушить расчет цен и отображение товарных позиций.

← На главную