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

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

Загрузить сообщение обмена.

Процедура ЗагрузитьСообщениеОбмена(Сообщение, Отправитель) Экспорт
	
	Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса") Тогда
		Возврат;
	КонецЕсли;
		
	МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса");
	МодульСообщенияВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("СообщенияВМоделиСервиса");
	
	СообщениеДляСопоставленияДанных = Ложь;
	
	Если Сообщение.Установлено("AdditionalInfo") Тогда
		ДополнительныеСвойства = СериализаторXDTO.ПрочитатьXDTO(Сообщение.AdditionalInfo);
		Если ДополнительныеСвойства.Свойство("СообщениеДляСопоставленияДанных") Тогда
			СообщениеДляСопоставленияДанных = ДополнительныеСвойства.СообщениеДляСопоставленияДанных;
		КонецЕсли;
	КонецЕсли;
	
	Тело = Сообщение.Body;
	
	Если Тело.Свойства().Получить("MessageForDataMatching") <> Неопределено 
		И Тело.Установлено("MessageForDataMatching") Тогда
		СообщениеДляСопоставленияДанных = Тело.MessageForDataMatching; 
	КонецЕсли;
	
	ОтветноеСообщение = Неопределено;
	Попытка
		Корреспондент = КорреспондентОбмена(Тело.ExchangePlan, Тело.CorrespondentCode);
		
		// Загружаем сообщение обмена
		Отказ = Ложь;
		ОбменДаннымиВМоделиСервиса.ВыполнитьЗагрузкуДанных(Отказ, Корреспондент, СообщениеДляСопоставленияДанных);
		Если Отказ Тогда
			ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
				НСтр("ru = 'В процессе загрузки данных из программы  ""%1"" возникли ошибки.'"),
				ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Корреспондент, "Наименование"));
		КонецЕсли;
		
		// Отправляем ответное сообщение об успешной операции.
		ОтветноеСообщение = МодульСообщенияВМоделиСервиса.НовоеСообщение(
			СообщенияОбменаДаннымиКонтрольИнтерфейс.СообщениеЗагрузкаСообщенияОбменаУспешноЗавершена());
		ОтветноеСообщение.Body.Zone = МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса();
		ОтветноеСообщение.Body.CorrespondentZone = Тело.CorrespondentZone;
		ОтветноеСообщение.Body.SessionId = Тело.SessionId;
	Исключение
		ПредставлениеОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
		
		ЗаписьЖурналаРегистрации(ОбменДаннымиВМоделиСервиса.СобытиеЖурналаРегистрацииНастройкаСинхронизацииДанных(),
			УровеньЖурналаРегистрации.Ошибка, , , ПредставлениеОшибки);
		
		// Отправляем ответное сообщение об ошибке.
		ОтветноеСообщение = МодульСообщенияВМоделиСервиса.НовоеСообщение(
			СообщенияОбменаДаннымиКонтрольИнтерфейс.СообщениеОшибкаЗагрузкиСообщенияОбмена());
		ОтветноеСообщение.Body.Zone = МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса();
		ОтветноеСообщение.Body.CorrespondentZone = Тело.CorrespondentZone;
		ОтветноеСообщение.Body.SessionId = Тело.SessionId;
		
		ОтветноеСообщение.Body.ErrorDescription = ПредставлениеОшибки;
		
	КонецПопытки;
	
	Если Не ОтветноеСообщение = Неопределено Тогда
		НачатьТранзакцию();
		Попытка
			МодульСообщенияВМоделиСервиса.ОтправитьСообщение(ОтветноеСообщение, Отправитель, Истина);
			ЗафиксироватьТранзакцию();
		Исключение
			ОтменитьТранзакцию();
			ВызватьИсключение;
		КонецПопытки;
		МодульСообщенияВМоделиСервиса.ДоставитьБыстрыеСообщения();
	КонецЕсли;
	
КонецПроцедуры

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

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

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

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

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

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

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

ЗагрузитьПоставляемыеПравила (БСП)

ЗагрузитьПочтовыеСообщения (БСП)

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

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

УникальноеИмяФайлаСообщенияОбмена (БСП)

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