Имя: Пароль:
1C
 
Не могу получить группировки верхнего уровня при расшифровке в СКД
0 Альбатрос
 
11.12.15
05:12
В отчете 2 уровня группировки.
Пытаюсь расшифровать непосредственно само поле и получить значения верхних уровней группировки:

МассивРодителей = ДанныеРасшифровки.Элементы[Расшифровка].ПолучитьРодителей();


Так вот, МассивРодителей.Количество() всегда равно 1, какое поле я бы не пытался расшифровать.
А МассивРодителей[0].ПолучитьПоля() содержит один элемент - данные конкретно того поля, которое я пытаюсь расшифровать.

Что не так, как правильно надо?
1 Альбатрос
 
11.12.15
06:27
Вопрос снят :)
2 Альбатрос
 
11.12.15
10:06
Чтоб не плодить тем. Следующая проблема:
При расшифровке поля отчета у меня открывается другой отчет на СКД с заданными отборами и параметрами и сразу формируется.
Но почему-то в нем не работает расшифровка. Выдает ошибку:
Ошибка информации расшифровки: не найден элемент расшифровки.

Что нужно ему еще задать?

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

    ПроцессорВывода.НачатьВывод();
    
    ПроцессорВывода.ЗакончитьВывод();
    
    
    ТЗРасходы = ПроцессорВывода.Вывести(ПроцессорКомпоновки);    
    ТабРасходы = Результат;
    ТабРасходы.ПоказатьУровеньГруппировокСтрок(1);


    ФормаОтчета.Открыть();
    
    КонецЕсли;
КонецПроцедуры
3 aleks_default
 
11.12.15
10:25
МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(СхемаСКД,ОтчетРасходов.КомпоновщикНастроек.Настройки, ФормаОтчета.ДанныеРасшифровки)//,,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));

    ПроцессорКомпоновки.Инициализировать(МакетКомпоновкиДанных,,ДанныеРасшифровки, Истина);

почему тут разные данные расшифровки?
4 Альбатрос
 
11.12.15
10:25
Апну, решения пока не нашел.
5 Альбатрос
 
11.12.15
10:26
(3) Млять, Спасибо!
6 Альбатрос
 
11.12.15
10:27
Час голову ломал, а все тупой копипаст виноват!
7 aleks_default
 
11.12.15
10:32
млять, пажалста:)
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой