Имя: Пароль:
1C
 
Присвоить ссылку на объект
🠗 (Волшебник 20.02.2025 10:50)
,
0 petr_ivanov
 
naïve
20.02.25
10:47
Добрый день,

мне нужно создать объект и передать ссылку на объект дальше в код.

Делаю так

НомОбъект = Справочники.Номенклатура.СоздатьЭлемент();
...
НомОбъект.Записать();

СтрокаДанных.Номенклатура = НомОбъект;


Смотрю в Табло: НомОбъект в поле значение имеет тип СправочникОбъект.Номенклатура, а вот СтрокаДанных.Номенклатура - пустая ссылка с типом СтрокаДанных.Номенклатура. Она и до присвоения была такой, по какой-то причине операция присвоения не срабатывает. Сама номенклатура создается.

Что я делаю не так? Как структуре СтрокаДанных.Номенклатура присвоить ссылку на созданный объект?
1 Волшебник
 
20.02.25
10:47
СтрокаДанных.Номенклатура = НомОбъект.Ссылка;
2 petr_ivanov
 
naïve
20.02.25
10:53
(1) спасибо, запомню
3 petr_ivanov
 
naïve
20.02.25
10:54
Но почему Табло НомОбъект показывает что у объекта есть значение, а передать его надо через .ссылка ?
4 Креатив
 
20.02.25
10:58
(3)А тип НомОбъекта табло показывает?
5 Stepashkin
 
20.02.25
10:58
(3) Есть объект НомОбъект, у него есть ссылка НомОбъект.Ссылка. СтрокаДанных.Номенклатура у вас ссылочного типа, поэтому необходимо присваивать не сам объект, а его ссылку.
6 Stepashkin
 
20.02.25
10:59
(3) значение ссылки
7 Stepashkin
 
20.02.25
11:00
(3) Стыдно такое не знать.
8 Волшебник
 
20.02.25
11:06
(2) Запомните, что у каждого значения есть тип и он единственный. У каждого поля/реквизита тоже есть тип, который может быть конкретным или составным.
При присвоении значения несовместимых типов платформа 1С не выдаёт ошибку, но значения поля очищает. Это родовая травма платформы 1С.
9 eddy_n
 
20.02.25
11:58
(8) Документированная возможность?
10 Asmody
 
20.02.25
12:01
(9) динамическое приведение типов
11 eddy_n
 
20.02.25
12:38
(10) Устоявшееся выражение.
12 bolder
 
22.02.25
10:37
(0) Стыдно не отличать ссылку и объект.
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн