Добрый день! Пытаюсь сделать автоматическое создание страниц в форме при изменении реквизита. Главная задача - создать в цикле. При второй итерации цикла выполнение процедуры скипается, подозреваю, что из-за того, что при первом прохождении цикла создается НовыйЭлемент, а при втором он уже есть, поэтому и выходит ошибка. То есть создаю несколько групп с одним именем. Что можно сделать, научите или направьте, куда "курить". Скрин ошибки во вложении. Заранее спасибо!

```1c
    Для Каждого ТекСтрока ИЗ таблица Цикл
    НовыйЭлемент = ЭтаФорма.Элементы.Добавить("ГруппаСтраницы",Тип("ГруппаФормы"),ЭтаФорма);
    НовыйЭлемент.Вид = ВидГруппыФормы.ОбычнаяГруппа;
    НовыйЭлемент.Заголовок = ТекСтрока.Наименование;
    КонецЦикла;
```
---
вот так будет правильно:

```1c
    НовыйЭлемент = ЭтаФорма.Элементы.Добавить("ГруппаСтраницы"+СтрЗаменить(xmlstring(Новый УникальныйИдентификатор),"-","),Тип("ГруппаФормы"));
```
---
НовыйЭлемент = ЭтаФорма.Элементы.Добавить("ГруппаСтраницы",Тип("ГруппаФормы"),ЭтаФорма);
Имена элементов формы должны быть уникальными.
---
так имена разные должны быть
---
А как в цикле, создавать с разными именами?
---
```1c
    НомерСтраницы = 1;
    Для Каждого ТекСтрока ИЗ таблица Цикл
    НовыйЭлемент = ЭтаФорма.Элементы.Добавить("ГруппаСтраницы"+НомерСтраницы,Тип("ГруппаФормы"),ЭтаФорма);
    НовыйЭлемент.Вид = ВидГруппыФормы.ОбычнаяГруппа;
    НовыйЭлемент.Заголовок = ТекСтрока.Наименование;
    НомерСтраницы = НомерСтраницы + 1;
    КонецЦикла;
```
---
Спасибо!
---
Та же ошибка...
---
Так посмотри на самой форме - может там реально уже есть элементы с такими наименованиями! Тебе же назвали причину - проверь обстоятельства. Мы не видим твоей формы и гадать за тебя не будем!

И убери нафиг третий параметр.
---
Почему не нужен третий параметр?
---
а ты сам почитай СП, че сразу мы-то?
---
(10) а ты сам почитай СП, че сразу мы-то?
 Хорошо! Тогда, что такое "СП" ?
---
Синтакс-Помощник
---
Понял, спасибо
---
конечно будет та же ошибка. При повторном выполнении цикла будут те же самые имена.
При повторном вызове цикла нужно только добавить новые элементы формы, или предварительно удалить созданные ранее?
Если нужно только добавлять, то можно использовать УИД.

```1c
    Для Каждого ТекСтрока ИЗ таблица Цикл
    НовыйЭлемент = ЭтаФорма.Элементы.Добавить("ГруппаСтраницы"+xmlstring(Новый УникальныйИдентификатор),Тип("ГруппаФормы"));
    НовыйЭлемент.Вид = ВидГруппыФормы.ОбычнаяГруппа;
    НовыйЭлемент.Заголовок = ТекСтрока.Наименование;
    КонецЦикла;
```
---
Недопустимое значение параметра (параметр номер '1')
---
вот так будет правильно:

```1c
    НовыйЭлемент = ЭтаФорма.Элементы.Добавить("ГруппаСтраницы"+СтрЗаменить(xmlstring(Новый УникальныйИдентификатор),"-","),Тип("ГруппаФормы"));
```
---
Вот прям с дефисами? )))
---
а, ну да. )))
---
5 ответ работает, но на 16 итерации падает процедура. Поставил счетчик, теперь создается бесконечно.

```1c
    КоличествоСтрок = Таблица.Количество();
    НомерСтраницы = 1;

    Счетчик = 0;
    Пока Счетчик <= КоличествоСтрок Цикл
    Для Каждого ТекСтрока ИЗ таблица Цикл

    НовыйЭлемент = ЭтаФорма.Элементы.Добавить("ГруппаСтраницы"+НомерСтраницы,Тип("ГруппаФормы"),ЭтаФорма);
    НовыйЭлемент.Вид = ВидГруппыФормы.ОбычнаяГруппа;
    НовыйЭлемент.Заголовок = ТекСтрока.Наименование;
    НомерСтраницы = НомерСтраницы + 1;

    КонецЦикла;
    Счетчик = Счетчик + 1;
    КонецЦикла;
```
---
Красавчик, чо.
---
цикл в цикле и циклом погоняет.
Если строк 100, то будет попытка создания элементов формы 10000 раз.
---
Тогда как сделать, чтобы итераций было только 15?
---
делать проверку

```1c
    НомерСтраницы = 1;
    Для Каждого ТекСтрока ИЗ таблица Цикл
    Если НомерСтраницы > 15 Тогда
    Прервать;
    КонецЕсли;
    НовыйЭлемент = ЭтаФорма.Элементы.Добавить("ГруппаСтраницы"+НомерСтраницы,Тип("ГруппаФормы"),ЭтаФорма);
    НовыйЭлемент.Вид = ВидГруппыФормы.ОбычнаяГруппа;
    НовыйЭлемент.Заголовок = ТекСтрока.Наименование;
    НомерСтраницы = НомерСтраницы + 1;
    КонецЦикла;
```
---
Ну костыль же... Не должно тут ничего падать, тут явно где-то сверху двойной вызов процедуры или есть цикл верхнего уровня.
Вот если бы человек умел сделать остановку по ошибке и проверил бы номер строки этой таблицы на 16-й итерации - может чего и понял бы.
---
Понял, синтаксис-помощник и остановка по ошибке!
---
НомерСтраницы > 15
Спасибо!
---
Вангую, что где-то сверху лежит еще один цикл, который нам не показывают. Если строк в таблице всего 15, то 16-й итерации просто не может быть.
---
Тут, конечно, такие "перлы" для вас, сори)