Здравствуйте. На форме имеется "Деревозначений". При открытии формы данное дерево заполняется автоматически. Вопрос вот в чем,
как реализовать ограничение ввода новой строки до определенного уровня. Т.е чтобы при нажатии кнопки добавить всегда добавлялся толь до 1 уровня. Сейчас сколько раз нажмешь столько и вложений будет
---
Вместо "Отказ = Уровень > 1" можно написать

```1c
    Если Уровень > 1 Тогда
    Отказ = Истина;
    Элемент.ТекущаяСтрока = Элемент.ТекущиеДанные.ПолучитьРодителя().ПолучитьИдентификатор();
    Элемент.ДобавитьСтроку()
    КонецЕсли;
```
---
ИдентификаторТекущейСтроки = Элемент.ТекущаяСтрока;
    Если ИдентификаторТекущейСтроки = Неопределено Тогда
        Возврат
    КонецЕсли;
    СтрокаДерева = ДеревоЗначений.НайтиПоИдентификатору(ИдентификаторТекущейСтроки);
    Уровень = 0;
    Пока СтрокаДерева <> Неопределено Цикл
        СтрокаДерева = СтрокаДерева.ПолучитьРодителя();
        Уровень = Уровень + 1;
    КонецЦикла;
    Отказ = Уровень > 1;
Хороший пример но мне нужно чтобы строка вводилась но с тем же родителем что и предыдущая.
---
Процедура ПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель)
    Отказ=Родитель.Уровень()>1;
КонецПроцедуры
---
Да не не подойдет.
Так не сработает у меня.
Вот так будет работать

тдРодитель=Элемент.ТекущиеДанные.ПолучитьРодителя();
 Если тдРодитель = Неопределено Тогда
  Отказ=Ложь;
 Иначе
  Отказ=Истина;
КонецЕсли;
Но это не то мне нужно чтобы просто добавление происходило но с тем же родителем что и предыдущая строка.
---
Для УФ

```1c
    &НаКлиенте
    Процедура ДеревоЗначенийПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа, Параметр)
    ИдентификаторТекущейСтроки = Элемент.ТекущаяСтрока;
    Если ИдентификаторТекущейСтроки = Неопределено Тогда
    Возврат
    КонецЕсли;
    СтрокаДерева = ДеревоЗначений.НайтиПоИдентификатору(ИдентификаторТекущейСтроки);
    Уровень = 0;
    Пока СтрокаДерева <> Неопределено Цикл
    СтрокаДерева = СтрокаДерева.ПолучитьРодителя();
    Уровень = Уровень + 1;
    КонецЦикла;
    Отказ = Уровень > 1;
    КонецПроцедуры
```
---
ИдентификаторТекущейСтроки = Элемент.ТекущаяСтрока;
    Если ИдентификаторТекущейСтроки = Неопределено Тогда
        Возврат
    КонецЕсли;
    СтрокаДерева = ДеревоЗначений.НайтиПоИдентификатору(ИдентификаторТекущейСтроки);
    Уровень = 0;
    Пока СтрокаДерева <> Неопределено Цикл
        СтрокаДерева = СтрокаДерева.ПолучитьРодителя();
        Уровень = Уровень + 1;
    КонецЦикла;
    Отказ = Уровень > 1;
Хороший пример но мне нужно чтобы строка вводилась но с тем же родителем что и предыдущая.
---
Вместо "Отказ = Уровень > 1" можно написать

```1c
    Если Уровень > 1 Тогда
    Отказ = Истина;
    Элемент.ТекущаяСтрока = Элемент.ТекущиеДанные.ПолучитьРодителя().ПолучитьИдентификатор();
    Элемент.ДобавитьСтроку()
    КонецЕсли;
```
---
Да только что дошел до этого Спасибо. Нужно взять код (3)Slava Kron и сделать поправки как в (6). Все получилось! Спасибо.
---
ИдентификаторТекущейСтроки = Элемент.ТекущаяСтрока;
    Если ИдентификаторТекущейСтроки = Неопределено Тогда
        Возврат
    КонецЕсли;
    СтрокаДерева = ДеревоЗначений.НайтиПоИдентификатору(ИдентификаторТекущейСтроки);

вместо этого достаточно
СтрокаДерева = Элемент.ТекущиеДанные;