Имя: Пароль:
1C
 
Расшифровка для сводной таблицы
0 Olnaru
 
08.12.08
08:29
Делаю отчет в виде сводной таблицы. Нужно повесить на ячейку расшифровку. Возможно ли это?

Пыталась сделать следующее:
//сводную таблицу помещаю в полетабличногодокумента
табдок=элементыформы.ПолеТабличногоДокумента1;
нашаСводТаб=табдок.ВстроенныеТаблицы.Добавить(Тип("своднаяТаблица"));

//полютабличногодокумента на событие обработкарасшифровки вешаю процедуру обработкарасшифровки
//(элемент,расшифровка,стандартнаяобработка)

//для сводной таблицы задаю свойства:
нашасводтаб.ОбластьДанных.ИспользованиеРасшифровки=ИспользованиеРасшифровкиТабли
чногоДокумента.Ячейка;
нашасводтаб.ОбластьДанных.Расшифровка="СООБЩЕНИЕ"

В процедуру обработкарасшифровки программа даже не заходит...
1 Mix56
 
08.12.08
11:51
Должны соблюдаться следующие условия:
1. Задано имя расшифровки для ячейки или области.
2. При выводе области в табличный документ параметру расшифровки должно быть присвоено значение.
3. В результирующем документе должен обеспечивать запрет редактирования ячеек. Только просомтр или защита = истина
2 Olnaru
 
11.12.08
21:24
Вроде бы все условия соблюла, но не получается.

   табдок=элементыформы.ПолеТабличногоДокумента1;
   нашаСводТаб=табдок.ВстроенныеТаблицы.Добавить(Тип("своднаяТаблица"));
   нашаСводТаб.ИсточникДанных=результат;
   нашасводтаб.ОтображатьПодписиИтогов=Истина;
   нашасводтаб.Строки.Добавить(Нашасводтаб.Поля.контрагент);
   нашасводтаб.Колонки.Добавить(Нашасводтаб.Поля.склад);
   нашасводтаб.Данные.Добавить(нашасводтаб.Поля.сумм);
       нашасводтаб.ОбластьДанных.Расшифровка="ОбработкаРасшифровки";
   нашасводтаб.ОбластьДанных.ПараметрРасшифровки=нашасводтаб.Поля.сумм;
   нашасводтаб.ОбластьДанных.ИспользованиеРасшифровки=ИспользованиеРасшифровкиТабличногоДокумента.Ячейка
   нашасводтаб.ОбластьДанных.Защита=Истина;    

Была бы очень благодарна за пример.
3 Mix56
 
12.12.08
09:25
Извините, не учел что это для сводной таблицы.
А для сводной таблицы можно расшифровку вставить в событие табличного поля "Выбор", тогда все будет выглядить следующим образом:

   табдок=элементыформы.ПолеТабличногоДокумента1;
   нашаСводТаб=табдок.ВстроенныеТаблицы.Добавить(Тип("своднаяТаблица"));
   нашаСводТаб.ИсточникДанных=результат;
   нашасводтаб.ОтображатьПодписиИтогов=Истина;
   нашасводтаб.Строки.Добавить(Нашасводтаб.Поля.контрагент);
   нашасводтаб.Колонки.Добавить(Нашасводтаб.Поля.склад);
   нашасводтаб.Данные.Добавить(нашасводтаб.Поля.сумм);
   //нашасводтаб.ОбластьДанных.Расшифровка="ОбработкаРасшифровки";
   //нашасводтаб.ОбластьДанных.ПараметрРасшифровки=нашасводтаб.Поля.сумм;
   //нашасводтаб.ОбластьДанных.ИспользованиеРасшифровки=ИспользованиеРасшифровкиТабличногоДокумента.Ячейка;
   //нашасводтаб.ОбластьДанных.Защита=Истина;
   
КонецПроцедуры

Процедура ПолеТабличногоДокумента1Выбор(Элемент, Область, СтандартнаяОбработка)
   Если ТипЗнч(Область) = Тип("ОбластьЯчеекТабличногоДокумента") Тогда
       Структура = Элемент.ВстроенныеТаблицы.СводнаяТаблица1.ПолучитьЗначения(Область);
       Если структура <> Неопределено Тогда
           Если Структура.Свойство("контрагент") и структура.свойство("Склад") Тогда
           Склад =    Структура.склад;
           контрагент = структура.контрагент;
           сумм = структура.сумм;
           Сообщить(строка(контрагент)+ " "+строка(склад)+" "+строка(сумм));
           КонецЕсли;
       КонецЕсли;
   КонецЕсли;    
КонецПроцедуры
4 Olnaru
 
12.12.08
19:27
Огромное спасибо! Помогло.