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