Имя: Пароль:
1C
1С v8
Расшифровка в СКД УФ
,
0 1СКонсультант
 
24.03.14
17:11
Есть отчет, хочу добавить дополнительное меню расшифровки. Прописываю:
Перем ВыполненноеДействие, ПараметрВыполненногоДействия;

    СтандартнаяОбработка = Ложь;
    
    СписокДополнительныхДействий = Новый СписокЗначений;
    
    ДоступныеДействия = Новый Массив;
    ДоступныеДействия.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.Расшифровать);
    ДоступныеДействия.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.ОткрытьЗначение);
    
    ИсточникНастроек = Новый ИсточникДоступныхНастроекКомпоновкиДанных(Отчет);      
    МенюРасшифровки  = Новый ОбработкаРасшифровкиКомпоновкиДанных(ДанныеРасшифровки, ИсточникНастроек);           
    МенюРасшифровки.ВыбратьДействие(Расшифровка,ВыполненноеДействие,ПараметрВыполненногоДействия,,СписокДополнительныхДействий);
После этого не работает стандартный пункт меню  расшифровать. Что не так? Или его теперь только вручную прописывать?
1 1СКонсультант
 
24.03.14
17:33
все уже по домам, что ли?
2 VikingKosmo
 
24.03.14
17:37
СтандартнаяОбработка = Ложь;
ни о чем не говорит?
3 1СКонсультант
 
24.03.14
17:54
(2) говорит, но если ее не ставить, то выскакивает два раза диалог расшифровки(
4 vmv
 
24.03.14
17:57
(3) значит нужно скопировать стандартные расшифровки, добавить свои и все это добро в меню расшифровки

просто, красиво, логично да
5 1СКонсультант
 
24.03.14
18:12
(4) переведите? Что есть стандартные расшифровки?
6 1СКонсультант
 
24.03.14
22:20
ап
7 Ksandr
 
24.03.14
22:21
Доступа к ИТС я так полагаю нет?
8 1СКонсультант
 
24.03.14
22:51
(7) есть
9 1СКонсультант
 
25.03.14
13:04
Ладно, я так понимаю стандартная расшифровка не работает в таком случае. Как мне обработать расшифровку стандартную во внешнем отчете? я получил настройки применил их и дальше забтычка в том, что мне нужно открыть новый этот же внешний отчет
10 1СКонсультант
 
25.03.14
18:35
&НаКлиенте
Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
    
    Перем ВыполненноеДействие, ПараметрВыполненногоДействия;

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

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

&НаСервереБезКонтекста
Функция ПодключитьВнешнийОтчет(АдресВХранилищеДляФайла)
    
    Возврат ВнешниеОтчеты.Подключить(АдресВХранилищеДляФайла,"РасшифровкаОтчета");
    
КонецФункции
11 1СКонсультант
 
25.03.14
18:36
(10) отчет открывается но выдает не те данные которые в настройках отчета(
12 1СКонсультант
 
25.03.14
18:47
он будто параметры не видит(
13 1СКонсультант
 
25.03.14
18:52
Я так понял где то что то не вижу вот здесь  
Форма = ПолучитьФорму("ВнешнийОтчет." + ИмяОтчет + ".Форма.ФормаОтчета");
            Форма.Отчет.КомпоновщикНастроек.ЗагрузитьНастройки(НастройкиРасшифровки);
            Форма.ДанныеРасшифровки = ДанныеРасшифровки;
            Форма.КлючНазначенияИспользования = Расшифровка;
            Форма.СкомпоноватьРезультат(РежимКомпоновкиРезультата.Авто);
            Форма.Открыть();
14 1СКонсультант
 
25.03.14
19:06
кто нить на мисте скд знает?
15 1СКонсультант
 
25.03.14
19:58
Продолжу тихо сам с собой))
Получается настройки передаются. Но по ходу он запоминает пользовательские настройки
16 1СКонсультант
 
25.03.14
20:20
а не пользовательские настройки тоже работают
17 1СКонсультант
 
25.03.14
20:21
все равно выводит какую то хрень вместо загруженных настроек
18 EvgeniuXP
 
25.03.14
23:05
нихто тут ничего не знает.
19 zladenuw
 
25.03.14
23:12
20 1СКонсультант
 
26.03.14
18:16
все оказалось намного проще) Читайте книги, ибо в них мудрость))))
http://v8.1c.ru/metod/books/book.jsp?id=389
21 1СКонсультант
 
26.03.14
18:17
(20) стр 215-216. Только маленькая проблемка - у мну отчет внешний, поэтому получилось что то типа такого:
&НаСервереБезКонтекста
Функция ПодключитьВнешнийОтчет(АдресВХранилищеДляФайла,ИмяФайлаРасшифровки)
    
    Возврат ВнешниеОтчеты.Подключить(АдресВХранилищеДляФайла,ИмяФайлаРасшифровки);
    
КонецФункции    

&НаСервере
Функция ПолучитьИмяФайла()
    
    Возврат РеквизитФормыВЗначение("Отчет").ИспользуемоеИмяФайла;
    
КонецФункции    


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

    СтандартнаяОбработка = Ложь;    
    
    ИсточникНастроек = Новый ИсточникДоступныхНастроекКомпоновкиДанных(Отчет);      
    МенюРасшифровки  = Новый ОбработкаРасшифровкиКомпоновкиДанных(ДанныеРасшифровки, ИсточникНастроек);           
    МенюРасшифровки.ВыбратьДействие(Расшифровка,ВыполненноеДействие,ПараметрВыполненногоДействия);
    
    Если ВыполненноеДействие = ДействиеОбработкиРасшифровкиКомпоновкиДанных.ОткрытьЗначение Тогда
        
        ОткрытьЗначение(ПараметрВыполненногоДействия);
        
    Иначе
        
        ИмяФайлаОтчета = ПолучитьИмяФайла();
        ИмяФайлаРасшифровки = ПолучитьИмяВременногоФайла("erf");
        КопироватьФайл(ИмяФайлаОтчета,ИмяФайлаРасшифровки);
        ФайлРасшифровки = Новый Файл(ИмяФайлаРасшифровки);
        Если Не ФайлРасшифровки.Существует() Тогда
            Возврат;
        КонецЕсли;
                
        АдресВХранилищеДляФайла = "";
        ФалйПомещен = ПоместитьФайл(АдресВХранилищеДляФайла,ИмяФайлаРасшифровки,,Ложь);
        
        Если ФалйПомещен Тогда
            
            ПараметрыФормы = Новый Структура;
            ПараметрыФормы.Вставить("СформироватьПриОткрытии",Истина);
            ПараметрыФормы.Вставить("Расшифровка",Новый ОписаниеОбработкиРасшифровкиКомпоновкиДанных(ДанныеРасшифровки,Расшифровка,ПараметрВыполненногоДействия));
    
            ИмяОтчет = ПодключитьВнешнийОтчет(АдресВХранилищеДляФайла,ФайлРасшифровки.ИмяБезРасширения);
            Форма = ОткрытьФорму("ВнешнийОтчет." + ИмяОтчет + ".Форма.ФормаОтчета",параметрыформы);
            
        КонецЕсли;    
            
        
    КонецЕсли;    
    
КонецПроцедуры
22 1СКонсультант
 
26.03.14
18:17
(19) эту ссылку кстати тоже использовал, спасибо.
23 1СКонсультант
 
26.03.14
18:18
(21) вот по этому варианту может можно как то проще сделать?
24 1СКонсультант
 
26.03.14
19:34
Обнаружил что расшифровка расшифровки не работает(((((
25 1СКонсультант
 
26.03.14
19:42
В общем вопрос - есть отчет ВНЕШНИЙ на скд. Нужно свою расшифровку сделать, что бы открывалась тоже в внешнем отчете. Не получается (