ЗаполнитьЗначенияСвойствОбъекта (БСП)

Автор: 1С
ОбщийМодуль.ОбменДаннымиСобытия
БСП

Заполнить значения свойств объекта. Заполняет значения реквизитов и табличных частей однотипных объектов информационной базы.

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

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

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

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

ЗначенияСвойств (БСП)

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

ЗаполнитьНаборыСвойствОбъекта (БСП)

ЗаполнитьПараметры (БСП)

ЗаполнитьЗначениеРеквизитаУпорядочивания (БСП)

ЗаполнитьПрисоединенныеФайлыКОбъекту (БСП)

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

ОписаниеСвойствОбъекта (БСП)

TurboConf ИР адаптер 1.82