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

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

Записать заголовок сообщения обмена.

Процедура ЗаписатьЗаголовокСообщенияОбмена(ФайлОбмена, ПараметрыЗаголовка) Экспорт
	
	// Записываем элемент <Message>
	ФайлОбмена.ЗаписатьНачалоЭлемента("Message");
	ФайлОбмена.ЗаписатьСоответствиеПространстваИмен("msg", "http://www.1c.ru/SSL/Exchange/Message");
	ФайлОбмена.ЗаписатьСоответствиеПространстваИмен("xs",  "http://www.w3.org/2001/XMLSchema");
	ФайлОбмена.ЗаписатьСоответствиеПространстваИмен("xsi", "http://www.w3.org/2001/XMLSchema-instance");
	
	// Элемент <Header>
	Header = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(XMLБазоваяСхема(), "Header"));
	
	Header.Format       = ПараметрыЗаголовка.ФорматОбмена;
	Header.CreationDate = ТекущаяУниверсальнаяДата();
	
	Если ПараметрыЗаголовка.ЭтоОбменЧерезПланОбмена Тогда
		
		Confirmation = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(XMLБазоваяСхема(), "Confirmation"));
		
		Если ПараметрыЗаголовка.ОбменДаннымиСВнешнейСистемой Тогда
			Confirmation.From = ПараметрыЗаголовка.ИдентификаторОтправителя;
		
			Confirmation.MessageNo  = ПараметрыЗаголовка.НомерСообщения;
			Confirmation.ReceivedNo = ПараметрыЗаголовка.НомерПринятого;
			
			Header.Confirmation = Confirmation;
			
			Для Каждого ВерсияФормата Из ПараметрыЗаголовка.ПоддерживаемыеВерсии Цикл
				Header.AvailableVersion.Добавить(ВерсияФормата);
			КонецЦикла;
			
			ВыгрузитьПоддерживаемыеОбъектыФормата(Header,
				ПараметрыЗаголовка.ПоддерживаемыеОбъекты, ПараметрыЗаголовка.УзелКорреспондента);
		Иначе
			Confirmation.ExchangePlan = ПараметрыЗаголовка.ИмяПланаОбмена;
			Confirmation.To           = ПараметрыЗаголовка.ИдентификаторПолучателя;
			
			Если ЗначениеЗаполнено(ПараметрыЗаголовка.ПсевдонимПредопределенногоУзла) Тогда
				// Требуется корректировка кода узла отправителя.
				Confirmation.From = ПараметрыЗаголовка.ПсевдонимПредопределенногоУзла;
			Иначе
				Confirmation.From = ПараметрыЗаголовка.ИдентификаторОтправителя;
			КонецЕсли;
		
			Confirmation.MessageNo  = ПараметрыЗаголовка.НомерСообщения;
			Confirmation.ReceivedNo = ПараметрыЗаголовка.НомерПринятого;
			
			Header.Confirmation = Confirmation;
			
			Для Каждого ВерсияФормата Из ПараметрыЗаголовка.ПоддерживаемыеВерсии Цикл
				Header.AvailableVersion.Добавить(ВерсияФормата);
			КонецЦикла;
			
			Если ЗначениеЗаполнено(ПараметрыЗаголовка.ПсевдонимПредопределенногоУзла) Тогда
				// Тип Header является Упорядоченным, поэтому важен порядок присвоения значений свойств.
				// В противном случае может быть не пройдена валидация по схеме.
				Header.NewFrom = ПараметрыЗаголовка.ИдентификаторОтправителя;
			КонецЕсли;
			
			ВыгрузитьПоддерживаемыеОбъектыФормата(Header,
				ПараметрыЗаголовка.ПоддерживаемыеОбъекты, ПараметрыЗаголовка.УзелКорреспондента);
			
		    Header.Prefix = ПараметрыЗаголовка.Префикс;
		КонецЕсли;
		
	Иначе
		Header.AvailableVersion.Добавить(ПараметрыЗаголовка.ВерсияФорматаОбмена);
	КонецЕсли;
	
	ФабрикаXDTO.ЗаписатьXML(ФайлОбмена, Header);
	
КонецПроцедуры

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

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

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

ТипЗаголовокСообщения (БСП)

ЗагрузитьСообщениеОбмена (БСП)

ОткрытьФайлВыгрузки (БСП)

ОткрытьФайлЗагрузки (БСП)

ЗаписатьСообщениеВНетипизированноеТело (БСП)

ЗаписатьСообщениеВЖурналРегистрации (БСП)

ПараметрыЗаголовкаСообщенияОбмена (БСП)

TurboConf 6 - расширение Конфигуратора 1С