mirror of
https://github.com/Bayselonarrend/OpenIntegrations.git
synced 2024-12-12 11:15:07 +02:00
Преобразование OPI -> OInt (workflow)
This commit is contained in:
parent
5bf236d90a
commit
86c308b5f1
@ -234,22 +234,33 @@
|
||||
// Строка, Произвольный, ДвоичныеДанные, HTTPОтвет, Неопределено - Ответ сервера Yandex
|
||||
Функция ПереместитьОбъект(Знач Токен, Знач Оригинал, Знач Путь, Знач Перезаписывать = Ложь) Экспорт
|
||||
|
||||
Заголовки = ЗаголовокАвторизации(Токен);
|
||||
URL = "https://cloud-api.yandex.net/v1/disk/resources/move";
|
||||
Href = "href";
|
||||
Попытка
|
||||
|
||||
Заголовки = ЗаголовокАвторизации(Токен);
|
||||
URL = "https://cloud-api.yandex.net/v1/disk/resources/move";
|
||||
Href = "href";
|
||||
Ответ = "";
|
||||
Этап = "";
|
||||
|
||||
Параметры = Новый Структура;
|
||||
Параметры.Вставить("from" , Оригинал);
|
||||
Параметры.Вставить("path" , Путь);
|
||||
Параметры.Вставить("overwrite" , Перезаписывать);
|
||||
|
||||
Параметры = OPI_Инструменты.ПараметрыЗапросаВСтроку(Параметры);
|
||||
|
||||
Этап = "POST запрос к " + URL;
|
||||
Ответ = OPI_Инструменты.Post(URL + Параметры, , Заголовки, Ложь);
|
||||
URLОтвета = Ответ[Href];
|
||||
|
||||
Этап = "GET запрос к " + Строка(URLОтвета);
|
||||
Ответ = OPI_Инструменты.Get(URLОтвета, , Заголовки);
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
Параметры = Новый Структура;
|
||||
Параметры.Вставить("from" , Оригинал);
|
||||
Параметры.Вставить("path" , Путь);
|
||||
Параметры.Вставить("overwrite" , Перезаписывать);
|
||||
|
||||
Параметры = OPI_Инструменты.ПараметрыЗапросаВСтроку(Параметры);
|
||||
Ответ = OPI_Инструменты.Post(URL + Параметры, , Заголовки, Ложь);
|
||||
|
||||
URLОтвета = Ответ[Href];
|
||||
Ответ = OPI_Инструменты.Get(URLОтвета, , Заголовки);
|
||||
|
||||
Возврат Ответ;
|
||||
Исключение
|
||||
ВызватьИсключение OPI_Инструменты.ИсключениеМногошаговойОперации(Этап, ОписаниеОшибки(), Ответ);
|
||||
КонецПопытки;
|
||||
|
||||
КонецФункции
|
||||
|
||||
|
@ -94,89 +94,6 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
Функция ПараметрыЗапросаВСоответствие(Знач СтрокаПараметров) Экспорт
|
||||
|
||||
СоответствиеВозврата = Новый Соответствие;
|
||||
КоличествоЧастей = 2;
|
||||
МассивПараметров = СтрРазделить(СтрокаПараметров, "&", Ложь);
|
||||
|
||||
Для Каждого Параметр Из МассивПараметров Цикл
|
||||
|
||||
МассивКлючЗначение = СтрРазделить(Параметр, "=");
|
||||
|
||||
Если МассивКлючЗначение.Количество() = КоличествоЧастей Тогда
|
||||
СоответствиеВозврата.Вставить(МассивКлючЗначение[0], МассивКлючЗначение[1]);
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Возврат СоответствиеВозврата;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьТекущуюДату() Экспорт
|
||||
Возврат МестноеВремя(ТекущаяУниверсальнаяДата());
|
||||
КонецФункции
|
||||
|
||||
Функция UNIXTime(Знач Дата) Экспорт
|
||||
|
||||
ОТД = Новый ОписаниеТипов("Дата");
|
||||
Дата = ОТД.ПривестиЗначение(Дата);
|
||||
|
||||
Возврат Формат(Дата - Дата(1970, 1, 1, 1, 0, 0), "ЧЦ=10; ЧДЦ=0; ЧГ=0");
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ЗаменитьСпецСимволы(Текст) Экспорт
|
||||
|
||||
МассивСимволов = Новый Соответствие;
|
||||
МассивСимволов.Вставить("<", "<");
|
||||
МассивСимволов.Вставить(">", ">");
|
||||
МассивСимволов.Вставить("&", "&");
|
||||
МассивСимволов.Вставить("_", " ");
|
||||
МассивСимволов.Вставить("[", "(");
|
||||
МассивСимволов.Вставить("]", ")");
|
||||
|
||||
Для Каждого СимволМассива Из МассивСимволов Цикл
|
||||
Текст = СтрЗаменить(Текст, СимволМассива.Ключ, СимволМассива.Значение);
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура УдалитьПустыеПоляКоллекции(Коллекция) Экспорт
|
||||
|
||||
ТипКоллекции = ТипЗнч(Коллекция);
|
||||
ВыходнаяКоллекция = Новый(ТипКоллекции);
|
||||
|
||||
Если ТипКоллекции = Тип("Соответствие") Или ТипКоллекции = Тип("Структура") Тогда
|
||||
|
||||
УдалитьПустыеКлючиЗначения(Коллекция, ВыходнаяКоллекция);
|
||||
|
||||
ИначеЕсли ТипКоллекции = Тип("Массив") Тогда
|
||||
|
||||
УдалитьПустыеЭлементыМассива(Коллекция, ВыходнаяКоллекция);
|
||||
|
||||
Иначе
|
||||
|
||||
ВыходнаяКоллекция = Коллекция;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Коллекция = ВыходнаяКоллекция;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура Пауза(Знач Секунды) Экспорт
|
||||
|
||||
Соединение = Новый HTTPСоединение("1C.ru", 11111, , , , Секунды);
|
||||
Попытка
|
||||
Соединение.Получить(Новый HTTPЗапрос(""));
|
||||
Исключение
|
||||
Возврат;
|
||||
КонецПопытки;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область Служебные
|
||||
@ -256,11 +173,17 @@
|
||||
, Ложь
|
||||
, Ложь);
|
||||
|
||||
ЗаписьJSON = Новый ЗаписьJSON;
|
||||
ЗаписьJSON.УстановитьСтроку(ПараметрыJSON);
|
||||
|
||||
ЗаписатьJSON(ЗаписьJSON, Данные);
|
||||
Возврат ЗаписьJSON.Закрыть();
|
||||
Попытка
|
||||
|
||||
ЗаписьJSON = Новый ЗаписьJSON;
|
||||
ЗаписьJSON.УстановитьСтроку(ПараметрыJSON);
|
||||
|
||||
ЗаписатьJSON(ЗаписьJSON, Данные);
|
||||
Возврат ЗаписьJSON.Закрыть();
|
||||
|
||||
Исключение
|
||||
Возврат "НЕ JSON: " + Строка(Данные);
|
||||
КонецПопытки;
|
||||
|
||||
КонецФункции
|
||||
|
||||
@ -280,6 +203,65 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ИсключениеМногошаговойОперации(Знач Этап, Знач ОписаниеОшибки, Знач ПоследнийОтвет = "") Экспорт
|
||||
|
||||
ТекстОшибки = "Ошибка на одном из шагов выполнения операции!";
|
||||
ТекстОшибки = ТекстОшибки + Символы.ПС + "Промежуточный этап: " + Этап;
|
||||
|
||||
Если ЗначениеЗаполнено(ПоследнийОтвет) Тогда
|
||||
|
||||
ТекстОшибки = ТекстОшибки + Символы.ПС + Символы.ПС + "Последний ответ: " + Символы.ПС;
|
||||
|
||||
Если ТипЗнч(ПоследнийОтвет) = Тип("Структура")
|
||||
Или ТипЗнч(ПоследнийОтвет) = Тип("Соответствие") Тогда
|
||||
|
||||
ТекстОшибки = ТекстОшибки + JSONСтрокой(ПоследнийОтвет);
|
||||
|
||||
Иначе
|
||||
ТекстОшибки = ТекстОшибки + ?(ЗначениеЗаполнено(ПоследнийОтвет), Строка(ПоследнийОтвет), "<отсутствует>");
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
ТекстОшибки = ТекстОшибки + Символы.ПС + Символы.ПС + "Описание ошибки: " + Символы.ПС + ОписаниеОшибки;
|
||||
|
||||
Возврат ТекстОшибки;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПараметрыЗапросаВСоответствие(Знач СтрокаПараметров) Экспорт
|
||||
|
||||
СоответствиеВозврата = Новый Соответствие;
|
||||
КоличествоЧастей = 2;
|
||||
МассивПараметров = СтрРазделить(СтрокаПараметров, "&", Ложь);
|
||||
|
||||
Для Каждого Параметр Из МассивПараметров Цикл
|
||||
|
||||
МассивКлючЗначение = СтрРазделить(Параметр, "=");
|
||||
|
||||
Если МассивКлючЗначение.Количество() = КоличествоЧастей Тогда
|
||||
СоответствиеВозврата.Вставить(МассивКлючЗначение[0], МассивКлючЗначение[1]);
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Возврат СоответствиеВозврата;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьТекущуюДату() Экспорт
|
||||
Возврат МестноеВремя(ТекущаяУниверсальнаяДата());
|
||||
КонецФункции
|
||||
|
||||
Функция UNIXTime(Знач Дата) Экспорт
|
||||
|
||||
ОТД = Новый ОписаниеТипов("Дата");
|
||||
Дата = ОТД.ПривестиЗначение(Дата);
|
||||
|
||||
Возврат Формат(Дата - Дата(1970, 1, 1, 1, 0, 0), "ЧЦ=10; ЧДЦ=0; ЧГ=0");
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ЗначениеВМассив(Значение) Экспорт
|
||||
|
||||
Значение_ = Новый Массив;
|
||||
@ -288,6 +270,57 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ЗаменитьСпецСимволы(Текст) Экспорт
|
||||
|
||||
МассивСимволов = Новый Соответствие;
|
||||
МассивСимволов.Вставить("<", "<");
|
||||
МассивСимволов.Вставить(">", ">");
|
||||
МассивСимволов.Вставить("&", "&");
|
||||
МассивСимволов.Вставить("_", " ");
|
||||
МассивСимволов.Вставить("[", "(");
|
||||
МассивСимволов.Вставить("]", ")");
|
||||
|
||||
Для Каждого СимволМассива Из МассивСимволов Цикл
|
||||
Текст = СтрЗаменить(Текст, СимволМассива.Ключ, СимволМассива.Значение);
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура УдалитьПустыеПоляКоллекции(Коллекция) Экспорт
|
||||
|
||||
ТипКоллекции = ТипЗнч(Коллекция);
|
||||
ВыходнаяКоллекция = Новый(ТипКоллекции);
|
||||
|
||||
Если ТипКоллекции = Тип("Соответствие") Или ТипКоллекции = Тип("Структура") Тогда
|
||||
|
||||
УдалитьПустыеКлючиЗначения(Коллекция, ВыходнаяКоллекция);
|
||||
|
||||
ИначеЕсли ТипКоллекции = Тип("Массив") Тогда
|
||||
|
||||
УдалитьПустыеЭлементыМассива(Коллекция, ВыходнаяКоллекция);
|
||||
|
||||
Иначе
|
||||
|
||||
ВыходнаяКоллекция = Коллекция;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Коллекция = ВыходнаяКоллекция;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура Пауза(Знач Секунды) Экспорт
|
||||
|
||||
Соединение = Новый HTTPСоединение("1C.ru", 11111, , , , Секунды);
|
||||
Попытка
|
||||
Соединение.Получить(Новый HTTPЗапрос(""));
|
||||
Исключение
|
||||
Возврат;
|
||||
КонецПопытки;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
Loading…
Reference in New Issue
Block a user