Расшифровка на СКД с группировкой
☑
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, помогло!
Закон Брукера: Даже маленькая практика стоит большой теории.