Имя: Пароль:
1C
1С v8
Как из элемента сделать группу
,
0 mannilele
 
04.12.12
13:30
Перегружал в 8-ку данные из 7-ки, накосячил и вместо групп некоторые группы перенеслись как элементы. пишу такой код:

НоваяНомен=НоваяНомен.Ссылка.ПолучитьОбъект();
   Если Не НоваяНомен.ЭтоГруппа Тогда
       УИД=НоваяНомен.Ссылка.УникальныйИдентификатор();
               Код=НоваяНомен.Код;
       НоваяНомен.Удалить();
       НоваяНомен=Справочники.Номенклатура.СоздатьГруппу();
 НоваяНомен.УстановитьСсылкуНового(Справочники.Номенклатура.ПолучитьСсылку(УИД));
НоваяНомен.Код=Код;  
НоваяНомен.Записать();
КонецЕсли;

Но после этого в объектах, где была ссылка на этот элемент, не прописалась группа-а занчится как "Объект не найден". Что я делаю не так? как нужно делать правильно?
Спасибо!
1 Maxus43
 
04.12.12
13:41
а группа то создалась?
2 kosts
 
04.12.12
13:44
(0) Воспользуйся обработкой на диске ИТС
ПоискИЗаменаЗначений.epf
3 mannilele
 
04.12.12
13:50
(1) группа создалась
4 Reset
 
04.12.12
13:50
Код, хотя и ужасен, вроде должен приводить к результату (или не вижу косяка изза извращенного нписания)
Получаемый УИД проверял?
Что такое НоваяНомен изначально?
5 Maxus43
 
04.12.12
13:50
переменные конечно надо разные использовать, а не валить всё в одну, запутаться можно и  не увидеть
6 mannilele
 
04.12.12
13:51
(4) если вы про выравнивание-то это так плохо скопировалось))а если вообще-ну...бывает))
НоваяНомен- номенклатура, которая ищется по коду
7 Reset
 
04.12.12
13:52
(6) что такое номенклатура?
8 Reset
 
04.12.12
13:52
приведи код, которым инициализирутся НоваяНомен
9 mannilele
 
04.12.12
13:56
(4) УИД- проверял. после удаления ссылка по УИД- "объект не найден..". Если смотреть УИД вновь создавемой группы- то там одни нули

Номен=Справочники.Номенклатура;
//тут идет код по поиску, извинте за тафтологию, кода- т.е. //из текстового файла берется строка с полным кодом из 7-ки //и обрабатывается        
НоваяНомен=Номен.НайтиПоКоду(Код);
Если НоваяНомен.Пустая() Тогда
Иначе
10 Reset
 
04.12.12
13:57
после НоваяНомен.Записать();

сверь НоваяНомен.Ссылка.UUID() и УИД
11 Maxus43
 
04.12.12
13:58
(3) посомтри у неё ссылку, она такая-же? или таки другая сгенерилась?
12 Reset
 
04.12.12
13:59
в описании УстановитьСсылкуНового говориться:
Значение не может равняться ссылке какого-либо из имеющихся в базе данных объекта данного типа. Уникальность ссылки проверяется при записи объекта.

Возможно, это мешает, несмотря на то, что элемент [недавно?]удален. Это если (10) разные
13 mannilele
 
04.12.12
14:59
переделал:

Если Не НоваяНомен.ЭтоГруппа Тогда
                   УИД=НоваяНомен.Ссылка.УникальныйИдентификатор();
   НоваяНомен.Удалить();
                   Номен=Справочники.Номенклатура.СоздатьГруппу();
                   Номен.УстановитьСсылкуНового(Справочники.Номенклатура.ПолучитьСсылку(УИД));
   Номен.Код=Код;  
   Номен.Записать();
КонецЕсли;

И все получилось! Спасибо!
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой