1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2024-11-21 17:56:56 +02:00

S3: Повтор при ошибке получения объекта чанками

This commit is contained in:
Anton Titovets 2024-11-19 14:52:07 +03:00
parent de4e81ab78
commit fec20a70f1
4 changed files with 5478 additions and 5433 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1296,22 +1296,42 @@
Для Каждого ТекущийНабор Из МассивЗаголовков Цикл
ЗаголовокУчастка = ТекущийНабор["Заголовок"];
ТекущаяПозиция = ТекущийНабор["Позиция"];
Для Н = 1 По 3 Цикл
Попытка
ЗаголовокУчастка = ТекущийНабор["Заголовок"];
ТекущаяПозиция = ТекущийНабор["Позиция"];
ЗаголовокИсточника = Новый Соответствие();
ЗаголовокИсточника.Вставить("Range", ЗаголовокУчастка);
ДобавитьДополнительныеЗаголовки(Заголовки, ЗаголовокИсточника);
ПромежуточныйРезультат = ПолучитьОбъектЦеликом(ОсновныеДанные, ЗаголовокИсточника);
ЗаписьФайла.Записать(ПромежуточныйРезультат);
КБайт = 1024;
МБайт = КБайт * КБайт;
Сообщить(OPI_Инструменты.ИнформацияОПрогрессе(ТекущаяПозиция, ОбщийРазмер, "МБ", МБайт));
ЗаголовокИсточника = Новый Соответствие();
ЗаголовокИсточника.Вставить("Range", ЗаголовокУчастка);
ДобавитьДополнительныеЗаголовки(Заголовки, ЗаголовокИсточника);
ПромежуточныйРезультат = ПолучитьОбъектЦеликом(ОсновныеДанные, ЗаголовокИсточника);
ЗаписьФайла.Записать(ПромежуточныйРезультат);
КБайт = 1024;
МБайт = КБайт * КБайт;
Сообщить(OPI_Инструменты.ИнформацияОПрогрессе(ТекущаяПозиция, ОбщийРазмер, "МБ", МБайт));
ВыполнитьСборкуМусора();
ОсвободитьОбъект(ПромежуточныйРезультат);
ВыполнитьСборкуМусора();
ОсвободитьОбъект(ПромежуточныйРезультат);
Прервать;
Исключение
Если Н = 3 Тогда
Сообщить(ОписаниеОшибки());
Прервать;
Иначе
Сообщить("Ошибка загрузки участка " + Строка(Н) + "/3");
Продолжить;
КонецЕсли;
КонецПопытки;
КонецЦикла;
КонецЦикла;

View File

@ -378,11 +378,11 @@
КонецФункции
Функция JSONСтрокой(Знач Данные, Знач Экранирование = "Нет", Знач ПереносСтрок = Истина, Знач ДвойныеКавчки = Истина) Экспорт
Функция JSONСтрокой(Знач Данные, Знач Экранирование = "Нет", Знач ПереносСтрок = Истина, Знач ДвойныеКавычки = Истина) Экспорт
Перенос = ?(ПереносСтрок, ПереносСтрокJSON.Windows, ПереносСтрокJSON.Нет);
ПараметрыJSON = Новый ПараметрыЗаписиJSON(Перенос, " ", ДвойныеКавчки, ЭкранированиеСимволовJSON[Экранирование],
ПараметрыJSON = Новый ПараметрыЗаписиJSON(Перенос, " ", ДвойныеКавычки, ЭкранированиеСимволовJSON[Экранирование],
Ложь, Ложь, Ложь, Ложь);
Попытка

View File

@ -1296,22 +1296,42 @@
Для Каждого ТекущийНабор Из МассивЗаголовков Цикл
ЗаголовокУчастка = ТекущийНабор["Заголовок"];
ТекущаяПозиция = ТекущийНабор["Позиция"];
Для Н = 1 По 3 Цикл
Попытка
ЗаголовокУчастка = ТекущийНабор["Заголовок"];
ТекущаяПозиция = ТекущийНабор["Позиция"];
ЗаголовокИсточника = Новый Соответствие();
ЗаголовокИсточника.Вставить("Range", ЗаголовокУчастка);
ДобавитьДополнительныеЗаголовки(Заголовки, ЗаголовокИсточника);
ПромежуточныйРезультат = ПолучитьОбъектЦеликом(ОсновныеДанные, ЗаголовокИсточника);
ЗаписьФайла.Записать(ПромежуточныйРезультат);
// !OInt КБайт = 1024;
// !OInt МБайт = КБайт * КБайт;
// !OInt Сообщить(OPI_Инструменты.ИнформацияОПрогрессе(ТекущаяПозиция, ОбщийРазмер, "МБ", МБайт));
ЗаголовокИсточника = Новый Соответствие();
ЗаголовокИсточника.Вставить("Range", ЗаголовокУчастка);
ДобавитьДополнительныеЗаголовки(Заголовки, ЗаголовокИсточника);
ПромежуточныйРезультат = ПолучитьОбъектЦеликом(ОсновныеДанные, ЗаголовокИсточника);
ЗаписьФайла.Записать(ПромежуточныйРезультат);
// !OInt КБайт = 1024;
// !OInt МБайт = КБайт * КБайт;
// !OInt Сообщить(OPI_Инструменты.ИнформацияОПрогрессе(ТекущаяПозиция, ОбщийРазмер, "МБ", МБайт));
// !OInt ВыполнитьСборкуМусора();
// !OInt ОсвободитьОбъект(ПромежуточныйРезультат);
// !OInt ВыполнитьСборкуМусора();
// !OInt ОсвободитьОбъект(ПромежуточныйРезультат);
Прервать;
Исключение
Если Н = 3 Тогда
// !OInt Сообщить(ОписаниеОшибки());
Прервать;
Иначе
// !OInt Сообщить("Ошибка загрузки участка " + Строка(Н) + "/3");
Продолжить;
КонецЕсли;
КонецПопытки;
КонецЦикла;
КонецЦикла;