ТаблицаЗначений
Метод Скопировать()
Возвращает копию текущей таблицы значений
Метод Скопировать() имеет несколько вариантов синтаксиса:
Вариант синтаксиса 1: копирование по строкам и колонкам
Синтаксис метода, позволяющий скопировать определенные строки таблицы значений, выглядит так:
ТаблицаЗначений Скопировать([Строки], [Колонки])
А также альтернативный англоязычный синтаксис:
ValueTable Copy([StringArray], [Columns])
Параметры
Описание параметров метода Скопировать() :
| Имя параметра* | Тип | Описание |
|---|---|---|
| Строки | Массив | Массив строк для копирования. Если параметр не указан, копируются все строки таблицы значений |
| Колонки | Строка | Перечисление имен копируемых колонок через запятую. Если параметр не указан, будут скопированы все колонки |
| *Жирным шрифтом выделены обязательные параметры | ||
Возвращаемое значение
Описание варианта 1
Метод Скопировать() возвращает копию текущей таблицы значений. Если указан параметр Строки , то копируются только указанные строки. Если указан параметр Колонки , то копируются значения только для указанных колонок. Если оба параметра опущены, создается полная копия текущей таблицы значений.
Вариант синтаксиса 2: копирование по отбору
Синтаксис метода, позволяющий скопировать строки по настроенному отбору, выглядит так:
ТаблицаЗначений Скопировать([ПараметрыОтбора], [Колонки])
А также альтернативный англоязычный синтаксис:
ValueTable Copy([Filter], [Columns])
Параметры
Описание параметров метода Скопировать() :
| Имя параметра* | Тип | Описание |
|---|---|---|
| ПараметрыОтбора | Структура | Ключ структуры — идентификатор колонки, а значение структуры — значение отбора. |
| Колонки | Строка | Перечисление имен копируемых колонок через запятую. Если параметр не указан, будут скопированы все колонки |
| *Жирным шрифтом выделены обязательные параметры | ||
Возвращаемое значение
Описание варианта 2
Метод Скопировать() возвращает копию текущей таблицы значений. Если указан параметр ПараметрыОтбора , то копируются только строки, удовлетворяющие условиям отбора. Если указан параметр Колонки , то копируются значения только для указанных колонок. Если оба параметра опущены, создается полная копия текущей таблицы значений.
Доступность
| Версия | Поддержка |
|---|---|
| 8.1 | Сервер, Клиент, Внешнее соединение |
| 8.2 | Сервер, Толстый клиент, Внешнее соединение |
| 8.3 | Сервер, Толстый клиент, Внешнее соединение, Мобильный автономный сервер, Мобильное приложение |
Пример использования
Пример кода с использованием метода Скопировать() :
//вариант 1: создание полной копии тзКопия = тз.Скопировать(); //вариант 2: копирование только найденных строк мНайдСтроки = тз.НайтиСтроки(Новый Структура("Категория", "Товары")); тзКопия = тз.Скопировать(мНайдСтроки); //вариант 3: копирование по отбору тзКопия = тз.Скопировать(Новый Структура("Категория", "Услуги"));
Читайте также:
Как скопировать таблицу значений в другую таблицу значений 1с 8
С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).
Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.
Нажмите одну из кнопок, чтобы поделиться:
PROИТ
Office 365, AD, Active Directory, Sharepoint, C#, Powershell. Технические статьи и заметки.
1С. Копирование таблицы значений (расположенной в объекте на форме)
В качестве примера возьмем две таблицы значений на форме (которые могут быть также привязаны к табличной части на форме).
Необходимо скопировать данные из одной таблицы значений в другую.
Такие таблицы значений (расположенные на форме как реквизиты формы/объекта) по факту имеют тип — ДанныеФормыКоллекция.
Для них не работает/отсутствует типовой метод таблиц значений — Скопировать() .
В случае работы с ДанныеФормыКоллекция нужно использовать методы Выгрузить/Загрузить .
Пример: на форме две ТЗ со схожим набором колонок:

Если нужно полностью скопировать строки из одной ТЗ (Пользователи1ССлужебный) в другую (Пользователи1С), то можно указать следующий код:
Объект . Пользователи1С . Очистить ();
Объект . Пользователи1С . Загрузить ( Объект . Пользователи1ССлужебный . Выгрузить ());
Такой код работает только на сервере.
Будут скопированы только те колонки, которые в обеих таблицах совпадают.
При выгрузке можно задать условия, что выгружать.
1) Выгрузить только определенные колонки:
Выгрузить (, «Колонка1, Колонка2, Колонка3» )
2) Выгрузить только определенные строки:
Выгрузить ( МассивВыгружаемыхСтрок , )
3) Выгрузить только определенные колонки из определенных строк:
Выгрузить ( МассивВыгружаемыхСтрок , «Колонка1, Колонка2, Колонка3» )
4) Выгрузить только строки по определенному отбору/фильтру:
Выгрузить ( Новый Структура ( «Колонка1» , ЗначениеОтбораКолонки ), )
5) Выгрузить только определенные колонки из строк по определенному отбору/фильтру:
Выгрузить ( Новый Структура ( «Колонка1» , ЗначениеОтбораКолонки ), «Колонка1, Колонка2, Колонка3» )
Примечание: Если указан отбор, то только строки из отбора будут выгружены. Если отбор не указан, то будут выгружены все строки коллекции. Если указаны колонки, то только эти колонки будут выгружены. Иначе, будут выгружены все колонки коллекции.
Если нужно скопировать только одну строку , то можно использовать ЗаполнитьЗначенияСвойств (работает как на сервере, так и на клиенте) :
Как скопировать, выгрузить данные из одной таблицы значений в другую?
Как скопировать или выгрузить данные из одной таблицы значений в другую таблицу значений?
1. Добавление, копирование строк из одной таблицы значений в другую таблицу значений:
Код 1C v 8.х
Для каждого СтрокаТЗ Из Таблица1 Цикл
ЗаполнитьЗначенияСвойств(Таблица2.Добавить(), СтрокаТЗ)
КонецЦикла;
2. Можно использовать метод Скопировать() объекта ТаблицаЗначений:
Первым параметром в этот метод передается массив строк для копирования, если он не указан — копируются все строки таблицы значений. Этот параметр также может содержать отбор по значению колонок.
Вторым параметром передается список колонок для копирования в формате «Колонка1, Колонка2. «. Если параметр не указан, копируются все колонки таблицы.
Допустим, есть таблица значений ТЗ с колонками Код, Номенклатура и Цена.
С помощью следующего кода мы выгрузим из этой таблицы в новую таблицу значений ТЗ1 все значения, содержащиеся в колонках Номенклатура и Цена:
Код 1C v 8.х

ТЗ1 = Новый ТаблицаЗначений;
ТЗ1 = ТЗ.Скопировать("Номенклатура,Цена");
В следующем примере мы выгрузим все строки исходной таблицы, в которых значение поля Цена = 15000.
Код 1C v 8.х
ТЗ1 = Новый ТаблицаЗначений;
ПараметрыОтбора = Новый Структура("Цена",15000);
ТЗ1 = ТЗ.Скопировать(ПараметрыОтбора);
