Вот ведь, когда не надо было, несколько раз натыкался на пример переноса, сейчас приспичило - не могу найти!
Подскажите, плиз, заранее благодарен.
Вот ведь, когда не надо было, несколько раз натыкался на пример переноса, сейчас приспичило - не могу найти!
Подскажите, плиз, заранее благодарен.
Переназначаешь аттрибут элемента "Родитель" на нужную групп и все
Спасибо, я это уже случайно сообразил(но все равно спасибо!), но теперь другая проблема: один элемент переносится с полпинка, а вот в цикле для всего справочника- никак. У меня 4 группы (в каждой порядка 6 - 8 тысяч элементов, в одной аж 15530), мне надо от групп избавиться, т.е. выкинуть все материалы в корневик справочника (есс-но, коды я делаю уникальные):
// нг - переменная, содержащая номер группы
СпрМ = СоздатьОбъект("Справочник.Материалы");
СпрМ.ВыбратьЭлементы();
Пока СпрМ.ПолучитьЭлемент() = 1 Цикл
Если СпрМ.ЭтоГруппа() = 1 Тогда
Продолжить;
КонецЕсли;
СпрМ.Код = Число(СпрМ.Код) + 100000 * нг;
СпрМ.Родитель = "";
СпрМ.Записать();
КонецЦикла;
Цикл выполняется 4 раза, по одному для каждой группы. Если повторить обработку, он выполнится снова 4 раза. Причем, если заремить строчку Родитель, то изменение кодов отрабатывается полностью для всего справочника. Видимо, при записи нового Родителя курсор цикла сдвигается в конец текущей группы... И как это побороть? Можно, конечно, этот цикл засунуть в еще один, и прогнать внешний 20000 раз, но это же крайне некрасиво и чудовищно долго.
Сама процедура посложнее, конечно (там проверка текущего кода, родителя и кой-чего еще), но остальное неважно.
Это понятно, есть такая проблем, что после перноса элементы в другую группу "выборка "портиться" ", поэтому поставь все эти строки еще раз в цикл (по количеству элементов) правда это будет долго работать,
либо создай список значений, куда запихаешь ссылки на все элементы, а потом уже цикл не по справочнику, а по элементам списка .....
>> поэтому поставь все эти строки еще раз в цикл
>> (по количеству элементов) правда это будет
>> долго работать,
дык я так и сделал, тока самому аж тошно смотреть - некрасиво енто...хочется же, шоб усё было окейно!
а вот список значений - это интересно, отстанут бухгалтера - доделаю процедурку, вдруг исчо пригодится...
спасибо за помощь![]()
Можно было отключить контроль за уникальностью кодов.
Просто перебирая Справочник Материалов присваивать нового Родителя и новые Код, на который поставить счетчик для подсчета. Все заново перенумеруется,
После снова включить контроль уникальности..
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)