Имя: Пароль:
1C
 
СКД: Программно переключить макет в ФормеОтчета
0 bvb
 
05.02.25
18:08
Добрый вечер

работаю с ФормойОтчета

В стандартном варианте,  на кнопке выпадающего списка, выпадают варианты отчета, определенные в вариантах отчета основной схемы компоновки данных отчета.

Нужно добавить вариант, при выборе которого выбирался другой макет СКД отчета. Ну и вариант соответственно из этого макета.

Скажите пожалуйста : можно  ли это реализовать в принципе используя ФормеОтчета из БСП ?

Если ДА Тогда - отошлите на пример из типовых

Если НЕТ Тогда - посоветуйте альтернативу.
1 Волшебник
 
05.02.25
18:45
Тупые боты
2 DiMel_77
 
05.02.25
19:10
(0) Мне тоже кажется что это бот, но подскажу в последний раз...

Этот прием очень редко используется, например в ЗУП 3.1 КОРП в отчете "ТрудоустройствоПоКвотам".

Делается это так:
1) В настройки варианта основной схемы добавляется пустой вариант без настроек.
2) Этот вариант как обычно прописывается в модуле менеджера в процедуру НастроитьВариантыОтчета(), для добавления в справочник вариантов обработкой обновления вспомогательных данных.
3) В модуле объекта пишете код по подключению события "ПередЗагрузкойНастроекВКомпоновщик" к форме:

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


4) В процедуре ПередЗагрузкойНастроекВКомпоновщик анализируете ключ варианта и в зависимости от него подключаете схему из соответствующего макета:

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


В подключаемой схеме должна быть одноименная настройка варианта!
Независимо от того, куда вы едете — это в гору и против ветра!