7.7 Перенос справочника

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем vsv, 18 ноя 2008.

  1. TopicStarter Overlay
    vsv
    Offline

    vsv

    Регистрация:
    21 ноя 2007
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Есть две базы. Надо из одной перенести справочник в другую. Выгрузка через OLE. Перенос элемента сложности не вызывает, но справочник многоуровневый и надо перенести в туже папку, что и в первой базе (если папки нет, то создать).
    На данном этапе получилось так:

    Если ЭлементБаза1.Родитель.Уровень() = 3 Тогда
    ...
    ЭлементБаза2.Код = ЭлементБаза1.Родитель.Родитель.Родитель.Код;
    ЭлементБаза2.ИспользоватьРодителя(ЭлементБаза2.ТекущийЭлемент());
    ЭлементБаза2.Код = ЭлементБаза1.Родитель.Родитель.Код;
    и т.д.
    ...
    КонецЕсли;

    Т.е. перебор всех уровней и создание папок, а потом элемента.
    А если справочник будет 4,5,6... уровневым....
    Подскажите, можно ли как-то это оптимизировать.
    Заранее спасибо.
  2. WaRDeR
    Offline

    WaRDeR Модераторы Команда форума Модератор

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    Используй рекурентные функции
  3. sergey_s_v
    Offline

    sergey_s_v

    Регистрация:
    16 дек 2008
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    на самом деле все намного проще, в два прохода (через текст или через ОЛЕ - не важно):
    1. записать все элементы и каталоги общим списком в базу2, соблюдая кодировку.
    2. присвоить элементам справочника базы2 родителей согласно базы1 по кодам. это просто, т.к. все элементы и каталоги у нас уже записаны, их только подружить надо.

    я делал и 5ти и 8ми уровневую вложенность - быстро и просто
  4. ASh
    Offline

    ASh Опытный в 1С

    Регистрация:
    10 сен 2008
    Сообщения:
    568
    Симпатии:
    0
    Баллы:
    26
    Не прокатит, если уникальность кода в пределах группы.

    На самом деле все еще проще:) Если идет полная синхронизация справочника, то нужно просто выборку правильно организовать с учетом иерархии. Тогда группы раньше элементов обрабатываться будут. А если выборочная выгрузка элементов идет, тогда действительно рекурсией подняться до уже существующей группы и потом создавать недостающие.
  5. tirk
    Offline

    tirk Опытный в 1С

    Регистрация:
    1 сен 2008
    Сообщения:
    1.142
    Симпатии:
    0
    Баллы:
    26
    А в какую базу?? 7*7 или 7*8 ??

Поделиться этой страницей