Открыть файл выгрузки. Открывает файл выгрузки данных, записывает заголовок файла в соответствие с форматом обмена.
// Открывает файл выгрузки данных, записывает заголовок файла в соответствие с форматом обмена.
//
// Параметры:
// КомпонентыОбмена - Структура - содержит все правила и параметры обмена.
// ИмяФайлаОбмена - строка - имя файла обмена.
//
Процедура ОткрытьФайлВыгрузки(КомпонентыОбмена, ИмяФайлаОбмена = "") Экспорт
ФайлОбмена = Новый ЗаписьXML;
Если ИмяФайлаОбмена <> "" Тогда
ФайлОбмена.ОткрытьФайл(ИмяФайлаОбмена);
Иначе
ФайлОбмена.УстановитьСтроку();
КонецЕсли;
ФайлОбмена.ЗаписатьОбъявлениеXML();
ЗаписьСообщения = Неопределено;
Если КомпонентыОбмена.ЭтоОбменЧерезПланОбмена Тогда
ЗаписьСообщения = Новый Структура("НомерПринятого, НомерСообщения, Получатель");
ЗаписьСообщения.Получатель = КомпонентыОбмена.УзелКорреспондента;
Если ТранзакцияАктивна() Тогда
ВызватьИсключение НСтр("ru = 'Блокировка на обмен данными не может быть установлена в активной транзакции.'");
КонецЕсли;
// Устанавливаем блокировку на узел получателя.
Попытка
ЗаблокироватьДанныеДляРедактирования(ЗаписьСообщения.Получатель);
Исключение
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Ошибка установки блокировки на обмен данными.
|Возможно, обмен данными выполняется другим сеансом.
|
|Подробности:
|%1'"),
КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
КонецПопытки;
ДанныеПолучателя = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ЗаписьСообщения.Получатель, "НомерОтправленного, НомерПринятого, Код");
ЗаписьСообщения.НомерСообщения = ДанныеПолучателя.НомерОтправленного + 1;
ЗаписьСообщения.НомерПринятого = ДанныеПолучателя.НомерПринятого;
КонецЕсли;
ПараметрыЗаголовка = ПараметрыЗаголовкаСообщенияОбмена();
ПараметрыЗаголовка.ФорматОбмена = КомпонентыОбмена.XMLСхема;
ПараметрыЗаголовка.ЭтоОбменЧерезПланОбмена = КомпонентыОбмена.ЭтоОбменЧерезПланОбмена;
ПараметрыЗаголовка.ОбменДаннымиСВнешнейСистемой = КомпонентыОбмена.ОбменДаннымиСВнешнейСистемой;
ПараметрыЗаголовка.ВерсияФорматаОбмена = КомпонентыОбмена.ВерсияФорматаОбмена;
Если КомпонентыОбмена.ЭтоОбменЧерезПланОбмена Тогда
ПараметрыЗаголовка.УзелКорреспондента = КомпонентыОбмена.УзелКорреспондента;
ПараметрыЗаголовка.ИдентификаторОтправителя = ОбменДаннымиСервер.ИдентификаторЭтогоУзлаДляОбмена(КомпонентыОбмена.УзелКорреспондента);
Если Не КомпонентыОбмена.ТолькоНастройкиXDTO Тогда
ПараметрыЗаголовка.НомерСообщения = ЗаписьСообщения.НомерСообщения;
ПараметрыЗаголовка.НомерПринятого = ЗаписьСообщения.НомерПринятого;
КонецЕсли;
ПараметрыЗаголовка.ПоддерживаемыеВерсии = КомпонентыОбмена.НастройкиXDTO.ПоддерживаемыеВерсии;
ПараметрыЗаголовка.ПоддерживаемыеОбъекты = КомпонентыОбмена.НастройкиXDTO.ПоддерживаемыеОбъекты;
Если Не КомпонентыОбмена.ОбменДаннымиСВнешнейСистемой Тогда
ПараметрыЗаголовка.ИмяПланаОбмена = ОбменДаннымиПовтИсп.ПолучитьИмяПланаОбмена(КомпонентыОбмена.УзелКорреспондента);
ПараметрыЗаголовка.ПсевдонимПредопределенногоУзла = ОбменДаннымиСервер.ПсевдонимПредопределенногоУзла(КомпонентыОбмена.УзелКорреспондента);
ПараметрыЗаголовка.ИдентификаторПолучателя = ОбменДаннымиСервер.ИдентификаторУзлаКорреспондентаДляОбмена(КомпонентыОбмена.УзелКорреспондента);
ПараметрыЗаголовка.Префикс = ОбменДаннымиСервер.ПрефиксИнформационнойБазы();
КонецЕсли;
КонецЕсли;
ЗаписатьЗаголовокСообщенияОбмена(ФайлОбмена, ПараметрыЗаголовка);
Если Не КомпонентыОбмена.ТолькоНастройкиXDTO Тогда
// Записываем элемент <Body>
ФайлОбмена.ЗаписатьНачалоЭлемента("Body");
ФайлОбмена.ЗаписатьСоответствиеПространстваИмен("", КомпонентыОбмена.XMLСхема);
КонецЕсли;
КомпонентыОбмена.Вставить("ФайлОбмена", ФайлОбмена);
КонецПроцедуры
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
ОткрытьСертификатПослеВыгрузкиСертификата (БСП)
ОткрытьФайлПослеПодтверждения (БСП)
Выгрузка результата запроса в текстовый файл с разделителями
ОткрытьФормуДополненияВыгрузкиСценарийУзла (БСП)
ОткрытьФормуДополненияВыгрузкиВсеДокументы (БСП)