СкопироватьРекурсивно (БСП)

Автор: 1С
ОбщийМодуль.ОбщегоНазначения
БСП

Скопировать рекурсивно. Создает полную копию структуры, соответствия, массива, списка или таблицы значений, рекурсивно,

// Создает полную копию структуры, соответствия, массива, списка или таблицы значений, рекурсивно, 
// с учетом типов дочерних элементов. При этом содержимое значений объектных типов 
// (СправочникОбъект, ДокументОбъект и т.п.) не копируются, а возвращаются ссылки на исходный объект.
//
// Параметры:
//  Источник - Структура, ФиксированнаяСтруктура,
//             Соответствие, ФиксированноеСоответствие,
//             Массив, ФиксированныйМассив,
//             СписокЗначений - объект, который необходимо скопировать.
//  ФиксироватьДанные - Булево, Неопределено - если Истина - фиксировать, 
//                          если Ложь - снять фиксацию, если Неопределено - не изменять.
//
// Возвращаемое значение:
//  Структура, ФиксированнаяСтруктура,
//  Соответствие, ФиксированноеСоответствие,
//  Массив, ФиксированныйМассив,
//  СписокЗначений - копия объекта, переданного в параметре Источник.
//
Функция СкопироватьРекурсивно(Источник, ФиксироватьДанные = Неопределено) Экспорт
	
	Перем Приемник;
	
	ТипИсточника = ТипЗнч(Источник);
	
	Если ТипИсточника = Тип("ТаблицаЗначений") Тогда
		Возврат Источник.Скопировать();
	КонецЕсли;
	
	Если ТипИсточника = Тип("Структура")
		Или ТипИсточника = Тип("ФиксированнаяСтруктура") Тогда
		Приемник = СкопироватьСтруктуру(Источник, ФиксироватьДанные);
	ИначеЕсли ТипИсточника = Тип("Соответствие")
		Или ТипИсточника = Тип("ФиксированноеСоответствие") Тогда
		Приемник = СкопироватьСоответствие(Источник, ФиксироватьДанные);
	ИначеЕсли ТипИсточника = Тип("Массив")
		Или ТипИсточника = Тип("ФиксированныйМассив") Тогда
		Приемник = СкопироватьМассив(Источник, ФиксироватьДанные);
	ИначеЕсли ТипИсточника = Тип("СписокЗначений") Тогда
		Приемник = СкопироватьСписокЗначений(Источник, ФиксироватьДанные);
	Иначе
		Приемник = Источник;
	КонецЕсли;
	
	Возврат Приемник;
	
КонецФункции

///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются 
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////

Рекомендации

Похожие публикации

СкопироватьРекурсивно (БСП)

ЗаполнитьСвойстваРекурсивно (БСП)

СкопироватьСтруктуру (БСП)

СкопироватьСоответствие (БСП)

СкопироватьМассив (БСП)

СкопироватьСписокЗначений (БСП)

СкопироватьДокумент, Копирование документа

Обновлятор-1С: групповое (пакетное) обновление и обслуживание всех баз за один раз