Имя: Пароль:
1C
 
УФ СКД Расшифровка вариантом отчета
0 Leon9988
 
27.01.23
08:27
Добрый день.
Есть отчет на СКД (УФ). Нужно сделать расшифровку в данном отчете другим его вариантом. Для расшифровки будет выводиться отдельная форма отчета.
Вот такой код (взят из статьи v8: СКД. УФ. Пример расшифровки вариантом отчета.

               ФормаОтчетаРасшифровки = ПолучитьФорму("Отчет.ОтчетПоПоставке.ФормаРасшифровки", Новый Структура("КлючВарианта", "Вариант расшифровки"), ЭтаФорма, Истина);
                
               // перенесем дату отчета в отчет-расшифровку

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

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

Возникает проблема: после формирования расшифровки отчета при повторном открытии "основного" отчета в его основную форму отчета загрузились настройки варианта расшифровки... подскажите, пжл, как это обойти? Или нужно перед формированием расшифровки получить текущие настройки компоновки и потом их заново подгрузить в компоновщик на основной форме отчета - как-то кривенько что ли...