Передаю так параметры в СКД, но КомпоновщикНастроек не работает в тонком клиенте как сделать по другому, чтобы работало и в тонком?

```1c
    &НаКлиенте
    Процедура ПриОткрытии(Отказ)
    Настройки = Отчет.КомпоновщикНастроек.ПолучитьНастройки();

    Для Каждого ПараметрДанных Из Настройки.ПараметрыДанных.Элементы Цикл

    Если ПараметрДанных.Параметр = Новый ПараметрКомпоновкиДанных("Ссылка") Тогда

    ПараметрДанных.Использование = Истина;
    ПараметрДанных.Значение = ВладелецФормы.Объект.Ссылка;

    КонецЕсли;

    Если ПараметрДанных.Параметр = Новый ПараметрКомпоновкиДанных("Месяц") Тогда

    ПараметрДанных.Использование = Истина;
    ПараметрДанных.Значение = ВладелецФормы.Объект.ПериодРегистрации;

    КонецЕсли;

    КонецЦикла;

    Отчет.КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);

    СкомпоноватьРезультат();

    КонецПроцедуры
```
---
Сделал проще создал реквизиты на форме в них в модуле формы передал реквизиты с Владельца формы, а в модуле объекта эти реквизиты принял
Модуль формы

```1c
    &НаКлиенте
    Процедура ПриОткрытии(Отказ)
    Отчет.Ссылка = ВладелецФормы.Объект.Ссылка;

    Отчет.Месяц = ВладелецФормы.Объект.ПериодРегистрации;

    СкомпоноватьРезультат();

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

Модуль объекта

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

    Для Каждого ПараметрДанных Из Настройки.ПараметрыДанных.Элементы Цикл

    Если ПараметрДанных.Параметр = Новый ПараметрКомпоновкиДанных("Ссылка") Тогда

    ПараметрДанных.Использование = Истина;
    ПараметрДанных.Значение = Ссылка;

    КонецЕсли;

    Если ПараметрДанных.Параметр = Новый ПараметрКомпоновкиДанных("Месяц") Тогда

    ПараметрДанных.Использование = Истина;
    ПараметрДанных.Значение = Формат(Месяц,"ДФ='ММММ yyyy'");

    КонецЕсли;

    КонецЦикла;

    КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);

    КонецПроцедуры
```
---
Попробуй свой "ПараметрДанных" для последующего редактирования вот так получать:

```1c
    ПараметрМесяца = УправлениеОтчетамиКлиентСервер.ПолучитьПользовательскийПараметр("Период", Отчет.КомпоновщикНастроек);
```

```1c
    Функция ПолучитьПользовательскийПараметр(ИмяПараметра, КомпоновщикНастроек) Экспорт

    НайденныйПараметр = Неопределено;

    НайденныйПараметрВарианта = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти(ИмяПараметра);

    Если НайденныйПараметрВарианта <> Неопределено Тогда

    НайденныйПараметр = ПолучитьПредопределенныйЭлементПользовательскихНастроек(НайденныйПараметрВарианта, КомпоновщикНастроек.ПользовательскиеНастройки);

    КонецЕсли;

    Возврат НайденныйПараметр;

    КонецФункции

    Функция ПолучитьПредопределенныйЭлементПользовательскихНастроек(ЭлементНастроекВарианта, ПользовательскиеНастройки) Экспорт

    НайденныйЭлемент = Неопределено;

    Если ЭлементНастроекВарианта <> Неопределено Тогда

    НайденныйЭлемент = ПользовательскиеНастройки.Элементы.Найти(ЭлементНастроекВарианта.ИдентификаторПользовательскойНастройки);

    КонецЕсли;

    Возврат НайденныйЭлемент;

    КонецФункции
```
---
СКД на сервере формируется, процедура в модуле объекта:

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

    Для Каждого ПараметрДанных Из Настройки.ПараметрыДанных.Элементы Цикл

    Если ПараметрДанных.Параметр = Новый ПараметрКомпоновкиДанных("Ссылка") Тогда

    ПараметрДанных.Использование = Истина;
    ПараметрДанных.Значение = Ссылка;

    КонецЕсли;

    Если ПараметрДанных.Параметр = Новый ПараметрКомпоновкиДанных("Месяц") Тогда

    ПараметрДанных.Использование = Истина;
    ПараметрДанных.Значение = ПериодРегистрации;

    КонецЕсли;

    КонецЦикла;

    КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);

    КонецПроцедуры
```
---
Переменная не определена (Отчет) и Переменная не определена (ВладелецФормы) что делать?
---
Отчет у вас внешний или внутри конфигурации?
---
Внешний
---
А вот так попробуйте

Настройки = КомпоновщикНастроек.ПолучитьНастройки();

Я у себя так во внешнем сделал , у меня работает
---
Чой-то компоновщик настроек в тонком клиенте не работает? Должен работать.
Я правда не пробовал менять пользовательские настройки через ЗагрузитьНастройки(), хотя по описанию должно.
Всегда редактировал напрямую через КомпоновщикНастроек.ПользовательскиеНастройки
---
я делаю немного другой отчет, передаю таблицу значений в СКД, отчет внешний

Вот кусок кода
СхемаКомпоновкиДанных = ПолучитьМакет("СхемаСКД");

  //Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;
  // - Если сделать так, как показано выше(рекомендуют на некоторых ресурсах), то при изменении настроек в режиме клиента
  // этих изменений Вы не увидите, потому что настройки всегда будут по умолчанию. Как правильно - вариант ниже
  Настройки = КомпоновщикНастроек.ПолучитьНастройки();

  ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;

  КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
  МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);

  //ВнешнийНаборДанных = Новый Структура("ПримерТаблицыЗначений", ТЗВывод);
  ВнешнийНаборДанных = Новый Структура("ТаблицаМатериалы", ТаблицаМатериалы);

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

  ДокументРезультат.Очистить();

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

Пример рабочий, потому что отчет работает
---
А где параметры передаются?
---
ВнешнийНаборДанных = Новый Структура("ТаблицаМатериалы", ТаблицаМатериалы);

Вот тут я передал таблицу значений, она формировалась ранее, тоже программно
---
Пробросить параметры в ПриКомпоновке можно, но не нужно. Все должно и с клиента прекрасно устанавливаться.
---
Сделал проще создал реквизиты на форме в них в модуле формы передал реквизиты с Владельца формы, а в модуле объекта эти реквизиты принял
Модуль формы

```1c
    &НаКлиенте
    Процедура ПриОткрытии(Отказ)
    Отчет.Ссылка = ВладелецФормы.Объект.Ссылка;

    Отчет.Месяц = ВладелецФормы.Объект.ПериодРегистрации;

    СкомпоноватьРезультат();

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

Модуль объекта

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

    Для Каждого ПараметрДанных Из Настройки.ПараметрыДанных.Элементы Цикл

    Если ПараметрДанных.Параметр = Новый ПараметрКомпоновкиДанных("Ссылка") Тогда

    ПараметрДанных.Использование = Истина;
    ПараметрДанных.Значение = Ссылка;

    КонецЕсли;

    Если ПараметрДанных.Параметр = Новый ПараметрКомпоновкиДанных("Месяц") Тогда

    ПараметрДанных.Использование = Истина;
    ПараметрДанных.Значение = Формат(Месяц,"ДФ='ММММ yyyy'");

    КонецЕсли;

    КонецЦикла;

    КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);

    КонецПроцедуры
```
---
Интересно. А когда-то реквизиты отчетов/обработок не пробрасывались в модуль объекта на сервере. Это было одно из первых моих "спотыканий" при изучении УФ.
---
Сам не знал, но ограниченность времени и метод тыка привел меня к такому результату
---
А когда-то реквизиты отчетов/обработок не пробрасывались в модуль объекта на сервере.
Что-то не припомню такого. Это же реквизиты самого объекта и они доступны в модуле объекта напрямую. Это не реквизиты формы (просто (13) не правильно выразился "создал реквизиты на форме", на самом деле были созданы реквизиты самого отчета).
---
Подскажите, как у вас удалось передать параметры в ПриКомпоновкеРезультата
сделал по вашему примеру. Но у меня не передаются параметры в Настройки.ПараметрыДанных.Элементы из ПриОткрытии, да и честно говоря не понимаю, почему реквизит формы должен туда попасть.