0
ZAKZAK
28.08.17
✎
15:51
|
Здравствуйте, гуру!
Есть отчет1 на СКД результирующий запрос которого выдает данные следующего вида:
Номенклатура\серия\Количество\Сумма
В СКД Стоит группировка типа :
Организация
|
Контрагент
|
Номенклатура
Требуется расшифровка номенклатуры отчетом2 в который нужно передать параметры "Номенклатура" и Список значений "Серии"
которые свернуты по этой номенклатуре.
Как бы это сделать?
В интернете нашел такой вариант:
Функция ПолучитьРекурсивноСтруктуруОтбора(Расшифровка, СтруктураОтбора = Неопределено)
ТекущееПоле = ДанныеРасшифровки.Элементы[Расшифровка];
Если СтруктураОтбора = Неопределено Тогда
СтруктураОтбора = Новый Структура;
КонецЕсли;
ТекущееПоле = ДанныеРасшифровки.Элементы[Расшифровка];
Если ТипЗнч(ТекущееПоле) = Тип("ЭлементРасшифровкиКомпоновкиДанныхПоля") Тогда
Для каждого ТекЭл Из ТекущееПоле.ПолучитьПоля() Цикл
Если не Найти(ТекЭл.Поле,".") > 0 Тогда
СтруктураОтбора.Вставить(ТекЭл.Поле, ТекЭл.Значение);
КонецЕсли;
КонецЦикла;
КонецЕсли;
Для каждого ТекЭл Из ТекущееПоле.ПолучитьРодителей() Цикл
ПолучитьРекурсивноСтруктуруОтбора(ТекЭл.Идентификатор, СтруктураОтбора);
КонецЦикла;
Возврат СтруктураОтбора;
КонецФункции // ПолучитьРекурсивноСтруктуруОтбора()
Ничем не отличается от:
Функция ПолучитьРасшифровкуНаСервере(Расшифровка, ЭтоГруппа = Ложь, ИскомоеПоле)
Данные = ПолучитьИзВременногоХранилища(ДанныеРасшифровки);
Поля = Данные.Элементы.Получить(Расшифровка).ПолучитьПоля();
ПолеПоиск = Поля.Найти(ПолеПоиск);
Если ПолеПоиск = Неопределено Тогда
Возврат Неопределено;
Иначе
ЭтоГруппа = ПолеПоиск.Значение.ЭтоГруппа;
Возврат ПолеПоиск.Значение;
КонецЕсли;
КонецФункции
Спасибо!
|
|