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

```1c
    Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)

    СтандартнаяОбработка=Ложь;

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

    ДокументРезультат.ПоказатьУровеньГруппировокКолонок(0);
    ДокументРезультат.ПоказатьУровеньГруппировокСтрок(0);

    КонецПроцедуры

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

    Процедура ОпределитьНастройкиФормы(Форма, КлючВарианта, Настройки) Экспорт

    Настройки.События.ПередЗаполнениемПанелиБыстрыхНастроек = Истина;

    КонецПроцедуры

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

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

    КонецПроцедуры

    #КонецОбласти
```
---
Забыл упомянуть конфигурацию 1С:Управление торговлей (11.4.14.181).

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

Единственный вариант который подходит под условия моего ТЗ:

```1c
    Процедура ОпределитьНастройкиФормы(Форма, КлючВарианта, Настройки) Экспорт

    Настройки.События.ПередЗаполнениемПанелиБыстрыхНастроек = Истина;

    КонецПроцедуры

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

    Форма.ЭтотОбъект.ВыбранныйУровеньГруппировок=1;
```

Можно Форма.ЭтотОбъект.ВыбранныйУровеньГруппировок=1; поместить сразу в ОпределитьНастройкиФормы.
---
Причем с колонками все нормально, ПоказатьУровеньГруппировокКолонок работает.
---
При формировании отчета видно, что сначала группировка строк сворачивается, а потом сразу же разворачивается на состояние перед нажатием на кнопку "Сформировать"
---
Забыл упомянуть конфигурацию 1С:Управление торговлей (11.4.14.181).

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

Единственный вариант который подходит под условия моего ТЗ:

```1c
    Процедура ОпределитьНастройкиФормы(Форма, КлючВарианта, Настройки) Экспорт

    Настройки.События.ПередЗаполнениемПанелиБыстрыхНастроек = Истина;

    КонецПроцедуры

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

    Форма.ЭтотОбъект.ВыбранныйУровеньГруппировок=1;
```

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