|
Нужна помощь с деревом значений | ☑ | ||
---|---|---|---|---|
0
Dev
29.10.18
✎
20:43
|
Всем привет, помогите разобраться не могу понять, ругается на этом месте
ИзменитьРеквизиты(МассивДобавляемыхРеквизитов), это происходит после перезаполнения дерева значений, при программном его создании, я полностью удаляю дерево из формы методом Элементы.Удалить(Элементы.Найти("Дерево")) но мне все равно пишет что не уникальное имя реквизита "Дерево", не знаю что делать |
|||
1
palsergeich
29.10.18
✎
20:45
|
Элементы.Удалить(Элементы.Найти("Дерево") этим вы удаляете из коллекции Элементы
ИзменитьРеквизиты(МассивДобавляемыхРеквизитов) Этим в работаете с коллекцией РЕКВИЗИТЫ. Удалите дерево из коллекции РЕКВИЗИТЫ |
|||
2
palsergeich
29.10.18
✎
20:46
|
ИзменитьРеквизиты(<ДобавляемыеРеквизиты>, <УдаляемыеРеквизиты>)
Изменяет структуру реквизитов формы. Сначала выполняется удаление реквизитов. Таким образом массивы добавляемых и удаляемых реквизитов могут содержать реквизиты с одинаковым путём. Вам нужно в процедуру ИзменитьРеквизиты передать 2ой параметр |
|||
3
Dev
29.10.18
✎
20:48
|
Я пробовал тоже туда массив передавать он ругается на него
|
|||
4
palsergeich
29.10.18
✎
20:50
|
(3) А путь к реквизиту прописан верно?
|
|||
5
Dev
29.10.18
✎
20:50
|
УдаляемыеРеквизиты = Новый Массив;
Реквизиты Для Удаления = Получить Реквизиты(Элементы.Дерево.ПутьКДанным); Для Каждого Реквизит Удаления Из Реквизиты Для Удаления Цикл УдаляемыеРеквизиты.Добавить("Дерево"+"."+РеквизитУдаления.Имя); //// Удаляем элементы формы Элементы.Удалить(Элементы[Реквизит Удаления.Имя]); КонецЦикла; И потом вставлял массив Удаляемые реквизиты во второй параметр |
|||
6
palsergeich
29.10.18
✎
20:52
|
(5) Вы удаляете колонки дерева, но не само дерево же
|
|||
7
Dev
29.10.18
✎
20:53
|
Ну это я написал про реквизиты, а дерево я так удалял Элементы.Удалить(Элементы.Найти("Дерево"))
|
|||
8
palsergeich
29.10.18
✎
20:55
|
(7) На форме есть 2 коллекции - Реквизиты и Элементы.
Они могут быть связаны, а могут нет. ИзменитьРеквизиты - работает с коллекцией Реквизиты, ей совершенно все равно на коллекцию Элементы |
|||
9
Dev
29.10.18
✎
20:55
|
(4) Да конечно правильно, но только он ругается получается на Дерево, а это же не реквизит
|
|||
10
palsergeich
29.10.18
✎
20:58
|
происходит после перезаполнения дерева значений, при программном его создании из шапки
То есть Вы каждый раз создаете реквизит дерево (что там творится в элементах нас не интересует) и в первый раз оно создается програмно без проблем, во второй он не может добавить реквизит с свуществующим именем. В чем проблема? я выше уже описал как |
|||
11
hhhh
29.10.18
✎
20:58
|
(9) реквизит
|
|||
12
palsergeich
29.10.18
✎
21:05
|
Странно, из темы сообщения пропали, хотя были по теме и без оффтопа(
|
|||
13
Dev
29.10.18
✎
21:05
|
(8) Удалить реквизит я могу только с помощью этой функции чтоли ? ИзменитьРеквизиты(<ДобавляемыеРеквизиты>, <УдаляемыеРеквизиты>)
|
|||
14
palsergeich
29.10.18
✎
21:06
|
(13) только этой
|
|||
15
palsergeich
29.10.18
✎
21:06
|
(13) Причем только програмно добавленные реквизиты
|
|||
16
Dev
29.10.18
✎
22:17
|
(15) А если я тот же массив реквизитов удаляю что и добавляю, это должно работать ?
|
|||
17
palsergeich
29.10.18
✎
22:23
|
(16) да, сначала удаляется потом добавляется. См (2)
|
|||
18
Dev
29.10.18
✎
22:29
|
Недопустимый путь пишет ПутьКреквизиту
|
|||
19
Dev
29.10.18
✎
22:30
|
МассивДобавляемыхРеквизитов = Новый Массив;
МассивДобавляемыхРеквизитов.Добавить(Новый РеквизитФормы("Дерево", Новый ОписаниеТипов("ДеревоЗначений"))); Для Каждого Колонка Из ДеревоОбъект.Колонки Цикл МассивДобавляемыхРеквизитов.Добавить(Новый РеквизитФормы(Колонка.Имя, Колонка.ТипЗначения, "Дерево")); КонецЦикла; |
|||
20
Dev
29.10.18
✎
22:30
|
И этот же массив ставлю вторым параметром
|
|||
21
palsergeich
29.10.18
✎
22:33
|
Массивы должны быть разные по наполнению
<ДобавляемыеРеквизиты> (необязательный) Тип: Массив. Массив, содержащий объекты типа РеквизитФормы. Добавлять можно реквизиты верхнего уровня и вложенные реквизиты, являющиеся колонками. К добавленным реквизитам верхнего уровня из модуля можно обращаться только с помощью конструкции ЭтотОбъект.<Имя реквизита>. <УдаляемыеРеквизиты> (необязательный) Тип: Массив. Массив, содержащий строки, описывающие пути к удаляемым реквизитам. Удалять можно только ранее программно добавленные реквизиты. |
|||
22
Dev
30.10.18
✎
07:36
|
Да Дерево находится у меня по этому пути ЭтотОбъект.Дерево, теперь как мне его в массив добавить, чтобы мне ошибка не вываливалась, что не найден путь или еще что то ? Там нужны же строки
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |