(3) Я делал так:
1. Из общих форм конфигурации копируем ФормаОтчета в наш отчет, делаем эту форму формой отчета;
2. В модуле формы в ПриЗагрузкеВариантаНаСервере() делаем доработку настроек компоновщика для режима расшифровки
примерно так:
Процедура ПриЗагрузкеВариантаНаСервере(НовыеНастройкиКД)
// Ничего не делать если отчет не на СКД и никаких настроек не загружено.
Если Не РежимВариантаОтчета() И НовыеНастройкиКД = Неопределено Тогда
Возврат;
КонецЕсли;
// Загрузка фиксированных настроек для режима расшифровки.
Если РежимРасшифровки Тогда
ОтчетНаименованиеТекущегоВарианта = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(НовыеНастройкиКД.ДополнительныеСвойства, "ВариантНаименование");
Если Параметры <> Неопределено
И Параметры.Свойство("Расшифровка")
И ТипЗнч(Параметры.Расшифровка) = Тип("ОписаниеОбработкиРасшифровкиКомпоновкиДанных") Тогда
Отчет.КомпоновщикНастроек.ЗагрузитьФиксированныеНастройки(Параметры.Расшифровка.ПрименяемыеНастройки);
Отчет.КомпоновщикНастроек.ФиксированныеНастройки.ДополнительныеСвойства.Вставить("РежимРасшифровки", Истина);
КонецЕсли;
Если КлючТекущегоВарианта = Неопределено Тогда
КлючТекущегоВарианта = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(НовыеНастройкиКД.ДополнительныеСвойства, "КлючВарианта");
КонецЕсли;
// + Крынецкий (07.03.2023)
КомпоновкаДанныхСервер.УдалитьВыбранноеПолеИзВсехНастроекОтчета(Отчет.КомпоновщикНастроек, "МУ.ВалютнаяСуммаКонечныйОстаток");
КомпоновкаДанныхСервер.УдалитьВыбранноеПолеИзВсехНастроекОтчета(Отчет.КомпоновщикНастроек, "МУ.СуммаКонечныйОстаток");
КомпоновкаДанныхСервер.УдалитьВыбранноеПолеИзВсехНастроекОтчета(Отчет.КомпоновщикНастроек, "БУ.ВалютнаяСуммаКонечныйОстаток");
КомпоновкаДанныхСервер.УдалитьВыбранноеПолеИзВсехНастроекОтчета(Отчет.КомпоновщикНастроек, "БУ.СуммаКонечныйОстаток");
КомпоновкаДанныхСервер.УдалитьВыбранноеПолеИзВсехНастроекОтчета(Отчет.КомпоновщикНастроек, "Разница.ВалютнаяСумма");
КомпоновкаДанныхСервер.УдалитьВыбранноеПолеИзВсехНастроекОтчета(Отчет.КомпоновщикНастроек, "Разница.СуммаОстатка");
// - Крынецкий (07.03.2023)
КонецЕсли;
Показать
p.s. внезапно обнаружил, что на форуме коды оформления [code] и [1C-CODE] работают по-разному :-)
(1) Кроме варианта перехвата при компоновке результата - других вариантов не вижу. В типовых есть еще расшифровка одного отчета другим, но это уже слишком.
(3) Я делал так:
1. Из общих форм конфигурации копируем ФормаОтчета в наш отчет, делаем эту форму формой отчета;
2. В модуле формы в ПриЗагрузкеВариантаНаСервере() делаем доработку настроек компоновщика для режима расшифровки
примерно так:
Процедура ПриЗагрузкеВариантаНаСервере(НовыеНастройкиКД)
// Ничего не делать если отчет не на СКД и никаких настроек не загружено.
Если Не РежимВариантаОтчета() И НовыеНастройкиКД = Неопределено Тогда
Возврат;
КонецЕсли;
// Загрузка фиксированных настроек для режима расшифровки.
Если РежимРасшифровки Тогда
ОтчетНаименованиеТекущегоВарианта = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(НовыеНастройкиКД.ДополнительныеСвойства, "ВариантНаименование");
Если Параметры <> Неопределено
И Параметры.Свойство("Расшифровка")
И ТипЗнч(Параметры.Расшифровка) = Тип("ОписаниеОбработкиРасшифровкиКомпоновкиДанных") Тогда
Отчет.КомпоновщикНастроек.ЗагрузитьФиксированныеНастройки(Параметры.Расшифровка.ПрименяемыеНастройки);
Отчет.КомпоновщикНастроек.ФиксированныеНастройки.ДополнительныеСвойства.Вставить("РежимРасшифровки", Истина);
КонецЕсли;
Если КлючТекущегоВарианта = Неопределено Тогда
КлючТекущегоВарианта = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(НовыеНастройкиКД.ДополнительныеСвойства, "КлючВарианта");
КонецЕсли;
// + Крынецкий (07.03.2023)
КомпоновкаДанныхСервер.УдалитьВыбранноеПолеИзВсехНастроекОтчета(Отчет.КомпоновщикНастроек, "МУ.ВалютнаяСуммаКонечныйОстаток");
КомпоновкаДанныхСервер.УдалитьВыбранноеПолеИзВсехНастроекОтчета(Отчет.КомпоновщикНастроек, "МУ.СуммаКонечныйОстаток");
КомпоновкаДанныхСервер.УдалитьВыбранноеПолеИзВсехНастроекОтчета(Отчет.КомпоновщикНастроек, "БУ.ВалютнаяСуммаКонечныйОстаток");
КомпоновкаДанныхСервер.УдалитьВыбранноеПолеИзВсехНастроекОтчета(Отчет.КомпоновщикНастроек, "БУ.СуммаКонечныйОстаток");
КомпоновкаДанныхСервер.УдалитьВыбранноеПолеИзВсехНастроекОтчета(Отчет.КомпоновщикНастроек, "Разница.ВалютнаяСумма");
КомпоновкаДанныхСервер.УдалитьВыбранноеПолеИзВсехНастроекОтчета(Отчет.КомпоновщикНастроек, "Разница.СуммаОстатка");
// - Крынецкий (07.03.2023)
КонецЕсли;
Показать
p.s. внезапно обнаружил, что на форуме коды оформления [code] и [1C-CODE] работают по-разному :-)
Теоритически всё было бы просто.
Добавляются детальные записи с необходимым составом ресурсов.
Отключается использование.
Устанавливаем имя например "Расшифровка"
Добавляем макет где указываем параметр расшифровки детальными записями и вуаля.
Но практически я полтора дня убил поняв что есть ещё куда развиваться 1С в СКД.
(10) Действительно это работает, но есть нюансы:
1. Таким способом можно сделать лишь фиксированный макет группировки, т.е. заголовки полей будут отображаться только те, что нарисованы в макете;
2. Надо дополнительно делать макет Заголовка группировки, Макет группировки с типом: Общий итог заголовок / подвал
(5) тогда одной схемой тут не обойтись. Это ведь другой вариант отчета.
Есть много примеров расшифровки другим отчетом.
Как вариант:
https://infostart.ru/public/165599/
Если макет СКД настроить, как таблицу и ресурсы разместить в отдельных колонках, то расшифровка выбранного ресурса выведет только колонки группы этого ресурса.