Имя: Пароль:
1C
1С v8
Приколы с соответствием
,
0 live in sky dreams
 
04.12.18
10:41
Есть переменная на клиенте. В ней хранится соответствие. Ключ соответствия имеет тип СправочникСсылка. Значение соответствия - структура.
Всего в соответствии тестового образца 2 элемента.

Получаю значение элемента соответствия (структуру) по ключу, модифицирую данные этой структуры, присваиваю модифицированную структуру обратно элементу соответствия (про ключ не забываю): данные модифицируются у всех элемнтов соответствия. Это что за прикол такой?
Все происходит на клиенте.

Изначально, структура для каждого из элементов соответствия присваивается так:
СтруктураЗначений = Новый Структура;
СтруктураЗначений.Вставить("Ключ", Значение);

Соответствие[КлючСоответствия1] = СтруктураЗначений;
Соответствие[КлючСоответствия2] = СтруктураЗначений;

Не может быть так, что при обращении к значению соответствия возвращается не структура, хранимая в нем, а ссылка на структуру? (В моем случае получается одну и ту же, по какому ключу в соответствии я бы ни обращался)

Платформа: 8.3.12.1616, Win64, УФ, форма создана и присутствует только в расширении. Режим совместимости 8.3.10
1 catena
 
04.12.18
10:44
(0)Не может быть, а так и есть. Одна там у вас структура.
2 live in sky dreams
 
04.12.18
10:46
(1)Да, сейчас проверил, так и есть.. *facepalm*
Вопрос снят
3 Kuzen
 
04.12.18
10:46
Надо так:

СтруктураЗначений = Новый Структура;
СтруктураЗначений.Вставить("Ключ", Значение);
Соответствие[КлючСоответствия1] = СтруктураЗначений;

СтруктураЗначений = Новый Структура;
СтруктураЗначений.Вставить("Ключ", Значение);
Соответствие[КлючСоответствия2] = СтруктураЗначений;
4 FIXXXL
 
04.12.18
10:46
(0)
Соответствие[КлючСоответствия1] = СтруктураЗначений;
Соответствие[КлючСоответствия2] = СтруктураЗначений;

одну и ту же СтруктураЗначений присваиваешь обеим записям соответствия
в чем вопрос?
5 Rovan
 
гуру
04.12.18
11:08
(4) вопрос видимо такой
Как сделать копию структуры ?