|
Заполнить значение реквизита записи справочника по имени реквизита. | ☑ | ||
|---|---|---|---|---|
|
0
ice777
28.05.09
✎
15:22
|
Имею 2 объекта не совсем аналогичных (записи 2-х похожих справочников).
Надо значение конкретного реквизита из одной записи переписать в другую. Имя реквизита известно(как строка). Записи как объекты имеются. Хочется что-то вроде НовЗ[РеквизитВ].Значение = СтарЗ[Реквизит].Значение. Что-то писали про ПолучитьАтрибут.. но это же тока в XML годится. |
|||
|
1
bvn13
28.05.09
✎
15:29
|
(0) а НовЗ[РеквизитВ].Значение = СтарЗ[Реквизит].Значение не прокатывает?
|
|||
|
2
Jaap Vduul
28.05.09
✎
15:29
|
НовЗ[РеквизитВ] = СтарЗ[Реквизит];
|
|||
|
3
ice777
28.05.09
✎
15:29
|
1. нет. Иначе бы в качестве примера и не приводил :(
|
|||
|
4
ice777
28.05.09
✎
15:31
|
Ну давайте яснее напишу:
НовОбъектСправочника1[РеквизитВ].Значение = СтарыйОбъектСправочника1[Реквизит].Значение. - типа этого хочу |
|||
|
5
ice777
28.05.09
✎
15:32
|
(2)нет к объектам такого обращения
|
|||
|
6
НЕА123
28.05.09
✎
15:33
|
(5) что неправильно в (2)?
ЗЫ сегодня пятница? |
|||
|
7
zbv
28.05.09
✎
15:34
|
(5) Почему нет?
|
|||
|
8
ice777
28.05.09
✎
15:37
|
Потому что НовЗ и СтарЗ - типа СправочникОбъект, а в квадратных скобках - строковое имя реквизита. Ругается 1С и все.
|
|||
|
9
73
28.05.09
✎
15:38
|
Глобальный контекст
ЗаполнитьЗначенияСвойств (FillPropertyValues) Синтаксис: ЗаполнитьЗначенияСвойств(<Приемник>, <Источник>, <Список свойств>, <Исключая свойства>) |
|||
|
10
ice777
28.05.09
✎
15:40
|
(9) это похоже на правду
|
|||
|
11
НЕА123
28.05.09
✎
15:41
|
(9) имена реквизитов вроде разные.
|
|||
|
12
73
28.05.09
✎
15:42
|
(11) Не заметил, для разных не подойдет.
|
|||
|
13
Defender aka LINN
28.05.09
✎
15:43
|
(5) Что курил?
|
|||
|
14
Jaap Vduul
28.05.09
✎
15:44
|
(8)Покажь код и ругательства
|
|||
|
15
zbv
28.05.09
✎
15:44
|
(8) кавычки поставь, если "строковое"
|
|||
|
16
hhhh
28.05.09
✎
15:44
|
(4) наоборот, как в (4) точно не будет работать. Как в (2) работает.
|
|||
|
17
ice777
28.05.09
✎
15:54
|
(15)Обисняю: никаких кавычек"" поставить не могу, бо только моей обработке известно имя обрабатываемого реквизита. Оно строковое. А [] итак стоят.
(13) Это СправочникОбъект! разве можно к значению реквизита обратиться вот так, именем в [] ? |
|||
|
18
hhhh
28.05.09
✎
15:57
|
(17) это у тебя заклинание такое "СправочникОбъект"? Он не кусается, попробуй, увидишь.
|
|||
|
19
zbv
28.05.09
✎
15:58
|
РеквизитВ - это что? равно чему-нибудь?
|
|||
|
20
ice777
28.05.09
✎
15:58
|
код:
// Нов запись в выверке: СтарЗ=НЗап.Ссылка.ПолучитьОбъект(); НовЗ=Справочники.СотрудникиВыверенные.СоздатьЭлемент(); РеквизитыВ=НовЗ.Метаданные().Реквизиты; реквизиты=НЗап.Ссылка.ПолучитьОбъект().Метаданные().Реквизиты; Для каждого Реквизит из Реквизиты цикл Для каждого РеквизитВ из РеквизитыВ цикл Если РеквизитВ.Имя=Реквизит.Имя тогда Сообщить(Реквизит); НЗап[Реквизит.Имя]=СтарЗ[Реквизит.Имя]; //ЗаполнитьЗначенияСвойств(СтарЗ,НовЗ,Реквизит.Имя); КонецЕсли; КонецЦикла; КонецЦикла; |
|||
|
21
ice777
28.05.09
✎
16:00
|
ОШИБКА: Поле объекта не обнаружено (Организация) НЗап[Реквизит.Имя]=СтарЗ[Реквизит.Имя];
|
|||
|
22
zbv
28.05.09
✎
16:01
|
(20) и на что ругается.
Кстати ЗаполнитьЗначенияСвойств - подойдет, только код переписать... |
|||
|
23
hhhh
28.05.09
✎
16:01
|
(20) наоборот надо
ЗаполнитьЗначенияСвойств(НОВЗ, СтарЗ, Реквизит.Имя); |
|||
|
24
ice777
28.05.09
✎
16:02
|
(23) верно. но что, пустую ссылку не пишет?
|
|||
|
25
hhhh
28.05.09
✎
16:03
|
(24) ты точно накурился. Что же ты пишешь
НЗап[Реквизит.Имя]=СтарЗ[Реквизит.Имя]; надо Новз[Реквизит.Имя]=СтарЗ[Реквизит.Имя]; |
|||
|
26
ice777
28.05.09
✎
16:03
|
(23) работает. А вот что говорят в (18) - не верю.
|
|||
|
27
zbv
28.05.09
✎
16:07
|
НовЗ=Справочники.СотрудникиВыверенные.СоздатьЭлемент();
ЗаполнитьЗначенияСвойств(НОВЗ, НЗап); |
|||
|
28
ice777
28.05.09
✎
16:10
|
(25) О , hhhh? ты прав. И такая фича работает. Я действительно лоханулся, когда вместо объекта набор записей воткнул.
Блин, в справке об таком способе НИФИГА! КОРОЧЕ, Оба способа работают. |
|||
|
29
ice777
28.05.09
✎
16:11
|
(27) там немного разный набор полей, поэтому мне надо проверять наличие в приемнике.
|
|||
|
30
NewNick
28.05.09
✎
16:12
|
(29) само проверит )
а за такие вложеные циклы надо руки отрывать ;) |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |