Значение полей в расшифровке СКД

1 Добавил: acsent

Значение полей в расшифровке СКД

СКД расшифровка
&НаСервереБезКонтекста 
Функция ПолучитьЗначениеПоляРасшифровкиНаСервере(ИдентификаторРасшифровки, АдресДанныхРасшифровки)
	
    ДанныеРасшифровки = ПолучитьИзВременногоХранилища(АдресДанныхРасшифровки);
	ЭлементРасшифровки = ДанныеРасшифровки.Элементы[ИдентификаторРасшифровки];
	
	МассивРодителей = Новый Массив;
	МассивРодителей.Добавить(ЭлементРасшифровки.ПолучитьПоля());
	
	Родители = ЭлементРасшифровки.ПолучитьРодителей();
	ЗаполнитьМассивРодителей(МассивРодителей, Родители);
	
	Результат = Новый Соответствие;
	Для Счетчик = 1 по МассивРодителей.Количество() Цикл 
		
		// Обойдем в обратном порядке, чтобы поставить условия в порядке группировок			
		ПоляКомпоновки = МассивРодителей[МассивРодителей.Количество() - Счетчик];
		Для каждого ПолеКомпоновки из ПоляКомпоновки Цикл
			
			//Если ПолеКомпоновки.Иерархия Тогда
			//	Продолжить;
			//КонецЕсли;	
			
			Результат.Вставить(ПолеКомпоновки.Поле, ПолеКомпоновки.Значение);
			
		КонецЦикла;	
		
	КонецЦикла;	
	
	Возврат Результат;
	
КонецФункции

&НаСервереБезКонтекста 
Процедура ЗаполнитьМассивРодителей(МассивРодителей, Родители)
	
	Для каждого Родитель из Родители Цикл
		
		Если ТипЗнч(Родитель) = Тип("ЭлементРасшифровкиКомпоновкиДанныхПоля") Тогда
			МассивРодителей.Добавить(Родитель.ПолучитьПоля());
			
		ИначеЕсли ТипЗнч(Родитель) = Тип("ЭлементРасшифровкиКомпоновкиДанныхГруппировка") Тогда
			
		КонецЕсли;	
		
		Родители = Родитель.ПолучитьРодителей();
		Если Родители.Количество() > 0 Тогда
			ЗаполнитьМассивРодителей(МассивРодителей, Родители);
		КонецЕсли;	
		
	КонецЦикла;	

КонецПроцедуры	
Назад к списку

Комментарии

FastCode - сервис поиска кода 1С

Уже более 1000 разработчиков используют FastCode в работе!