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