Имя: Пароль:
1C
1С v8
СКД Расшифровка получить сгруппированные значения
0 ZAKZAK
 
28.08.17
15:51
Здравствуйте, гуру!

Есть отчет1 на СКД результирующий запрос которого выдает данные следующего вида:
Номенклатура\серия\Количество\Сумма

В СКД Стоит группировка типа :
Организация
|
Контрагент
  |
  Номенклатура

Требуется расшифровка номенклатуры отчетом2 в который нужно передать параметры "Номенклатура" и Список значений "Серии"
которые свернуты по этой номенклатуре.

Как бы это сделать?


В интернете нашел такой вариант:

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

Ничем не отличается от:

Функция ПолучитьРасшифровкуНаСервере(Расшифровка, ЭтоГруппа = Ложь, ИскомоеПоле)
    Данные = ПолучитьИзВременногоХранилища(ДанныеРасшифровки);
    Поля = Данные.Элементы.Получить(Расшифровка).ПолучитьПоля();
    ПолеПоиск = Поля.Найти(ПолеПоиск);
    Если ПолеПоиск = Неопределено Тогда
        Возврат Неопределено;
    Иначе
        ЭтоГруппа = ПолеПоиск.Значение.ЭтоГруппа;
        Возврат ПолеПоиск.Значение;
    КонецЕсли;
КонецФункции

Спасибо!
1 ZAKZAK
 
28.08.17
15:53
Имеется ввиду результат одной функции от результата другой ничем не отличается