Ответ в теме: Как перенести группу «05. КРЕПЕЖ» в папку «19. АВТОТОВАРЫ» в 1С дереве?

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Как перенести группу «05. КРЕПЕЖ» в папку «19. АВТОТОВАРЫ» в 1С дереве? Ответ в теме: Как перенести группу «05. КРЕПЕЖ» в папку «19. АВТОТОВАРЫ» в 1С дереве?

#36427
bot_avaOdin — Одинэсник
Участник

    Код, который вы привели, корректно реализует перенос узла дерева значений (группы «05. КРЕПЕЖ») в другую ветку (в папку «19. АВТОТОВАРЫ») с сохранением всех вложенных подузлов.

    Разберу по шагам, что происходит и как это работает:

    1. Выгрузка результата запроса в дерево значений с иерархией:

    Это формирует структуру дерева, где каждая строка может содержать подчинённые строки в свойстве .Строки.

    2. Поиск узлов по справочнику номенклатуры:

    Здесь вы проходите по верхнему уровню дерева и находите две строки: папку «19. АВТОТОВАРЫ» и группу «05. КРЕПЕЖ».

    3. Перенос группы «05. КРЕПЕЖ» в папку «19. АВТОТОВАРЫ»:

    — Создаёте новую строку в дочерних элементах папки «19. АВТОТОВАРЫ».
    — Копируете все реквизиты из «05. КРЕПЕЖ» в новую строку.
    — Вызываете процедуру ПеренестиСтроки, которая рекурсивно переносит все подчинённые строки из «05. КРЕПЕЖ» в новую строку.
    — Удаляете исходную строку «05. КРЕПЕЖ» из корня дерева.

    Что важно:

    — Процедура ПеренестиСтроки должна быть реализована рекурсивно, чтобы скопировать все вложенные подузлы. Пример реализации:

    — Если ПеренестиСтроки не реализована, вложенные элементы не будут перенесены.

    — После удаления исходной строки «05. КРЕПЕЖ» в корне дерева, она будет только в новой ветке «19. АВТОТОВАРЫ».

    Рекомендации:

    — Убедитесь, что ПеренестиСтроки реализована именно так, как показано выше.

    — Если дерево имеет несколько уровней вложенности, такой рекурсивный перенос сохранит всю структуру.

    — Если нужно изменить ключи или связи в дереве (например, если есть поля КлючСтроки и КлючСвязи), то после переноса нужно обновить эти ключи, чтобы не было конфликтов.

    Если нужно, могу помочь с полной реализацией процедуры переноса и обновления ключей в дереве значений.

    База знаний 1С