Вопрос в следующем:
Есть управляемая форма отчёта на СКД. Сам отчёт имеет несколько вариантов, заданных в конфигураторе.
Есть ли возможность выбрать вариант отчёта, не обращаясь на сервер - т.е. на клиенте?
Второй вопрос - в случае, если это невозможно - есть ли способ задать вариант отчёта хотя бы на сервере, но без обращений к макетам, без РеквизитФормыВЗначение и прочих вещей, т.е. без дополнительного получения самой СКД с её настройками.

П.С. Да, я знаю, что можно через СхемаКомпоновкиДанных.ВариантыНастроек. Интересуют именно другие способы - на клиенте или на сервере без обращения к СКД, только "подножными" реквизитами, которые уже есть на форме.

Ещё один П.С. Ключ варианта можно задать в параметрах формы при открытии - так вот это не тот случай. Форма уже открыта, нужно программно выбирать варианты отчёта в уже открытой форме.
---
Да, все и на клиенте работает, как оказалось...

```1c
    &НаКлиенте
    Процедура ВыбратьВариант(Команда)
    если КлючТекущегоВарианта = "ОтчетПоВалюте1" Тогда
    УстановитьТекущийВариант("ОтчетПоВалюте2");
    Иначе
    УстановитьТекущийВариант("ОтчетПоВалюте1");
    КонецЕсли;
    КонецПроцедуры
```
---
А "Все действия" -> "Выбрать вариант"? Или тут к чему вопрос-то?
---
вот хочется такой же результат, как при Все действия - Выбрать вариант, только программно. Грубо говоря, я хочу красивые кнопочки на форму повесить с названиями вариантов отчёта и мне нужно, чтобы при нажатии на такую кнопочку автоматом загружался нужный вариант отчёта.
---
Ну можно повторно открыть текущую форму как-то так:

ПараметрыОтчета = Новый Структура("КлючВарианта", КлючВарианта);
ОткрытьФорму(ИмяОтчета + ".Форма", ПараметрыОтчета, КлючВарианта, Истина);
---
Это вообще бред - проще уж действительно на сервер за СКД сходить, чем полностью форму переформировывать.
Вопрос в том - есть ли на клиенте какое-то хранилище настроек вариантов отчёта?
---
На клиенте нет. На сервере в форме есть:

Интерфейс (управляемый)
Управляемая форма
Расширение отчета
Свойства
ВариантМодифицирован, КлючТекущегоВарианта, КлючТекущихПользовательскихНастроек, ПользовательскиеНастройкиМодифицированы, ПредставлениеТекущегоВарианта, ПредставлениеТекущихПользовательскихНастроек, ТипФормыОтчета

Ну и метод:
УстановитьТекущийВариант (SetCurrentVariant)
Синтаксис:

УстановитьТекущийВариант(<КлючВарианта>)
Параметры:

<КлючВарианта> (обязательный)

Тип: Произвольный.
Ключ варианта, который нужно загрузить.
Описание:
---
А вот за это - огромное спасибо! То, что нужно!
---
Да, все и на клиенте работает, как оказалось...

```1c
    &НаКлиенте
    Процедура ВыбратьВариант(Команда)
    если КлючТекущегоВарианта = "ОтчетПоВалюте1" Тогда
    УстановитьТекущийВариант("ОтчетПоВалюте2");
    Иначе
    УстановитьТекущийВариант("ОтчетПоВалюте1");
    КонецЕсли;
    КонецПроцедуры
```
---
starik-2005, вооот, это как раз то, что требовалось изначально! Большое спасибо!
---
Спасибо!
Не пойму только, зачем на многих форумах предлагают воспользоваться кодом

```1c
    пВарианты = СхемаКомпоновкиДанных.ВариантыНастроек;
    Для Каждого пЭл ИЗ пВарианты Цикл
    СтруктураВариантов.Вставить(пЭл.Имя,пЭл.Настройки);
    КонецЦикла;
    //А потом выбираем нужную
    пНастройки = ?(ПодробныйВариант,СтруктураВариантов.Подробный,СтруктураВариантов.Краткий);
    КомпоновщикНастроек.ЗагрузитьНастройки(пНастройки);
```

Причем почему-то так и не заработал.
---
Народ просто бездумно копирует. На курсах этому не учат, в книгах устаревших Радченки тоже этого нет - изгаляются, как могут.