|
1С скопировать элементы справочника со всеми вложенными папками | ☑ | ||
---|---|---|---|---|
0
andrey i1c
02.03.20
✎
14:38
|
Хочу сделать обработку, есть "источник" где мы выбираем папку справочника номенклатуры. И "приемник" тут мы выбираем папку куда скопируем все элементы и вложенные папки выбранного "источника". Задача была бы просто если не было вложенных папок, а только элементы, тогда можно было просто сменить родителя элементов и записать. Но как скопировать все элементы выбранной папки в другую папку в рамках одного справочника со всеми вложенными папками?
|
|||
1
vicof
02.03.20
✎
14:40
|
есть такое понятие, как рекурсия
|
|||
2
unenu
02.03.20
✎
14:43
|
если без рекурсии, то записать сначала и группы и элементы в плоский список, а на 2-м проходе записать поле родитель.
с рекурсией гемор - для студентов с рогатками на пустом месте. почти всегда пишу в два прохода без рекурсий и минимум затыков. |
|||
3
Garykom
гуру
02.03.20
✎
14:50
|
(0) Скопировать или переместить?
И в 1С иерархия групп и/или элементов какие еще "папки"? |
|||
4
mikecool
02.03.20
✎
14:52
|
(3) +1
для перемещения - можно и мышой кликнуть |
|||
5
andrey i1c
02.03.20
✎
14:54
|
(3) скопировать
|
|||
6
Garykom
гуру
02.03.20
✎
14:57
|
(5)
НоменклатураВыборка = Справочники.Номенклатура.ВыбратьИерархически(Источник); Пока НоменклатураВыборка.Следующий() Цикл // ... КонецЦикла; |
|||
7
dezss
02.03.20
✎
15:01
|
хм...а что там делать?
Выбираешь все что нужно, например, запросом. Потом обход и копирование. Если родитель у скопированного "источник", то меняем его на "приемник". Все, профит. СправочникСсылка.<Имя справочника> (CatalogRef.<Имя справочника>) Скопировать (Copy) Синтаксис: Скопировать() Возвращаемое значение: Тип: СправочникОбъект.<Имя справочника>. Описание: Создает новый элемент справочника копированием существующего. Доступность: Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер). Примечание: Использование метода не приводит к записи созданного объекта в базу данных. |
|||
8
goodprog
02.03.20
✎
15:03
|
(6) (7) ДА я думаю у человека все проблема в обходе дерева
|
|||
9
dezss
02.03.20
✎
15:03
|
(7) Ну и с группами точно так же. Всегда подменяешь родителя на родителя в "приемнике". Тут вариантов куча.
|
|||
10
goodprog
02.03.20
✎
15:03
|
ХОтя пример из (3) показывает как и без него можно
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |