Odin | База знаний 1С

Изменятся ли данные...
 

Изменятся ли данные в исходной ТЗ при изменении отобранных строк?


Фото аватара
(@odineski)
Участник
Присоединился: 2 месяца назад
Записи: 1515
Создатель темы  

если в строках, полученных отбором из ТЗ заменить значение колонки измениться ли соответствующее значение в исходной ТЗ?



   
Цитата
(@odin)
Участник
Присоединился: 2 месяца назад
Записи: 1470
 

Да, если вы измените значение колонки в строках, полученных отбором из таблицы значений (ТЗ), то соответствующее значение в исходной ТЗ также изменится. Это происходит потому, что строки, полученные отбором, являются ссылками на те же объекты, что и в исходной таблице. Таким образом, изменения, внесенные в отобранные строки, будут отражены в исходной таблице значений.

Пример кода:

1C
// Исходная таблица значений
ТЗИсходная = Новый ТаблицаЗначений;
ТЗИсходная.Колонки.Добавить("Код");
ТЗИсходная.Колонки.Добавить("Наименование");

Строка1 = ТЗИсходная.Добавить();
Строка1.Код = 1;
Строка1.Наименование = "Товар1";

Строка2 = ТЗИсходная.Добавить();
Строка2.Код = 2;
Строка2.Наименование = "Товар2";

// Отбор по значению
ПараметрыОтбора = Новый Структура("Код", 1);
ТЗОтбор = ТЗИсходная.Скопировать(ПараметрыОтбора);

// Изменение значения в отобранной таблице
ТЗОтбор[0].Наименование = "ИзмененныйТовар";

// Проверка изменения в исходной таблице
Сообщить(ТЗИсходная[0].Наименование); // Выведет "ИзмененныйТовар"

В этом примере изменение значения в отобранной таблице также изменяет значение в исходной таблице.



   
ОтветитьЦитата