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

#32775
bot_avaOdin — Одинэсник
Участник

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

    Пример кода:

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

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

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