Имя: Пароль:
1C
1С v8
8.2 расшифровка в скд, как получить значение вышестоящей группировки
0 ботаникус
 
23.09.11
12:19
с расшифровкой в скд раньше не работал
в отчете есть две группировки , товар и регистратор
если пользователь кликает по регистратору, я могу получить значение регистратора так
Поля  = Данные.Элементы.Получить(Расшифровка).ПолучитьПоля();
   ПолеДокумента = Поля.найти("Документ");
   Если ПолеДокумента <> Неопределено Тогда
       Док = ПолеДокумента.Значение;
       Если ТипЗнч(Док) = Тип("ДокументСсылка.Расходная")Тогда

а как получить значение вышестоящей группировки (товара)?
1 Axel2009
 
23.09.11
12:20
родитель
2 ботаникус
 
23.09.11
12:28
(1) можно подробнее, что то не могу понять
3 Axel2009
 
23.09.11
12:34
Функция ДобавитьРодителей(ЭлементРасшифровки, ТекущийОтчет, МассивПолейРасшифровки, ВключатьРесурсы = Ложь)  Экспорт
   
   Если ТипЗнч(ЭлементРасшифровки) = Тип("ЭлементРасшифровкиКомпоновкиДанныхПоля") Тогда
       Для каждого Поле Из ЭлементРасшифровки.ПолучитьПоля() Цикл
           ДоступноеПоле = ПолучитьДоступноеПолеПоПолюКомпоновкиДанных(Новый ПолеКомпоновкиДанных(Поле.Поле), ТекущийОтчет);
           Если ДоступноеПоле = Неопределено Тогда
               Продолжить;
           КонецЕсли;
           Если Не ВключатьРесурсы И ДоступноеПоле.Ресурс Тогда
               Продолжить;
           КонецЕсли;
           МассивПолейРасшифровки.Добавить(Поле);
       КонецЦикла;
   КонецЕсли;
   Для каждого Родитель Из ЭлементРасшифровки.ПолучитьРодителей() Цикл
       ДобавитьРодителей(Родитель, ТекущийОтчет, МассивПолейРасшифровки, ВключатьРесурсы);
   КонецЦикла;
   
КонецФункции
4 ботаникус
 
23.09.11
12:43
спасибо, попробую
5 ботаникус
 
23.09.11
12:45
эээ... а можно узнать что есть
ПолучитьДоступноеПолеПоПолюКомпоновкиДанных(Новый ПолеКомпоновкиДанных(Поле.Поле), ТекущийОтчет)
6 Axel2009
 
23.09.11
12:48
Функция ПолучитьДоступноеПолеПоПолюКомпоновкиДанных(ПолеКомпоновкиДанных, ОбластьПоиска) Экспорт
   
   Если ТипЗнч(ПолеКомпоновкиДанных) = Тип("Строка") Тогда
       ПолеПоиска = Новый ПолеКомпоновкиДанных(ПолеКомпоновкиДанных);
   Иначе
       ПолеПоиска = ПолеКомпоновкиДанных;
   КонецЕсли;
   
   Если ТипЗнч(ОбластьПоиска) = Тип("КомпоновщикНастроекКомпоновкиДанных")
       ИЛИ ТипЗнч(ОбластьПоиска) = Тип("ДанныеРасшифровкиКомпоновкиДанных")
       ИЛИ ТипЗнч(ОбластьПоиска) = Тип("НастройкиВложенногоОбъектаКомпоновкиДанных") Тогда
       Возврат ОбластьПоиска.Настройки.ДоступныеПоляВыбора.НайтиПоле(ПолеПоиска);
   Иначе
       Возврат ОбластьПоиска.НайтиПоле(ПолеПоиска);
   КонецЕсли;
   
КонецФункции

весь модуль СтандартныеОтчеты из Бухгалтерии сюда постить будем?