Имя: Пароль:
1C
 
Вводить новую строку в дереве на том же уровне
0 Dirk Diggler
 
19.07.10
11:12
Как в табличном поле с источником данных ДеревоЗначений сделать, чтобы новая строка вводилась не уровнем ниже, а на том же, где сейчас курсор стоит?
1 Irbis
 
19.07.10
11:13
родителя указывать
2 Dirk Diggler
 
19.07.10
11:15
Это вот так, что ли?

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


Не работает.
3 Irbis
 
19.07.10
11:20
КоллекцияСтрокДереваЗначений (ValueTreeRowCollection)
Добавить (Add)
Синтаксис:
Добавить()
Возвращаемое значение:
Тип: СтрокаДереваЗначений.
Описание:
Добавляет строку в конец коллекции строк данного уровня дерева значений.
Пример:
НовыйЭлемент = СтрокиСостава.Добавить();
НовыйЭлемент.Затрата = Затрата;
НовыйЭлемент.Норма = Количество;
4 Dirk Diggler
 
19.07.10
11:22
В табличном поле??? Там люди руками работают. Insert давят и все такое.
5 Irbis
 
19.07.10
11:23
Тогда пусть давят куда надо.
6 Dirk Diggler
 
19.07.10
11:29
Неудобно. И мне прежде всего.
7 ice777
 
19.07.10
11:36
определи уровень строки и заводи или в дереве (если оказалась корневая строка) или добавляй в подстроки строки.
8 Dirk Diggler
 
19.07.10
11:39
(7) На какое событие повесить обработчик-то?
9 ice777
 
19.07.10
11:40
+(7) типа так:

если ЭлементыФормы.ТвоеДерево.ТекущиеДанные.Уровень() = 0 - значит корнева

СтрокаДереваЗначений (ValueTreeRow)
Уровень (Level)
Синтаксис:
Уровень()
Возвращаемое значение:
Тип: Число. Для строки, не имеющей родителя, уровень будет равен 0.
Описание:
Получает уровень строки дерева значений.
Примечание:
Нумерация уровней дерева
10 ice777
 
19.07.10
11:40
(8) на добавление ))
11 ice777
 
19.07.10
11:44
+(10) точнее, перед добавлением. поищи в списке и найдешь.

зы. надо же, совсем обленились.)
12 Dirk Diggler
 
19.07.10
11:46
(9) Да это все понятно. Вопрос - как сделать, чтобы когда чел жал Insert или кнопарь на командной панели, строка создавалась где надо?
Я на ПередНачаломДобавления обработчиком менял родителя и Элемент.ТекущаяСтрока - безрезультатно.
13 butterbean
 
19.07.10
11:47
(12) перед началом добавления пишешь Отказ = Истина и сам добавляешь строку
14 Asmody
 
19.07.10
11:48
Процедура ДеревоРазделовПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель)
   Если Родитель=Неопределено Тогда
       Отказ=Истина;
       Возврат;
   ИначеЕсли Родитель.Уровень()=1 Тогда
       Отказ=Истина;
       Элемент.ТекущаяСтрока=Родитель.Родитель.Строки.Добавить();
       Элемент.ТекущаяСтрока.НоменклатураРаздел=Справочники.ТЛК_РазделыКаталогаТоваров.ПустаяСсылка();
       Элемент.ИзменитьСтроку();
   КонецЕсли;
КонецПроцедуры
15 Dirk Diggler
 
19.07.10
11:53
(15) Спасибо. Вроде того.
16 Dirk Diggler
 
19.07.10
11:53
Тю .  (14) спасибо