Имя: Пароль:
1C
1С v8
СКД. Как определить имя параметра расшифровки?
0 MUXACb
 
23.06.14
15:27
В отчет выводится информация, сгруппированная по сотрудникам. При расшифровке для каждой ячейки с данными должен запускаться свой отчет, в который нужно передать сотрудника
1 MUXACb
 
23.06.14
15:27
+(0) Не УФ
2 acsent
 
23.06.14
15:39
Функция ПолучитьЗначениеРасшифровки(ЭлементРасшифровки, ИмяПоля)
    
    МассивРодителей = Новый Массив;
    Родители = ЭлементРасшифровки.ПолучитьРодителей();
    Пока Родители.Количество() > 0 Цикл
        
        Если ТипЗнч(Родители[0]) = Тип("ЭлементРасшифровкиКомпоновкиДанныхПоля") Тогда
            МассивРодителей.Добавить(Родители[0].ПолучитьПоля());
        КонецЕсли;    
        
        Родители = Родители[0].ПолучитьРодителей();
        
    КонецЦикла;    
    
    Для Счетчик = 1 по МассивРодителей.Количество() Цикл
        
        // Обойдем в обратном порядке, чтобы поставить условия в порядке группировок            
        Поля = МассивРодителей[МассивРодителей.Количество() - Счетчик];
        Для каждого Поле из Поля Цикл
            
            Если Поле.Иерархия Тогда
                Продолжить;
            КонецЕсли;    
            
            Если Поле.Поле = ИмяПоля Тогда
                Возврат Поле.Значение;
            КонецЕсли;
            
        КонецЦикла;    
        
    КонецЦикла;    
            
КонецФункции
3 MUXACb
 
23.06.14
16:54
(2) Код интересный, только возвращает не то что нужно
У меня в макете есть ячейка, в которую я вывожу значение. У ячейки указан параметр расшифровки "РасшифроватьЗначение". При двойном нажатии на этой ячейке мне нужно получить строку: "РасшифроватьЗначение"
4 sanja26
 
23.06.14
17:03
у ТабДок только просмотр установи
5 MUXACb
 
24.06.14
15:39
(4) Только просмотр стоит. Результата нет. Что нужно передавать в ИмяПоля? Может я что не так делаю? Параметр расшифровки задан в макете СКД
6 MUXACb
 
24.06.14
15:59
Ап
7 sanja26
 
24.06.14
16:10
(6) вот так я вывожу картинку
    ПроцессорВывода.НачатьВывод();
    ТаблицаЗафиксирована = Ложь;
    Если ТипЗнч(КомпоновщикНастроек.Настройки.Структура[0]) = Тип("ДиаграммаКомпоновкиДанных") тогда
        // В этом случае не надо ничего фиксировать
        ТаблицаЗафиксирована = Истина;
    КонецЕсли;
    ТабДокумент.ФиксацияСверху = 0;
    
    ПолеПоКоторомуНеобходимоПолучитьЗначение = "Номенклатура";    
    
    Пока истина Цикл
        ЭлементРезультата = ПроцессорКомпоновкиДанных.Следующий();
        
        Если ЭлементРезультата = Неопределено Тогда
            прервать;
        КонецЕсли;    
        ПроцессорВывода.ВывестиЭлемент(ЭлементРезультата);
        Если ЭлементРезультата.ЗначенияПараметров.Количество() > 0 Тогда
            ЗначениеВыводимыхДанных = Неопределено;
            Для каждого ЗначениеПараметра из ЭлементРезультата.ЗначенияПараметров Цикл
                Если ТипЗнч(ЗначениеПараметра.Значение) = Тип("ИдентификаторРасшифровкиКомпоновкиДанных") Тогда
                    ПоляРасшифровки = ДанныеРасшифровки.Элементы[ЗначениеПараметра.Значение].ПолучитьПоля();
                    Для Каждого ПолеРасшифровки из ПоляРасшифровки Цикл
                        Если ПолеРасшифровки.Поле = ПолеПоКоторомуНеобходимоПолучитьЗначение Тогда
                            ЗначениеВыводимыхДанных = ПолеРасшифровки.Значение;
                            Прервать;
                        КонецЕсли;    
                    КонецЦикла;    
                КонецЕсли;    
            КонецЦикла;    
            Если ЗначениеЗаполнено(ЗначениеВыводимыхДанных) Тогда
                Рис = ТабДокумент.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка);
                Рис.РазмерКартинки = РазмерКартинки.Пропорционально;
                Индекс = ТабДокумент.Рисунки.Индекс(Рис);
                Если ЗначениеВыводимыхДанных.ЭтоГруппа Тогда
                    ТабДокумент.Рисунки[Индекс].Картинка = БиблиотекаКартинок.ГруппаИЭлемент;
                Иначе
                    Если ЗначениеЗаполнено(ЗначениеВыводимыхДанных.ОсновноеИзображение) тогда
                        ТабДокумент.Рисунки[Индекс].Картинка = ЗначениеВыводимыхДанных.ОсновноеИзображение.Хранилище.Получить();
                    КонецЕсли;
                КонецЕсли;    
                ВысотаТабДок = ТабДокумент.ВысотаТаблицы;
                ОбластьДляКартинки = ТабДокумент.НайтиТекст("#Картинка");
                ОбластьДляКартинки.ВысотаСтроки = 100;
                ОбластьДляКартинки.ШиринаКолонки = 22;
                Если ОбластьДляКартинки <> Неопределено Тогда
                    ТабДокумент.Рисунки[Индекс].Расположить(ОбластьДляКартинки);    
                    ОбластьДляКартинки.Текст = "%КартинкаДобавлена%"
                КонецЕсли;
            КонецЕсли;    
        КонецЕсли;    
    КонецЦикла;    ПроцессорВывода.ЗакончитьВывод();
8 sanja26
 
24.06.14
16:13
смотри это:
ПолеПоКоторомуНеобходимоПолучитьЗначение = "Номенклатура";
9 sanja26
 
24.06.14
16:15
хотя тут обработка расшифровки)
смотри, что акцент написал...
10 sanja26
 
24.06.14
16:28
ДанныеРасшифровки.Элементы[2].получитьРодителей()[0].ПолучитьПоля()
у мня вывело все поля строки названиями и значениями
11 MUXACb
 
24.06.14
16:37
(10) Это все поля. Их я использую для настройки отборов.
В макете СКД указаны несколько ячеек. В зависимости от названия параметра расшифровки мне нужно открывать свои различные варианты расшифровки
12 sanja26
 
24.06.14
16:51
ПараметрРасшифровки - это свойство табличного документа
ТабДокумент.ТекущаяОбласть.ПараметрРасшифровки
-------------------------------------------------------
ОбластьЯчеекТабличногоДокумента.ПараметрРасшифровки (SpreadsheetDocumentRange.DetailsParameter)
ОбластьЯчеекТабличногоДокумента (SpreadsheetDocumentRange)
ПараметрРасшифровки (DetailsParameter)
Использование:

Чтение и запись.
Описание:

Тип: Строка.
Имя параметра, используемого для заполнения расшифровки при выводе области.

Доступность:

Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение.
13 MUXACb
 
24.06.14
17:00
(12) Смотрел. Возвращает пустую строку
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн