Имя: Пароль:
1C
1С v8
ДеревоЗначений
0 AlphaSpec
 
21.08.15
13:40
Столкнулся с необходимостью поменять местами строки дерева значений. В таблице значений для этого есть метод Сдвинуть()... а в ДЗ? Разве никак?  И индекс строки никак не получить? Пытаюсь заменить строки по индексу (индексы не получал, указал явно) - "Индексированное значение доступно только для чтения"... Собственно - как быть?
1 Апош
 
21.08.15
13:41
переприсваивать родителя
2 butterbean
 
21.08.15
13:41
удалить,вставить
3 GRAF_84
 
21.08.15
13:45
ТекДанные = Элементы.ТвоеДеревоЗначений.ТекущиеДанные;

ДФКЭД = ТвоеДеревоЗначений.ПолучитьЭлементы();
Инд = ДФКЭД.Индекс(ТекДанные);
        
ДФКЭД.Сдвинуть(Инд, Смещение);
4 Dен
 
21.08.15
14:03
Есть в дереве значений метод "Сдвинуть"

КоллекцияСтрокДереваЗначений (ValueTreeRowCollection)
Сдвинуть (Move)
Синтаксис:

Сдвинуть(<Строка>, <Смещение>)
Параметры:

<Строка> (обязательный)

Тип: Число; СтрокаДереваЗначений.
Индекс строки, которую надо сдвинуть, либо сама сдвигаемая строка.
<Смещение> (обязательный)

Тип: Число.
Количество строк, на которые необходимо сдвинуть строку. Положительное смещение обозначает увеличение текущего индекса (сдвиг к концу коллекции), отрицательное - уменьшение текущего индекса (сдвиг к началу коллекции).
Описание:

Сдвигает строку на указанное количество позиций в коллекции строк данного уровня дерева значений.

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

Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер).
Пример:

// сдвинем первую строку на следующую позицию
СтрокиСостава.Сдвинуть(0, 1);
// сдвинем вторую строку на предыдущую позицию
СтрокиСостава.Сдвинуть(1, -1);
Ошибка? Это не ошибка, это системная функция.