Понадобилось в созданный ранее отчёт добавить вторую схему компоновки данных.
с выбором варианта на форме отчёта.
Методика обработки смены схемы и формирование отчёта по выбранной схеме многократно и достаточно подробно описана на просторах сети. Поэтому весь необходимый для этого код заработал сразу.
Но обнаружилась проблема с макетами оформления. В обеих СКД был задан макет оформления "Основной". Но вместо привычного оформления в песочных тонах отчёты получались бесцветными. Не как "Без оформления" - там вообще нет границ ячеек.
А с границами, но без цвета группировок.
Что характерно, если для оформления выбрать другой макет - Арктика, Зеленый, Античный ... - оформление работает корректно, с цветовой раскраской.
Яндексирование показало, что это известная фича, и с подобной ситуацией сталкивались многие разработчики. Но во всех описанных случаях не были приведены подробные рекомендации выхода из положения.
Поиск решения привел к тому, что в макеты отчёта был добавлен макет оформления.
Для макета оформления был задан стандартный макет "Основной".
В модуле объекта в процедуру ПриКомпоновкеРезультата были добавлены необходимые строки.
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
НастройкиКомпоновкиДанных = КомпоновщикНастроек.ПолучитьНастройки();
МакетОформления = ЭтотОбъект.ПолучитьМакет("МакетОформления");
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиКомпоновкиДанных, ДанныеРасшифровки, МакетОформления);
И казалось бы всё должно работать! Но нет! Отчёт по обеим СКД упорно продолжал формироваться без цветового оформления.
В результате экспериментов отчёт всё таки заработал как надо. Оказалось, что нужно было всего-то вообще отключить макет оформления в обеих СКД.
Результат.
Мораль сего опуса проста. Макет оформления, заданный в СКД имеет приоритет перед макетом оформления заданным программно в процедуре ПриКомпоновкеРезультата в модуле объекта. То есть если хотите, чтобы применился макет заданный программно, отключите макет оформления в выбранной СКД.
P.S. Макет оформления можно не добавлять, если у вас в конфигурации есть общий макет с нужным оформлением. Например, в КА 2 есть аналог приведённого макета - общий макет "ОформлениеОтчетовБежевый". В этом случае изменится лишь строка получения макета.
МакетОформления = ПолучитьОбщийМакет("ОформлениеОтчетовБежевый");