Записать заголовок сообщения обмена.
Процедура ЗаписатьЗаголовокСообщенияОбмена(ФайлОбмена, ПараметрыЗаголовка) Экспорт
// Записываем элемент <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
///////////////////////////////////////////////////////////////////////////////////////////////////////
ЗагрузитьСообщениеОбмена (БСП)
ЗаписатьСообщениеВНетипизированноеТело (БСП)
Канал FastCode 1C в Телеграм! Шаблоны кода, статьи, полезные советы, курсы по 1С (8К участников)