Расшифровка основной Схемы при помощи дополнительной Схемы в СКД

1. kot_tim 13.07.18 13:30 Сейчас в теме
Приветствую.
Создала внешний отчет, в котором две схемы компоновки данных. При расшифровке основной схемы хотела использовать вторую схему. Создала форму отчета, для результата в обработчике написала код. Этот код отрабатывает, но получается что второй отчет не формируется, а туда записывается готовый результат и стандартная обработка расшифровки во втором отчете не отрабатывает (Открыть документ или справочник). Подскажите как правильно задействовать вспомогательную схему компоновки для расшифровки основной схемы. Ответ на форуме найти не смогла.

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

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

    ДополнительныеДействия = Новый СписокЗначений;
    ДополнительныеДействия.Добавить("РасшифровкаПоРегистратору", "Расшифровка по регистратору");
    
    Оп = Новый ОписаниеОповещения("РезультатОбработкаРасшифровки_Продолжение", ЭтаФорма, Расшифровка);
    ОбработкаРасшифровки.ПоказатьВыборДействия(Оп, Расшифровка, ДоступныеДействия, ДополнительныеДействия, Ложь );
	СтандартнаяОбработка = Ложь;

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

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

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

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

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

	Обработка.СкомпоноватьРезультат(Рез);

КонецПроцедуры
Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. VmvLer 13.07.18 13:40 Сейчас в теме
для меня это слишком сложно
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот