При работе с типовым функционалом УТ 11.4 пользователи часто сталкиваются с необходимостью кастомизации печатных форм под фирменный стиль компании. Одним из частых запросов является добавление логотипа в шапку прайс-листа. В ходе анализа данной задачи мы выяснили, что штатного механизма для простой вставки картинки в макет прайс-листа не существует, так как данная форма реализована на базе СКД (Системы Компоновки Данных).
Рассмотрим подробнее, почему возникают сложности и какими способами можно реализовать задуманное, не нарушая работу системы при обновлениях.
Типовой прайс-лист в УТ 11 формируется динамически. Это означает, что макет печатной формы не является статичным объектом, который можно просто открыть в режиме «Предприятие» и отредактировать через меню «Макеты печатных форм». Программный код, заложенный в конфигурации, собирает таблицу «на лету» в процессе выполнения запросов СКД.
Попытки внесения изменений через стандартные инструменты пользовательского режима часто приводят к тому, что система игнорирует правки или при очередном формировании отчета перезаписывает их типовыми данными. Поэтому для решения задачи нам потребуется вмешательство в алгоритм формирования отчета.
Использование Расширения конфигурации — это наиболее профессиональный и правильный подход, который позволяет сохранить чистоту типового кода и упростить дальнейшее обновление программы. Для добавления логотипа нам необходимо выполнить следующие шаги:
ПриКомпоновкеРезультата или переопределение функции формирования макета в модуле менеджера).Реализация через расширение выглядит примерно так (логика перехвата вывода):
// Пример логики в модуле менеджера или обработчике события
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
// 1. Формируем основной прайс-лист
// 2. Вставляем логотип в начало документа
МакетЛоготипа = ПолучитьМакет("Логотип");
ОбластьЛого = МакетЛоготипа.ПолучитьОбласть("ШапкаЛого");
ДокументРезультат.Вывести(ОбластьЛого);
// 3. Довыводим остальной результат СКД
КонецПроцедуры
Если вы хотите избежать внесения изменений в структуру самой конфигурации (даже через расширение), можно воспользоваться внешней обработкой. Этот способ является «самым безопасным» для целостности УТ 11.4.
Проанализируем этот путь:
Выясним, какой способ предпочтительнее в конкретной ситуации. Если вы планируете долгосрочное использование и хотите, чтобы прайс-лист обновлялся вместе с конфигурацией, выбирайте Расширение. Оно позволяет «подхватывать» изменения, если логика вывода макета в основном объекте не меняется кардинально.
Если же вам требуется максимально гибкий дизайн, который не зависит от типовых ограничений (например, специфическое расположение колонок, нестандартные шрифты, QR-коды), то внешняя обработка или специализированные решения с Инфостарта станут лучшим выходом. Они избавляют от необходимости «бодаться» с жесткими настройками типового отчета СКД.
В любом случае, при работе с печатными формами на СКД помните: любые правки должны быть обоснованы и протестированы, чтобы не нарушить расчет цен и отображение товарных позиций.