Имя: Пароль:
1C
 
Идентификатор внешнего отчета
0 SmirnAlex
 
06.12.16
12:33
Добрый день!
Использую такой код:
    ПараметрыИсполненияОтчета = Отчет[ИдентификаторОбъекта].ПолучитьПараметрыИсполненияОтчета();
    Если ПараметрыИсполненияОтчета.Свойство("ИспользоватьРасширенныеПараметрыРасшифровки")
        И ПараметрыИсполненияОтчета.ИспользоватьРасширенныеПараметрыРасшифровки Тогда
        Отчет[ИдентификаторОбъекта].ЗаполнитьПараметрыРасшифровкиОтчета(Адрес, Расшифровка, ПараметрыРасшифровки);
        
        Возврат ПараметрыРасшифровки;
    КонецЕсли;

во внутреннем отчете работает прекрасно (это и понятно). Чем мне заменить функцию Отчет, что бы код работал во внешнем отчете?
1 quest
 
06.12.16
12:34
ЭтотОбъект
2 Antony8x
 
06.12.16
12:57
(0) посмотреть как главный реквизит называется и им заменить
3 SmirnAlex
 
06.12.16
14:14
Главный объект называется "Отчет"
4 SmirnAlex
 
06.12.16
14:30
Ребята, выручайте! Второй день пытаюсь запустить вот это чудо:


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

&НаКлиенте
Функция ПолучитьИмяФормыПоИДРасшифровки(ИДРасшифровки)
    
    ИмяОбъекта = ИДРасшифровки;
    ШаблонИмениФормы = "Отчет.%ИмяОбъекта%.Форма.ФормаОтчета";
    
    Если ИДРасшифровки = "ОборотыСчетаПоДням"
        Или ИДРасшифровки = "ОборотыСчетаПоМесяцам" Тогда
        ИмяОбъекта = "ОборотыСчета";
    КонецЕсли;
    
    Возврат СтрЗаменить(ШаблонИмениФормы, "%ИмяОбъекта%", ИмяОбъекта);
    
КонецФункции

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

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

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


Текст запроса СКД - просто вывод списка номенклатуры. Но это не важно, мне лишь бы расшифровка появилась.
Независимо от того, куда вы едете — это в гору и против ветра!