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