![]() |
![]() |
![]() |
|
Присвоить родителя | ☑ | ||
---|---|---|---|---|
0
urank
30.04.13
✎
12:42
|
Здравствуйте, в одной дб есть два иерархических справочника спр1 и спр2, нужно рекурсивно скопировать все элементы первого во второй с сохранением вложенности. Делаю так
[code] &НаКлиенте Процедура ВыполнитьНаСервере1(Команда) Рекурсия(); КонецПроцедуры &НаСервере Процедура Рекурсия(Группа=Неопределено) // Перем РодительСпр1; Выборка=Справочники.Спр1.Выбрать(?(Группа=Неопределено,Справочники.Спр1.ПустаяСсылка(),Группа)); Пока Выборка.Следующий() Цикл Если Выборка.ЭтоГруппа Тогда НоваяГруппа = Справочники.Спр2.СоздатьГруппу(); НоваяГруппа.Родитель = Выборка.Родитель.Наименование; НоваяГруппа.Наименование = Выборка.Ссылка.Наименование; НоваяГруппа.Код = Выборка.Ссылка.Код; НоваяГруппа.Записать(); Иначе НоваяЗапись = Справочники.Спр2.СоздатьЭлемент(); НоваяЗапись.Родитель = Выборка.Родитель.Наименование; НоваяЗапись.Наименование = Выборка.Ссылка.Наименование; НоваяЗапись.Код = Выборка.Ссылка.Код; НоваяЗапись.Записать(); КонецЕсли; Если Выборка.Родитель <> Справочники.Спр1.ПустаяСсылка() Тогда РодительСпр1 = Выборка.Родитель; Если РодительСпр1 <> Справочники.Спр2.НайтиПоНаименованию(РодительСпр1) тогда ЭлементОбъект = РодительСпр1; ЭлементОбъект.Родитель = РодительСпр1.Родитель; ЭлементОбъект.Записать(); Иначе продолжить; КонецЕсли; КонецЕсли; Рекурсия(Выборка.Ссылка); КонецЦикла; КонецПроцедуры [/code] Но выдаёт ошибку: Поле объекта недоступно для записи (Родитель) ЭлементОбъект.Родитель = РодительСпр1.Родитель; Как не используя таблицу значений присвоить соответствующим элементам соответствующих родителей? |
|||
1
cw014
30.04.13
✎
12:44
|
ПолучитьОбъект(), блеать
|
|||
2
SherifSP
30.04.13
✎
12:47
|
ггг ссылку можно записывать?))
|
|||
3
urank
30.04.13
✎
12:54
|
(2) Можно
|
|||
4
cw014
30.04.13
✎
12:54
|
(3) Ну записывай тогда, не будем мешать
|
|||
5
urank
30.04.13
✎
13:00
|
(4) Я только начал разбираться с 1с, в какой строке кода и на что ссылку скопировать надо?
|
|||
6
Naumov
30.04.13
✎
13:07
|
записывать можно только в ОБЪЕКТ. Ссылка только для чтения
|
|||
7
cw014
30.04.13
✎
13:08
|
Сначала разберись, чем типы СправочникСсылка отличается от СправочникОбъект...
|
|||
8
Godofsin
30.04.13
✎
13:09
|
(5) Разность познай, юный подаван, между СправочникСсылка и СправочникОбъект.
|
|||
9
cw014
30.04.13
✎
13:11
|
Я вот помню, когда "начал" разбираться с 1С - писал отчет, и на форумах не сидел, ибо отчет нужно было написать архибыстро... До поздна курил СП
|
|||
10
urank
30.04.13
✎
14:29
|
Ну так что? Кто-нибудь укажет явно на ошибку в коде?
|
|||
11
salvator
30.04.13
✎
14:32
|
(10) За полтора часа так и не понял? Вон из профессии.
|
|||
12
hhhh
30.04.13
✎
14:39
|
(10) НоваяЗапись.Родитель = Выборка.Родитель.Наименование
в поле Родитель фигачишь строку ЭлементОбъект = РодительСпр1; ЭлементОбъект.Родитель = РодительСпр1.Родитель; ЭлементОбъект.Записать(); РодительСпр1 - это ссылка, у нее нет метода Записать(); |
|||
13
cw014
30.04.13
✎
14:45
|
(12) в (11) ему явно указали на его ошибку ))))
|
|||
14
urank
30.04.13
✎
17:28
|
НоваяЗапись.Родитель = Выборка.Родитель.Наименование - так тоже не работает, справочники разные.
|
|||
15
Aprobator
30.04.13
✎
21:45
|
(14) ик ик ик.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |