ГоризонтальныеГруппировки = Новый Структура;
ЦветФонаПоУмолчанию = Неопределено;
ИспользоватьЦветаКолонок = Ложь;
Для каждого Макет Из МакетКомпоновки.Макеты Цикл
Попытка
Если ( Макет.Параметры.Количество() > 0 ) И ( Макет.Макет[0].Ячейки.Количество() > 0 ) Тогда
Если ( ТипЗнч( Макет.Макет ) = Тип( "МакетОбластиКомпоновкиДанных" ) ) Тогда
ГоризонтальныйУровень = Макет.Макет[0].Ячейки[0].Оформление.Элементы.Найти( "ГоризонтальныйУровень" ).Использование;
Если ГоризонтальныйУровень Тогда
Если ( ЦветФонаПоУмолчанию = Неопределено ) Тогда
ЦветФонаПоУмолчанию = Макет.Макет[0].Ячейки[0].Оформление.Элементы.Найти( "ЦветФона" ).Значение;
ИначеЕсли ( ЦветФонаПоУмолчанию <> Макет.Макет[0].Ячейки[0].Оформление.Элементы.Найти( "ЦветФона" ).Значение ) Тогда
ИспользоватьЦветаКолонок = Истина;
КонецЕсли;
ГоризонтальныеГруппировки.Вставить( "Смещение" + Формат( ГоризонтальныеГруппировки.Количество(), "ЧН=; ЧГ=0" ), Макет.Макет[0].Ячейки[0].Оформление.Элементы.Найти( "ЦветФона" ).Значение );
КонецЕсли;
КонецЕсли;
КонецЕсли;
Исключение
КонецПопытки;
КонецЦикла;
Если ИспользоватьЦветаКолонок Тогда
РесурсыНачало = 0;
Для каждого Макет Из МакетКомпоновки.Макеты Цикл
Попытка
Если ( Макет.Параметры.Количество() > 0 ) И ( Макет.Макет[0].Ячейки.Количество() > 0 ) Тогда
Если ( ТипЗнч( Макет.Макет ) = Тип( "МакетОбластиКомпоновкиДанных" ) ) Тогда
ВертикальныйУровень = Макет.Макет[0].Ячейки[0].Оформление.Элементы.Найти( "ВертикальныйУровень" ).Использование;
ГоризонтальныйУровень = Макет.Макет[0].Ячейки[0].Оформление.Элементы.Найти( "ГоризонтальныйУровень" ).Использование;
Если НЕ ВертикальныйУровень И НЕ ГоризонтальныйУровень Тогда
РесурсИндекс = Число( СтрЗаменить( Макет.Имя, "Макет", "" ) );
Если ( РесурсыНачало = 0 ) Тогда
РесурсыНачало = РесурсИндекс;
КонецЕсли;
Смещение = ( РесурсИндекс - РесурсыНачало ) % ГоризонтальныеГруппировки.Количество();
Если ( Смещение <> ( ГоризонтальныеГруппировки.Количество() - 1 ) ) Тогда
Для каждого Ячейка Из Макет.Макет[0].Ячейки Цикл
Ячейка.Оформление.Элементы.Найти( "ЦветФона" ).Значение = ГоризонтальныеГруппировки[ "Смещение" + Строка( Смещение ) ];
Ячейка.Оформление.Элементы.Найти( "ЦветФона" ).Использование = Истина;
КонецЦикла;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Исключение
КонецПопытки;
КонецЦикла;
КонецЕсли;