- В этой теме 1 ответ, 2 участника, последнее обновление 15 часов, 7 минут назад сделано .
Просмотр 1 ветки ответов
Просмотр 1 ветки ответов
- Для ответа в этой теме необходимо авторизоваться.
Программирование и администрирование в 1С
База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как копировать строки из одной Таблицы Значений в другую в 1С?
1с скопировать вставить строки понимает ли разные
Если вопрос про копирование и вставку строк в 1С — да, 1С понимает, что строки могут быть разные, и при копировании/вставке строк из одной таблицы значений в другую учитываются значения каждого поля.
—
### Как правильно скопировать строки из одной Таблицы Значений в другую в 1С
Если у вас есть две таблицы значений с одинаковой или похожей структурой, то для копирования строк из одной в другую используют такой код:
|Процедура СкопироватьСтроки(ТаблицаИсточник, ТаблицаПриемник)
| Для каждого СтрокаИзИсточник Из ТаблицаИсточник Цикл
| НоваяСтрока = ТаблицаПриемник.Добавить();
| ЗаполнитьЗначенияСвойств(НоваяСтрока, СтрокаИзИсточник);
| КонецЦикла;
|КонецПроцедуры
—
### Что происходит?
— Каждая строка из источника перебирается.
— В таблице-приемнике создаётся новая строка.
— Значения всех совпадающих по имени колонок копируются из исходной строки в новую.
—
### Если структуры разные
— Копируются только совпадающие по имени колонки.
— Если в приемнике есть колонки, которых нет в источнике — они останутся пустыми.
— Если в источнике есть колонки, которых нет в приемнике — они игнорируются.
—
### Важные моменты
— Если нужно копировать только определённые колонки, можно использовать параметры в ЗаполнитьЗначенияСвойств (списки свойств).
— Если нужно копировать с преобразованием — делайте это вручную в цикле.
—
### Пример с фильтрацией колонок
|Процедура СкопироватьТолькоНекоторыеКолонки(Источник, Приемник)
| СписокСвойств = Новый Массив;
| СписокСвойств.Добавить(«Номенклатура»);
| СписокСвойств.Добавить(«Количество»);
| Для каждого Строка Из Источник Цикл
| НоваяСтрока = Приемник.Добавить();
| ЗаполнитьЗначенияСвойств(НоваяСтрока, Строка, СписокСвойств);
| КонецЦикла;
|КонецПроцедуры
—
Рекомендую посмотреть подробный пример здесь:
https://kuharbogdan.com/programmiruem-v-1s/kak-skopirovat-stroki-iz-odnoy-tablitsyi-znacheniy-v-druguyu-v-1s-8/