|
Тип Шрифт сравнивается не по равенстве ссылок |
☑ |
0
Ненавижу 1С
гуру
17.11.20
✎
22:50
|
Хотя может и некорректно говорить о равенстве ссылок в 1С и вообще, что это ссылка на объект.
Вендор как-то скупо это объясняет или я читаю не там.
Но тем не менее, имеем:
Новый Структура = Новый Структура // дает Ложь, это понятно
Новый Шрифт = Новый Шрифт // Истина
Новый Шрифт("Arial") = Новый Шрифт("Arial") // Истина
Новый Шрифт("Arial") = Новый Шрифт("Courier") // Истина
подозреваю, что так ведут себя ВСЕ неизменяемые типы (а у экземпляра шрифта нельзя поменять свойства прямо или косвенно)
т.е. сравнение таких типов идет по равенству свойств
З.Ы. не знаю кому это может понадобится, просто игра воображения
|
|
1
Ненавижу 1С
гуру
17.11.20
✎
22:50
|
(1) Новый Шрифт("Arial") = Новый Шрифт("Courier") // Ложь
забыл исправить...
|
|
2
acht
17.11.20
✎
22:53
|
(0) Там тупо кэшируются результаты вызова конструктора, тебе возвращается последняя ссылка. С ОписаниеТипа тоже самое.
|
|
3
Ненавижу 1С
гуру
17.11.20
✎
23:04
|
(2) проверялось? а если один объект "приедет" на сервер с клиента, а второй создастся по-месту?
|
|
4
acht
17.11.20
✎
23:06
|
(3) Конструктор-то вызовется в любом случае
|
|
5
Ненавижу 1С
гуру
17.11.20
✎
23:08
|
(4) но он же вызовется как-бы в разных местах, один на сервере, другой на клиенте
это возможное, но сложное объяснение
|
|
6
acht
17.11.20
✎
23:13
|
(5)
ш1 = Новый Шрифт("Arial");
Параметры = Новый Массив;
Параметры.Добавить("Arial");
ш2 = Новый("Шрифт", Параметры);
Сообщить(ш1 = ш2);
=)
|
|
7
acht
17.11.20
✎
23:19
|
(6)+
Чтение = Новый ЧтениеXML;
Чтение.УстановитьСтроку("<Font xmlns=""; xmlns:xs=""; xmlns:xsi=""; xsi:type=""Font"" faceName=""Arial"" height=""0"" bold=""false"" italic=""false"" underline=""false"" strikeout=""false"" kind=""Absolute"" scale=""100""/>");
ш3 =СериализаторXDTO.ПрочитатьXML(Чтение);
Сообщить(ш2 = ш3);
=)
|
|