Опять про ПоказатьУровеньГруппировокКолонок в отчете на СКД

1. qux 25 31.05.23 11:00 Сейчас в теме
Отчет на чистом СКД без форм. Необходимо чтобы при каждом формировании отчета (т.е. после нажатия кнопки Сформировать) происходила принудительная установка уровня группировок строк и колонок в 1 уровень. Происходит следующее: при первом формировании отчета уровень группировок устанавливается в 1 уровень, если пользователь развернул группировки и снова сформировал отчет, то не происходит принудительной установки уровня группировок в 1 уровень.

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
	
	СтандартнаяОбработка=Ложь;
	
	КомпоновщикМакет = Новый КомпоновщикМакетаКомпоновкиДанных;
	Макет = КомпоновщикМакет.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.ПолучитьНастройки(), ДанныеРасшифровки);
	ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
	ПроцессорКомпоновки.Инициализировать(Макет, , ДанныеРасшифровки);
	ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
	ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
	ПроцессорВывода.Вывести(ПроцессорКомпоновки);
		
	ДокументРезультат.ПоказатьУровеньГруппировокКолонок(0);
	ДокументРезультат.ПоказатьУровеньГруппировокСтрок(0);
			
КонецПроцедуры 

#Область СлужебныйПрограммныйИнтерфейс

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

Процедура ПередЗаполнениемПанелиБыстрыхНастроек(Форма, ПараметрыЗаполнения) Экспорт

	ЗначениеПараметраНастроекКомпоновкиДанных = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("СписокЦеновыхГрупп"));
	Если ЗначениеПараметраНастроекКомпоновкиДанных <> Неопределено Тогда
		Идентификатор = ЗначениеПараметраНастроекКомпоновкиДанных.ИдентификаторПользовательскойНастройки;
		ЗначениеПараметраПользовательскихНастроекКомпоновкиДанных = КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.Найти(Идентификатор);
		Если ЗначениеПараметраПользовательскихНастроекКомпоновкиДанных <> Неопределено Тогда
			Если 
				(ТипЗнч(ЗначениеПараметраПользовательскихНастроекКомпоновкиДанных.Значение) = Тип("СписокЗначений") и ЗначениеПараметраПользовательскихНастроекКомпоновкиДанных.Значение.Количество() = 0) 
				Или Не ЗначениеЗаполнено(ЗначениеПараметраПользовательскихНастроекКомпоновкиДанных.Значение) 
			Тогда
				СписокЦеновыхГрупп = ИходныйСписокЦеновыхГрупп();
				КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("СписокЦеновыхГрупп", СписокЦеновыхГрупп);
				ЗначениеПараметраПользовательскихНастроекКомпоновкиДанных.Значение = СписокЦеновыхГрупп;
			КонецЕсли;
		КонецЕсли;	
	КонецЕсли;
	
КонецПроцедуры

#КонецОбласти
Показать
Найденные решения
4. qux 25 05.06.23 13:55 Сейчас в теме
Забыл упомянуть конфигурацию 1С:Управление торговлей (11.4.14.181).

Дело в следующем: когда формируется отчет на СКД без формы, формой выступает общая форма ФормаОтчета у которой есть реквизит ВыбранныйУровеньГруппировок. И бесполезно в процедуре ПриКомпоновкеРезультата писать ДокументРезультат.ПоказатьУровеньГруппировокСтрок(0). Потому что при СозданииНаСервере в этой форме происходит запрос уровня группировок из хранилища настроек форм и присваивание значения реквизиту ВыбранныйУровеньГруппировок и потом при каждом чихе формы уровень группировок сохраняется обратно в хранилище.

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

Процедура ПередЗаполнениемПанелиБыстрыхНастроек(Форма, ПараметрыЗаполнения) Экспорт
	
	Форма.ЭтотОбъект.ВыбранныйУровеньГруппировок=1;
Показать


Можно Форма.ЭтотОбъект.ВыбранныйУровеньГруппировок=1; поместить сразу в ОпределитьНастройкиФормы.
SamNeSvoy; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. qux 25 31.05.23 11:58 Сейчас в теме
Причем с колонками все нормально, ПоказатьУровеньГруппировокКолонок работает.
3. qux 25 01.06.23 11:12 Сейчас в теме
При формировании отчета видно, что сначала группировка строк сворачивается, а потом сразу же разворачивается на состояние перед нажатием на кнопку "Сформировать"
4. qux 25 05.06.23 13:55 Сейчас в теме
Забыл упомянуть конфигурацию 1С:Управление торговлей (11.4.14.181).

Дело в следующем: когда формируется отчет на СКД без формы, формой выступает общая форма ФормаОтчета у которой есть реквизит ВыбранныйУровеньГруппировок. И бесполезно в процедуре ПриКомпоновкеРезультата писать ДокументРезультат.ПоказатьУровеньГруппировокСтрок(0). Потому что при СозданииНаСервере в этой форме происходит запрос уровня группировок из хранилища настроек форм и присваивание значения реквизиту ВыбранныйУровеньГруппировок и потом при каждом чихе формы уровень группировок сохраняется обратно в хранилище.

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

Процедура ПередЗаполнениемПанелиБыстрыхНастроек(Форма, ПараметрыЗаполнения) Экспорт
	
	Форма.ЭтотОбъект.ВыбранныйУровеньГруппировок=1;
Показать


Можно Форма.ЭтотОбъект.ВыбранныйУровеньГруппировок=1; поместить сразу в ОпределитьНастройкиФормы.
SamNeSvoy; +1 Ответить
Оставьте свое сообщение

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