У управляемой формы есть параметры, которые передаются ей при ее открытии. Обращение к ним, например, идёт в процедуре "ПриСозданииНаСервере" посредством "ЭтаФорма.Параметры", либо просто "Параметры". Но можно создать самому параметры формы (через конфигуратор). Обращаются все обычно к ним сразу по наименованию. ВОПРОС: если есть параметр "Реквизит1", то я могу к нему обратиться
```1c
    "Реквизит1="хххх""
```
, но если мне нужно получить группу всех параметров формы, то как мне обращаться к ним, то есть что должно быть тут вместо ХХХ:
ХХХ.Реквизит1

Как я понимаю, то обращение идёт посредством:

```1c
    ЭтаФорма.Реквизит1
```

По этому я пытался выполнить данную строку кода, но выдает ошибку:

```1c
    ЗаполнитьЗначенияСвойств(ЭтаФорма,Параметры)
```

В параметры формы при открытии ее я передал реквизиты с аналогичным названием, как создал на открываемой форме. Как мне их перекинуть все?
---
то могу ли я в процедуре "ПриСозданииНаСервере" с помощью метода "ЗаполнитьЗначенияСвойств" перегрузить значения параметров в реквизиты формы с одинаковым наименованием реквизитов?
Да
---
возможно стоит ограничить список полей, которые копируются или указать поля, которые нужно игнорировать, это 3 и 4 параметры процедуры ЗаполнитьЗначенияСвойств.
---
так же, через
```1c
    ЭтаФорма.Параметры.
```
---
Если я в методе "ОткрытьФорму" передал в форму параметр под названием "Реквизит1", после чего в открываемой форме тоже создал аналогичный параметр с названием "Реквизит1", то могу ли я в процедуре "ПриСозданииНаСервере" с помощью метода "ЗаполнитьЗначенияСвойств" перегрузить значения параметров в реквизиты формы с одинаковым наименованием реквизитов?
Просто у меня в такой вариации это не работает:

```1c
    ЗаполнитьЗначенияСвойств(ЭтаФорма,Параметры)
```

Может существует какой то другой метод перемещения значений с параметров в реквизиты формы...
Просто писать "Реквизит1=Параметры.Реквизит1;" для каждого параметра я думаю не гуманно.
---
негуманно на ваш взгляд, но вполне нормально на взгляд любого другого программиста...
невозможно же впихнуть в платформу абсолютно все хотелки каждого отдельного ...
---
В какой то момент я начинаю задумываться о нюансах, которые можно было бы реализовать быстрее и естественно не придумав реализацию иду на форум и спрашиваю у более опытных форумчан. Если такого метода нет, то я просто продолжу писать, как и писал, но уже не переживая о "не оптимальности кода".
---
то могу ли я в процедуре "ПриСозданииНаСервере" с помощью метода "ЗаполнитьЗначенияСвойств" перегрузить значения параметров в реквизиты формы с одинаковым наименованием реквизитов?
Да
---
Как это сделать?
Выполнение строки кода:

```1c
    ЗаполнитьЗначенияСвойств(ЭтаФорма,Параметры)
```

инициирует ошибку: "Несоответствие типов"
---
В третьем параметре попробуйте указать имена реквизитов.
---
Спасибо, помогло добавление полей в 3й параметр. Пока не совсем понял в чём была причина, но запомню)
---
Видимо, у Параметры и ЭтаФорма есть свойства с одинаковым именем, которые тоже платформа пыталась заполнить.
---
возможно стоит ограничить список полей, которые копируются или указать поля, которые нужно игнорировать, это 3 и 4 параметры процедуры ЗаполнитьЗначенияСвойств.
---
Помогло добавление полей в 3й параметр. Пока не совсем понял в чём была причина, но запомню)
---
Даже если в форме нет параметры с именем "Реквизит1", аоткрытие формы происходит примерно так

```1c
    ОткрытьФорму(ИмяФормы, Новый Структура("Реквизит1", 123));
```

то в ПриСозданииНаСервере можно будет получить значение этого параметра таким кодом

```1c
    Если Параметры.Свойство("Реквизит1") Тогда
    ЗначениеПараметра = Параметры.Реквизит1;
    Иначе
    ЗначениеПараметра = 0;
    КонецЕсли;
```

У такого метода есть только один недостаток - такой параметр доступен только в ПриСозданииНаСервере.
Но никто не мешает программно создать реквизит формы, заполнить его значением параметра и пользоваться дальше.

Можно пойти другим путём и вручную добавить параметр формы, указать у него "Ключевой параметр", тогда он будет доступен всегда (и при этом влиять на уникальность формы).
---
Это я понимаю, но спасибо за развернутый ответ.
Вопрос в том что бы быстро "перекачать" в процедуре "ПриСозданииНаСервере" с параметров формы в реквизиты формы, имеющие одинаковые наименования, что бы пользоваться ими помимо процедуры при создании на сервере. Обычное присвоение с увеличением количества параметров увеличивает код в разы. Поэтому я пытаюсь перекачать значения методом "ЗаполнитьЗначенияСвойств" и никак не пойму, либо я что то не так делаю, либо данный метод тут нельзя использовать и есть какой либо другой.
---
В общем случае, если мы не знаем имена передаваемых реквизитов, но хотим чтобы реквизиты формы заполнились из параметров по наименованию, можно использовать такой код:

```1c
    &НаСервере
    Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

    МассивРеквизитов = ПолучитьРеквизиты();
    Для Каждого РеквизитФормы Из МассивРеквизитов Цикл
    Значение = Неопределено;
    Если Параметры.Свойство(РеквизитФормы.Имя, Значение) Тогда
    Если РеквизитФормы.ТипЗначения.СодержитТип(ТипЗнч(Значение)) Тогда
    ЭтотОбъект[РеквизитФормы.Имя] = Значение;
    КонецЕсли;
    КонецЕсли;
    КонецЦикла;

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