Как скопировать иерархический справочник?
X

Привет дорогой друг

Наш сайт существует и развиваетется за счет рекламы. Пожалуйста, отключите блокировку рекламы AdBlock или подобное, для нашего сайта. Спасибо!
Показано с 1 по 3 из 3
  1. #1
    Пришел за помощью

    Регистрация
    19.02.2009
    Сообщений
    6
    Сказал(а) спасибо
    31
    Поблагодарили 11 раз(а) в 1 сообщении

    По умолчанию Как скопировать иерархический справочник?

    Доброго времени суток!
    Имеется иерархический справочник. Необходимо скопировать одну из его групп, со всеми вложенными элементами и уровнями.

    Под семерку нашел пример:


    //************************************************** *****Процедура КопированиеГруппСпр(СпрТекГруппа,СпрНовГруппа) СпрНом = СоздатьОбъект("Справочник.Номенклатура "); НовГр = СоздатьОбъект("Справочник.Номенклатура "); СпрНом.ИспользоватьРодителя(СпрТекГруппа); СпрНом.ВыбратьЭлементы(1); Пока СпрНом.ПолучитьЭлемент(1)>0 Цикл Если (СпрНом.ЭтоГруппа() = 1) и (СпрНом.Уровень() - 1 = СпрТекГруппа.Уровень()) Тогда Сообщить(СпрНом); НовГр.ИспользоватьРодителя(СпрНовГруппа); НовГр.НоваяГруппа(); НовГр.Наименование = СпрНом.Наименование; НовГр.Записать(); КопированиеГруппСпр(СпрНом,НовГр); КонецЕсли; КонецЦикла;КонецПроцедуры//************************************************** ****Процедура Сформировать() КопированиеГруппСпр(СпрТекГруппа,СпрНовГруппа);КонецПроцедуры//************************************************** ****Где:СпрТекГруппа - группа справочника откуда нужно выполнять переносСпрНовГруппа - группа справочника куда нужно выполнять перенос

    Попытался переделать его под восьмерку, но пока ничего не выходит :(

    Вот что получилось:


    Перем СпрТекГруппа,СпрНовГруппа;Процедура КнопкаВыполнитьНажатие(Кнопка)СпрТекГруппа = Справочники.Номенклатура.НайтиПоКоду("0 11");КопированиеГруппСпр(СпрТекГруппа,СпрНовГруппа);КонецПроцедурыПроцедура КопированиеГруппСпр(СпрТекГруппа,СпрНовГруппа)СпрНом = Справочники.Номенклатура;НовГр = Справочники.Номенклатура;;Выборка = СпрНом.Выбрать(СпрТекГруппа);Пока Выборка.Следующий() Цикл //Если (Выборка.ЭтоГруппа() = 1) и (Выборка.Уровень() - 1 = СпрТекГруппа.Уровень()) Тогда Если (Выборка.ЭтоГруппа) Тогда Сообщить(СпрНом); НовЭл = НовГр.СоздатьГруппу(); //НовЭл.Родитель(СпрНовГрупп а); НовЭл.Наименование = Выборка.Наименование; НовЭл.Записать(); Сообщить(НовЭл.Код); КопированиеГруппСпр(Выборка,НовЭл); КонецЕсли; КонецЦикла;КонецПроцедуры
    Цикл проходит один раз, создается новая группа и уже на втором кругу цикла вываливает ошибку:


    {Форма.Форма(12)}: Ошибка при вызове метода контекста (Выбрать): Несоответствие типов (параметр номер '1')Выборка = СпрНом.Выбрать(СпрТекГруппа);по причине:Несоответствие типов (параметр номер '1')
    Да и с условием этим


    Если (Выборка.ЭтоГруппа() = 1) и (Выборка.Уровень() - 1 = СпрТекГруппа.Уровень())
    я никак не разберусь :(

  2. #2
    Пришел за помощью

    Регистрация
    04.07.2011
    Адрес
    Киев
    Сообщений
    23
    Сказал(а) спасибо
    53
    Поблагодарили 18 раз(а) в 8 сообщениях

    По умолчанию

    Если структура справочников первой и второй конфигураций одинакова - это делается за 5 минут обработкой "Выгрузка и загрузка данных XML".
    Взять можно с диска ИТС.

  3. Пользователь сказал cпасибо:

    vovka135 (18.01.2013)

  4. #3
    Пришел за помощью

    Регистрация
    19.02.2009
    Сообщений
    6
    Сказал(а) спасибо
    31
    Поблагодарили 11 раз(а) в 1 сообщении

    По умолчанию

    Скопировать надо в пределах ОДНОЙ БАЗЫ :)

    Есть справочник "Номенклатура". В нем куча групп с подгруппами. Вот одну из групп и надо скопировать со всем её содержимым и структурой. Оставить все как есть, за исключением кодов разумеется.

    Но за идею спасибо! Сейчас попробую из базы в ее копию залить. Возможно что-то и получится.

Похожие темы

  1. 1С сбился справочник валют
    от ali-fd в разделе 1С - Предприятие 7.7
    Ответов: 0
    Последнее сообщение: 04.02.2012, 14:09

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •