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