Имя: Пароль:
1C
1C 7.7
v7: Смена родителя
0 kupec
 
17.02.12
11:03
Добрый день !!! Подскажите как перенести все элементы справочника в его корень ? Написал процедуру но не работает до конца правильно, я как понимаю при смене родителя нарушается выборка, и соответственоо переносятся не все элементы !!!



   С=СоздатьОбъект("Справочник.Товары");
   С.ПорядокКодов();
   С.ВыбратьЭлементы();
   Пока С.ПолучитьЭлемент()=1 Цикл
       Если С.ЭтоГруппа()=0 Тогда
           С.Родитель="";
           С.Записать();
       КонецЕсли;    
   КонецЦикла;
1 План счетов
 
17.02.12
11:06
да, совершенно верно!
2 kupec
 
17.02.12
11:06
(1) как то это можно обойти ?
3 План счетов
 
17.02.12
11:07
Если С.ЭтоГруппа()=0 Тогда
С.Родитель="";
С.Записать();
С.ВыбратьЭлементы();
КонецЕсли;
4 kupec
 
17.02.12
11:08
спасибо
5 kupec
 
17.02.12
11:09
(3) получается бесконечны цикл !!!
6 План счетов
 
17.02.12
11:10
(5) Подумай, как обойти.
7 План счетов
 
17.02.12
11:11
Подсказка:

ПустоеЗначение
С.Родитель
Если
8 kupec
 
17.02.12
11:11
может сделать перебор чисел, например найти наибольший код товара, и в цикле перебирать коды, ну и соответственно если найдется то менять родителя
9 План счетов
 
17.02.12
11:12
(8) тогда лучше буквы алфавита перебирать, их меньше.
10 kupec
 
17.02.12
11:13
если пустоезначение родителя тогда выбратьэлементы не делать чтоли ?
11 viktor_vv
 
17.02.12
11:14
А не проще

С.ВыбратьЭлементы(0);
12 Voronve
 
17.02.12
11:14
С=СоздатьОбъект("Справочник.Товары");
СД=СоздатьОбъект("Справочник.Товары");
С.ПорядокКодов();
С.ВыбратьЭлементы();
Пока С.ПолучитьЭлемент()=1 Цикл
  Если С.ЭтоГруппа()=0 Тогда
     СД.НайтиЭлемент(С.ТекущийЭлемент());
     СД.Родитель="";
     СД.Записать();
  КонецЕсли;    
КонецЦикла;
13 viktor_vv
 
17.02.12
11:15
По идее в таком варианте не должна нарушаться выборка.
14 kupec
 
17.02.12
11:18
(11) Спасибо !!! Работает !!!
15 Ёпрст
 
17.02.12
11:21
(0)

update $Справочник.Товары
set parentid = :ПустойИД
where isfolder =2

или С.ВыбратьЭлементы(0); и закомментить С.ПорядокКодов();
16 Баклажанов
 
17.02.12
11:38
родитель http://goo.gl/GiLcc
17 Ёпрст
 
17.02.12
11:39
(16) забей себе гвоздь в голову, пока не поздно
18 Эльниньо
 
17.02.12
12:25
(15) В прямых нуб. Случаем не все элементы спр-ка окажутся без папы?
А где where на конкретного родителя?
19 ДенисЧ
 
17.02.12
12:27
(18) А зачем вере, если условие стоит "все"?
20 Эльниньо
 
17.02.12
12:42
(19) Ну да. Плохо сабж прочитал.
21 Ёпрст
 
17.02.12
12:54
(18) нет, только элементы - в "вере" стоит условие на исфолдер