ЗаписатьДанныеДляОбновленияВФайл (БСП)

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

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

// Выполняет инициализацию XML файла, для записи информации об объектах.
//
Процедура ЗаписатьДанныеДляОбновленияВФайл(Параметры, Данные, ВидДанных, ПолноеИмяОбъекта = "") Экспорт
	
	Если Не СтандартныеПодсистемыПовтИсп.ИспользуетсяРИБ("СФильтром") Тогда
		Возврат;
	КонецЕсли;
	
	Если Параметры.ЗаписьИзмененийДляПодчиненногоУзлаРИБСФильтрами = Неопределено Тогда
		ТекстИсключения = НСтр("ru = 'В обработчике неправильно организована работа с параметрами регистрации данных к обработке.'");
		ВызватьИсключение ТекстИсключения;
	КонецЕсли;
	
	ЗаписьXML = Параметры.ЗаписьИзмененийДляПодчиненногоУзлаРИБСФильтрами;
	ЗаписьXML.ЗаписатьНачалоЭлемента("Object");
	ЗаписьXML.ЗаписатьАтрибут("Queue", Строка(Параметры.Очередь));
	
	Если Не ЗначениеЗаполнено(ПолноеИмяОбъекта) Тогда
		ПолноеИмяОбъекта = Данные.Метаданные().ПолноеИмя();
	КонецЕсли;
	
	ЗаписьXML.ЗаписатьАтрибут("Type", ПолноеИмяОбъекта);
	
	Если ВРег(ВидДанных) = "ССЫЛКА" Тогда
		ЗаписьXML.ЗаписатьАтрибут("Ref", XMLСтрока(Данные.Ссылка));
	Иначе
		
		Если ВРег(ВидДанных) = "НЕЗАВИСИМЫЙРЕГИСТР" Тогда
			
			ЗаписьXML.ЗаписатьНачалоЭлемента("Filter");
			Для Каждого ЭлементОтбора Из Данные.Отбор Цикл
				
				Если ЗначениеЗаполнено(ЭлементОтбора.Значение) Тогда
					ЗаписьXML.ЗаписатьНачалоЭлемента(ЭлементОтбора.Имя);
					
					ТипДанных = ТипЗнч(ЭлементОтбора.Значение);
					ОбъектМетаданных =  Метаданные.НайтиПоТипу(ТипДанных);
					
					Если ОбъектМетаданных <> Неопределено Тогда
						ЗаписьXML.ЗаписатьАтрибут("Type", ОбъектМетаданных.ПолноеИмя());
					ИначеЕсли ТипДанных = Тип("УникальныйИдентификатор") Тогда
						ЗаписьXML.ЗаписатьАтрибут("Type", "УникальныйИдентификатор");
					Иначе
						ЗаписьXML.ЗаписатьАтрибут("Type", Строка(ТипДанных));
					КонецЕсли;
					
					ЗаписьXML.ЗаписатьАтрибут("Val", XMLСтрока(ЭлементОтбора.Значение));
					ЗаписьXML.ЗаписатьКонецЭлемента();
				КонецЕсли;
				
			КонецЦикла;
			ЗаписьXML.ЗаписатьКонецЭлемента();
			
		Иначе
			Регистратор = Данные.Отбор.Регистратор.Значение;
			ЗаписьXML.ЗаписатьАтрибут("FilterType", Строка(Регистратор.Метаданные().ПолноеИмя()));
			ЗаписьXML.ЗаписатьАтрибут("Ref",        XMLСтрока(Регистратор.Ссылка));
		КонецЕсли;
		
	КонецЕсли;
	
	ЗаписьXML.ЗаписатьКонецЭлемента();

КонецПроцедуры

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

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

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

ЗавершитьЗаписьФайлаСДаннымиОбновления (БСП)

ЗавершитьЗаписьФайлаИПолучитьДанныеОбновления (БСП)

ЗаписатьСведенияОбОбновленииИнформационнойБазы (БСП)

ЗаписатьФайлВИнформационнуюБазу (БСП)

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

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

СохранитьДанныеОбновления (БСП)

ЗаписатьНастройкиАвтоматическогоОбновления (БСП)

ИнициализироватьФайлСДаннымиОбновления (БСП)

1С Менеджер конфигураций