|
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) показывает как и без него можно
|
|