Как скопировать колонку таблицы значений (1C: Программисту: Таблица значений)

Вопрос Как скопировать колонку таблицы значений.
Ответ Допустим, нужно скопировать колонки «Документ» и «Дата» таблицы значений «тзТаблица1» в новую таблицу «тзТаблица2». Сделать это можно так:

тзТаблица2 = Новый ТаблицаЗначений;
тзТаблица2 = тзТаблица1.Скопировать("Документ, Дата");

Немного изменим условие. Допустим, есть две разные таблицы и нужно только перенести (скопировать) одну колонку из одной таблицы в другую. В v8 есть два симметричных друг другу метода: ВыгрузитьКолонку(<Колонка>) и ЗагрузитьКолонку(<Массив>, <Колонка>). Результат выполнения первого метода – массив. Второму как раз массив нужен для загрузки. Предположим, у нас есть таблица значений «тзТаблицаПоОказаннымУслугам» и колонка в ней «Период». Задача: создать копию этой колонки с названием «ДатаОказанияУслуги».
Решение:

// Скопируем значение колонки Период в колонку ДатаОказанияУслуги:
// создаем новую колонку с типом "Дата":
ТаблицаПоОказаннымУслугам.Колонки.Добавить("ДатаОказанияУслуги",Новый ОписаниеТипов("Дата"));
// копируем:
ТаблицаПоОказаннымУслугам.ЗагрузитьКолонку(ТаблицаПоОказаннымУслугам.ВыгрузитьКолонку("Период"),"ДатаОказанияУслуги");

Это были два немного разных примера, когда нужно было содержимое колонки одной таблицы скопировать в другую.

Вопрос Как заполнить колонку таблицы значений неким одинаковым значением.
Ответ Допустим, нужно в таблице «тзТаблица» заполнить колонку «Владелец» ссылкой на документ «текДокумент». Сделать это можно одной командой:

тзТаблица.ЗаполнитьЗначения(текДокумент.Ссылка, "Владелец");

Вопрос Как скопировать одну таблицу значений в другую.
Ответ Допустим, наряду с существующей таблицей значений «тзТаблица1» нужно создать ее копию «тзТаблица2» . Простое присвоение вида «тзТаблица2 = тзТаблица1» в данном случае не подходит, если «тзТаблица1» еще потребуется, а ее копию предполагается дальше изменять. Копия делается командой вида:

тзТаблица2 = тзТаблица1.Скопировать();

Вопрос Как скопировать строки таблицы значений по условию.
Ответ Допустим, нужно создать новую таблицу «тзТаблица2», состоящую из строк таблицы «тзТаблица1», в которых колонка «Документ» содержит значение «текДокумент.Ссылка». Делается это примерно таким кодом:

тзТаблица2 = Новый ТаблицаЗначений;
ПараметрыОтбора = Новый Структура("Документ", текДокумент.Ссылка);
тзТаблица2 = тзТаблица1.Скопировать(ПараметрыОтбора);

Вопрос Как скопировать строки таблицы значений.
Ответ Ну, и на закуску, способ копирования строк таблицы методом перебора и заполнения свойств:

Для каждого тзСтрока Из тзТаблица1 Цикл
     ЗаполнитьЗначенияСвойств(тзТаблица1.Добавить(), тзСтрока);
КонецЦикла;

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.