Как перенести элемент справочника из группы в группу программно?

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

Выдает: Объект не может быть перепозиционирован!
Похожий вопрос нашла на форуме, но четкого ответа там нет.

Подскажите, пожалуйста, может я что не так делаю?"
"стоит попробовать так:

Спр.УстановитьАтрибут("Родитель", ПолучитьПустоеЗначение("Справочник.ОсновныеСредства"));
Спр.Записать();


Однако у меня возникают сомнения по поводу такого перебора. Как никак начинается перебор всех элементов в справочнике, и тут же они переносятся. Не уверен что цикл отработает до конца."
Переносила элементы справочника из группы в группу (существующую). Группы выбирались в диалоге как ОТКУДА и КУДА.
1. Считываем элементы группы ОТКУДА в таблицу значений.
2. При просмотре полученной таблицы значений в цикле, позиционируемся на совпадающий элем-т справочника,и устанавливаем для него ОС1.Родитель=КУДА      (это группа выбранная в диалоге)
Программа работает, текст не могу привести, т.к.получается непонятный шрифт.
если копируете текст из 1С то перед копированием русского текста нужно переключить раскладку клавиатуры на русский, тогда копирует нормально. если будет включён английский то при копировании фигня всякая получается. Глюк программы 1С. :-)
"Спасибо за подсказку. Правда, все получается.

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

Далее ОС1.Родитель=Ку

Нормально все переносится в корень.
Получился вариант со списком и методом НайтиЭлемент. Большое спасибо всем, кто откликнулся!
Читают тему
(гостей: 1)

Быстрый переход