MyTetra Share
Делитесь знаниями!
1С: Полное копирование (структуры и данные) таблицы значений в новую таблицу значений
Время создания: 07.12.2012 11:58
Раздел: Компьютер - Windows - 1С - Готовые решения
Запись: xintrea/mytetra_syncro/master/base/1354867118byjol4x2ko/text.html на raw.github.com

Полное копирование (структуры и данные) таблицы значений 1С 8.х в новую таблицу значений

// создали новую пустую таблицу значений

ТЗ = Новый ТаблицаЗначений;

// создали две колонки в таблице значений

ТЗ.Колонки.Добавить("Имя");

ТЗ.Колонки.Добавить("Фамилия");

// заполнили одну строку созданной таблицы

СтрокаТаблицы = ТЗ.Добавить();

СтрокаТаблицы.Имя = "Вася";

СтрокаТаблицы.Фамилия = "Пупкин";

// скопировали полностью (структуру и данные) из таблицы ТЗ в новую таблицу КопияТЗ

КопияТЗ = ТЗ.Скопировать();

Внимание!

Для копирования структуры и данных 1С 8 таблицы значений нельзя просто взять и написать такое: КопияТЗ = ТЗ Это типичная ошибка новичков. Вместо копии таблицы значений мы просто получаем еще одну переменную КопияТЗ, которая указывает на тот же самый набор данных что и переменная ТЗ.

В этом случае, если мы что-либо сделаем с таблицей КопияТЗ, например, удалим несколько строк, а после этого проверим таблицу ТЗ - в ней так же будут удалены эти строки, потому что мы не произвели копирование в отдельную таблицу, а лишь по-другому поименовали (создали новую переменную, указывающую на тот же самый объект) старую таблицу.

Поэтому для копирования всегда применяем метод Скопировать(). Он создаст в памяти новую таблицу значений, которую заполнит структурой и данными из старой таблицы - и это будет независимая таблица-копия. Последующие изменения в новой таблице никак не отразятся на старой.

Следует так же заметить, что методы СкопироватьКолонки() и Скопировать() у 1С 8 таблицы значений могут иметь параметры (необязательные), при помощи которых можно указать конкретные колонки для копирования, и/или конкретные строки данных, подлежащих копированию.

Так же в этом разделе:
 
MyTetra Share v.0.65
Яндекс индекс цитирования