mirror of
https://github.com/Bayselonarrend/OpenIntegrations.git
synced 2025-01-26 05:37:27 +02:00
Преобразование OPI -> OInt (workflow)
This commit is contained in:
parent
395d4914a7
commit
849d659437
@ -539,15 +539,13 @@
|
||||
СоответствиеФайла = Новый Соответствие;
|
||||
|
||||
Если ЗначениеЗаполнено(Файл) Тогда
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Файл);
|
||||
|
||||
РазмерЧасти = 268435457;
|
||||
Размер = OPI_Инструменты.ПреобразоватьДанныеСПолучениемРазмера(Файл, РазмерЧасти);
|
||||
|
||||
СоответствиеФайла.Вставить(Файл, MIME);
|
||||
|
||||
Размер = Файл.Размер();
|
||||
РазмерЧасти = 268435456;
|
||||
РазмерЧасти = РазмерЧасти + 1;
|
||||
|
||||
Если Размер < РазмерЧасти Тогда
|
||||
Если Размер < РазмерЧасти И ТипЗнч(Файл) = Тип("ДвоичныеДанные") Тогда
|
||||
Ответ = ЗагрузитьМалыйФайл(ОписаниеJSON, СоответствиеФайла, Заголовки, Идентификатор);
|
||||
Иначе
|
||||
Ответ = ЗагрузитьБольшойФайл(Описание, СоответствиеФайла, Заголовки, Идентификатор);
|
||||
@ -615,11 +613,12 @@
|
||||
ТекущаяПозиция = 0;
|
||||
ОбщийРазмер = Двоичные.Размер();
|
||||
СтрОбщийРазмер = OPI_Инструменты.ЧислоВСтроку(ОбщийРазмер);
|
||||
ЧтениеДанных = Новый ЧтениеДанных(Двоичные);
|
||||
ИсходныйПоток = ЧтениеДанных.ИсходныйПоток();
|
||||
|
||||
Пока ПрочитаноБайт < ОбщийРазмер Цикл
|
||||
|
||||
ЧтениеДанных = Новый ЧтениеДанных(Двоичные);
|
||||
ПрочитаноБайт = ЧтениеДанных.Пропустить(ТекущаяПозиция);
|
||||
|
||||
ПрочитаноБайт = ИсходныйПоток.ТекущаяПозиция();
|
||||
Результат = ЧтениеДанных.Прочитать(РазмерЧасти);
|
||||
ТекущиеДанные = Результат.ПолучитьДвоичныеДанные();
|
||||
РазмерТекущих = ТекущиеДанные.Размер();
|
||||
|
@ -452,9 +452,14 @@
|
||||
СоздатьКаталог(ПутьЛоговБиблиотеки);
|
||||
КонецЕсли;
|
||||
|
||||
ДокументЛога = Новый ТекстовыйДокумент;
|
||||
ДокументЛога.УстановитьТекст(Данные);
|
||||
ДокументЛога.Записать(ПутьЛоговБиблиотеки + "/" + Метод + ".log");
|
||||
ПутьКФайлу = ПутьЛоговБиблиотеки + "/" + Метод + ".log";
|
||||
ФайлЛога = Новый Файл(ПутьКФайлу);
|
||||
|
||||
Если Не ФайлЛога.Существует() Тогда
|
||||
ДокументЛога = Новый ТекстовыйДокумент;
|
||||
ДокументЛога.УстановитьТекст(Данные);
|
||||
ДокументЛога.Записать(ПутьКФайлу);
|
||||
КонецЕсли;
|
||||
|
||||
Исключение
|
||||
Сообщить("Не удалось записать файл лога!: " + ОписаниеОшибки());
|
||||
|
@ -50,13 +50,8 @@
|
||||
Значение = Новый ДвоичныеДанные(Значение);
|
||||
|
||||
ИначеЕсли СтрНайти(Значение, "//") Тогда
|
||||
|
||||
ИВФ = ПолучитьИмяВременногоФайла();
|
||||
КопироватьФайл(Значение, ИВФ);
|
||||
|
||||
Значение = Новый ДвоичныеДанные(ИВФ);
|
||||
|
||||
УдалитьФайлы(ИВФ);
|
||||
|
||||
Значение = OPI_Инструменты.Get(Значение);
|
||||
|
||||
Иначе
|
||||
|
||||
@ -72,6 +67,27 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ПолучитьДвоичныеИлиПоток(Значение) Экспорт
|
||||
|
||||
Если Значение = Неопределено Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если ТипЗнч(Значение) <> Тип("Строка") Тогда
|
||||
ПолучитьДвоичныеДанные(Значение);
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Файл = Новый Файл(Значение);
|
||||
|
||||
Если Файл.Существует() Тогда
|
||||
Значение = Новый ФайловыйПоток(Значение, РежимОткрытияФайла.Открыть, ДоступКФайлу.Чтение);
|
||||
Иначе
|
||||
ПолучитьДвоичныеДанные(Значение);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ПолучитьКоллекцию(Значение) Экспорт
|
||||
|
||||
Если Значение = Неопределено Тогда
|
||||
|
@ -385,6 +385,40 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПреобразоватьДанныеСПолучениемРазмера(Данные, Знач МинимальныйРазмерДляПотока = 0) Экспорт
|
||||
|
||||
Размер = 0;
|
||||
|
||||
Если ТипЗнч(Данные) = Тип("Строка") Тогда
|
||||
|
||||
ФайлНаДиске = Новый Файл(Данные);
|
||||
|
||||
Если ФайлНаДиске.Существует() Тогда
|
||||
Размер = ФайлНаДиске.Размер();
|
||||
Иначе
|
||||
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Данные);
|
||||
Размер = Данные.Размер();
|
||||
КонецЕсли;
|
||||
|
||||
Иначе
|
||||
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Данные);
|
||||
Размер = Данные.Размер();
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(МинимальныйРазмерДляПотока) Тогда
|
||||
Если Размер < МинимальныйРазмерДляПотока Тогда
|
||||
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Данные);
|
||||
Иначе
|
||||
OPI_ПреобразованиеТипов.ПолучитьДвоичныеИлиПоток(Данные);
|
||||
КонецЕсли;
|
||||
Иначе
|
||||
OPI_ПреобразованиеТипов.ПолучитьДвоичныеИлиПоток(Данные);
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Размер;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ЗначениеВМассив(Значение) Экспорт
|
||||
|
||||
Значение_ = Новый Массив;
|
||||
|
Loading…
x
Reference in New Issue
Block a user