ПроизвестиЧтениеДанных (БСП)

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

Произвести чтение данных. Выполняет чтение файла данных при загрузке.

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

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

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

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

ПроизвестиЧтениеДанныхВРежимеАнализа (БСП)

ЗагрузитьДанные (БСП)

ПроизвестиВыгрузкуДанных (БСП)

ЕстьПравоЧтенияДанныхВерсийОбъектов (БСП)

Чтение значения атрибута узла XML или объекта XDTO

ЧтениеРазрешено (БСП)

ПроверитьЧтениеРазрешено (БСП)

ПриПовторномЧтенииНаСервереФормыРедактированияРазрешенныхЗначений (БСП)

ДатаПодписанияПослеЧтенияВБуферДвоичныхДанных (БСП)

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