1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2025-02-09 13:47:03 +02:00

Преобразование OPI -> OInt (workflow)

This commit is contained in:
Vitaly the Alpaca 2024-04-05 12:45:23 +00:00 committed by Vitaly the Alpaca (bot)
parent 5bcb905dc7
commit 596d84d0d3
2 changed files with 45 additions and 35 deletions

View File

@ -584,6 +584,7 @@
АдресЗагрузки = Ответ.Заголовки["Location"];
Если Не ЗначениеЗаполнено(АдресЗагрузки) Тогда
OPI_Инструменты.ОбработатьОтвет(Ответ);
Возврат Ответ;
КонецЕсли;
@ -627,11 +628,13 @@
ОтветПроверки = OPI_Инструменты.Put(АдресЗагрузки, "", ДопЗаголовки, Ложь, Истина);
Если ОтветПроверки.КодСостояния >= 200 И ОтветПроверки.КодСостояния < 300 Тогда
OPI_Инструменты.ОбработатьОтвет(ОтветПроверки);
Возврат ОтветПроверки;
ИначеЕсли ОтветПроверки.КодСостояния = 308 Тогда
ЗагруженныеДанные = Ответ.Заголовки["Range"];
Иначе
Возврат Ответ;
OPI_Инструменты.ОбработатьОтвет(Ответ);
Возврат Ответ;
КонецЕсли;
Иначе
@ -639,6 +642,7 @@
КонецЕсли;
Если Не ЗначениеЗаполнено(ЗагруженныеДанные) Тогда
OPI_Инструменты.ОбработатьОтвет(Ответ);
Возврат Ответ;
КонецЕсли;
@ -646,24 +650,26 @@
МассивИнформации = СтрРазделить(ЗагруженныеДанные, "-", Ложь);
Если Не МассивИнформации.Количество() = 2 Тогда
OPI_Инструменты.ОбработатьОтвет(Ответ);
Возврат Ответ;
КонецЕсли;
ТекущаяПозиция = Число(МассивИнформации[1]) + 1;
// ЧтениеДанных.Закрыть();
СтрТекущаяПозиция = OPI_Инструменты.ЧислоВСтроку(ТекущаяПозиция);
Процент = Строка(Цел(ТекущаяПозиция / ОбщийРазмер * 100));
СтрТекущаяПозицияМБ = OPI_Инструменты.ЧислоВСтроку(ТекущаяПозиция / 1024 / 1024);
СтрОбщийРазмерМБ = OPI_Инструменты.ЧислоВСтроку(ОбщийРазмер / 1024 / 1024);
Процент = Строка(Цел(ТекущаяПозиция / ОбщийРазмер * 100));
Сообщить(СтрТекущаяПозиция + "/" + СтрОбщийРазмер + " ( " + Процент + "% )");
Сообщить(СтрТекущаяПозиция + "/" + СтрОбщийРазмер + " МБ ( " + Процент + "% )");
ВыполнитьСборкуМусора();
ОсвободитьОбъект(ТекущиеДанные);
КонецЦикла;
OPI_Инструменты.ОбработатьОтвет(Ответ);
Возврат Ответ;
КонецФункции
#КонецОбласти

View File

@ -95,6 +95,39 @@
#КонецОбласти
#Область Прочее
Процедура ОбработатьОтвет(Ответ, Знач ПолныйОтвет = Ложь) Экспорт
Если ПолныйОтвет Или ТипЗнч(Ответ) = Тип("HTTPОтвет") Тогда
Возврат;
КонецЕсли;
GZip = "gzip";
НужнаРаспаковка =
Ответ.Заголовки.Получить("Content-Encoding") = GZip
Или Ответ.Заголовки.Получить("content-encoding") = GZip;
Если НужнаРаспаковка Тогда
Ответ = РаспаковатьОтвет(Ответ);
КонецЕсли;
Ответ = ?(ТипЗнч(Ответ) = Тип("HTTPОтвет"), Ответ.ПолучитьТелоКакДвоичныеДанные(), Ответ);
Если ТипЗнч(Ответ) = Тип("ДвоичныеДанные") Тогда
Попытка
Ответ = JsonВСтруктуру(Ответ);
Исключение
Возврат;
КонецПопытки;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#Область Служебные
@ -494,35 +527,6 @@
КонецФункции
Процедура ОбработатьОтвет(Ответ, Знач ПолныйОтвет = Ложь)
Если ПолныйОтвет Тогда
Возврат;
КонецЕсли;
GZip = "gzip";
НужнаРаспаковка =
Ответ.Заголовки.Получить("Content-Encoding") = GZip
Или Ответ.Заголовки.Получить("content-encoding") = GZip;
Если НужнаРаспаковка Тогда
Ответ = РаспаковатьОтвет(Ответ);
КонецЕсли;
Ответ = ?(ТипЗнч(Ответ) = Тип("HTTPОтвет"), Ответ.ПолучитьТелоКакДвоичныеДанные(), Ответ);
Если ТипЗнч(Ответ) = Тип("ДвоичныеДанные") Тогда
Попытка
Ответ = JsonВСтруктуру(Ответ);
Исключение
Возврат;
КонецПопытки;
КонецЕсли;
КонецПроцедуры
Процедура УстановитьТелоЗапроса(Запрос, Знач Параметры, Знач JSON)
Коллекция = ТипЗнч(Параметры) = Тип("Структура")