Имя: Пароль:
1C
1С v8
Как изменить меню расшифровки отчета? 8.2 СКД управляемые формы.
0 sergei123654
 
01.11.11
12:03
День добрый.
При расшифровке в отчете "всплывает" меню действия расшифровки. Как можно поймать и отредактировать это меню?
Нужно туда добавить еще одну строчку "ОСВ по счету".

Пока убрал расшифровку полностью. Для отображения расшифровки использую СписокЗначений. А вот как использовать стандарное меню расшифровки?

сейчас написано:
&НаКлиенте
Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
   
   СтандартнаяОбработка = Ложь;
   
   СчетРасшифровки = ПолучитьСчетРассшифровки(Расшифровка);
   Если СчетРасшифровки = Неопределено Тогда
       Возврат;
   КонецЕсли;
   
   СписокМенюРасшифровки = Новый СписокЗначений;
   СписокМенюРасшифровки.Добавить(СчетРасшифровки, "Открыть ОСВ по счету " + СчетРасшифровки);
   
   ОбработкаРасшифровки = Новый ОбработкаРасшифровкиКомпоновкиДанных(ДанныеРасшифровки, СписокМенюРасшифровки);
   
   ОткрытьФорму("Отчет.ОборотноСальдоваяВедомостьПоСчету.Форма");
   
КонецПроцедуры
 
&НаСервере
Функция ПолучитьСчетРассшифровки(Расшифровка)
   
   КоллекцияРасшифровки = ПолучитьИзВременногоХранилища(ДанныеРасшифровки);
   КоллекцияПолей         = КоллекцияРасшифровки.Элементы.Получить(Расшифровка).ПолучитьПоля();
   
   ПолеСчет = КоллекцияПолей.Найти("Счет");
                             
   Если ПолеСчет = Неопределено Тогда
       Возврат Неопределено;                
   Иначе
       Возврат ПолеСчет.Значение;
   КонецЕсли;
   
КонецФункции


нагугли на http://help1c.com/faq/view/1055.html

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

Кто знает, подскажите решение задачи.
1 sergei123654
 
01.11.11
12:24
ап
2 sergei123654
 
01.11.11
13:19
вверх
3 also
 
01.11.11
13:32
&НаКлиенте
Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
   
   Перем ВыполненноеДействие;
   Перем ПараметрВыполненногоДействия;
   
   СтандартнаяОбработка    = Ложь;
   ОбработкаРасшифровки    = Новый ОбработкаРасшифровкиКомпоновкиДанных(ДанныеРасшифровки, Новый ИсточникДоступныхНастроекКомпоновкиДанных(URLСхемы));
   
   ДоступныеДействия        = Новый Массив;
   ДоступныеДействия.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.Расшифровать);
   ДоступныеДействия.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.ОткрытьЗначение);
   ДоступныеДействия.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.Отфильтровать);
   ДоступныеДействия.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.Упорядочить);
   ДоступныеДействия.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.Сгруппировать);
   ДоступныеДействия.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.Оформить);
   
   ДополнительныеПункты = Новый СписокЗначений;
   ДополнительныеПункты.Добавить("ДопОтчет", "Какой-то доп отчет");
   
   ОбработкаРасшифровки.ВыбратьДействие(Расшифровка, ВыполненноеДействие, ПараметрВыполненногоДействия, ДоступныеДействия, ДополнительныеПункты);
   
   Если ПараметрВыполненногоДействия <> Неопределено  Тогда
       Если ВыполненноеДействие = ДействиеОбработкиРасшифровкиКомпоновкиДанных.ОткрытьЗначение Тогда
           ОткрытьЗначение(ПараметрВыполненногоДействия);    
       ИначеЕсли ВыполненноеДействие = "ДопОтчет" Тогда
           //Формируем какой-то отчет    
           НовыеНастройки = ПрименитьНастройкиСКД(Расшифровка,ПараметрВыполненногоДействия);
           СформироватьДоОтчет(НовыеНастройки);
       Иначе
           СтандартнаяОбработка = Истина;
       КонецЕсли;
   КонецЕсли;
   
КонецПроцедуры

&НаСервере
Функция ПрименитьНастройкиСКД(Расшифровка,ПараметрВыполненногоДействия)
   
   ОбработкаРасшифровки    = Новый ОбработкаРасшифровкиКомпоновкиДанных(ДанныеРасшифровки, Новый ИсточникДоступныхНастроекКомпоновкиДанных(URLСхемы));
   Возврат ОбработкаРасшифровки.ПрименитьНастройки(Расшифровка,ПараметрВыполненногоДействия);

КонецФункции


URLСхемы - реквизит формы отчета с типом строка, инициализируется так:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
   
   Схема        =Отчеты.ИмяОтчета.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
   URLСхемы    =ПоместитьВоВременноеХранилище(Схема,Новый УникальныйИдентификатор);
   
КонецПроцедуры
4 sergei123654
 
03.11.11
12:53
(3)  also -СПАСТБО. Но никак что то не получается... уже замардовался с этой расшифровкой.

Дает ошибку:

{Отчет.ОборотноСальдоваяВедомость.Форма.ФормаОтчета.Форма(547)}: Ошибка при установке значения атрибута контекста (ОбработкаРасшифровки)
   ОбработкаРасшифровки = Новый ОбработкаРасшифровкиКомпоновкиДанных(ДанныеРасшифровки, ИсточникДоступныхНастроек);
Тип "ОбработкаРасшифровкиКомпоновкиДанных" не может использоваться в данных формы


Отчет строю полностью программно, Группировки, поля, макет все строится программно. Код такой:

&НаСервере
Функция ОбновитьОтчет()
   
   СхемаКомпоновкиДанных = Отчеты.ОборотноСальдоваяВедомость.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
   
   Настройки = Отчет.КомпоновщикНастроек.ПолучитьНастройки();

....ЧЕ ТО ЧЕТО ВЫВОЖУ В ОТЧЕТ.....

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

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

&НаСервере
Функция ПолучитьURLСхемы(Адрес)

   СхемаКомпановкиДанных = ПолучитьИзВременногоХранилища(Адрес);
   URLСхемы = ПоместитьВоВременноеХранилище(СхемаКомпановкиДанных);
   Возврат URLСхемы;

КонецФункции // ()

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

КонецПроцедуры


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

ДанныеРасшифровки - Тип:Строка Значение: "e1cib/tempstorage/599d5251-9831-4758-9f5f-ddfc3d6c920e"

ПОдскажите где туплю, может как то не правильно отчет формирую? хотя без
процедуры РезультатОбработкаРасшифровки расшифровка работает как обычно, в штатном режиме.
5 sergei123654
 
03.11.11
13:12
ОбработкаРасшифровки то же оказывается реквизит формы... Удалил и все заработало). Also спасибо еще раз.