You've already forked OpenIntegrations
mirror of
https://github.com/Bayselonarrend/OpenIntegrations.git
synced 2026-06-09 23:56:48 +02:00
Обработка методов с несколькми http-запросами при adv_reponse
This commit is contained in:
@@ -15,6 +15,7 @@
|
||||
Обработчик = Новый SpellCheckMethods(ДанныеПроекта);
|
||||
Обработчик = Новый Versioning(ДанныеПроекта);
|
||||
Обработчик = Новый HttpToClientConverter(ДанныеПроекта);
|
||||
Обработчик = Новый IntermediateResultProcessingCheck(ДанныеПроекта);
|
||||
Обработчик = Новый ConversionMethods(ДанныеПроекта);
|
||||
Обработчик = Новый ACIndexGenerator(ДанныеПроекта);
|
||||
Обработчик = Новый LocalizationMethods(ДанныеПроекта);
|
||||
|
||||
@@ -0,0 +1,118 @@
|
||||
#Использовать "./internal"
|
||||
#Использовать osparser
|
||||
|
||||
Перем БылиОшибки;
|
||||
|
||||
Процедура ПриСозданииОбъекта(Знач ДанныеПроекта_ = Неопределено)
|
||||
|
||||
Если ДанныеПроекта_ = Неопределено Тогда
|
||||
ДанныеПроекта = Новый ProjectData;
|
||||
Иначе
|
||||
ДанныеПроекта = ДанныеПроекта_;
|
||||
КонецЕсли;
|
||||
|
||||
CommonTools.СообщитьПроцесс("Intermediate result processing check");
|
||||
|
||||
БылиОшибки = Ложь;
|
||||
|
||||
Расположение = ДанныеПроекта.ПолучитьЗначениеНастройки("paths.configurationSrc");
|
||||
ОбщийМассивМодулей = Новый Массив;
|
||||
ФайлыМодулей = НайтиФайлы(Расположение, "*.bsl", Истина);
|
||||
|
||||
Для Каждого ФайлМодуля Из ФайлыМодулей Цикл
|
||||
ПроверитьМодуль(ФайлМодуля);
|
||||
КонецЦикла;
|
||||
|
||||
Если БылиОшибки Тогда
|
||||
ВызватьИсключение "Processing check failed!";
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ПроверитьМодуль(Знач ФайлМодуля)
|
||||
|
||||
ДокументМодуля = Новый ТекстовыйДокумент();
|
||||
ДокументМодуля.Прочитать(ФайлМодуля.ПолноеИмя);
|
||||
|
||||
ТекстМодуля = ДокументМодуля.ПолучитьТекст();
|
||||
Парсер = Новый ПарсерВстроенногоЯзыка;
|
||||
|
||||
СтруктураМодуля = Парсер.Разобрать(ТекстМодуля);
|
||||
|
||||
МассивПризнаков = ПолучитьМассивПризнаков(СтруктураМодуля, ДокументМодуля);
|
||||
|
||||
Для Каждого Метод Из СтруктураМодуля.Объявления Цикл
|
||||
|
||||
Если Метод.Тип = "ОбъявлениеМетода" Тогда
|
||||
|
||||
ТекстМетода = ПолучитьТекстМетода(Метод, ДокументМодуля);
|
||||
|
||||
ЧислоВхожденийHttp = 0;
|
||||
|
||||
Для Каждого Признак Из МассивПризнаков Цикл
|
||||
ЧислоВхожденийHttp = ЧислоВхожденийHttp + СтрЧислоВхождений(ТекстМетода, Признак);
|
||||
КонецЦикла;
|
||||
|
||||
ЧислоВхожденийОбработка = СтрЧислоВхождений(ТекстМетода, "НормализоватьПромежуточныйРезультат");
|
||||
ЧислоВхожденийПропуска = СтрЧислоВхождений(ТекстМетода, "!IRPSkip");
|
||||
|
||||
Если ЧислоВхожденийОбработка + ЧислоВхожденийПропуска < ЧислоВхожденийHttp - 1 Тогда
|
||||
|
||||
БылиОшибки = Истина;
|
||||
CommonTools.СообщитьПроцесс(СтрШаблон("Intermediate result processing not found: %1.%2"
|
||||
, ФайлМодуля.Путь
|
||||
, Метод.Сигнатура.Имя));
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ПолучитьТекстМетода(Знач Метод, Знач ДокументМодуля)
|
||||
|
||||
МассивСтрокМетода = Новый Массив;
|
||||
|
||||
Для Н = Метод.Начало.НомерСтроки + 1 По Метод.Конец.НомерСтроки - 1 Цикл
|
||||
МассивСтрокМетода.Добавить(ДокументМодуля.ПолучитьСтроку(Н));
|
||||
КонецЦикла;
|
||||
|
||||
Возврат СтрСоединить(МассивСтрокМетода, Символы.ПС);
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьМассивПризнаков(Знач ДанныеМодуля, Знач ТекстовыйДокументМодуля)
|
||||
|
||||
СписокФункций = Новый Массив;
|
||||
КоличествоФункций = 0;
|
||||
|
||||
СписокФункций.Добавить("OPI_HTTPКлиент");
|
||||
СписокФункций.Добавить("OPI_ЗапросыHTTP");
|
||||
|
||||
Пока КоличествоФункций <> СписокФункций.Количество() Цикл
|
||||
|
||||
КоличествоФункций = СписокФункций.Количество();
|
||||
|
||||
Для Каждого Метод Из ДанныеМодуля.Объявления Цикл
|
||||
Если Метод.Тип = "ОбъявлениеМетода" Тогда
|
||||
|
||||
ТекстМетод = ПолучитьТекстМетода(Метод, ТекстовыйДокументМодуля);
|
||||
ИмяМетода = Метод.Сигнатура.Имя + "(";
|
||||
|
||||
Для Каждого Имя Из СписокФункций Цикл
|
||||
Если СтрНайти(ТекстМетод, Имя) > 0 И СписокФункций.Найти(ИмяМетода) = Неопределено Тогда
|
||||
СписокФункций.Добавить(ИмяМетода);
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Возврат СписокФункций;
|
||||
|
||||
КонецФункции
|
||||
Vendored
+44
@@ -0,0 +1,44 @@
|
||||
---
|
||||
sidebar_position: 3
|
||||
---
|
||||
|
||||
# Работа с версией для 1С:Предприятие
|
||||
|
||||
Открытый пакет интеграций изначально разрабатывается как расширение конфигурации для платформы 1С:Предприятие 8. Его методы доступны в виде общих модулей и могут использоваться в любой конфигурации, совместимой с требованиями проекта
|
||||
|
||||
:::important
|
||||
Разработка ведется в режиме совместимости `8.3.10` с вариантом проверки `Предупреждать`. Режим совместимости расширения установлен в `8.3.15`
|
||||
:::
|
||||
|
||||
## Установка
|
||||
|
||||
Для начала работы необходимо добавить модули Открытого пакета интеграций в свою конфигурацию. Сделать это можно одним из нескольких способов:
|
||||
|
||||
1. Из файла расширения `CFE` (рекомендуемый способ):
|
||||
|
||||
Скачайте файл `OpenIntegrations_x.x.x_lang.cfe` из [последнего релиза](https://github.com/Bayselonarrend/OpenIntegrations/releases/latest) или [раздела «Скачать»](/download), после чего загрузите его в список расширений конфигурации через конфигуратор
|
||||
|
||||
2. Из XML-выгрузки:
|
||||
|
||||
Скачайте архив `XML.zip`, распакуйте его и загрузите расширение через панель расширений, указав каталог с XML-файлами
|
||||
|
||||
3. Из проекта EDT:
|
||||
|
||||
Скачайте архив `EDT.zip` или подключите исходный проект из репозитория в 1С:EDT. Подробнее в разделе [Сборка из исходников](/docs/Start/Build-from-source)
|
||||
|
||||
4. Через сравнение-объединение с CF-файлом конфигурации:
|
||||
|
||||
Кроме вариантов поставки в виде расширения, Открытый пакет интеграций также доступен в виде `cf` файла конфигурации. Файл `OpenIntegrations_x.x.x_lang.cf` может быть использован для сравнения-объединения объектов ОПИ с основной конфигурацией, если использование расширения нежелательно или невозможно
|
||||
|
||||
Подробное описание каждого варианта поставки приведено в разделе [Про варианты релизов](/docs/Start/Release-variants). Независимо от способа установки рекомендуется получать файлы из релиза, [страницы загрузок](/download) или ветки `stable` репозитория
|
||||
|
||||
Также допустимо вручную скопировать нужные общие модули из исходников в свой проект, однако для регулярного обновления удобнее использовать готовые варианты поставки
|
||||
|
||||
## Использование на клиенте и на сервере
|
||||
|
||||
Начиная с версии `2.1.0`, все основные модули Открытого пакета интеграций доступны как на сервере, так и на клиенте. Однако, в отличии от серверных вызовов, работа с методами ОПИ на клиенте сопряжена с некоторыми особенностями:
|
||||
|
||||
+ `Web-клиент` не поддерживается
|
||||
+ Не поддерживается запуск фоновых заданий через параметр `dontwait` настроек [расширенного вызова](/docs/Start/Advanced-call)
|
||||
+ При первом вызове функции библиотеки, использующей внешние компоненты, будет произведена их установка. Подробнее в разделе [О внешних компонентах](/docs/Start/Component-requirements)
|
||||
|
||||
Vendored
+1
-1
@@ -1,5 +1,5 @@
|
||||
---
|
||||
sidebar_position: 4
|
||||
sidebar_position: 5
|
||||
keywords: [1C, 1С, 1С:Предприятие, OneScript, CLI, HTTP, прокси, таймаут, расширенный вызов]
|
||||
---
|
||||
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
---
|
||||
sidebar_position: 6
|
||||
sidebar_position: 7
|
||||
---
|
||||
|
||||
# Об обратной совместимости
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
---
|
||||
sidebar_position: 7
|
||||
sidebar_position: 8
|
||||
---
|
||||
|
||||
# Сборка из исходников
|
||||
|
||||
+7
-1
@@ -1,5 +1,5 @@
|
||||
---
|
||||
sidebar_position: 5
|
||||
sidebar_position: 6
|
||||
---
|
||||
|
||||
# О внешних компонентах
|
||||
@@ -50,6 +50,12 @@ sidebar_position: 5
|
||||
|
||||
<hr/>
|
||||
|
||||
## Внешние компоненты `НаКлиенте` в версии для 1С:Предприятие
|
||||
|
||||
Работа с методами, использующими внешние компоненты, в версии для 1С:Предприятие доступна как на стороне сервера, так и на стороне клиента. Но, в отличии от серверного варианта, где использование компонент скрыто и происходит бесшовно, в клиентском варианте внешние компоненты требуют обязательной интерактивной установки на конкретной клиентской машине. Этот процесс начинается при первом вызове функции для каждой используемой компоненты и сопровождается выводом диалогового окна, а также исключением с информацией о необходимости вызвать необходимую функцию повторно
|
||||
|
||||
Кроме установки компонент по необходимости, все (или выбранные) компоненты могут быть установлены на конкретном клиенте заранее через обработку `Панель управления (ОПИ)`
|
||||
|
||||
## FAQ
|
||||
|
||||
Некоторые вопросы о работе и реализации внешних компонент, несвязанные напрямую с работой ОПИ
|
||||
|
||||
Vendored
+1
-1
@@ -1,5 +1,5 @@
|
||||
---
|
||||
sidebar_position: 3
|
||||
sidebar_position: 4
|
||||
---
|
||||
|
||||
# Работа с OneScript-версией
|
||||
|
||||
@@ -2649,10 +2649,12 @@
|
||||
OPI_Инструменты.ДобавитьПоле("id", IDКаталога, "Строка", Параметры);
|
||||
|
||||
Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры);
|
||||
Результат = Ответ["result"];
|
||||
Тело = OPI_РасширенныйВызов.НормализоватьПромежуточныйРезультат(Ответ);
|
||||
|
||||
Результат = Тело["result"];
|
||||
|
||||
Если ЗначениеЗаполнено(Результат) Тогда
|
||||
|
||||
|
||||
ИмяПоля = Результат["field"];
|
||||
URLЗагрузки = Результат["uploadUrl"];
|
||||
|
||||
|
||||
@@ -548,20 +548,15 @@
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(UUID);
|
||||
OPI_ПреобразованиеТипов.ПолучитьБулево(ПолучитьФайл);
|
||||
|
||||
URL = СформироватьURL("/print/orders/" + UUID, ТестовыйAPI);
|
||||
URL = СформироватьURL(СтрШаблон("/print/orders/%1", UUID), ТестовыйAPI);
|
||||
Заголовки = СоздатьЗаголовкиЗапроса(Токен);
|
||||
|
||||
Ответ = OPI_ЗапросыHTTP.Get(URL, , Заголовки);
|
||||
|
||||
Если ПолучитьФайл Тогда
|
||||
|
||||
Содержимое = Ответ["entity"];
|
||||
|
||||
Если Не ЗначениеЗаполнено(Содержимое) Тогда
|
||||
Возврат Ответ;
|
||||
КонецЕсли;
|
||||
|
||||
URL = Содержимое["url"];
|
||||
Тело = OPI_РасширенныйВызов.НормализоватьПромежуточныйРезультат(Ответ);
|
||||
URL = OPI_Инструменты.ПолучитьИли(Тело, "entity.url", Неопределено);
|
||||
|
||||
Если Не ЗначениеЗаполнено(URL) Тогда
|
||||
Возврат Ответ;
|
||||
@@ -652,13 +647,8 @@
|
||||
|
||||
Если ПолучитьФайл Тогда
|
||||
|
||||
Содержимое = Ответ["entity"];
|
||||
|
||||
Если Не ЗначениеЗаполнено(Содержимое) Тогда
|
||||
Возврат Ответ;
|
||||
КонецЕсли;
|
||||
|
||||
URL = Содержимое["url"];
|
||||
Тело = OPI_РасширенныйВызов.НормализоватьПромежуточныйРезультат(Ответ);
|
||||
URL = OPI_Инструменты.ПолучитьИли(Тело, "entity.url", Неопределено);
|
||||
|
||||
Если Не ЗначениеЗаполнено(URL) Тогда
|
||||
Возврат Ответ;
|
||||
|
||||
@@ -136,6 +136,7 @@
|
||||
Если ЗначениеЗаполнено(Аккаунт) Тогда
|
||||
Результат = ПолучитьАккаунт(Токен, Аккаунт);
|
||||
Иначе
|
||||
// !IRPSkip
|
||||
Результат = ПолучитьСвойАккаунт(Токен);
|
||||
КонецЕсли;
|
||||
|
||||
@@ -277,6 +278,7 @@
|
||||
Если Размер > Граница Тогда
|
||||
Ответ = ЗагрузитьБольшойФайл(Токен, Файл, Путь, Режим);
|
||||
Иначе
|
||||
// !IRPSkip
|
||||
Ответ = ЗагрузитьМалыйФайл(Токен, Файл, Путь, Режим);
|
||||
КонецЕсли;
|
||||
|
||||
@@ -803,6 +805,7 @@
|
||||
Заголовки = ПолучитьЗаголовкиЗапроса(Токен, Параметры);
|
||||
Ответ = PostBinary(URL, ПолучитьДвоичныеДанныеИзСтроки(""), Заголовки);
|
||||
Иначе
|
||||
// !IRPSkip
|
||||
Заголовки = ПолучитьЗаголовкиЗапроса(Токен);
|
||||
Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, Заголовки);
|
||||
КонецЕсли;
|
||||
@@ -859,7 +862,9 @@
|
||||
ТекущаяПозиция = 0;
|
||||
ПрочитаноБайт = 0;
|
||||
ОбщийРазмер = Файл.Размер();
|
||||
Сессия = ОткрытьСессию(Токен);
|
||||
|
||||
// !IRPSkip
|
||||
Сессия = ОткрытьСессию(Токен);
|
||||
|
||||
Если OPI_Инструменты.ЭтоКоллекция(Сессия) Тогда
|
||||
Возврат Сессия;
|
||||
@@ -884,7 +889,8 @@
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
|
||||
Ответ = PostBinary(URL, ТекущиеДанные, Заголовки);
|
||||
// !IRPSkip
|
||||
PostBinary(URL, ТекущиеДанные, Заголовки);
|
||||
|
||||
ТекущаяПозиция = СледующаяПозиция;
|
||||
|
||||
@@ -932,8 +938,9 @@
|
||||
Заголовки = ПолучитьЗаголовкиЗапроса(Токен);
|
||||
|
||||
Ответ = PostBinary(URL, ПолучитьДвоичныеДанныеИзСтроки(""), Заголовки);
|
||||
Тело = OPI_РасширенныйВызов.НормализоватьПромежуточныйРезультат(Ответ);
|
||||
|
||||
Сессия = Ответ[SessionId];
|
||||
Сессия = Тело[SessionId];
|
||||
|
||||
Если Сессия = Неопределено Тогда
|
||||
Сессия = Ответ;
|
||||
|
||||
@@ -651,7 +651,8 @@
|
||||
|
||||
Заголовки = OPI_GoogleWorkspace.ПолучитьЗаголовокАвторизации(Токен);
|
||||
Существующее = ЗначениеЗаполнено(Событие);
|
||||
URL = "https://www.googleapis.com/calendar/v3/calendars/"
|
||||
|
||||
URL = "https://www.googleapis.com/calendar/v3/calendars/"
|
||||
+ Календарь
|
||||
+ "/events"
|
||||
+ ?(Существующее, "/" + Событие, "");
|
||||
@@ -680,6 +681,7 @@
|
||||
|
||||
OPI_Инструменты.УдалитьПустыеПоляКоллекции(Параметры);
|
||||
|
||||
// !IRPSkip
|
||||
Если Существующее Тогда
|
||||
Ответ = OPI_ЗапросыHTTP.PatchСТелом(URL, Параметры, Заголовки, Истина);
|
||||
Иначе
|
||||
@@ -703,9 +705,11 @@
|
||||
Результат = OPI_ЗапросыHTTP.Get("https://www.googleapis.com/calendar/v3/users/me/calendarList"
|
||||
, Параметры
|
||||
, Заголовки);
|
||||
|
||||
Тело = OPI_РасширенныйВызов.НормализоватьПромежуточныйРезультат(Результат);
|
||||
|
||||
Календари = Результат[Items];
|
||||
Страница = Результат[NPT];
|
||||
Календари = Тело[Items];
|
||||
Страница = Тело[NPT];
|
||||
|
||||
Для Каждого Календарь Из Календари Цикл
|
||||
МассивКалендарей.Добавить(Календарь);
|
||||
@@ -731,8 +735,10 @@
|
||||
, Параметры
|
||||
, Заголовки);
|
||||
|
||||
События = Результат[Items];
|
||||
Страница = Результат[NPT];
|
||||
Тело = OPI_РасширенныйВызов.НормализоватьПромежуточныйРезультат(Результат);
|
||||
|
||||
События = Тело[Items];
|
||||
Страница = Тело[NPT];
|
||||
|
||||
Для Каждого Событие Из События Цикл
|
||||
МассивСобытий.Добавить(Событие);
|
||||
|
||||
@@ -184,6 +184,7 @@
|
||||
Отбор.Добавить("name contains '" + ИмяСодержит + "'");
|
||||
КонецЕсли;
|
||||
|
||||
// !IRPSkip
|
||||
ПолучитьСписокОбъектовРекурсивно(Заголовки, МассивОбъектов, Подробно, Отбор);
|
||||
|
||||
Если Подробно Тогда
|
||||
@@ -559,9 +560,10 @@
|
||||
КонецЕсли;
|
||||
|
||||
Результат = OPI_ЗапросыHTTP.Get(URL, Параметры, Заголовки);
|
||||
Тело = OPI_РасширенныйВызов.НормализоватьПромежуточныйРезультат(Результат);
|
||||
|
||||
Объекты = Результат[Files];
|
||||
Страница = Результат[NPT];
|
||||
Объекты = Тело[Files];
|
||||
Страница = Тело[NPT];
|
||||
|
||||
Для Каждого ТекущийОбъект Из Объекты Цикл
|
||||
МассивОбъектов.Добавить(ТекущийОбъект);
|
||||
@@ -638,7 +640,9 @@
|
||||
MimeType = "mimeType";
|
||||
|
||||
Если ЗначениеЗаполнено(Идентификатор) Тогда
|
||||
MIME = ПолучитьИнформациюОбОбъекте(Токен, Идентификатор)[MimeType];
|
||||
Информация = ПолучитьИнформациюОбОбъекте(Токен, Идентификатор);
|
||||
Тело = OPI_РасширенныйВызов.НормализоватьПромежуточныйРезультат(Информация);
|
||||
MIME = Тело[MimeType];
|
||||
Иначе
|
||||
MIME = Описание["MIME"];
|
||||
КонецЕсли;
|
||||
@@ -663,11 +667,13 @@
|
||||
Если Размер < РазмерЧасти И ТипЗнч(Файл) = Тип("ДвоичныеДанные") Тогда
|
||||
Ответ = ЗагрузитьМалыйФайл(ОписаниеJSON, СоответствиеФайла, Заголовки, Идентификатор);
|
||||
Иначе
|
||||
// !IRPSkip
|
||||
Ответ = ЗагрузитьБольшойФайл(Описание, СоответствиеФайла, Заголовки, Идентификатор);
|
||||
КонецЕсли;
|
||||
|
||||
Иначе
|
||||
Ответ = ЗагрузитьМалыйФайл(ОписаниеJSON, СоответствиеФайла, Заголовки, Идентификатор);
|
||||
// !IRPSkip
|
||||
Ответ = ЗагрузитьМалыйФайл(ОписаниеJSON, СоответствиеФайла, Заголовки, Идентификатор);
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Ответ;
|
||||
@@ -719,6 +725,7 @@
|
||||
|
||||
HttpКлиент = OPI_ЗапросыHTTP.НовыйЗапрос().Инициализировать(URL);
|
||||
|
||||
// !IRPSkip
|
||||
Ответ = HttpКлиент.УстановитьЗаголовки(Заголовки)
|
||||
.УстановитьJsonТело(Описание)
|
||||
.ОбработатьЗапрос(Метод)
|
||||
@@ -727,6 +734,7 @@
|
||||
АдресЗагрузки = Ответ.Заголовки["Location"];
|
||||
|
||||
Если Не ЗначениеЗаполнено(АдресЗагрузки) Тогда
|
||||
// !IRPSkip
|
||||
Возврат HttpКлиент.ВернутьОтветКакJSONКоллекцию(Истина, Истина);
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
@@ -908,7 +908,9 @@
|
||||
|
||||
Если Удалять Тогда
|
||||
|
||||
IDУведомления = Ответ["receiptId"];
|
||||
Тело = OPI_РасширенныйВызов.НормализоватьПромежуточныйРезультат(Ответ);
|
||||
|
||||
IDУведомления = Тело["receiptId"];
|
||||
|
||||
Если ЗначениеЗаполнено(IDУведомления) Тогда
|
||||
Ответ.Вставить("deleting", УдалитьУведомление(ПараметрыДоступа, IDУведомления));
|
||||
|
||||
@@ -192,6 +192,7 @@
|
||||
URL = "https://neocities.org/api/upload";
|
||||
Заголовки = СоздатьЗаголовкиЗапроса(Токен);
|
||||
|
||||
// !IRPSkip
|
||||
КонечныйОтвет = OPI_ЗапросыHTTP.PostMultipart(URL
|
||||
,
|
||||
, ОбработанноеСоответствие
|
||||
@@ -292,8 +293,9 @@
|
||||
КонецЕсли;
|
||||
|
||||
УдаленныеФайлы = ПолучитьСписокФайлов(Токен, УдаленныйКаталог);
|
||||
Тело = OPI_РасширенныйВызов.НормализоватьПромежуточныйРезультат(УдаленныеФайлы);
|
||||
|
||||
Если Не УдаленныеФайлы["result"] = "success" Тогда
|
||||
Если Не Тело["result"] = "success" Тогда
|
||||
//@skip-check constructor-function-return-section
|
||||
Возврат УдаленныеФайлы;
|
||||
КонецЕсли;
|
||||
@@ -368,8 +370,9 @@
|
||||
Если Не МассивУдаляемых.Количество() = 0 Тогда
|
||||
|
||||
Ответ = УдалитьВыбранныеФайлы(Токен, МассивУдаляемых);
|
||||
Тело = OPI_РасширенныйВызов.НормализоватьПромежуточныйРезультат(Ответ);
|
||||
|
||||
Если Не Ответ["result"] = "success" Тогда
|
||||
Если Не Тело["result"] = "success" Тогда
|
||||
МассивОшибок.Добавить(Ответ);
|
||||
|
||||
Иначе
|
||||
@@ -392,8 +395,9 @@
|
||||
Для Каждого ЛокальныйПуть Из ЛокальныеПути Цикл
|
||||
|
||||
Ответ = ЗагрузитьФайл(Токен, ЛокальныйПуть.Ключ, ЛокальныйПуть.Значение);
|
||||
Тело = OPI_РасширенныйВызов.НормализоватьПромежуточныйРезультат(Ответ);
|
||||
|
||||
Если Не Ответ["result"] = "success" Тогда
|
||||
Если Не Тело["result"] = "success" Тогда
|
||||
|
||||
МассивОшибок.Добавить(Ответ);
|
||||
|
||||
|
||||
@@ -103,6 +103,7 @@
|
||||
|
||||
ДобавитьРодителяСтраницы(Родитель, Истина, Параметры);
|
||||
|
||||
// !IRPSkip
|
||||
Свойства = ЗаполнитьДанныеПоСхеме(Родитель, Данные, Токен);
|
||||
Параметры.Вставить("properties", Свойства);
|
||||
|
||||
@@ -167,10 +168,14 @@
|
||||
Files = "files";
|
||||
|
||||
Если ЗначениеЗаполнено(Данные)
|
||||
И (ТипЗнч(Данные) = Тип("Соответствие") Или ТипЗнч(Данные) = Тип("Структура")) Тогда
|
||||
Свойства = ЗаполнитьДанныеПоСхеме(Страница, Данные, Токен, Ложь);
|
||||
И (ТипЗнч(Данные) = Тип("Соответствие")
|
||||
Или ТипЗнч(Данные) = Тип("Структура")) Тогда
|
||||
|
||||
// !IRPSkip
|
||||
Свойства = ЗаполнитьДанныеПоСхеме(Страница, Данные, Токен, Ложь);
|
||||
|
||||
Иначе
|
||||
Свойства = Новый Соответствие;
|
||||
Свойства = Новый Соответствие;
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(Иконка) Тогда
|
||||
@@ -354,8 +359,11 @@
|
||||
ПреобразоватьИД(Родитель);
|
||||
|
||||
Если ТипЗнч(Блок) = Тип("Строка") Тогда
|
||||
|
||||
ПреобразоватьИД(Блок);
|
||||
Блок = ВернутьБлок(Токен, Блок);
|
||||
Блок = OPI_РасширенныйВызов.НормализоватьПромежуточныйРезультат(Блок);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
МассивБлоков = Новый Массив;
|
||||
@@ -654,6 +662,8 @@
|
||||
ДанныеСхемы = ПолучитьСтраницу(Токен, Схема);
|
||||
КонецЕсли;
|
||||
|
||||
ДанныеСхемы = OPI_РасширенныйВызов.НормализоватьПромежуточныйРезультат(ДанныеСхемы);
|
||||
|
||||
ПоляБазы = ДанныеСхемы["properties"];
|
||||
Свойства = Новый Соответствие;
|
||||
|
||||
|
||||
@@ -595,7 +595,8 @@
|
||||
Ответ = ЗагрузитьОбъектЧастями(Наименование, Бакет, Содержимое, ОсновныеДанные_, Заголовки, Размеры, Каталог);
|
||||
|
||||
Иначе
|
||||
|
||||
|
||||
// !IRPSkip
|
||||
Ответ = ЗагрузитьОбъектЦеликом(Наименование, Бакет, Содержимое, ОсновныеДанные_, Заголовки, Каталог);
|
||||
|
||||
КонецЕсли;
|
||||
@@ -836,7 +837,8 @@
|
||||
ОсновныеДанные_ = OPI_Инструменты.КопироватьКоллекцию(ОсновныеДанные);
|
||||
ЗаполнитьURLОбъекта(ОсновныеДанные_, Наименование, Бакет, Версия, Каталог);
|
||||
|
||||
Ответ = ОтправитьЗапросБезТела("HEAD", ОсновныеДанные_, , Заголовки);
|
||||
Ответ = ОтправитьЗапросБезТела("HEAD", ОсновныеДанные_, , Заголовки);
|
||||
|
||||
Ответ["response"] = Новый Структура;
|
||||
|
||||
Возврат Ответ;
|
||||
@@ -871,6 +873,7 @@
|
||||
, Знач ПутьСохранения = ""
|
||||
, Знач Каталог = Ложь) Экспорт
|
||||
|
||||
// !IRPSkip
|
||||
ОсновныеДанные_ = OPI_Инструменты.КопироватьКоллекцию(ОсновныеДанные);
|
||||
ИнформацияОбъекта = ПолучитьОписаниеОбъекта(Наименование, Бакет, ОсновныеДанные_, Версия, , Каталог);
|
||||
|
||||
@@ -899,6 +902,7 @@
|
||||
|
||||
Иначе
|
||||
|
||||
// !IRPSkip
|
||||
Ответ = ПолучитьОбъектЦеликом(ОсновныеДанные_, Заголовки, ПутьСохранения);
|
||||
|
||||
КонецЕсли;
|
||||
@@ -1370,6 +1374,8 @@
|
||||
ТелоОтвета = ?(ОжидаютсяДвоичные
|
||||
, Ответ.ВернутьОтветКакДвоичныеДанные(Ложь, Истина)
|
||||
, Ответ.ВернутьОтветКакСтроку(Ложь, Истина));
|
||||
|
||||
ТелоОтвета = OPI_РасширенныйВызов.НормализоватьПромежуточныйРезультат(ТелоОтвета);
|
||||
|
||||
Ответ = ОформитьОтвет(HTTPОтвет, ТелоОтвета);
|
||||
|
||||
@@ -1444,6 +1450,7 @@
|
||||
ЗаголовокИсточника.Вставить("Range", ЗаголовокУчастка);
|
||||
ДобавитьДополнительныеЗаголовки(Заголовки, ЗаголовокИсточника);
|
||||
|
||||
// !IRPSkip
|
||||
ПромежуточныйРезультат = ПолучитьОбъектЦеликом(ОсновныеДанные, ЗаголовокИсточника);
|
||||
ЗаписьФайла.Записать(ПромежуточныйРезультат);
|
||||
|
||||
@@ -1509,6 +1516,7 @@
|
||||
OPI_ПреобразованиеТипов.ПолучитьДвоичныеИлиПоток(Содержимое);
|
||||
|
||||
НачалоЗагрузки = ИнициализироватьЗагрузкуЧастями(Наименование, Бакет, ОсновныеДанные, Заголовки, Каталог);
|
||||
ТелоНачала = OPI_РасширенныйВызов.НормализоватьПромежуточныйРезультат(НачалоЗагрузки);
|
||||
|
||||
ПолеID = "response.InitiateMultipartUploadResult.UploadId";
|
||||
IDЗагрузки = Неопределено;
|
||||
@@ -1517,7 +1525,7 @@
|
||||
ПрочитаноБайт = 0;
|
||||
НомерЧасти = 1;
|
||||
|
||||
Если Не OPI_Инструменты.ПолеКоллекцииСуществует(НачалоЗагрузки, ПолеID, IDЗагрузки) Тогда
|
||||
Если Не OPI_Инструменты.ПолеКоллекцииСуществует(ТелоНачала, ПолеID, IDЗагрузки) Тогда
|
||||
Возврат НачалоЗагрузки;
|
||||
КонецЕсли;
|
||||
|
||||
@@ -1550,6 +1558,8 @@
|
||||
, НомерЧасти
|
||||
, ТекущиеДанные
|
||||
, Каталог);
|
||||
|
||||
Ответ = OPI_РасширенныйВызов.НормализоватьПромежуточныйРезультат(Ответ);
|
||||
|
||||
Если Ответ["status"] > ПоследнийКодУспеха Тогда
|
||||
ВызватьИсключение "Сервер вернул статус " + Строка(Ответ["status"]);
|
||||
@@ -1600,6 +1610,7 @@
|
||||
Если Ошибка Тогда
|
||||
Ответ = ОтменитьЗагрузкуЧастями(Наименование, Бакет, ОсновныеДанные, IDЗагрузки, , Каталог);
|
||||
Иначе
|
||||
// !IRPSkip
|
||||
Ответ = ЗавершитьЗагрузкуЧастями(Наименование, Бакет, ОсновныеДанные, IDЗагрузки, МассивТегов, , Каталог);
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
@@ -725,9 +725,11 @@
|
||||
OPI_Инструменты.ДобавитьПоле("filename", ИмяФайла, Строка_, Параметры);
|
||||
OPI_Инструменты.ДобавитьПоле("length" , Размер , Строка_, Параметры);
|
||||
|
||||
Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры, Заголовки);
|
||||
URL = Ответ[Upload_url];
|
||||
Идентификатор = Ответ[File_id];
|
||||
Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры, Заголовки);
|
||||
Тело = OPI_РасширенныйВызов.НормализоватьПромежуточныйРезультат(Ответ);
|
||||
|
||||
URL = Тело[Upload_url];
|
||||
Идентификатор = Тело[File_id];
|
||||
|
||||
Если Не ЗначениеЗаполнено(URL) Или Не ЗначениеЗаполнено(Идентификатор) Тогда
|
||||
Возврат Ответ;
|
||||
@@ -736,6 +738,7 @@
|
||||
Файлы = Новый Соответствие;
|
||||
Файлы.Вставить(ИмяФайла, Файл);
|
||||
|
||||
// !IRPSkip
|
||||
Ответ = OPI_ЗапросыHTTP.PostMultipart(URL, , Файлы, , Заголовки);
|
||||
URL = "https://slack.com/api/files.completeUploadExternal";
|
||||
ФайлСлак = Новый Структура("id, title", Идентификатор, Заголовок);
|
||||
@@ -994,6 +997,7 @@
|
||||
Параметры = Новый Структура;
|
||||
OPI_Инструменты.ДобавитьПоле("channel", Канал, "Строка", Параметры);
|
||||
|
||||
// !IRPSkip
|
||||
Если ВидЗапроса = "POST" Тогда
|
||||
Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, Заголовки);
|
||||
Иначе
|
||||
@@ -1012,6 +1016,7 @@
|
||||
Параметры = Новый Структура;
|
||||
OPI_Инструменты.ДобавитьПоле("file", ИдентификаторФайла , "Строка", Параметры);
|
||||
|
||||
// !IRPSkip
|
||||
Если ВидЗапроса = "POST" Тогда
|
||||
Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, Заголовки);
|
||||
Иначе
|
||||
|
||||
@@ -167,8 +167,6 @@
|
||||
// ДвоичныеДанные - данные файла
|
||||
Функция СкачатьФайл(Знач Токен, Знач IDФайла) Экспорт
|
||||
|
||||
Result = "result";
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDФайла);
|
||||
|
||||
@@ -177,11 +175,11 @@
|
||||
URL = СтрШаблон("api.telegram.org/bot%1/getFile", Токен);
|
||||
|
||||
Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры);
|
||||
OPI_РасширенныйВызов.НормализоватьПромежуточныйРезультат(Ответ);
|
||||
Ответ = OPI_РасширенныйВызов.НормализоватьПромежуточныйРезультат(Ответ);
|
||||
|
||||
Путь = Ответ[Result]["file_path"];
|
||||
Путь = Неопределено;
|
||||
|
||||
Если Не ЗначениеЗаполнено(Путь) Тогда
|
||||
Если Не OPI_Инструменты.ПолеКоллекцииСуществует(Ответ, "result.file_path", Путь) Тогда
|
||||
|
||||
Загружен = Ложь;
|
||||
|
||||
@@ -189,9 +187,10 @@
|
||||
|
||||
OPI_Инструменты.Пауза(Н);
|
||||
|
||||
Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры);
|
||||
Путь = Ответ[Result]["file_path"];
|
||||
|
||||
Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры);
|
||||
Тело = OPI_РасширенныйВызов.НормализоватьПромежуточныйРезультат(Ответ);
|
||||
|
||||
Путь = OPI_Инструменты.ПолучитьИли(Тело, "result.file_path", Неопределено);
|
||||
Загружен = ЗначениеЗаполнено(Путь);
|
||||
|
||||
Если Загружен Тогда
|
||||
|
||||
@@ -136,6 +136,7 @@
|
||||
|
||||
Для Каждого КартинкаПоста Из МассивКартинок Цикл
|
||||
|
||||
// !IRPSkip
|
||||
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
|
||||
ОтветСоответствие = ПолучитьСоответствиеКартинки(КартинкаПоста, Параметры_, "Пост");
|
||||
|
||||
@@ -249,8 +250,10 @@
|
||||
Параметры_.Вставить("add_answers", Ответы);
|
||||
Параметры_.Вставить("question" , Вопрос);
|
||||
|
||||
Опрос = OPI_ЗапросыHTTP.Get("api.vk.com/method/polls.create", Параметры_);
|
||||
ОпросСоответствие = Опрос.Получить(Response_);
|
||||
Опрос = OPI_ЗапросыHTTP.Get("api.vk.com/method/polls.create", Параметры_);
|
||||
Тело = OPI_РасширенныйВызов.НормализоватьПромежуточныйРезультат(Опрос);
|
||||
|
||||
ОпросСоответствие = Тело.Получить(Response_);
|
||||
|
||||
Если Не ЗначениеЗаполнено(ОпросСоответствие) Тогда
|
||||
Возврат Опрос;
|
||||
@@ -275,6 +278,7 @@
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка);
|
||||
|
||||
// !IRPSkip
|
||||
ОтветСоответствие = ПолучитьСоответствиеКартинки(Картинка, Параметры_, "Пост");
|
||||
|
||||
OwnerId = ОтветСоответствие.Получить("owner_id");
|
||||
@@ -451,8 +455,9 @@
|
||||
OPI_Инструменты.ДобавитьПоле("album_id" , Альбом , Строка_, Параметры);
|
||||
|
||||
Ответ = OPI_ЗапросыHTTP.Get("api.vk.com/method/video.save", Параметры);
|
||||
Тело = OPI_РасширенныйВызов.НормализоватьПромежуточныйРезультат(Ответ);
|
||||
|
||||
Результат = Ответ["response"];
|
||||
Результат = Тело["response"];
|
||||
|
||||
Если Не ЗначениеЗаполнено(Результат) Тогда
|
||||
Возврат Ответ;
|
||||
@@ -507,7 +512,8 @@
|
||||
Файлы.Вставить(КлючКартинка, Картинка);
|
||||
|
||||
Ответ = OPI_ЗапросыHTTP.Get(Загрузка, Параметры);
|
||||
Результат = Ответ[Response_];
|
||||
Тело = OPI_РасширенныйВызов.НормализоватьПромежуточныйРезультат(Ответ);
|
||||
Результат = Тело[Response_];
|
||||
|
||||
Если ЗначениеЗаполнено(Результат) Тогда
|
||||
|
||||
@@ -526,12 +532,13 @@
|
||||
Для Н = 1 По 5 Цикл
|
||||
|
||||
Ответ = OPI_ЗапросыHTTP.PostMultipart(URL, Параметры, Файлы);
|
||||
Тело = OPI_РасширенныйВызов.НормализоватьПромежуточныйРезультат(Ответ);
|
||||
|
||||
Если ТипЗнч(Ответ) <> Тип("Соответствие") Тогда
|
||||
Если ТипЗнч(Тело) <> Тип("Соответствие") Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
Успех = ЗаполнитьПараметрыЗагрузкиФото(Метод, Ответ, Параметры);
|
||||
Успех = ЗаполнитьПараметрыЗагрузкиФото(Метод, Тело, Параметры);
|
||||
|
||||
Если Не Успех Тогда
|
||||
Продолжить;
|
||||
@@ -772,8 +779,10 @@
|
||||
СтрокаНомеров = СтрСоединить(МассивНабора, ",");
|
||||
Параметры_.Вставить("post_ids", СтрокаНомеров);
|
||||
|
||||
Статистика = OPI_ЗапросыHTTP.Get("api.vk.com/method/stats.getPostReach", Параметры_);
|
||||
МассивСтатистики = Статистика[Response_];
|
||||
Статистика = OPI_ЗапросыHTTP.Get("api.vk.com/method/stats.getPostReach", Параметры_);
|
||||
Тело = OPI_РасширенныйВызов.НормализоватьПромежуточныйРезультат(Статистика);
|
||||
|
||||
МассивСтатистики = Тело[Response_];
|
||||
|
||||
Для Каждого ЭлементСтатистики Из МассивСтатистики Цикл
|
||||
МассивОтветов.Добавить(ЭлементСтатистики);
|
||||
@@ -789,7 +798,8 @@
|
||||
Параметры_.Вставить("post_ids", СтрокаНомеров);
|
||||
|
||||
Статистика = OPI_ЗапросыHTTP.Get("api.vk.com/method/stats.getPostReach", Параметры_);
|
||||
МассивСтатистики = Статистика[Response_];
|
||||
Тело = OPI_РасширенныйВызов.НормализоватьПромежуточныйРезультат(Статистика);
|
||||
МассивСтатистики = Тело[Response_];
|
||||
|
||||
Если ТипЗнч(МассивСтатистики) = Тип("Массив") Тогда
|
||||
Для Каждого ЭлементСтатистики Из МассивСтатистики Цикл
|
||||
@@ -981,8 +991,10 @@
|
||||
|
||||
Response_ = "response";
|
||||
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
|
||||
|
||||
Ответ = OPI_ЗапросыHTTP.Get("api.vk.com/method/market.getCategories", Параметры_);
|
||||
Результат = Ответ[Response_];
|
||||
Тело = OPI_РасширенныйВызов.НормализоватьПромежуточныйРезультат(Ответ);
|
||||
Результат = Тело[Response_];
|
||||
|
||||
Если ЗначениеЗаполнено(Результат) Тогда
|
||||
|
||||
@@ -997,8 +1009,10 @@
|
||||
КонецЕсли;
|
||||
|
||||
Параметры_.Вставить("count", Количество);
|
||||
|
||||
Ответ = OPI_ЗапросыHTTP.Get("api.vk.com/method/market.getCategories", Параметры_);
|
||||
Результат = Ответ[Response_];
|
||||
Тело = OPI_РасширенныйВызов.НормализоватьПромежуточныйРезультат(Ответ);
|
||||
Результат = Тело[Response_];
|
||||
|
||||
Если ЗначениеЗаполнено(Результат) Тогда
|
||||
|
||||
@@ -1702,7 +1716,8 @@
|
||||
Функция ПолучитьСоответствиеКартинки(Знач Картинка, Знач Параметры, Знач Вид)
|
||||
|
||||
Ответ = ЗагрузитьФотоНаСервер(Картинка, Параметры, Вид);
|
||||
ОтветМассив = Ответ.Получить("response");
|
||||
Тело = OPI_РасширенныйВызов.НормализоватьПромежуточныйРезультат(Ответ);
|
||||
ОтветМассив = Тело.Получить("response");
|
||||
|
||||
Если Не ЗначениеЗаполнено(ОтветМассив) Или Не ТипЗнч(ОтветМассив) = Тип("Массив") Тогда
|
||||
Возврат Ответ;
|
||||
|
||||
@@ -197,6 +197,7 @@
|
||||
Если Не ЗначениеЗаполнено(Размер) Тогда
|
||||
|
||||
Ответ = OPI_ЗапросыHTTP.Get(URL);
|
||||
Ответ = OPI_РасширенныйВызов.НормализоватьПромежуточныйРезультат(Ответ);
|
||||
Размер = Ответ.Размер();
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
@@ -144,8 +144,9 @@
|
||||
|
||||
Параметры = OPI_Инструменты.ПараметрыЗапросаВСтроку(Параметры);
|
||||
Ответ = OPI_ЗапросыHTTP.PutСТелом(URL + Параметры, , Заголовки, Ложь);
|
||||
Тело = OPI_РасширенныйВызов.НормализоватьПромежуточныйРезультат(Ответ);
|
||||
|
||||
URLОтвета = Ответ[Href];
|
||||
URLОтвета = Тело[Href];
|
||||
|
||||
Если Не ЗначениеЗаполнено(URLОтвета) Тогда
|
||||
Возврат Ответ;
|
||||
@@ -229,8 +230,9 @@
|
||||
|
||||
Параметры = OPI_Инструменты.ПараметрыЗапросаВСтроку(Параметры);
|
||||
Ответ = OPI_ЗапросыHTTP.PostСТелом(URL + Параметры, , Заголовки, Ложь);
|
||||
Тело = OPI_РасширенныйВызов.НормализоватьПромежуточныйРезультат(Ответ);
|
||||
|
||||
URLОтвета = Ответ[Href];
|
||||
URLОтвета = Тело[Href];
|
||||
|
||||
Если Не ЗначениеЗаполнено(URLОтвета) Тогда
|
||||
Возврат Ответ;
|
||||
@@ -400,7 +402,8 @@
|
||||
|
||||
Параметры = OPI_Инструменты.ПараметрыЗапросаВСтроку(Параметры);
|
||||
Ответ = OPI_ЗапросыHTTP.PostСТелом(URL + Параметры, , Заголовки, Ложь);
|
||||
URLОтвета = Ответ[Href];
|
||||
Тело = OPI_РасширенныйВызов.НормализоватьПромежуточныйРезультат(Ответ);
|
||||
URLОтвета = Тело[Href];
|
||||
|
||||
Если Не ЗначениеЗаполнено(URLОтвета) Тогда
|
||||
Возврат Ответ;
|
||||
@@ -699,8 +702,9 @@
|
||||
|
||||
Параметры = OPI_Инструменты.ПараметрыЗапросаВСтроку(Параметры);
|
||||
Ответ = OPI_ЗапросыHTTP.PostСТелом(Адрес + Параметры, , Заголовки, Ложь);
|
||||
Тело = OPI_РасширенныйВызов.НормализоватьПромежуточныйРезультат(Ответ);
|
||||
|
||||
URLОтвета = Ответ[Href];
|
||||
URLОтвета = Тело[Href];
|
||||
|
||||
Если Не ЗначениеЗаполнено(URLОтвета) Тогда
|
||||
Возврат Ответ;
|
||||
@@ -734,8 +738,9 @@
|
||||
|
||||
Параметры = OPI_Инструменты.ПараметрыЗапросаВСтроку(Параметры);
|
||||
Ответ = OPI_ЗапросыHTTP.PutСТелом(URL + Параметры, , Заголовки, Ложь);
|
||||
Тело = OPI_РасширенныйВызов.НормализоватьПромежуточныйРезультат(Ответ);
|
||||
|
||||
URLОтвета = Ответ[Href];
|
||||
URLОтвета = Тело[Href];
|
||||
|
||||
Если Не ЗначениеЗаполнено(URLОтвета) Тогда
|
||||
Возврат Ответ;
|
||||
|
||||
@@ -55,6 +55,8 @@
|
||||
|
||||
Если OPI_Инструменты.ЭтоOneScript() Тогда
|
||||
|
||||
// !IRPSkip
|
||||
|
||||
//@skip-check property-not-writable
|
||||
//@skip-check bsl-legacy-check-static-feature-access
|
||||
Обработки = Неопределено;
|
||||
@@ -65,6 +67,7 @@
|
||||
Иначе
|
||||
|
||||
#Если НаКлиенте Тогда
|
||||
// !IRPSkip
|
||||
HTTPКлиент = ПолучитьФорму("Обработка.OPI_HTTPКлиент.Форма.ОбъектКлиентскогоВызова");
|
||||
#Иначе
|
||||
HTTPКлиент = Обработки.OPI_HTTPКлиент.Создать(); // !OPI
|
||||
|
||||
@@ -59,15 +59,22 @@
|
||||
Значение = ПолучитьДвоичныеДанныеИзСтроки(Значение);
|
||||
|
||||
Иначе
|
||||
|
||||
// !IRPSkip
|
||||
ПолучитьСтроку(Значение);
|
||||
// !IRPSkip
|
||||
ПреобразоватьИсточникВЗначение(Значение, ПопыткаB64);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Исключение
|
||||
|
||||
Если Безусловно Тогда
|
||||
|
||||
// !IRPSkip
|
||||
ПолучитьСтроку(Значение);
|
||||
Значение = ПолучитьДвоичныеДанныеИзСтроки(Значение);
|
||||
|
||||
Иначе
|
||||
ВызватьИсключение "Ошибка получения двоичных данных из параметра: " + ОписаниеОшибки();
|
||||
КонецЕсли;
|
||||
@@ -83,11 +90,14 @@
|
||||
КонецЕсли;
|
||||
|
||||
Если ТипЗнч(Значение) <> Тип("Строка") Тогда
|
||||
// !IRPSkip
|
||||
ПолучитьДвоичныеДанные(Значение);
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ЗначениеУП = Значение;
|
||||
|
||||
// !IRPSkip
|
||||
ВернутьУправляющиеПоследовательности(ЗначениеУП);
|
||||
|
||||
Файл = Новый Файл(ЗначениеУП);
|
||||
@@ -127,6 +137,8 @@
|
||||
КонецЕсли;
|
||||
|
||||
ЗначениеУП = Значение;
|
||||
|
||||
// !IRPSkip
|
||||
ВернутьУправляющиеПоследовательности(ЗначениеУП);
|
||||
|
||||
Файл = Новый Файл(ЗначениеУП);
|
||||
@@ -142,6 +154,7 @@
|
||||
Или СтрНачинаетсяС(СокрЛ(ЗначениеУП), "https://")) Тогда
|
||||
|
||||
Значение = ПолучитьHttpКлиент().Get(ЗначениеУП);
|
||||
Значение = OPI_РасширенныйВызов.НормализоватьПромежуточныйРезультат(Значение);
|
||||
|
||||
Иначе
|
||||
|
||||
@@ -239,6 +252,8 @@
|
||||
КонецЕсли;
|
||||
|
||||
ЗначениеУП = Значение;
|
||||
|
||||
// !IRPSkip
|
||||
ВернутьУправляющиеПоследовательности(ЗначениеУП);
|
||||
|
||||
Файл = Новый Файл(ЗначениеУП);
|
||||
@@ -253,6 +268,7 @@
|
||||
Или СтрНачинаетсяС(СокрЛ(ЗначениеУП), "https://") Тогда
|
||||
|
||||
Значение = ПолучитьHttpКлиент().Get(ЗначениеУП);
|
||||
Значение = OPI_РасширенныйВызов.НормализоватьПромежуточныйРезультат(Значение);
|
||||
ПолучитьСтроку(Значение);
|
||||
|
||||
Иначе
|
||||
@@ -521,6 +537,8 @@
|
||||
Процедура ПреобразоватьИсточникВЗначение(Значение, ПопыткаB64)
|
||||
|
||||
ЗначениеУП = Значение;
|
||||
|
||||
// !IRPSkip
|
||||
ВернутьУправляющиеПоследовательности(ЗначениеУП);
|
||||
|
||||
Файл = Новый Файл(ЗначениеУП);
|
||||
@@ -533,6 +551,7 @@
|
||||
Или СтрНачинаетсяС(СокрЛ(ЗначениеУП), "https://") Тогда
|
||||
|
||||
Значение = ПолучитьHttpКлиент().Get(ЗначениеУП);
|
||||
Значение = OPI_РасширенныйВызов.НормализоватьПромежуточныйРезультат(Значение);
|
||||
|
||||
Иначе
|
||||
|
||||
@@ -571,21 +590,27 @@
|
||||
Если ЭтоOneScript() Тогда
|
||||
|
||||
Попытка
|
||||
// !IRPSkip
|
||||
// !OInt OPI_ЗапросыHTTP = Неопределено;
|
||||
Возврат Неопределено; // !OPI
|
||||
Исключение
|
||||
// !IRPSkip
|
||||
Возврат OPI_ЗапросыHTTP;
|
||||
КонецПопытки;
|
||||
|
||||
// !IRPSkip
|
||||
// !OInt ПутьКлиента = ПолучитьПутьHttpКлиента();
|
||||
// !OInt Попытка ПодключитьСценарий(ПутьКлиента, "OPI_ЗапросыHTTP"); Исключение КонецПопытки;
|
||||
|
||||
// !IRPSkip
|
||||
|
||||
//@skip-check bsl-legacy-check-string-literal
|
||||
//@skip-check bsl-legacy-check-method-for-statements-after-return
|
||||
HttpКлиент = Новый("OPI_ЗапросыHTTP");
|
||||
Возврат HttpКлиент;
|
||||
|
||||
Иначе
|
||||
// !IRPSkip
|
||||
Возврат OPI_ЗапросыHTTP; // !OPI
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
@@ -233,18 +233,20 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура НормализоватьПромежуточныйРезультат(Результат) Экспорт
|
||||
Функция НормализоватьПромежуточныйРезультат(Знач Результат) Экспорт
|
||||
|
||||
НормализованныйРезультат = Неопределено;
|
||||
|
||||
Если OPI_Инструменты.ПолучитьИли(ПолучитьТекущиеНастройки(), "adv_response", Ложь)
|
||||
И OPI_Инструменты.ПолеКоллекцииСуществует(Результат, "body", НормализованныйРезультат) Тогда
|
||||
|
||||
Результат = НормализованныйРезультат;
|
||||
Возврат НормализованныйРезультат;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецПроцедуры
|
||||
КонецФункции
|
||||
|
||||
Процедура УдалитьНастройки() Экспорт
|
||||
|
||||
|
||||
@@ -3532,7 +3532,9 @@
|
||||
Процедура Bitrix24_СоздатьПользователя(ПараметрыФункции)
|
||||
|
||||
URL = ПараметрыФункции["Bitrix24_URL"];
|
||||
Почта = Строка(Новый УникальныйИдентификатор) + "@example.org";
|
||||
|
||||
Почта = "example@mail.ru";
|
||||
Почта = Строка(Новый УникальныйИдентификатор) + "@mail.org"; // SKIP
|
||||
|
||||
// Полную структуру можно получить функцией ПолучитьСтруктуруПользователя
|
||||
|
||||
@@ -3546,7 +3548,8 @@
|
||||
|
||||
URL = ПараметрыФункции["Bitrix24_Domain"];
|
||||
Токен = ПараметрыФункции["Bitrix24_Token"];
|
||||
Почта = Строка(Новый УникальныйИдентификатор) + "@example.org";
|
||||
|
||||
Почта = Строка(Новый УникальныйИдентификатор) + "@mail.org"; // SKIP
|
||||
|
||||
СтруктураПользователя = Новый Структура;
|
||||
СтруктураПользователя.Вставить("EMAIL" , Почта);
|
||||
|
||||
Reference in New Issue
Block a user