Процедура ПроизвестиЧтениеДанных(ЧтениеСообщения)
СтрокаСообщенияОбОшибке = "";
Пока ФайлОбмена.Прочитать() Цикл
ИмяУзла = ФайлОбмена.ЛокальноеИмя;
Если ИмяУзла = "Объект" Тогда
ОбменДаннымиСервер.РассчитатьПроцентЗагрузки(СчетчикЗагруженныхОбъектов(), КоличествоОбъектовКЗагрузке, РазмерФайлаСообщенияОбмена);
ПоследнийОбъектЗагрузки = ПрочитатьОбъект();
ОбработатьОкончаниеЧтенияНовогоЭлемента(ПоследнийОбъектЗагрузки);
ИначеЕсли ИмяУзла = "НаборЗаписейРегистра" Тогда
// набор записей регистра
ПоследнийОбъектЗагрузки = ПрочитатьНаборЗаписейРегистра();
ОбработатьОкончаниеЧтенияНовогоЭлемента(ПоследнийОбъектЗагрузки);
ИначеЕсли ИмяУзла = "УдалениеОбъекта" Тогда
// Обработка удаления объекта из информационной базы.
ПрочитатьУдалениеОбъекта(СтрокаСообщенияОбОшибке);
одПропустить(ФайлОбмена, "УдалениеОбъекта");
ОбработатьОкончаниеЧтенияНовогоЭлемента();
ИначеЕсли ИмяУзла = "ИнформацияОРегистрацииОбъекта" Тогда
ЕстьИнформацияОРегистрацииОбъекта = Истина;
ПоследнийОбъектЗагрузки = ПрочитатьИнформациюОРегистрацииОбъекта();
ОбработатьОкончаниеЧтенияНовогоЭлемента(ПоследнийОбъектЗагрузки);
ИначеЕсли ИмяУзла = "КорректировкаИнформацииОРегистрацииОбъекта" Тогда
ЕстьКорректировкаИнформацииОРегистрацииОбъекта = Истина;
ПрочитатьКорректировкуИнформацииСопоставления();
одПропустить(ФайлОбмена, ИмяУзла);
ИначеЕсли ИмяУзла = "ОбщиеДанныеУзлов" Тогда
ПрочитатьОбщиеДанныеУзлов(ЧтениеСообщения);
одПропустить(ФайлОбмена, ИмяУзла);
ИначеЕсли (ИмяУзла = "ФайлОбмена") И (ФайлОбмена.ТипУзла = ТипУзлаXMLКонецЭлемента) Тогда
Прервать; // выходим
Иначе
ВызватьИсключение НСтр("ru = 'Ошибка формата сообщения обмена.'");
КонецЕсли;
// Прерываем цикл чтения файла в случае возникновения ошибки загрузки.
Если ФлагОшибки() Тогда
ВызватьИсключение НСтр("ru = 'Возникли ошибки при загрузке данных.'");
КонецЕсли;
КонецЦикла;
КонецПроцедуры