Добрый день.
Задача состоит в следующем: Необходимо в ДеревоЗначений добавить дополнительный элемент к определенному родителю. Это было реализовано, но новый элемент добавляется и отражается в конце списка подчиненных элементов, а необходимо, его добавлять после определенного значения подчиненного элемента.
Не знаю понятно ли описан вопрос. На примере будет понятнее.
Есть
Родитель1
 Элемент1.1
 Элемент1.2
 Элемент1.3
 необходимо, чтобы например если Текущая строка установлена на Элемент 1.2 и нажимаем на добавление в дерево добавился новый Элемент 1.4 , но расположился он под Элементом текущим 1.2

Должно получится
Родитель1
 Элемент1.1
 Элемент1.2
 Элемент1.4
 Элемент1.3

Как задать положение нового элемента в ДеревеЗначений? Подскажите, пожалуйста.
---
```1c
    КоллекцияЭлементов = ТекущаяСтрока.ПолучитьЭлементы()
```

получает коллекцию элементов текущей строки. У этой коллекции так же есть метод Вставить(). Про индекс:

Из СПДанныеФормыКоллекцияЭлементовДерева (FormDataTreeItemCollection)
Индекс (IndexOf)
Синтаксис:

Индекс(<Элемент>)
Параметры:

<Элемент> (необязательный)

Тип: ДанныеФормыЭлементДерева.
Элемент дерева.
Возвращаемое значение:

Тип: Число.
Если элемент в коллекции не найден то -1.
Описание:

Получает индекс элемента коллекции.

Доступность:

Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, мобильное приложение(клиент), мобильное приложение(сервер).
Примечание:

Нумерация с 0.
---
Из СП:
---
У меня вот такой код. Я работаю с элементами формы. Как тогда получить индекс текущей строки? Все ниже описанные элементами являются элементами формы. КоллекцияСтрокДереваЗначений среди них нет.

```1c
    ИдентификаторСтроки = Элементы.ДеревоНоменклатуры.ТекущаяСтрока;
    Если ДеревоНоменклатуры.НайтиПоИдентификатору(ИдентификаторСтроки).ПолучитьРодителя() <> Неопределено тогда
    ИдентификаторСтроки = ДеревоНоменклатуры.НайтиПоИдентификатору(ИдентификаторСтроки).ПолучитьРодителя().ПолучитьИдентификатор();
    КонецЕсли;
    Элементы.ДеревоНоменклатуры.Развернуть(ИдентификаторСтроки);
    ТекущаяСтрока = ДеревоНоменклатуры.НайтиПоИдентификатору(ИдентификаторСтроки);
    НоваяСтрокаДерева = ТекущаяСтрока.ПолучитьЭлементы().Добавить();
```

Подскажите как правильно выполнить добавление.
---
Не .Добавить(), а .Вставить(). Только индекс при вставке указать, как уже верно заметили.
---
```1c
    КоллекцияЭлементов = ТекущаяСтрока.ПолучитьЭлементы()
```

получает коллекцию элементов текущей строки. У этой коллекции так же есть метод Вставить(). Про индекс:

Из СПДанныеФормыКоллекцияЭлементовДерева (FormDataTreeItemCollection)
Индекс (IndexOf)
Синтаксис:

Индекс(<Элемент>)
Параметры:

<Элемент> (необязательный)

Тип: ДанныеФормыЭлементДерева.
Элемент дерева.
Возвращаемое значение:

Тип: Число.
Если элемент в коллекции не найден то -1.
Описание:

Получает индекс элемента коллекции.

Доступность:

Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, мобильное приложение(клиент), мобильное приложение(сервер).
Примечание:

Нумерация с 0.
---
А есть возможность в уже имеющееся дерево значений вставить значение самого верхнего уровня иерархии и сдвинуть все нижние уровни иерархии относительно вставленного?
То есть было:

0 Справочники
    1 Контрагенты
         2 Адреса

Стало:

0 Система_1
    1 Справочники
        2 Контрагенты
            3 Адреса
---
Первый ответ в теме (2)
---
Сообщение было скрыто модератором.