Имя: Пароль:
1C
1С v8
Не работает расшифровка в СКД.
0 Босечка
 
26.12.12
13:13
Нажимаю на табл. поле, вместо эелемента справочника выдается сообщение со значением этой ячейки.

Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
   
   Перем ВыполненноеДействие;
   СтандартнаяОбработка = Ложь;
   //Создадим и инициализируем обработчик расшифровки                  

   ОбработкаРасшифровки = Новый ОбработкаРасшифровкиКомпоновкиДанных(ДанныеРасшифровки, Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
                                                                       
   ДоступныеДействия = Новый Массив();
   ДоступныеДействия.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.ОткрытьЗначение);
   ДоступныеДействия.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.Упорядочить);
   ДоступныеДействия.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.Расшифровать);
   ДоступныеДействия.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.Отфильтровать);
   ДоступныеДействия.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.Сгруппировать);
   ДоступныеДействия.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.Оформить);

   
   Настройки = ОбработкаРасшифровки.Выполнить(Расшифровка, ВыполненноеДействие, ДоступныеДействия);
   
   Если Настройки <> Неопределено Тогда
       //пользователь выбрал действие, для которого нужно менять настройки

       Если ВыполненноеДействие = ДействиеОбработкиРасшифровкиКомпоновкиДанных.Упорядочить Тогда
           КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);
           ДействияФормыДействие();
       ИначеЕсли ВыполненноеДействие = ДействиеОбработкиРасшифровкиКомпоновкиДанных.ОткрытьЗначение Тогда    
//как найти ссылку на документ?            


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

           Ссылка.ПолучитьФорму().Открыть();

       Иначе
           //при других действиях создадим новый отчет, откроем форму, сформируем отчет в ней

           ЭтаФорма.Открыть();
           КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);
           ДействияФормыДействие();
       КонецЕсли;
   КонецЕсли;
       
КонецПроцедуры
1 Босечка
 
26.12.12
13:14
И потом стандартное меню Расшифровать, Оформить и т.д., а Открыть недоступно (серое).
2 Босечка
 
26.12.12
13:15
Процедура ДействияФормыДействие()
   
    УстановитьНастройки();
   СхемаКомпоновкиДанных = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
       СхемаКомпоновкиДанных.Параметры.НачалоПериода.Значение = НачалоДня(НачалоПериода);
       СхемаКомпоновкиДанных.Параметры.КонецПериода.Значение = КонецДня(КонецПериода);

       Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;
       ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
       
       КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
       ДанныеРасшифровки=Новый ДанныеРасшифровкиКомпоновкиДанных;
       
       МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,Настройки,ДанныеРасшифровки);//а в этой строке, тоже взятой из Хрусталевой я передаю кажется Намтсройку с незаполненными параметрами
       ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
//        ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,,ДанныеРасшифровки, Истина);
         ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,,ДанныеРасшифровки);


       ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
       ПроцессорВывода.УстановитьДокумент(ЭлементыФормы.Результат);
       ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
       
       ЭлементыФормы.Результат.ИмяПараметровПечати="ПараметрыПеч";
       
       ЭлементыФормы.Результат.Очистить();
   
   СкомпоноватьРезультат(ЭлементыФормы.Результат,ДанныеРасшифровки);    
   
КонецПроцедуры
Процедура РезультатВыбор(Элемент, Область, СтандартнаяОбработка)
   ИндексРасшифровки=Число(Область.Расшифровка);
   ОбработкаРасшифровки=Новый ОбработкаРасшифровкиКомпоновкиДанных(ДанныеРасшифровки, Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
   ЭлементРасшифровкиДанных=ДанныеРасшифровки.Элементы[ИндексРасшифровки];
   ЭлементРасшифровкиДанныхПоля=ЭлементРасшифровкиДанных.ПолучитьПоля()[0];
   ОбработкаРасшифровки.ОткрытьЗначение(ЭлементРасшифровкиДанных.Идентификатор, Новый ПолеКомпоновкиДанных(ЭлементРасшифровкиДанныхПоля.Поле));
   
   
   
КонецПроцедуры
3 Александр_
Тверь
 
26.12.12
13:16
//Формируем макет, с помощью компоновщика макета  
   КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;

   //Передаем в макет компоновки схему, настройки и данные расшифровки  
   МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,КомпоновщикНастроек.Настройки, ДанныеРасшифровки);

   //Выполним компоновку с помощью процессора компоновки  
   ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
   ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,,ДанныеРасшифровки,Истина);

   //Очищаем поле табличного документа  
   ЭлементыФормы.Результат.Очистить();
   
   //Выводим результат в табличный документ  
   ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
   ПроцессорВывода.УстановитьДокумент(ЭлементыФормы.Результат);
   ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);


вот так работает.
4 Александр_
Тверь
 
26.12.12
13:18
возможно у тебя вот эта строка лишняя:
ДанныеРасшифровки=Новый ДанныеРасшифровкиКомпоновкиДанных;

ибо

Расширение формы отчета (Report form extension)
ДанныеРасшифровки (DetailsData)
Использование:
Чтение и запись.
Описание:
Тип: ДанныеРасшифровкиКомпоновкиДанных. Содержит данные расшифровки последнего выполненного отчета.
Недоступно на сервере 1С:Предприятие. Не используется в модуле внешнего соединения


а ты затираешь их
5 Пеппи
 
26.12.12
13:21
(4) да вроде не лишняя, скорее всего процедура не привязана к событию
6 Босечка
 
26.12.12
13:23
(5) Какая процедура не привязана и к какому событию?
7 Босечка
 
26.12.12
13:27
Убрала строку, все работает также (в смысле не работает)
8 Пеппи
 
26.12.12
13:29
у тебя в (0) процедура отрабатывает, все верно. у тебя открывается элемент расшифровки. в общем процедуру дорабатывай как тебе нужно
9 Босечка
 
26.12.12
13:54
А как ее дорабатывать? Если бы знала, не спрашивала бы.