Часто возникает необходимость получать поля группировке при расшифровке в отчете СКД. Я немного упростил себе эту задачу и написал функцию. Под катом код для управляемых форм и обычных
Для обычного приложения:
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22  | 
						Процедура ПолучитьЗначенияПолейГруппировок(ПолеИлиГруппировка,СтруктураПолей) 	МассивРодителей = ПолеИлиГруппировка.ПолучитьРодителей(); 	Для Каждого Стр из МассивРодителей Цикл 		Если ТипЗнч(Стр) = Тип("ЭлементРасшифровкиКомпоновкиДанныхГруппировка") Тогда  			ПолучитьЗначенияПолейГруппировок(Стр,СтруктураПолей); 		ИначеЕсли ТипЗнч(Стр) = Тип("ЭлементРасшифровкиКомпоновкиДанныхПоля") Тогда 			ПоляГруппировки = Стр.ПолучитьПоля(); 			Для Каждого гСтр из ПоляГруппировки Цикл 				Если СтруктураПолей.Свойство(гСтр.Поле) Тогда 					Если Не ЗначениеЗаполнено(СтруктураПолей[гСтр.Поле]) Тогда 						СтруктураПолей[гСтр.Поле] = гСтр.Значение; 					КонецЕсли; 				КонецЕсли; 				ПолучитьЗначенияПолейГруппировок(Стр,СтруктураПолей); 			КонецЦикла; 		КонецЕсли; 	КонецЦикла; КонецПроцедуры СтруктураПолейГруппировок = Новый Структура("Документ, Поставщик"); ПолучитьЗначенияПолейГруппировок(ДанныеРасшифровки.Элементы[Область.Расшифровка],СтруктураПараметров);  | 
					
Для управляемых форм:
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28  | 
						&НаСервере Процедура ПолучитьСтруктуруВозврата(ПолеИлиГруппировка,СтруктураПолей) 	МассивРодителей = ПолеИлиГруппировка.ПолучитьРодителей(); 	Для Каждого Стр из МассивРодителей Цикл 		Если ТипЗнч(Стр) = Тип("ЭлементРасшифровкиКомпоновкиДанныхГруппировка") Тогда  			ПолучитьСтруктуруВозврата(Стр,СтруктураПолей); 		ИначеЕсли ТипЗнч(Стр) = Тип("ЭлементРасшифровкиКомпоновкиДанныхПоля") Тогда 			ПоляГруппировки = Стр.ПолучитьПоля(); 			Для Каждого гСтр из ПоляГруппировки Цикл 				Если СтруктураПолей.Свойство(гСтр.Поле) Тогда 					Если Не ЗначениеЗаполнено(СтруктураПолей[гСтр.Поле]) Тогда 						СтруктураПолей[гСтр.Поле] = гСтр.Значение; 					КонецЕсли; 				КонецЕсли; 				ПолучитьСтруктуруВозврата(Стр,СтруктураПолей); 			КонецЦикла; 		КонецЕсли; 	КонецЦикла; КонецПроцедуры &НаСервере Функция ПолучитьДанныеРасшифровки(Расшифровка,СтруктураВозврата); 	Данные = ПолучитьИзВременногоХранилища(ДанныеРасшифровки);  	ПолучитьСтруктуруВозврата(Данные.Элементы[Расшифровка],СтруктураВозврата); КонецФункции // ПолучитьДанныеРасшифровки() СтруктураВозврата = Новый Структура("КонтактноеЛицо,График"); ПолучитьДанныеРасшифровки(Расшифровка,СтруктураВозврата);  |