Произвести чтение данных. Выполняет чтение файла данных при загрузке.
// Выполняет чтение файла данных при загрузке.
//
// Параметры:
// КомпонентыОбмена - Структура - содержит все правила и параметры обмена.
// ТаблицыДляЗагрузки - ТаблицаЗначений - Таблица, в которую следует загрузить данные (при интерактивном сопоставлении данных).
//
Процедура ПроизвестиЧтениеДанных(КомпонентыОбмена, ТаблицыДляЗагрузки = Неопределено) Экспорт
КомпонентыОбмена.ТаблицаОбъектовСозданныхПоСсылкам.Очистить();
Если ТипЗнч(ТаблицыДляЗагрузки) = Тип("ТаблицаЗначений")
И ТаблицыДляЗагрузки.Количество() = 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
ЕстьПравоЧтенияДанныхВерсийОбъектов (БСП)
ПроверитьЧтениеРазрешено (БСП)
ПриПовторномЧтенииНаСервереФормыРедактированияРазрешенныхЗначений (БСП)
Канал FastCode 1C в Телеграм! Шаблоны кода, статьи, полезные советы, курсы по 1С (8К участников)