Вопрос Как скопировать колонку таблицы значений.
Ответ Допустим, нужно скопировать колонки «Документ» и «Дата» таблицы значений «тзТаблица1» в новую таблицу «тзТаблица2». Сделать это можно так:
тзТаблица2 = Новый ТаблицаЗначений; тзТаблица2 = тзТаблица1.Скопировать("Документ, Дата");
Немного изменим условие. Допустим, есть две разные таблицы и нужно только перенести (скопировать) одну колонку из одной таблицы в другую. В v8 есть два симметричных друг другу метода: ВыгрузитьКолонку(<Колонка>) и ЗагрузитьКолонку(<Массив>, <Колонка>). Результат выполнения первого метода – массив. Второму как раз массив нужен для загрузки. Предположим, у нас есть таблица значений «тзТаблицаПоОказаннымУслугам» и колонка в ней «Период». Задача: создать копию этой колонки с названием «ДатаОказанияУслуги».
Решение:
// Скопируем значение колонки Период в колонку ДатаОказанияУслуги: // создаем новую колонку с типом "Дата": ТаблицаПоОказаннымУслугам.Колонки.Добавить("ДатаОказанияУслуги",Новый ОписаниеТипов("Дата")); // копируем: ТаблицаПоОказаннымУслугам.ЗагрузитьКолонку(ТаблицаПоОказаннымУслугам.ВыгрузитьКолонку("Период"),"ДатаОказанияУслуги");
Это были два немного разных примера, когда нужно было содержимое колонки одной таблицы скопировать в другую.
Вопрос Как заполнить колонку таблицы значений неким одинаковым значением.
Ответ Допустим, нужно в таблице «тзТаблица» заполнить колонку «Владелец» ссылкой на документ «текДокумент». Сделать это можно одной командой:
тзТаблица.ЗаполнитьЗначения(текДокумент.Ссылка, "Владелец");
Вопрос Как скопировать одну таблицу значений в другую.
Ответ Допустим, наряду с существующей таблицей значений «тзТаблица1» нужно создать ее копию «тзТаблица2» . Простое присвоение вида «тзТаблица2 = тзТаблица1» в данном случае не подходит, если «тзТаблица1» еще потребуется, а ее копию предполагается дальше изменять. Копия делается командой вида:
тзТаблица2 = тзТаблица1.Скопировать();
Вопрос Как скопировать строки таблицы значений по условию.
Ответ Допустим, нужно создать новую таблицу «тзТаблица2», состоящую из строк таблицы «тзТаблица1», в которых колонка «Документ» содержит значение «текДокумент.Ссылка». Делается это примерно таким кодом:
тзТаблица2 = Новый ТаблицаЗначений; ПараметрыОтбора = Новый Структура("Документ", текДокумент.Ссылка); тзТаблица2 = тзТаблица1.Скопировать(ПараметрыОтбора);
Вопрос Как скопировать строки таблицы значений.
Ответ Ну, и на закуску, способ копирования строк таблицы методом перебора и заполнения свойств:
Для каждого тзСтрока Из тзТаблица1 Цикл ЗаполнитьЗначенияСвойств(тзТаблица1.Добавить(), тзСтрока); КонецЦикла;
2 thoughts on “Как скопировать колонку таблицы значений (1C: Программисту: Таблица значений)”