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

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 Ответить
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)