Имя: Пароль:
1C
1С v8
Расшифровка на СКД с группировкой
0 Meskon
 
18.11.12
14:30
Добрый день. Делаю свою расшифровку:

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

В Родителе у меня появляется то же значение что и в Номенклатуре, а должен быть Склад - поле группировки над номенклатурой. Как его получить?
1 Пеппи
 
18.11.12
15:57
ДанныеРасшифровки.Элементы[Расшифровка].ПолучитьРодителей()[1].ПолучитьПоля()[0].Значение;
2 Meskon
 
18.11.12
20:06
Индекс находится за границами массива пишет
3 vmv
 
19.11.12
01:53
(2) проверяй на количество коллекции, потом получай по индексу - аксиома
4 mistеr
 
19.11.12
03:08
(0) Я сделал универсальную процедуру, которая собирает все доступные значения со всех родителей.

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

КонецПроцедуры // ЗаполнитьЗначенияПолейРасшифровки()

Вызываю так:

ЭлементРасшифровки = ДанныеРасшифровки.Элементы[Число(Расшифровка)];
ЗначенияПолей = Новый Структура;
ЗаполнитьЗначенияПолейРасшифровки(ЭлементРасшифровки, ЗначенияПолей);

Если в результате в структуре есть нужные поля - делаю расшифровку.
5 Meskon
 
19.11.12
09:16
Спасибо, mister, помогло!
Закон Брукера: Даже маленькая практика стоит большой теории.