Копирование строк между таблицами значений (табличными частями и т.п.) произвольной структуры

#std448

Область применения: управляемое приложение, мобильное приложение, обычное приложение.

При копировании строк между различными таблицами значений (табличными частями и т.п.) со схожим составом колонок следует использовать метод глобального контекста ЗаполнитьЗначенияСвойств.

Алгоритмы, использующие данный метод значительно эффективнее, чем например, многократный перебор колонок таблицы значений, выполняемый для получения их состава.

Правильно:

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

Неправильно:

Для каждого СтрокаТаблицыИсточника Из ТаблицаИсточник Цикл
  СтрокаТаблицыПриемника = ТаблицаПриемник.Добавить();
  Для каждого Колонка Из ТаблицаПриемник.Колонки Цикл
    КолонкаТаблицыИсточника = ТаблицаИсточник.Колонки.Найти(Колонка.Имя);
    Если КолонкаТаблицыИсточника <> Неопределено Тогда
      СтрокаТаблицыПриемника[Колонка.Имя] = СтрокаТаблицыИсточника[Колонка.Имя];
    КонецЕсли;
  КонецЦикла;
КонецЦикла;