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