Инициализация новой переменной по составному имени в цикле.
Так вообще можно или забыть?

Подробности:
есть структура и обходя ее хочу создать новые реквизиты формы

структура такого плана:

```1c
    ЦелевыеПараметрыПоля = Новый Структура;
    ЦелевыеПараметрыПоля.Вставить("п1пп1", "Денежные средства, полученные от заказчика");
    ЦелевыеПараметрыПоля.Вставить("п1пп2", "Кредиты банка");
    ЦелевыеПараметрыПоля.Вставить("п2пп31", "Затраты на материалы");
    ...
```

По каждому полю мне бы нужно примерно такое:

```1c
    п1пп1 = Новый РеквизитФормы("п1пп1",Новый ОписаниеТипов("Число",,,КвалификаторыЧисла),,"Денежные средства, полученные от заказчика",Ложь);
    МассивДобавляемыхРеквизитов.Добавить(п1пп1);
    НовыйЭлементФормы_п1пп1 = Элементы.Добавить("п1пп1", Тип("ПолеФормы"), ЦелевыеПараметры);
    НовыйЭлементФормы_п1пп1.Вид = ВидПоляФормы.ПолеВвода;
    НовыйЭлементФормы_п1пп1.ПутьКДанным = "п1пп1";
```

Попыталась сделать по простому, не прокатывает:

```1c
    Для Каждого Поле Из ЦелевыеПараметрыПоля Цикл
    Дс = "+Поле.Ключ+" = Новый РеквизитФормы(""+Поле.Ключ+"",Новый ОписаниеТипов("Число",,,КвалификаторыЧисла),,""+Поле.Значение+"",Ложь);";
    Выполнить(Дс);
    Дс = "МассивДобавляемыхРеквизитов.Добавить("+Поле.Ключ+");";
    Выполнить(Дс);
    КонецЦикла;
```

На второй выполнить ошибка что переменная п1пп1 не определена.
Подскажите способ по лучше?
---
Нужно вместо такого:

```1c
    Для Каждого Поле Из ЦелевыеПараметрыПоля Цикл
    ...
    Выполнить(Дс);
    ...
    Выполнить(Дс);

    КонецЦикла;
```

сделать такое:

```1c
    Для Каждого Поле Из ЦелевыеПараметрыПоля Цикл
    ...
    Выполнить(Дс1 + ";" + Дс2);

    КонецЦикла;
```

То есть в вашем коде второй вызов Выполнить не видит переменную, которую вы инициализировали в первом вызове Выполнить.
Поэтому код нужно объединить и выполнить за один вызов Выполнить.

Но вообще не очень понимаю, зачем вам всё это нужно, разве такое не сработает?:

```1c
    Для Каждого Поле Из ЦелевыеПараметрыПоля Цикл

    МойРеквизит = Новый РеквизитФормы(Поле.Ключ,Новый ОписаниеТипов("Число",,,КвалификаторыЧисла),,Поле.Значение,Ложь);
    МассивДобавляемыхРеквизитов.Добавить(МойРеквизит);
    НовыйЭлементФормы = Элементы.Добавить(Поле.Ключ, Тип("ПолеФормы"), ЦелевыеПараметры);
    НовыйЭлементФормы.Вид = ВидПоляФормы.ПолеВвода;
    НовыйЭлементФормы.ПутьКДанным = Поле.Ключ;

    КонецЦикла;
```
---
Нужно вместо такого:

```1c
    Для Каждого Поле Из ЦелевыеПараметрыПоля Цикл
    ...
    Выполнить(Дс);
    ...
    Выполнить(Дс);

    КонецЦикла;
```

сделать такое:

```1c
    Для Каждого Поле Из ЦелевыеПараметрыПоля Цикл
    ...
    Выполнить(Дс1 + ";" + Дс2);

    КонецЦикла;
```

То есть в вашем коде второй вызов Выполнить не видит переменную, которую вы инициализировали в первом вызове Выполнить.
Поэтому код нужно объединить и выполнить за один вызов Выполнить.

Но вообще не очень понимаю, зачем вам всё это нужно, разве такое не сработает?:

```1c
    Для Каждого Поле Из ЦелевыеПараметрыПоля Цикл

    МойРеквизит = Новый РеквизитФормы(Поле.Ключ,Новый ОписаниеТипов("Число",,,КвалификаторыЧисла),,Поле.Значение,Ложь);
    МассивДобавляемыхРеквизитов.Добавить(МойРеквизит);
    НовыйЭлементФормы = Элементы.Добавить(Поле.Ключ, Тип("ПолеФормы"), ЦелевыеПараметры);
    НовыйЭлементФормы.Вид = ВидПоляФормы.ПолеВвода;
    НовыйЭлементФормы.ПутьКДанным = Поле.Ключ;

    КонецЦикла;
```
---
Последнее сработало! Вам благодарность.