diff --git a/XML/CommonModules/OPI_Airtable.xml b/XML/CommonModules/OPI_Airtable.xml
deleted file mode 100644
index 89f25fd3df..0000000000
--- a/XML/CommonModules/OPI_Airtable.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
- OPI_Airtable
-
-
-
- OPI airtable
-
-
- ru
- Airtable (ОПИ)
-
-
- Модуль для работы с Airtable из набора ОПИ
- false
- false
- true
- true
- true
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git a/XML/CommonModules/OPI_Airtable/Ext/Module.bsl b/XML/CommonModules/OPI_Airtable/Ext/Module.bsl
deleted file mode 100644
index de22edefb7..0000000000
--- a/XML/CommonModules/OPI_Airtable/Ext/Module.bsl
+++ /dev/null
@@ -1,695 +0,0 @@
-// OneScript: ./OInt/core/Modules/OPI_Airtable.os
-// Lib: Airtable
-// CLI: airtable
-// Keywords: airtable
-
-// MIT License
-
-// Copyright (c) 2023-2025 Anton Tsitavets
-
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-
-// The above copyright notice and this permission notice shall be included in all
-// copies or substantial portions of the Software.
-
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-// SOFTWARE.
-
-// https://github.com/Bayselonarrend/OpenIntegrations
-
-// BSLLS:IncorrectLineBreak-off
-// BSLLS:UsingServiceTag-off
-// BSLLS:UsingSynchronousCalls-off
-
-//@skip-check module-structure-top-region
-//@skip-check module-structure-method-in-regions
-//@skip-check wrong-string-literal-content
-
-#Область ПрограммныйИнтерфейс
-
-#Область РаботаСБазами
-
-// Получить список баз
-// Получает список доступных баз
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// Отступ - Строка - Идентификатор следующей страницы списка баз из перыдудщего запроса - offset
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Airtable
-Функция ПолучитьСписокБаз(Знач Токен, Знач Отступ = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Отступ);
-
- URL = "https://api.airtable.com/v0/meta/bases";
- Заголовки = ПолучитьЗаголовокАвторизации(Токен);
- Параметры = Новый Структура;
-
- OPI_Инструменты.ДобавитьПоле("offset", Отступ, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить таблицы базы
-// Получает схему таблиц базы
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// База - Строка - Идентификатор базы - base
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Airtable
-Функция ПолучитьТаблицыБазы(Знач Токен, Знач База) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(База);
-
- URL = "https://api.airtable.com/v0/meta/bases/" + База + "/tables";
- Заголовки = ПолучитьЗаголовокАвторизации(Токен);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, , Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Создать базу
-// Создает новую базу данных
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// РабочееПространство - Строка - Идентификатор рабочего пространства - ws
-// Наименование - Строка - Наименование новой базы - title
-// КоллекцияТаблиц - Соответствие Из КлючИЗначение - Описание таблиц: Ключ > имя, Значение > массив полей - tablesdata
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Airtable
-Функция СоздатьБазу(Знач Токен, Знач РабочееПространство, Знач Наименование, Знач КоллекцияТаблиц) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьКоллекцию(КоллекцияТаблиц);
-
- Если Не ТипЗнч(КоллекцияТаблиц) = Тип("Структура")
- И Не ТипЗнч(КоллекцияТаблиц) = Тип("Соответствие") Тогда
-
- ВызватьИсключение "Ошибка в данных коллекции таблиц";
-
- КонецЕсли;
-
- URL = "https://api.airtable.com/v0/meta/bases";
- Заголовки = ПолучитьЗаголовокАвторизации(Токен);
- МассивТаблиц = Новый Массив;
-
- Для Каждого Таблица Из КоллекцияТаблиц Цикл
-
- Описание = СформироватьОписаниеТаблицы(Таблица.Ключ, Таблица.Значение);
- МассивТаблиц.Добавить(Описание);
-
- КонецЦикла;
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("name" , Наименование , "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("tables" , МассивТаблиц , "Массив", Параметры);
- OPI_Инструменты.ДобавитьПоле("workspaceId", РабочееПространство, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область РаботаСТаблицами
-
-// Создать таблицу
-// Создает новую таблицу в базе
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// База - Строка - Идентификатор базы - base
-// Наименование - Строка - Наименование новой таблицы - title
-// МассивПолей - Массив Из Структура - Массив описаний полей - fieldsdata
-// Описание - Строка - Описание таблицы - description
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Airtable
-Функция СоздатьТаблицу(Знач Токен, Знач База, Знач Наименование, Знач МассивПолей, Знач Описание = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(База);
-
- URL = "https://api.airtable.com/v0/meta/bases/" + База + "/tables";
- Заголовки = ПолучитьЗаголовокАвторизации(Токен);
- Параметры = СформироватьОписаниеТаблицы(Наименование, МассивПолей, Описание);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Изменить таблицу
-// Изменяет наименование и|или описание базы
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// База - Строка - Идентификатор базы - base
-// Таблица - Строка - Идентификатор таблицы - table
-// Наименование - Строка - Новое наименование - title
-// Описание - Строка - Новое описание - description
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Airtable
-Функция ИзменитьТаблицу(Знач Токен, Знач База, Знач Таблица, Знач Наименование = "", Знач Описание = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(База);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Таблица);
-
- URL = "https://api.airtable.com/v0/meta/bases/" + База + "/tables/" + Таблица;
- Заголовки = ПолучитьЗаголовокАвторизации(Токен);
- Параметры = Новый Структура;
-
- OPI_Инструменты.ДобавитьПоле("name" , Наименование, "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("description", Описание , "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PatchСТелом(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область РаботаСПолями
-
-// Создать поле
-// Создет новое поле в таблице
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// База - Строка - Идентификатор базы - base
-// Таблица - Строка - Идентификатор таблицы - table
-// СтруктураПоля - Структура Из КлючИЗначение - Описание нового поля - fielddata
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Airtable
-Функция СоздатьПоле(Знач Токен, Знач База, Знач Таблица, Знач СтруктураПоля) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(База);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Таблица);
- OPI_ПреобразованиеТипов.ПолучитьКоллекцию(СтруктураПоля);
-
- Если Не ТипЗнч(СтруктураПоля) = Тип("Структура")
- И Не ТипЗнч(СтруктураПоля) = Тип("Соответствие") Тогда
-
- ВызватьИсключение "Ошибка в данных описания поля";
-
- КонецЕсли;
-
- URL = "https://api.airtable.com/v0/meta/bases/" + База + "/tables/" + Таблица + "/fields";
- Заголовки = ПолучитьЗаголовокАвторизации(Токен);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, СтруктураПоля, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Изменить поле
-// Изменяет имя и|или описание существующего поля таблицы
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// База - Строка - Идентификатор базы База - base
-// Таблица - Строка - Идентификатор таблицы - table
-// Поле - Строка - Идентификатор поля - field
-// Наименование - Строка - Новое наименование - title
-// Описание - Строка - Новое описание - description
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Airtable
-Функция ИзменитьПоле(Знач Токен, Знач База, Знач Таблица, Знач Поле, Знач Наименование = "", Знач Описание = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(База);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Таблица);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Поле);
-
- URL = "https://api.airtable.com/v0/meta/bases/"
- + База
- + "/tables/"
- + Таблица
- + "/fields/"
- + Поле;
-
- Заголовки = ПолучитьЗаголовокАвторизации(Токен);
-
- Параметры = Новый Структура();
- OPI_Инструменты.ДобавитьПоле("name" , Наименование, "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("description", Описание , "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PatchСТелом(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить поле (строковое)
-// Получает описание поля строкового типа
-//
-// Параметры:
-// Наименование - Строка - Наименование нового поля - title
-//
-// Возвращаемое значение:
-// Структура - Описание поля
-Функция ПолучитьПолеСтроковое(Знач Наименование) Экспорт
-
- Возврат ОписаниеПримитивногоПоля(Наименование, "richText");
-
-КонецФункции
-
-// Получить поле (числовое)
-// Получает описание поля числового типа
-//
-// Параметры:
-// Наименование - Строка - Наименование нового поля - title
-// Точность - Число,Строка - Число знаков после запятой - precision
-//
-// Возвращаемое значение:
-// Структура - Описание поля
-Функция ПолучитьПолеНомера(Знач Наименование, Знач Точность = 0) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьЧисло(Точность);
-
- СтруктураОпций = Новый Структура("precision", Точность);
- Возврат ОписаниеПримитивногоПоля(Наименование, "number", СтруктураОпций);
-
-КонецФункции
-
-// Получить поле (файл)
-// Получает описание поля файлового типа
-//
-// Параметры:
-// Наименование - Строка - Наименование поля - title
-//
-// Возвращаемое значение:
-// Структура - Описание поля
-Функция ПолучитьПолеВложения(Знач Наименование) Экспорт
-
- Возврат ОписаниеПримитивногоПоля(Наименование, "multipleAttachments");
-
-КонецФункции
-
-// Получить поле (флажок)
-// Получает описание поля типа булево
-//
-// Параметры:
-// Наименование - Строка - Наименование поля - title
-//
-// Возвращаемое значение:
-// Структура - Описание поля
-Функция ПолучитьПолеФлажка(Знач Наименование) Экспорт
-
- СтруктураОпций = Новый Структура("icon,color", "check", "yellowBright");
- Возврат ОписаниеПримитивногоПоля(Наименование, "checkbox", СтруктураОпций);
-
-КонецФункции
-
-// Получить поле (дата)
-// Получает описание поля типа дата
-//
-// Параметры:
-// Наименование - Строка - Наименование поля - title
-//
-// Возвращаемое значение:
-// Структура - Описание поля
-Функция ПолучитьПолеДаты(Знач Наименование) Экспорт
-
- СтруктураФормата = Новый Структура("format,name", "YYYY-MM-DD", "iso");
- СтруктураОпций = Новый Структура("dateFormat", СтруктураФормата);
-
- Возврат ОписаниеПримитивногоПоля(Наименование, "date", СтруктураОпций);
-
-КонецФункции
-
-// Получить поле (email)
-// Получает описание поля с электронной почтой
-//
-// Параметры:
-// Наименование - Строка - Наименование поля - title
-//
-// Возвращаемое значение:
-// Структура - Описание поля
-Функция ПолучитьПолеПочты(Знач Наименование) Экспорт
-
- Возврат ОписаниеПримитивногоПоля(Наименование, "email");
-
-КонецФункции
-
-// Получить поле (телефон)
-// Получает описание поля с номером телефона
-//
-// Параметры:
-// Наименование - Строка - Наименование поля - title
-//
-// Возвращаемое значение:
-// Структура - Описание поля
-Функция ПолучитьПолеТелефона(Знач Наименование) Экспорт
-
- Возврат ОписаниеПримитивногоПоля(Наименование, "phoneNumber");
-
-КонецФункции
-
-// Получить поле (url)
-// Получает описание поля с URL
-//
-// Параметры:
-// Наименование - Строка - Наименование поля - title
-//
-// Возвращаемое значение:
-// Структура - Описание поля
-Функция ПолучитьПолеСсылки(Знач Наименование) Экспорт
-
- Возврат ОписаниеПримитивногоПоля(Наименование, "url");
-
-КонецФункции
-
-#КонецОбласти
-
-#Область РаботаСЗаписями
-
-// Получить список записей
-// Получает список записей выбранной таблицы
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// База - Строка - Идентификатор базы данных - base
-// Таблица - Строка - Идентификатор таблицы - table
-// Отступ - Строка - Иднтификатор следующей страницы данных из предыдущего запроса - offset
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Airtable
-Функция ПолучитьСписокЗаписей(Знач Токен, Знач База, Знач Таблица, Знач Отступ = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(База);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Таблица);
-
- URL = "https://api.airtable.com/v0/" + База + "/" + Таблица;
- Заголовки = ПолучитьЗаголовокАвторизации(Токен);
-
- Параметры = Новый Структура();
- OPI_Инструменты.ДобавитьПоле("offset", Отступ, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить запись
-// Получает данные строки таблицы по идентификатору
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// База - Строка - Идентификатор базы данных - base
-// Таблица - Строка - Идентификатор таблицы - table
-// Запись - Строка - Идентификатор записи в таблице - record
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Airtable
-Функция ПолучитьЗапись(Знач Токен, Знач База, Знач Таблица, Знач Запись) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(База);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Таблица);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Запись);
-
- URL = "https://api.airtable.com/v0/" + База + "/" + Таблица + "/" + Запись;
- Заголовки = ПолучитьЗаголовокАвторизации(Токен);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, , Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Создать записи
-// Создает одну или массив записей по описанию или массиву описаний значений полей
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// База - Строка - Идентификатор базы данных - base
-// Таблица - Строка - Идентификатор таблицы - table
-// Данные - Структура, Массив из Структура - Набор или массив наборов пар Ключ : Значение > Поле : Показатель - data
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Airtable
-Функция СоздатьЗаписи(Знач Токен, Знач База, Знач Таблица, Знач Данные) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(База);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Таблица);
- OPI_ПреобразованиеТипов.ПолучитьКоллекцию(Данные);
-
- Параметры = Новый Структура();
- ДобавитьОписаниеДанных(Данные, Параметры);
-
- URL = "https://api.airtable.com/v0/" + База + "/" + Таблица;
- Заголовки = ПолучитьЗаголовокАвторизации(Токен);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Удалить записи
-// Удаляет одну или массив записей по идентификаторам
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// База - Строка - Идентификатор базы данных - base
-// Таблица - Строка - Идентификатор таблицы - table
-// Записи - Строка, Массив из Строка - Идентификатор или массив индентификаторов записей - records
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Airtable
-Функция УдалитьЗаписи(Знач Токен, Знач База, Знач Таблица, Знач Записи) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(База);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Таблица);
- OPI_ПреобразованиеТипов.ПолучитьМассив(Записи);
-
- СтрокаЗаписей = "";
-
- Для Каждого Запись Из Записи Цикл
- СтрокаЗаписей = СтрокаЗаписей
- + ?(ЗначениеЗаполнено(СтрокаЗаписей), "&", "?")
- + "records[]="
- + OPI_Инструменты.ЧислоВСтроку(Запись);
- КонецЦикла;
-
- URL = "https://api.airtable.com/v0/" + База + "/" + Таблица + СтрокаЗаписей;
- Заголовки = ПолучитьЗаголовокАвторизации(Токен);
-
- Ответ = OPI_ЗапросыHTTP.Delete(URL, , Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область РаботаСКомментариями
-
-// Получить комментарии
-// Получает список комментариев к записи в таблице
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// База - Строка - Идентификатор базы данных - base
-// Таблица - Строка - Идентификатор таблицы - table
-// Запись - Строка - Идентификатор записи в таблице - record
-// Отступ - Строка - Иднтификатор следующей страницы данных из предыдущего запроса - offset
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Airtable
-Функция ПолучитьКомментарии(Знач Токен, Знач База, Знач Таблица, Знач Запись, Знач Отступ = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(База);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Таблица);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Запись);
-
- URL = "https://api.airtable.com/v0/" + База + "/" + Таблица + "/" + Запись + "/comments";
- Заголовки = ПолучитьЗаголовокАвторизации(Токен);
-
- Параметры = Новый Структура();
- OPI_Инструменты.ДобавитьПоле("offset", Отступ, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Создать комментарий
-// Создает комментарий к записи в таблице
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// База - Строка - Идентификатор базы данных - base
-// Таблица - Строка - Идентификатор таблицы - table
-// Запись - Строка - Идентификатор записи в таблице - record
-// Текст - Строка - Текст комментария - text
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Airtable
-Функция СоздатьКомментарий(Знач Токен, Знач База, Знач Таблица, Знач Запись, Знач Текст) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(База);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Таблица);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Запись);
-
- URL = "https://api.airtable.com/v0/" + База + "/" + Таблица + "/" + Запись + "/comments";
- Заголовки = ПолучитьЗаголовокАвторизации(Токен);
-
- Параметры = Новый Структура();
- OPI_Инструменты.ДобавитьПоле("text", Текст, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Изменить комментарий
-// Изменяет текст существующего комментария
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// База - Строка - Идентификатор базы данных - base
-// Таблица - Строка - Идентификатор таблицы - table
-// Запись - Строка - Идентификатор записи в таблице - record
-// Комментарий - Строка - Идентификатор комментария - comment
-// Текст - Строка - Новый текст комментария - text
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Airtable
-Функция ИзменитьКомментарий(Знач Токен, Знач База, Знач Таблица, Знач Запись, Знач Комментарий, Знач Текст) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(База);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Таблица);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Запись);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Комментарий);
-
- URL = "https://api.airtable.com/v0/" + База + "/" + Таблица + "/" + Запись + "/comments/" + Комментарий;
- Заголовки = ПолучитьЗаголовокАвторизации(Токен);
-
- Параметры = Новый Структура();
- OPI_Инструменты.ДобавитьПоле("text", Текст, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PatchСТелом(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Удалить комментарий
-// Удаляет комментарий к записи таблицы
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// База - Строка - Идентификатор базы данных - base
-// Таблица - Строка - Идентификатор таблицы - table
-// Запись - Строка - Идентификатор записи в таблице - record
-// Комментарий - Строка - Идентификатор комментария - comment
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Airtable
-Функция УдалитьКомментарий(Знач Токен, Знач База, Знач Таблица, Знач Запись, Знач Комментарий) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(База);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Таблица);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Запись);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Комментарий);
-
- URL = "https://api.airtable.com/v0/" + База + "/" + Таблица + "/" + Запись + "/comments/" + Комментарий;
- Заголовки = ПолучитьЗаголовокАвторизации(Токен);
-
- Ответ = OPI_ЗапросыHTTP.Delete(URL, , Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-#КонецОбласти
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-Функция ПолучитьЗаголовокАвторизации(Знач Токен)
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
-
- Заголовки = Новый Соответствие;
- Заголовки.Вставить("Authorization", "Bearer " + Токен);
-
- Возврат Заголовки;
-
-КонецФункции
-
-Функция СформироватьОписаниеТаблицы(Знач Наименование, Знач МассивПолей, Знач Описание = "")
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Наименование);
- OPI_ПреобразованиеТипов.ПолучитьКоллекцию(МассивПолей);
-
- ОписаниеТаблицы = Новый Структура("name,fields", Наименование, МассивПолей);
-
- OPI_Инструменты.ДобавитьПоле("description", Описание, "Строка", ОписаниеТаблицы);
-
- Возврат ОписаниеТаблицы;
-
-КонецФункции
-
-Функция ОписаниеПримитивногоПоля(Знач Наименование, Знач Тип, Знач Опции = "")
-
- СтруктураПоля = Новый Структура();
- OPI_Инструменты.ДобавитьПоле("name" , Наименование, "Строка" , СтруктураПоля);
- OPI_Инструменты.ДобавитьПоле("type" , Тип , "Строка" , СтруктураПоля);
- OPI_Инструменты.ДобавитьПоле("options", Опции , "Коллекция", СтруктураПоля);
-
- Возврат СтруктураПоля;
-
-КонецФункции
-
-Процедура ДобавитьОписаниеДанных(Знач Данные, Параметры)
-
- Если ТипЗнч(Данные) = Тип("Массив") Тогда
-
- МассивОтправки = Новый Массив;
-
- Для Каждого ОписаниеЗаписи Из Данные Цикл
- МассивОтправки.Добавить(Новый Структура("fields", ОписаниеЗаписи));
- КонецЦикла;
-
- OPI_Инструменты.ДобавитьПоле("records", МассивОтправки, "Массив", Параметры);
-
- Иначе
-
- OPI_Инструменты.ДобавитьПоле("fields", Данные, "Коллекция", Параметры);
-
- КонецЕсли;
-
-КонецПроцедуры
-
-#КонецОбласти
diff --git a/XML/CommonModules/OPI_Bitrix24.xml b/XML/CommonModules/OPI_Bitrix24.xml
deleted file mode 100644
index b349b33e96..0000000000
--- a/XML/CommonModules/OPI_Bitrix24.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- OPI_Bitrix24
-
-
- ru
- Bitrix24 (ОПИ)
-
-
- Модуль для работы с Bitrix24 из набора ОПИ
- false
- false
- true
- true
- true
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git a/XML/CommonModules/OPI_Bitrix24/Ext/Module.bsl b/XML/CommonModules/OPI_Bitrix24/Ext/Module.bsl
deleted file mode 100644
index f617988567..0000000000
--- a/XML/CommonModules/OPI_Bitrix24/Ext/Module.bsl
+++ /dev/null
@@ -1,5236 +0,0 @@
-// OneScript: ./OInt/core/Modules/OPI_Bitrix24.os
-// Lib: Bitrix24
-// CLI: bitrix24
-// Keywords: bitrix24, b24, bitrix
-
-// MIT License
-
-// Copyright (c) 2023-2025 Anton Tsitavets
-
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-
-// The above copyright notice and this permission notice shall be included in all
-// copies or substantial portions of the Software.
-
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-// SOFTWARE.
-
-// https://github.com/Bayselonarrend/OpenIntegrations
-
-// BSLLS:Typo-off
-// BSLLS:LatinAndCyrillicSymbolInWord-off
-// BSLLS:IncorrectLineBreak-off
-// BSLLS:NumberOfOptionalParams-off
-// BSLLS:UsingServiceTag-off
-// BSLLS:LineLength-off
-// BSLLS:UsingSynchronousCalls-off
-
-//@skip-check module-structure-top-region
-//@skip-check module-structure-method-in-regions
-//@skip-check wrong-string-literal-content
-//@skip-check method-too-many-params
-
-#Область ПрограммныйИнтерфейс
-
-#Область НастройкиИАдминистрирование
-
-// Получить ссылку авторизации приложения
-// Формирует ссылку для авторизации через браузер
-//
-// Параметры:
-// Домен - Строка - Адрес битрикс вида portal.bitrix24.com - domain
-// ClientID - Строка - Client ID из настроек приложения - clientid
-//
-// Возвращаемое значение:
-// Строка - URL для перехода в браузере
-Функция ПолучитьСсылкуАвторизацииПриложения(Знач Домен, Знач ClientID) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Домен);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(ClientID);
-
- Если Не СтрНачинаетсяС(Домен, "http") Тогда
- URL = "https://" + Домен;
- КонецЕсли;
-
- Если Не СтрЗаканчиваетсяНа(URL, "/") Тогда
- URL = URL + "/";
- КонецЕсли;
-
- URL = URL + "oauth/authorize/?client_id=" + ClientID;
-
- Возврат URL;
-
-КонецФункции
-
-// Получить токен
-// Получает токен по коду авторизации
-//
-// Параметры:
-// ClientID - Строка - Client ID из настроек приложения - clientid
-// ClientSecret - Строка - Client secret из настроек приложения - clientsecret
-// Code - Строка - Code из авторизации через браузер - code
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ПолучитьТокен(Знач ClientID, Знач ClientSecret, Знач Code) Экспорт
-
- URL = "https://oauth.bitrix.info/oauth/token/";
- Строка_ = "Строка";
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("grant_type" , "authorization_code", Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("client_id" , ClientID , Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("client_secret", ClientSecret , Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("code" , Code , Строка_, Параметры);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Обновить токен
-// Обновляет токен по Refresh токену
-//
-// Параметры:
-// ClientID - Строка - Client ID из настроек приложения - clientid
-// ClientSecret - Строка - Client secret из настроек приложения - clientsecret
-// Refresh - Строка - Refresh токен - refresh
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ОбновитьТокен(Знач ClientID, Знач ClientSecret, Знач Refresh) Экспорт
-
- URL = "https://oauth.bitrix.info/oauth/token/";
- Строка_ = "Строка";
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("grant_type" , "refresh_token" , Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("client_id" , ClientID , Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("client_secret", ClientSecret , Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("refresh_token", Refresh , Строка_, Параметры);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Серверное время
-// Получает текущее серверное время
-//
-// Примечание:
-// Метод в документации API: [server_time](@dev.1c-bitrix.ru/rest_help/general/server_time.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция СерверноеВремя(Знач URL, Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "server.time");
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область РаботаСЖивойЛентой
-
-// Создать новость
-// Создает новую новость в ленте
-//
-// Примечание:
-// Метод в документации API: [log.blogpost.add](@dev.1c-bitrix.ru/rest_help/log/log_blogpost_add.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// Текст - Строка - Текст новости - text
-// Видимость - Строка - Массив или 1 получатель: UA все, SGn р. группа, Un пользователь, DRn отдел, Gn группа - vision
-// Файлы - Соответствие Из КлючИЗначение - Ключ > имя файла, значение > путь или двоичные данные - files
-// Заголовок - Строка - Заголовок новости - title
-// Важное - Булево - Помечает новость как важную - important
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция СоздатьНовость(Знач URL
- , Знач Текст
- , Знач Видимость = "UA"
- , Знач Файлы = ""
- , Знач Заголовок = ""
- , Знач Важное = Ложь
- , Знач Токен = "") Экспорт
-
- ПривестиБулево(Важное);
-
- Строка_ = "Строка";
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "log.blogpost.add");
- OPI_Инструменты.ДобавитьПоле("POST_MESSAGE", Текст , Строка_ , Параметры);
- OPI_Инструменты.ДобавитьПоле("POST_TITLE" , Заголовок , Строка_ , Параметры);
- OPI_Инструменты.ДобавитьПоле("DEST" , Видимость , "Массив", Параметры);
- OPI_Инструменты.ДобавитьПоле("IMPORTANT" , Важное , Строка_ , Параметры);
-
- Если ЗначениеЗаполнено(Файлы) Тогда
-
- OPI_ПреобразованиеТипов.ПолучитьКоллекцию(Файлы);
-
- МассивФайлов = НормализоватьФайлы(Файлы);
-
- Если Не МассивФайлов.Количество() = 0 Тогда
- Параметры.Вставить("FILES", МассивФайлов);
- КонецЕсли;
-
- КонецЕсли;
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Изменить новость
-// Изменяет новость в ленте
-//
-// Примечание:
-// Метод в документации API: [log.blogpost.update](@dev.1c-bitrix.ru/rest_help/log/log_blogpost_update.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDНовости - Строка, Число - ID новости - postid
-// Текст - Строка - Текст новости - text
-// Видимость - Строка - Массив или 1 получатель: UA все, SGn р. группа, Un пользователь, DRn отдел, Gn группа - vision
-// Файлы - Соответствие Из КлючИЗначение - Ключ > имя файла, значение > путь или двоичные данные - files
-// Заголовок - Строка - Заголовок новости - title
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ИзменитьНовость(Знач URL
- , Знач IDНовости
- , Знач Текст
- , Знач Видимость = "UA"
- , Знач Файлы = ""
- , Знач Заголовок = ""
- , Знач Токен = "") Экспорт
-
- Строка_ = "Строка";
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "log.blogpost.update");
- OPI_Инструменты.ДобавитьПоле("POST_MESSAGE", Текст , Строка_ , Параметры);
- OPI_Инструменты.ДобавитьПоле("POST_TITLE" , Заголовок , Строка_ , Параметры);
- OPI_Инструменты.ДобавитьПоле("DEST" , Видимость , "Массив", Параметры);
- OPI_Инструменты.ДобавитьПоле("POST_ID" , IDНовости , Строка_ , Параметры);
-
- Если ЗначениеЗаполнено(Файлы) Тогда
-
- OPI_ПреобразованиеТипов.ПолучитьКоллекцию(Файлы);
-
- МассивФайлов = НормализоватьФайлы(Файлы);
-
- Если Не МассивФайлов.Количество() = 0 Тогда
- Параметры.Вставить("FILES", МассивФайлов);
- КонецЕсли;
-
- КонецЕсли;
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Удалить новость
-// Удаляет новость из ленты по выбранному ID
-//
-// Примечание:
-// Метод в документации API: [log.blogpost.delete](@dev.1c-bitrix.ru/rest_help/log/log_blogpost_delete.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDНовости - Строка, Число - ID новости для удаления - postid
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция УдалитьНовость(Знач URL, Знач IDНовости, Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "log.blogpost.delete");
- OPI_Инструменты.ДобавитьПоле("POST_ID", IDНовости, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить список просмотревших важное
-// Возвращает список пользователей, просмотревших выбранное важное сообщение
-//
-// Примечание:
-// Метод в документации API: [log.blogpost.getusers.important](@dev.1c-bitrix.ru/rest_help/log/log_blogpost_getusers_important.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDНовости - Строка, Число - ID важной новости - postid
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ПолучитьСписокПросмотревшихВажное(Знач URL, Знач IDНовости, Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "log.blogpost.getusers.important");
- OPI_Инструменты.ДобавитьПоле("POST_ID", IDНовости, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить новости
-// Получает нвости или одну новость с отобором по ID или доступности
-//
-// Примечание:
-// Метод в документации API: [log.blogpost.get](@dev.1c-bitrix.ru/rest_help/log/log_blogpost_get.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDНовости - Строка, Число - ID важной новости - postid
-// Отбор - Строка - Отбор новостей по доступу: UA все, SGn раб. группа, Un пользователь, DRn отдел, Gn группа - sel
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ПолучитьНовости(Знач URL, Знач IDНовости = "", Знач Отбор = "UA", Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "log.blogpost.get");
-
- OPI_Инструменты.ДобавитьПоле("POST_ID" , IDНовости, "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("LOG_RIGHTS", Отбор , "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Добавить комментарий новости
-// Добавляет комментарий к новости
-//
-// Примечание:
-// Метод в документации API: [log.blogcomment.add](@dev.1c-bitrix.ru/rest_help/log/log_blogcomment_add.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDНовости - Строка, Число - ID новости - postid
-// Текст - Строка - Текст комментария - text
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ДобавитьКомментарийНовости(Знач URL, Знач IDНовости, Знач Текст, Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "log.blogcomment.add");
-
- OPI_Инструменты.ДобавитьПоле("POST_ID", IDНовости, "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("TEXT" , Текст , "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Добавить получателей к новости
-// Добавляет новые группы или пользователей в получатели
-//
-// Примечание:
-// Метод в документации API: [log.blogpost.share](@dev.1c-bitrix.ru/rest_help/log/log_blogpost_share.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDНовости - Строка, Число - ID новости - postid
-// Видимость - Строка - Массив или 1 получатель: UA все, SGn р. группа, Un пользователь, DRn отдел, Gn группа - vision
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ДобавитьПолучателейКНовости(Знач URL, Знач IDНовости, Знач Видимость, Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "log.blogpost.share");
-
- OPI_Инструменты.ДобавитьПоле("POST_ID", IDНовости, "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("DEST" , Видимость, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область РаботаСЗадачами
-
-// Получить задачу
-// Получает задачу по ID
-//
-// Примечание:
-// Метод в документации API: [tasks.task.get](@dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_get.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDЗадачи - Число,Строка - ID задачи - task
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ПолучитьЗадачу(Знач URL, Знач IDЗадачи, Знач Токен = "") Экспорт
-
- Ответ = ОсновноеУправляющееДействие(URL, IDЗадачи, "tasks.task.get", Токен, "taskId");
- Возврат Ответ;
-
-КонецФункции
-
-// Получить список задач
-// Получает список задач (50 шт. за запрос максимум) с фильтром или без
-//
-// Примечание:
-// Метод в документации API: [tasks.task.list](@dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_list.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// Фильтр - Структура из КлючИЗначение - Структура отбора задач. См. ПолучитьСтруктуруФильтраЗадач - filter
-// Отступ - Число, Строка - Отступ от начала списка для полчения задач > 50 шт. рекурсивно - offset
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-// Поля - Строка, Массив Из Строка - Список полей задачи в ответе. Все невычисляемые по умолчанию - select
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ПолучитьСписокЗадач(Знач URL, Знач Фильтр = "", Знач Отступ = 0, Знач Токен = "", Знач Поля = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "tasks.task.list");
- OPI_Инструменты.ДобавитьПоле("filter", Фильтр, "Коллекция", Параметры);
- OPI_Инструменты.ДобавитьПоле("start" , Отступ, "Строка" , Параметры);
- OPI_Инструменты.ДобавитьПоле("select", Поля , "Массив" , Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Создать задачу
-// Создает новую задачу по структуре полей
-//
-// Примечание:
-// Метод в документации API: [tasks.task.add](@dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_add.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// СтруктураПолей - Структура Из КлючИЗначение - Структура полей задачи. См. ПолучитьСтруктуруЗадачи - fields
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция СоздатьЗадачу(Знач URL, Знач СтруктураПолей, Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "tasks.task.add");
- OPI_Инструменты.ДобавитьПоле("fields", СтруктураПолей, "Коллекция", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Изменить задачу
-// Изменяет существующую задачу
-//
-// Примечание:
-// Метод в документации API: [tasks.task.update](@dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_update.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDЗадачи - Число,Строка - ID задачи - task
-// СтруктураПолей - Структура Из КлючИЗначение - Структура полей задачи - fields
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ИзменитьЗадачу(Знач URL, Знач IDЗадачи, Знач СтруктураПолей, Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "tasks.task.update");
- OPI_Инструменты.ДобавитьПоле("fields", СтруктураПолей, "Коллекция", Параметры);
- OPI_Инструменты.ДобавитьПоле("taskId", IDЗадачи , "Строка" , Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Удалить задачу
-// Удаляет задачу по ID
-//
-// Примечание:
-// Метод в документации API: [tasks.task.delete](@dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_delete.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDЗадачи - Число,Строка - ID задачи - task
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция УдалитьЗадачу(Знач URL, Знач IDЗадачи, Знач Токен = "") Экспорт
-
- Ответ = ОсновноеУправляющееДействие(URL, IDЗадачи, "tasks.task.delete", Токен, "taskId");
- Возврат Ответ;
-
-КонецФункции
-
-// Добавить файл в задачу
-// Прикрепляет файл к выбранной задаче
-//
-// Примечание:
-// Метод в документации API: [tasks.task.files.attach](@dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_files_attach.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDЗадачи - Число, Строка - ID задачи - task
-// IDФайла - Число, Строка - ID Файла - fileid
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ДобавитьФайлВЗадачу(Знач URL, Знач IDЗадачи, Знач IDФайла, Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "tasks.task.files.attach");
- OPI_Инструменты.ДобавитьПоле("fileId", IDФайла , "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("taskId", IDЗадачи, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Принять задачу
-// Принимает задачу по ID
-//
-// Примечание:
-// Метод в документации API: [tasks.task.approve](@dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_approve.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDЗадачи - Число,Строка - ID задачи - task
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ПринятьЗадачу(Знач URL, Знач IDЗадачи, Знач Токен = "") Экспорт
-
- Ответ = ОсновноеУправляющееДействие(URL, IDЗадачи, "tasks.task.approve", Токен, "taskId");
- Возврат Ответ;
-
-КонецФункции
-
-// Отклонить задачу
-// Отклоняет задачу по ID
-//
-// Примечание:
-// Метод в документации API: [tasks.task.disapprove](@dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_disapprove.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDЗадачи - Число,Строка - ID задачи - task
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ОтклонитьЗадачу(Знач URL, Знач IDЗадачи, Знач Токен = "") Экспорт
-
- Ответ = ОсновноеУправляющееДействие(URL, IDЗадачи, "tasks.task.disapprove", Токен, "taskId");
- Возврат Ответ;
-
-КонецФункции
-
-// Завершить задачу
-// Завершает задачу по ID
-//
-// Примечание:
-// Метод в документации API: [tasks.task.complete](@dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_complete.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDЗадачи - Число,Строка - ID задачи - task
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ЗавершитьЗадачу(Знач URL, Знач IDЗадачи, Знач Токен = "") Экспорт
-
- Ответ = ОсновноеУправляющееДействие(URL, IDЗадачи, "tasks.task.complete", Токен, "taskId");
- Возврат Ответ;
-
-КонецФункции
-
-// Возобновить задачу
-// Возвращает в работу задачу по ID
-//
-// Примечание:
-// Метод в документации API: [tasks.task.renew](@dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_renew.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDЗадачи - Число,Строка - ID задачи - task
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ВозобновитьЗадачу(Знач URL, Знач IDЗадачи, Знач Токен = "") Экспорт
-
- Ответ = ОсновноеУправляющееДействие(URL, IDЗадачи, "tasks.task.renew", Токен, "taskId");
- Возврат Ответ;
-
-КонецФункции
-
-// Отложить задачу
-// Откладывает задачу по ID
-//
-// Примечание:
-// Метод в документации API: [tasks.task.defer](@dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_defer.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDЗадачи - Число,Строка - ID задачи - task
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ОтложитьЗадачу(Знач URL, Знач IDЗадачи, Знач Токен = "") Экспорт
-
- Ответ = ОсновноеУправляющееДействие(URL, IDЗадачи, "tasks.task.defer", Токен, "taskId");
- Возврат Ответ;
-
-КонецФункции
-
-// Приостановить задачу
-// Приостанавливает задачу по ID
-//
-// Примечание:
-// Метод в документации API: [tasks.task.pause](@dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_pause.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDЗадачи - Число,Строка - ID задачи - task
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ПриостановитьЗадачу(Знач URL, Знач IDЗадачи, Знач Токен = "") Экспорт
-
- Ответ = ОсновноеУправляющееДействие(URL, IDЗадачи, "tasks.task.pause", Токен, "taskId");
- Возврат Ответ;
-
-КонецФункции
-
-// Начать выполнение задачи
-// Начинает выполнение задачи по ID
-//
-// Примечание:
-// Метод в документации API: [tasks.task.start](@dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_start.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDЗадачи - Число,Строка - ID задачи - task
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция НачатьВыполнениеЗадачи(Знач URL, Знач IDЗадачи, Знач Токен = "") Экспорт
-
- Ответ = ОсновноеУправляющееДействие(URL, IDЗадачи, "tasks.task.start", Токен, "taskId");
- Возврат Ответ;
-
-КонецФункции
-
-// Начать наблюдать за задачей
-// Начинает наблюдение за задачей по ID
-//
-// Примечание:
-// Метод в документации API: [tasks.task.startwatch](@dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_startwatch.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDЗадачи - Число,Строка - ID задачи - task
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция НачатьНаблюдатьЗаЗадачей(Знач URL, Знач IDЗадачи, Знач Токен = "") Экспорт
-
- Ответ = ОсновноеУправляющееДействие(URL, IDЗадачи, "tasks.task.startwatch", Токен, "taskId");
- Возврат Ответ;
-
-КонецФункции
-
-// Прекратить наблюдать за задачей
-// Прекращает наблюдение за задчей по ID
-//
-// Примечание:
-// Метод в документации API: [tasks.task.stopwatch](@dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_stopwatch.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDЗадачи - Число,Строка - ID задачи - task
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ПрекратитьНаблюдатьЗаЗадачей(Знач URL, Знач IDЗадачи, Знач Токен = "") Экспорт
-
- Ответ = ОсновноеУправляющееДействие(URL, IDЗадачи, "tasks.task.stopwatch", Токен, "taskId");
- Возврат Ответ;
-
-КонецФункции
-
-// Делегировать задачу
-// Делегирует задачу на другого пользователя
-//
-// Примечание:
-// Метод в документации API: [tasks.task.delegate](@dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_delegate.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDЗадачи - Число,Строка - ID задачи - task
-// IDПользователя - Число,Строка - ID пользователя исполнителя - user
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ДелегироватьЗадачу(Знач URL, Знач IDЗадачи, Знач IDПользователя, Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "tasks.task.delegate");
- OPI_Инструменты.ДобавитьПоле("taskId", IDЗадачи , "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("userId", IDПользователя, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Добавить задачу в избранное
-// Добавляет задачу в список избранного
-//
-// Примечание:
-// Метод в документации API: [tasks.task.favorite.add](@dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_favorite_add.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDЗадачи - Число,Строка - ID задачи - task
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ДобавитьЗадачуВИзбранное(Знач URL, Знач IDЗадачи, Знач Токен = "") Экспорт
-
- Ответ = ОсновноеУправляющееДействие(URL, IDЗадачи, "tasks.task.favorite.add", Токен, "taskId");
- Возврат Ответ;
-
-КонецФункции
-
-// Убрать задачу из избранного
-// Удаляет задачу из списка избранного
-//
-// Примечание:
-// Метод в документации API: [tasks.task.favorite.remove](@dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_favorite_remove.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDЗадачи - Число,Строка - ID задачи - task
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция УбратьЗадачуИзИзбранного(Знач URL, Знач IDЗадачи, Знач Токен = "") Экспорт
-
- Ответ = ОсновноеУправляющееДействие(URL, IDЗадачи, "tasks.task.favorite.remove", Токен, "taskId");
- Возврат Ответ;
-
-КонецФункции
-
-// Получить историю задачи
-// Получает историю изменений задачи
-//
-// Примечание:
-// Метод в документации API: [tasks.task.history.list](@dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_history_list.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDЗадачи - Число,Строка - ID задачи - task
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ПолучитьИсториюЗадачи(Знач URL, Знач IDЗадачи, Знач Токен = "") Экспорт
-
- Ответ = ОсновноеУправляющееДействие(URL, IDЗадачи, "tasks.task.history.list", Токен, "taskId");
- Возврат Ответ;
-
-КонецФункции
-
-// Проверить доступ к задаче
-// Проверяет доступность задачи для пользователей
-//
-// Примечание:
-// Метод в документации API: [tasks.task.getaccess](@dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_getaccess.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDЗадачи - Число,Строка - ID задачи - task
-// Пользователи - Массив из Строка - ID пользователей для проверки доступа - users
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ПроверитьДоступКЗадаче(Знач URL, Знач IDЗадачи, Знач Пользователи = "", Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "tasks.task.getaccess");
- OPI_Инструменты.ДобавитьПоле("taskId", IDЗадачи , "Строка" , Параметры);
- OPI_Инструменты.ДобавитьПоле("users" , Пользователи, "Массив" , Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Отключить звук задачи
-// Устанавливает режим Без звука для задачи
-//
-// Примечание:
-// Метод в документации API: [tasks.task.mute](@dev.1c-bitrix.ru/rest_help/tasks/task/tasks/mute_unmute.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDЗадачи - Число,Строка - ID задачи - task
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ОтключитьЗвукЗадачи(Знач URL, Знач IDЗадачи, Знач Токен = "") Экспорт
-
- Ответ = ОсновноеУправляющееДействие(URL, IDЗадачи, "tasks.task.mute", Токен, "taskId");
- Возврат Ответ;
-
-КонецФункции
-
-// Включить звук задачи
-// Отключает режим Без звука для задачи
-//
-// Примечание:
-// Метод в документации API: [tasks.task.unmute](@dev.1c-bitrix.ru/rest_help/tasks/task/tasks/mute_unmute.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDЗадачи - Число,Строка - ID задачи - task
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ВключитьЗвукЗадачи(Знач URL, Знач IDЗадачи, Знач Токен = "") Экспорт
-
- Ответ = ОсновноеУправляющееДействие(URL, IDЗадачи, "tasks.task.unmute", Токен, "taskId");
- Возврат Ответ;
-
-КонецФункции
-
-// Создать зависимость задач
-// Создает зависимость одной задачи от другой
-//
-// Примечание:
-// Метод в документации API: [task.dependence.add](@dev.1c-bitrix.ru/rest_help/tasks/task/dependence/task_dependence_add.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDИсточника - Строка, Число - ID задачи источника связи - taskfrom
-// IDПриемника - Строка, Число - ID задачи приемника связи - taskto
-// ТипСвязи - Строка, Число - Тип связи: 0 старт>старт, 1 старт>финиш, 2 финиш>старт, 3 финиш>финиш - linktype
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция СоздатьЗависимостьЗадач(Знач URL, Знач IDИсточника, Знач IDПриемника, Знач ТипСвязи, Знач Токен = "") Экспорт
-
- Строка_ = "Строка";
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(ТипСвязи);
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "task.dependence.add");
- OPI_Инструменты.ДобавитьПоле("taskIdFrom", IDИсточника, Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("taskIdTo" , IDПриемника, Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("linkType" , ТипСвязи , Строка_, Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Удалить зависимость задач
-// Удаляет зависимость одной задачи от другой
-//
-// Примечание:
-// Метод в документации API: [task.dependence.delete](@dev.1c-bitrix.ru/rest_help/tasks/task/dependence/task_dependence_delete.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDИсточника - Строка, Число - ID задачи источника связи - taskfrom
-// IDПриемника - Строка, Число - ID задачи приемника связи - taskto
-// ТипСвязи - Строка, Число - Тип связи: 0 старт>старт, 1 старт>финиш, 2 финиш>старт, 3 финиш>финиш - linktype
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция УдалитьЗависимостьЗадач(Знач URL, Знач IDИсточника, Знач IDПриемника, Знач ТипСвязи, Знач Токен = "") Экспорт
-
- Строка_ = "Строка";
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(ТипСвязи);
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "task.dependence.delete");
- OPI_Инструменты.ДобавитьПоле("taskIdFrom", IDИсточника, Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("taskIdTo" , IDПриемника, Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("linkType" , ТипСвязи , Строка_, Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить план задач на день
-// Получает план задач на день текущего пользователя
-//
-// Примечание:
-// Метод в документации API: [task.planner.getlist](@dev.1c-bitrix.ru/rest_help/tasks/task/planner/getlist.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ПолучитьПланЗадачНаДень(Знач URL, Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "task.planner.getlist");
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить структуру задачи
-// Получает структуру с описанем полей для создания задачи
-//
-// Примечание:
-// Метод в документации API: [tasks.task.getFields](@dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_getFields.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ПолучитьСтруктуруЗадачи(Знач URL, Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "tasks.task.getFields");
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить структуру фильтра задач
-// Возвращает структуру полей для фильтрации задач в методе ПолучитьСписокЗадач
-//
-// Примечание:
-// Возврат полей в качестве соответствия позволяет указывать тип фильтрации перед названием фильтруемого поля
-// Типы фильтрации: !, <, <=, >, >=. Например: !ID:3 (т.е. ID не равно 3)
-//
-// Параметры:
-// Пустая - Булево - Истина > структура с пустыми значениями, Ложь > в значениях будут описания полей - empty
-// КакСоответствие - Булево - Истина > возвращает поля фильтра как соответствие - map
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - Структура полей
-Функция ПолучитьСтруктуруФильтраЗадач(Знач Пустая = Ложь, Знач КакСоответствие = Ложь) Экспорт
-
- // Подробнее
- // https://dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_list.php
-
- OPI_ПреобразованиеТипов.ПолучитьБулево(Пустая);
- OPI_ПреобразованиеТипов.ПолучитьБулево(КакСоответствие);
-
- Если КакСоответствие Тогда
- СтруктураФильтра = Новый Соответствие;
- Иначе
- СтруктураФильтра = Новый Структура;
- КонецЕсли;
-
- СтруктураФильтра.Вставить("ID" , "<идентификатор задачи>");
- СтруктураФильтра.Вставить("PARENT_ID" , "<идентификатор родительской задачи>");
- СтруктураФильтра.Вставить("GROUP_ID" , "<идентификатор рабочей группы>");
- СтруктураФильтра.Вставить("CREATED_BY" , "<постановщик>");
- СтруктураФильтра.Вставить("STATUS_CHANGED_BY", "<пользователь, последним изменивший статус задачи>");
- СтруктураФильтра.Вставить("PRIORITY" , "<приоритет>");
- СтруктураФильтра.Вставить("FORUM_TOPIC_ID" , "<идентификатор темы форума>");
- СтруктураФильтра.Вставить("RESPONSIBLE_ID" , "<исполнитель>");
- СтруктураФильтра.Вставить("TITLE" , "<название задачи (можно искать по шаблону [%_])>");
- СтруктураФильтра.Вставить("TAG" , "<тэг>");
- СтруктураФильтра.Вставить("REAL_STATUS" , "<статус задачи>");
- СтруктураФильтра.Вставить("MARK" , "<оценка>");
- СтруктураФильтра.Вставить("SITE_ID" , "<идентификатор сайта>");
- СтруктураФильтра.Вставить("ADD_IN_REPORT" , "<задача в отчете (Y|N)>");
- СтруктураФильтра.Вставить("DATE_START" , "<дата начала выполнения>");
- СтруктураФильтра.Вставить("DEADLINE" , "<крайний срок>");
- СтруктураФильтра.Вставить("CREATED_DATE" , "<дата создания>");
- СтруктураФильтра.Вставить("CLOSED_DATE" , "<дата завершения>");
- СтруктураФильтра.Вставить("CHANGED_DATE" , "<дата последнего изменения>");
- СтруктураФильтра.Вставить("ACCOMPLICE" , "<идентификатор соисполнителя>");
- СтруктураФильтра.Вставить("AUDITOR" , "<идентификатор наблюдателя>");
- СтруктураФильтра.Вставить("DEPENDS_ON" , "<идентификатор предыдущей задачи>");
- СтруктураФильтра.Вставить("ONLY_ROOT_TASKS" , "<только задачи, которые не являются подзадачами (Y|N)>");
- СтруктураФильтра.Вставить("STAGE_ID" , "<стадия>");
- СтруктураФильтра.Вставить("UF_CRM_TASK" , "<элементы CRM>");
- СтруктураФильтра.Вставить("STATUS"
- , "<статус для сортировки. Аналогичен REAL_STATUS, но имеет дополнительно три мета-статуса>");
-
- Если Пустая Тогда
- СтруктураФильтра = OPI_Инструменты.ОчиститьКоллекциюРекурсивно(СтруктураФильтра);
- КонецЕсли;
-
- //@skip-check constructor-function-return-section
- Возврат СтруктураФильтра;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область РаботаСПользовательскимиПолямиЗадач
-
-// Получить список пользовательских полей задачи
-// Получает список пользовательских полей для задач
-//
-// Примечание:
-// Метод в документации API: [task.item.userfield.getlist](@dev.1c-bitrix.ru/rest_help/tasks/task/userfield/getlist.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ПолучитьСписокПользовательскихПолейЗадачи(Знач URL, Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "task.item.userfield.getlist");
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Добавить пользовательское поле задачи
-// Добавляет новое пользовательское поле для добавления в задачу
-//
-// Примечание:
-// Метод в документации API: [task.item.userfield.add](@dev.1c-bitrix.ru/rest_help/tasks/task/userfield/add.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// Тип - Строка - Тип поля: string, double, date, boolean - type
-// Имя - Строка - Текстовый идентификатор (наименование) поля - fieldname
-// ВнешнийКод - Строка - Внешний текстовый идентификатор поля - externalid
-// Заголовок - Строка - Заголовок поля - title
-// Подпись - Структура Из КлючИЗначение - Подпись в форме. Ключ: en или ru, Значение: Текст подписи - label
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ДобавитьПользовательскоеПолеЗадачи(Знач URL
- , Знач Тип
- , Знач Имя
- , Знач ВнешнийКод = ""
- , Знач Заголовок = ""
- , Знач Подпись = ""
- , Знач Токен = "") Экспорт
-
- Строка_ = "Строка";
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "task.item.userfield.add");
- Поля = Новый Структура;
-
- OPI_Инструменты.ДобавитьПоле("USER_TYPE_ID" , Тип , Строка_ , Поля);
- OPI_Инструменты.ДобавитьПоле("FIELD_NAME" , Имя , Строка_ , Поля);
- OPI_Инструменты.ДобавитьПоле("XML_ID" , ВнешнийКод, Строка_ , Поля);
- OPI_Инструменты.ДобавитьПоле("LABEL" , Заголовок , Строка_ , Поля);
- OPI_Инструменты.ДобавитьПоле("EDIT_FORM_LABEL", Подпись , "Коллекция", Поля);
-
- OPI_Инструменты.ДобавитьПоле("PARAMS", Поля, "Коллекция", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Изменить пользовательское поле задачи
-// Изменяет пользовательское поле задачи
-//
-// Примечание:
-// Метод в документации API: [task.item.userfield.update](@dev.1c-bitrix.ru/rest_help/tasks/task/userfield/update.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDПоля - Строка, Число - ID поля для изменения - fieldid
-// ВнешнийКод - Строка - Внешний текстовый идентификатор поля - externalid
-// Заголовок - Строка - Заголовок поля - title
-// Подпись - Структура Из КлючИЗначение - Подпись в форме. Ключ: en или ru, Значение: Текст подписи - label
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ИзменитьПользовательскоеПолеЗадачи(Знач URL
- , Знач IDПоля
- , Знач ВнешнийКод = ""
- , Знач Заголовок = ""
- , Знач Подпись = ""
- , Знач Токен = "") Экспорт
-
- Строка_ = "Строка";
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "task.item.userfield.update");
- Поля = Новый Структура;
-
- OPI_Инструменты.ДобавитьПоле("XML_ID" , ВнешнийКод, Строка_ , Поля);
- OPI_Инструменты.ДобавитьПоле("LABEL" , Заголовок , Строка_ , Поля);
- OPI_Инструменты.ДобавитьПоле("EDIT_FORM_LABEL", Подпись , "Коллекция", Поля);
-
- OPI_Инструменты.ДобавитьПоле("ID" , IDПоля, Строка_ , Параметры);
- OPI_Инструменты.ДобавитьПоле("DATA", Поля , "Коллекция", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить пользовательское поле задачи
-// Получает информацию о пользовательском поле задачи
-//
-// Примечание:
-// Метод в документации API: [task.item.userfield.get](@dev.1c-bitrix.ru/rest_help/tasks/task/userfield/get.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDПоля - Строка, Число - ID поля для получения - fieldid
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ПолучитьПользовательскоеПолеЗадачи(Знач URL, Знач IDПоля, Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "task.item.userfield.get");
-
- OPI_Инструменты.ДобавитьПоле("ID", IDПоля, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Удалить пользовательское поле задачи
-// Удаляет пользовательское поле задачи
-//
-// Примечание:
-// Метод в документации API: [task.item.userfield.delete](@dev.1c-bitrix.ru/rest_help/tasks/task/userfield/delete.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDПоля - Строка, Число - ID поля для удаления - fieldid
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция УдалитьПользовательскоеПолеЗадачи(Знач URL, Знач IDПоля, Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "task.item.userfield.delete");
-
- OPI_Инструменты.ДобавитьПоле("ID", IDПоля, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область РаботаСЧеклистамиЗадач
-
-// Добавить элемент чеклиста задачи
-// Добавляет новый элемент чеклиста задачи
-//
-// Примечание:
-// Метод в документации API: [task.checklistitem.add](@dev.1c-bitrix.ru/rest_help/tasks/task/checklistitem/add.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDЗадачи - Число, Строка - ID задачи - task
-// Текст - Строка - Текст (заголовок) пункта чек листа - text
-// Выполнен - Булево - Отметить пункт как выполненный - complete
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ДобавитьЭлементЧеклистаЗадачи(Знач URL, Знач IDЗадачи, Знач Текст, Знач Выполнен = Ложь, Токен = "") Экспорт
-
- Строка_ = "Строка";
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "task.checklistitem.add");
- Поля = Новый Структура;
-
- ПривестиБулево(Выполнен);
-
- OPI_Инструменты.ДобавитьПоле("TITLE" , Текст , Строка_, Поля);
- OPI_Инструменты.ДобавитьПоле("IS_COMPLETE", Выполнен, Строка_, Поля);
-
- OPI_Инструменты.ДобавитьПоле("TASKID", IDЗадачи, Строка_ , Параметры);
- OPI_Инструменты.ДобавитьПоле("FIELDS", Поля , "Коллекция", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Изменить элемент чеклиста задачи
-// Изменяет текст элемента чеклиста задачи
-//
-// Примечание:
-// Метод в документации API: [task.checklistitem.update](@dev.1c-bitrix.ru/rest_help/tasks/task/checklistitem/update.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDЗадачи - Число, Строка - ID задачи - task
-// IDЭлемента - Число, Строка - ID элемента чеклиста - element
-// Текст - Строка - Текст (заголовок) пункта чек листа - text
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ИзменитьЭлементЧеклистаЗадачи(Знач URL, Знач IDЗадачи, Знач IDЭлемента, Знач Текст, Знач Токен = "") Экспорт
-
- Строка_ = "Строка";
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "task.checklistitem.update");
- Поля = Новый Структура;
-
- OPI_Инструменты.ДобавитьПоле("TITLE", Текст, Строка_, Поля);
-
- OPI_Инструменты.ДобавитьПоле("TASKID", IDЗадачи , Строка_ , Параметры);
- OPI_Инструменты.ДобавитьПоле("ITEMID", IDЭлемента, Строка_ , Параметры);
- OPI_Инструменты.ДобавитьПоле("FIELDS", Поля , "Коллекция", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Удалить элемент чеклиста задачи
-// Удаляет элемент из чеклиста задачи
-//
-// Примечание:
-// Метод в документации API: [task.checklistitem.delete](@dev.1c-bitrix.ru/rest_help/tasks/task/checklistitem/delete.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDЗадачи - Число, Строка - ID задачи - task
-// IDЭлемента - Число, Строка - ID элемента для удаления - element
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция УдалитьЭлементЧеклистаЗадачи(Знач URL, Знач IDЗадачи, Знач IDЭлемента, Знач Токен = "") Экспорт
-
- Ответ = УправлениеЭлементомЧеклиста(URL, IDЗадачи, IDЭлемента, "task.checklistitem.delete", Токен);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить чеклист задачи
-// Получает список элементов чеклиста задачи
-//
-// Примечание:
-// Метод в документации API: [task.checklistitem.getlist](@dev.1c-bitrix.ru/rest_help/tasks/task/checklistitem/getlist.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDЗадачи - Число, Строка - ID задачи - task
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ПолучитьЧеклистЗадачи(Знач URL, Знач IDЗадачи, Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "task.checklistitem.getlist");
-
- OPI_Инструменты.ДобавитьПоле("TASKID", IDЗадачи , "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить элемент чеклиста задачи
-// Получить элемент чеклиста задачи по ID
-//
-// Примечание:
-// Метод в документации API: [task.checklistitem.get](@dev.1c-bitrix.ru/rest_help/tasks/task/checklistitem/get.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDЗадачи - Число, Строка - ID задачи - task
-// IDЭлемента - Число, Строка - ID элемента для получения - element
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ПолучитьЭлементЧеклистаЗадачи(Знач URL, Знач IDЗадачи, Знач IDЭлемента, Знач Токен = "") Экспорт
-
- Ответ = УправлениеЭлементомЧеклиста(URL, IDЗадачи, IDЭлемента, "task.checklistitem.get", Токен);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Выполнить элемент чеклиста задачи
-// Помечает элемент чеклиста задачи как выполненный
-//
-// Примечание:
-// Метод в документации API: [task.checklistitem.complete](@dev.1c-bitrix.ru/rest_help/tasks/task/checklistitem/complete.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDЗадачи - Число, Строка - ID задачи - task
-// IDЭлемента - Число, Строка - ID элемента - element
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ВыполнитьЭлементЧеклистаЗадачи(Знач URL, Знач IDЗадачи, Знач IDЭлемента, Знач Токен = "") Экспорт
-
- Ответ = УправлениеЭлементомЧеклиста(URL, IDЗадачи, IDЭлемента, "task.checklistitem.complete", Токен);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Возобновить элемент чеклиста задачи
-// Снимает пометку элемента как выполненного
-//
-// Примечание:
-// Метод в документации API: [task.checklistitem.renew](@dev.1c-bitrix.ru/rest_help/tasks/task/checklistitem/renew.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDЗадачи - Число, Строка - ID задачи - task
-// IDЭлемента - Число, Строка - ID элемента - element
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ВозобновитьЭлементЧеклистаЗадачи(Знач URL, Знач IDЗадачи, Знач IDЭлемента, Знач Токен = "") Экспорт
-
- Ответ = УправлениеЭлементомЧеклиста(URL, IDЗадачи, IDЭлемента, "task.checklistitem.renew", Токен);
-
- Возврат Ответ;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область РаботаСКомментариямиИРезультатамиЗадач
-
-// Получить список комментариев задачи
-// Полчает список комментариев пользователей к задаче по ID
-//
-// Примечание:
-// Метод в документации API: [task.commentitem.getlist](@dev.1c-bitrix.ru/rest_help/tasks/task/commentitem/getlist.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDЗадачи - Число, Строка - ID задачи - task
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ПолучитьСписокКомментариевЗадачи(Знач URL, Знач IDЗадачи, Знач Токен = "") Экспорт
-
- Ответ = ОсновноеУправляющееДействие(URL, IDЗадачи, "task.commentitem.getlist", Токен, "taskId");
- Возврат Ответ;
-
-КонецФункции
-
-// Получить комменатрий задачи
-// Получает информацию о комментарии задачи по ID
-//
-// Примечание:
-// Метод в документации API: [task.commentitem.get](@dev.1c-bitrix.ru/rest_help/tasks/task/commentitem/get.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDЗадачи - Число, Строка - ID задачи - task
-// IDКомментария - Число, Строка - ID комментария - comment
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ПолучитьКомменатрийЗадачи(Знач URL, Знач IDЗадачи, Знач IDКомментария, Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "task.commentitem.get");
- OPI_Инструменты.ДобавитьПоле("TASKID", IDЗадачи , "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("ITEMID", IDКомментария, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Добавить комментарий задачи
-// Создает комментарий к задаче
-//
-// Примечание:
-// Метод в документации API: [task.commentitem.add](@dev.1c-bitrix.ru/rest_help/tasks/task/commentitem/add.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDЗадачи - Число, Строка - ID задачи - task
-// Текст - Строка - Текст комментария - text
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ДобавитьКомментарийЗадачи(Знач URL, Знач IDЗадачи, Знач Текст, Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "task.commentitem.add");
-
- Комментарий = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("POST_MESSAGE", Текст, "Строка", Комментарий);
-
- OPI_Инструменты.ДобавитьПоле("TASKID", IDЗадачи , "Строка" , Параметры);
- OPI_Инструменты.ДобавитьПоле("FIELDS", Комментарий, "Коллекция", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Изменить комментарий задачи
-// Изменяет текст комментария задачи
-//
-// Примечание:
-// Метод в документации API: [task.commentitem.update](@dev.1c-bitrix.ru/rest_help/tasks/task/commentitem/update.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDЗадачи - Число, Строка - ID задачи - task
-// IDКомментария - Число, Строка - ID комментария - comment
-// Текст - Строка - Текст комментария - text
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ИзменитьКомментарийЗадачи(Знач URL, Знач IDЗадачи, Знач IDКомментария, Знач Текст, Знач Токен = "") Экспорт
-
- Строка_ = "Строка";
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "task.commentitem.update");
-
- Комментарий = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("POST_MESSAGE", Текст, "Строка", Комментарий);
-
- OPI_Инструменты.ДобавитьПоле("TASKID", IDЗадачи , Строка_ , Параметры);
- OPI_Инструменты.ДобавитьПоле("ITEMID", IDКомментария, Строка_ , Параметры);
- OPI_Инструменты.ДобавитьПоле("FIELDS", Комментарий , "Коллекция", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Удалить комментарий
-// Удаляет существующий комментарий задачи
-//
-// Примечание:
-// Метод в документации API: [task.commentitem.delete](@dev.1c-bitrix.ru/rest_help/tasks/task/commentitem/delete.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDЗадачи - Число, Строка - ID задачи - task
-// IDКомментария - Число, Строка - ID удаляемого комментария - comment
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция УдалитьКомментарийЗадачи(Знач URL, Знач IDЗадачи, Знач IDКомментария, Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "task.commentitem.delete");
-
- OPI_Инструменты.ДобавитьПоле("TASKID", IDЗадачи , "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("ITEMID", IDКомментария, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить список результатов
-// Получает список результатов задачи
-//
-// Примечание:
-// Метод в документации API: [tasks.task.result.list](@dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_result.list.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDЗадачи - Число,Строка - ID задачи - task
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ПолучитьСписокРезультатов(Знач URL, Знач IDЗадачи, Знач Токен = "") Экспорт
-
- Ответ = ОсновноеУправляющееДействие(URL, IDЗадачи, "tasks.task.result.list", Токен, "taskId");
- Возврат Ответ;
-
-КонецФункции
-
-// Создать результат из комментария
-// Создает результат задачи из комментария
-//
-// Примечание:
-// Метод в документации API: [tasks.task.result.addFromComment](@dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_result_addFromComment.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDКомментария - Число, Строка - ID комментария - comment
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция СоздатьРезультатИзКомментария(Знач URL, Знач IDКомментария, Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "tasks.task.result.addFromComment");
- OPI_Инструменты.ДобавитьПоле("commentId", IDКомментария, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Удалить результат из комментария
-// Удаляет ранее созданный результат из комментария
-//
-// Примечание:
-// Метод в документации API: [tasks.task.result.deleteFromComment](@dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_result_deleteFromComment.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDКомментария - Число, Строка - ID комментария - comment
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция УдалитьРезультатИзКомментария(Знач URL, Знач IDКомментария, Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "tasks.task.result.deleteFromComment");
- OPI_Инструменты.ДобавитьПоле("commentId", IDКомментария, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить структуру комментария
-// Получает структуру полей комментария
-//
-// Параметры:
-// Пустая - Булево - Истина > структура с пустыми значениями, Ложь > в значениях будут описания полей - empty
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - Структура полей
-Функция ПолучитьСтруктуруКомментария(Знач Пустая = Ложь) Экспорт
-
- // Подробнее
- // https://dev.1c-bitrix.ru/rest_help/tasks/task/commentitem/add.php
-
- OPI_ПреобразованиеТипов.ПолучитьБулево(Пустая);
-
- СтруктураПолей = Новый Структура;
- СтруктураПолей.Вставить("AUTHOR_ID" , "<идентификатор автора комментария>");
- СтруктураПолей.Вставить("AUTHOR_NAME" , "<Имя пользователя (опционально)>");
- СтруктураПолей.Вставить("AUTHOR_EMAIL" , "");
- СтруктураПолей.Вставить("USE_SMILES" , "<(Y|N) - парсить или нет комментарии на наличие смайлов>");
- СтруктураПолей.Вставить("POST_MESSAGE" , "<Текст сообщения>");
- СтруктураПолей.Вставить("UF_FORUM_MESSAGE_DOC" , "<Массив файлов с диска для прикрепления>");
-
- Если Пустая Тогда
- Для Каждого Поле Из СтруктураПолей Цикл
- СтруктураПолей.Вставить(Поле.Ключ, "");
- КонецЦикла;
- КонецЕсли;
-
- //@skip-check constructor-function-return-section
- Возврат СтруктураПолей;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область Канбан
-
-// Добавить стадию канбана
-// Добавляет стабию канбана или Моего плана
-//
-// Примечание:
-// Метод в документации API: [task.stages.add](@dev.1c-bitrix.ru/rest_help/tasks/task/kanban/task_stages_add.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// Наименование - Строка - Наименование новой стадии - title
-// Цвет - Строка - HEX цвета новой стадии - color
-// IDПредыдущей - Строка, Число - ID стадии, после которой необходимо вставить новую (в начало по ум.) - prevstage
-// IDСущности - Строка, Число - ID группы или пользователя владельца канбан. Свой по умолчанию - entityid
-// КакАдминистратор - Булево - Позволяет добавлять стадии без проверки прав (для администраторов) - admin
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ДобавитьСтадиюКанбана(Знач URL
- , Знач Наименование
- , Знач Цвет = "FFD800"
- , Знач IDПредыдущей = 0
- , Знач IDСущности = 0
- , Знач КакАдминистратор = Ложь
- , Знач Токен = "") Экспорт
-
- Строка_ = "Строка";
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "task.stages.add");
- Поля = Новый Структура;
-
- ПривестиБулево(КакАдминистратор);
-
- OPI_Инструменты.ДобавитьПоле("TITLE" , Наименование , Строка_, Поля);
- OPI_Инструменты.ДобавитьПоле("COLOR" , Цвет , Строка_, Поля);
- OPI_Инструменты.ДобавитьПоле("AFTER_ID" , IDПредыдущей , Строка_, Поля);
- OPI_Инструменты.ДобавитьПоле("ENTITY_ID", IDСущности , Строка_, Поля);
- OPI_Инструменты.ДобавитьПоле("isAdmin" , КакАдминистратор, Строка_, Поля);
-
- Параметры.Вставить("fields", Поля);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Изменить стадию канбана
-// Изменяет свойства существующей стадии канбана или Моего плана
-//
-// Примечание:
-// Метод в документации API: [task.stages.update](@dev.1c-bitrix.ru/rest_help/tasks/task/kanban/task_stages_update.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// Наименование - Строка - Новое наименование стадии - title
-// IDСтадии - Строка, Число - ID стадии для изменения - stage
-// Цвет - Строка - HEX нового цвета стадии - color
-// IDПредыдущей - Строка, Число - ID стадии, после которой необходимо вставить выбранную - prevstage
-// КакАдминистратор - Булево - Позволяет добавлять стадии без проверки прав (для администраторов) - admin
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ИзменитьСтадиюКанбана(Знач URL
- , Знач Наименование
- , Знач IDСтадии
- , Знач Цвет = ""
- , Знач IDПредыдущей = 0
- , Знач КакАдминистратор = Ложь
- , Знач Токен = "") Экспорт
-
- Строка_ = "Строка";
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "task.stages.update");
- Поля = Новый Структура;
-
- OPI_Инструменты.ДобавитьПоле("TITLE" , Наименование , Строка_ , Поля);
- OPI_Инструменты.ДобавитьПоле("COLOR" , Цвет , Строка_ , Поля);
- OPI_Инструменты.ДобавитьПоле("AFTER_ID" , IDПредыдущей , Строка_ , Поля);
- OPI_Инструменты.ДобавитьПоле("isAdmin" , КакАдминистратор, "Булево", Поля);
-
- OPI_Инструменты.ДобавитьПоле("id" , IDСтадии, Строка_ , Параметры);
- OPI_Инструменты.ДобавитьПоле("fields", Поля , "Коллекция", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Удалить стадию канбана
-// Удаляет стадию канбана или Моего плана, при условии, что в ней нет задач
-//
-// Примечание:
-// Метод в документации API: [task.stages.delete](@dev.1c-bitrix.ru/rest_help/tasks/task/kanban/task_stages_delete.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDСтадии - Строка, Число - ID стадии для удаления - stage
-// КакАдминистратор - Булево - Позволяет добавлять стадии без проверки прав (для администраторов) - admin
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция УдалитьСтадиюКанбана(Знач URL, Знач IDСтадии, Знач КакАдминистратор = Ложь, Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "task.stages.delete");
-
- ПривестиБулево(КакАдминистратор);
-
- OPI_Инструменты.ДобавитьПоле("id" , IDСтадии , "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("isAdmin", КакАдминистратор, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить стадии канбана
-// Получает информацию о стадиях Канбана или Моего плана
-//
-// Примечание:
-// Метод в документации API: [task.stages.get](@dev.1c-bitrix.ru/rest_help/tasks/task/kanban/task_stages_get.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDСущности - Строка, Число - ID группы или пользователя владельца канбан. Свой по умолчанию - entityid
-// КакАдминистратор - Булево - Позволяет получать стадии без проверки прав (для администраторов) - admin
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ПолучитьСтадииКанбана(Знач URL, Знач IDСущности = 0, Знач КакАдминистратор = Ложь, Знач Токен = "") Экспорт
-
- IDСущности = OPI_Инструменты.ЧислоВСтроку(IDСущности);
- Параметры = НормализоватьАвторизацию(URL, Токен, "task.stages.get");
-
- ПривестиБулево(КакАдминистратор);
-
- OPI_Инструменты.ДобавитьПоле("entityId", IDСущности , "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("isAdmin" , КакАдминистратор, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Перенести задачу в стадию канбана
-// Переносит задачу в выбранную стадию канбана
-//
-// Примечание:
-// Метод в документации API: [task.stages.movetask](@dev.1c-bitrix.ru/rest_help/tasks/task/kanban/task_stages_movetask.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDЗадачи - Строка, Число - ID задачи для переноса - task
-// IDСтадии - Строка, Число - ID стадии - stage
-// Перед - Строка, Число - ID задачи, перед которой надо поставить выбранную (если не заполнено После) - before
-// После - Строка, Число - ID задачи, после которой надо поставить выбранную (если не заполнено Перед) - after
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ПеренестиЗадачуВСтадиюКанбана(Знач URL
- , Знач IDЗадачи
- , Знач IDСтадии
- , Знач Перед = 0
- , Знач После = 0
- , Знач Токен = "") Экспорт
-
- Строка_ = "Строка";
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "task.stages.movetask");
-
- OPI_Инструменты.ДобавитьПоле("id" , IDЗадачи, Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("stageId", IDСтадии, Строка_, Параметры);
-
- Если ЗначениеЗаполнено(Перед) Тогда
-
- OPI_Инструменты.ДобавитьПоле("before", Перед, Строка_, Параметры);
-
- Иначе
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(После);
- OPI_Инструменты.ДобавитьПоле("after", После, Строка_, Параметры);
-
- КонецЕсли;
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область УчетРабочегоВремени
-
-// Добавить трудозатраты задачи
-// Добавляет информацию о затраченном времени пользователя в задачу
-//
-// Примечание:
-// Метод в документации API: [task.elapseditem.add](@dev.1c-bitrix.ru/rest_help/tasks/task/elapseditem/add.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDЗадачи - Строка, Число - ID задачи для добавления затрат - task
-// Время - Строка, Число - Затраченное время в секундах - amount
-// IDПользователя - Строка, Число - ID пользователя, затратившего время - user
-// Текст - Строка - Текст комментария трудозатраты - text
-// ДатаУстановки - Строка - Дата установки трудозатрат - date
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ДобавитьТрудозатратыЗадачи(Знач URL
- , Знач IDЗадачи
- , Знач Время
- , Знач IDПользователя = ""
- , Знач Текст = ""
- , Знач ДатаУстановки = ""
- , Знач Токен = "") Экспорт
-
- Строка_ = "Строка";
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "task.elapseditem.add");
- Поля = Новый Структура;
-
- OPI_Инструменты.ДобавитьПоле("SECONDS" , Время , Строка_ , Поля);
- OPI_Инструменты.ДобавитьПоле("COMMENT_TEXT", Текст , Строка_ , Поля);
- OPI_Инструменты.ДобавитьПоле("USER_ID" , IDПользователя, Строка_ , Поля);
- OPI_Инструменты.ДобавитьПоле("CREATED_DATE", ДатаУстановки , "ДатаISO", Поля);
-
- OPI_Инструменты.ДобавитьПоле("TASKID" , IDЗадачи, Строка_ , Параметры);
- OPI_Инструменты.ДобавитьПоле("ARFIELDS", Поля , "Коллекция", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Удалить трудозатраты задачи
-// Удаляет запись о трудозатратах из задачи
-//
-// Примечание:
-// Метод в документации API: [task.elapseditem.delete](@dev.1c-bitrix.ru/rest_help/tasks/task/elapseditem/delete.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDЗадачи - Строка, Число - ID задачи для добавления затрат - task
-// IDЗаписи - Строка, Число - ID записи о трудозатратах - record
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция УдалитьТрудозатратыЗадачи(Знач URL, Знач IDЗадачи, Знач IDЗаписи, Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "task.elapseditem.delete");
-
- OPI_Инструменты.ДобавитьПоле("TASKID", IDЗадачи, "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("ITEMID", IDЗаписи, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить список трудозатрат задачи
-// Получает список записей о трудозатратах задачи
-//
-// Примечание:
-// Метод в документации API: [task.elapseditem.getlist](@dev.1c-bitrix.ru/rest_help/tasks/task/elapseditem/getlist.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDЗадачи - Строка, Число - ID задачи - task
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ПолучитьСписокТрудозатратЗадачи(Знач URL, Знач IDЗадачи, Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "task.elapseditem.getlist");
-
- OPI_Инструменты.ДобавитьПоле("TASKID", IDЗадачи, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить трудозатраты задачи
-// Получает информацию о записи трудозатрат задачи по ID
-//
-// Примечание:
-// Метод в документации API: [task.elapseditem.get](@dev.1c-bitrix.ru/rest_help/tasks/task/elapseditem/get.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDЗадачи - Строка, Число - ID задачи - task
-// IDЗаписи - Строка, Число - ID записи о трудозатратах - record
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ПолучитьТрудозатратыЗадачи(Знач URL, Знач IDЗадачи, Знач IDЗаписи, Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "task.elapseditem.get");
-
- OPI_Инструменты.ДобавитьПоле("TASKID", IDЗадачи, "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("ITEMID", IDЗаписи, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Изменить трудозатраты задачи
-// Изменяет данные записи о трудозатратах задачи
-//
-// Примечание:
-// Метод в документации API: [task.elapseditem.update](@dev.1c-bitrix.ru/rest_help/tasks/task/elapseditem/update.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDЗадачи - Строка, Число - ID задачи - task
-// IDЗаписи - Строка, Число - ID записи о трудозатратах - record
-// Время - Строка, Число - Затраченное время в секундах - amount
-// Текст - Строка - Текст комментария трудозатраты - text
-// ДатаУстановки - Строка - Дата установки трудозатрат - date
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ИзменитьТрудозатратыЗадачи(Знач URL
- , Знач IDЗадачи
- , Знач IDЗаписи
- , Знач Время
- , Знач Текст = ""
- , Знач ДатаУстановки = ""
- , Знач Токен = "") Экспорт
-
- Строка_ = "Строка";
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "task.elapseditem.update");
- Поля = Новый Структура;
-
- OPI_Инструменты.ДобавитьПоле("SECONDS" , Время , Строка_ , Поля);
- OPI_Инструменты.ДобавитьПоле("COMMENT_TEXT", Текст , Строка_ , Поля);
- OPI_Инструменты.ДобавитьПоле("CREATED_DATE", ДатаУстановки , "ДатаISO", Поля);
-
- OPI_Инструменты.ДобавитьПоле("TASKID" , IDЗадачи, Строка_ , Параметры);
- OPI_Инструменты.ДобавитьПоле("ITEMID" , IDЗаписи, Строка_ , Параметры);
- OPI_Инструменты.ДобавитьПоле("ARFIELDS", Поля , "Коллекция", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Начать учет времени
-// Начинает учет времени пользователя
-//
-// Примечание:
-// Метод в документации API: [timeman.open](@dev.1c-bitrix.ru/rest_help/timeman/base/timeman_open.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDПользователя - Строка, Число - ID пользователя для учета. Текущий по умолчанию - userid
-// Время - Дата - Время начала учета. Дата должна совпадать с текущей. Текущее время по ум. - time
-// Отчет - Строка - Причина изменения. Обязателен при указании Время и отключенном свободном графике - report
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция НачатьУчетВремени(Знач URL
- , Знач IDПользователя = ""
- , Знач Время = ""
- , Знач Отчет = ""
- , Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "timeman.open");
-
- OPI_Инструменты.ДобавитьПоле("USER_ID", IDПользователя, "Строка" , Параметры);
- OPI_Инструменты.ДобавитьПоле("TIME" , Время , "ДатаISOZ", Параметры);
- OPI_Инструменты.ДобавитьПоле("REPORT" , Отчет , "Строка" , Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Завершить учет времени
-// Завершает учет времени пользователя
-//
-// Примечание:
-// Метод в документации API: [timeman.close](@dev.1c-bitrix.ru/rest_help/timeman/base/timeman_close.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDПользователя - Строка, Число - ID пользователя для учета. Текущий по умолчанию - userid
-// Время - Дата - Время заверш. учета. Дата должна совпадать с текущей. Текущее время по ум. - time
-// Отчет - Строка - Причина изменения. Обязателен при указании Время и отключенном свободном графике - report
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ЗавершитьУчетВремени(Знач URL
- , Знач IDПользователя = ""
- , Знач Время = ""
- , Знач Отчет = ""
- , Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "timeman.close");
-
- OPI_Инструменты.ДобавитьПоле("USER_ID", IDПользователя, "Строка" , Параметры);
- OPI_Инструменты.ДобавитьПоле("TIME" , Время , "ДатаISOZ", Параметры);
- OPI_Инструменты.ДобавитьПоле("REPORT" , Отчет , "Строка" , Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Приостановить учет времени
-// Приостанавливает учет времени пользователя
-//
-// Примечание:
-// Метод в документации API: [timeman.pause](@dev.1c-bitrix.ru/rest_help/timeman/base/timeman_pause.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDПользователя - Строка, Число - ID пользователя для учета. Текущий по умолчанию - userid
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ПриостановитьУчетВремени(Знач URL, Знач IDПользователя = "", Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "timeman.pause");
-
- OPI_Инструменты.ДобавитьПоле("USER_ID", IDПользователя, "Строка" , Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить статус учета времени
-// Получает статус учета времени пользователя
-//
-// Примечание:
-// Метод в документации API: [timeman.status](@dev.1c-bitrix.ru/rest_help/timeman/base/timeman_status.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDПользователя - Строка, Число - ID пользователя для учета. Текущий по умолчанию - userid
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ПолучитьСтатусУчетаВремени(Знач URL, Знач IDПользователя = "", Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "timeman.status");
-
- OPI_Инструменты.ДобавитьПоле("USER_ID", IDПользователя, "Строка" , Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить настройки учета времени
-// Получает настройки учета времени пользователя
-//
-// Примечание:
-// Метод в документации API: [timeman.settings](@dev.1c-bitrix.ru/rest_help/timeman/base/timeman_settings.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDПользователя - Строка, Число - ID пользователя для учета. Текущий по умолчанию - userid
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ПолучитьНастройкиУчетаВремени(Знач URL, Знач IDПользователя = "", Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "timeman.settings");
-
- OPI_Инструменты.ДобавитьПоле("USER_ID", IDПользователя, "Строка" , Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область РаботаСХранилищами
-
-// Получить список хранилищ
-// Получает список доступных хранилищ файлов
-//
-// Примечание:
-// Метод в документации API: [disk.storage.getlist](@dev.1c-bitrix.ru/rest_help/disk/storage/disk_storage_getlist.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ПолучитьСписокХранилищ(Знач URL, Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "disk.storage.getlist");
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить хранилище приложения
-// Получает информацию о хранилище с которым может работать приложение для хранения своих данных
-//
-// Примечание:
-// Метод в документации API: [disk.storage.getforapp](@dev.1c-bitrix.ru/rest_help/disk/storage/disk_storage_getforapp.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ПолучитьХранилищеПриложения(Знач URL, Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "disk.storage.getforapp");
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить хранилище
-// Получает информацию о хранилище по ID
-//
-// Примечание:
-// Метод в документации API: [disk.storage.get](@dev.1c-bitrix.ru/rest_help/disk/storage/disk_storage_get.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDХранилища - Строка, Число - Идентификатор хранилища - storageid
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ПолучитьХранилище(Знач URL, Знач IDХранилища, Знач Токен = "") Экспорт
-
- Ответ = ОсновноеУправляющееДействие(URL, IDХранилища, "disk.storage.get", Токен);
- Возврат Ответ;
-
-КонецФункции
-
-// Переименовать хранилище
-// Изменяет имя хранилища (только для хранилища приложения см. ПолучитьСписокХранилищПриложения)
-//
-// Примечание:
-// Метод в документации API: [disk.storage.rename](@dev.1c-bitrix.ru/rest_help/disk/storage/disk_storage_rename.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDХранилища - Строка, Число - Идентификатор хранилища - storageid
-// Наименование - Строка - Новое наименование хранилища - title
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ПереименоватьХранилище(Знач URL, Знач IDХранилища, Знач Наименование, Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "disk.storage.rename");
-
- OPI_Инструменты.ДобавитьПоле("id" , IDХранилища , "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("newName", Наименование, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить содержимое хранилища
-// Получает список файлов и каталогов, находящихся в корне хранилища
-//
-// Примечание:
-// Метод в документации API: [disk.storage.getchildren](@dev.1c-bitrix.ru/rest_help/disk/storage/disk_storage_getchildren.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDХранилища - Строка, Число - Идентификатор хранилища - storageid
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ПолучитьСодержимоеХранилища(Знач URL, Знач IDХранилища, Знач Токен = "") Экспорт
-
- Ответ = ОсновноеУправляющееДействие(URL, IDХранилища, "disk.storage.getchildren", Токен);
- Возврат Ответ;
-
-КонецФункции
-
-// Создать каталог в хранилище
-// Создает пустой каталог в хранилище
-//
-// Примечание:
-// Метод в документации API: [disk.storage.addfolder](@dev.1c-bitrix.ru/rest_help/disk/storage/disk_storage_addfolder.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDХранилища - Строка - Идентификатор хранилища - storageid
-// Наименование - Строка - Имя каталога - title
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция СоздатьКаталогВХранилище(Знач URL, Знач IDХранилища, Знач Наименование, Знач Токен = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Наименование);
-
- СтруктураПапки = Новый Структура("NAME", Наименование);
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "disk.storage.addfolder");
-
- OPI_Инструменты.ДобавитьПоле("id" , IDХранилища , "Строка" , Параметры);
- OPI_Инструменты.ДобавитьПоле("data", СтруктураПапки, "Коллекция", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область РаботаСКаталогами
-
-// Получить информацию о каталоге
-// Получает информацию о каталоге
-//
-// Примечание:
-// Метод в документации API: [disk.folder.get](@dev.1c-bitrix.ru/rest_help/disk/folder/disk_folder_get.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDКаталога - Строка, Число - Идентификатор каталога - folderid
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ПолучитьИнформациюОКаталоге(Знач URL, Знач IDКаталога, Знач Токен = "") Экспорт
-
- Ответ = ОсновноеУправляющееДействие(URL, IDКаталога, "disk.folder.get", Токен);
- Возврат Ответ;
-
-КонецФункции
-
-// Создать подкаталог
-// Создает каталог внутри другого каталога
-//
-// Примечание:
-// Метод в документации API: [disk.folder.addsubfolder](@dev.1c-bitrix.ru/rest_help/disk/folder/disk_folder_addsubfolder.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDКаталога - Строка, Число - Идентификатор каталога родителя - folderid
-// Наименование - Строка - Наименование нового каталога - title
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция СоздатьПодкаталог(Знач URL, Знач IDКаталога, Знач Наименование, Знач Токен = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Наименование);
-
- СтруктураПапки = Новый Структура("NAME", Наименование);
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "disk.folder.addsubfolder");
-
- OPI_Инструменты.ДобавитьПоле("id" , IDКаталога , "Строка" , Параметры);
- OPI_Инструменты.ДобавитьПоле("data", СтруктураПапки, "Коллекция", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Скопировать каталог
-// Копирует один каталог в другой
-//
-// Примечание:
-// Метод в документации API: [disk.folder.copyto](@dev.1c-bitrix.ru/rest_help/disk/folder/disk_folder_copyto.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDКаталога - Строка, Число - Идентификатор каталога - folderid
-// IDПриемника - Строка, Число - ID каталога назначения - tagetid
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция СкопироватьКаталог(Знач URL, Знач IDКаталога, Знач IDПриемника, Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "disk.folder.copyto");
-
- OPI_Инструменты.ДобавитьПоле("id" , IDКаталога , "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("targetFolderId", IDПриемника, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Переместить каталог
-// Перемещает один каталог внутрь другого
-//
-// Примечание:
-// Метод в документации API: [disk.folder.moveto](@dev.1c-bitrix.ru/rest_help/disk/folder/disk_folder_moveto.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDКаталога - Строка, Число - Идентификатор каталога - folderid
-// IDПриемника - Строка, Число - ID каталога назначения - tagetid
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ПереместитьКаталог(Знач URL, Знач IDКаталога, Знач IDПриемника, Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "disk.folder.moveto");
-
- OPI_Инструменты.ДобавитьПоле("id" , IDКаталога , "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("targetFolderId", IDПриемника, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Удалить каталог
-// Удаляет каталог с подкаталогами
-//
-// Примечание:
-// Метод в документации API: [disk.folder.deletetree](@dev.1c-bitrix.ru/rest_help/disk/folder/disk_folder_deletetree.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDКаталога - Строка, Число - Идентификатор удаляемого каталога - folderid
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция УдалитьКаталог(Знач URL, Знач IDКаталога, Знач Токен = "") Экспорт
-
- Ответ = ОсновноеУправляющееДействие(URL, IDКаталога, "disk.folder.deletetree", Токен);
- Возврат Ответ;
-
-КонецФункции
-
-// Получить внешнюю ссылку каталога
-// Получает внешнюю ссылку для доступа к каталогу
-//
-// Примечание:
-// Метод в документации API: [disk.folder.getExternalLink](@dev.1c-bitrix.ru/rest_help/disk/folder/disk_folder_getexternallink.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDКаталога - Строка, Число - Идентификатор каталога - folderid
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ПолучитьВнешнююСсылкуКаталога(Знач URL, Знач IDКаталога, Знач Токен = "") Экспорт
-
- Ответ = ОсновноеУправляющееДействие(URL, IDКаталога, "disk.folder.getExternalLink", Токен);
- Возврат Ответ;
-
-КонецФункции
-
-// Получить дочерние элементы каталога
-// Получает дочерние элементы каталога
-//
-// Примечание:
-// Метод в документации API: [disk.folder.getchildren](@dev.1c-bitrix.ru/rest_help/disk/folder/disk_folder_getchildren.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDКаталога - Строка, Число - Идентификатор каталога - folderid
-// Фильтр - Структура из КлючИЗначение - Отбор элементов. См. ПолучитьСтруктуруФильтраКаталога - filter
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ПолучитьДочерниеЭлементыКаталога(Знач URL, Знач IDКаталога, Знач Фильтр = "", Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "disk.folder.getchildren");
- OPI_Инструменты.ДобавитьПоле("id" , IDКаталога, "Строка" , Параметры);
- OPI_Инструменты.ДобавитьПоле("filter", Фильтр , "Коллекция", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Поместить каталог в корзину
-// Перемещает каталог в корзину удаляемых файлов
-//
-// Примечание:
-// Метод в документации API: [disk.folder.markdeleted](@dev.1c-bitrix.ru/rest_help/disk/folder/disk_folder_markdeleted.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDКаталога - Строка, Число - Идентификатор каталога - folderid
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ПоместитьКаталогВКорзину(Знач URL, Знач IDКаталога, Знач Токен = "") Экспорт
-
- Ответ = ОсновноеУправляющееДействие(URL, IDКаталога, "disk.folder.markdeleted", Токен);
- Возврат Ответ;
-
-КонецФункции
-
-// Восстановить каталог
-// Восстанавливает каталог из корзины
-//
-// Примечание:
-// Метод в документации API: [disk.folder.restore](@dev.1c-bitrix.ru/rest_help/disk/folder/disk_folder_restore.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDКаталога - Строка, Число - Идентификатор каталога - folderid
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ВосстановитьКаталог(Знач URL, Знач IDКаталога, Знач Токен = "") Экспорт
-
- Ответ = ОсновноеУправляющееДействие(URL, IDКаталога, "disk.folder.restore", Токен);
- Возврат Ответ;
-
-КонецФункции
-
-// Переименовать каталог
-// Изменяет имя каталога
-//
-// Примечание:
-// Метод в документации API: [disk.folder.rename](@dev.1c-bitrix.ru/rest_help/disk/folder/disk_folder_rename.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDКаталога - Строка, Число - Идентификатор каталога - folderid
-// Наименование - Строка - Новое наименование каталога - title
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ПереименоватьКаталог(Знач URL, Знач IDКаталога, Знач Наименование, Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "disk.folder.rename");
-
- OPI_Инструменты.ДобавитьПоле("id" , IDКаталога , "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("newName", Наименование, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить структуру фильтра каталога
-// Возвращает структуру полей для фильтрации дочерних элементов каталога
-//
-// Примечание:
-// Метод в документации API: [disk.folder.getfields](@dev.1c-bitrix.ru/rest_help/disk/folder/disk_folder_getfields.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// Пустая - Булево - Истина > структура с пустыми значениями, Ложь > в значениях будут описания типов полей - empty
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - Структура полей
-Функция ПолучитьСтруктуруФильтраКаталога(Знач URL, Знач Пустая = Ложь, Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "disk.folder.getfields");
- Фильтр = Новый Структура;
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
- Поля = Ответ["result"];
-
- Для Каждого Поле Из Поля Цикл
-
- Имя = Поле.Ключ;
- Описание = Поле.Значение;
-
- Если Описание["USE_IN_FILTER"] Тогда
-
- ТипДанных = ?(Пустая, "", Описание["TYPE"]);
- Фильтр.Вставить(Имя, ТипДанных);
-
- КонецЕсли;
-
- КонецЦикла;
-
- Возврат Фильтр;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область РаботаСФайлами
-
-// Загрузить файл в хранилище
-// Загружает файл в выбранное хранилище
-//
-// Примечание:
-// Метод в документации API: [disk.storage.uploadfile](@dev.1c-bitrix.ru/rest_help/disk/storage/disk_storage_uploadfile.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// Наименование - Строка - Наименование файла с расширением для сохранения - title
-// Файл - Строка, ДвоичныеДанные - Файл для загрузки - file
-// IDХранилища - Строка - Идентификатор хранилища для загрузки - storageid
-// Доступы - Строка - Массив доступов по задачам, если необходимо - rights
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ЗагрузитьФайлВХранилище(Знач URL
- , Знач Наименование
- , Знач Файл
- , Знач IDХранилища
- , Знач Доступы = ""
- , Знач Токен = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(IDХранилища);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Наименование);
-
- Метод = "disk.storage.uploadfile";
-
- ДанныеФайла = Новый Структура("NAME", Наименование);
- СодержимоеФайла = Новый Соответствие();
- СодержимоеФайла.Вставить(Наименование, Файл);
-
- Параметры = НормализоватьАвторизацию(URL, Токен, Метод);
- OPI_Инструменты.ДобавитьПоле("data" , ДанныеФайла, "Коллекция", Параметры);
- OPI_Инструменты.ДобавитьПоле("rights", Доступы , "Массив" , Параметры);
- OPI_Инструменты.ДобавитьПоле("id" , IDХранилища, "Строка" , Параметры);
-
- МассивФайла = НормализоватьФайлы(СодержимоеФайла);
-
- Если Не МассивФайла.Количество() = 0 Тогда
- Параметры.Вставить("fileContent", МассивФайла[0]);
- КонецЕсли;
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Загрузить файл в каталог
-// Загружает переданный файл в каталог
-//
-// Примечание:
-// Метод в документации API: [disk.folder.uploadfile](@dev.1c-bitrix.ru/rest_help/disk/folder/disk_folder_uploadfile.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// Наименование - Строка - Наименование файла с расширением для сохранения - title
-// Файл - Строка, ДвоичныеДанные - Файл для загрузки - file
-// IDКаталога - Строка - Идентификатор каталога для загрузки - folderid
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ЗагрузитьФайлВКаталог(Знач URL, Знач Наименование, Знач Файл, Знач IDКаталога, Знач Токен = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Наименование);
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Файл);
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "disk.folder.uploadFile");
- OPI_Инструменты.ДобавитьПоле("id", IDКаталога, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры);
- Результат = Ответ["result"];
-
- Если ЗначениеЗаполнено(Результат) Тогда
-
- ИмяПоля = Результат["field"];
- URLЗагрузки = Результат["uploadUrl"];
-
- Если ЗначениеЗаполнено(ИмяПоля) И ЗначениеЗаполнено(URLЗагрузки) Тогда
-
- ИмяПоля = СокрЛП(ИмяПоля);
- URLЗагрузки = СокрЛП(URLЗагрузки);
- ИмяФайла = ИмяПоля + "|" + Наименование;
-
- СоответствиеФайла = Новый Соответствие;
- СоответствиеФайла.Вставить(ИмяФайла, Файл);
-
- Ответ = OPI_ЗапросыHTTP.PostMultipart(URLЗагрузки, , СоответствиеФайла, "");
-
- КонецЕсли;
-
- КонецЕсли;
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить информацию о файле
-// Получает информацию о файле по ID
-//
-// Примечание:
-// Метод в документации API: [disk.file.get](@dev.1c-bitrix.ru/rest_help/disk/file/disk_file_get.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDФайла - Строка, Число - Идентификатор файла - fileid
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ПолучитьИнформациюОФайле(Знач URL, Знач IDФайла, Знач Токен = "") Экспорт
-
- Ответ = ОсновноеУправляющееДействие(URL, IDФайла, "disk.file.get", Токен);
- Возврат Ответ;
-
-КонецФункции
-
-// Удалить файл
-// Удаляет файл по ID
-//
-// Примечание:
-// Метод в документации API: [disk.file.delete](@dev.1c-bitrix.ru/rest_help/disk/file/disk_file_delete.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDФайла - Строка, Число - Идентификатор удаляемого файла - fileid
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция УдалитьФайл(Знач URL, Знач IDФайла, Знач Токен = "") Экспорт
-
- Ответ = ОсновноеУправляющееДействие(URL, IDФайла, "disk.file.delete", Токен);
- Возврат Ответ;
-
-КонецФункции
-
-// Получить внешнюю ссылку файла
-// Получает внешнюю ссылку для доступа к файлу
-//
-// Примечание:
-// Метод внезавно исчез из API на облачном Bitrix24, где проводилось тестирование (09/24). Возможно, он все еще будет работать на других версиях, но это не гарантировано
-// Метод в документации API: [disk.file.getExternalLink](@dev.1c-bitrix.ru/rest_help/disk/file/disk_file_getexternallink.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDФайла - Строка, Число - Идентификатор файла - fileid
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ПолучитьВнешнююСсылкуФайла(Знач URL, Знач IDФайла, Знач Токен = "") Экспорт
-
- Ответ = ОсновноеУправляющееДействие(URL, IDФайла, "disk.file.getExternalLink", Токен);
- Возврат Ответ;
-
-КонецФункции
-
-// Поместить файл в корзину
-// Перемещает файл в корзину удаляемых файлов
-//
-// Примечание:
-// Метод в документации API: [disk.file.markdeleted](@dev.1c-bitrix.ru/rest_help/disk/file/disk_file_markdeleted.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDФайла - Строка, Число - Идентификатор файла - fileid
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ПоместитьФайлВКорзину(Знач URL, Знач IDФайла, Знач Токен = "") Экспорт
-
- Ответ = ОсновноеУправляющееДействие(URL, IDФайла, "disk.file.markdeleted", Токен);
- Возврат Ответ;
-
-КонецФункции
-
-// Восстановить файл
-// Восстанавливает файл из корзины
-//
-// Примечание:
-// Метод в документации API: [disk.file.restore](@dev.1c-bitrix.ru/rest_help/disk/file/disk_file_restore.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDФайла - Строка, Число - Идентификатор файла - fileid
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ВосстановитьФайл(Знач URL, Знач IDФайла, Знач Токен = "") Экспорт
-
- Ответ = ОсновноеУправляющееДействие(URL, IDФайла, "disk.file.restore", Токен);
- Возврат Ответ;
-
-КонецФункции
-
-// Скопировать файл
-// Копирует файл из одного расположения в другое
-//
-// Примечание:
-// Метод в документации API: [disk.file.copyto](@dev.1c-bitrix.ru/rest_help/disk/file/disk_file_copyto.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDФайла - Строка, Число - ID файла для копирования - fileid
-// IDКаталога - Строка, Число - ID каталога размещения копии - folderid
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция СкопироватьФайл(Знач URL, Знач IDФайла, Знач IDКаталога, Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "disk.file.copyto");
-
- OPI_Инструменты.ДобавитьПоле("id" , IDФайла , "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("targetFolderId", IDКаталога, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Переместить файл
-// Перемещает файл из одного расположения в другое
-//
-// Примечание:
-// Метод в документации API: [disk.file.moveto](@dev.1c-bitrix.ru/rest_help/disk/file/disk_file_moveto.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDФайла - Строка, Число - ID файла для перемещения - fileid
-// IDКаталога - Строка, Число - ID каталога нового размещения - folderid
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ПереместитьФайлВКаталог(Знач URL, Знач IDФайла, Знач IDКаталога, Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "disk.file.moveto");
-
- OPI_Инструменты.ДобавитьПоле("id" , IDФайла , "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("targetFolderId", IDКаталога, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Переименовать файл
-// Изменяет имя существующего файла
-//
-// Примечание:
-// Метод в документации API: [disk.file.rename](@dev.1c-bitrix.ru/rest_help/disk/file/disk_file_rename.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDФайла - Строка, Число - Идентификатор файла - fileid
-// Наименование - Строка - Новое наименование каталога - title
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ПереименоватьФайл(Знач URL, Знач IDФайла, Знач Наименование, Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "disk.file.rename");
-
- OPI_Инструменты.ДобавитьПоле("id" , IDФайла , "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("newName", Наименование, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область РаботаСЧатамиИДиалогами
-
-// Создать чат
-// Создает новый чат на основе структуры полей
-//
-// Примечание:
-// Метод в документации API: [im.chat.add](@dev.1c-bitrix.ru/learning/course/?COURSE_ID=93&LESSON_ID=12093)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// СтруктураЧата - Структура Из КлючИЗначение - Структура полей чата. См. ПолучитьСтруктуруЧата - fields
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция СоздатьЧат(Знач URL, Знач СтруктураЧата, Знач Токен = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьКоллекцию(СтруктураЧата);
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "im.chat.add");
-
- Для Каждого Элемент Из СтруктураЧата Цикл
- Параметры.Вставить(Элемент.Ключ, Элемент.Значение);
- КонецЦикла;
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить список пользователей чата
-// Получает список пользователей чата по ID
-//
-// Примечание:
-// Метод в документации API: [im.chat.user.list](@dev.1c-bitrix.ru/learning/course/?COURSE_ID=93&LESSON_ID=12095)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDЧата - Строка, Число - ID чата - chat
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ПолучитьСписокПользователейЧата(Знач URL, Знач IDЧата, Знач Токен = "") Экспорт
-
- Ответ = ОсновноеУправляющееДействие(URL, IDЧата, "im.chat.user.list", Токен, "CHAT_ID");
- Возврат Ответ;
-
-КонецФункции
-
-// Покинуть чат
-// Исключает текущего пользователя из чата
-//
-// Примечание:
-// Метод в документации API: [im.chat.leave](@dev.1c-bitrix.ru/learning/course/?COURSE_ID=93&LESSON_ID=12101)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDЧата - Строка, Число - ID чата - chat
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ПокинутьЧат(Знач URL, Знач IDЧата, Знач Токен = "") Экспорт
-
- Ответ = ОсновноеУправляющееДействие(URL, IDЧата, "im.chat.leave", Токен, "CHAT_ID");
- Возврат Ответ;
-
-КонецФункции
-
-// Получить пользователей
-// Получает информацию о пользователях для диалога
-//
-// Примечание:
-// Метод в документации API: [im.user.list.get ](@dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=93&LESSON_ID=11493)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDПользователей - Массив Из Строка, Число - ID пользователя или нескольких пользователей - users
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ПолучитьПользователей(Знач URL, Знач IDПользователей, Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "im.user.list.get");
-
- OPI_Инструменты.ДобавитьПоле("ID", IDПользователей, "Массив", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Добавить пользователей в чат
-// Добавляет пользователей в чат по массиву ID
-//
-// Примечание:
-// Метод в документации API: [im.chat.user.add](@dev.1c-bitrix.ru/learning/course/?COURSE_ID=93&LESSON_ID=12097)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDЧата - Строка, Число - ID чата - chat
-// IDПользователей - Массив из Строка, Число - ID пользователей для добавления - users
-// СкрытьИсторию - Булево - Скрыть старые сообщения от новых пользователей - hide
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ДобавитьПользователейВЧат(Знач URL
- , Знач IDЧата
- , Знач IDПользователей
- , Знач СкрытьИсторию = Ложь
- , Знач Токен = "") Экспорт
-
- ПривестиБулево(СкрытьИсторию);
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "im.chat.user.add");
-
- OPI_Инструменты.ДобавитьПоле("CHAT_ID" , IDЧата , "Строка" , Параметры);
- OPI_Инструменты.ДобавитьПоле("USERS" , IDПользователей, "Коллекция", Параметры);
- OPI_Инструменты.ДобавитьПоле("HIDE_HISTORY", СкрытьИсторию , "Строка" , Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Исключить пользователя из чата
-// Исключает выбранного пользователя из чата
-//
-// Примечание:
-// Метод в документации API: [im.chat.user.delete](@dev.1c-bitrix.ru/learning/course/?COURSE_ID=93&LESSON_ID=12099)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDЧата - Строка, Число - ID чата - chat
-// IDПользователя - Строка, Число - ID пользователя - user
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ИсключитьПользователяИзЧата(Знач URL, Знач IDЧата, Знач IDПользователя, Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "im.chat.user.delete");
-
- OPI_Инструменты.ДобавитьПоле("CHAT_ID", IDЧата , "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("USER_ID", IDПользователя, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Изменить заголовок чата
-// Изменяет текст заголовка чата
-//
-// Примечание:
-// Метод в документации API: [im.chat.updateTitle](@dev.1c-bitrix.ru/learning/course/?COURSE_ID=93&LESSON_ID=12105)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDЧата - Строка, Число - ID чата - chat
-// Заголовок - Строка - Новый текст заголовка - title
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ИзменитьЗаголовокЧата(Знач URL, Знач IDЧата, Знач Заголовок, Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "im.chat.updateTitle");
-
- OPI_Инструменты.ДобавитьПоле("CHAT_ID", IDЧата , "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("TITLE" , Заголовок, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Изменить цвет чата
-// Изменяет цвет чата для мобильного приложения
-//
-// Примечание:
-// Метод в документации API: [im.chat.updateTitle](@dev.1c-bitrix.ru/learning/course/?COURSE_ID=93&LESSON_ID=12105)
-// Доступные цвета: RED, GREEN, MINT, LIGHT_BLUE, DARK_BLUE, PURPLE, AQUA, PINK, LIME, BROWN, AZURE, KHAKI, SAND, MARENGO, GRAY, GRAPHITE
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDЧата - Строка, Число - ID чата - chat
-// Цвет - Строка - Новый цвет чата - color
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ИзменитьЦветЧата(Знач URL, Знач IDЧата, Знач Цвет, Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "im.chat.updateColor");
-
- OPI_Инструменты.ДобавитьПоле("CHAT_ID", IDЧата, "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("COLOR" , Цвет , "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Изменить картинку чата
-// Устанавливает новую картинку чата
-//
-// Примечание:
-// Метод в документации API: [im.chat.updateAvatar](@dev.1c-bitrix.ru/learning/course/?COURSE_ID=93&LESSON_ID=12109)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDЧата - Строка, Число - ID чата - chat
-// Картинка - Строка, ДвоичныеДанные - Данные файла картинки - picture
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ИзменитьКартинкуЧата(Знач URL, Знач IDЧата, Знач Картинка, Знач Токен = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка);
-
- Картинка = Base64Строка(Картинка);
- Параметры = НормализоватьАвторизацию(URL, Токен, "im.chat.updateAvatar");
-
- OPI_Инструменты.ДобавитьПоле("CHAT_ID", IDЧата , "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("AVATAR" , Картинка, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Сменить владельца чата
-// Изменяет пользователя владельца чата
-//
-// Примечание:
-// Метод в документации API: [im.chat.setOwner](@dev.1c-bitrix.ru/learning/course/?COURSE_ID=93&LESSON_ID=12111)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDЧата - Строка, Число - ID чата - chat
-// IDПользователя - Строка, Число - ID пользователя - user
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция СменитьВладельцаЧата(Знач URL, Знач IDЧата, Знач IDПользователя, Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "im.chat.setOwner");
-
- OPI_Инструменты.ДобавитьПоле("CHAT_ID", IDЧата , "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("USER_ID", IDПользователя, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Отключить уведомления чата
-// Отключает уведомлений чата
-//
-// Примечание:
-// Метод в документации API: [im.chat.mute](@dev.1c-bitrix.ru/learning/course/?COURSE_ID=93&LESSON_ID=11473)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDЧата - Строка, Число - ID чата - chat
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ОтключитьУведомленияЧата(Знач URL, Знач IDЧата, Знач Токен = "") Экспорт
-
- Ответ = УправлениеЗвукомЧата(URL, IDЧата, Истина, Токен);
- Возврат Ответ;
-
-КонецФункции
-
-// Включить уведомления чата
-// Включает уведомления в чате
-//
-// Примечание:
-// Метод в документации API: [im.chat.mute](@dev.1c-bitrix.ru/learning/course/?COURSE_ID=93&LESSON_ID=11473)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDЧата - Строка, Число - ID чата - chat
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ВключитьУведомленияЧата(Знач URL, Знач IDЧата, Знач Токен = "") Экспорт
-
- Ответ = УправлениеЗвукомЧата(URL, IDЧата, Ложь, Токен);
- Возврат Ответ;
-
-КонецФункции
-
-// Получить список сообщений чата
-// Получает список из 20 сообщений чата или диалога, в зависимости от указания IDПервого и IDПоследнего
-//
-// Примечание:
-// Метод в документации API: [im.dialog.messages.get](@dev.1c-bitrix.ru/learning/course/?COURSE_ID=93&LESSON_ID=11479)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDЧата - Строка, Число - ID чата (chatXXX) или пользователя (XXX) для диалога - chat
-// IDПоследнего - Строка, Число - ID последнего загруженного сообщения - last
-// IDПервого - Строка, Число - ID первого загруженного сообщения - first
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ПолучитьСписокСообщенийЧата(Знач URL
- , Знач IDЧата
- , Знач IDПоследнего = ""
- , Знач IDПервого = ""
- , Знач Токен = "") Экспорт
-
- Строка_ = "Строка";
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(IDПоследнего);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(IDПервого);
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "im.dialog.messages.get");
-
- OPI_Инструменты.ДобавитьПоле("DIALOG_ID", IDЧата , Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("LAST_ID" , IDПоследнего, Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("FIRST_ID" , IDПервого , Строка_, Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить диалог
-// Получает информацию о диалоге по ID
-//
-// Примечание:
-// Метод в документации API: [im.dialog.get](@dev.1c-bitrix.ru/learning/course/?COURSE_ID=93&LESSON_ID=12886)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDЧата - Строка, Число - ID чата (chatXXX) или пользователя (XXX) для диалога - chat
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ПолучитьДиалог(Знач URL, Знач IDЧата, Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "im.dialog.get");
-
- OPI_Инструменты.ДобавитьПоле("DIALOG_ID", IDЧата, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить список пользователей диалога
-// Получает список участников далога
-//
-// Примечание:
-// Метод в документации API: [im.dialog.users.list](@dev.1c-bitrix.ru/learning/course/?COURSE_ID=93&LESSON_ID=23800)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDЧата - Строка, Число - ID чата (chatXXX) или пользователя (XXX) для диалога - chat
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ПолучитьСписокПользователейДиалога(Знач URL, Знач IDЧата, Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "im.dialog.users.list");
-
- OPI_Инструменты.ДобавитьПоле("DIALOG_ID", IDЧата, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Отправить уведомление о вводе
-// Отправляет в чат статус Вам пишут...
-//
-// Примечание:
-// Метод в документации API: [im.dialog.writing](@dev.1c-bitrix.ru/learning/course/?COURSE_ID=93&LESSON_ID=23802)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDЧата - Строка, Число - ID чата (chatXXX) или пользователя (XXX) для диалога - chat
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ОтправитьУведомлениеОВводе(Знач URL, Знач IDЧата, Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "im.dialog.writing");
-
- OPI_Инструменты.ДобавитьПоле("DIALOG_ID", IDЧата, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить статус пользователя
-// Получает статус (онлайн) текущего пользователя
-//
-// Примечание:
-// Метод в документации API: [im.user.status.get](@dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=93&LESSON_ID=11497)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ПолучитьСтатусПользователя(Знач URL, Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "im.user.status.get");
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Установить статус пользователя
-// Устанавливает статус (онлайн) текущего пользователя
-//
-// Примечание:
-// Метод в документации API: [im.user.status.set](@dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=93&LESSON_ID=11499)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// Статус - Строка, Число - Статус пользователя: online, dnd, away - status
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция УстановитьСтатусПользователя(Знач URL, Знач Статус, Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "im.user.status.set");
-
- OPI_Инструменты.ДобавитьПоле("STATUS", Статус, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Прочитать все
-// Отмечает все сообщения во всех доступных чатах как прочитанные
-//
-// Примечание:
-// Метод в документации API: [im.dialog.read.all](@dev.1c-bitrix.ru/learning/course/?COURSE_ID=93&LESSON_ID=23804)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ПрочитатьВсе(Знач URL, Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "im.dialog.read.all");
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить каталог файлов чата
-// Получает каталог для хранения фйлов чата
-//
-// Примечание:
-// Метод в документации API: [im.disk.folder.get](@dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=93&LESSON_ID=11483)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDЧата - Строка, Число - ID чата - chat
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ПолучитьКаталогФайловЧата(Знач URL, Знач IDЧата, Знач Токен = "") Экспорт
-
- Ответ = ОсновноеУправляющееДействие(URL, IDЧата, "im.disk.folder.get", Токен, "CHAT_ID");
- Возврат Ответ;
-
-КонецФункции
-
-// Получить структуру чата
-// Получает структуру полей чата
-//
-// Параметры:
-// Пустая - Булево - Истина > структура с пустыми значениями, Ложь > в значениях будут описания типов полей - empty
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - Структура полей
-Функция ПолучитьСтруктуруЧата(Знач Пустая = Ложь) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьБулево(Пустая);
-
- СтруктураЧата = Новый Структура;
- СтруктураЧата.Вставить("TYPE" , "<Тип чата OPEN (публичный) | CHAT (по приглашениям)>");
- СтруктураЧата.Вставить("TITLE" , "<Заголовок чата>");
- СтруктураЧата.Вставить("DESCRIPTION", "<Описание чата>");
- СтруктураЧата.Вставить("COLOR" , "<Цвет чата: RED, GREEN, MINT, LIGHT_BLUE, DARK_BLUE, PURPLE, AQUA, ...>");
- СтруктураЧата.Вставить("MESSAGE" , "<Первое приветственное сообщение в чате>");
- СтруктураЧата.Вставить("USERS" , "<Массив участников чата>");
- СтруктураЧата.Вставить("AVATAR" , "<Аватар чата в base64 формате>");
- СтруктураЧата.Вставить("OWNER_ID" , "<Идентификатор владельца чата. Текущий пользователь, если не указано>");
-
- Если Пустая Тогда
- Для Каждого Поле Из СтруктураЧата Цикл
- СтруктураЧата.Вставить(Поле.Ключ, "");
- КонецЦикла;
- КонецЕсли;
-
- //@skip-check constructor-function-return-section
- Возврат СтруктураЧата;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область РаботаССообщениями
-
-// Отправить сообщение
-// Отправляет сообщение в диалог
-//
-// Примечание:
-// Метод в документации API: [im.message.add](@dev.1c-bitrix.ru/learning/course/?COURSE_ID=93&LESSON_ID=12115)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDЧата - Строка, Число - ID чата (chatXXX) или пользователя (XXX) для диалога - chat
-// Текст - Строка - Текст сообщения - text
-// Вложения - Массив из Структура - Массив блоков вложений - blocks
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ОтправитьСообщение(Знач URL, Знач IDЧата, Знач Текст, Знач Вложения = "", Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "im.message.add");
-
- OPI_Инструменты.ДобавитьПоле("DIALOG_ID", IDЧата , "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("MESSAGE" , Текст , "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("ATTACH" , Вложения, "Массив", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Изменить сообщение
-// Изменяет сообщение в диалоге
-//
-// Примечание:
-// Метод в документации API: [im.message.update](@dev.1c-bitrix.ru/learning/course/?COURSE_ID=93&LESSON_ID=12117)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDСообщения - Строка, Число - ID сообщения для изменения - message
-// Текст - Строка - Новый текст сообщения - text
-// Вложения - Массив из Структура - Новый массив блоков вложений - blocks
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ИзменитьСообщение(Знач URL, Знач IDСообщения, Знач Текст = "", Знач Вложения = "", Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "im.message.update");
-
- OPI_Инструменты.ДобавитьПоле("MESSAGE_ID", IDСообщения, "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("MESSAGE" , Текст , "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("ATTACH" , Вложения , "Массив", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Установить реакцию на сообщение
-// Устанавливает или снимает реакцию на сообщение
-//
-// Примечание:
-// Метод в документации API: [im.message.like](@dev.1c-bitrix.ru/learning/course/?COURSE_ID=93&LESSON_ID=12121)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDСообщения - Строка, Число - ID сообщения - message
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция УстановитьРеакциюНаСообщение(Знач URL, Знач IDСообщения, Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "im.message.like");
-
- OPI_Инструменты.ДобавитьПоле("MESSAGE_ID", IDСообщения, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Удалить сообщение
-// Удаляет сообщение в диалоге
-//
-// Примечание:
-// Метод в документации API: [im.message.delete](@dev.1c-bitrix.ru/learning/course/?COURSE_ID=93&LESSON_ID=12119)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDСообщения - Строка, Число - ID сообщения для удаления - message
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция УдалитьСообщение(Знач URL, Знач IDСообщения, Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "im.message.delete");
-
- OPI_Инструменты.ДобавитьПоле("MESSAGE_ID", IDСообщения , "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Отправить файл
-// Отправляет файл диска в чат по ID
-//
-// Примечание:
-// Метод в документации API: [im.disk.file.commit](@dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=93&LESSON_ID=11485)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDЧата - Строка, Число - ID чата - chat
-// IDФайла - Строка, Число - ID файла, загруженного при помощи ЗагрузитьФайлВКаталог - fileid
-// Описание - Строка - Описание файла - description
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ОтправитьФайл(Знач URL, Знач IDЧата, Знач IDФайла, Знач Описание = "", Знач Токен = "") Экспорт
-
- Строка_ = "Строка";
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "im.disk.file.commit");
-
- OPI_Инструменты.ДобавитьПоле("CHAT_ID" , IDЧата , Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("UPLOAD_ID", IDФайла , Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("MESSAGE" , Описание, Строка_, Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Отметить сообщение как прочитанное
-// Отмечает выбранное сообщение и все сообщения до него как прочитанные
-//
-// Примечание:
-// Метод в документации API: [im.dialog.read](@dev.1c-bitrix.ru/learning/course/?COURSE_ID=93&LESSON_ID=12053)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDЧата - Строка, Число - ID чата (chatXXX) или пользователя (XXX) для диалога - chat
-// IDСообщения - Строка, Число - ID последнего прочитанного сообщения - message
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ОтметитьСообщениеКакПрочитанное(Знач URL, Знач IDЧата, Знач IDСообщения, Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "im.dialog.read");
-
- OPI_Инструменты.ДобавитьПоле("DIALOG_ID" , IDЧата , "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("MESSAGE_ID", IDСообщения, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Отметить сообщение как непрочитанное
-// Отмечает выбранное сообщение и все сообщения после него как непрочитанные
-//
-// Примечание:
-// Метод в документации API: [im.dialog.unread](@dev.1c-bitrix.ru/learning/course/?COURSE_ID=93&LESSON_ID=12055)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDЧата - Строка, Число - ID чата (chatXXX) или пользователя (XXX) для диалога - chat
-// IDСообщения - Строка, Число - ID послднего непрочитанного сообщения - message
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ОтметитьСообщениеКакНепрочитанное(Знач URL, Знач IDЧата, Знач IDСообщения, Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "im.dialog.unread");
-
- OPI_Инструменты.ДобавитьПоле("DIALOG_ID" , IDЧата , "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("MESSAGE_ID", IDСообщения, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить блок картинки
-// Формирует картинку для отправки в функции ОтправитьСообщение
-//
-// Примечание:
-// Блоки в документации API: [Ссылка](@dev.1c-bitrix.ru/learning/course/?COURSE_ID=93&CHAPTER_ID=07867)
-//
-// Параметры:
-// Наименование - Строка - Наименование картинки - title
-// URL - Строка - URL картинки для отправки - url
-//
-// Возвращаемое значение:
-// Структура - Блок с картинкой
-Функция ПолучитьБлокКартинки(Знач Наименование, Знач URL) Экспорт
-
- СтруктураКартинки = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("NAME", Наименование, "Строка", СтруктураКартинки);
- OPI_Инструменты.ДобавитьПоле("LINK", URL , "Строка", СтруктураКартинки);
-
- //@skip-check constructor-function-return-section
- Возврат Новый Структура("IMAGE", СтруктураКартинки);
-
-КонецФункции
-
-// Получить блок файла
-// Формирует блок файла для отправки в функции ОтправитьСообщение
-//
-// Примечание:
-// Блоки в документации API: [Ссылка](@dev.1c-bitrix.ru/learning/course/?COURSE_ID=93&CHAPTER_ID=07867)
-//
-// Параметры:
-// Наименование - Строка - Наименование картинки - title
-// URL - Строка - URL файла для отправки - url
-//
-// Возвращаемое значение:
-// Структура - Блок с файлом
-Функция ПолучитьБлокФайла(Знач Наименование, Знач URL) Экспорт
-
- СтруктураКартинки = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("NAME", Наименование, "Строка", СтруктураКартинки);
- OPI_Инструменты.ДобавитьПоле("LINK", URL , "Строка", СтруктураКартинки);
-
- //@skip-check constructor-function-return-section
- Возврат Новый Структура("FILE", СтруктураКартинки);
-
-КонецФункции
-
-#КонецОбласти
-
-#Область РаботаСУведомлениями
-
-// Создать персональное уведомление
-// Создает персональное уведомление пользователю
-//
-// Примечание:
-// Метод в документации API: [im.notify.personal.add](@dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=93&LESSON_ID=12129)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDПользователя - Строка, Число - ID пользователя для отправки уведомления - user
-// Текст - Строка - Текст уведомления - text
-// Тег - Строка - Тег уникальности Если уже существет, то другие увед. будут удалены - tag
-// Вложения - Массив из Структура - Массив блоков вложений - blocks
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция СоздатьПерсональноеУведомление(Знач URL
- , Знач IDПользователя
- , Знач Текст
- , Знач Тег = ""
- , Знач Вложения = ""
- , Знач Токен = "") Экспорт
-
- Строка_ = "Строка";
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "im.notify.personal.add");
-
- OPI_Инструменты.ДобавитьПоле("USER_ID", IDПользователя, Строка_ , Параметры);
- OPI_Инструменты.ДобавитьПоле("MESSAGE", Текст , Строка_ , Параметры);
- OPI_Инструменты.ДобавитьПоле("TAG" , Тег , Строка_ , Параметры);
- OPI_Инструменты.ДобавитьПоле("ATTACH" , Вложения , "Массив", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Создать системное уведомление
-// Создает системное уведомление пользователю
-//
-// Примечание:
-// Метод в документации API: [im.notify.system.add](@dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=93&LESSON_ID=12131)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDПользователя - Строка, Число - ID пользователя для отправки уведомления - user
-// Текст - Строка - Текст уведомления - text
-// Тег - Строка - Тег уникальности Если уже существет, то другие увед. будут удалены - tag
-// Вложения - Массив из Структура - Массив блоков вложений - blocks
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция СоздатьСистемноеУведомление(Знач URL
- , Знач IDПользователя
- , Знач Текст
- , Знач Тег = ""
- , Знач Вложения = ""
- , Знач Токен = "") Экспорт
-
- Строка_ = "Строка";
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "im.notify.system.add");
-
- OPI_Инструменты.ДобавитьПоле("USER_ID", IDПользователя, Строка_ , Параметры);
- OPI_Инструменты.ДобавитьПоле("MESSAGE", Текст , Строка_ , Параметры);
- OPI_Инструменты.ДобавитьПоле("TAG" , Тег , Строка_ , Параметры);
- OPI_Инструменты.ДобавитьПоле("ATTACH" , Вложения , "Массив", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Удалить уведомление
-// Удаляет уведомление по ID
-//
-// Примечание:
-// Метод в документации API: [im.notify.delete](@dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=93&LESSON_ID=12133)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDУведомления - Строка, Число - ID уведомления для удаления - notif
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция УдалитьУведомление(Знач URL, Знач IDУведомления, Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "im.notify.delete");
-
- OPI_Инструменты.ДобавитьПоле("ID", IDУведомления, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область УправлениеПодразделениями
-
-// Создать подразделение
-// Создает новое подразделение
-//
-// Примечание:
-// Метод в документации API: [department.add](@dev.1c-bitrix.ru/rest_help/departments/department_add.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// Наименование - Строка - Наименование подразделения - title
-// IDРодителя - Строка, Число - ID родительского подразделения - parentid
-// IDРуководителя - Строка, Число - ID руководителя подразделения - headid
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция СоздатьПодразделение(Знач URL
- , Знач Наименование
- , Знач IDРодителя = ""
- , Знач IDРуководителя = ""
- , Знач Токен = "") Экспорт
-
- Строка_ = "Строка";
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "department.add");
-
- OPI_Инструменты.ДобавитьПоле("NAME" , Наименование , Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("PARENT" , IDРодителя , Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("UF_HEAD", IDРуководителя, Строка_, Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Изменить подразделение
-// Изменяет существующее подразделение
-//
-// Примечание:
-// Метод в документации API: [department.update](@dev.1c-bitrix.ru/rest_help/departments/department_update.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDПодразделения - Строка, Число - ID подразделения - depid
-// Наименование - Строка - Наименование подразделения - title
-// IDРодителя - Строка, Число - ID родительского подразделения - parentid
-// IDРуководителя - Строка, Число - ID руководителя подразделения - headid
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ИзменитьПодразделение(Знач URL
- , Знач IDПодразделения
- , Знач Наименование = ""
- , Знач IDРодителя = ""
- , Знач IDРуководителя = ""
- , Знач Токен = "") Экспорт
-
- Строка_ = "Строка";
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "department.update");
-
- OPI_Инструменты.ДобавитьПоле("ID" , IDПодразделения, Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("NAME" , Наименование , Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("PARENT" , IDРодителя , Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("UF_HEAD", IDРуководителя , Строка_, Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить подразделения
-// Получает список подразделений по ID или фильтру
-//
-// Примечание:
-// Метод в документации API: [department.get](@dev.1c-bitrix.ru/rest_help/departments/department_get.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDПодразделения - Строка, Число - Выбор по ID подразделения - depid
-// Наименование - Строка - Фильтр по наименованию - title
-// IDРодителя - Строка, Число - Фильтр по родителю - parentid
-// IDРуководителя - Строка, Число - Фильтр по руководителю - headid
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ПолучитьПодразделения(Знач URL
- , Знач IDПодразделения = ""
- , Знач Наименование = ""
- , Знач IDРодителя = ""
- , Знач IDРуководителя = ""
- , Знач Токен = "") Экспорт
-
- Строка_ = "Строка";
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "department.get");
-
- OPI_Инструменты.ДобавитьПоле("ID" , IDПодразделения, Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("NAME" , Наименование , Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("PARENT" , IDРодителя , Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("UF_HEAD", IDРуководителя , Строка_, Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Удалить подразделение
-// Удаляет подразделение по ID
-//
-// Примечание:
-// Метод в документации API: [department.delete](@dev.1c-bitrix.ru/rest_help/departments/department_delete.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDПодразделения - Строка, Число - ID подразделения для удаления - depid
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция УдалитьПодразделение(Знач URL, Знач IDПодразделения, Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "department.delete");
-
- OPI_Инструменты.ДобавитьПоле("ID", IDПодразделения, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область УправлениеПользователями
-
-// Получить текущего пользователя
-// Получает информацию о текущем пользователе
-//
-// Примечание:
-// Метод в документации API: [user.current](@dev.1c-bitrix.ru/rest_help/users/user_current.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ПолучитьТекущегоПользователя(Знач URL, Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "user.current");
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить пользователя
-// Получает информацию о пользователе по ID
-//
-// Примечание:
-// Метод в документации API: [user.get](@dev.1c-bitrix.ru/rest_help/users/user_get.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDПользователя - Строка, Число - ID пользователя для получения - userid
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ПолучитьПользователя(Знач URL, Знач IDПользователя, Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "user.get");
-
- OPI_Инструменты.ДобавитьПоле("ID", IDПользователя, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Создать пользователя
-// Создает нового пользователя по структуре полей
-//
-// Примечание:
-// Метод в документации API: [user.add](@dev.1c-bitrix.ru/rest_help/users/user_add.php)
-// Если нужно добавить пользователя экстранета, то в полях необходимо передать: EXTRANET: Y и SONET_GROUP_ID: [...]
-// Если нужно добавить пользователя интранета, то обязательно передаётся: UF_DEPARTMENT: [...]
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// СтруктураПолей - Структура Из КлючИЗначение - Данные пользователя. См. ПолучитьСтурктуруПользователя - fields
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция СоздатьПользователя(Знач URL, Знач СтруктураПолей, Знач Токен = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьКоллекцию(СтруктураПолей);
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "user.add");
-
- Для Каждого Поле Из СтруктураПолей Цикл
- Параметры.Вставить(Поле.Ключ, Поле.Значение);
- КонецЦикла;
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Изменить пользователя
-// Изменяет данные пользователя
-//
-// Примечание:
-// Метод в документации API: [user.update](@dev.1c-bitrix.ru/rest_help/users/user_update.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDПользователя - Строка, Число - ID пользователя для изменения - userid
-// СтруктураПолей - Структура Из КлючИЗначение - Данные пользователя. См. ПолучитьСтурктуруПользователя - fields
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ИзменитьПользователя(Знач URL, Знач IDПользователя, Знач СтруктураПолей, Знач Токен = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьКоллекцию(СтруктураПолей);
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "user.update");
-
- Для Каждого Поле Из СтруктураПолей Цикл
- Параметры.Вставить(Поле.Ключ, Поле.Значение);
- КонецЦикла;
-
- OPI_Инструменты.ДобавитьПоле("ID", IDПользователя, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Изменить статус пользователя
-// Активирует или деактивирует (увольняет) выбранного пользователя
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDПользователя - Строка, Число - ID пользователя для изменения - userid
-// Уволить - Булево - Истина > Деактивация, Ложь > Активация - fire
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ИзменитьСтатусПользователя(Знач URL, Знач IDПользователя, Знач Уволить = Истина, Знач Токен = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьБулево(Уволить);
-
- Активен = Не Уволить;
-
- ПривестиБулево(Активен);
-
- Параметры = Новый Структура("ACTIVE", Активен);
-
- Ответ = ИзменитьПользователя(URL, IDПользователя, Параметры, Токен);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Найти пользователей
-// Получает список пользователей по заданному фильтру
-//
-// Примечание:
-// Метод в документации API: [user.update](@dev.1c-bitrix.ru/rest_help/users/user_update.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// СтруктураФильтра - Структура Из КлючИЗначение - Фильтр. См. ПолучитьСтруктуруФильтраПользователей - filter
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция НайтиПользователей(Знач URL, Знач СтруктураФильтра, Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "user.search");
-
- OPI_Инструменты.ДобавитьПоле("FILTER", СтруктураФильтра, "Коллекция", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить стурктуру пользователя
-// Получает структурау полей для создания или изменения пользователя
-//
-// Примечание:
-// Метод в документации API: [user.fields](@dev.1c-bitrix.ru/rest_help/users/user_fields.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
-Функция ПолучитьСтурктуруПользователя(Знач URL, Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "user.fields");
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить структуру фильтра пользователей
-// Возвращает структуру полей для фильтрации пользователей в методе НайтиПользователей
-//
-// Параметры:
-// Пустая - Булево - Истина > структура с пустыми значениями, Ложь > в значениях будут описания полей - empty
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - Структура полей
-Функция ПолучитьСтруктуруФильтраПользователей(Знач Пустая = Ложь) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьБулево(Пустая);
-
- СтруктураФильтра = Новый Структура;
- СтруктураФильтра.Вставить("NAME" , "<имя>");
- СтруктураФильтра.Вставить("LAST_NAME" , "<фамилия>");
- СтруктураФильтра.Вставить("WORK_POSITION" , "<должность>");
- СтруктураФильтра.Вставить("UF_DEPARTMENT_NAME", "<название подразделения>");
- СтруктураФильтра.Вставить("USER_TYPE" , "<тип: employee, extranet, email>");
-
- Если Пустая Тогда
- Для Каждого Поле Из СтруктураФильтра Цикл
- СтруктураФильтра.Вставить(Поле.Ключ, "");
- КонецЦикла;
- КонецЕсли;
-
- //@skip-check constructor-function-return-section
- Возврат СтруктураФильтра;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область РаботаСЛидами
-
-// Создать лид
-// Создает новый лид по структуре полей
-//
-// Примечание:
-// Метод в документации API: [crm.lead.add](@dev.1c-bitrix.ru/rest_help/crm/leads/crm_lead_add.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// СтруктураПолей - Структура Из КлючИЗначение - Структура полей лида. См. ПолучитьСтруктуруЛида - fields
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrix24
-Функция СоздатьЛид(Знач URL, Знач СтруктураПолей, Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "crm.lead.add");
-
- OPI_Инструменты.ДобавитьПоле("fields", СтруктураПолей, "Коллекция", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Удалить лид
-// Удаляет лид по ID
-//
-// Примечание:
-// Метод в документации API: [crm.lead.delete](@dev.1c-bitrix.ru/rest_help/crm/leads/crm_lead_delete.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDЛида - Число, Строка - ID лида - lead
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrix24
-Функция УдалитьЛид(Знач URL, Знач IDЛида, Знач Токен = "") Экспорт
-
- Ответ = ОсновноеУправляющееДействие(URL, IDЛида, "crm.lead.delete", Токен);
- Возврат Ответ;
-
-КонецФункции
-
-// Получить лид
-// Получает лид по ID
-//
-// Примечание:
-// Метод в документации API: [crm.lead.get](@dev.1c-bitrix.ru/rest_help/crm/leads/crm_lead_get.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDЛида - Число,Строка - ID лида - lead
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrix24
-Функция ПолучитьЛид(Знач URL, Знач IDЛида, Знач Токен = "") Экспорт
-
- Ответ = ОсновноеУправляющееДействие(URL, IDЛида, "crm.lead.get", Токен);
- Возврат Ответ;
-
-КонецФункции
-
-// Получить список лидов
-// Получает список лидов (50 шт. за запрос максимум) с фильтром или без
-//
-// Примечание:
-// Метод в документации API: [crm.lead.list](@dev.1c-bitrix.ru/rest_help/crm/leads/crm_lead_list.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// Фильтр - Структура из КлючИЗначение - Структура отбора лидов. См. ПолучитьСтруктуруФильтраЛидов - filter
-// Отступ - Число, Строка - Отступ от начала списка для получения лидов > 50 шт. рекурсивно - offset
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrix24
-Функция ПолучитьСписокЛидов(Знач URL, Знач Фильтр = "", Знач Отступ = 0, Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "crm.lead.list");
-
- OPI_Инструменты.ДобавитьПоле("filter", Фильтр, "Коллекция", Параметры);
- OPI_Инструменты.ДобавитьПоле("start" , Отступ, "Строка" , Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Изменить лид
-// Изменяет существующий лид
-//
-// Примечание:
-// Метод в документации API: [crm.lead.update](@dev.1c-bitrix.ru/rest_help/crm/leads/crm_lead_update.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDЛида - Число, Строка - ID лида - lead
-// СтруктураПолей - Структура Из КлючИЗначение - Структура полей лида - fields
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrix24
-Функция ИзменитьЛид(Знач URL, Знач IDЛида, Знач СтруктураПолей, Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "crm.lead.update");
-
- OPI_Инструменты.ДобавитьПоле("fields", СтруктураПолей, "Коллекция", Параметры);
- OPI_Инструменты.ДобавитьПоле("id" , IDЛида , "Строка" , Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить структуру лида
-// Получает структуру с описанием полей для создания лида
-//
-// Примечание:
-// Метод в документации API: [crm.lead.fields](@dev.1c-bitrix.ru/rest_help/crm/leads/crm_lead_fields.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrix24
-Функция ПолучитьСтруктуруЛида(Знач URL, Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "crm.lead.fields");
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить структуру фильтра лидов
-// Возвращает структуру полей для фильтрации лидов в методе ПолучитьСписокЛидов
-//
-// Параметры:
-// Пустая - Булево - Истина > структура с пустыми значениями, Ложь > в значениях будут описания полей - empty
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - Структура полей
-Функция ПолучитьСтруктуруФильтраЛидов(Знач Пустая = Ложь) Экспорт
-
- // Подробнее
- // https://dev.1c-bitrix.ru/rest_help/crm/leads/crm_lead_list.php
-
- OPI_ПреобразованиеТипов.ПолучитьБулево(Пустая);
-
- СтруктураФильтра = Новый Структура;
- СтруктураФильтра.Вставить("ID" , "<идентификатор лида>");
- СтруктураФильтра.Вставить("ASSIGNED_BY_ID" , "<идентификатор ответственного>");
- СтруктураФильтра.Вставить("COMPANY_ID" , "<идентификатор компании>");
- СтруктураФильтра.Вставить("COMPANY_TITLE" , "<наименование компании>");
- СтруктураФильтра.Вставить("CONTACT_ID" , "<идентификатор контакта>");
- СтруктураФильтра.Вставить("CREATED_BY_ID" , "<идентификатор автора>");
- СтруктураФильтра.Вставить("CURRENCY_ID" , "<идентификатор валюты>");
- СтруктураФильтра.Вставить("DATE_CLOSED" , "<дата закрытия>");
- СтруктураФильтра.Вставить("DATE_CREATE" , "<дата создания>");
- СтруктураФильтра.Вставить("DATE_MODIFY" , "<дата изменения>");
- СтруктураФильтра.Вставить("EMAIL" , "<адрес электронной почты>");
- СтруктураФильтра.Вставить("HAS_EMAIL" , "<электронная почта заполнена (Y|N)>");
- СтруктураФильтра.Вставить("HAS_PHONE" , "<телефон заполнен (Y|N)>");
- СтруктураФильтра.Вставить("IS_RETURN_CUSTOMER" , "<признак повторного лида (Y|N)>");
- СтруктураФильтра.Вставить("MODIFY_BY_ID" , "<идентификатор автора последнего изменения>");
- СтруктураФильтра.Вставить("MOVED_BY_ID" , "<идентификатор автора перемещения лида на текущую стадию>");
- СтруктураФильтра.Вставить("MOVED_TIME" , "<дата перемещения лида на текущую стадию>");
- СтруктураФильтра.Вставить("OPENED" , "<признак доступен для всех (Y|N)>");
- СтруктураФильтра.Вставить("OPPORTUNITY" , "<предполагаемая сумма>");
- СтруктураФильтра.Вставить("STATUS_ID" , "<идентификатор статуса>");
- СтруктураФильтра.Вставить("TITLE" , "<название лида (можно искать по шаблону [%_])>");
-
- Если Пустая Тогда
- Для Каждого Поле Из СтруктураФильтра Цикл
- СтруктураФильтра.Вставить(Поле.Ключ, "");
- КонецЦикла;
- КонецЕсли;
-
- //@skip-check constructor-function-return-section
- Возврат СтруктураФильтра;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область РаботаСоСделками
-
-// Создать сделку
-// Создает новую сделку по структуре полей
-//
-// Примечание:
-// Метод в документации API: [crm.deal.add](@dev.1c-bitrix.ru/rest_help/crm/cdeals/crm_deal_add.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// СтруктураПолей - Структура Из КлючИЗначение - Структура полей сделки. См. ПолучитьСтруктуруСделки - fields
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrix24
-Функция СоздатьСделку(Знач URL, Знач СтруктураПолей, Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "crm.deal.add");
-
- OPI_Инструменты.ДобавитьПоле("fields", СтруктураПолей, "Коллекция", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Удалить сделку
-// Удаляет сделку по ID
-//
-// Примечание:
-// Метод в документации API: [crm.deal.delete](@dev.1c-bitrix.ru/rest_help/crm/cdeals/crm_deal_delete.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDСделки - Число, Строка - ID сделки - deal
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrix24
-Функция УдалитьСделку(Знач URL, Знач IDСделки, Знач Токен = "") Экспорт
-
- Ответ = ОсновноеУправляющееДействие(URL, IDСделки, "crm.deal.delete", Токен);
- Возврат Ответ;
-
-КонецФункции
-
-// Получить сделку
-// Получает сделку по ID
-//
-// Примечание:
-// Метод в документации API: [crm.deal.get](@dev.1c-bitrix.ru/rest_help/crm/cdeals/crm_deal_get.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDСделки - Число,Строка - ID сделки - deal
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrix24
-Функция ПолучитьСделку(Знач URL, Знач IDСделки, Знач Токен = "") Экспорт
-
- Ответ = ОсновноеУправляющееДействие(URL, IDСделки, "crm.deal.get", Токен);
- Возврат Ответ;
-
-КонецФункции
-
-// Получить список сделок
-// Получает список сделок (50 шт. за запрос максимум) с фильтром или без
-//
-// Примечание:
-// Метод в документации API: [crm.deal.list](@dev.1c-bitrix.ru/rest_help/crm/cdeals/crm_deal_list.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// Фильтр - Структура из КлючИЗначение - Структура отбора сделок. См. ПолучитьСтруктуруФильтраСделок - filter
-// Отступ - Число, Строка - Отступ от начала списка для получения сделок > 50 шт. рекурсивно - offset
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrix24
-Функция ПолучитьСписокСделок(Знач URL, Знач Фильтр = "", Знач Отступ = 0, Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "crm.deal.list");
-
- OPI_Инструменты.ДобавитьПоле("filter", Фильтр, "Коллекция", Параметры);
- OPI_Инструменты.ДобавитьПоле("start" , Отступ, "Строка" , Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Изменить сделку
-// Изменяет существующую сделку
-//
-// Примечание:
-// Метод в документации API: [crm.deal.update](@dev.1c-bitrix.ru/rest_help/crm/cdeals/crm_deal_update.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDСделки - Число, Строка - ID сделки - deal
-// СтруктураПолей - Структура Из КлючИЗначение - Структура полей сделки - fields
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrix24
-Функция ИзменитьСделку(Знач URL, Знач IDСделки, Знач СтруктураПолей, Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "crm.deal.update");
-
- OPI_Инструменты.ДобавитьПоле("fields", СтруктураПолей, "Коллекция", Параметры);
- OPI_Инструменты.ДобавитьПоле("id" , IDСделки , "Строка" , Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить структуру сделки
-// Получает структуру с описанием полей для создания сделки
-//
-// Примечание:
-// Метод в документации API: [crm.deal.fields](@dev.1c-bitrix.ru/rest_help/crm/cdeals/crm_deal_fields.php)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrix24
-Функция ПолучитьСтруктуруСделки(Знач URL, Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "crm.deal.fields");
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить структуру фильтра сделок
-// Возвращает структуру полей для фильтрации сделок в методе ПолучитьСписокСделок
-//
-// Параметры:
-// Пустая - Булево - Истина > структура с пустыми значениями, Ложь > в значениях будут описания полей - empty
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - Структура полей
-Функция ПолучитьСтруктуруФильтраСделок(Знач Пустая = Ложь) Экспорт
-
- // Подробнее
- // https://dev.1c-bitrix.ru/rest_help/crm/cdeals/crm_deal_list.php
-
- OPI_ПреобразованиеТипов.ПолучитьБулево(Пустая);
-
- СтруктураФильтра = Новый Структура;
- СтруктураФильтра.Вставить("ID" , "<идентификатор сделки>");
- СтруктураФильтра.Вставить("ASSIGNED_BY_ID" , "<идентификатор ответственного>");
- СтруктураФильтра.Вставить("BEGINDATE" , "<дата начала>");
- СтруктураФильтра.Вставить("CATEGORY_ID" , "<идентификатор направления>");
- СтруктураФильтра.Вставить("CLOSEDATE" , "<дата завершения>");
- СтруктураФильтра.Вставить("COMPANY_ID" , "<идентификатор компании>");
- СтруктураФильтра.Вставить("CONTACT_ID" , "<идентификатор контакта>");
- СтруктураФильтра.Вставить("CREATED_BY_ID" , "<идентификатор автора>");
- СтруктураФильтра.Вставить("CURRENCY_ID" , "<идентификатор валюты>");
- СтруктураФильтра.Вставить("DATE_CREATE" , "<дата создания>");
- СтруктураФильтра.Вставить("DATE_MODIFY" , "<дата изменения>");
- СтруктураФильтра.Вставить("IS_NEW" , "<признак новой сделки (Y|N)>");
- СтруктураФильтра.Вставить("IS_RECURRING" , "<признак шаблона (Y|N)>");
- СтруктураФильтра.Вставить("IS_RETURN_CUSTOMER" , "<признак повторного лида (Y|N)>");
- СтруктураФильтра.Вставить("LEAD_ID" , "<идентификатор привязанного лида>");
- СтруктураФильтра.Вставить("MODIFY_BY_ID" , "<идентификатор автора последнего изменения>");
- СтруктураФильтра.Вставить("MOVED_BY_ID" , "<идентификатор автора перемещения сделки на текущую стадию>");
- СтруктураФильтра.Вставить("MOVED_TIME" , "<дата перемещения сделки на текущую стадию>");
- СтруктураФильтра.Вставить("OPENED" , "<признак доступен для всех (Y|N)>");
- СтруктураФильтра.Вставить("OPPORTUNITY" , "<предполагаемая сумма>");
- СтруктураФильтра.Вставить("PROBABILITY" , "<вероятность>");
- СтруктураФильтра.Вставить("REQUISITE_ID" , "<идентификатор реквизита>");
- СтруктураФильтра.Вставить("STAGE_ID" , "<идентификатор стадии>");
- СтруктураФильтра.Вставить("TITLE" , "<название сделки (можно искать по шаблону [%_])>");
- СтруктураФильтра.Вставить("TYPE_ID" , "<тип сделки>");
-
- Если Пустая Тогда
- Для Каждого Поле Из СтруктураФильтра Цикл
- СтруктураФильтра.Вставить(Поле.Ключ, "");
- КонецЦикла;
- КонецЕсли;
-
- //@skip-check constructor-function-return-section
- Возврат СтруктураФильтра;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область РаботаСКалендарями
-
-// Получить список календарей
-// Получает список календарей указанного владельца
-//
-// Примечание:
-// Метод в документации API: [calendar.section.get](@apidocs.bitrix24.ru/api-reference/calendar/calendar-section-get.html)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDВладельца - Строка, Число - ID владельца календаря - owner
-// Тип - Строка - Тип календаря: user, group, company_calendar, location и др. - type
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrix24
-Функция ПолучитьСписокКалендарей(Знач URL, Знач IDВладельца, Знач Тип, Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "calendar.section.get");
-
- OPI_Инструменты.ДобавитьПоле("type" , Тип , "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("ownerId", IDВладельца, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Создать календарь
-// Создает новый календарь
-//
-// Примечание:
-// Метод в документации API: [calendar.section.add](@apidocs.bitrix24.ru/api-reference/calendar/calendar-section-add.html)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// СтруктураПолей - Структура Из КлючИЗначение - Структура полей календаря. См. ПолучитьСтруктуруКалендаря - fields
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrix24
-Функция СоздатьКалендарь(Знач URL, Знач СтруктураПолей, Знач Токен = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(СтруктураПолей);
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "calendar.section.add");
-
- Для Каждого Поле Из СтруктураПолей Цикл
- Параметры.Вставить(Поле.Ключ, Поле.Значение);
- КонецЦикла;
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Изменить календарь
-// Изменяет параметры календаря
-//
-// Примечание:
-// Метод в документации API: [calendar.section.update](@apidocs.bitrix24.ru/api-reference/calendar/calendar-section-update.html)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDКалендаря - Строка, Число - ID календаря - calendar
-// СтруктураПолей - Структура Из КлючИЗначение - Структура полей сделки. См. ПолучитьСтруктуруСделки - fields
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrix24
-Функция ИзменитьКалендарь(Знач URL, Знач IDКалендаря, Знач СтруктураПолей, Знач Токен = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(СтруктураПолей);
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "calendar.section.update");
-
- OPI_Инструменты.ДобавитьПоле("id", IDКалендаря, "Строка", Параметры);
-
- Для Каждого Поле Из СтруктураПолей Цикл
- Параметры.Вставить(Поле.Ключ, Поле.Значение);
- КонецЦикла;
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Удалить календарь
-// Удаляет существующий календарь
-//
-// Примечание:
-// Метод в документации API: [calendar.section.delete](@apidocs.bitrix24.ru/api-reference/calendar/calendar-section-delete.html)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDКалендаря - Строка, Число - ID календаря - calendar
-// IDВладельца - Строка, Число - ID владельца календаря - owner
-// Тип - Строка - Тип календаря: user, group - type
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrix24
-Функция УдалитьКалендарь(Знач URL, Знач IDКалендаря, Знач IDВладельца, Знач Тип, Знач Токен = "") Экспорт
-
- Строка_ = "Строка";
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "calendar.section.delete");
-
- OPI_Инструменты.ДобавитьПоле("type" , Тип , Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("ownerId", IDВладельца, Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("id" , IDКалендаря, Строка_, Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить занятость пользователей
-// Получает массив событий пользователей в заданном интервале
-//
-// Примечание:
-// Метод в документации API: [calendar.accessibility.get](@apidocs.bitrix24.ru/api-reference/calendar/calendar-accessibility-get.html)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// Пользователи - Число, Массив Из Число - ID пользователей или одного пользователя - users
-// ДатаНачала - Дата - Дата начала периода - from
-// ДатаОкончания - Дата - Дата окончания периода - to
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrix24
-Функция ПолучитьЗанятостьПользователей(Знач URL, Знач Пользователи, Знач ДатаНачала, Знач ДатаОкончания, Знач Токен = "") Экспорт
-
- Строка_ = "Строка";
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "calendar.accessibility.get");
-
- OPI_Инструменты.ДобавитьПоле("users", Пользователи, "Массив", Параметры);
-
- OPI_Инструменты.ДобавитьПоле("from" , Формат(ДатаНачала , "ДФ=yyyy-MM-dd"), Строка_ , Параметры);
- OPI_Инструменты.ДобавитьПоле("to" , Формат(ДатаОкончания, "ДФ=yyyy-MM-dd"), Строка_ , Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить пользовательские настройки календаря
-// Получает пользовательские настройки календаря текущего пользователя
-//
-// Примечание:
-// Метод в документации API: [calendar.user.settings.get](@apidocs.bitrix24.ru/api-reference/calendar/calendar-user-settings-get.html)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrix24
-Функция ПолучитьПользовательскиеНастройкиКалендаря(Знач URL, Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "calendar.user.settings.get");
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Установить пользовательские настройки календаря
-// Устанавливает новые пользовательские настройки календаря
-//
-// Примечание:
-// Метод в документации API: [calendar.user.settings.set](@apidocs.bitrix24.ru/api-reference/calendar/calendar-user-settings-set.html)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// СтруктураНастроек - Структура Из КлючИЗначение - Структура настроек. См. ПолучитьСтруктуруПользовательскихНастроекКаледнаря - settings
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrix24
-Функция УстановитьПользовательскиеНастройкиКалендаря(Знач URL, Знач СтруктураНастроек, Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "calendar.user.settings.set");
-
- OPI_Инструменты.ДобавитьПоле("settings", СтруктураНастроек, "Коллекция", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить структуру настроек календаря
-// Получает структуру стандартных настроек календаря
-//
-// Примечание:
-// Метод в документации API: [calendar.settings.get](@apidocs.bitrix24.ru/api-reference/calendar/calendar-settings-get.html)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrix24
-Функция ПолучитьСтруктуруНастроекКалендаря(Знач URL, Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "calendar.settings.get");
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить структуру пользовательских настроек каледнаря
-// Получает пустую структуру для установки пользовательских настроек календарей
-//
-// Параметры:
-// Пустая - Булево - Истина > структура с пустыми значениями, Ложь > в значениях будут описания полей - empty
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - Структура полей
-Функция ПолучитьСтруктуруПользовательскихНастроекКаледнаря(Знач Пустая = Ложь) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьБулево(Пустая);
-
- СтруктураНастроек = Новый Структура;
-
- СтруктураНастроек.Вставить("view" , "<стандартное представление: day, week, month, list>");
- СтруктураНастроек.Вставить("meetSection" , "<календарь для приглашений>");
- СтруктураНастроек.Вставить("crmSection" , "<календарь для CRM>");
- СтруктураНастроек.Вставить("showDeclined" , "<показывать отклоненные события>");
- СтруктураНастроек.Вставить("denyBusyInvitation", "<запрещать приглашать в событие, если время занято>");
- СтруктураНастроек.Вставить("collapseOffHours" , "<скрывать нерабочее время: Y,N>");
- СтруктураНастроек.Вставить("showWeekNumbers" , "<показывать номер недель: Y,N>");
- СтруктураНастроек.Вставить("showTasks" , "<отображать задачи: Y,N>");
- СтруктураНастроек.Вставить("syncTasks" , "<синхронизировать календарь задач: Y,N>");
- СтруктураНастроек.Вставить("showCompletedTasks", "<отображать завершенные задачи: Y,N>");
- СтруктураНастроек.Вставить("lastUsedSection" , "<календарь событий по умолчанию>");
- СтруктураНастроек.Вставить("sendFromEmail" , "");
- СтруктураНастроек.Вставить("defaultSections" , "<настройки предустановленных календарей>");
- СтруктураНастроек.Вставить("syncPeriodPast" , "<количество месяцев для синхронизации в прошлом периоде>");
- СтруктураНастроек.Вставить("syncPeriodFuture" , "<количество месяцев для синхронизации в будущем периоде>");
-
- СтруктураНапоминаний = Новый Структура;
-
- МассивНастроекНапоминаний = Новый Массив;
- НастройкаНапоминания = Новый Структура;
- НастройкаНапоминания.Вставить("type" , "<временной тип напоминания: min, hour, day>");
- НастройкаНапоминания.Вставить("count", "<числовое значение временного промежутка>");
- МассивНастроекНапоминаний.Добавить(НастройкаНапоминания);
-
- СтруктураНапоминаний.Вставить("fullDay" , МассивНастроекНапоминаний);
- СтруктураНапоминаний.Вставить("withTime", МассивНастроекНапоминаний);
-
- СтруктураНастроек.Вставить("defaultReminders", СтруктураНапоминаний);
-
- Если Пустая Тогда
- СтруктураНастроек = OPI_Инструменты.ОчиститьКоллекциюРекурсивно(СтруктураНастроек);
- КонецЕсли;
-
- //@skip-check constructor-function-return-section
- Возврат СтруктураНастроек;
-
-КонецФункции
-
-// Получить структуру календаря
-// Возвращает структуру полей описания календаря
-//
-// Параметры:
-// Пустая - Булево - Истина > структура с пустыми значениями, Ложь > в значениях будут описания полей - empty
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - Структура полей
-Функция ПолучитьСтруктуруКалендаря(Знач Пустая = Ложь) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьБулево(Пустая);
-
- СтруктураКалендаря = Новый Структура;
-
- СтруктураКалендаря.Вставить("type" , "<тип календаря: user (пользователя), group (группы)>");
- СтруктураКалендаря.Вставить("ownerId" , "<идентификатор владельца>");
- СтруктураКалендаря.Вставить("name" , "<название календаря>");
- СтруктураКалендаря.Вставить("description", "<описание календаря>");
- СтруктураКалендаря.Вставить("color" , "<цвет календаря>");
- СтруктураКалендаря.Вставить("text_color" , "<цвет текста календаря>");
-
- СтруктураЭкспорта = Новый Структура;
- СтруктураЭкспорта.Вставить("ALLOW", "<булево разрешения экспорта календаря>");
- СтруктураЭкспорта.Вставить("SET" , "<период экспорта: all, 3_9 (пример: 3 месяца до и 9 после)>");
-
- СтруктураКалендаря.Вставить("export", СтруктураЭкспорта);
-
- Если Пустая Тогда
- СтруктураКалендаря = OPI_Инструменты.ОчиститьКоллекциюРекурсивно(СтруктураКалендаря);
- КонецЕсли;
-
- //@skip-check constructor-function-return-section
- Возврат СтруктураКалендаря;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область РаботаССобытиямиКалендарей
-
-// Создать событие календаря
-// Создает новое событие календаря
-//
-// Примечание:
-// Метод в документации API: [calendar.event.add](@apidocs.bitrix24.ru/api-reference/calendar/calendar-event/calendar-event-add.html)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// ОписаниеСобытия - Структура Из КлючИЗначение - Описание события. См. ПолучитьСтруктуруСобытияКалендаря - fields
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrix24
-Функция СоздатьСобытиеКалендаря(Знач URL, Знач ОписаниеСобытия, Знач Токен = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(ОписаниеСобытия);
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "calendar.event.add");
-
- Для Каждого Поле Из ОписаниеСобытия Цикл
- Параметры.Вставить(Поле.Ключ, Поле.Значение);
- КонецЦикла;
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Изменить событие календаря
-// Изменяет данные события календаря
-//
-// Примечание:
-// Метод в документации API: [calendar.event.update](@apidocs.bitrix24.ru/api-reference/calendar/calendar-event/calendar-event-update.html)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDСобытия - Число - ID события календаря - event
-// ОписаниеСобытия - Структура Из КлючИЗначение - Описание события. См. ПолучитьСтруктуруСобытияКалендаря - fields
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrix24
-Функция ИзменитьСобытиеКалендаря(Знач URL, Знач IDСобытия, Знач ОписаниеСобытия, Знач Токен = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(ОписаниеСобытия);
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "calendar.event.update");
- OPI_Инструменты.ДобавитьПоле("id", IDСобытия, "Строка", Параметры);
-
- Для Каждого Поле Из ОписаниеСобытия Цикл
- Параметры.Вставить(Поле.Ключ, Поле.Значение);
- КонецЦикла;
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить событие календаря
-// Получает событие календаря по ID
-//
-// Примечание:
-// Метод в документации API: [calendar.event.getbyid](@apidocs.bitrix24.ru/api-reference/calendar/calendar-event/calendar-event-get-by-id.html)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDСобытия - Число - ID события для получения - event
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrix24
-Функция ПолучитьСобытиеКалендаря(Знач URL, Знач IDСобытия, Знач Токен = "") Экспорт
-
- Ответ = ОсновноеУправляющееДействие(URL, IDСобытия, "calendar.event.getbyid", Токен);
- Возврат Ответ;
-
-КонецФункции
-
-// Получить события календарей
-// Получает события календарей с фильтрами или без
-//
-// Примечание:
-// Метод в документации API: [calendar.event.get](@apidocs.bitrix24.ru/api-reference/calendar/calendar-event/calendar-event-get.html)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDВладельца - Строка, Число - ID владельца календаря - owner
-// Тип - Строка - Тип календаря: user, group, company_calendar - type
-// Фильтр - Структура Из КлючИЗначение - Фильтр событий. См. ПолучитьСтруктуруФильтраСобытийКалендарей - filter
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrix24
-Функция ПолучитьСобытияКалендарей(Знач URL, Знач IDВладельца, Знач Тип, Знач Фильтр = "", Знач Токен = "") Экспорт
-
- Строка_ = "Строка";
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "calendar.event.get");
-
- OPI_Инструменты.ДобавитьПоле("type" , Тип , Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("ownerId", IDВладельца, Строка_, Параметры);
-
- Если ЗначениеЗаполнено(Фильтр) Тогда
-
- OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(Фильтр);
-
- Для Каждого Элемент Из Фильтр Цикл
-
- ТекущийКлюч = Строка(Элемент.Ключ);
- ТекущееЗначение = Элемент.Значение;
-
- Если ТекущийКлюч = "section" Тогда
-
- OPI_ПреобразованиеТипов.ПолучитьМассив(ТекущееЗначение);
-
- ИначеЕсли ТекущийКлюч = "from" Или ТекущийКлюч = "to" Тогда
-
- OPI_ПреобразованиеТипов.ПолучитьДату(ТекущееЗначение);
- ТекущееЗначение = Формат(ТекущееЗначение, "ДФ=yyyy-MM-dd");
-
- Иначе
- Продолжить;
- КонецЕсли;
-
- Параметры.Вставить(ТекущийКлюч, ТекущееЗначение);
-
- КонецЦикла;
-
- КонецЕсли;
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Удалить событие календаря
-// Удаляет событие из календаря
-//
-// Примечание:
-// Метод в документации API: [calendar.event.delete](@apidocs.bitrix24.ru/api-reference/calendar/calendar-event/calendar-event-delete.html)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDСобытия - Число - ID события для удаления - event
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrix24
-Функция УдалитьСобытиеКалендаря(Знач URL, Знач IDСобытия, Знач Токен = "") Экспорт
-
- Ответ = ОсновноеУправляющееДействие(URL, IDСобытия, "calendar.event.delete", Токен);
- Возврат Ответ;
-
-КонецФункции
-
-// Получить статус участия пользователя
-// Получает статус участия в событии для текущего пользователя
-//
-// Примечание:
-// Метод в документации API: [calendar.meeting.status.get](@apidocs.bitrix24.ru/api-reference/calendar/calendar-event/calendar-meeting-status-get.html)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDСобытия - Число - ID события календаря - event
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrix24
-Функция ПолучитьСтатусУчастияПользователя(Знач URL, Знач IDСобытия, Знач Токен = "") Экспорт
-
- Ответ = ОсновноеУправляющееДействие(URL, IDСобытия, "calendar.meeting.status.get", Токен, "eventId");
- Возврат Ответ;
-
-КонецФункции
-
-// Установить статус участия пользователя
-// Устанавливает статус участия в событии для текущего пользователя
-//
-// Примечание:
-// Метод в документации API: [calendar.meeting.status.set](@apidocs.bitrix24.ru/api-reference/calendar/calendar-event/calendar-meeting-status-set.html)
-//
-// Параметры:
-// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
-// IDСобытия - Число - ID события календаря - event
-// Статус - Строка - Статус участия: Y (согласен), N (отказался), Q (не ответил) - status
-// Токен - Строка - Токен авторизации, если используется не вебхук - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrix24
-Функция УстановитьСтатусУчастияПользователя(Знач URL, Знач IDСобытия, Знач Статус, Знач Токен = "") Экспорт
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "calendar.meeting.status.set");
-
- OPI_Инструменты.ДобавитьПоле("eventId", IDСобытия, "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("status" , Статус , "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить структуру события календаря
-// Возвращает структуру полей события календаря
-//
-// Параметры:
-// Пустая - Булево - Истина > структура с пустыми значениями, Ложь > в значениях будут описания полей - empty
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - Структура полей
-Функция ПолучитьСтруктуруСобытияКалендаря(Знач Пустая = Ложь) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьБулево(Пустая);
-
- СтруктураСобытия = Новый Структура;
-
- СтруктураСобытия.Вставить("type" , "<тип календаря: user, group, company_calendar>");
- СтруктураСобытия.Вставить("ownerId" , "<идентификатор владельца календаря>");
- СтруктураСобытия.Вставить("from" , "<дата и время начала события (строкой)>");
- СтруктураСобытия.Вставить("to" , "<дата окончания события (строкой)>");
- СтруктураСобытия.Вставить("from_ts" , "<дата и время в формате timestamp (вместо from)>");
- СтруктураСобытия.Вставить("to_ts" , "<дата и время в формате timestamp (вместо to)>");
- СтруктураСобытия.Вставить("section" , "<идентификатор календаря>");
- СтруктураСобытия.Вставить("name" , "<название события>");
- СтруктураСобытия.Вставить("skip_time" , "<передать значение даты без времени в параметрах from и to: Y,N>");
- СтруктураСобытия.Вставить("timezone_from", "<часовой пояс начала (по умолчанию - ч.п. пользователя>");
- СтруктураСобытия.Вставить("timezone_to" , "<часовой пояс окончания (по умолчанию - ч.п. пользователя>");
- СтруктураСобытия.Вставить("description" , "<описание события>");
- СтруктураСобытия.Вставить("color" , "<цвет фона события. Cимвол # - в формате unicode как %23>");
- СтруктураСобытия.Вставить("text_color" , "<цвет текста события. Cимвол # - в формате unicode как %23>");
- СтруктураСобытия.Вставить("accessibility", "<доступность на время события: busy, absent, quest, free>");
- СтруктураСобытия.Вставить("importance" , "<важность: high, normal, low>");
- СтруктураСобытия.Вставить("private_event", "<частное событие: Y,N>");
-
- СтруктураПовторяемости = Новый Структура;
- СтруктураПовторяемости.Вставить("FREQ" , "<частота повторения: DAILY, WEEKLY, MONTHLY, YEARLY>");
- СтруктураПовторяемости.Вставить("COUNT" , "<количество повторений>");
- СтруктураПовторяемости.Вставить("INTERVAL", "<интервал между повторениями>");
-
- МассивДней = Новый Массив;
- МассивДней.Добавить("<дни недели: SU, MO, TU, WE, TH, FR, SA>");
-
- СтруктураПовторяемости.Вставить("BYDAY" , МассивДней);
- СтруктураПовторяемости.Вставить("UNTIL" , "<дата окончания повторений>");
-
- СтруктураСобытия.Вставить("rrule" , СтруктураПовторяемости);
- СтруктураСобытия.Вставить("is_meeting", "<признак встречи с участниками: Y,N>");
- СтруктураСобытия.Вставить("location" , "<место проведения>");
-
- МассивНапоминаний = Новый Массив;
-
- СтруктураНапоминания = Новый Структура;
- СтруктураНапоминания.Вставить("type" , "<временной тип: min, hour, day>");
- СтруктураНапоминания.Вставить("count", "<числовое значение временного промежутка>");
-
- МассивНапоминаний.Добавить(СтруктураНапоминания);
-
- СтруктураСобытия.Вставить("remind" , МассивНапоминаний);
- СтруктураСобытия.Вставить("attendees", "<массив идентификаторов участников события. Если is_meeting = Y>");
- СтруктураСобытия.Вставить("host" , "<идентификатор организатора события. Если is_meeting = Y>");
-
- СтруктураВстречи = Новый Структура;
- СтруктураВстречи.Вставить("notify" , "<флаг оповещения о подтверждении или отказе участников>");
- СтруктураВстречи.Вставить("reinvite" , "<флаг запроса повторного подтверждения участия при редактировании события>");
- СтруктураВстречи.Вставить("allow_invite", "<флаг разрешения участникам приглашать других в событие>");
- СтруктураВстречи.Вставить("hide_guests" , "<флаг скрытия списка участников>");
-
- СтруктураСобытия.Вставить("meeting", СтруктураВстречи);
-
- Если Пустая Тогда
- СтруктураСобытия = OPI_Инструменты.ОчиститьКоллекциюРекурсивно(СтруктураСобытия);
- КонецЕсли;
-
- //@skip-check constructor-function-return-section
- Возврат СтруктураСобытия;
-
-КонецФункции
-
-// Получить структуру фильтра событий календарей
-// Получает структуру фильтра для функции ПолучитьСобытияКалендарей
-//
-// Параметры:
-// Пустая - Булево - Истина > структура с пустыми значениями, Ложь > в значениях будут описания полей - empty
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - Структура полей
-Функция ПолучитьСтруктуруФильтраСобытийКалендарей(Знач Пустая = Ложь) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьБулево(Пустая);
-
- СтруктураФильтра = Новый Структура;
-
- СтруктураФильтра.Вставить("from" , "<дата начала выборки. 3 месяца до текущепо умолчанию>");
- СтруктураФильтра.Вставить("to" , "<дата окончания выборки. 3 месяца после текущей по умолчанию>");
- СтруктураФильтра.Вставить("section", "<массив идентификаторов календарей>");
-
- Если Пустая Тогда
- СтруктураФильтра = OPI_Инструменты.ОчиститьКоллекциюРекурсивно(СтруктураФильтра);
- КонецЕсли;
-
- //@skip-check constructor-function-return-section
- Возврат СтруктураФильтра;
-
-КонецФункции
-
-#КонецОбласти
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-Процедура ПривестиБулево(Значение)
-
- OPI_ПреобразованиеТипов.ПолучитьБулево(Значение);
- Значение = ?(Значение, "Y", "N");
-
-КонецПроцедуры
-
-Функция НормализоватьАвторизацию(URL, Знач Токен, Знач Метод = "")
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(URL);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
-
- Параметры = Новый Структура;
- ЭтоАвторизацияТокеном = ЗначениеЗаполнено(Токен);
-
- МассивЛишнихЭлементов = Новый Массив;
- МассивЛишнихЭлементов.Добавить("https://");
- МассивЛишнихЭлементов.Добавить("http://");
- МассивЛишнихЭлементов.Добавить("www.");
-
- Для Каждого УдаляемыйЭлемент Из МассивЛишнихЭлементов Цикл
- URL = СтрЗаменить(URL, УдаляемыйЭлемент, "");
- КонецЦикла;
-
- URL = СокрЛП(URL);
-
- Если Не СтрЗаканчиваетсяНа(URL, "/") Тогда
- URL = URL + "/";
- КонецЕсли;
-
- Если ЭтоАвторизацияТокеном Тогда
-
- Если Не СтрЗаканчиваетсяНа(URL, "rest/") Тогда
- URL = URL + "rest/";
- КонецЕсли;
-
- Параметры.Вставить("auth", Токен);
-
- КонецЕсли;
-
- Если ЗначениеЗаполнено(Метод) Тогда
- URL = URL + СокрЛП(Метод);
- КонецЕсли;
-
- Возврат Параметры;
-
-КонецФункции
-
-Функция НормализоватьФайлы(Знач Файлы)
-
- НормализованныеФайлы = Новый Массив;
-
- Если ТипЗнч(Файлы) = Тип("Соответствие") Тогда
-
- Для Каждого Файл Из Файлы Цикл
-
- ТекущийМассив = Новый Массив;
- ТекущийФайл = Файл.Значение;
- ТекущееИмя = Файл.Ключ;
-
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(ТекущийФайл);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(ТекущееИмя);
-
- ТекущийМассив.Добавить(ТекущееИмя);
- ТекущийМассив.Добавить(Base64Строка(ТекущийФайл));
-
- НормализованныеФайлы.Добавить(ТекущийМассив);
-
- КонецЦикла;
-
- КонецЕсли;
-
- Возврат НормализованныеФайлы;
-
-КонецФункции
-
-Функция ОсновноеУправляющееДействие(Знач URL, Знач IDОбъекта, Знач Метод, Знач Токен = "", Знач ПолеID = "id")
-
- Параметры = НормализоватьАвторизацию(URL, Токен, Метод);
- OPI_Инструменты.ДобавитьПоле(ПолеID, IDОбъекта, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-Функция УправлениеЭлементомЧеклиста(Знач URL, Знач IDЗадачи, Знач IDЭлемента, Знач Метод, Знач Токен = "")
-
- Параметры = НормализоватьАвторизацию(URL, Токен, Метод);
-
- OPI_Инструменты.ДобавитьПоле("TASKID", IDЗадачи , "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("ITEMID", IDЭлемента, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-Функция УправлениеЗвукомЧата(Знач URL, Знач IDЧата, Знач Выключить, Знач Токен = "")
-
- ПривестиБулево(Выключить);
-
- Параметры = НормализоватьАвторизацию(URL, Токен, "im.chat.mute");
-
- OPI_Инструменты.ДобавитьПоле("CHAT_ID", IDЧата , "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("MUTE" , Выключить, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-#КонецОбласти
diff --git a/XML/CommonModules/OPI_BuildHash.xml b/XML/CommonModules/OPI_BuildHash.xml
deleted file mode 100644
index dc486ff75f..0000000000
--- a/XML/CommonModules/OPI_BuildHash.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- OPI_BuildHash
-
-
- ru
- Build hash (ОПИ
-
-
- Служебный модуль, помогающий определить актуальность проекта исходному коду
- false
- false
- true
- true
- true
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git a/XML/CommonModules/OPI_BuildHash/Ext/Module.bsl b/XML/CommonModules/OPI_BuildHash/Ext/Module.bsl
deleted file mode 100644
index 1bd5059e95..0000000000
--- a/XML/CommonModules/OPI_BuildHash/Ext/Module.bsl
+++ /dev/null
@@ -1,35 +0,0 @@
-// OneScript: ./OInt/tools/Modules/internal/Modules/internal/Modules/OPI_BuildHash.os
-
-// MIT License
-
-// Copyright (c) 2023-2025 Anton Tsitavets
-
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-
-// The above copyright notice and this permission notice shall be included in all
-// copies or substantial portions of the Software.
-
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-// SOFTWARE.
-
-// https://github.com/Bayselonarrend/OpenIntegrations
-
-//@skip-check module-structure-method-in-regions
-
-Function GetHashSum() Export
-
- LastBuildHash = "1BA99EE51AF549BDAC8002EAA5C26D02BC5B240791BE92424CCB3B207E5919F4";
-
- Return LastBuildHash;
-
-EndFunction
diff --git a/XML/CommonModules/OPI_CDEK.xml b/XML/CommonModules/OPI_CDEK.xml
deleted file mode 100644
index c1da7a0b42..0000000000
--- a/XML/CommonModules/OPI_CDEK.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- OPI_CDEK
-
-
- ru
- CDEK (ОПИ)
-
-
- Модуль для работы со СДЭК из набора ОПИ
- false
- false
- true
- true
- true
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git a/XML/CommonModules/OPI_CDEK/Ext/Module.bsl b/XML/CommonModules/OPI_CDEK/Ext/Module.bsl
deleted file mode 100644
index f95779a224..0000000000
--- a/XML/CommonModules/OPI_CDEK/Ext/Module.bsl
+++ /dev/null
@@ -1,1333 +0,0 @@
-// OneScript: ./OInt/core/Modules/OPI_CDEK.os
-// Lib: CDEK
-// CLI: cdek
-// Keywords: cdek
-
-// MIT License
-
-// Copyright (c) 2023-2025 Anton Tsitavets
-
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-
-// The above copyright notice and this permission notice shall be included in all
-// copies or substantial portions of the Software.
-
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-// SOFTWARE.
-
-// https://github.com/Bayselonarrend/OpenIntegrations
-
-// BSLLS:Typo-off
-// BSLLS:LatinAndCyrillicSymbolInWord-off
-// BSLLS:IncorrectLineBreak-off
-// BSLLS:NumberOfOptionalParams-off
-// BSLLS:UsingServiceTag-off
-// BSLLS:LineLength-off
-// BSLLS:UsingSynchronousCalls-off
-// BSLLS:MagicNumber-off
-
-//@skip-check module-structure-top-region
-//@skip-check module-structure-method-in-regions
-//@skip-check wrong-string-literal-content
-//@skip-check method-too-many-params
-
-#Область ПрограммныйИнтерфейс
-
-#Область ОбщиеМетоды
-
-// Получить токен
-// Получает токен на основе идентификатора аккаунта и пароля
-//
-// Примечание:
-// Метод в документации API: [Авторизация клиентов](@api-docs.cdek.ru/29923918.html)
-//
-// Параметры:
-// Аккаунт - Строка - Идентификатор клиента (Account) - account
-// Пароль - Строка - Секретный ключ (Password) - pass
-// ТестовыйAPI - Булево - Флаг использования API для тестовых запросов - testapi
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от CDEK
-Функция ПолучитьТокен(Знач Аккаунт, Знач Пароль, ТестовыйAPI = Ложь) Экспорт
-
- Строка_ = "Строка";
-
- URL = СформироватьURL("/oauth/token", ТестовыйAPI);
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("grant_type" , "client_credentials", Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("client_id" , Аккаунт , Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("client_secret", Пароль , Строка_, Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, , Ложь);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить чеки на дату
-// Получает информацию о чеках за указанную дату
-//
-// Примечание:
-// Метод в документации API: [Информация о чеке](@api-docs.cdek.ru/68257388.html)
-//
-// Параметры:
-// Токен - Строка - Токен авторизации - token
-// ДатаПолучения - Дата - Дата, за которую необходимо получить данные - date
-// ТестовыйAPI - Булево - Флаг использования API для тестовых запросов - testapi
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от CDEK
-Функция ПолучитьЧекиНаДату(Знач Токен, Знач ДатаПолучения, Знач ТестовыйAPI = Ложь) Экспорт
-
- URL = СформироватьURL("/check", ТестовыйAPI);
- Заголовки = СоздатьЗаголовкиЗапроса(Токен);
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("date", ДатаПолучения, "ДатаБезВремени", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить реестры платежей на дату
-// Полуает реестры наложенных платежей, по которым клиенту был переведен платеж
-//
-// Примечание:
-// Метод в документации API: [Информация о реестрах наложенных платежей](@api-docs.cdek.ru/107254706.html)
-//
-// Параметры:
-// Токен - Строка - Токен авторизации - token
-// ДатаПолучения - Дата - Дата, за которую необходимо получить данные - date
-// ТестовыйAPI - Булево - Флаг использования API для тестовых запросов - testapi
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от CDEK
-Функция ПолучитьРеестрыПлатежейНаДату(Знач Токен, Знач ДатаПолучения, Знач ТестовыйAPI = Ложь) Экспорт
-
- URL = СформироватьURL("/registries", ТестовыйAPI);
- Заголовки = СоздатьЗаголовкиЗапроса(Токен);
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("date", ДатаПолучения, "ДатаБезВремени", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить переводы платежей на дату
-// Получает информацию о заказах, по которым был переведен наложенны платеж интернет магазину
-//
-// Примечание:
-// Метод в документации API: [Информация о переводе наложенного платежа](@api-docs.cdek.ru/71059888.html)
-//
-// Параметры:
-// Токен - Строка - Токен авторизации - token
-// ДатаПолучения - Дата - Дата, за которую необходимо получить данные - date
-// ТестовыйAPI - Булево - Флаг использования API для тестовых запросов - testapi
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от CDEK
-Функция ПолучитьПереводыПлатежейНаДату(Знач Токен, Знач ДатаПолучения, Знач ТестовыйAPI = Ложь) Экспорт
-
- URL = СформироватьURL("/payment", ТестовыйAPI);
- Заголовки = СоздатьЗаголовкиЗапроса(Токен);
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("date", ДатаПолучения, "ДатаБезВремени", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить список офисов
-// Получает список офисов с фильтром или без
-//
-// Примечание:
-// Метод в документации API: [Список офисов](@api-docs.cdek.ru/36982648.html)
-//
-// Параметры:
-// Токен - Строка - Токен авторизации - token
-// Фильтр - Структура Из КлючИЗначение - Фильтр офисов. См. ПолучитьОписаниеФильтраОфисов - filter
-// ТестовыйAPI - Булево - Флаг использования API для тестовых запросов - testapi
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от CDEK
-Функция ПолучитьСписокОфисов(Знач Токен, Знач Фильтр = "", Знач ТестовыйAPI = Ложь) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьКоллекцию(Фильтр);
-
- URL = СформироватьURL("/deliverypoints", ТестовыйAPI);
- Заголовки = СоздатьЗаголовкиЗапроса(Токен);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, Фильтр, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить список регионов
-// Получает список доступных регионов
-//
-// Примечание:
-// Метод в документации API: [Список регионов](@api-docs.cdek.ru/33829418.html)
-//
-// Параметры:
-// Токен - Строка - Токен авторизации - token
-// Страны - Массив Из Строка - Массив кодов стран в формате ISO_31661_alpha2 для отбора - countries
-// Страница - Число - Страница выборки результата - page
-// Язык - Строка - Язык: rus, eng, zho - lang
-// ТестовыйAPI - Булево - Флаг использования API для тестовых запросов - testapi
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от CDEK
-Функция ПолучитьСписокРегионов(Знач Токен
- , Знач Страны = Неопределено
- , Знач Страница = 0
- , Знач Язык = "rus"
- , Знач ТестовыйAPI = Ложь) Экспорт
-
- URL = СформироватьURL("/location/regions", ТестовыйAPI);
- Заголовки = СоздатьЗаголовкиЗапроса(Токен);
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("country_codes", Страны , "Массив", Параметры);
- OPI_Инструменты.ДобавитьПоле("page" , Страница, "Число" , Параметры);
- OPI_Инструменты.ДобавитьПоле("lang" , Язык , "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить описание фильтра офисов
-// Получает пустой макет фильтра получения списка офисов в функции ПолучитьСписокОфисов
-//
-// Примечание:
-// Обязательность реквизитов может зависить от типа зказа или вложенности. Обязательно ознакомьтесь с документацией CDEK
-// Описания полей в документации: [Список офисов](@api-docs.cdek.ru/36982648.html)
-//
-// Параметры:
-// Пустая - Булево - Истина > структура с пустыми значениями, Ложь > в значениях будут описания полей - empty
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - Структура полей
-Функция ПолучитьОписаниеФильтраОфисов(Знач Пустая = Ложь) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьБулево(Пустая);
-
- СтруктураФильтра = Новый Структура;
- СтруктураФильтра.Вставить("postal_code" , "<Почтовый индекс города, для которого необходим список офисов>");
- СтруктураФильтра.Вставить("city_code" , "<Код населенного пункта СДЭК>");
- СтруктураФильтра.Вставить("type" , "<Тип офиса: PVZ, POSTAMAT, ALL>");
- СтруктураФильтра.Вставить("country_code" , "<Код страны в формате ISO_3166-1_alpha-2>");
- СтруктураФильтра.Вставить("region_code" , "<Код региона по базе СДЭК>");
- СтруктураФильтра.Вставить("have_cashless" , "<Наличие терминала оплаты>");
- СтруктураФильтра.Вставить("have_cash" , "<Есть прием наличных>");
- СтруктураФильтра.Вставить("allowed_cod" , "<Разрешен наложенный платеж>");
- СтруктураФильтра.Вставить("is_dressing_room", "<Наличие примерочной>");
- СтруктураФильтра.Вставить("weight_max" , "<Максимальный вес в кг, который может принять офис>");
- СтруктураФильтра.Вставить("weight_min" , "<Минимальный вес в кг, который принимает офис>");
- СтруктураФильтра.Вставить("lang" , "<Локализация офиса>");
- СтруктураФильтра.Вставить("take_only" , "<Является ли офис только пунктом выдачи>");
- СтруктураФильтра.Вставить("is_handout" , "<Является пунктом выдачи>");
- СтруктураФильтра.Вставить("is_reception" , "<Есть ли в офисе приём заказов>");
- СтруктураФильтра.Вставить("fias_guid" , "<Код города ФИАС>");
- СтруктураФильтра.Вставить("code" , "<Код ПВЗ>");
- СтруктураФильтра.Вставить("is_ltl" , "<Работает ли офис с LTL>");
- СтруктураФильтра.Вставить("fulfillment" , "<Работает ли офис с Фулфилмент.Приход>");
- СтруктураФильтра.Вставить("size" , "<Ограничение выборки результата>");
- СтруктураФильтра.Вставить("page" , "<Номер страницы выборки результата>");
-
- Если Пустая Тогда
- СтруктураФильтра = OPI_Инструменты.ОчиститьКоллекциюРекурсивно(СтруктураФильтра);
- КонецЕсли;
-
- //@skip-check constructor-function-return-section
- Возврат СтруктураФильтра;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область РаботаСЗаказми
-
-// Создать заказ
-// Создает заказ по описанию полей
-//
-// Примечание:
-// Метод в документации API: [Регистрация заказа](@api-docs.cdek.ru/29923926.html)
-//
-// Параметры:
-// Токен - Строка - Токен авторизации - token
-// ОписаниеЗаказа - Структура Из КлючИЗначение - Набор полей заказа. См. ПолучитьОписаниеЗаказа - order
-// ИнтернетМагазин - Булево - Признак типа заказа Интернет магазин - ostore
-// ТестовыйAPI - Булево - Флаг использования API для тестовых запросов - testapi
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от CDEK
-Функция СоздатьЗаказ(Знач Токен, Знач ОписаниеЗаказа, Знач ИнтернетМагазин = Ложь, Знач ТестовыйAPI = Ложь) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьКоллекцию(ОписаниеЗаказа);
- OPI_ПреобразованиеТипов.ПолучитьБулево(ИнтернетМагазин);
-
- URL = СформироватьURL("/orders", ТестовыйAPI);
- Заголовки = СоздатьЗаголовкиЗапроса(Токен);
-
- OPI_Инструменты.ДобавитьПоле("type", ?(ИнтернетМагазин, 1, 2), "Число", ОписаниеЗаказа);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, ОписаниеЗаказа, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Изменить заказ
-// Изменяет значения полей выбранного заказа
-//
-// Примечание:
-// Метод в документации API: [Изменение заказа](@api-docs.cdek.ru/36981178.html)
-//
-// Параметры:
-// Токен - Строка - Токен авторизации - token
-// UUID - Строка - UUID заказа для изменение - uuid
-// ОписаниеЗаказа - Структура Из КлючИЗначение - Набор изменяемых полей заказа - order
-// ТестовыйAPI - Булево - Флаг использования API для тестовых запросов - testapi
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от CDEK
-Функция ИзменитьЗаказ(Знач Токен, Знач UUID, Знач ОписаниеЗаказа, Знач ТестовыйAPI = Ложь) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьКоллекцию(ОписаниеЗаказа);
-
- URL = СформироватьURL("/orders", ТестовыйAPI);
- Заголовки = СоздатьЗаголовкиЗапроса(Токен);
-
- OPI_Инструменты.ДобавитьПоле("uuid", UUID, "Строка", ОписаниеЗаказа);
-
- Ответ = OPI_ЗапросыHTTP.PatchСТелом(URL, ОписаниеЗаказа, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Удалить заказ
-// Удаляет заказ по UUID
-//
-// Примечание:
-// Метод в документации API: [Удаление заказа](@api-docs.cdek.ru/29924487.html)
-//
-// Параметры:
-// Токен - Строка - Токен авторизации - token
-// UUID - Строка - UUID заказа для удаления - uuid
-// ТестовыйAPI - Булево - Флаг использования API для тестовых запросов - testapi
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от CDEK
-Функция УдалитьЗаказ(Знач Токен, Знач UUID, Знач ТестовыйAPI = Ложь) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(UUID);
-
- URL = СформироватьURL("/orders/" + UUID, ТестовыйAPI);
- Заголовки = СоздатьЗаголовкиЗапроса(Токен);
-
- Ответ = OPI_ЗапросыHTTP.Delete(URL, , Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить заказ
-// Получает заказ по UUID
-//
-// Примечание:
-// Метод в документации API: [Информация о заказе](@api-docs.cdek.ru/29923975.html)
-//
-// Параметры:
-// Токен - Строка - Токен авторизации - token
-// UUID - Строка - UUID заказа - uuid
-// ТестовыйAPI - Булево - Флаг использования API для тестовых запросов - testapi
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от CDEK
-Функция ПолучитьЗаказ(Знач Токен, Знач UUID, Знач ТестовыйAPI = Ложь) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(UUID);
-
- URL = СформироватьURL("/orders/" + UUID, ТестовыйAPI);
- Заголовки = СоздатьЗаголовкиЗапроса(Токен);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, , Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить заказ по номеру
-// Получает заказ по номеру СДЭК или внутреннему номеру клиента
-//
-// Примечание:
-// Метод в документации API: [Информация о заказе](@api-docs.cdek.ru/29923975.html)
-//
-// Параметры:
-// Токен - Строка - Токен авторизации - token
-// НомерЗаказа - Строка - Номер заказа - number
-// Внутренний - Булево - Вид номера заказа. Истина > номер в базе клиента, Ложь > номер СДЭК - internal
-// ТестовыйAPI - Булево - Флаг использования API для тестовых запросов - testapi
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от CDEK
-Функция ПолучитьЗаказПоНомеру(Знач Токен, Знач НомерЗаказа, Знач Внутренний = Ложь, Знач ТестовыйAPI = Ложь) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьБулево(Внутренний);
-
- URL = СформироватьURL("/orders", ТестовыйAPI);
- Заголовки = СоздатьЗаголовкиЗапроса(Токен);
-
- ИмяПараметра = ?(Внутренний, "im_number", "cdek_number");
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле(ИмяПараметра, НомерЗаказа, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Оформить клиентский возврат
-// Оформляет клиентский возврат для заказа интернет магазина
-//
-// Примечание:
-// Этот метод используется в случае, если прямой заказ доставлялся СДЭК и получатель хочет вернуть его полностью
-// Если заказ доставлялся другой службой, либо нужно вернуть не все товары, то необходимо использовать метод СоздатьЗаказ с is_client_return = true
-// Метод в документации API: [Клиентские возвраты](@api-docs.cdek.ru/122762174.html)
-//
-// Параметры:
-// Токен - Строка - Токен авторизации - token
-// UUID - Строка - UUID заказа - uuid
-// Тариф - Число - Код тарифа (из доступных по договору) - tariff
-// ТестовыйAPI - Булево - Флаг использования API для тестовых запросов - testapi
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от CDEK
-Функция ОформитьКлиентскийВозврат(Знач Токен, Знач UUID, Знач Тариф, Знач ТестовыйAPI = Ложь) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(UUID);
-
- URL = СформироватьURL("/orders/" + UUID + "/clientReturn", ТестовыйAPI);
- Заголовки = СоздатьЗаголовкиЗапроса(Токен);
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("tariff_code", Тариф, "Число", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Создать отказ
-// Создает отказ по заказу для возврата в интернет магазин
-//
-// Примечание:
-// Метод в документации API: [Регистрация отказа](@api-docs.cdek.ru/55327658.html)
-//
-// Параметры:
-// Токен - Строка - Токен авторизации - token
-// UUID - Строка - UUID заказа - uuid
-// ТестовыйAPI - Булево - Флаг использования API для тестовых запросов - testapi
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от CDEK
-Функция СоздатьОтказ(Знач Токен, Знач UUID, Знач ТестовыйAPI = Ложь) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(UUID);
-
- URL = СформироватьURL("/orders/" + UUID + "/refusal", ТестовыйAPI);
- Заголовки = СоздатьЗаголовкиЗапроса(Токен);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, , Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Сформировать квитанцию
-// Формирует квитанции в формате pdf к заказам
-//
-// Примечание:
-// Доступные типы (языки) квитанций: tpl_china, tpl_armenia, tpl_russia, tpl_english, tpl_italian, tpl_korean, tpl_latvian, tpl_lithuanian, tpl_german, tpl_turkish, tpl_czech, tpl_thailand, tpl_invoice
-// Рекомендуется указывать не менее 2 копий на листе (параметр КопийНаЛисте): одна приклеивается на груз, вторая остается у отправителя
-// Метод в документации API: [Формирование квитанции к заказу](@api-docs.cdek.ru/36967276.html)
-//
-// Параметры:
-// Токен - Строка - Токен авторизации - token
-// МассивUUID - Строка, Массив Из Строка - Один или массив UUID заказов - uuids
-// Тип - Строка - Тип (язык) квитанции - type
-// КопийНаЛисте - Число - Число копий одной квитанции на листе - count
-// ТестовыйAPI - Булево - Флаг использования API для тестовых запросов - testapi
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от CDEK
-Функция СформироватьКвитанцию(Знач Токен
- , Знач МассивUUID
- , Знач Тип = "tpl_russia"
- , Знач КопийНаЛисте = 2
- , Знач ТестовыйAPI = Ложь) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьМассив(МассивUUID);
-
- URL = СформироватьURL("/print/orders", ТестовыйAPI);
- Заголовки = СоздатьЗаголовкиЗапроса(Токен);
-
- Параметры = Новый Структура;
- МассивЗаказов = Новый Массив;
-
- Для Каждого UUID Из МассивUUID Цикл
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(UUID);
- МассивЗаказов.Добавить(Новый Структура("order_uuid", UUID));
-
- КонецЦикла;
-
- OPI_Инструменты.ДобавитьПоле("orders" , МассивЗаказов, "Массив", Параметры);
- OPI_Инструменты.ДобавитьПоле("copy_count", КопийНаЛисте , "Число" , Параметры);
- OPI_Инструменты.ДобавитьПоле("type" , Тип , "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить квитанцию
-// Получает квитанцию к заказу
-//
-// Примечание:
-// Квитанция должна быть предварительно создана. См. СформироватьКвитанцию
-// Ссылка на файл с квитанцией к заказам доступна в течение 1 часа
-// Метод в документации API: [Получение квитанции к заказу](@api-docs.cdek.ru/36967287.html)
-//
-// Параметры:
-// Токен - Строка - Токен авторизации - token
-// UUID - Строка - UUID квитанции, полученный при ее формировании - uuid
-// ПолучитьФайл - Булево - Истина > будут получены сразу данные PDF файла, Ложь > ответ сервера CDEK - getfile
-// ТестовыйAPI - Булево - Флаг использования API для тестовых запросов - testapi
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение, ДвоичныеДанные - сериализованный JSON ответа от CDEK или PDF файл
-Функция ПолучитьКвитанцию(Знач Токен, Знач UUID, Знач ПолучитьФайл = Ложь, Знач ТестовыйAPI = Ложь) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(UUID);
- OPI_ПреобразованиеТипов.ПолучитьБулево(ПолучитьФайл);
-
- URL = СформироватьURL("/print/orders/" + UUID, ТестовыйAPI);
- Заголовки = СоздатьЗаголовкиЗапроса(Токен);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, , Заголовки);
-
- Если ПолучитьФайл Тогда
-
- Содержимое = Ответ["entity"];
-
- Если Не ЗначениеЗаполнено(Содержимое) Тогда
- Возврат Ответ;
- КонецЕсли;
-
- URL = Содержимое["url"];
-
- Если Не ЗначениеЗаполнено(URL) Тогда
- Возврат Ответ;
- КонецЕсли;
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, , Заголовки);
-
- КонецЕсли;
-
- Возврат Ответ;
-
-КонецФункции
-
-// Сформировать штрихкод
-// Формирует штрихкод места в формате PDF для заказов
-//
-// Примечание:
-// Метод в документации API: [Формирование ШК места к заказу](@api-docs.cdek.ru/36967295.html)
-//
-// Параметры:
-// Токен - Строка - Токен авторизации - token
-// МассивUUID - Строка, Массив Из Строка - Один или массив UUID заказов - uuids
-// Копий - Число - Число копий - count
-// Формат - Строка - Формат печати: A4, A5, A6, A7 - format
-// Язык - Строка - Язык штрихкода: RUS, ENG - lang
-// ТестовыйAPI - Булево - Флаг использования API для тестовых запросов - testapi
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от CDEK
-Функция СформироватьШтрихкод(Знач Токен
- , Знач МассивUUID
- , Знач Копий = 1
- , Знач Формат = "A4"
- , Знач Язык = "RUS"
- , Знач ТестовыйAPI = Ложь) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьМассив(МассивUUID);
-
- URL = СформироватьURL("/print/barcodes", ТестовыйAPI);
- Заголовки = СоздатьЗаголовкиЗапроса(Токен);
-
- Параметры = Новый Структура;
- МассивЗаказов = Новый Массив;
-
- Для Каждого UUID Из МассивUUID Цикл
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(UUID);
- МассивЗаказов.Добавить(Новый Структура("order_uuid", UUID));
-
- КонецЦикла;
-
- OPI_Инструменты.ДобавитьПоле("orders" , МассивЗаказов, "Массив", Параметры);
- OPI_Инструменты.ДобавитьПоле("copy_count", Копий , "Число" , Параметры);
- OPI_Инструменты.ДобавитьПоле("format" , Формат , "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("lang" , Язык , "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить штрихкод
-// Получает штрихкод места к заказу
-//
-// Примечание:
-// Штрихкод должен быть предварительно создан. См. СформироватьШтрихкод
-// Ссылка на файл с ШК местом к заказам доступна в течение 1 часа
-// Метод в документации API: [Получение ШК места к заказу](@api-docs.cdek.ru/36967298.html)
-//
-// Параметры:
-// Токен - Строка - Токен авторизации - token
-// UUID - Строка - UUID штрихкода, полученный при его формировании - uuid
-// ПолучитьФайл - Булево - Истина > будут получены сразу данные PDF файла, Ложь > ответ сервера CDEK - getfile
-// ТестовыйAPI - Булево - Флаг использования API для тестовых запросов - testapi
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение, ДвоичныеДанные - сериализованный JSON ответа от CDEK или PDF файл
-Функция ПолучитьШтрихкод(Знач Токен, Знач UUID, Знач ПолучитьФайл = Ложь, Знач ТестовыйAPI = Ложь) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(UUID);
- OPI_ПреобразованиеТипов.ПолучитьБулево(ПолучитьФайл);
-
- URL = СформироватьURL("/print/barcodes/" + UUID, ТестовыйAPI);
- Заголовки = СоздатьЗаголовкиЗапроса(Токен);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, , Заголовки);
-
- Если ПолучитьФайл Тогда
-
- Содержимое = Ответ["entity"];
-
- Если Не ЗначениеЗаполнено(Содержимое) Тогда
- Возврат Ответ;
- КонецЕсли;
-
- URL = Содержимое["url"];
-
- Если Не ЗначениеЗаполнено(URL) Тогда
- Возврат Ответ;
- КонецЕсли;
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, , Заголовки);
-
- КонецЕсли;
-
- Возврат Ответ;
-
-КонецФункции
-
-// Создать преалерт
-// Создает преалерт для списка заказов
-//
-// Примечание:
-// Метод в документации API: [Регистрация преалерта](@api-docs.cdek.ru/78934763.html)
-//
-// Параметры:
-// Токен - Строка - Токен авторизации - token
-// МассивUUID - Строка, Массив Из Строка - Один или массив UUID заказов - uuids
-// ДатаПередачи - Дата - Планируемая дата передачи заказов в СДЭК - date
-// ПВЗ - Строка - Код ПВЗ, в который планируется передать заказы - point
-// ТестовыйAPI - Булево - Флаг использования API для тестовых запросов - testapi
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от CDEK
-Функция СоздатьПреалерт(Знач Токен, Знач МассивUUID, Знач ДатаПередачи, Знач ПВЗ, Знач ТестовыйAPI = Ложь) Экспорт
-
- Planned_date_ = "planned_date";
-
- OPI_ПреобразованиеТипов.ПолучитьМассив(МассивUUID);
-
- URL = СформироватьURL("/prealert", ТестовыйAPI);
- Заголовки = СоздатьЗаголовкиЗапроса(Токен);
-
- Параметры = Новый Структура;
- МассивЗаказов = Новый Массив;
-
- Для Каждого UUID Из МассивUUID Цикл
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(UUID);
- МассивЗаказов.Добавить(Новый Структура("order_uuid", UUID));
-
- КонецЦикла;
-
- OPI_Инструменты.ДобавитьПоле("orders" , МассивЗаказов, "Массив" , Параметры);
- OPI_Инструменты.ДобавитьПоле(Planned_date_ , ДатаПередачи , "ДатаISO" , Параметры);
- OPI_Инструменты.ДобавитьПоле("shipment_point", ПВЗ , "Строка" , Параметры);
-
- Параметры[Planned_date_] = Параметры[Planned_date_] + "+0000";
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить преалерт
-// Получает ранее созданны преалерт
-//
-// Примечание:
-// Преалерт должен быть предварительно создан. См. СоздатьПреалерт
-// Метод в документации API: [Информация о преалерте](@api-docs.cdek.ru/78934799.html)
-//
-// Параметры:
-// Токен - Строка - Токен авторизации - token
-// UUID - Строка - UUID преалерта - uuid
-// ТестовыйAPI - Булево - Флаг использования API для тестовых запросов - testapi
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от CDEK
-Функция ПолучитьПреалерт(Знач Токен, Знач UUID, Знач ТестовыйAPI = Ложь) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(UUID);
-
- URL = СформироватьURL("/prealert/" + UUID, ТестовыйAPI);
- Заголовки = СоздатьЗаголовкиЗапроса(Токен);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, , Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить статус паспортных данных
-// Получает информацию о статусе обработки паспортных данных для международных заказов
-//
-// Примечание:
-// Метод в документации API: [Информация о паспортных данных](@api-docs.cdek.ru/55343091.html)
-//
-// Параметры:
-// Токен - Строка - Токен авторизации - token
-// UUID - Строка - UUID заказа - uuid
-// ТестовыйAPI - Булево - Флаг использования API для тестовых запросов - testapi
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от CDEK
-Функция ПолучитьСтатусПаспортныхДанных(Знач Токен, Знач UUID, Знач ТестовыйAPI = Ложь) Экспорт
-
- URL = СформироватьURL("/passport", ТестовыйAPI);
- Заголовки = СоздатьЗаголовкиЗапроса(Токен);
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("order_uuid", UUID, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить чек заказа
-// Получает информацию о чеке по заказу
-//
-// Примечание:
-// Метод в документации API: [Информация о чеке](@api-docs.cdek.ru/68257388.html)
-//
-// Параметры:
-// Токен - Строка - Токен авторизации - token
-// UUID - Строка - UUID заказа - uuid
-// ТестовыйAPI - Булево - Флаг использования API для тестовых запросов - testapi
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от CDEK
-Функция ПолучитьЧекЗаказа(Знач Токен, Знач UUID, Знач ТестовыйAPI = Ложь) Экспорт
-
- URL = СформироватьURL("/check", ТестовыйAPI);
- Заголовки = СоздатьЗаголовкиЗапроса(Токен);
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("order_uuid", UUID, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить описание заказа
-// Получает макет для создания заказа в функции СоздатьЗаказ
-//
-// Примечание:
-// Обязательность реквизитов может зависить от типа зказа или вложенности. Обязательно ознакомьтесь с документацией CDEK
-// Описания полей в документации: [Регистрация заказа](@api-docs.cdek.ru/29923926.html)
-//
-// Параметры:
-// Пустая - Булево - Истина > структура с пустыми значениями, Ложь > в значениях будут описания полей - empty
-// ТолькоОбязательные - Булево - Истина > в макете будут только обязательные поля - required
-// ИнтернетМагазин - Булево - Признак включения в макет полей исключительно для заказо Интернет магазина - ostore
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - Структура полей
-Функция ПолучитьОписаниеЗаказа(Знач Пустая = Ложь, Знач ТолькоОбязательные = Ложь, Знач ИнтернетМагазин = Ложь) Экспорт
-
- // BSLLS:DuplicateStringLiteral-off
-
- OPI_ПреобразованиеТипов.ПолучитьБулево(Пустая);
- OPI_ПреобразованиеТипов.ПолучитьБулево(ТолькоОбязательные);
- OPI_ПреобразованиеТипов.ПолучитьБулево(ИнтернетМагазин);
-
- СтруктураЗаказа = Новый Структура;
-
- СтруктураЗаказа.Вставить("tariff_code" , "<Код тарифа (подробнее см. приложение 1)>");
-
- СтруктураПолучателя = Новый Структура;
- СтруктураПолучателя.Вставить("company" , "<Название компании>");
- СтруктураПолучателя.Вставить("name" , "<ФИО контактного лица>");
- СтруктураПолучателя.Вставить("passport_series" , "<Серия паспорта>");
- СтруктураПолучателя.Вставить("passport_number" , "<Номер паспорта>");
- СтруктураПолучателя.Вставить("passport_date_of_issue", "<Дата выдачи паспорта>");
- СтруктураПолучателя.Вставить("passport_organization" , "<Орган выдачи паспорта>");
- СтруктураПолучателя.Вставить("tin" , "<ИНН>");
- СтруктураПолучателя.Вставить("passport_date_of_birth", "<Дата рождения>");
- СтруктураПолучателя.Вставить("email" , "");
- СтруктураПолучателя.Вставить("contragent_type" , "<Тип отправителя: LEGAL_ENTITY, INDIVIDUAL >");
-
- МассивТелефонов = Новый Массив;
- СтруктураТелефона = Новый Структура;
-
- СтруктураТелефона.Вставить("number" , "<Номер телефона>");
- СтруктураТелефона.Вставить("additional", "<Дополнительная информация (добавочный номер)>");
-
- МассивТелефонов.Добавить(СтруктураТелефона);
-
- СтруктураПолучателя.Вставить("phones", МассивТелефонов);
-
- СтруктураЗаказа.Вставить("recipient", СтруктураПолучателя);
-
- МассивУпаковок = Новый Массив;
- СтруктураУпаковки = Новый Структура;
-
- СтруктураУпаковки.Вставить("number" , "<Номер упаковки>");
- СтруктураУпаковки.Вставить("weight" , "<Общий вес (в граммах)>");
- СтруктураУпаковки.Вставить("length" , "<Габариты упаковки. Длина (в сантиметрах)>");
- СтруктураУпаковки.Вставить("width" , "<Габариты упаковки. Ширина (в сантиметрах)>");
- СтруктураУпаковки.Вставить("height" , "<Габариты упаковки. Высота (в сантиметрах)>");
- СтруктураУпаковки.Вставить("comment", "<Комментарий к упаковке>");
-
- МассивПозиций = Новый Массив;
- СтруктураПозиции = Новый Структура;
-
- СтруктураПозиции.Вставить("name" , "<Наименование товара>");
- СтруктураПозиции.Вставить("ware_key", "<Идентификатор/артикул товара>");
- СтруктураПозиции.Вставить("marking" , "<Маркировка товара>");
-
- СтруктураОплаты = Новый Структура;
- СтруктураОплаты.Вставить("value" , "<Сумма наложенного платежа, в том числе и НДС>");
- СтруктураОплаты.Вставить("vat_sum" , "<Сумма НДС>");
- СтруктураОплаты.Вставить("vat_rate", "<Ставка НДС (значение - 0, 10, 12, 20, null - нет НДС)>");
-
- СтруктураПозиции.Вставить("payment" , СтруктураОплаты);
- СтруктураПозиции.Вставить("cost" , "<Объявленная стоимость товара>");
- СтруктураПозиции.Вставить("weight" , "<Вес (за единицу товара, в граммах)>");
- СтруктураПозиции.Вставить("weight_gross", "<Вес брутто>");
- СтруктураПозиции.Вставить("amount" , "<Количество единиц товара (в штуках)>");
- СтруктураПозиции.Вставить("name_i18n" , "<Наименование на иностранном языке>");
- СтруктураПозиции.Вставить("brand" , "<Бренд на иностранном языке>");
- СтруктураПозиции.Вставить("country_code", "<Код страны производителя товара ISO_3166-1_alpha-2>");
- СтруктураПозиции.Вставить("material" , "<Код материала>");
- СтруктураПозиции.Вставить("wifi_gsm" , "<Содержит wifi или gsm>");
- СтруктураПозиции.Вставить("url" , "<Ссылка на сайт интернет-магазина с описанием товара>");
-
- МассивПозиций.Добавить(СтруктураПозиции);
-
- СтруктураУпаковки.Вставить("items", МассивПозиций);
- МассивУпаковок.Добавить(СтруктураУпаковки);
-
- СтруктураЗаказа.Вставить("packages", МассивУпаковок);
-
- Если Не ТолькоОбязательные Тогда
-
- СтруктураЗаказа.Вставить("additional_order_types" , "<Дополнительный тип заказа>");
- СтруктураЗаказа.Вставить("comment" , "<Комментарий к заказу>");
- СтруктураЗаказа.Вставить("developer_key" , "<Ключ разработчика (для разработчиков модулей)>");
- СтруктураЗаказа.Вставить("shipment_point" , "<Код ПВЗ СДЭК для самостоятельного привоза клиентом>");
- СтруктураЗаказа.Вставить("delivery_point" , "<Код офиса СДЭК, на который будет доставлена посылка>");
- СтруктураЗаказа.Вставить("date_invoice" , "<Дата инвойса>");
- СтруктураЗаказа.Вставить("shipper_name" , "<Грузоотправитель>");
- СтруктураЗаказа.Вставить("shipper_address" , "<Адрес грузоотправителя>");
-
- СтруктураОтправителя = Новый Структура;
- СтруктураОтправителя.Вставить("company" , "<Название компании>");
- СтруктураОтправителя.Вставить("name" , "<ФИО контактного лица>");
- СтруктураОтправителя.Вставить("email" , "");
- СтруктураОтправителя.Вставить("passport_series" , "<Серия паспорта>");
- СтруктураОтправителя.Вставить("passport_number" , "<Номер паспорта>");
- СтруктураОтправителя.Вставить("passport_date_of_issue" , "<Дата выдачи паспорта>");
- СтруктураОтправителя.Вставить("passport_organization" , "<Орган выдачи паспорта>");
- СтруктураОтправителя.Вставить("tin" , "<ИНН>");
- СтруктураОтправителя.Вставить("passport_date_of_birth" , "<Дата рождения>");
- СтруктураОтправителя.Вставить("contragent_type" , "<Тип отправителя: LEGAL_ENTITY, INDIVIDUAL>");
-
- МассивТелефонов = Новый Массив;
- СтруктураТелефона = Новый Структура;
-
- СтруктураТелефона.Вставить("number" , "<Номер телефона>");
- СтруктураТелефона.Вставить("additional", "<Дополнительная информация (добавочный номер)>");
-
- МассивТелефонов.Добавить(СтруктураТелефона);
-
- СтруктураОтправителя.Вставить("phones", МассивТелефонов);
-
- СтруктураЗаказа.Вставить("sender", СтруктураОтправителя);
-
- СтруктураАдреса = Новый Структура;
- СтруктураАдреса.Вставить("code" , "<Код населенного пункта СДЭК>");
- СтруктураАдреса.Вставить("fias_guid" , "<Уникальный идентификатор ФИАС>");
- СтруктураАдреса.Вставить("postal_code" , "<Почтовый индекс>");
- СтруктураАдреса.Вставить("longitude" , "<Долгота>");
- СтруктураАдреса.Вставить("latitude" , "<Широта>");
- СтруктураАдреса.Вставить("country_code", "<Код страны в формате ISO_3166-1_alpha-2>");
- СтруктураАдреса.Вставить("region" , "<Название региона, уточняющий параметр для поля city>");
- СтруктураАдреса.Вставить("region_code" , "<Код региона СДЭК, уточняющий параметр для поля city>");
- СтруктураАдреса.Вставить("sub_region" , "<Название района региона, уточняющий параметр для поля region>");
- СтруктураАдреса.Вставить("city" , "<Название города, уточняющий параметр для postal_code>");
- СтруктураАдреса.Вставить("kladr_code" , "<Код КЛАДР>");
- СтруктураАдреса.Вставить("address" , "<Строка адреса >");
-
- СтруктураЗаказа.Вставить("from_location", СтруктураАдреса);
- СтруктураЗаказа.Вставить("to_location" , СтруктураАдреса);
-
- СтруктураУслуги = Новый Структура;
- СтруктураУслуги.Вставить("code" , "<Тип дополнительной услуги>");
- СтруктураУслуги.Вставить("parameter", "<Параметр дополнительной услуги>");
-
- СтруктураЗаказа.Вставить("services" , СтруктураУслуги);
- СтруктураЗаказа.Вставить("print" , "<Необходимость сформировать печатную форму>");
- СтруктураЗаказа.Вставить("is_client_return" , "<Клиентский возврат>");
- СтруктураЗаказа.Вставить("accompanying_number", "<Номер сопроводительной накладной>");
- СтруктураЗаказа.Вставить("widget_token" , "<Токен, полученный от widget.cdek.ru>");
-
- Если ИнтернетМагазин Тогда
-
- СтруктураЗаказа.Вставить("number", "<Номер заказа в ИС Клиента (uuid, если не заполнено)>");
-
- СтруктураСбора = Новый Структура;
- СтруктураСбора.Вставить("value" , "<Сумма дополнительного сбора (в том числе и НДС)>");
- СтруктураСбора.Вставить("vat_sum" , "<Сумма НДС>");
- СтруктураСбора.Вставить("vat_rate", "<Ставка НДС (значение - 0, 10, 12, 20, null - нет НДС)>");
-
- СтруктураЗаказа.Вставить("delivery_recipient_cost", СтруктураСбора);
-
- МассивПорогов = Новый Массив;
- СтруктураПорога = Новый Структура;
-
- СтруктураПорога.Вставить("threshold", "<Порог стоимости товара в целых единицах валюты>");
- СтруктураПорога.Вставить("sum" , "<Доп. сбор за доставку товаров, общая стоимость которых в интервале>");
- СтруктураПорога.Вставить("vat_sum" , "<Сумма НДС, включённая в доп. сбор за доставку>");
- СтруктураПорога.Вставить("vat_rate" , "<Ставка НДС (значение - 0, 10, 12, 20, null - нет НДС)>");
-
- МассивПорогов.Добавить(СтруктураПорога);
-
- СтруктураЗаказа.Вставить("delivery_recipient_cost_adv", МассивПорогов);
-
- СтруктураПродавца = Новый Структура;
- СтруктураПродавца.Вставить("name" , "<Наименование истинного продавца>");
- СтруктураПродавца.Вставить("inn" , "<ИНН истинного продавца>");
- СтруктураПродавца.Вставить("phone" , "<Телефон истинного продавца>");
- СтруктураПродавца.Вставить("ownership_form", "<Код формы собственности>");
- СтруктураПродавца.Вставить("address" , "<Адрес истинного продавца>");
-
- СтруктураЗаказа.Вставить("seller", СтруктураПродавца);
-
- КонецЕсли;
-
- КонецЕсли;
-
- Если Пустая Тогда
- СтруктураЗаказа = OPI_Инструменты.ОчиститьКоллекциюРекурсивно(СтруктураЗаказа);
- КонецЕсли;
-
- //@skip-check constructor-function-return-section
- Возврат СтруктураЗаказа;
-
- // BSLLS:DuplicateStringLiteral-on
-
-КонецФункции
-
-#КонецОбласти
-
-#Область УправлениеДоставкой
-
-// Получить доступные интервалы доставки
-// Получает доступные интервалы доставки для заказа
-//
-// Примечание:
-// Метод в документации API: [Получение интервалов доставки](@api-docs.cdek.ru/154160502.html)
-//
-// Параметры:
-// Токен - Строка - Токен авторизации - token
-// UUID - Строка - UUID заказа - uuid
-// ТестовыйAPI - Булево - Флаг использования API для тестовых запросов - testapi
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от CDEK
-Функция ПолучитьДоступныеИнтервалыДоставки(Знач Токен, Знач UUID, Знач ТестовыйAPI = Ложь) Экспорт
-
- URL = СформироватьURL("/delivery/intervals", ТестовыйAPI);
- Заголовки = СоздатьЗаголовкиЗапроса(Токен);
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("order_uuid", UUID, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Создать заявку на вызов курьера
-// Создает новую заявку на вызов курьера для забора груза
-//
-// Примечание:
-// Метод в документации API: [Регистрация отказа](@api-docs.cdek.ru/55327658.html)
-//
-// Параметры:
-// Токен - Строка - Токен авторизации - token
-// ОписаниеЗаявки - Структура Из КлючИЗначение - Описание заявки. См. ПолучитьОписаниеЗаявкиКурьера - intake
-// ТестовыйAPI - Булево - Флаг использования API для тестовых запросов - testapi
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от CDEK
-Функция СоздатьЗаявкуНаВызовКурьера(Знач Токен, Знач ОписаниеЗаявки, Знач ТестовыйAPI = Ложь) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьКоллекцию(ОписаниеЗаявки);
-
- URL = СформироватьURL("/intakes", ТестовыйAPI);
- Заголовки = СоздатьЗаголовкиЗапроса(Токен);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, ОписаниеЗаявки, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить заявку на вызов курьера
-// Получает заявку на вызов курьера по UUID
-//
-// Примечание:
-// Заявка должна быть предварительно создана. См. СоздатьЗаявкуНаВызовКурьера
-// Метод в документации API: [Информация о заявке](@api-docs.cdek.ru/29948360.html)
-//
-// Параметры:
-// Токен - Строка - Токен авторизации - token
-// UUID - Строка - UUID заявки - uuid
-// ТестовыйAPI - Булево - Флаг использования API для тестовых запросов - testapi
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от CDEK
-Функция ПолучитьЗаявкуНаВызовКурьера(Знач Токен, Знач UUID, Знач ТестовыйAPI = Ложь) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(UUID);
-
- URL = СформироватьURL("/intakes/" + UUID, ТестовыйAPI);
- Заголовки = СоздатьЗаголовкиЗапроса(Токен);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, , Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Удалить заявку на вызов курьера
-//
-// Примечание:
-// Метод в документации API: [Удаление заявки](@api-docs.cdek.ru/29948379.html)
-//
-// Параметры:
-// Токен - Строка - Токен авторизации - token
-// UUID - Строка - UUID заявки для удаления - uuid
-// ТестовыйAPI - Булево - Флаг использования API для тестовых запросов - testapi
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от CDEK
-Функция УдалитьЗаявкуНаВызовКурьера(Знач Токен, Знач UUID, Знач ТестовыйAPI = Ложь) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(UUID);
-
- URL = СформироватьURL("/intakes/" + UUID, ТестовыйAPI);
- Заголовки = СоздатьЗаголовкиЗапроса(Токен);
-
- Ответ = OPI_ЗапросыHTTP.Delete(URL, , Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Зафиксировать договоренность о доставке
-// Фиксирует оговоренные с клиентом дату, время и адрес доставки
-//
-// Примечание:
-// Метод в документации API: [Регистрация договоренности о доставке](@api-docs.cdek.ru/36981338.html)
-//
-// Параметры:
-// Токен - Строка - Токен авторизации - token
-// Договоренность - Структура Из КлючИЗначение - Описание договоренности. См. ПолучитьОписаниеДоговоренности - appt
-// ТестовыйAPI - Булево - Флаг использования API для тестовых запросов - testapi
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от CDEK
-Функция ЗафиксироватьДоговоренностьОДоставке(Знач Токен, Знач Договоренность, Знач ТестовыйAPI = Ложь) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьКоллекцию(Договоренность);
-
- URL = СформироватьURL("/delivery", ТестовыйAPI);
- Заголовки = СоздатьЗаголовкиЗапроса(Токен);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Договоренность, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить договоренность о доставке
-// Получает информацию об оговоренных с клиентом дате, времени и адресе доставки
-//
-// Примечание:
-// Договоренность должна быть предварительно создана. См. ЗафиксироватьДоговоренностьОДоставке
-// Метод в документации API: [Информация о договоренности о доставке](@api-docs.cdek.ru/36981626.html)
-//
-// Параметры:
-// Токен - Строка - Токен авторизации - token
-// UUID - Строка - UUID договоренности - uuid
-// ТестовыйAPI - Булево - Флаг использования API для тестовых запросов - testapi
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от CDEK
-Функция ПолучитьДоговоренностьОДоставке(Знач Токен, Знач UUID, Знач ТестовыйAPI = Ложь) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(UUID);
-
- URL = СформироватьURL("/delivery/" + UUID, ТестовыйAPI);
- Заголовки = СоздатьЗаголовкиЗапроса(Токен);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, , Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить описание заявки курьера
-// Получает макет для создания заявки на вызов курьера в функции СоздатьЗаявкуНаВызовКурьера
-//
-// Примечание:
-// Обязательность реквизитов может зависить от типа зказа или вложенности. Обязательно ознакомьтесь с документацией CDEK
-// Описания полей в документации: [Регистрация заявки на вызов курьера](@api-docs.cdek.ru/29925274.html)
-//
-// Параметры:
-// Пустая - Булево - Истина > структура с пустыми значениями, Ложь > в значениях будут описания полей - empty
-// ТолькоОбязательные - Булево - Истина > в макете будут только обязательные поля - required
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - Структура полей
-Функция ПолучитьОписаниеЗаявкиКурьера(Знач Пустая = Ложь, Знач ТолькоОбязательные = Ложь) Экспорт
-
- // BSLLS:DuplicateStringLiteral-off
-
- OPI_ПреобразованиеТипов.ПолучитьБулево(Пустая);
- OPI_ПреобразованиеТипов.ПолучитьБулево(ТолькоОбязательные);
-
- СтруктураЗаявки = Новый Структура;
-
- СтруктураЗаявки.Вставить("intake_date" , "<Дата ожидания курьера>");
- СтруктураЗаявки.Вставить("intake_time_from" , "<Время начала ожидания курьера>");
- СтруктураЗаявки.Вставить("intake_time_to" , "<Время окончания ожидания курьера>");
-
- Если Не ТолькоОбязательные Тогда
-
- СтруктураЗаявки.Вставить("cdek_number" , "<Номер заказа СДЭК>");
- СтруктураЗаявки.Вставить("order_uuid" , "<Идентификатор заказа в ИС СДЭК>");
- СтруктураЗаявки.Вставить("lunch_time_from" , "<Время начала обеда>");
- СтруктураЗаявки.Вставить("lunch_time_to" , "<Время окончания обеда>");
- СтруктураЗаявки.Вставить("name" , "<Описание груза>");
- СтруктураЗаявки.Вставить("weight" , "<Общий вес (в граммах)>");
- СтруктураЗаявки.Вставить("length" , "<Габариты упаковки. Длина (в сантиметрах)>");
- СтруктураЗаявки.Вставить("width" , "<Габариты упаковки. Ширина (в сантиметрах)>");
- СтруктураЗаявки.Вставить("height" , "<Габариты упаковки. Высота (в сантиметрах)>");
- СтруктураЗаявки.Вставить("comment" , "<Комментарий к заявке для курьера>");
- СтруктураЗаявки.Вставить("need_call" , "<Необходим прозвон отправителя>");
- СтруктураЗаявки.Вставить("courier_power_of_attorney", "<Курьеру необходима доверенность>");
- СтруктураЗаявки.Вставить("courier_identity_card" , "<Курьеру необходим документ удостоверяющий личность>");
-
- СтруктураОтправителя = Новый Структура;
- СтруктураОтправителя.Вставить("company" , "<Название компании отправителя>");
- СтруктураОтправителя.Вставить("name" , "<ФИО контактного лица>");
- СтруктураОтправителя.Вставить("contragent_type", "<Тип отправителя: LEGAL_ENTITY, INDIVIDUAL>");
-
- МассивТелефонов = Новый Массив;
-
- СтруктураТелефона = Новый Структура;
- СтруктураТелефона.Вставить("number" , "<Номер телефона>");
- СтруктураТелефона.Вставить("additional", "<Дополнительная информация (добавочный номер)>");
-
- МассивТелефонов.Добавить(СтруктураТелефона);
-
- СтруктураОтправителя.Вставить("phones", МассивТелефонов);
-
- СтруктураЗаявки.Вставить("sender" , СтруктураОтправителя);
-
- СтруктураАдресаОтправления = Новый Структура;
- СтруктураАдресаОтправления.Вставить("code" , "<Код населенного пункта СДЭК>");
- СтруктураАдресаОтправления.Вставить("fias_guid" , "<Уникальный идентификатор ФИАС>");
- СтруктураАдресаОтправления.Вставить("postal_code" , "<Почтовый индекс>");
- СтруктураАдресаОтправления.Вставить("longitude" , "<Долгота>");
- СтруктураАдресаОтправления.Вставить("latitude" , "<Широта>");
- СтруктураАдресаОтправления.Вставить("country_code", "<Код страны>");
- СтруктураАдресаОтправления.Вставить("region" , "<Название региона, уточняющий параметр для поля city>");
- СтруктураАдресаОтправления.Вставить("region_code" , "<Код региона СДЭК, уточняющий параметр для поля city>");
- СтруктураАдресаОтправления.Вставить("sub_region" , "<Название района региона, уточняющий параметр для поля region>");
- СтруктураАдресаОтправления.Вставить("city" , "<Название города, уточняющий параметр для postal_code>");
- СтруктураАдресаОтправления.Вставить("kladr_code" , "<Код КЛАДР. Устаревшее поле>");
- СтруктураАдресаОтправления.Вставить("address" , "<Строка адреса>");
-
- СтруктураЗаявки.Вставить("from_location" , СтруктураАдресаОтправления);
-
- КонецЕсли;
-
- Если Пустая Тогда
- СтруктураЗаявки = OPI_Инструменты.ОчиститьКоллекциюРекурсивно(СтруктураЗаявки);
- КонецЕсли;
-
- //@skip-check constructor-function-return-section
- Возврат СтруктураЗаявки;
-
- // BSLLS:DuplicateStringLiteral-on
-
-КонецФункции
-
-// Получить описание договоренности
-// Получает макет для создания о доставке в функции ЗафиксироватьДоговоренностьОДоставке
-//
-// Примечание:
-// Обязательность реквизитов может зависить от типа зказа или вложенности. Обязательно ознакомьтесь с документацией CDEK
-// Описания полей в документации: [Регистрация договоренности о доставке](@api-docs.cdek.ru/36981338.html)
-//
-// Параметры:
-// Пустая - Булево - Истина > структура с пустыми значениями, Ложь > в значениях будут описания полей - empty
-// ТолькоОбязательные - Булево - Истина > в макете будут только обязательные поля - required
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - Структура полей
-Функция ПолучитьОписаниеДоговоренности(Знач Пустая = Ложь, Знач ТолькоОбязательные = Ложь) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьБулево(Пустая);
- OPI_ПреобразованиеТипов.ПолучитьБулево(ТолькоОбязательные);
-
- СтруктураДоговоренности = Новый Структура;
-
- СтруктураДоговоренности.Вставить("date", "<Дата доставки, согласованная с получателем>");
-
- Если Не ТолькоОбязательные Тогда
-
- СтруктураДоговоренности.Вставить("cdek_number" , "<Номер заказа СДЭК>");
- СтруктураДоговоренности.Вставить("order_uuid" , "<Идентификатор заказа в ИС СДЭК>");
- СтруктураДоговоренности.Вставить("time_from" , "<Время доставки С, согласованное с получателем>");
- СтруктураДоговоренности.Вставить("time_to" , "<Время доставки ПО, согласованное с получателем>");
- СтруктураДоговоренности.Вставить("comment" , "<Комментарий>");
- СтруктураДоговоренности.Вставить("delivery_point", "<Буквенно-цифровой код ПВЗ СДЭК>");
-
- СтруктураАдресаДоставки = Новый Структура;
- СтруктураАдресаДоставки.Вставить("code" , "<Код населенного пункта СДЭК>");
- СтруктураАдресаДоставки.Вставить("fias_guid" , "<Уникальный идентификатор ФИАС>");
- СтруктураАдресаДоставки.Вставить("postal_code" , "<Почтовый индекс>");
- СтруктураАдресаДоставки.Вставить("longitude" , "<Долгота>");
- СтруктураАдресаДоставки.Вставить("latitude" , "<Широта>");
- СтруктураАдресаДоставки.Вставить("country_code", "<Код страны в формате ISO_3166-1_alpha-2>");
- СтруктураАдресаДоставки.Вставить("region" , "<Название региона>");
- СтруктураАдресаДоставки.Вставить("region_code" , "<Код региона>");
- СтруктураАдресаДоставки.Вставить("sub_region" , "<Название района региона>");
- СтруктураАдресаДоставки.Вставить("city" , "<Название города>");
- СтруктураАдресаДоставки.Вставить("kladr_code" , "<Код КЛАДР>");
- СтруктураАдресаДоставки.Вставить("address" , "<Строка адреса>");
-
- СтруктураДоговоренности.Вставить("to_location", СтруктураАдресаДоставки);
-
- КонецЕсли;
-
- Если Пустая Тогда
- СтруктураДоговоренности = OPI_Инструменты.ОчиститьКоллекциюРекурсивно(СтруктураДоговоренности);
- КонецЕсли;
-
- //@skip-check constructor-function-return-section
- Возврат СтруктураДоговоренности;
-
-КонецФункции
-
-#КонецОбласти
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-Функция СформироватьURL(Знач Метод, Знач ТестовыйAPI)
-
- OPI_ПреобразованиеТипов.ПолучитьБулево(ТестовыйAPI);
-
- Если ТестовыйAPI Тогда
- URL = "https://api.edu.cdek.ru/v2";
- Иначе
- URL = "https://api.cdek.ru/v2";
- КонецЕсли;
-
- URL = URL + Метод;
-
- Возврат URL;
-
-КонецФункции
-
-Функция СоздатьЗаголовкиЗапроса(Знач Токен)
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
-
- Заголовки = Новый Соответствие;
- Заголовки.Вставить("Authorization", "Bearer " + Токен);
- Возврат Заголовки;
-
-КонецФункции
-
-#КонецОбласти
diff --git a/XML/CommonModules/OPI_Dropbox.xml b/XML/CommonModules/OPI_Dropbox.xml
deleted file mode 100644
index 98531b7dcc..0000000000
--- a/XML/CommonModules/OPI_Dropbox.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
- OPI_Dropbox
-
-
-
- OPI dropbox
-
-
- ru
- Dropbox (ОПИ)
-
-
- Модуль для работы с Dropbox из набора ОПИ
- false
- false
- true
- true
- true
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git a/XML/CommonModules/OPI_Dropbox/Ext/Module.bsl b/XML/CommonModules/OPI_Dropbox/Ext/Module.bsl
deleted file mode 100644
index 29dbfa750a..0000000000
--- a/XML/CommonModules/OPI_Dropbox/Ext/Module.bsl
+++ /dev/null
@@ -1,988 +0,0 @@
-// OneScript: ./OInt/core/Modules/OPI_Dropbox.os
-// Lib: Dropbox
-// CLI: dropbox
-// Keywords: dropbox
-
-// MIT License
-
-// Copyright (c) 2023-2025 Anton Tsitavets
-
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-
-// The above copyright notice and this permission notice shall be included in all
-// copies or substantial portions of the Software.
-
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-// SOFTWARE.
-
-// https://github.com/Bayselonarrend/OpenIntegrations
-
-// BSLLS:IncorrectLineBreak-off
-// BSLLS:UsingServiceTag-off
-// BSLLS:UsingSynchronousCalls-off
-// BSLLS:MagicNumber-off
-
-//@skip-check module-structure-top-region
-//@skip-check module-structure-method-in-regions
-//@skip-check wrong-string-literal-content
-
-#Область ПрограммныйИнтерфейс
-
-#Область АккаунтИАвторизация
-
-// Получить ссылку авторизации
-// Генерирует ссылку авторизации для перехода в браузере
-//
-// Параметры:
-// КлючПриложения - Строка - Ключ приложения - appkey
-//
-// Возвращаемое значение:
-// Строка - URL для перехода в браузере
-Функция ПолучитьСсылкуАвторизации(Знач КлючПриложения) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(КлючПриложения);
- Возврат "https://www.dropbox.com/oauth2/authorize?client_id="
- + КлючПриложения
- + "&response_type=code&token_access_type=offline";
-
-КонецФункции
-
-// Получить токен
-// Полеучает токен на основе кода со страницы ПолучитьСсылкуАвторизации
-//
-// Параметры:
-// КлючПриложения - Строка - Ключ приложения - appkey
-// СекретПриложения - Строка - Секрет приложения - appsecret
-// Код - Строка - Код со страницы авторизации - code
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Dropbox
-Функция ПолучитьТокен(Знач КлючПриложения, Знач СекретПриложения, Знач Код) Экспорт
-
- URL = "https://api.dropbox.com/oauth2/token";
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("code" , Код , "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("grant_type", "authorization_code", "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать(URL)
- .УстановитьFormТело(Параметры)
- .ДобавитьBasicАвторизацию(КлючПриложения, СекретПриложения)
- .ОбработатьЗапрос("POST")
- .ВернутьОтветКакJSONКоллекцию(Истина, Истина);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Обновить токен
-// Получает новый токен на основе рефреш токена
-//
-// Параметры:
-// КлючПриложения - Строка - Ключ приложения - appkey
-// СекретПриложения - Строка - Секрет приложения - appsecret
-// РефрешТокен - Строка - Рефреш токен - refresh
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Dropbox
-Функция ОбновитьТокен(Знач КлючПриложения, Знач СекретПриложения, Знач РефрешТокен) Экспорт
-
- Строка_ = "Строка";
- URL = "https://api.dropbox.com/oauth2/token";
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("refresh_token", РефрешТокен , Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("grant_type" , "refresh_token" , Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("client_id" , КлючПриложения , Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("client_secret", СекретПриложения, Строка_, Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, , Ложь);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить информацию об аккаунте
-// Получает информацию об аккаунте
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// Аккаунт - Строка - ID аккаунта. Текущий аккаунт токена, если не заполнено - account
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Dropbox
-Функция ПолучитьИнформациюОбАккаунте(Знач Токен, Знач Аккаунт = "") Экспорт
-
- Если ЗначениеЗаполнено(Аккаунт) Тогда
- Результат = ПолучитьАккаунт(Токен, Аккаунт);
- Иначе
- Результат = ПолучитьСвойАккаунт(Токен);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-// Получить данные использования пространства
-// Получает информацию о количестве использованного дискового пространства
-//
-// Параметры:
-// Токен - Строка - Токен - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Dropbox
-Функция ПолучитьДанныеИспользованияПространства(Знач Токен) Экспорт
-
- URL = "https://api.dropboxapi.com/2/users/get_space_usage";
- Заголовки = ПолучитьЗаголовкиЗапроса(Токен);
-
- Ответ = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать(URL)
- .УстановитьДвоичноеТело("null")
- .УстановитьЗаголовки(Заголовки)
- .УстановитьТипДанных("text/plain; charset=dropbox-cors-hack")
- .ОбработатьЗапрос("POST")
- .ВернутьОтветКакJSONКоллекцию(Истина, Истина);
-
- Возврат Ответ;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область РаботаСФайламиИКаталогами
-
-// Получить информацию об объекте
-// Получает информацию о файле или каталоге
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// Путь - Строка - Путь к объекту - path
-// Подробно - Булево - Добавляет дополнительные поля информации для медиафайлов - detail
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Dropbox
-Функция ПолучитьИнформациюОбОбъекте(Знач Токен, Знач Путь, Знач Подробно = Ложь) Экспорт
-
- URL = "https://api.dropboxapi.com/2/files/get_metadata";
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("path" , Путь , "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("include_media_info", Подробно, "Булево", Параметры);
-
- Заголовки = ПолучитьЗаголовкиЗапроса(Токен);
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить список файлов папки
-// Получает список первых файлов каталога или продолжает получение следующих при указании курсора
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// Путь - Строка - Путь к каталогу. Необязателен, если указан курсор - path
-// Подробно - Булево - Добавляет дополнительные поля информации для медиафайлов - detail
-// Курсор - Строка - Курсор из предыдущего запроса для получения следующего набора файлов - cursor
-//
-// Возвращаемое значение:
-// HTTPОтвет - Получить список файлов папки
-Функция ПолучитьСписокФайловПапки(Знач Токен, Знач Путь = "", Знач Подробно = Ложь, Знач Курсор = "") Экспорт
-
- Если Не ЗначениеЗаполнено(Курсор) Тогда
-
- URL = "https://api.dropboxapi.com/2/files/list_folder";
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("path" , Путь , "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("include_media_info", Подробно , "Булево", Параметры);
-
- Иначе
-
- URL = "https://api.dropboxapi.com/2/files/list_folder/continue";
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("cursor", Курсор, "Строка", Параметры);
-
- КонецЕсли;
-
- Заголовки = ПолучитьЗаголовкиЗапроса(Токен);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить превью
-// Получает PDF или HTML превью объекта (только для токументов)
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// Путь - Строка - Путь к объекту - path
-//
-// Возвращаемое значение:
-// ДвоичныеДанные - превью документа
-Функция ПолучитьПревью(Знач Токен, Знач Путь) Экспорт
-
- URL = "https://content.dropboxapi.com/2/files/get_preview";
- Ответ = ОбработатьОбъект(Токен, URL, Путь, Истина);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Загрузить файл
-// Загружает файл на облачный диск
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// Файл - Строка, ДвоичныеДанные - Данные файл для загрузки - file
-// Путь - Строка - Путь сохранения на Dropbox - path
-// Перезаписывать - Булево - Перезаписывать файл при конфликте путей - overwrite
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Dropbox
-Функция ЗагрузитьФайл(Знач Токен, Знач Файл, Знач Путь, Знач Перезаписывать = Ложь) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Файл);
- OPI_ПреобразованиеТипов.ПолучитьБулево(Перезаписывать);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Путь);
-
- Режим = ?(Перезаписывать, "overwrite", "add");
- Размер = Файл.Размер();
- Граница = 100000000;
-
- Если Размер > Граница Тогда
- Ответ = ЗагрузитьБольшойФайл(Токен, Файл, Путь, Режим);
- Иначе
- Ответ = ЗагрузитьМалыйФайл(Токен, Файл, Путь, Режим);
- КонецЕсли;
-
- Возврат Ответ;
-
-КонецФункции
-
-// Загрузить файл по URL
-// Загружает файл на облачный диск, получая его по указанному URL
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// URLФайла - Строка - URL источник файла - url
-// Путь - Строка - Путь сохранения на Dropbox - path
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Dropbox
-Функция ЗагрузитьФайлПоURL(Знач Токен, Знач URLФайла, Знач Путь) Экспорт
-
- URL = "https://api.dropboxapi.com/2/files/save_url";
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("path", Путь , "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("url" , URLФайла , "Строка", Параметры);
-
- Заголовки = ПолучитьЗаголовкиЗапроса(Токен);
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить статус загрузки по URL
-// Получает статус загрузки файла по URL
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// IDРаботы - Строка - ID асинхронной работы из ответа ЗагрузитьФайлПоURL - job
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Dropbox
-Функция ПолучитьСтатусЗагрузкиПоURL(Знач Токен, Знач IDРаботы) Экспорт
-
- URL = "https://api.dropboxapi.com/2/files/save_url/check_job_status";
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("async_job_id", IDРаботы, "Строка", Параметры);
-
- Заголовки = ПолучитьЗаголовкиЗапроса(Токен);
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Удалить объект
-// Удаляет объект с облачного диска
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// Путь - Строка - Путь к объекту удаления - path
-// БезВозвратно - Строка - Удалить объект без возможности востановления - permanently
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Dropbox
-Функция УдалитьОбъект(Знач Токен, Знач Путь, Знач Безвозвратно = Ложь) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьБулево(Безвозвратно);
-
- Если Безвозвратно Тогда
- URL = "https://api.dropboxapi.com/2/files/permanently_delete";
- Иначе
- URL = "https://api.dropboxapi.com/2/files/delete_v2";
- КонецЕсли;
-
- Ответ = ОбработатьОбъект(Токен, URL, Путь);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Копировать объект
-// Копирует файл или каталог по выбранному пути
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// Откуда - Строка - Путь к объекту оригинала - from
-// Куда - Строка - Целевой путь для нового объекта - to
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Dropbox
-Функция КопироватьОбъект(Знач Токен, Знач Откуда, Знач Куда) Экспорт
-
- URL = "https://api.dropboxapi.com/2/files/copy_v2";
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("from_path", Откуда, "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("to_path" , Куда , "Строка", Параметры);
-
- Заголовки = ПолучитьЗаголовкиЗапроса(Токен);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Переместить объект
-// Перемещает объект по выбранному пути
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// Откуда - Строка - Путь к объекту оригинала - from
-// Куда - Строка - Целевой путь для нового объекта - to
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Dropbox
-Функция ПереместитьОбъект(Знач Токен, Знач Откуда, Знач Куда) Экспорт
-
- URL = "https://api.dropboxapi.com/2/files/move_v2";
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("from_path", Откуда, "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("to_path" , Куда , "Строка", Параметры);
-
- Заголовки = ПолучитьЗаголовкиЗапроса(Токен);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Создать папку
-// Создает пустой каталог по выбранному пути
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// Путь - Строка - Целевой путь создания каталога - path
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Dropbox
-Функция СоздатьПапку(Знач Токен, Знач Путь) Экспорт
-
- URL = "https://api.dropboxapi.com/2/files/create_folder_v2";
- Ответ = ОбработатьОбъект(Токен, URL, Путь);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Скачать файл
-// Скачивает файл по указанному пути или ID
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// Путь - Строка - Путь или ID файла - path
-//
-// Возвращаемое значение:
-// ДвоичныеДанные - двоичные данные файла
-Функция СкачатьФайл(Знач Токен, Знач Путь) Экспорт
-
- URL = "https://content.dropboxapi.com/2/files/download";
- Ответ = ОбработатьОбъект(Токен, URL, Путь, Истина);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Скачать папку
-// Скачивает zip архив с содержимым указанного каталога
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// Путь - Строка - Путь или ID каталога - path
-//
-// Возвращаемое значение:
-// ДвоичныеДанные - двоичные данные zip архива с содержимым каталога
-Функция СкачатьПапку(Знач Токен, Знач Путь) Экспорт
-
- URL = "https://content.dropboxapi.com/2/files/download_zip";
- Ответ = ОбработатьОбъект(Токен, URL, Путь, Истина);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить список версий объекта
-// Получает список версий (ревизий) объекта
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// Путь - Строка - Путь к объекту - path
-// Количество - Строка, Число - Число последних версий объекта для отображения - amount
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Dropbox
-Функция ПолучитьСписокВерсийОбъекта(Знач Токен, Знач Путь, Знач Количество = 10) Экспорт
-
- URL = "https://api.dropboxapi.com/2/files/list_revisions";
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("path" , Путь , "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("limit", Количество, "Число" , Параметры);
-
- Заголовки = ПолучитьЗаголовкиЗапроса(Токен);
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Восстановить объект к версии
-// Восстанавливает состояние объекта к необходимой версии (ревизии)
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// Путь - Строка - Путь к объекту - path
-// Версия - Строка - ID версии (ревизии) для востановления - rev
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Dropbox
-Функция ВосстановитьОбъектКВерсии(Знач Токен, Знач Путь, Знач Версия) Экспорт
-
- URL = "https://api.dropboxapi.com/2/files/restore";
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("path", Путь , "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("rev" , Версия, "Строка", Параметры);
-
- Заголовки = ПолучитьЗаголовкиЗапроса(Токен);
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область РаботаСТегами
-
-// Получить список тегов
-// Получает список тегов выбранных файлов
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// Пути - Строка, Массив Из Строка - Путь или набору путей к файлам - paths
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Dropbox
-Функция ПолучитьСписокТегов(Знач Токен, Знач Пути) Экспорт
-
- URL = "https://api.dropboxapi.com/2/files/tags/get";
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("paths", Пути, "Массив", Параметры);
-
- Заголовки = ПолучитьЗаголовкиЗапроса(Токен);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Добавить тег
-// Добавляет новый текстовый тег к файлу или каталогу
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// Путь - Строка - Путь к объекту, для которого необходимо создать тег - path
-// Тег - Строка - Текст тега - tag
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Dropbox
-Функция ДобавитьТег(Знач Токен, Знач Путь, Знач Тег) Экспорт
-
- Возврат ОбработатьТег(Токен, Путь, Тег);
-
-КонецФункции
-
-// Удалить тег
-// Удаляет текстовый тег файла или каталога
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// Путь - Строка - Путь к объекту, тег которого необходимо удалить - path
-// Тег - Строка - Текст тега - tag
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Dropbox
-Функция УдалитьТег(Знач Токен, Знач Путь, Знач Тег) Экспорт
-
- Возврат ОбработатьТег(Токен, Путь, Тег, Истина);
-
-КонецФункции
-
-#КонецОбласти
-
-#Область НастройкиСовместногоДоступа
-
-// Опубликовать папку
-// Переводит каталог в режим публичного доступа
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// Путь - Строка - Путь к целевому каталогу - path
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Dropbox
-Функция ОпубликоватьПапку(Знач Токен, Знач Путь) Экспорт
-
- URL = "https://api.dropboxapi.com/2/sharing/share_folder";
- Ответ = ОбработатьОбъект(Токен, URL, Путь);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Отменить публикацию папки
-// Отменяет режим общего доступа для каталога
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// IDПапки - Строка - ID публичного каталога (shared folder ID) - folder
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Dropbox
-Функция ОтменитьПубликациюПапки(Знач Токен, Знач IDПапки) Экспорт
-
- URL = "https://api.dropboxapi.com/2/sharing/unshare_folder";
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("shared_folder_id", IDПапки, "Строка", Параметры);
-
- Заголовки = ПолучитьЗаголовкиЗапроса(Токен);
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Добавить пользователей к файлу
-// Определяет доступ к файлу для сторонних пользователей
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// IDФайла - Строка - ID файла, к которому предоставляется доступ - fileid
-// АдресаПочты - Строка, Массив Из Строка - Список адресов почты добавляемых пользователей - emails
-// ТолькоПросмотр - Булево - Запрещает редактирование файла для стороннего пользователя - readonly
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Dropbox
-Функция ДобавитьПользователейКФайлу(Знач Токен, Знач IDФайла, Знач АдресаПочты, Знач ТолькоПросмотр = Истина) Экспорт
-
- Строка_ = "Строка";
-
- OPI_ПреобразованиеТипов.ПолучитьМассив(АдресаПочты);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(IDФайла);
- OPI_ПреобразованиеТипов.ПолучитьБулево(ТолькоПросмотр);
-
- Если Не СтрНачинаетсяС(IDФайла, "id:") Тогда
- IDФайла = "id:" + IDФайла;
- КонецЕсли;
-
- URL = "https://api.dropboxapi.com/2/sharing/add_file_member";
-
- МассивПользователей = Новый Массив;
-
- Для Каждого Адрес Из АдресаПочты Цикл
-
- ДанныеПользователя = Новый Соответствие;
- OPI_Инструменты.ДобавитьПоле(".tag" , "email", Строка_, ДанныеПользователя);
- OPI_Инструменты.ДобавитьПоле("email", Адрес , Строка_, ДанныеПользователя);
-
- МассивПользователей.Добавить(ДанныеПользователя);
-
- КонецЦикла;
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("file" , IDФайла , Строка_ , Параметры);
- OPI_Инструменты.ДобавитьПоле("members", МассивПользователей, "Массив", Параметры);
-
- Режим = ?(ТолькоПросмотр, "viewer", "editor");
-
- OPI_Инструменты.ДобавитьПоле("access_level", Режим , Строка_, Параметры);
-
- Заголовки = ПолучитьЗаголовкиЗапроса(Токен);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Добавить пользователей к папке
-// Предоставляет стороннии пользователям доступ к каталогу
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// IDПапки - Строка - ID публичного каталога (shared folder ID) - folder
-// АдресаПочты - Строка, Массив Из Строка - Список адресов почты добавляемых пользователей - emails
-// ТолькоПросмотр - Булево - Запрещает редактирование файла для стороннего пользователя - readonly
-//
-// Возвращаемое значение:
-// Неопределено - пустой ответ
-Функция ДобавитьПользователейКПапке(Знач Токен, Знач IDПапки, Знач АдресаПочты, Знач ТолькоПросмотр = Истина) Экспорт
-
- Строка_ = "Строка";
-
- OPI_ПреобразованиеТипов.ПолучитьМассив(АдресаПочты);
- OPI_ПреобразованиеТипов.ПолучитьБулево(ТолькоПросмотр);
- Режим = ?(ТолькоПросмотр, "viewer", "editor");
-
- URL = "https://api.dropboxapi.com/2/sharing/add_folder_member";
-
- МассивПользователей = Новый Массив;
-
- Для Каждого Адрес Из АдресаПочты Цикл
-
- ДанныеПользователя = Новый Соответствие;
- OPI_Инструменты.ДобавитьПоле(".tag" , "email", Строка_, ДанныеПользователя);
- OPI_Инструменты.ДобавитьПоле("email", Адрес , Строка_, ДанныеПользователя);
-
- СтруктураПользователя = Новый Структура("member,access_level", ДанныеПользователя, Режим);
-
- МассивПользователей.Добавить(СтруктураПользователя);
-
- КонецЦикла;
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("shared_folder_id", IDПапки , Строка_ , Параметры);
- OPI_Инструменты.ДобавитьПоле("members" , МассивПользователей , "Массив", Параметры);
-
- Заголовки = ПолучитьЗаголовкиЗапроса(Токен);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить статус асинхронного изменения
-// Получает статус асинхронной работы по изменению доступов
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// IDРаботы - Строка - ID асинхронной работы - job
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Dropbox
-Функция ПолучитьСтатусАсинхронногоИзменения(Знач Токен, Знач IDРаботы) Экспорт
-
- URL = "https://api.dropboxapi.com/2/sharing/check_job_status";
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("async_job_id", IDРаботы, "Строка", Параметры);
-
- Заголовки = ПолучитьЗаголовкиЗапроса(Токен);
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Отменить публикацию файла
-// Запрещает доступ к файлу для внешних пользователей
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// IDФайла - Строка - ID файла, к которому предоставляется доступ - fileid
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Dropbox
-Функция ОтменитьПубликациюФайла(Знач Токен, Знач IDФайла) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(IDФайла);
-
- Если Не СтрНачинаетсяС(IDФайла, "id:") Тогда
- IDФайла = "id:" + IDФайла;
- КонецЕсли;
-
- URL = "https://api.dropboxapi.com/2/sharing/unshare_file";
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("file", IDФайла, "Строка", Параметры);
-
- Заголовки = ПолучитьЗаголовкиЗапроса(Токен);
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-#КонецОбласти
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-Функция PostBinary(Знач URL, Знач Данные, Знач Заголовки) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Данные);
-
- HttpКлиент = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать(URL)
- .УстановитьТипДанных("application/octet-stream")
- .УстановитьЗаголовки(Заголовки);
-
- Если Данные.Размер() > 0 Тогда
- HttpКлиент.УстановитьДвоичноеТело(Данные);
- КонецЕсли;
-
- Возврат HttpКлиент.ОбработатьЗапрос("POST").ВернутьОтветКакJSONКоллекцию(Истина, Истина);
-
-КонецФункции
-
-Функция ОбработатьОбъект(Знач Токен, Знач URL, Знач Путь, Знач ВЗаголовках = Ложь)
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("path", Путь, "Строка", Параметры);
-
- Если ВЗаголовках Тогда
- Заголовки = ПолучитьЗаголовкиЗапроса(Токен, Параметры);
- Ответ = PostBinary(URL, ПолучитьДвоичныеДанныеИзСтроки(""), Заголовки);
- Иначе
- Заголовки = ПолучитьЗаголовкиЗапроса(Токен);
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, Заголовки);
- КонецЕсли;
-
- Возврат Ответ;
-
-КонецФункции
-
-Функция ОбработатьТег(Знач Токен, Знач Путь, Знач Тег, Знач ЭтоУдаление = Ложь)
-
- Если ЭтоУдаление Тогда
- URL = "https://api.dropboxapi.com/2/files/tags/remove";
- Иначе
- URL = "https://api.dropboxapi.com/2/files/tags/add";
- КонецЕсли;
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("path" , Путь, "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("tag_text" , Тег , "Строка", Параметры);
-
- Заголовки = ПолучитьЗаголовкиЗапроса(Токен);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-Функция ПолучитьЗаголовкиЗапроса(Знач Токен, Знач Параметры = "")
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
-
- Заголовки = Новый Соответствие;
- Заголовки.Вставить("Authorization" , "Bearer " + Токен);
-
- Если ЗначениеЗаполнено(Параметры) Тогда
-
- JSON = OPI_Инструменты.JSONСтрокой(Параметры, "Нет");
- JSON = СтрЗаменить(JSON, Символы.ВК + Символы.ПС, "");
-
- Заголовки.Вставить("Dropbox-API-Arg", JSON);
-
- КонецЕсли;
-
- Возврат Заголовки;
-
-КонецФункции
-
-Функция ЗагрузитьБольшойФайл(Знач Токен, Знач Файл, Знач Путь, Знач Режим)
-
- URL = "https://content.dropboxapi.com/2/files/upload_session/append_v2";
-
- РазмерЧасти = 100000000;
- ТекущаяПозиция = 0;
- ПрочитаноБайт = 0;
- ОбщийРазмер = Файл.Размер();
- Сессия = ОткрытьСессию(Токен);
-
- Если OPI_Инструменты.ЭтоКоллекция(Сессия) Тогда
- Возврат Сессия;
- КонецЕсли;
-
- Пока ПрочитаноБайт < ОбщийРазмер Цикл
-
- Отступ = ТекущаяПозиция;
- Курсор = Новый Структура("offset,session_id", Отступ, Сессия);
-
- Параметры = Новый Структура("cursor", Курсор);
- Заголовки = ПолучитьЗаголовкиЗапроса(Токен, Параметры);
-
- ЧтениеДанных = Новый ЧтениеДанных(Файл);
- ПрочитаноБайт = ЧтениеДанных.Пропустить(ТекущаяПозиция);
- Результат = ЧтениеДанных.Прочитать(РазмерЧасти);
- ТекущиеДанные = Результат.ПолучитьДвоичныеДанные();
- РазмерТекущих = ТекущиеДанные.Размер();
- СледующаяПозиция = ТекущаяПозиция + РазмерТекущих;
-
- Если РазмерТекущих = 0 Тогда
- Прервать;
- КонецЕсли;
-
- Ответ = PostBinary(URL, ТекущиеДанные, Заголовки);
-
- ТекущаяПозиция = СледующаяПозиция;
-
- КБайт = 1024;
- МБайт = КБайт * КБайт;
- OPI_Инструменты.ИнформацияОПрогрессе(ТекущаяПозиция, ОбщийРазмер, "МБ", МБайт);
-
- // !OInt ВыполнитьСборкуМусора();
- // !OInt ОсвободитьОбъект(ТекущиеДанные);
-
- КонецЦикла;
-
- Ответ = ЗакрытьСессию(Токен, Путь, Режим, ОбщийРазмер, Сессия);
-
- Возврат Ответ;
-
-КонецФункции
-
-Функция ЗагрузитьМалыйФайл(Знач Токен, Знач Файл, Знач Путь, Знач Режим)
-
- Булево_ = "Булево";
- Строка_ = "Строка";
- URL = "https://content.dropboxapi.com/2/files/upload";
-
- Параметры = Новый Структура;
-
- OPI_Инструменты.ДобавитьПоле("autorename" , Ложь , Булево_, Параметры);
- OPI_Инструменты.ДобавитьПоле("mode" , Режим, Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("mute" , Ложь , Булево_, Параметры);
- OPI_Инструменты.ДобавитьПоле("path" , Путь , Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("strict_conflict", Ложь , Булево_, Параметры);
-
- Заголовки = ПолучитьЗаголовкиЗапроса(Токен, Параметры);
-
- Ответ = PostBinary(URL, Файл, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-Функция ОткрытьСессию(Знач Токен)
-
- SessionId = "session_id";
- URL = "https://content.dropboxapi.com/2/files/upload_session/start";
- Заголовки = ПолучитьЗаголовкиЗапроса(Токен);
-
- Ответ = PostBinary(URL, ПолучитьДвоичныеДанныеИзСтроки(""), Заголовки);
-
- Сессия = Ответ[SessionId];
-
- Если Сессия = Неопределено Тогда
- Сессия = Ответ;
- КонецЕсли;
-
- Возврат Сессия;
-
-КонецФункции
-
-Функция ЗакрытьСессию(Знач Токен, Знач Путь, Знач Режим, Знач ОбщийРазмер, Знач Сессия)
-
- URL = "https://content.dropboxapi.com/2/files/upload_session/finish";
-
- Коммит = Новый Структура();
- OPI_Инструменты.ДобавитьПоле("mode", Режим, "Строка", Коммит);
- OPI_Инструменты.ДобавитьПоле("path", Путь , "Строка", Коммит);
-
- Курсор = Новый Структура("offset,session_id", ОбщийРазмер, Сессия);
-
- Параметры = Новый Структура("commit,cursor", Коммит, Курсор);
- Заголовки = ПолучитьЗаголовкиЗапроса(Токен, Параметры);
-
- Ответ = PostBinary(URL, ПолучитьДвоичныеДанныеИзСтроки(""), Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-Функция ПолучитьАккаунт(Знач Токен, Знач Аккаунт)
-
- URL = "https://api.dropboxapi.com/2/users/get_account";
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("account_id", Аккаунт, "Строка", Параметры);
-
- Заголовки = ПолучитьЗаголовкиЗапроса(Токен);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-Функция ПолучитьСвойАккаунт(Знач Токен)
-
- URL = "https://api.dropboxapi.com/2/users/get_current_account";
- Заголовки = ПолучитьЗаголовкиЗапроса(Токен);
-
- Ответ = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать(URL)
- .УстановитьДвоичноеТело("null")
- .УстановитьЗаголовки(Заголовки)
- .УстановитьТипДанных("text/plain; charset=dropbox-cors-hack")
- .ОбработатьЗапрос("POST")
- .ВернутьОтветКакJSONКоллекцию(Истина, Истина);
-
- Возврат Ответ;
-
-КонецФункции
-
-#КонецОбласти
diff --git a/XML/CommonModules/OPI_FTP.xml b/XML/CommonModules/OPI_FTP.xml
deleted file mode 100644
index 83d97b9db5..0000000000
--- a/XML/CommonModules/OPI_FTP.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- OPI_FTP
-
-
- ru
- FTP (ОПИ)
-
-
- Модуль для работы с FTP из набора ОПИ
- false
- false
- true
- true
- true
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git a/XML/CommonModules/OPI_FTP/Ext/Module.bsl b/XML/CommonModules/OPI_FTP/Ext/Module.bsl
deleted file mode 100644
index 32f267c72a..0000000000
--- a/XML/CommonModules/OPI_FTP/Ext/Module.bsl
+++ /dev/null
@@ -1,1143 +0,0 @@
-// OneScript: ./OInt/core/Modules/OPI_FTP.os
-// Lib: FTP
-// CLI: ftp
-// Keywords: ftp, ftps
-
-// MIT License
-
-// Copyright (c) 2023-2025 Anton Tsitavets
-
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-
-// The above copyright notice and this permission notice shall be included in all
-// copies or substantial portions of the Software.
-
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-// SOFTWARE.
-
-// https://github.com/Bayselonarrend/OpenIntegrations
-
-// BSLLS:Typo-off
-// BSLLS:LatinAndCyrillicSymbolInWord-off
-// BSLLS:IncorrectLineBreak-off
-// BSLLS:NumberOfOptionalParams-off
-// BSLLS:UsingServiceTag-off
-// BSLLS:LineLength-off
-// BSLLS:UsingSynchronousCalls-off
-// BSLLS:MagicNumber-off
-
-//@skip-check module-structure-top-region
-//@skip-check module-structure-method-in-regions
-//@skip-check wrong-string-literal-content
-//@skip-check method-too-many-params
-
-#Область ПрограммныйИнтерфейс
-
-#Область ОсновныеМетоды
-
-// Открыть соединение !NOCLI
-// Открывает FTP соединение с указанными настройками
-//
-// Параметры:
-// НастройкиFTP - Структура Из КлючИЗначение - Настройки FTP. См. ПолучитьНастройкиСоединения - set
-// Прокси - Структура Из КлючИЗначение - Настройки прокси, если необходимо. См. ПолучитьНастройкиПрокси - proxy
-// Tls - Структура Из КлючИЗначение - Настройки TLS, если необходимо. См. ПолучитьНастройкиTls - tls
-//
-// Возвращаемое значение:
-// Произвольный - Объект коннектора или соответствие с информацией об ошибке
-Функция ОткрытьСоединение(Знач НастройкиFTP, Знач Прокси = Неопределено, Знач Tls = Неопределено) Экспорт
-
- Result_ = "result";
-
- Если ЭтоКоннектор(НастройкиFTP) Тогда
- Возврат НастройкиFTP;
- КонецЕсли;
-
- Коннектор = OPI_Компоненты.ПолучитьКомпоненту("FTP");
-
- УстановкаНастроек = УстановитьНастройкиFtp(Коннектор, НастройкиFTP);
-
- Если Не OPI_Инструменты.ПолучитьИли(УстановкаНастроек, Result_, Ложь) Тогда
- Возврат УстановкаНастроек;
- КонецЕсли;
-
- Tls = OPI_Компоненты.УстановитьTls(Коннектор, Tls);
-
- Если Не OPI_Инструменты.ПолучитьИли(Tls, Result_, Ложь) Тогда
- Возврат Tls;
- КонецЕсли;
-
- УстановитьПрокси = УстановитьНастройкиПрокси(Коннектор, Прокси);
-
- Если Не OPI_Инструменты.ПолучитьИли(УстановитьПрокси, Result_, Ложь) Тогда
- Возврат УстановитьПрокси;
- КонецЕсли;
-
- Результат = Коннектор.Connect();
- Результат = OPI_Инструменты.JSONВСтруктуру(Результат);
-
- Возврат ?(Результат[Result_], Коннектор, Результат);
-
-КонецФункции
-
-// Получить конфигурацию соединения
-// Формирует полную структуру настроек соединения, которая может быть использована вместо самого соединения при вызове других функций
-//
-// Примечание:
-// Может быть передана в качестве параметра `Соединение` в других функциях вместо настоящего соединения из функции `ОткрытьСоединение`.^^
-// При этом новое соединение будет открыто и закрыто в рамках вызываемой функции
-// Не рекомендуется использовать конфигурацию соединения при множественных обращениях к серверу FTP.^^
-// Данный функционал предназначен, в первую очередь для CLI версии ОПИ, где хранение соединения между вызовами невозможно
-//
-// Параметры:
-// НастройкиFTP - Структура Из КлючИЗначение - Настройки FTP. См. ПолучитьНастройкиСоединения - set
-// Прокси - Структура Из КлючИЗначение - Настройки прокси, если необходимо. См. ПолучитьНастройкиПрокси - proxy
-// Tls - Структура Из КлючИЗначение - Настройки TLS, если необходимо. См. ПолучитьНастройкиTls - tls
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - Структура настроек соединения
-Функция ПолучитьКонфигурациюСоединения(Знач НастройкиFTP, Знач Прокси = Неопределено, Знач Tls = Неопределено) Экспорт
-
- Коллекция_ = "Коллекция";
- СтруктураКонфигурации = Новый Структура;
-
- OPI_Инструменты.ДобавитьПоле("set" , НастройкиFTP, Коллекция_, СтруктураКонфигурации);
- OPI_Инструменты.ДобавитьПоле("proxy", Прокси , Коллекция_, СтруктураКонфигурации);
- OPI_Инструменты.ДобавитьПоле("tls" , Tls , Коллекция_, СтруктураКонфигурации);
-
- Возврат СтруктураКонфигурации;
-
-КонецФункции
-
-// Закрыть соединение !NOCLI
-// Явно закрывает переданное соединение
-//
-// Параметры:
-// Соединение - Произвольный - Объект компоненты с открытым соединением - conn
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - Результат закрытия соединения
-Функция ЗакрытьСоединение(Знач Соединение) Экспорт
-
- ПроверитьСоздатьСоединение(Соединение);
-
- Если Не ЭтоКоннектор(Соединение) Тогда
- Возврат Соединение;
- КонецЕсли;
-
- Результат = Соединение.Close();
- Результат = OPI_Инструменты.JsonВСтруктуру(Результат);
-
- //@skip-check constructor-function-return-section
- Возврат Результат;
-
-КонецФункции
-
-// Получить приветственное сообщение
-// Получает приветственное сообщение сервера FTP
-//
-// Параметры:
-// Соединение - Произвольный - Существующее соединение или конфигурация соединения - conn
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат обработки
-Функция ПолучитьПриветственноеСообщение(Знач Соединение) Экспорт
-
- ЗакрыватьСоединение = ПроверитьСоздатьСоединение(Соединение);
-
- Если Не ЭтоКоннектор(Соединение) Тогда
- Возврат Соединение;
- Иначе
- Результат = Соединение.GetWelcomeMsg();
- Результат = OPI_Инструменты.JsonВСтруктуру(Результат);
- КонецЕсли;
-
- Если ЗакрыватьСоединение Тогда
- Результат.Вставить("close_connection", ЗакрытьСоединение(Соединение));
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-// Получить список расширений протокола
-// Получает список расширений протокола FTP, поддерживаемых сервером
-//
-// Примечание:
-// Команда FTP: `FEAT`
-//
-// Параметры:
-// Соединение - Произвольный - Существующее соединение или конфигурация соединения - conn
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат обработки
-Функция ПолучитьСписокРасширенийПротокола(Знач Соединение) Экспорт
-
- ЗакрыватьСоединение = ПроверитьСоздатьСоединение(Соединение);
-
- Если Не ЭтоКоннектор(Соединение) Тогда
- Возврат Соединение;
- Иначе
- Результат = Соединение.GetFeatures();
- Результат = OPI_Инструменты.JsonВСтруктуру(Результат);
- КонецЕсли;
-
- Если ЗакрыватьСоединение Тогда
- Результат.Вставить("close_connection", ЗакрытьСоединение(Соединение));
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-// Пинг
-// Проверяет активность соединения и сбрасывает таймаут до его автоматического закрытия
-//
-// Примечание:
-// Команда FTP: `NOOP`
-//
-// Параметры:
-// Соединение - Произвольный - Существующее соединение или конфигурация соединения - conn
-//
-// Возвращаемое значение:
-// Булево - Успешность обращения к серверу
-Функция Пинг(Знач Соединение) Экспорт
-
- ПроверитьСоздатьСоединение(Соединение);
-
- Если Не ЭтоКоннектор(Соединение) Тогда
- Возврат Соединение;
- Иначе
- Результат = Соединение.Ping();
- КонецЕсли;
-
- ЗакрытьСоединение(Соединение);
-
- Возврат Результат;
-
-КонецФункции
-
-// Выполнить нестандартную команду
-// Выполняет специфическую (SITE) команду сервера и возвращает ответ
-//
-// Примечание:
-// Результат может быть возвращен как текст или Base64 довичные данные в структуре `{"BYTES": }`
-// Команда FTP: `SITE`
-//
-// Параметры:
-// Соединение - Произвольный - Существующее соединение или конфигурация соединения - conn
-// ТекстКоманды - Строка - Текст выполняемой команды - cmd
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат обработки
-Функция ВыполнитьНестандартнуюКоманду(Знач Соединение, Знач ТекстКоманды) Экспорт
-
- ЗакрыватьСоединение = ПроверитьСоздатьСоединение(Соединение);
-
- Если Не ЭтоКоннектор(Соединение) Тогда
- Возврат Соединение;
- Иначе
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(ТекстКоманды);
-
- Результат = Соединение.ExecuteCommand(ТекстКоманды);
- Результат = OPI_Инструменты.JsonВСтруктуру(Результат);
-
- КонецЕсли;
-
- Если ЗакрыватьСоединение Тогда
- Результат.Вставить("close_connection", ЗакрытьСоединение(Соединение));
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-// Выполнить произвольную команду
-// Отправляет произвольный текстовый запрос на сервер для обработки
-//
-// Параметры:
-// Соединение - Произвольный - Существующее соединение или конфигурация соединения - conn
-// ТекстКоманды - Строка - Текст выполняемой команды - cmd
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат обработки
-Функция ВыполнитьПроизвольнуюКоманду(Знач Соединение, Знач ТекстКоманды) Экспорт
-
- ЗакрыватьСоединение = ПроверитьСоздатьСоединение(Соединение);
-
- Если Не ЭтоКоннектор(Соединение) Тогда
- Возврат Соединение;
- Иначе
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(ТекстКоманды);
-
- Результат = Соединение.ExecuteStandardCommand(ТекстКоманды);
- Результат = OPI_Инструменты.JsonВСтруктуру(Результат);
-
- КонецЕсли;
-
- Если ЗакрыватьСоединение Тогда
- Результат.Вставить("close_connection", ЗакрытьСоединение(Соединение));
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-// Получить размер объекта
-// Получает размер файла или директории, если она существуют
-//
-// Примечание:
-// Команда FTP: `SIZE`
-//
-// Параметры:
-// Соединение - Произвольный - Существующее соединение или конфигурация соединения - conn
-// Путь - Строка - Путь к объекту - path
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат обработки
-Функция ПолучитьРазмерОбъекта(Знач Соединение, Знач Путь) Экспорт
-
- ЗакрыватьСоединение = ПроверитьСоздатьСоединение(Соединение);
-
- Если Не ЭтоКоннектор(Соединение) Тогда
- Возврат Соединение;
- Иначе
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Путь);
-
- Результат = Соединение.GetObjectSize(Путь);
- Результат = OPI_Инструменты.JsonВСтруктуру(Результат);
-
- КонецЕсли;
-
- Если ЗакрыватьСоединение Тогда
- Результат.Вставить("close_connection", ЗакрытьСоединение(Соединение));
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-// Изменить путь
-// Изменяет путь объекта на указанный
-//
-// Примечание:
-// Возможность перемещения объекта из одного каталога в другой при помощи изменения пути зависит от настроек сервера
-// Команда FTP: `RNFR + RNTO`
-//
-// Параметры:
-// Соединение - Произвольный - Существующее соединение или конфигурация соединения - conn
-// Путь - Строка - Текущий путь к объекту - old
-// НовыйПуть - Строка - Новый путь к объекту - new
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат обработки
-Функция ИзменитьПуть(Знач Соединение, Знач Путь, Знач НовыйПуть) Экспорт
-
- ЗакрыватьСоединение = ПроверитьСоздатьСоединение(Соединение);
-
- Если Не ЭтоКоннектор(Соединение) Тогда
- Возврат Соединение;
- Иначе
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Путь);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(НовыйПуть);
-
- Результат = Соединение.RenameObject(Путь, НовыйПуть);
- Результат = OPI_Инструменты.JsonВСтруктуру(Результат);
-
- КонецЕсли;
-
- Если ЗакрыватьСоединение Тогда
- Результат.Вставить("close_connection", ЗакрытьСоединение(Соединение));
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-// Это коннектор !NOCLI
-// Проверяет, что значение является объектом внешней компоненты для работы с FTP
-//
-// Параметры:
-// Значение - Произвольный - Значение для проверки - value
-//
-// Возвращаемое значение:
-// Булево - Это коннектор
-Функция ЭтоКоннектор(Знач Значение) Экспорт
-
- Возврат Строка(ТипЗнч(Значение)) = "AddIn.OPI_FTP.Main";
-
-КонецФункции
-
-// BSLLS:NumberOfParams-off
-
-// Получить настройки соединения
-// Формирует структуру настроек подключения FTP
-//
-// Примечание:
-// При `РазрешениеIP = Истина` адрес для подключения, возвращаемый сервером в пассивном режиме после `PASV`, будет заменен на IP^^
-// сервера из поля `Хост` в тех случаях, когда используется прокси или сервер вернул `127.0.0.1` (только при указании IP адреса в поле `Хост`)
-//
-// Параметры:
-// Хост - Строка - Адрес сервера - host
-// Порт - Число - Порт сервера - port
-// Логин - Строка, Неопределено - Имя пользователя авторизации, если необходимо - login
-// Пароль - Строка, Неопределено - Пароль пользователя для авторизации, если необходимо - pass
-// Пассивный - Булево - Пассивный режим соединения - passive
-// ТаймаутЧтения - Число - Таймаут чтения - rtout
-// ТаймаутЗаписи - Число - Таймаут записи - wtout
-// РазрешениеIP - Булево - Расширенное определение адресов в пассивном режиме - ipresl
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - Структура настроек соединения
-Функция ПолучитьНастройкиСоединения(Знач Хост
- , Знач Порт = 21
- , Знач Логин = Неопределено
- , Знач Пароль = Неопределено
- , Знач Пассивный = Истина
- , Знач ТаймаутЧтения = 120
- , Знач ТаймаутЗаписи = 120
- , Знач РазрешениеIP = Истина) Экспорт
-
- Число_ = "Число";
-
- СтруктураНастроек = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("domain" , Хост , "Строка", СтруктураНастроек);
- OPI_Инструменты.ДобавитьПоле("port" , Порт , Число_ , СтруктураНастроек);
- OPI_Инструменты.ДобавитьПоле("passive" , Пассивный , "Булево", СтруктураНастроек);
- OPI_Инструменты.ДобавитьПоле("read_timeout" , ТаймаутЧтения , Число_ , СтруктураНастроек);
- OPI_Инструменты.ДобавитьПоле("write_timeout" , ТаймаутЗаписи , Число_ , СтруктураНастроек);
- OPI_Инструменты.ДобавитьПоле("advanced_resolve", РазрешениеIP , "Булево", СтруктураНастроек);
-
- Если Не Логин = Неопределено Тогда
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Логин);
- СтруктураНастроек.Вставить("login", Логин);
- КонецЕсли;
-
- Если Не Пароль = Неопределено Тогда
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Пароль);
- СтруктураНастроек.Вставить("password", Пароль);
- КонецЕсли;
-
- //@skip-check constructor-function-return-section
- Возврат СтруктураНастроек;
-
-КонецФункции
-
-// BSLLS:NumberOfParams-on
-
-// Получить настройки прокси
-// Формирует структуру настроек прокси-сервера для соединения
-//
-// Параметры:
-// Адрес - Строка - Адрес прокси - addr
-// Порт - Число - Порт прокси - port
-// Вид - Строка - Вид прокси: socks5, socks4, http - type
-// Логин - Строка, Неопределено - Логин авторизации, если необходимо - login
-// Пароль - Строка, Неопределено - Пароль для авторизации, если необходимо - pass
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - Структура настроек прокси
-Функция ПолучитьНастройкиПрокси(Знач Адрес
- , Знач Порт
- , Знач Вид = "socks5"
- , Знач Логин = Неопределено
- , Знач Пароль = Неопределено) Экспорт
-
- //@skip-check constructor-function-return-section
- Возврат OPI_Компоненты.ПолучитьНастройкиПрокси(Адрес, Порт, Вид, Логин, Пароль);
-
-КонецФункции
-
-// Получить настройки TLS
-// Формирует настройки для использования TLS при выполнении запросов
-//
-// Примечание:
-// Настройки Tls могут быть установлены только в момент создания соединения: явного, при использовании функции `ОткрытьСоединение`^^
-// или неявного, при передаче настроек
-//
-// Параметры:
-// ОтключитьПроверкуСертификатов - Булево - Позволяет работать с некорретными сертификатами, в т.ч. самоподписанными - trust
-// ПутьКСертификату - Строка - Путь к корневому PEM файлу сертификата, если его нет в системном хранилище - cert
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - Структура настроек TLS соединения
-Функция ПолучитьНастройкиTls(Знач ОтключитьПроверкуСертификатов, Знач ПутьКСертификату = "") Экспорт
-
- Возврат OPI_Компоненты.ПолучитьНастройкиTls(ОтключитьПроверкуСертификатов, ПутьКСертификату);
-
-КонецФункции
-
-#КонецОбласти
-
-#Область РаботаСДиректориями
-
-// Получить список объектов
-// Получает информацию о содержимом директории по выбранному пути
-//
-// Примечание:
-// Команда FTP: `LIST`
-//
-// Параметры:
-// Соединение - Произвольный - Существующее соединение или конфигурация соединения - conn
-// Путь - Строка - Путь к директории поиска - path
-// Рекурсивно - Булево - Получать информацию об объектах во вложенных директориях - rcv
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат обработки
-Функция ПолучитьСписокОбъектов(Знач Соединение, Знач Путь = "", Знач Рекурсивно = Ложь) Экспорт
-
- ЗакрыватьСоединение = ПроверитьСоздатьСоединение(Соединение);
-
- Если Не ЭтоКоннектор(Соединение) Тогда
- Возврат Соединение;
- КонецЕсли;
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Путь);
- OPI_ПреобразованиеТипов.ПолучитьБулево(Рекурсивно);
-
- Путь = ?(Путь = ".", "", Путь);
-
- Результат = Соединение.ListDirectory(Путь);
- Результат = OPI_Инструменты.JsonВСтруктуру(Результат);
-
- Если Результат["result"] Тогда
-
- СписокОбъектов = Результат["data"];
-
- ОбработатьСписокОбъектов(СписокОбъектов, Путь, Соединение, Рекурсивно);
-
- Результат = Новый Соответствие;
- Результат.Вставить("result", Истина);
- Результат.Вставить("data" , СписокОбъектов);
-
- КонецЕсли;
-
- Если ЗакрыватьСоединение Тогда
- Результат.Вставить("close_connection", ЗакрытьСоединение(Соединение));
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-// Создать новую директорию
-// Создает директорию по указанному пути
-//
-// Примечание:
-// Команда FTP: `MKD`
-//
-// Параметры:
-// Соединение - Произвольный - Существующее соединение или конфигурация соединения - conn
-// Путь - Строка - Путь к новой директории - path
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат обработки
-Функция СоздатьНовуюДиректорию(Знач Соединение, Знач Путь) Экспорт
-
- ЗакрыватьСоединение = ПроверитьСоздатьСоединение(Соединение);
-
- Если Не ЭтоКоннектор(Соединение) Тогда
- Возврат Соединение;
- Иначе
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Путь);
-
- Результат = Соединение.MakeDirectory(Путь);
- Результат = OPI_Инструменты.JsonВСтруктуру(Результат);
-
- КонецЕсли;
-
- Если ЗакрыватьСоединение Тогда
- Результат.Вставить("close_connection", ЗакрытьСоединение(Соединение));
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-// Удалить директорию
-// Удаляет существующую директорию
-//
-// Примечание:
-// Команда FTP: `RMD`
-//
-// Параметры:
-// Соединение - Произвольный - Существующее соединение или конфигурация соединения - conn
-// Путь - Строка - Путь к удаляемой директории - path
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат обработки
-Функция УдалитьДиректорию(Знач Соединение, Знач Путь) Экспорт
-
- Возврат ОчиститьУдалитьДиректорию(Соединение, Путь, Истина);
-
-КонецФункции
-
-// Очистить директорию
-// Очищает выбранную директорию
-//
-// Параметры:
-// Соединение - Произвольный - Существующее соединение или конфигурация соединения - conn
-// Путь - Строка - Путь к очищаемой директории - path
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат обработки
-Функция ОчиститьДиректорию(Знач Соединение, Знач Путь) Экспорт
-
- Возврат ОчиститьУдалитьДиректорию(Соединение, Путь, Ложь);
-
-КонецФункции
-
-// Получить текущий каталог
-// Получает текущий каталог, от которого вычисляются относительные пути
-//
-// Примечание:
-// Команда FTP: `PWD`
-//
-// Параметры:
-// Соединение - Произвольный - Существующее соединение или конфигурация соединения - conn
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат обработки
-Функция ПолучитьТекущийКаталог(Знач Соединение) Экспорт
-
- ЗакрыватьСоединение = ПроверитьСоздатьСоединение(Соединение);
-
- Если Не ЭтоКоннектор(Соединение) Тогда
- Возврат Соединение;
- Иначе
- Результат = Соединение.GetCurrentDirectory();
- Результат = OPI_Инструменты.JsonВСтруктуру(Результат);
- КонецЕсли;
-
- Если ЗакрыватьСоединение Тогда
- Результат.Вставить("close_connection", ЗакрытьСоединение(Соединение));
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-// Изменить текущий каталог !NOCLI
-// Изменяет текущий каталог, от которого вычисляются относительные пути
-//
-// Примечание:
-// Команда FTP: `CWD`
-//
-// Параметры:
-// Соединение - Произвольный - Существующее соединение или конфигурация соединения - conn
-// Путь - Строка - Путь к новой директории - path
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат обработки
-Функция ИзменитьТекущийКаталог(Знач Соединение, Знач Путь) Экспорт
-
- ЗакрыватьСоединение = ПроверитьСоздатьСоединение(Соединение);
-
- Если Не ЭтоКоннектор(Соединение) Тогда
- Возврат Соединение;
- Иначе
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Путь);
-
- Результат = Соединение.ChangeCurrentDirectory(Путь);
- Результат = OPI_Инструменты.JsonВСтруктуру(Результат);
-
- КонецЕсли;
-
- Если ЗакрыватьСоединение Тогда
- Результат.Вставить("close_connection", ЗакрытьСоединение(Соединение));
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область РаботаСФайлами
-
-// Загрузить файл
-// Загружает файл с диска или двоичные данные на сервер FTP
-//
-// Примечание:
-// Команда FTP: `STOR`
-//
-// Параметры:
-// Соединение - Произвольный - Существующее соединение или конфигурация соединения - conn
-// Файл - Строка, ДвоичныеДанные - Файл на диске или данные файла - file
-// Путь - Строка - Путь сохранения файла на сервере - path
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат обработки
-Функция ЗагрузитьФайл(Знач Соединение, Знач Файл, Знач Путь) Экспорт
-
- ЗакрыватьСоединение = ПроверитьСоздатьСоединение(Соединение);
-
- Если Не ЭтоКоннектор(Соединение) Тогда
- Возврат Соединение;
- Иначе
-
- СоединениеОбработки = ПолучитьСоединениеДляФайловойОперации(Соединение, ЗакрыватьСоединение);
-
- Если Не ЭтоКоннектор(СоединениеОбработки) Тогда
- Возврат СоединениеОбработки;
- КонецЕсли;
-
- Если ТипЗнч(Файл) = Тип("Строка") Тогда
- ФайлНаДиске = Новый Файл(Файл);
- ЭтоФайлНаДиске = ФайлНаДиске.Существует();
- Иначе
- ЭтоФайлНаДиске = Ложь;
- КонецЕсли;
-
- Если Не ЭтоФайлНаДиске Тогда
-
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Файл);
-
- Если OPI_Компоненты.ТребуетсяПередачаЧерезФайл() Тогда
-
- // BSLLS:MissingTemporaryFileDeletion-off
-
- //@skip-check missing-temporary-file-deletion
- ИВФ = ПолучитьИмяВременногоФайла();
-
- // BSLLS:MissingTemporaryFileDeletion-on
-
- Файл.Записать(ИВФ);
-
- Результат = СоединениеОбработки.UploadFile(ИВФ, Путь);
-
- OPI_Инструменты.УдалитьФайлВПопытке(ИВФ, "Не удалось удалить временный файл после загрузки");
-
- Иначе
- Результат = СоединениеОбработки.UploadData(Файл, Путь);
- КонецЕсли;
-
- Иначе
- Результат = СоединениеОбработки.UploadFile(Файл, Путь);
- КонецЕсли;
-
- Результат = OPI_Инструменты.JsonВСтруктуру(Результат);
-
- КонецЕсли;
-
- Если ЗакрыватьСоединение Тогда
- Результат.Вставить("close_connection", ЗакрытьСоединение(Соединение));
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-// Удалить файл
-// Удаляет файл с сервера
-//
-// Примечание:
-// Команда FTP: `DELE`
-//
-// Параметры:
-// Соединение - Произвольный - Существующее соединение или конфигурация соединения - conn
-// Путь - Строка - Путь файла на сервере - path
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат обработки
-Функция УдалитьФайл(Знач Соединение, Знач Путь) Экспорт
-
- ЗакрыватьСоединение = ПроверитьСоздатьСоединение(Соединение);
-
- Если Не ЭтоКоннектор(Соединение) Тогда
- Возврат Соединение;
- Иначе
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Путь);
-
- Результат = Соединение.RemoveFile(Путь);
- Результат = OPI_Инструменты.JsonВСтруктуру(Результат);
-
- КонецЕсли;
-
- Если ЗакрыватьСоединение Тогда
- Результат.Вставить("close_connection", ЗакрытьСоединение(Соединение));
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-// Сохранить файл
-// Сохраняет файл с сервера по указанному пути
-//
-// Примечание:
-// Команда FTP: `RETR`
-//
-// Параметры:
-// Соединение - Произвольный - Существующее соединение или конфигурация соединения - conn
-// Путь - Строка - Путь файла на сервере - path
-// ИмяФайла - Строка - Путь для сохранения файла на диске - file
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат обработки
-Функция СохранитьФайл(Знач Соединение, Знач Путь, Знач ИмяФайла) Экспорт
-
- ЗакрыватьСоединение = ПроверитьСоздатьСоединение(Соединение);
-
- Если Не ЭтоКоннектор(Соединение) Тогда
- Возврат Соединение;
- Иначе
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Путь);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(ИмяФайла);
-
- OPI_Инструменты.ВернутьУправляющиеПоследовательности(ИмяФайла);
-
- Результат = Соединение.DownloadToFile(Путь, ИмяФайла);
- Результат = OPI_Инструменты.JsonВСтруктуру(Результат);
-
- КонецЕсли;
-
- Если ЗакрыватьСоединение Тогда
- Результат.Вставить("close_connection", ЗакрытьСоединение(Соединение));
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-// Получить данные файла !NOCLI
-// Получает файл с сервера как двоичные данные
-//
-// Примечание:
-// Команда FTP: `RETR`
-//
-// Параметры:
-// Соединение - Произвольный - Существующее соединение или конфигурация соединения - conn
-// Путь - Строка - Путь файла на сервере - path
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение, ДвоичныеДанные - Данные файла или информация об ошибке
-Функция ПолучитьДанныеФайла(Знач Соединение, Знач Путь) Экспорт
-
- ЗакрыватьСоединение = ПроверитьСоздатьСоединение(Соединение);
-
- Если Не ЭтоКоннектор(Соединение) Тогда
- Возврат Соединение;
- Иначе
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Путь);
-
- Если OPI_Компоненты.ТребуетсяПередачаЧерезФайл() Тогда
-
- // BSLLS:MissingTemporaryFileDeletion-off
-
- //@skip-check missing-temporary-file-deletion
- ИВФ = ПолучитьИмяВременногоФайла();
-
- // BSLLS:MissingTemporaryFileDeletion-on
-
- Результат = Соединение.DownloadToFile(Путь, ИВФ);
- Результат = OPI_Инструменты.JsonВСтруктуру(Результат);
-
- Если Результат["result"] Тогда
-
- Данные = Новый ДвоичныеДанные(ИВФ);
- OPI_Инструменты.УдалитьФайлВПопытке(ИВФ, "Не удалось удалить временный файл после загрузки");
- Возврат Данные;
-
- КонецЕсли;
-
- Иначе
-
- Данные = Соединение.DownloadToBuffer(Путь);
-
- Если ТипЗнч(Данные) = Тип("Строка") Тогда
- Результат = OPI_Инструменты.JsonВСтруктуру(Данные);
- Иначе
- Возврат Данные;
- КонецЕсли;
-
- КонецЕсли;
-
- КонецЕсли;
-
- Если ЗакрыватьСоединение Тогда
- Результат.Вставить("close_connection", ЗакрытьСоединение(Соединение));
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-#КонецОбласти
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-Функция УстановитьНастройкиFtp(Знач Коннектор, Знач НастройкиFTP)
-
- ТекстОшибки = "Настройки FTP не являются валидной структурой ключ-значение";
- Настройки = НастройкиВJson(НастройкиFTP, ТекстОшибки);
-
- Если ТипЗнч(Настройки) = Тип("Соответствие") Тогда
- Возврат Настройки;
- КонецЕсли;
-
- Результат = Коннектор.UpdateSettings(Настройки);
- Результат = OPI_Инструменты.JsonВСтруктуру(Результат);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция УстановитьНастройкиПрокси(Знач Коннектор, Знач НастройкиПрокси)
-
- Если НастройкиПрокси = Неопределено Тогда
- Результат = Новый Соответствие;
- Результат.Вставить("result", Истина);
- Возврат Результат;
- КонецЕсли;
-
- ТекстОшибки = "Настройки прокси не являются валидной структурой ключ-значение";
- Настройки = НастройкиВJson(НастройкиПрокси, ТекстОшибки);
-
- Если ТипЗнч(Настройки) = Тип("Соответствие") Тогда
- Возврат Настройки;
- КонецЕсли;
-
- Результат = Коннектор.UpdateProxy(Настройки);
- Результат = OPI_Инструменты.JsonВСтруктуру(Результат);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция НастройкиВJson(Знач Коллекция, Знач ТекстОшибки)
-
- OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(Коллекция);
-
- Попытка
- Результат = OPI_Инструменты.JSONСтрокой(Коллекция);
- Исключение
-
- Результат = Новый Соответствие;
- Результат.Вставить("result", Ложь);
- Результат.Вставить("error" , "Настройки FTP должны содержать только сериализуемые значения");
-
- КонецПопытки;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция ОткрытьСоединениеПоКонфигурации(Знач СтруктураКонфигурации)
-
- Если ЭтоКоннектор(СтруктураКонфигурации) Тогда
- Возврат СтруктураКонфигурации;
- КонецЕсли;
-
- ШаблонОшибки = "Передана некорректная конфигурация соединения: %1";
-
- Попытка
- OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(СтруктураКонфигурации);
- Исключение
-
- Результат = Новый Соответствие;
- Результат.Вставить("result", Ложь);
- Результат.Вставить("error" , СтрШаблон(ШаблонОшибки, ОписаниеОшибки()));
- Возврат Результат;
-
- КонецПопытки;
-
- Если Не OPI_Инструменты.ПолеКоллекцииСуществует(СтруктураКонфигурации, "set") Тогда
-
- Результат = Новый Соответствие;
- Результат.Вставить("result", Ложь);
- Результат.Вставить("error" , СтрШаблон(ШаблонОшибки, "отсутствуют основные параметры соединения"));
- Возврат Результат;
-
- КонецЕсли;
-
- НастройкиFTP = СтруктураКонфигурации["set"];
- Прокси = OPI_Инструменты.ПолучитьИли(СтруктураКонфигурации, "proxy", Неопределено);
- Tls = OPI_Инструменты.ПолучитьИли(СтруктураКонфигурации, "tls", Неопределено);
-
- Возврат ОткрытьСоединение(НастройкиFTP, Прокси, Tls);
-
-КонецФункции
-
-Функция ПроверитьСоздатьСоединение(Соединение)
-
- Если ЭтоКоннектор(Соединение) Тогда
-
- Проверка = Соединение.Ping();
-
- Если Не Проверка Тогда
- Соединение = ПолучитьКопиюСоединения(Соединение);
- КонецЕсли;
-
- ЗакрыватьСоединение = Ложь;
-
- Иначе
- ЗакрыватьСоединение = Истина;
- Соединение = ОткрытьСоединениеПоКонфигурации(Соединение);
- КонецЕсли;
-
- Возврат ЗакрыватьСоединение;
-
-КонецФункции
-
-Функция ОчиститьУдалитьДиректорию(Знач Соединение, Знач Путь, Знач УдалятьТекущую)
-
- ЗакрыватьСоединение = ПроверитьСоздатьСоединение(Соединение);
-
- Если Не ЭтоКоннектор(Соединение) Тогда
- Возврат Соединение;
- Иначе
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Путь);
- Результат = УдалитьДиректориюРекурсивно(Соединение, Путь, УдалятьТекущую);
-
- КонецЕсли;
-
- Если ЗакрыватьСоединение Тогда
- Результат.Вставить("close_connection", ЗакрытьСоединение(Соединение));
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция УдалитьДиректориюРекурсивно(Знач Соединение, Знач Путь, Знач УдалятьТекущую = Истина, МассивУдаленных = Неопределено)
-
- Если МассивУдаленных = Неопределено Тогда
- МассивУдаленных = Новый Массив;
- Основной = Истина;
- Иначе
- Основной = Ложь;
- КонецЕсли;
-
- ВложенныеОбъекты = ПолучитьСписокОбъектов(Соединение, Путь, Истина);
-
- Если ВложенныеОбъекты["result"] Тогда
- Для Каждого Объект Из ВложенныеОбъекты["data"] Цикл
-
- ПутьОбъекта = Объект["path"];
-
- Если Объект["is_directory"] Тогда
- Удаление = УдалитьДиректориюРекурсивно(Соединение, ПутьОбъекта, УдалятьТекущую, МассивУдаленных);
- Иначе
- Удаление = УдалитьФайл(Соединение, ПутьОбъекта);
- КонецЕсли;
-
- Удаление.Вставить("path", ПутьОбъекта);
- МассивУдаленных.Добавить(Удаление);
-
- КонецЦикла;
- Иначе
- Возврат ВложенныеОбъекты;
- КонецЕсли;
-
- Если Не Основной Или УдалятьТекущую Тогда
- Результат = Соединение.RemoveDirectory(Путь);
- Результат = OPI_Инструменты.JsonВСтруктуру(Результат);
- Иначе
- Результат = Новый Соответствие;
- Результат.Вставить("result", Истина);
- КонецЕсли;
-
- Если Основной Тогда
- Результат.Вставить("deleted_objects", МассивУдаленных);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция ПолучитьСоединениеДляФайловойОперации(Знач Соединение, Знач ЗакрыватьСоединение)
-
- Если ЗакрыватьСоединение Тогда
- Возврат Соединение;
- КонецЕсли;
-
- ЭтоTls = Соединение.IsTls();
-
- Если ЭтоTls Тогда
- // Избегание не всегда корректно отрабатывающего TLS Session reuse для нескольких data stream
- СоединениеОбработки = ПолучитьКопиюСоединения(Соединение);
- Иначе
- СоединениеОбработки = Соединение;
- КонецЕсли;
-
- Возврат СоединениеОбработки;
-
-КонецФункции
-
-Функция ПолучитьКопиюСоединения(Знач Соединение)
-
- Конфигурация = Соединение.GetConfiguration();
- Конфигурация = OPI_Инструменты.JSONВСтруктуру(Конфигурация);
-
- Если Не Конфигурация["result"] Тогда
- Возврат Конфигурация;
- КонецЕсли;
-
- Конфигурация = Конфигурация["data"];
-
- НастройкиFTP = Конфигурация["ftp_settings"];
- Прокси = Конфигурация["proxy_settings"];
- TLS = Конфигурация["tls_settings"];
-
- Возврат ОткрытьСоединение(НастройкиFTP, Прокси, TLS);
-
-КонецФункции
-
-Процедура ОбработатьСписокОбъектов(СписокОбъектов, Знач Путь, Знач Соединение, Знач Рекурсивно)
-
- Для Каждого Объект Из СписокОбъектов Цикл
-
- ИмяОбъекта = Объект["name"];
-
- Если ЗначениеЗаполнено(Путь) Тогда
- ПутьОбъекта = СтрШаблон("%1/%2", Путь, ИмяОбъекта);
- Иначе
- ПутьОбъекта = ИмяОбъекта;
- КонецЕсли;
-
- Объект.Вставить("path", ПутьОбъекта);
-
- Если Рекурсивно Тогда
- Если Объект["is_directory"] Тогда
-
- РезультатПодкаталога = ПолучитьСписокОбъектов(Соединение, ПутьОбъекта, Истина);
-
- Если Не РезультатПодкаталога["result"] Тогда
- Подкаталоги = РезультатПодкаталога;
- Иначе
- Подкаталоги = РезультатПодкаталога["data"];
- КонецЕсли;
-
- Объект.Вставить("objects", Подкаталоги);
-
- КонецЕсли;
- КонецЕсли;
-
- КонецЦикла;
-
-КонецПроцедуры
-
-#КонецОбласти
diff --git a/XML/CommonModules/OPI_GoogleCalendar.xml b/XML/CommonModules/OPI_GoogleCalendar.xml
deleted file mode 100644
index 0228673b18..0000000000
--- a/XML/CommonModules/OPI_GoogleCalendar.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
- OPI_GoogleCalendar
-
-
-
- OPI google calendar
-
-
- ru
- Google Calendar (ОПИ)
-
-
- Модуль для работы с Google Calendar из набора ОПИ
- false
- false
- true
- true
- true
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git a/XML/CommonModules/OPI_GoogleCalendar/Ext/Module.bsl b/XML/CommonModules/OPI_GoogleCalendar/Ext/Module.bsl
deleted file mode 100644
index 40cf599785..0000000000
--- a/XML/CommonModules/OPI_GoogleCalendar/Ext/Module.bsl
+++ /dev/null
@@ -1,656 +0,0 @@
-// OneScript: ./OInt/core/Modules/OPI_GoogleCalendar.os
-// Lib: Google Calendar
-// CLI: gcalendar
-// Keywords: google calendar, googlecalendar, gcalendar
-// Depends: OPI_GoogleWorkspace
-
-// MIT License
-
-// Copyright (c) 2023-2025 Anton Tsitavets
-
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-
-// The above copyright notice and this permission notice shall be included in all
-// copies or substantial portions of the Software.
-
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-// SOFTWARE.
-
-// https://github.com/Bayselonarrend/OpenIntegrations
-
-// BSLLS:LatinAndCyrillicSymbolInWord-off
-// BSLLS:IncorrectLineBreak-off
-// BSLLS:UsingServiceTag-off
-// BSLLS:UsingSynchronousCalls-off
-
-//@skip-check module-structure-top-region
-//@skip-check module-structure-method-in-regions
-//@skip-check wrong-string-literal-content
-
-#Область ПрограммныйИнтерфейс
-
-#Область РаботаСМетаданнымиКалендарей
-
-// Создать календарь
-// Создает пустой календарь
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// Наименование - Строка - Наименование создаваемого календаря - title
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Google
-Функция СоздатьКалендарь(Знач Токен, Знач Наименование) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Наименование);
-
- Заголовки = OPI_GoogleWorkspace.ПолучитьЗаголовокАвторизации(Токен);
- URL = "https://www.googleapis.com/calendar/v3/calendars";
-
- Параметры = Новый Структура;
- Параметры.Вставить("summary" , Наименование);
- Параметры.Вставить("timeZone", "Europe/Moscow");
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить календарь
-// Получает информацию о календаре по ID
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// Календарь - Строка - ID календаря - calendar
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Google
-Функция ПолучитьМетаданныеКалендаря(Знач Токен, Знач Календарь) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Календарь);
-
- Заголовки = OPI_GoogleWorkspace.ПолучитьЗаголовокАвторизации(Токен);
- URL = "https://www.googleapis.com/calendar/v3/calendars/" + Календарь;
- Ответ = OPI_ЗапросыHTTP.Get(URL, , Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Изменить календарь
-// Изменяет свойства существуещего календаря
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// Календарь - Строка - ID календаря - calendar
-// Наименование - Строка - Новое наименование - title
-// Описание - Строка - Новое описание календаря - description
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Google
-Функция ИзменитьМетаданныеКалендаря(Знач Токен
- , Знач Календарь
- , Знач Наименование = ""
- , Знач Описание = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Календарь);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Наименование);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Описание);
-
- Заголовки = OPI_GoogleWorkspace.ПолучитьЗаголовокАвторизации(Токен);
- URL = "https://www.googleapis.com/calendar/v3/calendars/" + Календарь;
-
- Параметры = Новый Структура;
-
- Если ЗначениеЗаполнено(Наименование) Тогда
- Параметры.Вставить("summary", Наименование);
- КонецЕсли;
-
- Если ЗначениеЗаполнено(Описание) Тогда
- Параметры.Вставить("description", Описание);
- КонецЕсли;
-
- Ответ = OPI_ЗапросыHTTP.PatchСТелом(URL, Параметры, Заголовки, Истина);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Очистить основной календарь
-// Очищает список событий основного календаря
-//
-// Параметры:
-// Токен - Строка - Токен - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Google
-Функция ОчиститьОсновнойКалендарь(Знач Токен) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
-
- Заголовки = OPI_GoogleWorkspace.ПолучитьЗаголовокАвторизации(Токен);
- URL = "https://www.googleapis.com/calendar/v3/calendars/primary/clear";
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, , Заголовки, Ложь);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Удалить календарь
-// Удаляет календарь по ID
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// Календарь - Строка - ID календаря - calendar
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Google
-Функция УдалитьКалендарь(Знач Токен, Знач Календарь) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Календарь);
-
- Заголовки = OPI_GoogleWorkspace.ПолучитьЗаголовокАвторизации(Токен);
- URL = "https://www.googleapis.com/calendar/v3/calendars/" + Календарь;
- Ответ = OPI_ЗапросыHTTP.Delete(URL, , Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область РаботаСоСпискомКалендарей
-
-// Получить список календарей
-// Получает массив календарей аккаунта
-//
-// Параметры:
-// Токен - Строка - Токен - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Массив соответствий данных календарей
-Функция ПолучитьСписокКалендарей(Знач Токен) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
-
- Заголовки = OPI_GoogleWorkspace.ПолучитьЗаголовокАвторизации(Токен);
- МассивКалендарей = Новый Массив;
-
- ПолучитьСписокКалендарейРекурсивно(Заголовки, МассивКалендарей);
-
- Возврат МассивКалендарей;
-
-КонецФункции
-
-// Добавить календарь в список
-// Добавляет существующий календарь в список пользователя
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// Календарь - Строка - ID календаря - calendar
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Google
-Функция ДобавитьКалендарьВСписок(Знач Токен, Знач Календарь) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Календарь);
-
- Заголовки = OPI_GoogleWorkspace.ПолучитьЗаголовокАвторизации(Токен);
- URL = "https://www.googleapis.com/calendar/v3/users/me/calendarList";
-
- Параметры = Новый Структура;
- Параметры.Вставить("id", Календарь);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить календарь списка
-// Получает календарь из списка пользователя по ID
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// Календарь - Строка - ID календаря - calendar
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Google
-Функция ПолучитьКалендарьСписка(Знач Токен, Знач Календарь) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Календарь);
-
- Заголовки = OPI_GoogleWorkspace.ПолучитьЗаголовокАвторизации(Токен);
- URL = "https://www.googleapis.com/calendar/v3/users/me/calendarList/" + Календарь;
- Ответ = OPI_ЗапросыHTTP.Get(URL, , Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Удалить календарь из списка
-// Удаляет календарь из списка пользователя
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// Календарь - Строка - ID календаря - calendar
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Google
-Функция УдалитьКалендарьИзСписка(Знач Токен, Знач Календарь) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Календарь);
-
- Заголовки = OPI_GoogleWorkspace.ПолучитьЗаголовокАвторизации(Токен);
- URL = "https://www.googleapis.com/calendar/v3/users/me/calendarList/" + Календарь;
- Ответ = OPI_ЗапросыHTTP.Delete(URL, , Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Изменить календарь списка
-// Изменяет свойства календаря из списка пользователей
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// Календарь - Строка - ID календаря - calendar
-// ОсновнойЦвет - Строка - HEX основного цвета (#ffffff) - primary
-// ДополнительныйЦвет - Строка - HEX дополнительного цвета (#ffffff) - secondary
-// Скрытый - Булево - Скрытый календарь - hidden
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Google
-Функция ИзменитьКалендарьСписка(Знач Токен
- , Знач Календарь
- , Знач ОсновнойЦвет
- , Знач ДополнительныйЦвет
- , Знач Скрытый = Ложь) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Календарь);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(ОсновнойЦвет);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(ДополнительныйЦвет);
- OPI_ПреобразованиеТипов.ПолучитьБулево(Скрытый);
-
- Заголовки = OPI_GoogleWorkspace.ПолучитьЗаголовокАвторизации(Токен);
- URL = "https://www.googleapis.com/calendar/v3/users/me/calendarList/" + Календарь + "?colorRgbFormat=true";
-
- Параметры = Новый Соответствие;
- Параметры.Вставить("hidden" , Скрытый);
- Параметры.Вставить("foregroundColor", ОсновнойЦвет);
- Параметры.Вставить("backgroundColor", ДополнительныйЦвет);
-
- Ответ = OPI_ЗапросыHTTP.PutСТелом(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область РаботаССобытиями
-
-// Получить описание события
-// Получает пустой макет для создания события
-//
-// Параметры:
-// Пустая - Булево - Истина > структура с пустыми значениями, Ложь > в значениях будут описания полей - empty
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Пустой макет события
-Функция ПолучитьОписаниеСобытия(Знач Пустая = Ложь) Экспорт
-
- ТекущаяДата = OPI_Инструменты.ПолучитьТекущуюДату();
- Час = 3600;
- Событие = Новый Соответствие;
-
- Событие.Вставить("Описание" , ""); // Описание события
- Событие.Вставить("Заголовок" , "Новое событие"); // Заголовок события
- Событие.Вставить("МестоПроведения" , ""); // Строка описание места проведения
- Событие.Вставить("ДатаНачала" , ТекущаяДата); // Дата начала события
- Событие.Вставить("ДатаОкончания" , ТекущаяДата + Час); // Дата окончания события
- Событие.Вставить("МассивURLФайловВложений", Новый Соответствие); // Ключ - название, Значение - URL к файлу
- Событие.Вставить("ОтправлятьУведомления" , Истина); // Признак отправки уведомлений участникам
-
- Если Пустая Тогда
-
- Событие_ = Новый Соответствие;
-
- Для Каждого Поле Из Событие Цикл
- Событие_.Вставить(Поле.Ключ, "");
- КонецЦикла;
-
- Событие = Событие_;
-
- КонецЕсли;
-
- Возврат Событие;
-
-КонецФункции
-
-// Получить список событий
-// Получает список всех событий календаря
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// Календарь - Строка - ID календаря - calendar
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Массив соответствий событий
-Функция ПолучитьСписокСобытий(Знач Токен, Знач Календарь) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Календарь);
-
- Заголовки = OPI_GoogleWorkspace.ПолучитьЗаголовокАвторизации(Токен);
- МассивСобытий = Новый Массив;
-
- ПолучитьСписокСобытийРекурсивно(Заголовки, Календарь, МассивСобытий);
-
- Возврат МассивСобытий;
-
-КонецФункции
-
-// Получить событие
-// Получает событие по ID
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// Календарь - Строка - ID календаря - calendar
-// Событие - Строка - ID события - event
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Google
-Функция ПолучитьСобытие(Знач Токен, Знач Календарь, Знач Событие) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Календарь);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Событие);
-
- Заголовки = OPI_GoogleWorkspace.ПолучитьЗаголовокАвторизации(Токен);
- URL = "https://www.googleapis.com/calendar/v3/calendars/"
- + Календарь
- + "/events/"
- + Событие;
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, , Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Создать событие
-// Создает новое событие
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// Календарь - Строка - ID календаря - calendar
-// ОписаниеСобытия - Соответствие Из КлючИЗначение - Описание события - props
-//
-// Возвращаемое значение:
-// Строка, Произвольный, HTTPОтвет, ДвоичныеДанные, Неопределено - ответ сервера Google
-Функция СоздатьСобытие(Знач Токен, Знач Календарь, Знач ОписаниеСобытия) Экспорт
-
- Возврат УправлениеСобытием(Токен, Календарь, ОписаниеСобытия);
-
-КонецФункции
-
-// Переместить событие
-// Перемещает событие в другой календарь
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// КалендарьИсточник - Строка - ID календаря источника - from
-// КалендарьПриемник - Строка - ID календаря приемника - to
-// Событие - Строка - ID события календаря источника - event
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Google
-Функция ПереместитьСобытие(Знач Токен, Знач КалендарьИсточник, Знач КалендарьПриемник, Знач Событие) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(КалендарьИсточник);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(КалендарьПриемник);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Событие);
-
- Заголовки = OPI_GoogleWorkspace.ПолучитьЗаголовокАвторизации(Токен);
- URL = "https://www.googleapis.com/calendar/v3/calendars/"
- + КалендарьИсточник
- + "/events/"
- + Событие
- + "/move?destination="
- + КалендарьПриемник;
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, , Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Изменить событие
-// Изменяет существующее событие
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// Календарь - Строка - ID календаря - calendar
-// ОписаниеСобытия - Строка - Новое описание события - props
-// Событие - Строка - ID события - event
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Google
-Функция ИзменитьСобытие(Знач Токен, Знач Календарь, Знач ОписаниеСобытия, Знач Событие) Экспорт
-
- Возврат УправлениеСобытием(Токен, Календарь, ОписаниеСобытия, Событие);
-
-КонецФункции
-
-// Удалить событие
-// Удаляет событие по ID
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// Календарь - Строка - ID календаря - calendar
-// Событие - Строка - ID события - event
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Google
-Функция УдалитьСобытие(Знач Токен, Знач Календарь, Знач Событие) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Календарь);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Событие);
-
- Заголовки = OPI_GoogleWorkspace.ПолучитьЗаголовокАвторизации(Токен);
- URL = "https://www.googleapis.com/calendar/v3/calendars/"
- + Календарь
- + "/events/"
- + Событие;
-
- Ответ = OPI_ЗапросыHTTP.Delete(URL, , Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-#КонецОбласти
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-Функция ПреобразоватьДату(Знач Дата)
-
- OPI_ПреобразованиеТипов.ПолучитьДату(Дата);
-
- СтруктураДаты = Новый Структура;
-
- Если Не ТипЗнч(Дата) = Тип("Дата") Тогда
- Возврат Неопределено;
- КонецЕсли;
-
- Если Дата = НачалоДня(Дата) Тогда
- ФорматДаты = "ДФ=yyyy-MM-dd";
- Поле = "date";
- Иначе
- ФорматДаты = "ДФ=yyyy-MM-ddTHH:mm:ssZ";
- Поле = "dateTime";
- КонецЕсли;
-
- Дата = Формат(Дата, ФорматДаты);
- СтруктураДаты.Вставить(Поле , Дата);
- СтруктураДаты.Вставить("timeZone", "Europe/Moscow");
-
- Возврат СтруктураДаты;
-
-КонецФункции
-
-Функция ПреобразоватьВложения(Знач Вложения)
-
- OPI_ПреобразованиеТипов.ПолучитьКоллекцию(Вложения);
-
- МассивВложений = Новый Массив;
-
- Если ТипЗнч(Вложения) = Тип("Соответствие") Или ТипЗнч(Вложения) = Тип("Структура") Тогда
-
- Для Каждого Вложение Из Вложения Цикл
-
- ТекущеВложение = Новый Структура;
- ТекущеВложение.Вставить("title" , Вложение.Ключ);
- ТекущеВложение.Вставить("fileUrl", Вложение.Значение);
-
- МассивВложений.Добавить(ТекущеВложение);
-
- КонецЦикла;
-
- КонецЕсли;
-
- Если МассивВложений.Количество() > 0 Тогда
- Возврат МассивВложений;
- Иначе
- Возврат Неопределено;
- КонецЕсли;
-
-КонецФункции
-
-Функция УправлениеСобытием(Знач Токен, Знач Календарь, Знач ОписаниеСобытия, Знач Событие = "")
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Календарь);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Событие);
- OPI_ПреобразованиеТипов.ПолучитьКоллекцию(ОписаниеСобытия);
-
- Заголовки = OPI_GoogleWorkspace.ПолучитьЗаголовокАвторизации(Токен);
- Существующее = ЗначениеЗаполнено(Событие);
- URL = "https://www.googleapis.com/calendar/v3/calendars/"
- + Календарь
- + "/events"
- + ?(Существующее, "/" + Событие, "");
-
- Дата0 = ОписаниеСобытия["ДатаНачала"];
- Дата1 = ОписаниеСобытия["ДатаОкончания"];
- Вложения = ОписаниеСобытия["МассивURLФайловВложений"];
- Вложения = ПреобразоватьВложения(Вложения);
- Уведомления = ?(ОписаниеСобытия["ОтправлятьУведомления"] = Неопределено
- , Ложь
- , ОписаниеСобытия["ОтправлятьУведомления"]);
-
- Параметры = Новый Структура;
- Параметры.Вставить("summary" , ОписаниеСобытия["Заголовок"]);
- Параметры.Вставить("description", ОписаниеСобытия["Описание"]);
- Параметры.Вставить("location" , ОписаниеСобытия["МестоПроведения"]);
- Параметры.Вставить("start" , ПреобразоватьДату(Дата0));
- Параметры.Вставить("end" , ПреобразоватьДату(Дата1));
- Параметры.Вставить("attachments", Вложения);
-
- ПараметрыURL = Новый Структура;
- ПараметрыURL.Вставить("sendUpdates" , ?(Уведомления , "all" , "none"));
- ПараметрыURL.Вставить("supportsAttachments" , ?(ЗначениеЗаполнено(Вложения), "true", "false"));
-
- URL = URL + OPI_Инструменты.ПараметрыЗапросаВСтроку(ПараметрыURL);
-
- OPI_Инструменты.УдалитьПустыеПоляКоллекции(Параметры);
-
- Если Существующее Тогда
- Ответ = OPI_ЗапросыHTTP.PatchСТелом(URL, Параметры, Заголовки, Истина);
- Иначе
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, Заголовки, Истина);
- КонецЕсли;
-
- Возврат Ответ;
-
-КонецФункции
-
-Процедура ПолучитьСписокКалендарейРекурсивно(Знач Заголовки, МассивКалендарей, Страница = "")
-
- Items = "items";
- NPT = "nextPageToken";
- Параметры = Новый Структура;
-
- Если ЗначениеЗаполнено(Страница) Тогда
- Параметры.Вставить("pageToken", Страница);
- КонецЕсли;
-
- Результат = OPI_ЗапросыHTTP.Get("https://www.googleapis.com/calendar/v3/users/me/calendarList"
- , Параметры
- , Заголовки);
-
- Календари = Результат[Items];
- Страница = Результат[NPT];
-
- Для Каждого Календарь Из Календари Цикл
- МассивКалендарей.Добавить(Календарь);
- КонецЦикла;
-
- Если Календари.Количество() > 0 И ЗначениеЗаполнено(Страница) Тогда
- ПолучитьСписокКалендарейРекурсивно(Заголовки, МассивКалендарей, Страница);
- КонецЕсли;
-
-КонецПроцедуры
-
-Процедура ПолучитьСписокСобытийРекурсивно(Знач Заголовки, Знач Календарь, МассивСобытий, Страница = "")
-
- Items = "items";
- NPT = "nextPageToken";
- Параметры = Новый Структура;
-
- Если ЗначениеЗаполнено(Страница) Тогда
- Параметры.Вставить("pageToken", Страница);
- КонецЕсли;
-
- Результат = OPI_ЗапросыHTTP.Get("https://www.googleapis.com/calendar/v3/calendars/" + Календарь + "/events"
- , Параметры
- , Заголовки);
-
- События = Результат[Items];
- Страница = Результат[NPT];
-
- Для Каждого Событие Из События Цикл
- МассивСобытий.Добавить(Событие);
- КонецЦикла;
-
- Если События.Количество() > 0 И ЗначениеЗаполнено(Страница) Тогда
- ПолучитьСписокСобытийРекурсивно(Заголовки, МассивСобытий, Страница);
- КонецЕсли;
-
-КонецПроцедуры
-
-#КонецОбласти
diff --git a/XML/CommonModules/OPI_GoogleDrive.xml b/XML/CommonModules/OPI_GoogleDrive.xml
deleted file mode 100644
index ca1942129d..0000000000
--- a/XML/CommonModules/OPI_GoogleDrive.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
- OPI_GoogleDrive
-
-
-
- OPI google drive
-
-
- ru
- Google Drive (ОПИ)
-
-
- Модуль для работы с Google Drive из набора ОПИ
- false
- false
- true
- true
- true
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git a/XML/CommonModules/OPI_GoogleDrive/Ext/Module.bsl b/XML/CommonModules/OPI_GoogleDrive/Ext/Module.bsl
deleted file mode 100644
index 4a0cb5720b..0000000000
--- a/XML/CommonModules/OPI_GoogleDrive/Ext/Module.bsl
+++ /dev/null
@@ -1,778 +0,0 @@
-// OneScript: ./OInt/core/Modules/OPI_GoogleDrive.os
-// Lib: Google Drive
-// CLI: gdrive
-// Keywords: google drive, googledrive, gdrive, google disk
-// Depends: OPI_GoogleWorkspace
-
-// MIT License
-
-// Copyright (c) 2023-2025 Anton Tsitavets
-
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-
-// The above copyright notice and this permission notice shall be included in all
-// copies or substantial portions of the Software.
-
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-// SOFTWARE.
-
-// https://github.com/Bayselonarrend/OpenIntegrations
-
-// BSLLS:LatinAndCyrillicSymbolInWord-off
-// BSLLS:IncorrectLineBreak-off
-// BSLLS:UsingServiceTag-off
-// BSLLS:UsingSynchronousCalls-off
-
-//@skip-check module-structure-top-region
-//@skip-check module-structure-method-in-regions
-//@skip-check wrong-string-literal-content
-
-#Область ПрограммныйИнтерфейс
-
-#Область РаботаСФайламиИКаталогами
-
-// Получить информацию об объекте
-// Получает информацию о папке или файле по ID
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// Идентификатор - Строка - Идентификатор файла или каталога - object
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Google
-Функция ПолучитьИнформациюОбОбъекте(Знач Токен, Знач Идентификатор) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Идентификатор);
-
- Заголовки = OPI_GoogleWorkspace.ПолучитьЗаголовокАвторизации(Токен);
- URL = "https://www.googleapis.com/drive/v3/files/" + Идентификатор;
-
- Параметры = Новый Структура;
- Параметры.Вставить("fields", "*");
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить список каталогов
-// Получает список каталогов диска
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// ИмяСодержит - Строка - Отбор по имени - querry
-// Подробно - Булево - Добавляет список файлов к полям каталога - depth
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Массив соответствий каталогов
-Функция ПолучитьСписокКаталогов(Знач Токен, Знач ИмяСодержит = "", Знач Подробно = Ложь) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(ИмяСодержит);
- OPI_ПреобразованиеТипов.ПолучитьБулево(Подробно);
-
- Заголовки = OPI_GoogleWorkspace.ПолучитьЗаголовокАвторизации(Токен);
- МассивОбъектов = Новый Массив;
- Отбор = Новый Массив;
-
- Отбор.Добавить("mimeType = 'application/vnd.google-apps.folder'");
-
- Если ЗначениеЗаполнено(ИмяСодержит) Тогда
- Отбор.Добавить("name contains '" + ИмяСодержит + "'");
- КонецЕсли;
-
- ПолучитьСписокОбъектовРекурсивно(Заголовки, МассивОбъектов, Подробно, Отбор);
-
- Если Подробно Тогда
- РазложитьОбъектыПодробно(Токен, МассивОбъектов);
- КонецЕсли;
-
- Возврат МассивОбъектов;
-
-КонецФункции
-
-// Получить список файлов
-// Получает список файлов
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// ИмяСодержит - Строка - Отбор по имени - querry
-// Каталог - Строка - Отбор по ID каталога родителя - catalog
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Массив соответствий файлов
-Функция ПолучитьСписокФайлов(Знач Токен, Знач ИмяСодержит = "", Знач Каталог = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(ИмяСодержит);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Каталог);
-
- Заголовки = OPI_GoogleWorkspace.ПолучитьЗаголовокАвторизации(Токен);
- МассивОбъектов = Новый Массив;
- Отбор = Новый Массив;
-
- Отбор.Добавить("mimeType != 'application/vnd.google-apps.folder'");
-
- Если ЗначениеЗаполнено(ИмяСодержит) Тогда
- Отбор.Добавить("name contains '" + ИмяСодержит + "'");
- КонецЕсли;
-
- Если ЗначениеЗаполнено(Каталог) Тогда
- Отбор.Добавить("'" + Каталог + "' in parents");
- КонецЕсли;
-
- ПолучитьСписокОбъектовРекурсивно(Заголовки, МассивОбъектов, , Отбор);
-
- Возврат МассивОбъектов;
-
-КонецФункции
-
-// Загрузить файл
-// Загружает файл на диск
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// Файл - ДвоичныеДанные,Строка - Загружаемый файл - file
-// Описание - Соответствие Из КлючИЗначение - См. ПолучитьОписаниеФайла - props
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Google
-Функция ЗагрузитьФайл(Знач Токен, Знач Файл, Знач Описание) Экспорт
-
- Возврат УправлениеФайлом(Токен, Файл, Описание);
-
-КонецФункции
-
-// Создать папку
-// Создает пустой каталог на диске
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// Имя - Строка - Имя папки - title
-// Родитель - Строка - Родитель - catalog
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Google
-Функция СоздатьПапку(Знач Токен, Знач Имя, Знач Родитель = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Имя);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Родитель);
-
- Описание = Новый Соответствие;
- Описание.Вставить("MIME" , "application/vnd.google-apps.folder");
- Описание.Вставить("Имя" , Имя);
- Описание.Вставить("Описание", "");
- Описание.Вставить("Родитель", ?(ЗначениеЗаполнено(Родитель), Родитель, "root"));
-
- Возврат УправлениеФайлом(Токен, , Описание);
-
-КонецФункции
-
-// Скачать файл
-// Получает файл по ID
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// Идентификатор - Строка - Идентификатор файла - object
-// ПутьСохранения - Строка - Путь сохранения файла - out
-//
-// Возвращаемое значение:
-// ДвоичныеДанные,Строка - Двоичные данные или путь к файлу при указании параметра ПутьСохранения
-Функция СкачатьФайл(Знач Токен, Знач Идентификатор, Знач ПутьСохранения = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Идентификатор);
-
- Заголовки = OPI_GoogleWorkspace.ПолучитьЗаголовокАвторизации(Токен);
- URL = "https://www.googleapis.com/drive/v3/files/" + Идентификатор;
-
- Параметры = Новый Соответствие;
- Параметры.Вставить("alt", "media");
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры , Заголовки, ПутьСохранения);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Скоприровать объект
-// Копирует файл или каталог
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// Идентификатор - Строка - Идентификатор объекта - object
-// НовоеИмя - Строка - Новое имя объекта - title
-// НовыйРодитель - Строка - Новый каталог размещения - catalog
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Google
-Функция СкопироватьОбъект(Знач Токен, Знач Идентификатор, Знач НовоеИмя = "", Знач НовыйРодитель = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(НовоеИмя);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Идентификатор);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(НовыйРодитель);
-
- Заголовки = OPI_GoogleWorkspace.ПолучитьЗаголовокАвторизации(Токен);
- URL = "https://www.googleapis.com/drive/v3/files/" + Идентификатор + "/copy";
-
- Параметры = Новый Структура;
-
- Если ЗначениеЗаполнено(НовоеИмя) Тогда
- Параметры.Вставить("name", НовоеИмя);
- КонецЕсли;
-
- Если ЗначениеЗаполнено(НовыйРодитель) Тогда
-
- МассивРодителей = Новый Массив;
- МассивРодителей.Добавить(НовыйРодитель);
- Параметры.Вставить("parents", МассивРодителей);
-
- КонецЕсли;
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры , Заголовки, Истина);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Обновить файл
-// Обновляет двоичные данные файла
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// Идентификатор - Строка - Идентификатор обновляемого объекта - object
-// Файл - ДвоичныеДанные,Строка - Файл источник обновления - file
-// НовоеИмя - Строка - Новое имя файла (если необходимо) - title
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Google
-Функция ОбновитьФайл(Знач Токен, Знач Идентификатор, Знач Файл, Знач НовоеИмя = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Идентификатор);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(НовоеИмя);
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Файл);
-
- Если ЗначениеЗаполнено(НовоеИмя) Тогда
- Описание = Новый Соответствие;
- Описание.Вставить("Имя", НовоеИмя);
- Иначе
- Описание = "";
- КонецЕсли;
-
- Возврат УправлениеФайлом(Токен, Файл, Описание, Идентификатор);
-
-КонецФункции
-
-// Удалить объект
-// Удаляет файл или каталог по ID
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// Идентификатор - Строка - Идентификатор объекта для удаления - object
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Google
-Функция УдалитьОбъект(Знач Токен, Знач Идентификатор) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Идентификатор);
-
- Заголовки = OPI_GoogleWorkspace.ПолучитьЗаголовокАвторизации(Токен);
- URL = "https://www.googleapis.com/drive/v3/files/" + Идентификатор;
- Ответ = OPI_ЗапросыHTTP.Delete(URL, , Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить описание файла
-// Получает шаблон пустого описания для загрузки файла
-//
-// Параметры:
-// Пустая - Булево - Истина > структура с пустыми значениями, Ложь > в значениях будут описания полей - empty
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Описание файла
-Функция ПолучитьОписаниеФайла(Знач Пустая = Ложь) Экспорт
-
- Описание = Новый Соответствие;
- Описание.Вставить("MIME" , "image/jpeg"); // MIME-тип загружаемого файла
- Описание.Вставить("Имя" , "Новый файл.jpg"); // Имя файла с расширением
- Описание.Вставить("Описание" , "Это новый файл"); // Описание файла
- Описание.Вставить("Родитель" , "root"); // ID каталога загрузки или "root" для загрузки в корень
-
- Если Пустая Тогда
-
- Описание_ = Новый Соответствие;
-
- Для Каждого Поле Из Описание Цикл
- Описание_.Вставить(Поле.Ключ, "");
- КонецЦикла;
-
- Описание = Описание_;
-
- КонецЕсли;
-
- Возврат Описание;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область РаботаСКомментариями
-
-// Создать комментарий
-// Создает комментарий к файлу или каталогу
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// Идентификатор - Строка - Идентификатор объекта, для которого необходим комментарий - object
-// Комментарий - Строка - Текст комментария - text
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Google
-Функция СоздатьКомментарий(Знач Токен, Знач Идентификатор, Знач Комментарий) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Идентификатор);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Комментарий);
-
- Заголовки = OPI_GoogleWorkspace.ПолучитьЗаголовокАвторизации(Токен);
- URL = "https://www.googleapis.com/drive/v3/files/" + Идентификатор + "/comments?fields=*";
-
- Параметры = Новый Структура;
- Параметры.Вставить("content", Комментарий);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить комментарий
-// Получает комментарий по ID
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// ИДОбъекта - Строка - Идентификатор файла или каталога размещения комментария - object
-// ИДКомментария - Строка - Идентификатор комментария - comment
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Google
-Функция ПолучитьКомментарий(Знач Токен, Знач ИДОбъекта, Знач ИДКомментария) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(ИДОбъекта);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(ИДКомментария);
-
- Заголовки = OPI_GoogleWorkspace.ПолучитьЗаголовокАвторизации(Токен);
- URL = "https://www.googleapis.com/drive/v3/files/" + ИДОбъекта + "/comments/" + ИДКомментария;
-
- Параметры = Новый Структура;
- Параметры.Вставить("fields", "*");
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить список комментариев
-// Получает список всех комментариев объекта
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// ИДОбъекта - Строка - Идентификатор объекта - object
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Google
-Функция ПолучитьСписокКомментариев(Знач Токен, Знач ИДОбъекта) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(ИДОбъекта);
-
- Заголовки = OPI_GoogleWorkspace.ПолучитьЗаголовокАвторизации(Токен);
- URL = "https://www.googleapis.com/drive/v3/files/" + ИДОбъекта + "/comments";
-
- Параметры = Новый Структура;
- Параметры.Вставить("fields", "*");
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Удалить комментарий
-// Удаляет комментарий по ID
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// ИДОбъекта - Строка - Идентификатор файла или каталога размещения комментария - object
-// ИДКомментария - Строка - Идентификатор комментария - comment
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Google
-Функция УдалитьКомментарий(Знач Токен, Знач ИДОбъекта, Знач ИДКомментария) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(ИДОбъекта);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(ИДКомментария);
-
- Заголовки = OPI_GoogleWorkspace.ПолучитьЗаголовокАвторизации(Токен);
- URL = "https://www.googleapis.com/drive/v3/files/" + ИДОбъекта + "/comments/" + ИДКомментария;
-
- Ответ = OPI_ЗапросыHTTP.Delete(URL, , Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-#КонецОбласти
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-Процедура ПолучитьСписокОбъектовРекурсивно(Знач Заголовки, МассивОбъектов, Подробно = Ложь, Отбор = "", Страница = "")
-
- URL = "https://www.googleapis.com/drive/v3/files";
- Files = "files";
- NPT = "nextPageToken";
-
- Параметры = Новый Структура;
- Параметры.Вставить("fields", "*");
-
- Если ЗначениеЗаполнено(Страница) Тогда
- Параметры.Вставить("pageToken", Страница);
- КонецЕсли;
-
- Если ЗначениеЗаполнено(Отбор) И ТипЗнч(Отбор) = Тип("Массив") Тогда
- ОтборСтрока = СтрСоединить(Отбор, " and ");
- Параметры.Вставить("q", ОтборСтрока);
- КонецЕсли;
-
- Результат = OPI_ЗапросыHTTP.Get(URL, Параметры, Заголовки);
-
- Объекты = Результат[Files];
- Страница = Результат[NPT];
-
- Для Каждого ТекущийОбъект Из Объекты Цикл
- МассивОбъектов.Добавить(ТекущийОбъект);
- КонецЦикла;
-
- Если Объекты.Количество() > 0 И ЗначениеЗаполнено(Страница) Тогда
- ПолучитьСписокОбъектовРекурсивно(Заголовки, МассивОбъектов, Подробно, Отбор, Страница);
- КонецЕсли;
-
-КонецПроцедуры
-
-Процедура РазложитьОбъектыПодробно(Знач Токен, МассивОбъектов)
-
- Для Каждого ТекущийОбъект Из МассивОбъектов Цикл
-
- МассивФайлов = Новый Массив;
- ТекущийИД = ТекущийОбъект["id"];
-
- Результат = ПолучитьСписокФайлов(Токен, , ТекущийИД);
-
- Для Каждого Файл Из Результат Цикл
- МассивФайлов.Добавить(Файл);
- КонецЦикла;
-
- ТекущийОбъект.Вставить("files", МассивФайлов);
-
- КонецЦикла;
-
-КонецПроцедуры
-
-Процедура СформироватьПараметрыЗагрузкиФайла(Описание)
-
- СформированноеОписание = Новый Соответствие;
- OPI_Инструменты.УдалитьПустыеПоляКоллекции(Описание);
-
- СоответствиеПолей = Новый Соответствие;
- СоответствиеПолей.Вставить("MIME" , "mimeType");
- СоответствиеПолей.Вставить("Имя" , "name");
- СоответствиеПолей.Вставить("Описание" , "description");
- СоответствиеПолей.Вставить("Родитель" , "parents");
- СоответствиеПолей.Вставить("Расширение", "fileExtension");
-
- Для Каждого Элемент Из Описание Цикл
-
- Если Элемент.Ключ = "Родитель" Тогда
-
- ТекущееЗначение = Новый Массив;
- ТекущееЗначение.Добавить(Элемент.Значение);
-
- Иначе
-
- ТекущееЗначение = Элемент.Значение;
-
- КонецЕсли;
-
- ИмяПоля = СоответствиеПолей.Получить(Элемент.Ключ);
- СформированноеОписание.Вставить(ИмяПоля, ТекущееЗначение);
-
- КонецЦикла;
-
- Описание = СформированноеОписание;
-
-КонецПроцедуры
-
-Функция УправлениеФайлом(Знач Токен, Знач Файл = "", Знач Описание = "", Знач Идентификатор = "")
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Идентификатор);
-
- Если ЗначениеЗаполнено(Описание) Тогда
- OPI_ПреобразованиеТипов.ПолучитьКоллекцию(Описание);
- КонецЕсли;
-
- MimeType = "mimeType";
-
- Если ЗначениеЗаполнено(Идентификатор) Тогда
- MIME = ПолучитьИнформациюОбОбъекте(Токен, Идентификатор)[MimeType];
- Иначе
- MIME = Описание["MIME"];
- КонецЕсли;
-
- Если Не ЗначениеЗаполнено(Описание) Тогда
- Описание = Новый Соответствие;
- КонецЕсли;
-
- Заголовки = OPI_GoogleWorkspace.ПолучитьЗаголовокАвторизации(Токен);
- СформироватьПараметрыЗагрузкиФайла(Описание);
- ОписаниеJSON = OPI_Инструменты.JSONСтрокой(Описание);
-
- СоответствиеФайла = Новый Соответствие;
-
- Если ЗначениеЗаполнено(Файл) Тогда
-
- РазмерЧасти = 268435457;
- Размер = OPI_Инструменты.ПреобразоватьДанныеСПолучениемРазмера(Файл, РазмерЧасти);
-
- СоответствиеФайла.Вставить(Файл, MIME);
-
- Если Размер < РазмерЧасти И ТипЗнч(Файл) = Тип("ДвоичныеДанные") Тогда
- Ответ = ЗагрузитьМалыйФайл(ОписаниеJSON, СоответствиеФайла, Заголовки, Идентификатор);
- Иначе
- Ответ = ЗагрузитьБольшойФайл(Описание, СоответствиеФайла, Заголовки, Идентификатор);
- КонецЕсли;
-
- Иначе
- Ответ = ЗагрузитьМалыйФайл(ОписаниеJSON, СоответствиеФайла, Заголовки, Идентификатор);
- КонецЕсли;
-
- Возврат Ответ;
-
-КонецФункции
-
-Функция ЗагрузитьМалыйФайл(Знач Описание, Знач СоответствиеФайла, Знач Заголовки, Знач Идентификатор = "")
-
- URL = "https://www.googleapis.com/upload/drive/v3/files?uploadType=multipart";
- URL = СтрЗаменить(URL, "/files", "/files/" + Идентификатор);
-
- Если ЗначениеЗаполнено(Идентификатор) Тогда
- Метод = "PATCH";
- Иначе
- Метод = "POST";
- КонецЕсли;
-
- HTTPКлиент = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать(URL)
- .УстановитьЗаголовки(Заголовки)
- .НачатьЗаписьТелаMultipart(Истина, "related")
- .ДобавитьДанныеRelated(Описание, "application/json; charset=UTF-8");
-
- Для Каждого Файл Из СоответствиеФайла Цикл
- HTTPКлиент.ДобавитьДанныеRelated(Файл.Ключ, Файл.Значение);
- КонецЦикла;
-
- Ответ = HTTPКлиент.ОбработатьЗапрос(Метод).ВернутьОтветКакJSONКоллекцию(Истина, Истина);
-
- Возврат Ответ;
-
-КонецФункции
-
-Функция ЗагрузитьБольшойФайл(Знач Описание, Знач СоответствиеФайла, Знач Заголовки, Знач Идентификатор = "")
-
- Для Каждого Файл Из СоответствиеФайла Цикл
- Двоичные = Файл.Ключ;
- Прервать;
- КонецЦикла;
-
- URL = "https://www.googleapis.com/upload/drive/v3/files?uploadType=resumable";
-
- Если ЗначениеЗаполнено(Идентификатор) Тогда
- URL = СтрЗаменить(URL, "/files", "/files/" + Идентификатор);
- Метод = "PATCH";
- Иначе
- Метод = "POST";
- КонецЕсли;
-
- HttpКлиент = OPI_ЗапросыHTTP.НовыйЗапрос().Инициализировать(URL);
-
- Ответ = HttpКлиент.УстановитьЗаголовки(Заголовки)
- .УстановитьJsonТело(Описание)
- .ОбработатьЗапрос(Метод)
- .ВернутьОтвет(Ложь, Истина);
-
- АдресЗагрузки = Ответ.Заголовки["Location"];
-
- Если Не ЗначениеЗаполнено(АдресЗагрузки) Тогда
- Возврат HttpКлиент.ВернутьОтветКакJSONКоллекцию(Истина, Истина);
- КонецЕсли;
-
- HttpКлиентЗагрузки = ЗагрузитьФайлЧастями(Двоичные, АдресЗагрузки);
-
- Если HttpКлиентЗагрузки <> Неопределено Тогда
- Ответ = HttpКлиентЗагрузки.ВернутьОтветКакJSONКоллекцию(Истина, Истина);
- Иначе
- Ответ = HttpКлиент.ВернутьОтветКакJSONКоллекцию(Истина, Истина);
- КонецЕсли;
-
- Возврат Ответ;
-
-КонецФункции
-
-Функция ЗагрузитьФайлЧастями(Знач Двоичные, Знач АдресЗагрузки)
-
- HttpКлиент = Неопределено;
- РазмерЧасти = 268435456;
- ПрочитаноБайт = 0;
- ТекущаяПозиция = 0;
- ОбщийРазмер = Двоичные.Размер();
- СтрОбщийРазмер = OPI_Инструменты.ЧислоВСтроку(ОбщийРазмер);
- ЧтениеДанных = Новый ЧтениеДанных(Двоичные);
- ИсходныйПоток = ЧтениеДанных.ИсходныйПоток();
-
- КБайт = 1024;
- МБайт = КБайт * КБайт;
-
- Пока ПрочитаноБайт < ОбщийРазмер Цикл
-
- ПрочитаноБайт = ИсходныйПоток.ТекущаяПозиция();
- Результат = ЧтениеДанных.Прочитать(РазмерЧасти);
- ТекущиеДанные = Результат.ПолучитьДвоичныеДанные();
- РазмерТекущих = ТекущиеДанные.Размер();
- СледующаяПозиция = ТекущаяПозиция + РазмерТекущих - 1;
-
- Если Не ЗначениеЗаполнено(ТекущиеДанные) Тогда
- Прервать;
- КонецЕсли;
-
- ЗаголовокПотока = "bytes "
- + OPI_Инструменты.ЧислоВСтроку(ТекущаяПозиция)
- + "-"
- + OPI_Инструменты.ЧислоВСтроку(СледующаяПозиция)
- + "/"
- + СтрОбщийРазмер;
-
- ДопЗаголовки = Новый Соответствие;
- ДопЗаголовки.Вставить("Content-Length", OPI_Инструменты.ЧислоВСтроку(РазмерТекущих));
- ДопЗаголовки.Вставить("Content-Range" , ЗаголовокПотока);
- ДопЗаголовки.Вставить("Content-Type" , "application/octet-stream");
-
- HttpКлиент = OPI_ЗапросыHTTP
- .НовыйЗапрос()
- .Инициализировать(АдресЗагрузки)
- .УстановитьЗаголовки(ДопЗаголовки)
- .УстановитьДвоичноеТело(ТекущиеДанные)
- .ОбработатьЗапрос("PUT");
-
- РезультатПроверки = ПроверитьЗагрузкуЧасти(HttpКлиент
- , СтрОбщийРазмер
- , ДопЗаголовки
- , АдресЗагрузки
- , ТекущаяПозиция);
-
- Если РезультатПроверки <> Неопределено Тогда
- Возврат РезультатПроверки;
- КонецЕсли;
-
- OPI_Инструменты.ИнформацияОПрогрессе(ТекущаяПозиция, ОбщийРазмер, "МБ", МБайт);
-
- // !OInt ВыполнитьСборкуМусора();
- // !OInt ОсвободитьОбъект(ТекущиеДанные);
-
- КонецЦикла;
-
- OPI_Инструменты.ИнформацияОПрогрессе(ОбщийРазмер, ОбщийРазмер, "МБ", МБайт);
-
- Возврат HttpКлиент;
-
-КонецФункции
-
-Функция ПроверитьЗагрузкуЧасти(HttpКлиент, СтрОбщийРазмер, ДопЗаголовки, АдресЗагрузки, ТекущаяПозиция)
-
- НачалоКодовОшибок = 400;
- КонецКодовПадений = 600;
- НачалоКодовУспеха = 200;
- КонецКодовУспеха = 300;
- Перенаправление = 308;
-
- Ответ = HttpКлиент.ВернутьОтвет(Ложь, Истина);
-
- Если Ответ.КодСостояния >= НачалоКодовОшибок И Ответ.КодСостояния < КонецКодовПадений Тогда
-
- ЗаголовокПотока = "bytes */" + СтрОбщийРазмер;
- ДопЗаголовки.Вставить("Content-Range" , ЗаголовокПотока);
-
- HttpКлиентПроверки = OPI_ЗапросыHTTP.НовыйЗапрос().Инициализировать(АдресЗагрузки);
- ОтветПроверки = HttpКлиентПроверки.УстановитьЗаголовки(ДопЗаголовки)
- .ОбработатьЗапрос("PUT")
- .ВернутьОтвет(Ложь, Истина);
-
- Если ОтветПроверки.КодСостояния >= НачалоКодовУспеха И ОтветПроверки.КодСостояния < КонецКодовУспеха Тогда
-
- Возврат HttpКлиентПроверки;
-
- ИначеЕсли ОтветПроверки.КодСостояния = Перенаправление Тогда
-
- ЗагруженныеДанные = Ответ.Заголовки["Range"];
-
- Иначе
-
- Возврат HttpКлиент;
-
- КонецЕсли;
-
- Иначе
- ЗагруженныеДанные = Ответ.Заголовки["Range"];
- КонецЕсли;
-
- Если Не ЗначениеЗаполнено(ЗагруженныеДанные) Тогда
- Возврат HttpКлиент;
- КонецЕсли;
-
- ЗагруженныеДанные = СтрЗаменить(ЗагруженныеДанные, "bytes=", "");
- МассивИнформации = СтрРазделить(ЗагруженныеДанные, "-", Ложь);
- НеобходимоЧастей = 2;
-
- Если Не МассивИнформации.Количество() = НеобходимоЧастей Тогда
- Возврат HttpКлиент;
- КонецЕсли;
-
- ТекущаяПозиция = Число(МассивИнформации[1]) + 1;
-
- Возврат Неопределено;
-
-КонецФункции
-
-#КонецОбласти
diff --git a/XML/CommonModules/OPI_GoogleSheets.xml b/XML/CommonModules/OPI_GoogleSheets.xml
deleted file mode 100644
index e1e6034494..0000000000
--- a/XML/CommonModules/OPI_GoogleSheets.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
- OPI_GoogleSheets
-
-
-
- OPI google sheets
-
-
- ru
- Google Sheets (ОПИ)
-
-
- Модуль для работы с Google Sheets из набора ОПИ
- false
- false
- true
- true
- true
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git a/XML/CommonModules/OPI_GoogleSheets/Ext/Module.bsl b/XML/CommonModules/OPI_GoogleSheets/Ext/Module.bsl
deleted file mode 100644
index b5c58a2dcd..0000000000
--- a/XML/CommonModules/OPI_GoogleSheets/Ext/Module.bsl
+++ /dev/null
@@ -1,420 +0,0 @@
-// OneScript: ./OInt/core/Modules/OPI_GoogleSheets.os
-// Lib: Google Sheets
-// CLI: gsheets
-// Keywords: googlesheets, google sheets, spreadsheets
-// Depends: OPI_GoogleWorkspace
-
-// MIT License
-
-// Copyright (c) 2023-2025 Anton Tsitavets
-
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-
-// The above copyright notice and this permission notice shall be included in all
-// copies or substantial portions of the Software.
-
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-// SOFTWARE.
-
-// https://github.com/Bayselonarrend/OpenIntegrations
-
-// BSLLS:LatinAndCyrillicSymbolInWord-off
-// BSLLS:IncorrectLineBreak-off
-// BSLLS:UsingServiceTag-off
-// BSLLS:UsingSynchronousCalls-off
-
-//@skip-check module-structure-top-region
-//@skip-check module-structure-method-in-regions
-//@skip-check wrong-string-literal-content
-
-#Область ПрограммныйИнтерфейс
-
-#Область РаботаСКнигами
-
-// Создать книгу
-// Создает новую книгу
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// Наименование - Строка - Наименование - title
-// МассивИменЛистов - Массив из Строка - Массив имен для добавления новых листов в книгу - sheets
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Google
-Функция СоздатьКнигу(Знач Токен, Знач Наименование, Знач МассивИменЛистов) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Наименование);
- OPI_ПреобразованиеТипов.ПолучитьКоллекцию(МассивИменЛистов);
-
- Заголовки = OPI_GoogleWorkspace.ПолучитьЗаголовокАвторизации(Токен);
- URL = "https://sheets.googleapis.com/v4/spreadsheets";
-
- Свойства = Новый Структура("title" , Наименование);
- Листы = Новый Массив;
-
- ЗаполнитьМассивЛистов(МассивИменЛистов, Листы);
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("properties", Свойства, "Коллекция", Параметры);
- OPI_Инструменты.ДобавитьПоле("sheets" , Листы , "Коллекция", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить книгу
-// Получает информацию о книге по ID
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// Идентификатор - Строка - Идентификатор книги - spreadsheet
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Google
-Функция ПолучитьКнигу(Знач Токен, Знач Идентификатор) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Идентификатор);
-
- Заголовки = OPI_GoogleWorkspace.ПолучитьЗаголовокАвторизации(Токен);
- URL = "https://sheets.googleapis.com/v4/spreadsheets/" + Идентификатор;
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, , Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Изменить наименование книги
-// Изменяет наименование существующей книги
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// Книга - Строка - ID книги - spreadsheet
-// Наименование - Строка - Новое наименование - title
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Google
-Функция ИзменитьНаименованиеКниги(Знач Токен, Знач Книга, Знач Наименование) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Книга);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Наименование);
-
- Заголовки = OPI_GoogleWorkspace.ПолучитьЗаголовокАвторизации(Токен);
- URL = "https://sheets.googleapis.com/v4/spreadsheets/" + Книга + ":batchUpdate";
-
- Изменение = Новый Структура("title", Наименование);
- ЗапросИзменения = Новый Структура("properties,fields", Изменение, "title");
- Запрос = Новый Структура("updateSpreadsheetProperties", ЗапросИзменения);
-
- МассивЗапросов = Новый Массив;
- МассивЗапросов.Добавить(Запрос);
-
- Параметры = Новый Структура("requests", МассивЗапросов);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область РаботаСЛистами
-
-// Добавить лист
-// Добавляет новый лист в книгу
-//
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// Книга - Строка - Идентификатор книги - spreadsheet
-// Наименование - Строка - Наименование нового листа - title
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Google
-Функция ДобавитьЛист(Знач Токен, Знач Книга, Знач Наименование) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Книга);
-
- Заголовки = OPI_GoogleWorkspace.ПолучитьЗаголовокАвторизации(Токен);
- URL = "https://sheets.googleapis.com/v4/spreadsheets/" + Книга + ":batchUpdate";
- Лист = СоздатьЛист(Наименование);
-
- Запросы = Новый Массив;
- Изменение = Новый Структура("addSheet", Лист);
- Запросы.Добавить(Изменение);
-
- Параметры = Новый Структура("requests", Запросы);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Удалить лист
-// Удаляет лист из книги
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// Книга - Строка - Идентификатор книги - spreadsheet
-// Лист - Строка - Идентификатор удаляемого листа - sheet
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Google
-Функция УдалитьЛист(Знач Токен, Знач Книга, Знач Лист) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Книга);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Лист);
-
- Заголовки = OPI_GoogleWorkspace.ПолучитьЗаголовокАвторизации(Токен);
- URL = "https://sheets.googleapis.com/v4/spreadsheets/" + Книга + ":batchUpdate";
-
- Запросы = Новый Массив;
- Лист = Новый Структура("sheetId" , Лист);
- Изменение = Новый Структура("deleteSheet", Лист);
- Запросы.Добавить(Изменение);
-
- Параметры = Новый Структура("requests", Запросы);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Копировать лист
-// Копирует лист из одной книги в другую
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// Откуда - Строка - ID книги источника - from
-// Куда - Строка - ID книги приемника - to
-// Лист - Строка - ID копируемого листа - sheet
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Google
-Функция КопироватьЛист(Знач Токен, Знач Откуда, Знач Куда, Знач Лист) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Откуда);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Куда);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Лист);
-
- Заголовки = OPI_GoogleWorkspace.ПолучитьЗаголовокАвторизации(Токен);
- URL = "https://sheets.googleapis.com/v4/spreadsheets/"
- + Откуда
- + "/sheets/"
- + Лист
- + ":copyTo";
-
- Параметры = Новый Структура("destinationSpreadsheetId", Куда);
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область РаботаСДанными
-
-// Установить значения ячеек
-// Устанавливает значения ячеек листа
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// Книга - Строка - ID книги - spreadsheet
-// СоответствиеЗначений - Соответствие Из КлючИЗначение - Данные заполнения, где ключ это имя ячейки вида A1 - data
-// Лист - Строка - Имя листа (первый лист по умолчанию) - sheetname
-// ОсновноеИзмерение - Строка - Основное измерение при заполнении диапазона массивом - dim
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Google
-Функция УстановитьЗначенияЯчеек(Знач Токен
- , Знач Книга
- , Знач СоответствиеЗначений
- , Знач Лист = ""
- , Знач ОсновноеИзмерение = "COLUMNS") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Книга);
- OPI_ПреобразованиеТипов.ПолучитьКоллекцию(СоответствиеЗначений);
-
- Если Не ТипЗнч(СоответствиеЗначений) = Тип("Структура")
- И Не ТипЗнч(СоответствиеЗначений) = Тип("Соответствие") Тогда
- Возврат "Не удалось привести структуру значений к коллекции";
- КонецЕсли;
-
- Заголовки = OPI_GoogleWorkspace.ПолучитьЗаголовокАвторизации(Токен);
- URL = "https://sheets.googleapis.com/v4/spreadsheets/" + Книга + "/values:batchUpdate";
- МассивДанных = СформироватьМассивДанныхЯчеек(СоответствиеЗначений, ОсновноеИзмерение, Лист);
-
- Параметры = Новый Структура("data,valueInputOption", МассивДанных, "USER_ENTERED");
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Очистить ячейки
-// Очищает значение в ячейках
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// Книга - Строка - ID книги - spreadsheet
-// МассивЯчеек - Массив из Строка - Массив ячеек вида А1 для очистки - cells
-// Лист - Строка - Имя листа (первый лист по умолчанию) - sheetname
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Google
-Функция ОчиститьЯчейки(Знач Токен, Знач Книга, Знач МассивЯчеек, Знач Лист = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Книга);
- OPI_ПреобразованиеТипов.ПолучитьКоллекцию(МассивЯчеек);
-
- Заголовки = OPI_GoogleWorkspace.ПолучитьЗаголовокАвторизации(Токен);
- URL = "https://sheets.googleapis.com/v4/spreadsheets/" + Книга + "/values:batchClear";
-
- СформироватьМассивИменЯчеек(МассивЯчеек, Лист);
-
- Параметры = Новый Структура("ranges", МассивЯчеек);
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить значения ячеек
-// Получает значения ячеек таблицы
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// Книга - Строка - ID книги - spreadsheet
-// МассивЯчеек - Массив из Строка - Массив ячеек вида А1 для получения (весь лист, если не заполнено) - cells
-// Лист - Строка - Имя листа (первый лист по умолчанию) - sheetname
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Google
-Функция ПолучитьЗначенияЯчеек(Знач Токен, Знач Книга, Знач МассивЯчеек = "", Знач Лист = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Книга);
-
- Заголовки = OPI_GoogleWorkspace.ПолучитьЗаголовокАвторизации(Токен);
- URL = "https://sheets.googleapis.com/v4/spreadsheets/" + Книга + "/values:batchGet";
-
- Если ЗначениеЗаполнено(МассивЯчеек) Тогда
-
- OPI_ПреобразованиеТипов.ПолучитьКоллекцию(МассивЯчеек);
- СформироватьМассивИменЯчеек(МассивЯчеек, Лист);
- Первый = Истина;
-
- Для Каждого Ячейка Из МассивЯчеек Цикл
-
- Разделитель = ?(Первый, "?", "&");
- URL = URL + Разделитель + "ranges=" + Ячейка;
- Первый = Ложь;
-
- КонецЦикла;
-
- Иначе
-
- URL = URL + "?ranges='" + Лист + "'";
-
- КонецЕсли;
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, , Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-#КонецОбласти
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-Процедура ЗаполнитьМассивЛистов(Знач МассивИмен, МассивЛистов)
-
- Для Каждого ИмяЛиста Из МассивИмен Цикл
-
- Лист = СоздатьЛист(ИмяЛиста);
- МассивЛистов.Добавить(Лист);
-
- КонецЦикла;
-
-КонецПроцедуры
-
-Процедура ДобавитьИмяЛиста(Ячейка, Знач Лист)
-
- Если ЗначениеЗаполнено(Лист) Тогда
- Ячейка = "'" + Лист + "'!" + Ячейка;
- КонецЕсли;
-
-КонецПроцедуры
-
-Функция СоздатьЛист(Знач Наименование)
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Наименование);
-
- СвойстваЛиста = Новый Структура("title" , Наименование);
- Лист = Новый Структура("properties", СвойстваЛиста);
-
- Возврат Лист;
-
-КонецФункции
-
-Функция СформироватьМассивДанныхЯчеек(Знач СтруктураЗначений, Знач ОсновноеИзмерение, Знач Лист)
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Лист);
-
- МассивДанных = Новый Массив;
-
- Для Каждого ДанныеЯчейки Из СтруктураЗначений Цикл
-
- ТекущееЗначение = ДанныеЯчейки.Значение;
- ТекущийКлюч = ДанныеЯчейки.Ключ;
-
- ДобавитьИмяЛиста(ТекущийКлюч, Лист);
-
- OPI_ПреобразованиеТипов.ПолучитьМассив(ТекущееЗначение);
-
- ТекущиеДанные = Новый Соответствие;
- ТекущийМассив = Новый Массив;
-
- ТекущийМассив.Добавить(ТекущееЗначение);
-
- OPI_Инструменты.ДобавитьПоле("range" , ТекущийКлюч , "Строка", ТекущиеДанные);
- OPI_Инструменты.ДобавитьПоле("values" , ТекущийМассив , "Массив", ТекущиеДанные);
- OPI_Инструменты.ДобавитьПоле("majorDimension", ОсновноеИзмерение, "Строка", ТекущиеДанные);
-
- МассивДанных.Добавить(ТекущиеДанные);
-
- КонецЦикла;
-
- Возврат МассивДанных;
-
-КонецФункции
-
-Процедура СформироватьМассивИменЯчеек(Знач МассивИмен, Знач Лист)
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Лист);
-
- Для Н = 0 По МассивИмен.ВГраница() Цикл
- ДобавитьИмяЛиста(МассивИмен[Н], Лист);
- КонецЦикла;
-
-КонецПроцедуры
-
-#КонецОбласти
diff --git a/XML/CommonModules/OPI_GoogleWorkspace.xml b/XML/CommonModules/OPI_GoogleWorkspace.xml
deleted file mode 100644
index e429e530fb..0000000000
--- a/XML/CommonModules/OPI_GoogleWorkspace.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
- OPI_GoogleWorkspace
-
-
-
- OPI google workspace
-
-
- ru
- Google Workspace (ОПИ)
-
-
- Модуль для работы с Google Workspace из набора ОПИ
- false
- false
- true
- true
- true
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git a/XML/CommonModules/OPI_GoogleWorkspace/Ext/Module.bsl b/XML/CommonModules/OPI_GoogleWorkspace/Ext/Module.bsl
deleted file mode 100644
index 1e44e38058..0000000000
--- a/XML/CommonModules/OPI_GoogleWorkspace/Ext/Module.bsl
+++ /dev/null
@@ -1,245 +0,0 @@
-// OneScript: ./OInt/core/Modules/OPI_GoogleWorkspace.os
-// Lib: Google Workspace
-// CLI: google
-
-// MIT License
-
-// Copyright (c) 2023-2025 Anton Tsitavets
-
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-
-// The above copyright notice and this permission notice shall be included in all
-// copies or substantial portions of the Software.
-
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-// SOFTWARE.
-
-// https://github.com/Bayselonarrend/OpenIntegrations
-
-// BSLLS:LatinAndCyrillicSymbolInWord-off
-// BSLLS:IncorrectLineBreak-off
-// BSLLS:UsingServiceTag-off
-// BSLLS:LineLength-off
-// BSLLS:UsingSynchronousCalls-off
-// BSLLS:MagicNumber-off
-
-//@skip-check module-structure-top-region
-//@skip-check module-structure-method-in-regions
-//@skip-check wrong-string-literal-content
-
-#Область ПрограммныйИнтерфейс
-
-// Сформировать ссылку получения кода
-// Возвращает URL для авторизации в браузере
-//
-// Параметры:
-// ClientID - Строка - Client ID - id
-// Calendar - Булево - разрешение на методы Calendar - calendar
-// Drive - Булево - разрешение на методы Drive - drive
-// Sheets - Булево - разрешение на методы Sheets - sheets
-//
-// Возвращаемое значение:
-// Строка - Ссылка получения кода
-Функция СформироватьСсылкуПолученияКода(Знач ClientID
- , Знач Calendar = Истина
- , Знач Drive = Истина
- , Знач Sheets = Истина) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(ClientID);
- OPI_ПреобразованиеТипов.ПолучитьБулево(Calendar);
- OPI_ПреобразованиеТипов.ПолучитьБулево(Sheets);
- OPI_ПреобразованиеТипов.ПолучитьБулево(Drive);
-
- URL = "https://accounts.google.com/o/oauth2/auth";
-
- ПараметрыURL = Новый Структура;
- ПараметрыURL.Вставить("response_type", "code");
- ПараметрыURL.Вставить("client_id" , ClientID);
- ПараметрыURL.Вставить("redirect_uri" , "http://localhost");
- ПараметрыURL.Вставить("access_type" , "offline");
- ПараметрыURL.Вставить("scope" , ПолучитьСписокРазрешений(Calendar, Drive, Sheets));
-
- URL = URL + OPI_Инструменты.ПараметрыЗапросаВСтроку(ПараметрыURL);
-
- Возврат URL;
-
-КонецФункции
-
-// Получить токен по коду
-// Получает токен по коду из авторизации в бразуере
-//
-// Параметры:
-// ClientID - Строка - Client ID - id
-// ClientSecret - Строка - Client secret - secret
-// Code - Строка - Code из браузера - code
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Google
-Функция ПолучитьТокенПоКоду(Знач ClientID, Знач ClientSecret, Знач Code) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(ClientID);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(ClientSecret);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Code);
-
- URL = "https://accounts.google.com/o/oauth2/token";
-
- ПараметрыURL = Новый Структура;
- ПараметрыURL.Вставить("grant_type" , "authorization_code");
- ПараметрыURL.Вставить("client_id" , ClientID);
- ПараметрыURL.Вставить("client_secret", ClientSecret);
- ПараметрыURL.Вставить("redirect_uri" , "http://localhost");
- ПараметрыURL.Вставить("code" , Code);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, ПараметрыURL, , Ложь);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Обновить токен
-// Обновляет токен по Refresh token
-//
-// Параметры:
-// ClientID - Строка - Client ID - id
-// ClientSecret - Строка - Client secret - secret
-// RefreshToken - Строка - Refresh token - refresh
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Google
-Функция ОбновитьТокен(Знач ClientID, Знач ClientSecret, Знач RefreshToken) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(ClientID);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(ClientSecret);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(RefreshToken);
-
- URL = "https://accounts.google.com/o/oauth2/token";
-
- ПараметрыURL = Новый Структура;
- ПараметрыURL.Вставить("grant_type" , "refresh_token");
- ПараметрыURL.Вставить("client_id" , ClientID);
- ПараметрыURL.Вставить("client_secret", ClientSecret);
- ПараметрыURL.Вставить("refresh_token", RefreshToken);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, ПараметрыURL, , Ложь);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить токен service аккаунта
-// Получает токен авторизации по данным service аккаунта
-//
-// Примечание:
-// Список доступных областей действия: [developers.google.com](https://developers.google.com/identity/protocols/oauth2/scopes)
-//
-// Параметры:
-// Данные - Произвольный - JSON данные авторизации как файл, коллекция или двоичные данные - auth
-// ОбластиДействия - Массив Из Строка - Область действия (scope) или массив областей - scope
-// ВремяЖизни - Число - Время жизни токена в секундах - exp
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Google
-Функция ПолучитьТокенServiceАккаунта(Знач Данные, Знач ОбластиДействия, Знач ВремяЖизни = 3600) Экспорт
-
- ТекстОшибки = "Переданные данные service аккаунта не являются валидным JSON";
- OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(Данные, ТекстОшибки);
- OPI_ПреобразованиеТипов.ПолучитьЧисло(ВремяЖизни);
- OPI_ПреобразованиеТипов.ПолучитьМассив(ОбластиДействия);
-
- МассивОбязательныхПолей = Новый Массив;
- МассивОбязательныхПолей.Добавить("token_uri");
- МассивОбязательныхПолей.Добавить("client_email");
- МассивОбязательныхПолей.Добавить("private_key");
- МассивОбязательныхПолей.Добавить("private_key_id");
-
- ОтсутствующиеПоля = OPI_Инструменты.НайтиОтсутствующиеПоляКоллекции(Данные, МассивОбязательныхПолей);
-
- Если ЗначениеЗаполнено(ОтсутствующиеПоля) Тогда
-
- ШаблонОшибкиПолей = "В данных service аккаунта отсутствуют обязательные поля: %1";
- ТекстОшибкиПолей = СтрШаблон(ШаблонОшибкиПолей, СтрСоединить(ОтсутствующиеПоля, ", "));
- ВызватьИсключение ТекстОшибкиПолей;
-
- КонецЕсли;
-
- ОбластиДействияСтрокой = СтрСоединить(ОбластиДействия, " ");
- КлючПодписи = Данные["private_key"];
- URL = Данные["token_uri"];
-
- ТекущаяДата = ТекущаяУниверсальнаяДата();
- ДатаСгорания = ТекущаяДата + ВремяЖизни;
-
- UnixTime = OPI_Инструменты.UnixTime(ТекущаяДата);
- ExpTime = OPI_Инструменты.UnixTime(ДатаСгорания);
-
- Payload = Новый Структура;
-
- Payload.Вставить("iss" , Данные["client_email"]);
- Payload.Вставить("scope", ОбластиДействияСтрокой);
- Payload.Вставить("aud" , URL);
- Payload.Вставить("exp" , Число(ExpTime));
- Payload.Вставить("iat" , Число(UnixTime));
-
- ДопЗаголовки = Новый Структура("kid", Данные["private_key_id"]);
-
- JWT = OPI_Криптография.JWT(Payload, КлючПодписи, "RS256", ДопЗаголовки);
-
- Грант = "urn:ietf:params:oauth:grant-type:jwt-bearer";
- СтруктураТела = Новый Структура("grant_type,assertion", Грант, JWT);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, СтруктураТела, , Ложь);
-
- Возврат Ответ;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область СлужебныйПрограммныйИнтерфейс
-
-Функция ПолучитьЗаголовокАвторизации(Знач Токен) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
-
- Заголовки = Новый Соответствие;
- Заголовки.Вставить("Authorization", "Bearer " + Токен);
-
- Возврат Заголовки;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИфункции
-
-Функция ПолучитьСписокРазрешений(Calendar, Drive, Sheets)
-
- МассивРазрешений = Новый Массив;
-
- Если Calendar Тогда
- МассивРазрешений.Добавить("https://www.googleapis.com/auth/calendar");
- КонецЕсли;
-
- Если Drive Тогда
- МассивРазрешений.Добавить("https://www.googleapis.com/auth/drive");
- КонецЕсли;
-
- Если Sheets Тогда
- МассивРазрешений.Добавить("https://www.googleapis.com/auth/spreadsheets");
- КонецЕсли;
-
- Возврат СтрСоединить(МассивРазрешений, " ");
-
-КонецФункции
-
-#КонецОбласти
diff --git a/XML/CommonModules/OPI_GreenAPI.xml b/XML/CommonModules/OPI_GreenAPI.xml
deleted file mode 100644
index ba16232bb3..0000000000
--- a/XML/CommonModules/OPI_GreenAPI.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- OPI_GreenAPI
-
-
- ru
- Green API (ОПИ)
-
-
- Модуль для работы с WhatsApp через GreenAPI из набора ОПИ
- false
- false
- true
- true
- true
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git a/XML/CommonModules/OPI_GreenAPI/Ext/Module.bsl b/XML/CommonModules/OPI_GreenAPI/Ext/Module.bsl
deleted file mode 100644
index ac14edd9cd..0000000000
--- a/XML/CommonModules/OPI_GreenAPI/Ext/Module.bsl
+++ /dev/null
@@ -1,1287 +0,0 @@
-// OneScript: ./OInt/core/Modules/OPI_GreenAPI.os
-// Lib: Green API
-// CLI: greenapi
-// Keywords: greenapi, whatsapp
-
-// MIT License
-
-// Copyright (c) 2023-2025 Anton Tsitavets
-
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-
-// The above copyright notice and this permission notice shall be included in all
-// copies or substantial portions of the Software.
-
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-// SOFTWARE.
-
-// https://github.com/Bayselonarrend/OpenIntegrations
-
-// BSLLS:Typo-off
-// BSLLS:LatinAndCyrillicSymbolInWord-off
-// BSLLS:IncorrectLineBreak-off
-// BSLLS:NumberOfOptionalParams-off
-// BSLLS:UsingServiceTag-off
-// BSLLS:LineLength-off
-// BSLLS:UsingSynchronousCalls-off
-// BSLLS:MagicNumber-off
-
-//@skip-check module-structure-top-region
-//@skip-check module-structure-method-in-regions
-//@skip-check wrong-string-literal-content
-//@skip-check method-too-many-params
-//@skip-check bsl-legacy-check-string-literal
-
-#Область ПрограммныйИнтерфейс
-
-#Область Аккаунт
-
-// Сформировать параметры доступа
-// Формирует структуру основных авторизационных данных
-//
-// Примечание:
-// Подробнее в документации API: [Получить параметры доступа к инстансу](@green-api.com/docs/before-start/#parameters)
-//
-// Параметры:
-// ApiUrl - Строка - Ссылка на хост API - api
-// MediaUrl - Строка - Ссылка на хост API для отправки файлов - media
-// IdInstance - Строка - Уникальный номер инстанса - id
-// ApiTokenInstance - Строка - Ключ доступа инстанса - token
-//
-// Возвращаемое значение:
-// Структура - Структура параметров доступа
-Функция СформироватьПараметрыДоступа(Знач ApiUrl, Знач MediaUrl, Знач IdInstance, Знач ApiTokenInstance) Экспорт
-
- Строка_ = "Строка";
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("apiUrl" , ApiUrl , Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("mediaUrl" , MediaUrl , Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("idInstance" , IdInstance , Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("apiTokenInstance", ApiTokenInstance, Строка_, Параметры);
-
- Возврат Параметры;
-
-КонецФункции
-
-// Получить информацию об аккаунте
-// Получает информацию об аккаунте
-//
-// Примечание:
-// Метод в документации API: [GetWaSettings](@green-api.com/docs/api/account/GetWaSettings/)
-//
-// Параметры:
-// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
-Функция ПолучитьИнформациюОбАккаунте(Знач ПараметрыДоступа) Экспорт
-
- URL = СформироватьОсновнойURL(ПараметрыДоступа, "getWaSettings");
- Ответ = OPI_ЗапросыHTTP.Get(URL);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить настройки инстанса
-// Получает текущие настройки инстанса
-//
-// Примечание:
-// Метод в документации API: [GetSettings](@green-api.com/docs/api/account/GetSettings/)
-//
-// Параметры:
-// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
-Функция ПолучитьНастройкиИнстанса(Знач ПараметрыДоступа) Экспорт
-
- URL = СформироватьОсновнойURL(ПараметрыДоступа, "getSettings");
- Ответ = OPI_ЗапросыHTTP.Get(URL);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Установить настройки инстанса
-// Устанавливает настройки инстанса
-//
-// Примечание
-// Метод в документации API: [SetSettings](@green-api.com/docs/api/account/SetSettings/)
-//
-// Параметры:
-// Настройки - Структура Из КлючИЗначение - Настройки инстанса. См. ПолучитьСтруктуруНастроекИнстанса - settings
-// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
-Функция УстановитьНастройкиИнстанса(Знач Настройки, Знач ПараметрыДоступа) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(ПараметрыДоступа);
- OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(Настройки);
-
- URL = СформироватьОсновнойURL(ПараметрыДоступа, "setSettings");
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Настройки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить состояние инстанса
-// Получает состояние инстанса
-//
-// Примечание:
-// Метод в документации API: [GetStateInstance](@green-api.com/docs/api/account/GetStateInstance/)
-//
-// Параметры:
-// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
-Функция ПолучитьСостояниеИнстанса(Знач ПараметрыДоступа) Экспорт
-
- URL = СформироватьОсновнойURL(ПараметрыДоступа, "getStateInstance");
- Ответ = OPI_ЗапросыHTTP.Get(URL);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Перезапустить инстанс
-// Перезапускает инстанс
-//
-// Примечание:
-// Метод в документации API: [Reboot](@green-api.com/docs/api/account/Reboot/)
-//
-// Параметры:
-// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
-Функция ПерезапуститьИнстанс(Знач ПараметрыДоступа) Экспорт
-
- URL = СформироватьОсновнойURL(ПараметрыДоступа, "reboot");
- Ответ = OPI_ЗапросыHTTP.Get(URL);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Разлогинить инстанс
-// Разлогинивает инстанс
-//
-// Примечание:
-// Метод в документации API: [Logout](@green-api.com/docs/api/account/Logout/)
-//
-// Параметры:
-// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
-Функция РазлогинитьИнстанс(Знач ПараметрыДоступа) Экспорт
-
- URL = СформироватьОсновнойURL(ПараметрыДоступа, "logout");
- Ответ = OPI_ЗапросыHTTP.Get(URL);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить QR
-// Получает QR-код авторизации
-//
-// Примечание:
-// Метод в документации API: [QR](@green-api.com/docs/api/account/QR/)
-//
-// Параметры:
-// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
-//
-// Возвращаемое значение:
-// ДвоичныеДанные, Соответствие Из КлючИЗначение - QR код или информация об ошибке
-Функция ПолучитьQR(Знач ПараметрыДоступа) Экспорт
-
- URL = СформироватьОсновнойURL(ПараметрыДоступа, "qr");
- Ответ = OPI_ЗапросыHTTP.Get(URL);
-
- Попытка
-
- Если Ответ["type"] = "qrCode" Тогда
- Результат = Base64Значение(Ответ["message"]);
- КонецЕсли;
-
- Исключение
- Результат = Ответ;
- КонецПопытки;
-
- Возврат Результат;
-
-КонецФункции
-
-// Получить код авторизации
-// Получает код авторизации для связи по номеру телефона
-//
-// Примечание:
-// Метод в документации API: [GetAuthorizationCode](@green-api.com/docs/api/account/GetAuthorizationCode/)
-//
-// Параметры:
-// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
-// НомерТелефона - Строка, Число - Номер телефона в международном формате без + и 00 - phone
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
-Функция ПолучитьКодАвторизации(Знач ПараметрыДоступа, Знач НомерТелефона) Экспорт
-
- Параметры = Новый Структура;
-
- OPI_Инструменты.ДобавитьПоле("phoneNumber", НомерТелефона, "Число", Параметры);
-
- URL = СформироватьОсновнойURL(ПараметрыДоступа, "getAuthorizationCode");
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Установить картинку профиля
-// Устанавливает новую картинку профиля
-//
-// Примечание:
-// Метод в документации API: [SetProfilePicture](@green-api.com/docs/api/account/SetProfilePicture/)
-//
-// Параметры:
-// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
-// Картинка - ДвоичныеДанные, Строка - Картинка профиля - picture
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
-Функция УстановитьКартинкуПрофиля(Знач ПараметрыДоступа, Знач Картинка) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка);
-
- СоответствиеКартинки = Новый Соответствие();
- СоответствиеКартинки.Вставить("file|file.jpg", Картинка);
-
- URL = СформироватьОсновнойURL(ПараметрыДоступа, "setProfilePicture");
- Ответ = OPI_ЗапросыHTTP.PostMultipart(URL, , СоответствиеКартинки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Архивировать чат
-// Архивирует выбранный чат
-//
-// Примечание:
-// Метод в документации API: [ArchiveChat](@green-api.com/docs/api/service/archiveChat/)
-//
-// Параметры:
-// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
-// IDЧата - Строка - ID чата для архивации - chat
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
-Функция АрхивироватьЧат(Знач ПараметрыДоступа, Знач IDЧата) Экспорт
-
- Возврат УправлениеАрхивациейЧата(ПараметрыДоступа, IDЧата, Истина);
-
-КонецФункции
-
-// Разархивировать чат
-// Разархивирует выбранный чат
-//
-// Примечание:
-// Метод в документации API: [UnarchiveChat](@green-api.com/docs/api/service/unarchiveChat/)
-//
-// Параметры:
-// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
-// IDЧата - Строка - ID чата для разархивации - chat
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
-Функция РазархивироватьЧат(Знач ПараметрыДоступа, Знач IDЧата) Экспорт
-
- Возврат УправлениеАрхивациейЧата(ПараметрыДоступа, IDЧата, Ложь);
-
-КонецФункции
-
-// Получить структуру настроек инстанса
-// Получает шаблон структуры для установки настроек инстанса
-//
-// Параметры:
-// Пустая - Булево - Истина > структура с пустыми значениями, Ложь > в значениях будут описания полей - empty
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - Структура настроек инстанса
-Функция ПолучитьСтруктуруНастроекИнстанса(Знач Пустая = Ложь) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьБулево(Пустая);
-
- СтруктураНастроек = Новый Структура;
-
- СтруктураНастроек.Вставить("webhookUrl" , "");
- СтруктураНастроек.Вставить("webhookUrlToken" , "<токен для доступа к вашему серверу уведомлений, если требуется>");
- СтруктураНастроек.Вставить("delaySendMessagesMilliseconds" , "<интервал отправки сообщений в миллисекундах>");
- СтруктураНастроек.Вставить("markIncomingMessagesReaded" , "<отмечать входящие сообщения прочитанными: yes, no>");
- СтруктураНастроек.Вставить("markIncomingMessagesReadedOnReply", "<отмечать входящие сообщения прочитанными при отправке сообщения в чат: yes, no>");
- СтруктураНастроек.Вставить("outgoingWebhook" , "<получать уведомления о статусах отправки/доставки/прочтении исходящих сообщений: yes, no>");
- СтруктураНастроек.Вставить("outgoingMessageWebhook" , "<получать уведомления о сообщениях, отправленных с телефона: yes, no>");
- СтруктураНастроек.Вставить("outgoingAPIMessageWebhook" , "<получать уведомления о сообщениях, отправленных через API: yes, no>");
- СтруктураНастроек.Вставить("stateWebhook" , "<получать уведомления об изменении состояния авторизации инстанса: yes, no>");
- СтруктураНастроек.Вставить("incomingWebhook" , "<получать уведомления о входящих сообщениях и файлах: yes, no>");
- СтруктураНастроек.Вставить("deviceWebhook" , "<получать уведомления об устройстве (телефоне) и уровне заряда батареи: yes, no>");
- СтруктураНастроек.Вставить("keepOnlineStatus" , "<выставляет статус 'В сети' для вашего аккаунта>");
- СтруктураНастроек.Вставить("pollMessageWebhook" , "<получать уведомления о создании опроса и голосовании в опросе: yes, no>");
- СтруктураНастроек.Вставить("incomingBlockWebhook" , "<получать уведомления о добавлении чата в список заблокированных контактов: yes, no>");
- СтруктураНастроек.Вставить("incomingCallWebhook" , "<получать уведомления о статусах входящего звонка: yes, no>");
- СтруктураНастроек.Вставить("editedMessageWebhook" , "<получать уведомления о факте того, что сообщение было отредактировано: yes, no>");
- СтруктураНастроек.Вставить("deletedMessageWebhook" , "<получать уведомления о факте того, что сообщение было удалено: yes, no>");
-
- Если Пустая Тогда
- СтруктураНастроек = OPI_Инструменты.ОчиститьКоллекциюРекурсивно(СтруктураНастроек);
- КонецЕсли;
-
- //@skip-check constructor-function-return-section
- Возврат СтруктураНастроек;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область УправлениеГруппами
-
-// Получить информацию о группе
-// Получает данные группового чата
-//
-// Примечание:
-// Метод в документации API: [GetGroupData](@green-api.com/docs/api/groups/GetGroupData/)
-//
-// Параметры:
-// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
-// IDГруппы - Строка - Идентификатор группового чата - group
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
-Функция ПолучитьИнформациюОГруппе(Знач ПараметрыДоступа, Знач IDГруппы) Экспорт
-
- Параметры = Новый Структура;
-
- OPI_Инструменты.ДобавитьПоле("groupId", IDГруппы, "Строка", Параметры);
-
- URL = СформироватьОсновнойURL(ПараметрыДоступа, "getGroupData");
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Создать группу
-// Создает новый групповой чат
-//
-// Примечание:
-// Метод в документации API: [CreateGroup](@green-api.com/docs/api/groups/CreateGroup/)
-//
-// Параметры:
-// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
-// Имя - Строка - Наименование группового чата - name
-// Участники - Массив Из Строка - Массив участников чата - members
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
-Функция СоздатьГруппу(Знач ПараметрыДоступа, Знач Имя, Знач Участники = Неопределено) Экспорт
-
- Если Не ЗначениеЗаполнено(Участники) Тогда
- Участники = Новый Массив;
- КонецЕсли;
-
- Параметры = Новый Структура;
-
- OPI_Инструменты.ДобавитьПоле("groupName", Имя , "Строка" , Параметры);
- OPI_Инструменты.ДобавитьПоле("chatIds" , Участники, "Коллекция", Параметры);
-
- URL = СформироватьОсновнойURL(ПараметрыДоступа, "createGroup");
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Изменить имя группы
-// Изменяет имя существующей группы
-//
-// Примечание:
-// Метод в документации API: [UpdateGroupName](@green-api.com/docs/api/groups/UpdateGroupName/)
-//
-// Параметры:
-// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
-// IDГруппы - Строка - Идентификатор группового чата - group
-// Имя - Строка - Новое наименование группового чата - name
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
-Функция ИзменитьИмяГруппы(Знач ПараметрыДоступа, Знач IDГруппы, Знач Имя) Экспорт
-
- Параметры = Новый Структура;
-
- OPI_Инструменты.ДобавитьПоле("groupId" , IDГруппы, "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("groupName", Имя , "Строка", Параметры);
-
- URL = СформироватьОсновнойURL(ПараметрыДоступа, "updateGroupName");
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Добавить участника в группу
-// Добавляет участника в групповой чат
-//
-// Примечание:
-// Метод в документации API: [AddGroupParticipant](@green-api.com/docs/api/groups/AddGroupParticipant/)
-//
-// Параметры:
-// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
-// IDГруппы - Строка - Идентификатор группового чата - group
-// IDПользователя - Строка - ID пользователя для добавления - user
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
-Функция ДобавитьУчастникаВГруппу(Знач ПараметрыДоступа, Знач IDГруппы, Знач IDПользователя) Экспорт
-
- Ответ = ДействиеСУчастникомГруппы(ПараметрыДоступа, IDГруппы, IDПользователя, "addGroupParticipant");
-
- Возврат Ответ;
-
-КонецФункции
-
-// Исключить участника группы
-// Исключает участника из группы
-//
-// Примечание:
-// Метод в документации API: [RemoveGroupParticipant](@green-api.com/docs/api/groups/RemoveGroupParticipant/)
-//
-// Параметры:
-// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
-// IDГруппы - Строка - Идентификатор группового чата - group
-// IDПользователя - Строка - ID пользователя для добавления - user
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
-Функция ИсключитьУчастникаГруппы(Знач ПараметрыДоступа, Знач IDГруппы, Знач IDПользователя) Экспорт
-
- Ответ = ДействиеСУчастникомГруппы(ПараметрыДоступа, IDГруппы, IDПользователя, "removeGroupParticipant");
-
- Возврат Ответ;
-
-КонецФункции
-
-// Назначить права администратора
-// Назначает пользователя администратором группы
-//
-// Примечание:
-// Метод в документации API: [SetGroupAdmin](@green-api.com/docs/api/groups/SetGroupAdmin/)
-//
-// Параметры:
-// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
-// IDГруппы - Строка - Идентификатор группового чата - group
-// IDПользователя - Строка - ID пользователя для добавления - user
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
-Функция НазначитьПраваАдминистратора(Знач ПараметрыДоступа, Знач IDГруппы, Знач IDПользователя) Экспорт
-
- Ответ = ДействиеСУчастникомГруппы(ПараметрыДоступа, IDГруппы, IDПользователя, "setGroupAdmin");
-
- Возврат Ответ;
-
-КонецФункции
-
-// Отозвать права администратора
-// Отзывает права администратора у пользователя
-//
-// Примечание:
-// Метод в документации API: [RemoveAdmin](@green-api.com/docs/api/groups/RemoveAdmin/)
-//
-// Параметры:
-// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
-// IDГруппы - Строка - Идентификатор группового чата - group
-// IDПользователя - Строка - ID пользователя для добавления - user
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
-Функция ОтозватьПраваАдминистратора(Знач ПараметрыДоступа, Знач IDГруппы, Знач IDПользователя) Экспорт
-
- Ответ = ДействиеСУчастникомГруппы(ПараметрыДоступа, IDГруппы, IDПользователя, "removeAdmin");
-
- Возврат Ответ;
-
-КонецФункции
-
-// Покинуть группу
-// Производит выход текущего аккаунта из группового чата
-//
-// Примечание:
-// Метод в документации API: [LeaveGroup](@green-api.com/docs/api/groups/LeaveGroup/)
-//
-// Параметры:
-// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
-// IDГруппы - Строка - Идентификатор группового чата - group
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
-Функция ПокинутьГруппу(Знач ПараметрыДоступа, Знач IDГруппы) Экспорт
-
- Параметры = Новый Структура;
-
- OPI_Инструменты.ДобавитьПоле("groupId", IDГруппы, "Строка", Параметры);
-
- URL = СформироватьОсновнойURL(ПараметрыДоступа, "leaveGroup");
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Установить картинку группы
-// Устанавливает картинку группового чата
-//
-// Примечание:
-// Метод в документации API: [SetGroupPicture](@green-api.com/docs/api/groups/SetGroupPicture/)
-//
-// Параметры:
-// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
-// IDГруппы - Строка - Идентификатор группового чата - group
-// Картинка - ДвоичныеДанные, Строка - Картинка профиля - picture
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
-Функция УстановитьКартинкуГруппы(Знач ПараметрыДоступа, Знач IDГруппы, Знач Картинка) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка);
-
- Параметры = Новый Структура;
-
- OPI_Инструменты.ДобавитьПоле("groupId", IDГруппы, "Строка", Параметры);
-
- СоответствиеКартинки = Новый Соответствие();
- СоответствиеКартинки.Вставить("file|file.jpg", Картинка);
-
- URL = СформироватьОсновнойURL(ПараметрыДоступа, "setGroupPicture");
- Ответ = OPI_ЗапросыHTTP.PostMultipart(URL, Параметры, СоответствиеКартинки);
-
- Возврат Ответ;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область ОтправкаСообщений
-
-// Отправить текстовое сообщение
-// Отправляет текстовое сообщение в выбранный чат
-//
-// Примечание:
-// Метод в документации API: [SendMessage](@green-api.com/docs/api/sending/SendMessage/)
-//
-// Параметры:
-// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
-// IDЧата - Строка - Идентификатор чата - chat
-// Текст - Строка - Текст сообщения - text
-// IDЦитируемого - Строка - ID цитируемого сообщения, если необходимо - quoted
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
-Функция ОтправитьТекстовоеСообщение(Знач ПараметрыДоступа, Знач IDЧата, Знач Текст, Знач IDЦитируемого = "") Экспорт
-
- Строка_ = "Строка";
- Параметры = Новый Структура;
-
- OPI_Инструменты.ДобавитьПоле("chatId" , IDЧата , Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("message" , Текст , Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("quotedMessageId", IDЦитируемого, Строка_, Параметры);
-
- URL = СформироватьОсновнойURL(ПараметрыДоступа, "sendMessage");
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Отправить файл
-// Отправляет файл в выбранный чат
-//
-// Примечание:
-// Метод в документации API: [SendFileByUpload](@green-api.com/docs/api/sending/SendFileByUpload/)
-//
-// Параметры:
-// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
-// IDЧата - Строка - Идентификатор чата - chat
-// Файл - Строка, ДвоичныеДанные - Данные или путь к файлу - file
-// ИмяФайла - Строка - Имя загружаемого файла с раширением - filename
-// Описание - Строка - Текст сообщения под файлом - caption
-// IDЦитируемого - Строка - ID цитируемого сообщения, если необходимо - quoted
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
-Функция ОтправитьФайл(Знач ПараметрыДоступа
- , Знач IDЧата
- , Знач Файл
- , Знач ИмяФайла
- , Знач Описание = ""
- , Знач IDЦитируемого = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Файл);
-
- Строка_ = "Строка";
- Параметры = Новый Структура;
-
- OPI_Инструменты.ДобавитьПоле("chatId" , IDЧата , Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("fileName" , ИмяФайла , Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("caption" , Описание , Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("quotedMessageId", IDЦитируемого, Строка_, Параметры);
-
- СоответствиеФайла = Новый Соответствие();
- СоответствиеФайла.Вставить(СтрШаблон("file|%1", ИмяФайла), Файл);
-
- URL = СформироватьМедиаURL(ПараметрыДоступа, "SendFileByUpload");
- Ответ = OPI_ЗапросыHTTP.PostMultipart(URL, Параметры, СоответствиеФайла);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Отправить файл по URL
-// Отправляет файл по URL в выбранный чат
-//
-// Примечание:
-// Метод в документации API: [SendFileByUrl](@green-api.com/docs/api/sending/SendFileByUrl/)
-//
-// Параметры:
-// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
-// IDЧата - Строка - Идентификатор чата - chat
-// URLФайла - Строка - URL файла для отправки - url
-// ИмяФайла - Строка - Имя загружаемого файла с раширением - filename
-// Описание - Строка - Текст сообщения под файлом - caption
-// IDЦитируемого - Строка - ID цитируемого сообщения, если необходимо - quoted
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
-Функция ОтправитьФайлПоURL(Знач ПараметрыДоступа
- , Знач IDЧата
- , Знач URLФайла
- , Знач ИмяФайла
- , Знач Описание = ""
- , Знач IDЦитируемого = "") Экспорт
-
- Строка_ = "Строка";
- Параметры = Новый Структура;
-
- OPI_Инструменты.ДобавитьПоле("chatId" , IDЧата , Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("urlFile" , URLФайла , Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("fileName" , ИмяФайла , Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("caption" , Описание , Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("quotedMessageId", IDЦитируемого, Строка_, Параметры);
-
- URL = СформироватьОсновнойURL(ПараметрыДоступа, "sendFileByUrl");
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Отправить опрос
-// Отправляет опрос с вариантами ответов в выбранный чат
-//
-// Примечание:
-// Метод в документации API: [SendPoll](@green-api.com/docs/api/sending/SendPoll/)
-//
-// Параметры:
-// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
-// IDЧата - Строка - Идентификатор чата - chat
-// Текст - Строка - Текст сообщения - text
-// Варианты - Массив Из Строка - Варианты ответов - options
-// МножественныйВыбор - Булево - Позволяет выбирать несколько вариантов ответа - multi
-// IDЦитируемого - Строка - ID цитируемого сообщения, если необходимо - quoted
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
-Функция ОтправитьОпрос(Знач ПараметрыДоступа
- , Знач IDЧата
- , Знач Текст
- , Знач Варианты
- , Знач МножественныйВыбор = Ложь
- , Знач IDЦитируемого = "") Экспорт
-
- Строка_ = "Строка";
- Параметры = Новый Структура;
- МассивВариантов = Новый Массив;
-
- OPI_ПреобразованиеТипов.ПолучитьМассив(Варианты);
-
- Для Каждого Вариант Из Варианты Цикл
- МассивВариантов.Добавить(Новый Структура("optionName", Вариант));
- КонецЦикла;
-
- OPI_Инструменты.ДобавитьПоле("chatId" , IDЧата , Строка_ , Параметры);
- OPI_Инструменты.ДобавитьПоле("message" , Текст , Строка_ , Параметры);
- OPI_Инструменты.ДобавитьПоле("options" , МассивВариантов , "Коллекция", Параметры);
- OPI_Инструменты.ДобавитьПоле("multipleAnswers", МножественныйВыбор, "Булево" , Параметры);
- OPI_Инструменты.ДобавитьПоле("quotedMessageId", IDЦитируемого , Строка_ , Параметры);
-
- URL = СформироватьОсновнойURL(ПараметрыДоступа, "sendPoll");
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Отправить локацию
-// Отправляет данные о местоположении в указанный чат
-//
-// Примечание:
-// Метод в документации API: [SendPoll](@green-api.com/docs/api/sending/SendPoll/)
-//
-// Параметры:
-// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
-// IDЧата - Строка - Идентификатор чата - chat
-// Локация - Структура Из КлючИЗначение - Описание локации. См. ПолучитьОписаниеЛокации - loc
-// IDЦитируемого - Строка - ID цитируемого сообщения, если необходимо - quoted
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
-Функция ОтправитьЛокацию(Знач ПараметрыДоступа, Знач IDЧата, Знач Локация, Знач IDЦитируемого = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(Локация);
-
- Параметры = Новый Структура;
-
- OPI_Инструменты.ДобавитьПоле("chatId" , IDЧата , "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("quotedMessageId", IDЦитируемого, "Строка", Параметры);
-
- Для Каждого Элемент Из Локация Цикл
- Параметры.Вставить(Элемент.Ключ, Элемент.Значение);
- КонецЦикла;
-
- URL = СформироватьОсновнойURL(ПараметрыДоступа, "sendLocation");
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Отправить контакт
-// Отправляет контакт с номером телефона в выбранный чат
-//
-// Примечание:
-// Метод в документации API: [SendContact](@green-api.com/docs/api/sending/SendContact/)
-//
-// Параметры:
-// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
-// IDЧата - Строка - Идентификатор чата - chat
-// Контакт - Структура Из КлючИЗначение - Описание контакта. См. ПолучитьОписаниеКонтакта - contact
-// IDЦитируемого - Строка - ID цитируемого сообщения, если необходимо - quoted
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
-Функция ОтправитьКонтакт(Знач ПараметрыДоступа, Знач IDЧата, Знач Контакт, Знач IDЦитируемого = "") Экспорт
-
- Параметры = Новый Структура;
-
- OPI_Инструменты.ДобавитьПоле("chatId" , IDЧата , "Строка" , Параметры);
- OPI_Инструменты.ДобавитьПоле("contact" , Контакт , "Коллекция", Параметры);
- OPI_Инструменты.ДобавитьПоле("quotedMessageId", IDЦитируемого, "Строка" , Параметры);
-
- URL = СформироватьОсновнойURL(ПараметрыДоступа, "sendContact");
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Переслать сообщения
-// Пересылает сообщения из одного чата в другой
-//
-// Примечание:
-// Метод в документации API: [ForwardMessages](@green-api.com/docs/api/sending/ForwardMessages/)
-//
-// Параметры:
-// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
-// Откуда - Строка - ID чата источника сообщения - from
-// Куда - Строка - ID чата приемника сообщения - to
-// Сообщения - Строка, Массив Из Строка - Сообщения или одно сообщения для отправки - msgs
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
-Функция ПереслатьСообщения(Знач ПараметрыДоступа, Знач Откуда, Знач Куда, Знач Сообщения) Экспорт
-
- Параметры = Новый Структура;
-
- OPI_Инструменты.ДобавитьПоле("chatId" , Куда , "Строка" , Параметры);
- OPI_Инструменты.ДобавитьПоле("chatIdFrom", Откуда , "Строка" , Параметры);
- OPI_Инструменты.ДобавитьПоле("messages" , Сообщения, "Коллекция", Параметры);
-
- URL = СформироватьОсновнойURL(ПараметрыДоступа, "forwardMessages");
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Изменить текст сообщения
-// Изменяет текст сообщения
-//
-// Примечание:
-// Метод в документации API: [EditMessage](@green-api.com/docs/api/service/EditMessage/)
-//
-// Параметры:
-// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
-// IDЧата - Строка - Идентификатор чата - chat
-// IDСообщения - Строка - Идентификатор сообщения - message
-// Текст - Строка - Новый текст сообщения - text
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
-Функция ИзменитьТекстСообщения(Знач ПараметрыДоступа, Знач IDЧата, Знач IDСообщения, Знач Текст) Экспорт
-
- Строка_ = "Строка";
- Параметры = Новый Структура;
-
- OPI_Инструменты.ДобавитьПоле("chatId" , IDЧата , Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("idMessage", IDСообщения, Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("message" , Текст , Строка_, Параметры);
-
- URL = СформироватьОсновнойURL(ПараметрыДоступа, "editMessage");
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Удалить сообщение
-// Удаляет сообщение в выбранном чате
-//
-// Примечание:
-// Метод в документации API: [DeleteMessage](@green-api.com/docs/api/service/deleteMessage/)
-//
-// Параметры:
-// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
-// IDЧата - Строка - Идентификатор чата - chat
-// IDСообщения - Строка - Идентификатор сообщения - message
-// ТолькоУОтправителя - Булево - Удалять только у отправителя - sender
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
-Функция УдалитьСообщение(Знач ПараметрыДоступа, Знач IDЧата, Знач IDСообщения, Знач ТолькоУОтправителя = Ложь) Экспорт
-
- Параметры = Новый Структура;
-
- OPI_Инструменты.ДобавитьПоле("chatId" , IDЧата , "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("idMessage" , IDСообщения , "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("onlySenderDelete", ТолькоУОтправителя, "Булево", Параметры);
-
- URL = СформироватьОсновнойURL(ПараметрыДоступа, "deleteMessage");
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить описание контакта
-// Получает описание контакта для функции ОтправитьКонстакт
-//
-// Параметры:
-// Телефон - Число - Телефон в международном формате без знака плюс - phone
-// Имя - Строка - Имя контакта - name
-// Фамилия - Строка - Фамилия контакта - surname
-// Отчество - Строка - Отчество контакта - midname
-// Компания - Строка - Название компании контакта - company
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - Описание контакта
-Функция ПолучитьОписаниеКонтакта(Знач Телефон
- , Знач Имя = ""
- , Знач Фамилия = ""
- , Знач Отчество = ""
- , Знач Компания = "") Экспорт
-
- Строка_ = "Строка";
- Контакт = Новый Структура;
-
- OPI_Инструменты.ДобавитьПоле("phoneContact", Телефон , "Число", Контакт);
- OPI_Инструменты.ДобавитьПоле("firstName" , Имя , Строка_, Контакт);
- OPI_Инструменты.ДобавитьПоле("middleName" , Фамилия , Строка_, Контакт);
- OPI_Инструменты.ДобавитьПоле("lastName" , Отчество, Строка_, Контакт);
- OPI_Инструменты.ДобавитьПоле("company" , Компания, Строка_, Контакт);
-
- Возврат Контакт;
-
-КонецФункции
-
-// Получить описание локации
-// Получает описание локации для отправки в ОтправитьЛокацию
-//
-// Параметры:
-// Широта - Число - Географическая широта - lat
-// Долгота - Число - Географическая долгота - long
-// Адрес - Строка - Адрес локации - addr
-// Название - Строка - Название локации - name
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - Описание локации
-Функция ПолучитьОписаниеЛокации(Знач Широта, Знач Долгота, Знач Адрес = "", Знач Название = "") Экспорт
-
- Локация = Новый Структура;
-
- OPI_Инструменты.ДобавитьПоле("latitude" , Широта , "Число" , Локация);
- OPI_Инструменты.ДобавитьПоле("longitude" , Долгота , "Число" , Локация);
- OPI_Инструменты.ДобавитьПоле("address" , Адрес , "Строка", Локация);
- OPI_Инструменты.ДобавитьПоле("nameLocation", Название, "Строка", Локация);
-
- Возврат Локация;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область ПолучениеУведомлений
-
-// Получить уведомление
-// Получает одно уведомление из очереди
-//
-// Примечание:
-// После успешного принятия уведомления, необходимо удалить его из очереди при помощи метода `УдалитьУведомлениеИзОчереди`
-// Метод в документации API: [ReceiveNotification](@green-api.com/docs/api/receiving/technology-http-api/ReceiveNotification/)
-//
-// Параметры:
-// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
-// Таймаут - Число - Таймаут ожидания новых сообщений при пустой очереди - timeout
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
-Функция ПолучитьУведомление(Знач ПараметрыДоступа, Знач Таймаут = 5) Экспорт
-
- Параметры = Новый Структура;
-
- OPI_Инструменты.ДобавитьПоле("receiveTimeout", Таймаут, "Число", Параметры);
-
- URL = СформироватьОсновнойURL(ПараметрыДоступа, "receiveNotification");
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Удалить уведомление из очереди
-// Удаляет уведомление из очерели после успешного получения
-//
-// Примечание:
-// Метод в документации API: [DeleteNotification](@green-api.com/docs/api/receiving/technology-http-api/DeleteNotification/)
-//
-// Параметры:
-// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
-// IDДоставки - Строка, Число - Идентификатор доставки из метода ПолучитьУведомление - receipt
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
-Функция УдалитьУведомлениеИзОчереди(Знач ПараметрыДоступа, Знач IDДоставки) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(IDДоставки);
-
- URL = СформироватьОсновнойURL(ПараметрыДоступа, "deleteNotification");
- URL = СтрШаблон("%1/%2", URL, IDДоставки);
-
- Ответ = OPI_ЗапросыHTTP.Delete(URL);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Скачать файл сообщения
-// Получает ссылку на скачивание файла из входящего сообщения
-//
-// Примечание:
-// Метод в документации API: [DownloadFile](@green-api.com/docs/api/receiving/files/DownloadFile/)
-//
-// Параметры:
-// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
-// IDЧата - Строка - Идентификатор чата - chat
-// IDСообщения - Строка - Идентификатор сообщения с файлом - message
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
-Функция СкачатьФайлСообщения(Знач ПараметрыДоступа, Знач IDЧата, Знач IDСообщения) Экспорт
-
- Параметры = Новый Структура;
-
- OPI_Инструменты.ДобавитьПоле("chatId" , IDЧата , "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("idMessage", IDСообщения, "Строка", Параметры);
-
- URL = СформироватьОсновнойURL(ПараметрыДоступа, "downloadFile");
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Установить отметку прочтения
-// Устанавливает отметку Прочитано для сообщения или всех сообщений чата
-//
-// Примечание:
-// Метод в документации API: [ReadChat](@green-api.com/docs/api/marks/ReadChat/)
-//
-// Параметры:
-// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
-// IDЧата - Строка - Идентификатор чата - chat
-// IDСообщения - Строка - Идентификатор сообщения. Все сообщения, если не заполнено - message
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
-Функция УстановитьОтметкуПрочтения(Знач ПараметрыДоступа, Знач IDЧата, Знач IDСообщения = "") Экспорт
-
- Параметры = Новый Структура;
-
- OPI_Инструменты.ДобавитьПоле("chatId" , IDЧата , "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("idMessage" , IDСообщения, "Строка", Параметры);
-
- URL = СформироватьОсновнойURL(ПараметрыДоступа, "readChat");
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область ОчередьСообщений
-
-// Получить очередь сообщений
-// Получает список сообщений в очереди на отправку
-//
-// Примечание:
-// Метод в документации API: [ShowMessagesQueue](@green-api.com/docs/api/queues/ShowMessagesQueue/)
-//
-// Параметры:
-// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
-Функция ПолучитьОчередьСообщений(Знач ПараметрыДоступа) Экспорт
-
- URL = СформироватьОсновнойURL(ПараметрыДоступа, "showMessagesQueue");
- Ответ = OPI_ЗапросыHTTP.Get(URL);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Очистить очередь сообщений
-// Очищает очередь сообщений на отправку
-//
-// Примечание:
-// Метод в документации API: [ClearMessagesQueue](@green-api.com/docs/api/queues/ClearMessagesQueue/)
-//
-// Параметры:
-// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
-Функция ОчиститьОчередьСообщений(Знач ПараметрыДоступа) Экспорт
-
- URL = СформироватьОсновнойURL(ПараметрыДоступа, "clearMessagesQueue");
- Ответ = OPI_ЗапросыHTTP.Get(URL);
-
- Возврат Ответ;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область ЖурналыСообщений
-
-// Получить историю чата
-// Получает историю сообщений чата
-//
-// Примечание:
-// Метод в документации API: [GetChatHistory](@green-api.com/docs/api/journals/GetChatHistory/)
-//
-// Параметры:
-// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
-// IDЧата - Строка - Идентификатор чата - chat
-// Количество - Число - Количество сообщений для получения - count
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
-Функция ПолучитьИсториюЧата(Знач ПараметрыДоступа, Знач IDЧата, Знач Количество = 100) Экспорт
-
- Параметры = Новый Структура;
-
- OPI_Инструменты.ДобавитьПоле("chatId", IDЧата , "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("count" , Количество, "Число" , Параметры);
-
- URL = СформироватьОсновнойURL(ПараметрыДоступа, "getChatHistory");
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить сообщение
-// Получает информацию о сообщении чата по ID
-//
-// Примечание:
-// Метод в документации API: [GetMessage](@green-api.com/docs/api/journals/GetMessage/)
-//
-// Параметры:
-// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
-// IDЧата - Строка - Идентификатор чата - chat
-// IDСообщения - Строка - Идентификатор сообщения - msg
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
-Функция ПолучитьСообщение(Знач ПараметрыДоступа, Знач IDЧата, Знач IDСообщения) Экспорт
-
- Параметры = Новый Структура;
-
- OPI_Инструменты.ДобавитьПоле("chatId" , IDЧата , "Строка" , Параметры);
- OPI_Инструменты.ДобавитьПоле("idMessage", IDСообщения, "Строка" , Параметры);
-
- URL = СформироватьОсновнойURL(ПараметрыДоступа, "getMessage");
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить журнал входящих сообщений
-// Получает список входящих сообщений инстанса за указанный интервал
-//
-// Примечание:
-// Метод в документации API: [LastIncomingMessages](@green-api.com/docs/api/journals/LastIncomingMessages/)
-//
-// Параметры:
-// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
-// Период - Число - Время в минутах, за которое требуется показать сообщения - period
-//
-// Возвращаемое значение:
-// Массив Из Произвольный - сериализованный JSON ответа от Green API
-Функция ПолучитьЖурналВходящихСообщений(Знач ПараметрыДоступа, Знач Период = 1440) Экспорт
-
- Параметры = Новый Структура;
-
- OPI_Инструменты.ДобавитьПоле("minutes", Период, "Число" , Параметры);
-
- URL = СформироватьОсновнойURL(ПараметрыДоступа, "lastIncomingMessages");
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры);
-
- Если Не ЗначениеЗаполнено(Ответ) Тогда
- Возврат Новый Массив;
- КонецЕсли;
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить журнал исходящих сообщений
-// Получает список исходящих сообщений инстанса за указанный интервал
-//
-// Примечание:
-// Метод в документации API: [LastOutgoingMessages](@green-api.com/docs/api/journals/LastOutgoingMessages/)
-//
-// Параметры:
-// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
-// Период - Число - Время в минутах, за которое требуется показать сообщения - period
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
-Функция ПолучитьЖурналИсходящихСообщений(Знач ПараметрыДоступа, Знач Период = 1440) Экспорт
-
- Параметры = Новый Структура;
-
- OPI_Инструменты.ДобавитьПоле("minutes", Период, "Число" , Параметры);
-
- URL = СформироватьОсновнойURL(ПараметрыДоступа, "lastOutgoingMessages");
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-#КонецОбласти
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-Функция СформироватьОсновнойURL(Знач ПараметрыДоступа, Знач Метод)
-
- Возврат СформироватьURL(ПараметрыДоступа, Метод, "apiUrl");
-
-КонецФункции
-
-Функция СформироватьМедиаURL(Знач ПараметрыДоступа, Знач Метод)
-
- Возврат СформироватьURL(ПараметрыДоступа, Метод, "mediaUrl");
-
-КонецФункции
-
-Функция СформироватьURL(ПараметрыДоступа, Метод, ПолеURL)
-
- OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(ПараметрыДоступа);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Метод);
-
- ОбязательныеПоля = СтрРазделить(ПолеURL + ",idInstance,apiTokenInstance", ",");
- ОтсутствующиеПоля = OPI_Инструменты.НайтиОтсутствующиеПоляКоллекции(ПараметрыДоступа, ОбязательныеПоля);
-
- Если ОтсутствующиеПоля.Количество() > 0 Тогда
- ВызватьИсключение "Отсутствуют обязательные поля в параметрах доступа!";
- КонецЕсли;
-
- Url = ПараметрыДоступа[ПолеURL];
- IdInstance = ПараметрыДоступа["idInstance"];
- ApiTokenInstance = ПараметрыДоступа["apiTokenInstance"];
-
- URL = СтрШаблон("%1/waInstance%2/%3/%4", Url, IdInstance, Метод, ApiTokenInstance);
-
- Возврат URL;
-
-КонецФункции
-
-Функция ДействиеСУчастникомГруппы(Знач ПараметрыДоступа, Знач IDГруппы, Знач IDПользователя, Знач Метод)
-
- Параметры = Новый Структура;
-
- OPI_Инструменты.ДобавитьПоле("groupId" , IDГруппы , "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("participantChatId", IDПользователя, "Строка", Параметры);
-
- URL = СформироватьОсновнойURL(ПараметрыДоступа, Метод);
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-Функция УправлениеАрхивациейЧата(Знач ПараметрыДоступа, Знач IDЧата, Знач Архивация)
-
- Метод = ?(Архивация, "archiveChat", "unarchiveChat");
- Параметры = Новый Структура;
-
- OPI_Инструменты.ДобавитьПоле("chatId", IDЧата, "Строка", Параметры);
-
- URL = СформироватьОсновнойURL(ПараметрыДоступа, Метод);
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-#КонецОбласти
diff --git a/XML/CommonModules/OPI_GreenMax.xml b/XML/CommonModules/OPI_GreenMax.xml
deleted file mode 100644
index 2458ec8b50..0000000000
--- a/XML/CommonModules/OPI_GreenMax.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- OPI_GreenMax
-
-
- ru
- GreenAPI Max (ОПИ)
-
-
- Модуль для работы с Max через GreenAPI из набора ОПИ
- false
- false
- true
- true
- true
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git a/XML/CommonModules/OPI_GreenMax/Ext/Module.bsl b/XML/CommonModules/OPI_GreenMax/Ext/Module.bsl
deleted file mode 100644
index abf54c2b26..0000000000
--- a/XML/CommonModules/OPI_GreenMax/Ext/Module.bsl
+++ /dev/null
@@ -1,384 +0,0 @@
-// OneScript: ./OInt/core/Modules/OPI_GreenMax.os
-// Lib: Green Max
-// CLI: greenmax
-// Keywords: greenapi, max
-
-// MIT License
-
-// Copyright (c) 2023-2025 Anton Tsitavets
-
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-
-// The above copyright notice and this permission notice shall be included in all
-// copies or substantial portions of the Software.
-
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-// SOFTWARE.
-
-// https://github.com/Bayselonarrend/OpenIntegrations
-
-// BSLLS:Typo-off
-// BSLLS:LatinAndCyrillicSymbolInWord-off
-// BSLLS:IncorrectLineBreak-off
-// BSLLS:NumberOfOptionalParams-off
-// BSLLS:UsingServiceTag-off
-// BSLLS:LineLength-off
-// BSLLS:UsingSynchronousCalls-off
-// BSLLS:MagicNumber-off
-
-//@skip-check module-structure-top-region
-//@skip-check module-structure-method-in-regions
-//@skip-check wrong-string-literal-content
-//@skip-check method-too-many-params
-//@skip-check bsl-legacy-check-string-literal
-
-#Область ПрограммныйИнтерфейс
-
-#Область Аккаунт
-
-// Сформировать параметры доступа
-// Формирует структуру основных авторизационных данных
-//
-// Примечание:
-// Подробнее в документации API: [Получить параметры доступа к инстансу](@green-api.com/v3/docs/before-start/#parameters)
-//
-// Параметры:
-// ApiUrl - Строка - Ссылка на хост API - api
-// MediaUrl - Строка - Ссылка на хост API для отправки файлов - media
-// IdInstance - Строка - Уникальный номер инстанса - id
-// ApiTokenInstance - Строка - Ключ доступа инстанса - token
-//
-// Возвращаемое значение:
-// Структура - Структура параметров доступа
-Функция СформироватьПараметрыДоступа(Знач ApiUrl, Знач MediaUrl, Знач IdInstance, Знач ApiTokenInstance) Экспорт
-
- Строка_ = "Строка";
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("apiUrl" , ApiUrl , Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("mediaUrl" , MediaUrl , Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("idInstance" , IdInstance , Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("apiTokenInstance", ApiTokenInstance, Строка_, Параметры);
-
- Возврат Параметры;
-
-КонецФункции
-
-// Получить информацию об аккаунте
-// Получает информацию об аккаунте
-//
-// Примечание:
-// Метод в документации API: [GetWaSettings](@green-api.com/v3/docs/api/account/GetAccountSettings/)
-//
-// Параметры:
-// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
-Функция ПолучитьИнформациюОбАккаунте(Знач ПараметрыДоступа) Экспорт
-
- URL = СформироватьОсновнойURL(ПараметрыДоступа, "getAccountSettings");
- Ответ = OPI_ЗапросыHTTP.Get(URL);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить настройки инстанса
-// Получает текущие настройки инстанса
-//
-// Примечание:
-// Метод в документации API: [GetSettings](@green-api.com/v3/docs/api/account/GetSettings/)
-//
-// Параметры:
-// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
-Функция ПолучитьНастройкиИнстанса(Знач ПараметрыДоступа) Экспорт
-
- URL = СформироватьОсновнойURL(ПараметрыДоступа, "getSettings");
- Ответ = OPI_ЗапросыHTTP.Get(URL);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Установить настройки инстанса
-// Устанавливает настройки инстанса
-//
-// Примечание
-// Метод в документации API: [SetSettings](@green-api.com/v3/docs/api/account/SetSettings/)
-//
-// Параметры:
-// Настройки - Структура Из КлючИЗначение - Настройки инстанса. См. ПолучитьСтруктуруНастроекИнстанса - settings
-// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
-Функция УстановитьНастройкиИнстанса(Знач Настройки, Знач ПараметрыДоступа) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(Настройки);
-
- URL = СформироватьОсновнойURL(ПараметрыДоступа, "setSettings");
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Настройки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить код авторизации
-// Отправляет SMS по указанному номеру для получения кода подтверждения
-//
-// Примечание:
-// Метод в документации API: [StartAuthorization](@green-api.com/v3/docs/api/account/StartAuthorization/)
-//
-// Параметры:
-// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
-// НомерТелефона - Строка, Число - Номер телефона без знака + - phone
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
-Функция ПолучитьКодАвторизации(Знач ПараметрыДоступа, Знач НомерТелефона) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(НомерТелефона);
-
- НомерТелефона = СтрЗаменить(НомерТелефона, "+", "");
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("phoneNumber", НомерТелефона, "Число", Параметры);
-
- URL = СформироватьОсновнойURL(ПараметрыДоступа, "startAuthorization");
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Отправить код авторизации
-// Авторизует инстанс по коду доступа из SMS
-//
-// Примечание:
-// Метод в документации API: [SendAuthorizationCode](@green-api.com/v3/docs/api/account/SendAuthorizationCode/)
-//
-// Параметры:
-// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
-// КодАвторизации - Строка - Код авторизации - code
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
-Функция ОтправитьКодАвторизации(Знач ПараметрыДоступа, Знач КодАвторизации) Экспорт
-
- Параметры = Новый Структура;
-
- OPI_Инструменты.ДобавитьПоле("code", КодАвторизации, "Строка", Параметры);
-
- URL = СформироватьОсновнойURL(ПараметрыДоступа, "sendAuthorizationCode");
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить состояние инстанса
-// Получает состояние инстанса
-//
-// Примечание:
-// Метод в документации API: [GetStateInstance](@green-api.com/v3/docs/api/account/GetStateInstance/)
-//
-// Параметры:
-// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
-Функция ПолучитьСостояниеИнстанса(Знач ПараметрыДоступа) Экспорт
-
- URL = СформироватьОсновнойURL(ПараметрыДоступа, "getStateInstance");
- Ответ = OPI_ЗапросыHTTP.Get(URL);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Установить картинку профиля
-// Устанавливает новую картинку профиля
-//
-// Примечание:
-// Метод в документации API: [SetProfilePicture](@green-api.com/v3/docs/api/account/SetProfilePicture/)
-//
-// Параметры:
-// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
-// Картинка - ДвоичныеДанные, Строка - Картинка профиля - picture
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
-Функция УстановитьКартинкуПрофиля(Знач ПараметрыДоступа, Знач Картинка) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка);
-
- СоответствиеКартинки = Новый Соответствие();
- СоответствиеКартинки.Вставить("file|file.jpg", Картинка);
-
- URL = СформироватьОсновнойURL(ПараметрыДоступа, "setProfilePicture");
- Ответ = OPI_ЗапросыHTTP.PostMultipart(URL, , СоответствиеКартинки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Разлогинить инстанс
-// Разлогинивает инстанс
-//
-// Примечание:
-// Метод в документации API: [Logout](@green-api.com/v3/docs/api/account/Logout/)
-//
-// Параметры:
-// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
-Функция РазлогинитьИнстанс(Знач ПараметрыДоступа) Экспорт
-
- URL = СформироватьОсновнойURL(ПараметрыДоступа, "logout");
- Ответ = OPI_ЗапросыHTTP.Get(URL);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Перезапустить инстанс
-// Перезапускает инстанс
-//
-// Примечание:
-// Метод в документации API: [Reboot](@green-api.com/v3/docs/api/account/Reboot/)
-//
-// Параметры:
-// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
-Функция ПерезапуститьИнстанс(Знач ПараметрыДоступа) Экспорт
-
- URL = СформироватьОсновнойURL(ПараметрыДоступа, "reboot");
- Ответ = OPI_ЗапросыHTTP.Get(URL);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Проверить аккаунт
-// Проверяет существование аккаунта Max по номеру телефона
-//
-// Примечание:
-// Метод в документации API: [CheckAccount](@green-api.com/v3/docs/api/account/CheckAccount/)
-//
-// Параметры:
-// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
-// НомерТелефона - Строка, Число - Номер телефона для проверки без знака + - phone
-// ИгнорироватьКэш - Булево - Игнорировать кэш при повторном запросе проверки - force
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
-Функция ПроверитьАккаунт(Знач ПараметрыДоступа, Знач НомерТелефона, Знач ИгнорироватьКэш = Ложь) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(НомерТелефона);
-
- НомерТелефона = СтрЗаменить(НомерТелефона, "+", "");
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("phoneNumber", НомерТелефона , "Число" , Параметры);
- OPI_Инструменты.ДобавитьПоле("force" , ИгнорироватьКэш, "Булево", Параметры);
-
- URL = СформироватьОсновнойURL(ПараметрыДоступа, "checkAccount");
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить структуру настроек инстанса
-// Получает шаблон структуры для установки настроек инстанса
-//
-// Параметры:
-// Пустая - Булево - Истина > структура с пустыми значениями, Ложь > в значениях будут описания полей - empty
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - Структура настроек инстанса
-Функция ПолучитьСтруктуруНастроекИнстанса(Знач Пустая = Ложь) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьБулево(Пустая);
-
- СтруктураНастроек = Новый Структура;
-
- СтруктураНастроек.Вставить("webhookUrl" , "");
- СтруктураНастроек.Вставить("webhookUrlToken" , "<токен для доступа к вашему серверу уведомлений, если требуется>");
- СтруктураНастроек.Вставить("delaySendMessagesMilliseconds" , "<интервал отправки сообщений в миллисекундах>");
- СтруктураНастроек.Вставить("markIncomingMessagesReaded" , "<отмечать входящие сообщения прочитанными: yes, no>");
- СтруктураНастроек.Вставить("markIncomingMessagesReadedOnReply", "<отмечать входящие сообщения прочитанными при отправке сообщения в чат: yes, no>");
- СтруктураНастроек.Вставить("outgoingWebhook" , "<получать уведомления о статусах отправки/доставки/прочтении исходящих сообщений: yes, no>");
- СтруктураНастроек.Вставить("outgoingMessageWebhook" , "<получать уведомления о сообщениях, отправленных с телефона: yes, no>");
- СтруктураНастроек.Вставить("outgoingAPIMessageWebhook" , "<получать уведомления о сообщениях, отправленных через API: yes, no>");
- СтруктураНастроек.Вставить("stateWebhook" , "<получать уведомления об изменении состояния авторизации инстанса: yes, no>");
- СтруктураНастроек.Вставить("incomingWebhook" , "<получать уведомления о входящих сообщениях и файлах: yes, no>");
-
- Если Пустая Тогда
- СтруктураНастроек = OPI_Инструменты.ОчиститьКоллекциюРекурсивно(СтруктураНастроек);
- КонецЕсли;
-
- //@skip-check constructor-function-return-section
- Возврат СтруктураНастроек;
-
-КонецФункции
-
-#КонецОбласти
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-Функция СформироватьОсновнойURL(Знач ПараметрыДоступа, Знач Метод)
-
- Возврат СформироватьURL(ПараметрыДоступа, Метод, "apiUrl");
-
-КонецФункции
-
-Функция СформироватьМедиаURL(Знач ПараметрыДоступа, Знач Метод)
-
- Возврат СформироватьURL(ПараметрыДоступа, Метод, "mediaUrl");
-
-КонецФункции
-
-Функция СформироватьURL(ПараметрыДоступа, Метод, ПолеURL)
-
- OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(ПараметрыДоступа);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Метод);
-
- ОбязательныеПоля = СтрРазделить(ПолеURL + ",idInstance,apiTokenInstance", ",");
- ОтсутствующиеПоля = OPI_Инструменты.НайтиОтсутствующиеПоляКоллекции(ПараметрыДоступа, ОбязательныеПоля);
-
- Если ОтсутствующиеПоля.Количество() > 0 Тогда
- ВызватьИсключение "Отсутствуют обязательные поля в параметрах доступа!";
- КонецЕсли;
-
- Url = ПараметрыДоступа[ПолеURL];
- IdInstance = ПараметрыДоступа["idInstance"];
- ApiTokenInstance = ПараметрыДоступа["apiTokenInstance"];
-
- URL = СтрШаблон("%1/waInstance%2/%3/%4", Url, IdInstance, Метод, ApiTokenInstance);
-
- Возврат URL;
-
-КонецФункции
-
-
-#КонецОбласти
diff --git a/XML/CommonModules/OPI_MSSQL.xml b/XML/CommonModules/OPI_MSSQL.xml
deleted file mode 100644
index 98ac029509..0000000000
--- a/XML/CommonModules/OPI_MSSQL.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- OPI_MSSQL
-
-
- ru
- MS SQL (ОПИ)
-
-
- Модуль для работы с базами MSSQL из набора ОПИ
- false
- false
- true
- true
- true
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git a/XML/CommonModules/OPI_MSSQL/Ext/Module.bsl b/XML/CommonModules/OPI_MSSQL/Ext/Module.bsl
deleted file mode 100644
index 48df05fce5..0000000000
--- a/XML/CommonModules/OPI_MSSQL/Ext/Module.bsl
+++ /dev/null
@@ -1,591 +0,0 @@
-// OneScript: ./OInt/core/Modules/OPI_MSSQL.os
-// Lib: MSSQL
-// CLI: mssql
-// Keywords: mssql, ms sql
-// Depends: OPI_MSSQL
-
-// MIT License
-
-// Copyright (c) 2023-2025 Anton Tsitavets
-
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-
-// The above copyright notice and this permission notice shall be included in all
-// copies or substantial portions of the Software.
-
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-// SOFTWARE.
-
-// https://github.com/Bayselonarrend/OpenIntegrations
-
-// BSLLS:Typo-off
-// BSLLS:LatinAndCyrillicSymbolInWord-off
-// BSLLS:IncorrectLineBreak-off
-// BSLLS:NumberOfOptionalParams-off
-// BSLLS:UsingServiceTag-off
-// BSLLS:LineLength-off
-// BSLLS:UsingSynchronousCalls-off
-
-//@skip-check module-structure-top-region
-//@skip-check module-structure-method-in-regions
-//@skip-check wrong-string-literal-content
-//@skip-check method-too-many-params
-//@skip-check constructor-function-return-section
-//@skip-check doc-comment-collection-item-type
-
-#Область ПрограммныйИнтерфейс
-
-#Область ОсновныеМетоды
-
-// Открыть соединение !NOCLI
-// Создает подключение к указанной базе
-//
-// Параметры:
-// СтрокаПодключения - Строка - Строка подключения. См. СформироватьСтрокуПодключения - string
-// Tls - Структура Из КлючИЗначение - Настройки TLS, если необходимо. См. ПолучитьНастройкиTls - tls
-//
-// Возвращаемое значение:
-// Произвольный - Объект коннектора или структура с информацией об ошибке
-Функция ОткрытьСоединение(Знач СтрокаПодключения = "", Знач Tls = "") Экспорт
-
- Если ЭтоКоннектор(СтрокаПодключения) Тогда
- Возврат СтрокаПодключения;
- КонецЕсли;
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(СтрокаПодключения);
- OPI_Инструменты.ВернутьУправляющиеПоследовательности(СтрокаПодключения);
-
- Коннектор = OPI_Компоненты.ПолучитьКомпоненту("MSSQL");
-
- Tls = OPI_Компоненты.УстановитьTls(Коннектор, Tls);
-
- Если Не OPI_Инструменты.ПолучитьИли(Tls, "result", Ложь) Тогда
- Возврат Tls;
- КонецЕсли;
-
- Коннектор.ConnectionString = СтрокаПодключения;
-
- Результат = Коннектор.Connect();
- Результат = OPI_Инструменты.JsonВСтруктуру(Результат, Ложь);
-
- Возврат ?(Результат["result"], Коннектор, Результат);
-
-КонецФункции
-
-// Закрыть соединение !NOCLI
-// Явно закрывает переданное соединение
-//
-// Параметры:
-// Соединение - Произвольный - Объект компоненты с открытым соединением - dbc
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - Результат закрытия соединения
-Функция ЗакрытьСоединение(Знач Соединение) Экспорт
-
- Если ЭтоКоннектор(Соединение) Тогда
-
- Результат = Соединение.Close();
- Результат = OPI_Инструменты.JsonВСтруктуру(Результат, Ложь);
-
- Иначе
-
- Результат = Новый Структура("result,error", Ложь, "It's not a connection");
-
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-// Это коннектор !NOCLI
-// Проверяет, что значение является объектом внешней компоненты MSSQL
-//
-// Параметры:
-// Значение - Произвольный - Значение для проверки - value
-//
-// Возвращаемое значение:
-// Булево - Это коннектор
-Функция ЭтоКоннектор(Знач Значение) Экспорт
-
- Возврат Строка(ТипЗнч(Значение)) = "AddIn.OPI_MSSQL.Main";
-
-КонецФункции
-
-// Выполнить запрос SQL
-// Выполняет произвольный SQL запрос
-//
-// Примечание:
-// Параметры запроса указываются как массив структур вида `{'Тип данных': 'Значение'}`.^^
-// Список доступных типов описан на начальной странице документации библиотеки MSSQL
-// Без указания флага `ФорсироватьРезультат`, чтение результата осуществляется только для запросов, начинающихся с `SELECT`^^
-// Для остальных запросов возвращается `result:true` или `false` с текстом ошибки
-//
-// Параметры:
-// ТекстЗапроса - Строка - Текст запроса к базе - sql
-// Параметры - Массив Из Произвольный - Массив позиционных параметров запроса - params
-// ФорсироватьРезультат - Булево - Включает попытку получения результата, даже для не SELECT запросов - force
-// Соединение - Строка, Произвольный - Соединение или строка подключения - dbc
-// Tls - Структура Из КлючИЗначение - Настройки TLS, если необходимо. См. ПолучитьНастройкиTls - tls
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат выполнения запроса
-Функция ВыполнитьЗапросSQL(Знач ТекстЗапроса
- , Знач Параметры = ""
- , Знач ФорсироватьРезультат = Ложь
- , Знач Соединение = ""
- , Знач Tls = "") Экспорт
-
- Если ЭтоКоннектор(Соединение) Тогда
- ЗакрыватьСоединение = Ложь;
- Коннектор = Соединение;
- Иначе
- ЗакрыватьСоединение = Истина;
- Коннектор = ОткрытьСоединение(Соединение, Tls);
- КонецЕсли;
-
- Если Не ЭтоКоннектор(Коннектор) Тогда
- Возврат Коннектор;
- КонецЕсли;
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(ТекстЗапроса, Истина);
- OPI_ПреобразованиеТипов.ПолучитьБулево(ФорсироватьРезультат);
-
- Параметры_ = OPI_ЗапросыSQL.ОбработатьПараметры(Параметры, ПолучитьСтруктуруТипов());
- Результат = OPI_ЗапросыSQL.ВыполнитьЗапросСОбработкой(Коннектор, ТекстЗапроса, ФорсироватьРезультат, Параметры_);
-
- Если ЗакрыватьСоединение Тогда
- ЗакрытьСоединение(Коннектор);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-// Сформировать строку подключения
-// Формирует строку подключения из переданных данных
-//
-// Примечание:
-// Данная функция позволяет быстро собрать базовую строку подключения.^^
-// В случае необходимости более гибкой настройки, вы также можете сформировать (получить) данную строку самостоятельно (формат ADO)
-//
-// Параметры:
-// Адрес - Строка - Адрес и экземпляр сервера СУБД - addr
-// База - Строка - Имя базы данных для подключения - db
-// Логин - Строка - Логин пользователя mssql - login
-// Пароль - Строка - Пароль пользователя mssql - pass
-// Порт - Число - Порт сервера - port
-// АутентификацияWindows - Булево - Использовать аутентификацию Windows. Логин и пароль будут проигнорированы - trust
-//
-// Возвращаемое значение:
-// Строка - Строка подключения к базе MSSQL
-Функция СформироватьСтрокуПодключения(Знач Адрес
- , Знач База = ""
- , Знач Логин = ""
- , Знач Пароль = ""
- , Знач Порт = ""
- , Знач АутентификацияWindows = Ложь) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Адрес);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Порт);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Логин);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(База);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Пароль);
- OPI_ПреобразованиеТипов.ПолучитьБулево(АутентификацияWindows);
-
- Если ЗначениеЗаполнено(База) Тогда
- БлокБД = СтрШаблон("Database=%1;", База);
- Иначе
- БлокБД = "";
- КонецЕсли;
-
- Если ЗначениеЗаполнено(Порт) Тогда
- БлокПорта = СтрШаблон(",%1", Порт);
- Иначе
- БлокПорта = "";
- КонецЕсли;
-
- Если АутентификацияWindows Тогда
- ШаблонСтроки = "Server=%1%2;%3IntegratedSecurity=True;";
- СтрокаПодключения = СтрШаблон(ШаблонСтроки, Адрес, БлокПорта, БлокБД);
- Иначе
- ШаблонСтроки = "Server=%1%2;%3User Id=%4;Password=%5;";
- СтрокаПодключения = СтрШаблон(ШаблонСтроки, Адрес, БлокПорта, БлокБД, Логин, Пароль);
- КонецЕсли;
-
- Возврат СтрокаПодключения;
-
-КонецФункции
-
-// Получить настройки TLS
-// Формирует настройки для использования TLS при выполнении запросов
-//
-// Примечание:
-// Настройки Tls могут быть установлены только в момент создания соединения: явного, при использовании функции `ОткрытьСоединение`^^
-// или неявного, при передаче строки подключения в методы ORM.
-// Передача настроек Tls совместно с передачей уже созданного соединения в параметр `Соединение` будет проигнорирована
-// Настройки Tls могут быть также переданы в строке подключения
-//
-// Параметры:
-// ОтключитьПроверкуСертификатов - Булево - Позволяет работать с некорретными сертификатами, в т.ч. самоподписанными - trust
-// ПутьКСертификату - Строка - Путь к корневому PEM файлу сертификата, если его нет в системном хранилище - cert
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - Структура настроек TLS соединения
-Функция ПолучитьНастройкиTls(Знач ОтключитьПроверкуСертификатов, Знач ПутьКСертификату = "") Экспорт
-
- Возврат OPI_Компоненты.ПолучитьНастройкиTls(ОтключитьПроверкуСертификатов, ПутьКСертификату);
-
-КонецФункции
-
-#КонецОбласти
-
-#Область ORM
-
-// Создать базу данных
-// Создает базу данных с указанным именем
-//
-// Параметры:
-// База - Строка - Имя базы - base
-// Соединение - Строка, Произвольный - Соединение или строка подключения - dbc
-// Tls - Структура Из КлючИЗначение - Настройки TLS, если необходимо. См. ПолучитьНастройкиTls - tls
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат выполнения запроса
-Функция СоздатьБазуДанных(Знач База, Знач Соединение = "", Знач Tls = "") Экспорт
-
- Результат = OPI_ЗапросыSQL.СоздатьБазуДанных(OPI_MSSQL, База, Соединение, Tls);
- Возврат Результат;
-
-КонецФункции
-
-// Удалить базу данных
-// Удаляет базу данных
-//
-// Параметры:
-// База - Строка - Имя базы - base
-// Соединение - Строка, Произвольный - Соединение или строка подключения - dbc
-// Tls - Структура Из КлючИЗначение - Настройки TLS, если необходимо. См. ПолучитьНастройкиTls - tls
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат выполнения запроса
-Функция УдалитьБазуДанных(Знач База, Знач Соединение = "", Знач Tls = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(База);
-
- ШаблонЗапроса = "USE master;
- |ALTER DATABASE [%1]
- |SET SINGLE_USER
- |WITH ROLLBACK IMMEDIATE;
- |DROP DATABASE [%1];";
-
- ТекстЗапроса = СтрШаблон(ШаблонЗапроса, База);
-
- Результат = ВыполнитьЗапросSQL(ТекстЗапроса, , , Соединение, Tls);
- Возврат Результат;
-
-КонецФункции
-
-// Создать таблицу
-// Создает пустую таблицу в базе
-//
-// Примечание:
-// Список доступных типов описан на начальной странице документации библиотеки MSSQL
-//
-// Параметры:
-// Таблица - Строка - Имя таблицы - table
-// СтруктураКолонок - Структура Из КлючИЗначение - Структура колонок: Ключ > имя, Значение > Тип данных - cols
-// Соединение - Строка, Произвольный - Соединение или строка подключения - dbc
-// Tls - Структура Из КлючИЗначение - Настройки TLS, если необходимо. См. ПолучитьНастройкиTls - tls
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат выполнения запроса
-Функция СоздатьТаблицу(Знач Таблица, Знач СтруктураКолонок, Знач Соединение = "", Знач Tls = "") Экспорт
-
- Результат = OPI_ЗапросыSQL.СоздатьТаблицу(OPI_MSSQL, Таблица, СтруктураКолонок, Соединение, Tls);
- Возврат Результат;
-
-КонецФункции
-
-// Добавить колонку таблицы
-// Добавляет новую колонку в существующую таблицу
-//
-// Параметры:
-// Таблица - Строка - Имя таблицы - table
-// Имя - Строка - Имя колонки - name
-// ТипДанных - Строка - Тип данных колонки - type
-// Соединение - Строка, Произвольный - Соединение или строка подключения - dbc
-// Tls - Структура Из КлючИЗначение - Настройки TLS, если необходимо. См. ПолучитьНастройкиTls - tls
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат выполнения запроса
-Функция ДобавитьКолонкуТаблицы(Знач Таблица, Знач Имя, Знач ТипДанных, Знач Соединение = "", Знач Tls = "") Экспорт
-
- Результат = OPI_ЗапросыSQL.ДобавитьКолонкуТаблицы(OPI_MSSQL, Таблица, Имя, ТипДанных, Соединение, Tls);
- Возврат Результат;
-
-КонецФункции
-
-// Удалить колонку таблицы
-// Удаляет колонку из таблицы
-//
-// Параметры:
-// Таблица - Строка - Имя таблицы - table
-// Имя - Строка - Имя колонки - name
-// Соединение - Строка, Произвольный - Соединение или строка подключения - dbc
-// Tls - Структура Из КлючИЗначение - Настройки TLS, если необходимо. См. ПолучитьНастройкиTls - tls
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат выполнения запроса
-Функция УдалитьКолонкуТаблицы(Знач Таблица, Знач Имя, Знач Соединение = "", Знач Tls = "") Экспорт
-
- Результат = OPI_ЗапросыSQL.УдалитьКолонкуТаблицы(OPI_MSSQL, Таблица, Имя, Соединение, Tls);
- Возврат Результат;
-
-КонецФункции
-
-// Гарантировать таблицу
-// Создает новую таблицу в случае отсутствия или обновляет состав колонок существующей таблицы
-//
-// Примечание:
-// В результате изменения структуры таблицы данные могут быть утеряны!^^
-// Рекомендуется предварительно опробовать данный метод на тестовых данных
-// Данная функция не обновляет тип данных существующих колонок
-//
-// Параметры:
-// Таблица - Строка - Имя таблицы - table
-// СтруктураКолонок - Структура Из КлючИЗначение - Структура колонок: Ключ > имя, Значение > Тип данных - cols
-// Соединение - Строка, Произвольный - Существующее соединение или путь к базе - dbc
-// Tls - Структура Из КлючИЗначение - Настройки TLS, если необходимо. См. ПолучитьНастройкиTls - tls
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат выполнения запроса
-Функция ГарантироватьТаблицу(Знач Таблица, Знач СтруктураКолонок, Знач Соединение = "", Знач Tls = "") Экспорт
-
- Результат = OPI_ЗапросыSQL.ГарантироватьТаблицу(OPI_MSSQL, Таблица, СтруктураКолонок, Соединение, Tls);
- Возврат Результат;
-
-КонецФункции
-
-// Очистить таблицу
-// Очищает таблицу базы
-//
-// Параметры:
-// Таблица - Строка - Имя таблицы - table
-// Соединение - Строка, Произвольный - Соединение или строка подключения - dbc
-// Tls - Структура Из КлючИЗначение - Настройки TLS, если необходимо. См. ПолучитьНастройкиTls - tls
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат выполнения запроса
-Функция ОчиститьТаблицу(Знач Таблица, Знач Соединение = "", Знач Tls = "") Экспорт
-
- Результат = OPI_ЗапросыSQL.УдалитьЗаписи(OPI_MSSQL, Таблица, , Соединение, Tls);
- Возврат Результат;
-
-КонецФункции
-
-// Удалить таблицу
-// Удаляет таблицу из базы
-//
-// Параметры:
-// Таблица - Строка - Имя таблицы - table
-// Соединение - Строка, Произвольный - Соединение или строка подключения - dbc
-// Tls - Структура Из КлючИЗначение - Настройки TLS, если необходимо. См. ПолучитьНастройкиTls - tls
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат выполнения запроса
-Функция УдалитьТаблицу(Знач Таблица, Знач Соединение = "", Знач Tls = "") Экспорт
-
- Результат = OPI_ЗапросыSQL.УдалитьТаблицу(OPI_MSSQL, Таблица, Соединение, Tls);
- Возврат Результат;
-
-КонецФункции
-
-// Получить информацию о таблице
-// Получает информацию о таблице
-//
-// Параметры:
-// Таблица - Строка - Имя таблицы - table
-// Соединение - Строка, Произвольный - Соединение или строка подключения - dbc
-// Tls - Структура Из КлючИЗначение - Настройки TLS, если необходимо. См. ПолучитьНастройкиTls - tls
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат выполнения запроса
-Функция ПолучитьИнформациюОТаблице(Знач Таблица, Знач Соединение = "", Знач Tls = "") Экспорт
-
- Результат = OPI_ЗапросыSQL.ПолучитьСтруктуруТаблицы(OPI_MSSQL, Таблица, Соединение, Tls);
- Возврат Результат;
-
-КонецФункции
-
-// Добавить записи
-// Добавляет записи в таблицу
-//
-// Примечание:
-// Данные записей указываются как массив структур вида:^
-// `{'Имя поля 1': {'Тип данных': 'Значение'}, 'Имя поля 2': {'Тип данных': 'Значение'},...}`
-// Список доступных типов описан на начальной странице документации библиотеки MSSQL
-//
-// Параметры:
-// Таблица - Строка - Имя таблицы - table
-// МассивДанных - Массив Из Структура - Массив структур данных строк: Ключ > поле, Значение > значение поля - rows
-// Транзакция - Булево - Истина > добавление записей в транзакции с откатом при ошибке - trn
-// Соединение - Строка, Произвольный - Соединение или строка подключения - dbc
-// Tls - Структура Из КлючИЗначение - Настройки TLS, если необходимо. См. ПолучитьНастройкиTls - tls
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат выполнения запроса
-Функция ДобавитьЗаписи(Знач Таблица, Знач МассивДанных, Знач Транзакция = Истина, Знач Соединение = "", Знач Tls = "") Экспорт
-
- Результат = OPI_ЗапросыSQL.ДобавитьЗаписи(OPI_MSSQL, Таблица, МассивДанных, Транзакция, Соединение, Tls);
- Возврат Результат;
-
-КонецФункции
-
-// Получить записи
-// Получает записи из выбранной таблицы
-//
-// Параметры:
-// Таблица - Строка - Имя таблицы - table
-// Поля - Массив Из Строка - Поля для выборки - fields
-// Фильтры - Массив Из Структура - Массив фильтров. См. ПолучитьСтруктуруФильтраЗаписей - filter
-// Сортировка - Структура Из КлючИЗначение - Сортировка: Ключ > поле, Значение > направление (ASC, DESC) - order
-// Количество - Число - Ограничение количества получаемых строк - limit
-// Соединение - Строка, Произвольный - Соединение или строка подключения - dbc
-// Tls - Структура Из КлючИЗначение - Настройки TLS, если необходимо. См. ПолучитьНастройкиTls - tls
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат выполнения запроса
-Функция ПолучитьЗаписи(Знач Таблица
- , Знач Поля = "*"
- , Знач Фильтры = ""
- , Знач Сортировка = ""
- , Знач Количество = ""
- , Знач Соединение = ""
- , Знач Tls = "") Экспорт
-
- Результат = OPI_ЗапросыSQL.ПолучитьЗаписи(OPI_MSSQL
- , Таблица
- , Поля
- , Фильтры
- , Сортировка
- , Количество
- , Соединение
- , Tls);
-
- Возврат Результат;
-
-КонецФункции
-
-// Обновить записи
-// Обновляет значение записей по выбранным критериям
-//
-// Примечание:
-// Данные записей указываются как массив структур вида:^
-// `{'Имя поля 1': {'Тип данных': 'Значение'}, 'Имя поля 2': {'Тип данных': 'Значение'},...}`
-// Список доступных типов описан на начальной странице документации библиотеки MSSQL
-//
-// Параметры:
-// Таблица - Строка - Имя таблицы - table
-// СтруктураЗначений - Структура Из КлючИЗначение - Структура значений: Ключ > поле, Значение > значение поля - values
-// Фильтры - Массив Из Структура - Массив фильтров. См. ПолучитьСтруктуруФильтраЗаписей - filter
-// Соединение - Строка, Произвольный - Соединение или строка подключения - dbc
-// Tls - Структура Из КлючИЗначение - Настройки TLS, если необходимо. См. ПолучитьНастройкиTls - tls
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат выполнения запроса
-Функция ОбновитьЗаписи(Знач Таблица
- , Знач СтруктураЗначений
- , Знач Фильтры = ""
- , Знач Соединение = ""
- , Знач Tls = "") Экспорт
-
- Результат = OPI_ЗапросыSQL.ОбновитьЗаписи(OPI_MSSQL, Таблица, СтруктураЗначений, Фильтры, Соединение, Tls);
- Возврат Результат;
-
-КонецФункции
-
-// Удалить записи
-// Удаляет записи из таблицы
-//
-// Параметры:
-// Таблица - Строка - Имя таблицы - table
-// Фильтры - Массив Из Структура - Массив фильтров. См. ПолучитьСтруктуруФильтраЗаписей - filter
-// Соединение - Строка, Произвольный - Соединение или строка подключения - dbc
-// Tls - Структура Из КлючИЗначение - Настройки TLS, если необходимо. См. ПолучитьНастройкиTls - tls
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат выполнения запроса
-Функция УдалитьЗаписи(Знач Таблица, Знач Фильтры = "", Знач Соединение = "", Знач Tls = "") Экспорт
-
- Результат = OPI_ЗапросыSQL.УдалитьЗаписи(OPI_MSSQL, Таблица, Фильтры, Соединение, Tls);
- Возврат Результат;
-
-КонецФункции
-
-// Получить структуру фильтра записей
-// Получает структуру шаблон для фильтрации записей в запросах ORM
-//
-// Примечание:
-// Использование признака `raw` необходимо для составных конструкций, вроде `BEETWEEN`.^^
-// Например: при `raw:false` фильтр `type:BETWEEN` `value:10 AND 20` будет интерпритирован как `BETWEEN ?1 `^^
-// где `?1 = "10 AND 20"`, что приведет к ошибке.^^
-// В таком случае необходимо использовать `raw:true` для установки условия напрямую в текст запроса
-//
-// Параметры:
-// Пустая - Булево - Истина > структура с пустыми значениями, Ложь > в значениях будут описания полей - empty
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - Элемент фильтра записей
-Функция ПолучитьСтруктуруФильтраЗаписей(Знач Пустая = Ложь) Экспорт
-
- Возврат OPI_ЗапросыSQL.ПолучитьСтруктуруФильтраЗаписей(Пустая);
-
-КонецФункции
-
-#КонецОбласти
-
-#КонецОбласти
-
-#Область СлужебныйПрограммныйИнтерфейс
-
-Функция ПолучитьОсобенности() Экспорт
-
- Особенности = Новый Соответствие;
- Особенности.Вставить("НумерацияПараметров", Истина);
- Особенности.Вставить("МаркерПараметров" , "@P");
- Особенности.Вставить("СУБД" , "mssql");
- Особенности.Вставить("ПолеКолонки" , "column_name");
- Особенности.Вставить("НачалоТранзакции" , "BEGIN TRAN");
-
- Возврат Особенности;
-
-КонецФункции
-
-Функция ПолучитьСтруктуруТипов() Экспорт
-
- СтруктураТипов = Новый Соответствие;
- СтруктураТипов.Вставить("ДвоичныеДанные" , "BYTES");
- СтруктураТипов.Вставить("УникальныйИдентификатор", "UUID");
- СтруктураТипов.Вставить("Булево" , "BIT");
- СтруктураТипов.Вставить("Дробное" , "DECIMAL");
- СтруктураТипов.Вставить("Целое" , "INT");
- СтруктураТипов.Вставить("Дата" , "DATETIMEOFFSET");
- СтруктураТипов.Вставить("Строка" , "NVARCHAR");
- СтруктураТипов.Вставить("Коллекции" , Новый СписокЗначений);
- СтруктураТипов.Вставить("БулевоКакЧисло" , Ложь);
-
- Возврат СтруктураТипов;
-
-КонецФункции
-
-#КонецОбласти
diff --git a/XML/CommonModules/OPI_MongoDB.xml b/XML/CommonModules/OPI_MongoDB.xml
deleted file mode 100644
index e61aa4eff4..0000000000
--- a/XML/CommonModules/OPI_MongoDB.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- OPI_MongoDB
-
-
- ru
- MongoDB (ОПИ)
-
-
- Модуль для работы с базами MongoDB из набора ОПИ
- false
- false
- true
- true
- true
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git a/XML/CommonModules/OPI_MongoDB/Ext/Module.bsl b/XML/CommonModules/OPI_MongoDB/Ext/Module.bsl
deleted file mode 100644
index 17914ed981..0000000000
--- a/XML/CommonModules/OPI_MongoDB/Ext/Module.bsl
+++ /dev/null
@@ -1,118 +0,0 @@
-// OneScript: ./OInt/core/Modules/OPI_MongoDB.os
-// Lib: MongoDB
-// CLI: mongodb
-// Keywords: mongodb, mongo, nosql
-
-// MIT License
-
-// Copyright (c) 2023-2025 Anton Tsitavets
-
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-
-// The above copyright notice and this permission notice shall be included in all
-// copies or substantial portions of the Software.
-
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-// SOFTWARE.
-
-// https://github.com/Bayselonarrend/OpenIntegrations
-
-// BSLLS:Typo-off
-// BSLLS:LatinAndCyrillicSymbolInWord-off
-// BSLLS:IncorrectLineBreak-off
-// BSLLS:NumberOfOptionalParams-off
-// BSLLS:UsingServiceTag-off
-// BSLLS:LineLength-off
-// BSLLS:UsingSynchronousCalls-off
-
-//@skip-check module-structure-top-region
-//@skip-check module-structure-method-in-regions
-//@skip-check wrong-string-literal-content
-//@skip-check method-too-many-params
-//@skip-check constructor-function-return-section
-//@skip-check doc-comment-collection-item-type
-
-#Область ПрограммныйИнтерфейс
-
-#Область ОсновныеМетоды
-
-// Открыть соединение !NOCLI
-// Создает подключение к указанной базе
-//
-// Параметры:
-// СтрокаПодключения - Строка - Строка подключения - string
-//
-// Возвращаемое значение:
-// Произвольный - Объект коннектора или структура с информацией об ошибке
-Функция ОткрытьСоединение(Знач СтрокаПодключения = "") Экспорт
-
- Если ЭтоКоннектор(СтрокаПодключения) Тогда
- Возврат СтрокаПодключения;
- КонецЕсли;
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(СтрокаПодключения);
- OPI_Инструменты.ВернутьУправляющиеПоследовательности(СтрокаПодключения);
-
- Коннектор = OPI_Компоненты.ПолучитьКомпоненту("MongoDB");
-
- Коннектор.ConnectionString = СтрокаПодключения;
-
- Результат = Коннектор.Connect();
- Результат = OPI_Инструменты.JsonВСтруктуру(Результат, Ложь);
-
- Возврат ?(Результат["result"], Коннектор, Результат);
-
-КонецФункции
-
-// Закрыть соединение !NOCLI
-// Явно закрывает переданное соединение
-//
-// Параметры:
-// Соединение - Произвольный - Объект компоненты с открытым соединением - dbc
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - Результат закрытия соединения
-Функция ЗакрытьСоединение(Знач Соединение) Экспорт
-
- Если ЭтоКоннектор(Соединение) Тогда
-
- Результат = Соединение.Close();
- Результат = OPI_Инструменты.JsonВСтруктуру(Результат, Ложь);
-
- Иначе
-
- Результат = Новый Структура("result,error", Ложь, "It's not a connection");
-
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-// Это коннектор !NOCLI
-// Проверяет, что значение является объектом внешней компоненты MSSQL
-//
-// Параметры:
-// Значение - Произвольный - Значение для проверки - value
-//
-// Возвращаемое значение:
-// Булево - Это коннектор
-Функция ЭтоКоннектор(Знач Значение) Экспорт
-
- Возврат Строка(ТипЗнч(Значение)) = "AddIn.OPI_MongoDB.Main";
-
-КонецФункции
-
-#КонецОбласти
-
-#КонецОбласти
diff --git a/XML/CommonModules/OPI_MySQL.xml b/XML/CommonModules/OPI_MySQL.xml
deleted file mode 100644
index 34c749a3ef..0000000000
--- a/XML/CommonModules/OPI_MySQL.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- OPI_MySQL
-
-
- ru
- MySQL (ОПИ)
-
-
- Модуль для работы с базами MySQL из набора ОПИ
- false
- false
- true
- true
- true
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git a/XML/CommonModules/OPI_MySQL/Ext/Module.bsl b/XML/CommonModules/OPI_MySQL/Ext/Module.bsl
deleted file mode 100644
index e9ec8d8452..0000000000
--- a/XML/CommonModules/OPI_MySQL/Ext/Module.bsl
+++ /dev/null
@@ -1,554 +0,0 @@
-// OneScript: ./OInt/core/Modules/OPI_MySQL.os
-// Lib: MySQL
-// CLI: mysql
-// Keywords: mysql, my sql
-
-// MIT License
-
-// Copyright (c) 2023-2025 Anton Tsitavets
-
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-
-// The above copyright notice and this permission notice shall be included in all
-// copies or substantial portions of the Software.
-
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-// SOFTWARE.
-
-// https://github.com/Bayselonarrend/OpenIntegrations
-
-// BSLLS:Typo-off
-// BSLLS:LatinAndCyrillicSymbolInWord-off
-// BSLLS:IncorrectLineBreak-off
-// BSLLS:NumberOfOptionalParams-off
-// BSLLS:UsingServiceTag-off
-// BSLLS:LineLength-off
-// BSLLS:UsingSynchronousCalls-off
-
-//@skip-check module-structure-top-region
-//@skip-check module-structure-method-in-regions
-//@skip-check wrong-string-literal-content
-//@skip-check method-too-many-params
-//@skip-check constructor-function-return-section
-//@skip-check doc-comment-collection-item-type
-
-#Область ПрограммныйИнтерфейс
-
-#Область ОсновныеМетоды
-
-// Открыть соединение !NOCLI
-// Создает подключение к указанной базе
-//
-// Параметры:
-// СтрокаПодключения - Строка - Строка подключения. См. СформироватьСтрокуПодключения - string
-// Tls - Структура Из КлючИЗначение - Настройки TLS, если необходимо. См. ПолучитьНастройкиTls - tls
-//
-// Возвращаемое значение:
-// Произвольный - Объект коннектора или структура с информацией об ошибке
-Функция ОткрытьСоединение(Знач СтрокаПодключения = "", Знач Tls = "") Экспорт
-
- Если ЭтоКоннектор(СтрокаПодключения) Тогда
- Возврат СтрокаПодключения;
- КонецЕсли;
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(СтрокаПодключения);
- OPI_Инструменты.ВернутьУправляющиеПоследовательности(СтрокаПодключения);
-
- Коннектор = OPI_Компоненты.ПолучитьКомпоненту("MySQL");
-
- Tls = OPI_Компоненты.УстановитьTls(Коннектор, Tls);
-
- Если Не OPI_Инструменты.ПолучитьИли(Tls, "result", Ложь) Тогда
- Возврат Tls;
- КонецЕсли;
-
- Коннектор.ConnectionString = СтрокаПодключения;
-
- Результат = Коннектор.Connect();
- Результат = OPI_Инструменты.JsonВСтруктуру(Результат, Ложь);
-
- Возврат ?(Результат["result"], Коннектор, Результат);
-
-КонецФункции
-
-// Закрыть соединение !NOCLI
-// Явно закрывает переданное соединение
-//
-// Параметры:
-// Соединение - Произвольный - Объект компоненты с открытым соединением - dbc
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - Результат закрытия соединения
-Функция ЗакрытьСоединение(Знач Соединение) Экспорт
-
- Если ЭтоКоннектор(Соединение) Тогда
-
- Результат = Соединение.Close();
- Результат = OPI_Инструменты.JsonВСтруктуру(Результат, Ложь);
-
- Иначе
-
- Результат = Новый Структура("result,error", Ложь, "It's not a connection");
-
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-// Это коннектор !NOCLI
-// Проверяет, что значение является объектом внешней компоненты MySQL
-//
-// Параметры:
-// Значение - Произвольный - Значение для проверки - value
-//
-// Возвращаемое значение:
-// Булево - Это коннектор
-Функция ЭтоКоннектор(Знач Значение) Экспорт
-
- Возврат Строка(ТипЗнч(Значение)) = "AddIn.OPI_MySQL.Main";
-
-КонецФункции
-
-// Выполнить запрос SQL
-// Выполняет произвольный SQL запрос
-//
-// Примечание:
-// Параметры запроса указываются как массив структур вида `{'Тип данных': 'Значение'}`.^^
-// Список доступных типов описан на начальной странице документации библиотеки MySQL
-// Без указания флага `ФорсироватьРезультат`, чтение результата осуществляется только для запросов, начинающихся с `SELECT`^^
-// Для остальных запросов возвращается `result:true` или `false` с текстом ошибки
-//
-// Параметры:
-// ТекстЗапроса - Строка - Текст запроса к базе - sql
-// Параметры - Массив Из Произвольный - Массив позиционных параметров запроса - params
-// ФорсироватьРезультат - Булево - Включает попытку получения результата, даже для не SELECT запросов - force
-// Соединение - Строка, Произвольный - Соединение или строка подключения - dbc
-// Tls - Структура Из КлючИЗначение - Настройки TLS, если необходимо. См. ПолучитьНастройкиTls - tls
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат выполнения запроса
-Функция ВыполнитьЗапросSQL(Знач ТекстЗапроса
- , Знач Параметры = ""
- , Знач ФорсироватьРезультат = Ложь
- , Знач Соединение = ""
- , Знач Tls = "") Экспорт
-
- Если ЭтоКоннектор(Соединение) Тогда
- ЗакрыватьСоединение = Ложь;
- Коннектор = Соединение;
- Иначе
- ЗакрыватьСоединение = Истина;
- Коннектор = ОткрытьСоединение(Соединение, Tls);
- КонецЕсли;
-
- Если Не ЭтоКоннектор(Коннектор) Тогда
- Возврат Коннектор;
- КонецЕсли;
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(ТекстЗапроса, Истина);
- OPI_ПреобразованиеТипов.ПолучитьБулево(ФорсироватьРезультат);
-
- Параметры_ = OPI_ЗапросыSQL.ОбработатьПараметры(Параметры, ПолучитьСтруктуруТипов());
- Результат = OPI_ЗапросыSQL.ВыполнитьЗапросСОбработкой(Коннектор, ТекстЗапроса, ФорсироватьРезультат, Параметры_);
-
- Если ЗакрыватьСоединение Тогда
- ЗакрытьСоединение(Коннектор);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-// Сформировать строку подключения
-// Формирует строку подключения из переданных данных
-//
-// Параметры:
-// Адрес - Строка - IP адрес или доменное имя сервера - addr
-// База - Строка - Имя базы данных для подключения - db
-// Логин - Строка - Логин пользователя mysql - login
-// Пароль - Строка - Пароль пользователя mysql - pass
-// Порт - Строка - Порт подключения - port
-//
-// Возвращаемое значение:
-// Строка - Строка подключения к базе MySQL
-Функция СформироватьСтрокуПодключения(Знач Адрес, Знач База = "", Знач Логин = "", Знач Пароль = "", Знач Порт = "3306") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Адрес);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Логин);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(База);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Порт);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Пароль);
-
- Порт = ?(ЗначениеЗаполнено(Порт), ":" + Порт, Порт);
- Пароль = ?(ЗначениеЗаполнено(Пароль), ":" + Пароль, Пароль);
-
- ШаблонСтроки = "mysql://%1%2@%3%4/%5";
- СтрокаПодключения = СтрШаблон(ШаблонСтроки, Логин, Пароль, Адрес, Порт, База);
-
- Возврат СтрокаПодключения;
-
-КонецФункции
-
-// Получить настройки TLS
-// Формирует настройки для использования TLS при выполнении запросов
-//
-// Примечание:
-// Настройки Tls могут быть установлены только в момент создания соединения: явного, при использовании функции `ОткрытьСоединение`^^
-// или неявного, при передаче строки подключения в методы ORM.
-// Передача настроек Tls совместно с передачей уже созданного соединения в параметр `Соединение` будет проигнорирована
-//
-// Параметры:
-// ОтключитьПроверкуСертификатов - Булево - Позволяет работать с некорретными сертификатами, в т.ч. самоподписанными - trust
-// ПутьКСертификату - Строка - Путь к корневому PEM файлу сертификата, если его нет в системном хранилище - cert
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - Структура настроек TLS соединения
-Функция ПолучитьНастройкиTls(Знач ОтключитьПроверкуСертификатов, Знач ПутьКСертификату = "") Экспорт
-
- Возврат OPI_Компоненты.ПолучитьНастройкиTls(ОтключитьПроверкуСертификатов, ПутьКСертификату);
-
-КонецФункции
-
-#КонецОбласти
-
-#Область ORM
-
-// Создать базу данных
-// Создает базу данных с указанным именем
-//
-// Параметры:
-// База - Строка - Имя базы - base
-// Соединение - Строка, Произвольный - Соединение или строка подключения - dbc
-// Tls - Структура Из КлючИЗначение - Настройки TLS, если необходимо. См. ПолучитьНастройкиTls - tls
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат выполнения запроса
-Функция СоздатьБазуДанных(Знач База, Знач Соединение = "", Знач Tls = "") Экспорт
-
- Результат = OPI_ЗапросыSQL.СоздатьБазуДанных(OPI_MySQL, База, Соединение, Tls);
- Возврат Результат;
-
-КонецФункции
-
-// Удалить базу данных
-// Удаляет базу данных
-//
-// Параметры:
-// База - Строка - Имя базы - base
-// Соединение - Строка, Произвольный - Соединение или строка подключения - dbc
-// Tls - Структура Из КлючИЗначение - Настройки TLS, если необходимо. См. ПолучитьНастройкиTls - tls
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат выполнения запроса
-Функция УдалитьБазуДанных(Знач База, Знач Соединение = "", Знач Tls = "") Экспорт
-
- Результат = OPI_ЗапросыSQL.УдалитьБазуДанных(OPI_MySQL, База, Соединение, Tls);
- Возврат Результат;
-
-КонецФункции
-
-// Создать таблицу
-// Создает пустую таблицу в базе
-//
-// Примечание:
-// Список доступных типов описан на начальной странице документации библиотеки MySQL
-//
-// Параметры:
-// Таблица - Строка - Имя таблицы - table
-// СтруктураКолонок - Структура Из КлючИЗначение - Структура колонок: Ключ > имя, Значение > Тип данных - cols
-// Соединение - Строка, Произвольный - Соединение или строка подключения - dbc
-// Tls - Структура Из КлючИЗначение - Настройки TLS, если необходимо. См. ПолучитьНастройкиTls - tls
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат выполнения запроса
-Функция СоздатьТаблицу(Знач Таблица, Знач СтруктураКолонок, Знач Соединение = "", Знач Tls = "") Экспорт
-
- Результат = OPI_ЗапросыSQL.СоздатьТаблицу(OPI_MySQL, Таблица, СтруктураКолонок, Соединение, Tls);
- Возврат Результат;
-
-КонецФункции
-
-// Добавить колонку таблицы
-// Добавляет новую колонку в существующую таблицу
-//
-// Параметры:
-// Таблица - Строка - Имя таблицы - table
-// Имя - Строка - Имя колонки - name
-// ТипДанных - Строка - Тип данных колонки - type
-// Соединение - Строка, Произвольный - Соединение или строка подключения - dbc
-// Tls - Структура Из КлючИЗначение - Настройки TLS, если необходимо. См. ПолучитьНастройкиTls - tls
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат выполнения запроса
-Функция ДобавитьКолонкуТаблицы(Знач Таблица, Знач Имя, Знач ТипДанных, Знач Соединение = "", Знач Tls = "") Экспорт
-
- Результат = OPI_ЗапросыSQL.ДобавитьКолонкуТаблицы(OPI_MySQL, Таблица, Имя, ТипДанных, Соединение, Tls);
- Возврат Результат;
-
-КонецФункции
-
-// Удалить колонку таблицы
-// Удаляет колонку из таблицы
-//
-// Параметры:
-// Таблица - Строка - Имя таблицы - table
-// Имя - Строка - Имя колонки - name
-// Соединение - Строка, Произвольный - Соединение или строка подключения - dbc
-// Tls - Структура Из КлючИЗначение - Настройки TLS, если необходимо. См. ПолучитьНастройкиTls - tls
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат выполнения запроса
-Функция УдалитьКолонкуТаблицы(Знач Таблица, Знач Имя, Знач Соединение = "", Знач Tls = "") Экспорт
-
- Результат = OPI_ЗапросыSQL.УдалитьКолонкуТаблицы(OPI_MySQL, Таблица, Имя, Соединение, Tls);
- Возврат Результат;
-
-КонецФункции
-
-// Гарантировать таблицу
-// Создает новую таблицу в случае отсутствия или обновляет состав колонок существующей таблицы
-//
-// Примечание:
-// В результате изменения структуры таблицы данные могут быть утеряны!^^
-// Рекомендуется предварительно опробовать данный метод на тестовых данных
-// Данная функция не обновляет тип данных существующих колонок
-//
-// Параметры:
-// Таблица - Строка - Имя таблицы - table
-// СтруктураКолонок - Структура Из КлючИЗначение - Структура колонок: Ключ > имя, Значение > Тип данных - cols
-// Соединение - Строка, Произвольный - Существующее соединение или путь к базе - dbc
-// Tls - Структура Из КлючИЗначение - Настройки TLS, если необходимо. См. ПолучитьНастройкиTls - tls
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат выполнения запроса
-Функция ГарантироватьТаблицу(Знач Таблица, Знач СтруктураКолонок, Знач Соединение = "", Знач Tls = "") Экспорт
-
- Результат = OPI_ЗапросыSQL.ГарантироватьТаблицу(OPI_MySQL, Таблица, СтруктураКолонок, Соединение, Tls);
- Возврат Результат;
-
-КонецФункции
-
-// Очистить таблицу
-// Очищает таблицу базы
-//
-// Параметры:
-// Таблица - Строка - Имя таблицы - table
-// Соединение - Строка, Произвольный - Соединение или строка подключения - dbc
-// Tls - Структура Из КлючИЗначение - Настройки TLS, если необходимо. См. ПолучитьНастройкиTls - tls
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат выполнения запроса
-Функция ОчиститьТаблицу(Знач Таблица, Знач Соединение = "", Знач Tls = "") Экспорт
-
- Результат = OPI_ЗапросыSQL.УдалитьЗаписи(OPI_MySQL, Таблица, , Соединение, Tls);
- Возврат Результат;
-
-КонецФункции
-
-// Удалить таблицу
-// Удаляет таблицу из базы
-//
-// Параметры:
-// Таблица - Строка - Имя таблицы - table
-// Соединение - Строка, Произвольный - Соединение или строка подключения - dbc
-// Tls - Структура Из КлючИЗначение - Настройки TLS, если необходимо. См. ПолучитьНастройкиTls - tls
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат выполнения запроса
-Функция УдалитьТаблицу(Знач Таблица, Знач Соединение = "", Знач Tls = "") Экспорт
-
- Результат = OPI_ЗапросыSQL.УдалитьТаблицу(OPI_MySQL, Таблица, Соединение, Tls);
- Возврат Результат;
-
-КонецФункции
-
-// Получить информацию о таблице
-// Получает информацию о таблице
-//
-// Параметры:
-// Таблица - Строка - Имя таблицы - table
-// Соединение - Строка, Произвольный - Соединение или строка подключения - dbc
-// Tls - Структура Из КлючИЗначение - Настройки TLS, если необходимо. См. ПолучитьНастройкиTls - tls
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат выполнения запроса
-Функция ПолучитьИнформациюОТаблице(Знач Таблица, Знач Соединение = "", Знач Tls = "") Экспорт
-
- Результат = OPI_ЗапросыSQL.ПолучитьСтруктуруТаблицы(OPI_MySQL, Таблица, Соединение, Tls);
- Возврат Результат;
-
-КонецФункции
-
-// Добавить записи
-// Добавляет записи в таблицу
-//
-// Примечание:
-// Данные записей указываются как массив структур вида:^
-// `{'Имя поля 1': {'Тип данных': 'Значение'}, 'Имя поля 2': {'Тип данных': 'Значение'},...}`
-// Список доступных типов описан на начальной странице документации библиотеки MySQL
-//
-// Параметры:
-// Таблица - Строка - Имя таблицы - table
-// МассивДанных - Массив Из Структура - Массив структур данных строк: Ключ > поле, Значение > значение поля - rows
-// Транзакция - Булево - Истина > добавление записей в транзакции с откатом при ошибке - trn
-// Соединение - Строка, Произвольный - Соединение или строка подключения - dbc
-// Tls - Структура Из КлючИЗначение - Настройки TLS, если необходимо. См. ПолучитьНастройкиTls - tls
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат выполнения запроса
-Функция ДобавитьЗаписи(Знач Таблица, Знач МассивДанных, Знач Транзакция = Истина, Знач Соединение = "", Знач Tls = "") Экспорт
-
- Результат = OPI_ЗапросыSQL.ДобавитьЗаписи(OPI_MySQL, Таблица, МассивДанных, Транзакция, Соединение, Tls);
- Возврат Результат;
-
-КонецФункции
-
-// Получить записи
-// Получает записи из выбранной таблицы
-//
-// Параметры:
-// Таблица - Строка - Имя таблицы - table
-// Поля - Массив Из Строка - Поля для выборки - fields
-// Фильтры - Массив Из Структура - Массив фильтров. См. ПолучитьСтруктуруФильтраЗаписей - filter
-// Сортировка - Структура Из КлючИЗначение - Сортировка: Ключ > поле, Значение > направление (ASC, DESC) - order
-// Количество - Число - Ограничение количества получаемых строк - limit
-// Соединение - Строка, Произвольный - Соединение или строка подключения - dbc
-// Tls - Структура Из КлючИЗначение - Настройки TLS, если необходимо. См. ПолучитьНастройкиTls - tls
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат выполнения запроса
-Функция ПолучитьЗаписи(Знач Таблица
- , Знач Поля = "*"
- , Знач Фильтры = ""
- , Знач Сортировка = ""
- , Знач Количество = ""
- , Знач Соединение = ""
- , Знач Tls = "") Экспорт
-
- Результат = OPI_ЗапросыSQL.ПолучитьЗаписи(OPI_MySQL
- , Таблица
- , Поля
- , Фильтры
- , Сортировка
- , Количество
- , Соединение
- , Tls);
-
- Возврат Результат;
-
-КонецФункции
-
-// Обновить записи
-// Обновляет значение записей по выбранным критериям
-//
-// Примечание:
-// Данные записей указываются как массив структур вида:^
-// `{'Имя поля 1': {'Тип данных': 'Значение'}, 'Имя поля 2': {'Тип данных': 'Значение'},...}`
-// Список доступных типов описан на начальной странице документации библиотеки MySQL
-//
-// Параметры:
-// Таблица - Строка - Имя таблицы - table
-// СтруктураЗначений - Структура Из КлючИЗначение - Структура значений: Ключ > поле, Значение > значение поля - values
-// Фильтры - Массив Из Структура - Массив фильтров. См. ПолучитьСтруктуруФильтраЗаписей - filter
-// Соединение - Строка, Произвольный - Соединение или строка подключения - dbc
-// Tls - Структура Из КлючИЗначение - Настройки TLS, если необходимо. См. ПолучитьНастройкиTls - tls
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат выполнения запроса
-Функция ОбновитьЗаписи(Знач Таблица
- , Знач СтруктураЗначений
- , Знач Фильтры = ""
- , Знач Соединение = ""
- , Знач Tls = "") Экспорт
-
- Результат = OPI_ЗапросыSQL.ОбновитьЗаписи(OPI_MySQL, Таблица, СтруктураЗначений, Фильтры, Соединение, Tls);
- Возврат Результат;
-
-КонецФункции
-
-// Удалить записи
-// Удаляет записи из таблицы
-//
-// Параметры:
-// Таблица - Строка - Имя таблицы - table
-// Фильтры - Массив Из Структура - Массив фильтров. См. ПолучитьСтруктуруФильтраЗаписей - filter
-// Соединение - Строка, Произвольный - Соединение или строка подключения - dbc
-// Tls - Структура Из КлючИЗначение - Настройки TLS, если необходимо. См. ПолучитьНастройкиTls - tls
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат выполнения запроса
-Функция УдалитьЗаписи(Знач Таблица, Знач Фильтры = "", Знач Соединение = "", Знач Tls = "") Экспорт
-
- Результат = OPI_ЗапросыSQL.УдалитьЗаписи(OPI_MySQL, Таблица, Фильтры, Соединение, Tls);
- Возврат Результат;
-
-КонецФункции
-
-// Получить структуру фильтра записей
-// Получает структуру шаблон для фильтрации записей в запросах ORM
-//
-// Примечание:
-// Использование признака `raw` необходимо для составных конструкций, вроде `BEETWEEN`.^^
-// Например: при `raw:false` фильтр `type:BETWEEN` `value:10 AND 20` будет интерпритирован как `BETWEEN ?1 `^^
-// где `?1 = "10 AND 20"`, что приведет к ошибке.^^
-// В таком случае необходимо использовать `raw:true` для установки условия напрямую в текст запроса
-//
-// Параметры:
-// Пустая - Булево - Истина > структура с пустыми значениями, Ложь > в значениях будут описания полей - empty
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - Элемент фильтра записей
-Функция ПолучитьСтруктуруФильтраЗаписей(Знач Пустая = Ложь) Экспорт
-
- Возврат OPI_ЗапросыSQL.ПолучитьСтруктуруФильтраЗаписей(Пустая);
-
-КонецФункции
-
-#КонецОбласти
-
-#КонецОбласти
-
-#Область СлужебныйПрограммныйИнтерфейс
-
-Функция ПолучитьОсобенности() Экспорт
-
- Особенности = Новый Соответствие;
- Особенности.Вставить("НумерацияПараметров", Ложь);
- Особенности.Вставить("МаркерПараметров" , "?");
- Особенности.Вставить("СУБД" , "mysql");
- Особенности.Вставить("ПолеКолонки" , "COLUMN_NAME");
- Особенности.Вставить("НачалоТранзакции" , "BEGIN");
-
- Возврат Особенности;
-
-КонецФункции
-
-Функция ПолучитьСтруктуруТипов() Экспорт
-
- СтруктураТипов = Новый Соответствие;
- СтруктураТипов.Вставить("ДвоичныеДанные" , "BYTES");
- СтруктураТипов.Вставить("УникальныйИдентификатор", "TEXT");
- СтруктураТипов.Вставить("Булево" , "INT");
- СтруктураТипов.Вставить("Дробное" , "DOUBLE");
- СтруктураТипов.Вставить("Целое" , "DOUBLE");
- СтруктураТипов.Вставить("Дата" , "DATE");
- СтруктураТипов.Вставить("Строка" , "TEXT");
- СтруктураТипов.Вставить("Коллекции" , Новый СписокЗначений);
- СтруктураТипов.Вставить("БулевоКакЧисло" , Истина);
-
- Возврат СтруктураТипов;
-
-КонецФункции
-
-#КонецОбласти
diff --git a/XML/CommonModules/OPI_Neocities.xml b/XML/CommonModules/OPI_Neocities.xml
deleted file mode 100644
index db484cc4a4..0000000000
--- a/XML/CommonModules/OPI_Neocities.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- OPI_Neocities
-
-
- ru
- Neocities (ОПИ)
-
-
- Модуль для работы с Neocities из набора ОПИ
- false
- false
- true
- true
- true
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git a/XML/CommonModules/OPI_Neocities/Ext/Module.bsl b/XML/CommonModules/OPI_Neocities/Ext/Module.bsl
deleted file mode 100644
index 20ea361e32..0000000000
--- a/XML/CommonModules/OPI_Neocities/Ext/Module.bsl
+++ /dev/null
@@ -1,449 +0,0 @@
-// OneScript: ./OInt/core/Modules/OPI_Neocities.os
-// Lib: Neocities
-// CLI: neocities
-// Keywords: neocities
-
-// MIT License
-
-// Copyright (c) 2023-2025 Anton Tsitavets
-
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-
-// The above copyright notice and this permission notice shall be included in all
-// copies or substantial portions of the Software.
-
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-// SOFTWARE.
-
-// https://github.com/Bayselonarrend/OpenIntegrations
-
-// BSLLS:Typo-off
-// BSLLS:LatinAndCyrillicSymbolInWord-off
-// BSLLS:IncorrectLineBreak-off
-// BSLLS:NumberOfOptionalParams-off
-// BSLLS:UsingServiceTag-off
-// BSLLS:LineLength-off
-// BSLLS:UsingSynchronousCalls-off
-// BSLLS:MagicNumber-off
-
-//@skip-check module-structure-top-region
-//@skip-check module-structure-method-in-regions
-//@skip-check wrong-string-literal-content
-//@skip-check method-too-many-params
-
-#Область ПрограммныйИнтерфейс
-
-#Область ПолучениеДанных
-
-// Получить данные о сайте
-// Получает информацию о сайте по его имени или токену
-//
-// Примечание:
-// Документация Neocities API: [neocities.org/api](@neocities.org/api)
-//
-// Параметры:
-// Токен - Строка - Токен авторизации - token
-// Сайт - Строка - Имя сайта (логин) для получения информации. Текущий, если не заполнено - sitename
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Neocities
-Функция ПолучитьДанныеОСайте(Знач Токен, Знач Сайт = "") Экспорт
-
- URL = "https://neocities.org/api/info";
-
- Заголовки = СоздатьЗаголовкиЗапроса(Токен);
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("sitename", Сайт, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить токен
-// Получает токен авторизации по логину и паролю
-//
-// Примечание:
-// Документация Neocities API: [neocities.org/api](@neocities.org/api)
-//
-// Параметры:
-// Логин - Строка - Логин пользователя - login
-// Пароль - Строка - Пароль пользователя - password
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Neocities
-Функция ПолучитьТокен(Знач Логин, Знач Пароль) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Логин);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Пароль);
-
- URL = "neocities.org";
- Таймаут = 120;
-
- Попытка
-
- ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL();
- БезопасноеСоединение = Новый HTTPСоединение(URL, 443, Логин, Пароль, , Таймаут, ЗащищенноеСоединение);
-
- Исключение
-
- URL = "https://" + URL;
- БезопасноеСоединение = Новый HTTPСоединение(URL, 443, Логин, Пароль, , Таймаут);
-
- КонецПопытки;
-
- Ответ = БезопасноеСоединение.Получить(Новый HTTPЗапрос("/api/key"));
-
- ЧтениеJSON = Новый ЧтениеJSON();
- ЧтениеJSON.УстановитьСтроку(Ответ.ПолучитьТелоКакСтроку());
-
- Ответ = ПрочитатьJSON(ЧтениеJSON);
-
- Возврат Ответ;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область РаботаСФайлами
-
-// Загрузить файл
-// Загружает одиночный файл на сервер Neocities
-//
-// Примечание:
-// Документация Neocities API: [neocities.org/api](@neocities.org/api)
-//
-// Параметры:
-// Токен - Строка - Токен авторизации - token
-// Путь - Строка - Целевой путь файла на Neocities - path
-// Данные - Строка, ДвоичныеДанные - URL, путь или данные файла для загрузки - file
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Neocities
-Функция ЗагрузитьФайл(Знач Токен, Знач Путь, Знач Данные) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Путь);
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Данные);
-
- URL = "https://neocities.org/api/upload";
- Заголовки = СоздатьЗаголовкиЗапроса(Токен);
-
- СоответствиеФайла = Новый Соответствие;
- СоответствиеФайла.Вставить(Путь + "|" + Путь, Данные);
-
- Ответ = OPI_ЗапросыHTTP.PostMultipart(URL, , СоответствиеФайла, "multipart/form-data", Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Загрузить файлы
-// Загружает несколько файлов на сервер Neocities
-//
-// Примечание:
-// Документация Neocities API: [neocities.org/api](@neocities.org/api)
-//
-// Параметры:
-// Токен - Строка - Токен авторизации - token
-// СоответствиеФайлов - Соответствие Из КлючИЗначение - Файлы для загрузки: Ключ > путь на NC, Значение > Файл - files
-// ПоОдному - Булево - Истина > отправляет файлы отдельными запросами - singly
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Neocities
-Функция ЗагрузитьФайлы(Знач Токен, Знач СоответствиеФайлов, Знач ПоОдному = Ложь) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьБулево(ПоОдному);
- OPI_ПреобразованиеТипов.ПолучитьКоллекцию(СоответствиеФайлов);
-
- КонечныйОтвет = Новый Массив;
- ОбработанноеСоответствие = Новый Соответствие;
-
- Для Каждого ФайлОтправки Из СоответствиеФайлов Цикл
-
- Если ПоОдному Тогда
-
- Ответ = ЗагрузитьФайл(Токен, ФайлОтправки.Ключ, ФайлОтправки.Значение);
- КонечныйОтвет.Добавить(Ответ);
-
- Иначе
-
- ТекущийПуть = ФайлОтправки.Ключ;
- ТекущиеДанные = ФайлОтправки.Значение;
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(ТекущийПуть);
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(ТекущиеДанные);
-
- ОбработанноеСоответствие.Вставить(ТекущийПуть + "|" + ТекущийПуть, ТекущиеДанные);
-
- КонецЕсли;
-
- КонецЦикла;
-
- Если Не ПоОдному Тогда
-
- URL = "https://neocities.org/api/upload";
- Заголовки = СоздатьЗаголовкиЗапроса(Токен);
-
- КонечныйОтвет = OPI_ЗапросыHTTP.PostMultipart(URL
- ,
- , ОбработанноеСоответствие
- , "multipart/form-data"
- , Заголовки);
-
- КонецЕсли;
-
- Возврат КонечныйОтвет;
-
-КонецФункции
-
-// Удалить выбранные файлы
-// Удаляет файл или несколько файлов с сервера Neocities
-//
-// Примечание:
-// Документация Neocities API: [neocities.org/api](@neocities.org/api)
-//
-// Параметры:
-// Токен - Строка - Токен авторизации - token
-// Пути - Строка, Массив Из Строка - Путь или несколько путей удаляемых файлов - paths
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Neocities
-Функция УдалитьВыбранныеФайлы(Знач Токен, Знач Пути) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьМассив(Пути);
-
- URL = "https://neocities.org/api/delete";
- Заголовки = СоздатьЗаголовкиЗапроса(Токен);
-
- Для Н = 0 По Пути.ВГраница() Цикл
-
- ТекущееЗначение = Пути[Н];
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(ТекущееЗначение);
-
- Пути.Установить(Н, "filenames[]=" + ТекущееЗначение);
-
- КонецЦикла;
-
- ПутиСтрокой = СтрСоединить(Пути, "&");
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, ПутиСтрокой, Заголовки, Ложь);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить список файлов
-// Получает список файлов с отбором каталога или без
-//
-// Примечание:
-// Документация Neocities API: [neocities.org/api](@neocities.org/api)
-//
-// Параметры:
-// Токен - Строка - Токен авторизации - token
-// Путь - Строка - Отбор файлов по каталогу. Все, если не заполнено - path
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Neocities
-Функция ПолучитьСписокФайлов(Знач Токен, Знач Путь = "") Экспорт
-
- URL = "https://neocities.org/api/list";
- Заголовки = СоздатьЗаголовкиЗапроса(Токен);
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("path", Путь, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Синхронизировать каталоги
-// Создает копию локального каталога по выбранному пути на сервере
-//
-// Примечание:
-// Документация Neocities API: [neocities.org/api](@neocities.org/api)
-// Метод удаляет файлы на сервере, если они отсутствуют в локальном каталоге
-//
-// Параметры:
-// Токен - Строка - Токен авторизации - token
-// ЛокальныйКаталог - Строка - Локальный каталог источник - local
-// УдаленныйКаталог - Строка - Удаленный каталог приемника. Корень, если не заполнено - remote
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - информация об ошибках синхронизации
-Функция СинхронизироватьКаталоги(Знач Токен, Знач ЛокальныйКаталог, Знач УдаленныйКаталог = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(ЛокальныйКаталог);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(УдаленныйКаталог);
-
- // !OInt Сообщить("Начало синхронизации...");
-
- Если ЗначениеЗаполнено(УдаленныйКаталог) Тогда
- УдаленныйКаталог = ?(СтрЗаканчиваетсяНа(УдаленныйКаталог, "/"), УдаленныйКаталог, УдаленныйКаталог + "/");
- КонецЕсли;
-
- УдаленныеФайлы = ПолучитьСписокФайлов(Токен, УдаленныйКаталог);
-
- Если Не УдаленныеФайлы["result"] = "success" Тогда
- //@skip-check constructor-function-return-section
- Возврат УдаленныеФайлы;
- КонецЕсли;
-
- ЛокальныеПути = Новый Соответствие;
- ЛокальныеПодкаталоги = Новый Соответствие;
-
- ПолучитьНаборыЛокальныхПутей(ЛокальныйКаталог, УдаленныйКаталог, ЛокальныеПути, ЛокальныеПодкаталоги);
-
- МассивУдаляемых = ПолучитьУдаляемыеФайлы(УдаленныеФайлы, ЛокальныеПути, ЛокальныеПодкаталоги);
- Результат = ВыполнитьСинхронизацию(Токен, МассивУдаляемых, ЛокальныеПути);
-
- //@skip-check constructor-function-return-section
- Возврат Результат;
-
-КонецФункции
-
-#КонецОбласти
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-Функция СоздатьЗаголовкиЗапроса(Знач Токен)
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
-
- Заголовки = Новый Соответствие;
- Заголовки.Вставить("Authorization", "Bearer " + Токен);
- Возврат Заголовки;
-
-КонецФункции
-
-Функция ПолучитьУдаляемыеФайлы(УдаленныеФайлы, ЛокальныеПути, ЛокальныеПодкаталоги)
-
- МассивУдаляемых = Новый Массив;
-
- Для Каждого УдаленныйФайл Из УдаленныеФайлы["files"] Цикл
-
- ПутьУдаленногоОсновной = УдаленныйФайл["path"];
- ПутьУдаленногоДополнительный = "/" + УдаленныйФайл["path"];
-
- Если УдаленныйФайл["is_directory"] Тогда
-
- СуществующийУдаленный = ЛокальныеПодкаталоги[ПутьУдаленногоОсновной];
- СуществующийУдаленный = ?(ЗначениеЗаполнено(СуществующийУдаленный)
- , СуществующийУдаленный
- , ЛокальныеПодкаталоги[ПутьУдаленногоДополнительный]);
-
- Иначе
- СуществующийУдаленный = ЛокальныеПути[ПутьУдаленногоОсновной];
- СуществующийУдаленный = ?(ЗначениеЗаполнено(СуществующийУдаленный)
- , СуществующийУдаленный
- , ЛокальныеПути[ПутьУдаленногоДополнительный]);
-
- КонецЕсли;
-
- Если СуществующийУдаленный = Неопределено Тогда
- МассивУдаляемых.Добавить(ПутьУдаленногоОсновной);
- КонецЕсли;
-
- КонецЦикла;
-
- Возврат МассивУдаляемых;
-
-КонецФункции
-
-Функция ВыполнитьСинхронизацию(Токен, МассивУдаляемых, ЛокальныеПути)
-
- МассивОшибок = Новый Массив;
-
- Если Не МассивУдаляемых.Количество() = 0 Тогда
-
- Ответ = УдалитьВыбранныеФайлы(Токен, МассивУдаляемых);
-
- Если Не Ответ["result"] = "success" Тогда
- МассивОшибок.Добавить(Ответ);
-
- Иначе
-
- // BSLLS:UnusedLocalVariable-off
-
- //@skip-check module-unused-local-variable
- СообщениеУдаления = СтрШаблон("Удалено %1 лишних файлов", Строка(МассивУдаляемых.Количество()));
- // !OInt Сообщить(СообщениеУдаления);
-
- // BSLLS:UnusedLocalVariable-on
-
- КонецЕсли;
-
- КонецЕсли;
-
- Всего = OPI_Инструменты.ЧислоВСтроку(ЛокальныеПути.Количество());
- Счетчик = 0;
-
- Для Каждого ЛокальныйПуть Из ЛокальныеПути Цикл
-
- Ответ = ЗагрузитьФайл(Токен, ЛокальныйПуть.Ключ, ЛокальныйПуть.Значение);
-
- Если Не Ответ["result"] = "success" Тогда
-
- МассивОшибок.Добавить(Ответ);
-
- Иначе
-
- // BSLLS:UnusedLocalVariable-off
-
- //@skip-check module-unused-local-variable
- Прогресс = "[" + OPI_Инструменты.ЧислоВСтроку(Счетчик) + "/" + Всего + "] ";
- // !OInt Сообщить(Прогресс + ЛокальныйПуть.Ключ + Символы.ПС + Ответ["message"] + Символы.ПС);
-
- // BSLLS:UnusedLocalVariable-on
-
- КонецЕсли;
-
- Счетчик = Счетчик + 1;
-
- КонецЦикла;
-
- Возврат Новый Структура("errors,items", МассивОшибок.Количество(), МассивОшибок);
-
-КонецФункции
-
-Процедура ПолучитьНаборыЛокальныхПутей(ЛокальныйКаталог, УдаленныйКаталог, ЛокальныеПути, ЛокальныеПодкаталоги)
-
- ЛокальныйКаталог = СтрЗаменить(ЛокальныйКаталог, "\", "/");
- ЛокальныйКаталог = ?(СтрЗаканчиваетсяНа(ЛокальныйКаталог, "/"), ЛокальныйКаталог, ЛокальныйКаталог + "/");
-
- ЛокальныеФайлы = НайтиФайлы(ЛокальныйКаталог, "*", Истина);
-
- Для Каждого ЛокальныйФайл Из ЛокальныеФайлы Цикл
-
- ТекущийАбсПуть = ЛокальныйФайл.ПолноеИмя;
- ТекущийОтнПуть = Прав(ТекущийАбсПуть, СтрДлина(ТекущийАбсПуть) - СтрДлина(ЛокальныйКаталог));
- ТекущийОтнПуть = УдаленныйКаталог + ТекущийОтнПуть;
-
- ТекущийОтнПуть = СтрЗаменить(ТекущийОтнПуть, "\", "/");
-
- Если ЛокальныйФайл.ЭтоКаталог() Тогда
- ЛокальныеПодкаталоги.Вставить(ТекущийОтнПуть, ТекущийАбсПуть);
- Иначе
- ЛокальныеПути.Вставить(ТекущийОтнПуть, ТекущийАбсПуть);
- КонецЕсли;
-
- КонецЦикла;
-
-КонецПроцедуры
-
-#КонецОбласти
diff --git a/XML/CommonModules/OPI_Notion.xml b/XML/CommonModules/OPI_Notion.xml
deleted file mode 100644
index a9c4d74fd3..0000000000
--- a/XML/CommonModules/OPI_Notion.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- OPI_Notion
-
-
- ru
- Notion (ОПИ)
-
-
- Модуль для работы с Notion из набора ОПИ
- false
- false
- true
- true
- true
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git a/XML/CommonModules/OPI_Notion/Ext/Module.bsl b/XML/CommonModules/OPI_Notion/Ext/Module.bsl
deleted file mode 100644
index 9199152adf..0000000000
--- a/XML/CommonModules/OPI_Notion/Ext/Module.bsl
+++ /dev/null
@@ -1,893 +0,0 @@
-// OneScript: ./OInt/core/Modules/OPI_Notion.os
-// Lib: Notion
-// CLI: notion
-// Keywords: notion
-
-// MIT License
-
-// Copyright (c) 2023-2025 Anton Tsitavets
-
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-
-// The above copyright notice and this permission notice shall be included in all
-// copies or substantial portions of the Software.
-
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-// SOFTWARE.
-
-// https://github.com/Bayselonarrend/OpenIntegrations
-
-// BSLLS:LatinAndCyrillicSymbolInWord-off
-// BSLLS:IncorrectLineBreak-off
-// BSLLS:NumberOfOptionalParams-off
-// BSLLS:UsingServiceTag-off
-// BSLLS:UsingSynchronousCalls-off
-
-//@skip-check method-too-many-params
-//@skip-check module-structure-top-region
-//@skip-check module-structure-method-in-regions
-//@skip-check wrong-string-literal-content
-
-#Область ПрограммныйИнтерфейс
-
-#Область РаботаСоСтраницами
-
-// Создать страницу
-// Создает дочернюю страницу над другой страницей-родителем
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// Родитель - Строка - ID Родителя - page
-// Заголовок - Строка - Заголовок страницы - title
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Notion
-Функция СоздатьСтраницу(Знач Токен, Знач Родитель, Знач Заголовок) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Родитель);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Заголовок);
-
- Заголовки = СоздатьЗаголовкиЗапроса(Токен);
- Свойства = Новый Структура;
- Параметры = Новый Структура;
-
- ДобавитьЗаголовокСтраницы(Заголовок, Свойства);
- ДобавитьРодителяСтраницы(Родитель, Ложь, Параметры);
-
- Параметры.Вставить("properties", Свойства);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом("https://api.notion.com/v1/pages", Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Создать страницу в базу
-// Создает страницу в базе-родителе
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// Родитель - Строка - ID родительской базы - base
-// Данные - Соответствие Из КлючИЗначение - Соответствие свойств - data
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Notion
-Функция СоздатьСтраницуВБазу(Знач Токен, Знач Родитель, Знач Данные) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Родитель);
- OPI_ПреобразованиеТипов.ПолучитьКоллекцию(Данные);
-
- Заголовки = СоздатьЗаголовкиЗапроса(Токен);
- Параметры = Новый Структура;
-
- ДобавитьРодителяСтраницы(Родитель, Истина, Параметры);
-
- Свойства = ЗаполнитьДанныеПоСхеме(Родитель, Данные, Токен);
- Параметры.Вставить("properties", Свойства);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом("https://api.notion.com/v1/pages", Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить страницу
-// Получает информацию о странице по ID
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// Страница - Строка - ID страницы - page
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Notion
-Функция ПолучитьСтраницу(Знач Токен, Знач Страница) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Страница);
-
- Заголовки = СоздатьЗаголовкиЗапроса(Токен);
- ПреобразоватьИД(Страница);
-
- Ответ = OPI_ЗапросыHTTP.Get("https://api.notion.com/v1/pages/" + Страница, , Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Изменить свойства страницы
-// Изменяет свойства существующей страницы
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// Страница - Строка - ID изменяемой страницы - page
-// Данные - Соответствие Из КлючИЗначение - Соответствие изменяемых параметров - data
-// Иконка - Строка - URL картинки иконки страницы - icon
-// Обложка - Строка - URL картинки обложки страницы - cover
-// Архивирована - Булево - Архивировать страницу или нет (булево) - archive
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Notion
-Функция ИзменитьСвойстваСтраницы(Знач Токен
- , Знач Страница
- , Знач Данные = ""
- , Знач Иконка = ""
- , Знач Обложка = ""
- , Знач Архивирована = Ложь) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Страница);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Иконка);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Обложка);
- OPI_ПреобразованиеТипов.ПолучитьБулево(Архивирована);
- OPI_ПреобразованиеТипов.ПолучитьКоллекцию(Данные);
-
- Заголовки = СоздатьЗаголовкиЗапроса(Токен);
- Параметры = Новый Структура;
- Files = "files";
-
- Если ЗначениеЗаполнено(Данные)
- И (ТипЗнч(Данные) = Тип("Соответствие") Или ТипЗнч(Данные) = Тип("Структура")) Тогда
- Свойства = ЗаполнитьДанныеПоСхеме(Страница, Данные, Токен, Ложь);
- Иначе
- Свойства = Новый Соответствие;
- КонецЕсли;
-
- Если ЗначениеЗаполнено(Иконка) Тогда
- СоответствиеИконки = Новый Соответствие;
- СоответствиеИконки.Вставить("Icon", Иконка);
-
- ОбъектИконка = ПреобразоватьЗначениеПоТипу(Files, СоответствиеИконки);
- ОбъектИконка = ОбъектИконка[Files][0];
- ОбъектИконка.Удалить("name");
-
- Параметры.Вставить("icon", ОбъектИконка);
- КонецЕсли;
-
- Если ЗначениеЗаполнено(Обложка) Тогда
- СоответствиеОбложки = Новый Соответствие;
- СоответствиеОбложки.Вставить("Cover", Обложка);
-
- ОбъектОбложка = ПреобразоватьЗначениеПоТипу(Files, СоответствиеОбложки);
- ОбъектОбложка = ОбъектОбложка[Files][0];
- ОбъектОбложка.Удалить("name");
-
- Параметры.Вставить("cover", ОбъектОбложка);
- КонецЕсли;
-
- Параметры.Вставить("properties", Свойства);
- Параметры.Вставить("archived" , Архивирована);
-
- ПреобразоватьИД(Страница);
-
- Ответ = OPI_ЗапросыHTTP.PatchСТелом("https://api.notion.com/v1/pages/" + Страница, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область РаботаСБазамиДанных
-
-// Создать базу данных
-// Создает базу данных
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// Родитель - Строка - ID страницы родителя - page
-// Заголовок - Строка - Заголовок базы данных - title
-// Свойства - Структура Из Строка - Свойства базы данных - props
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Notion
-Функция СоздатьБазуДанных(Знач Токен, Знач Родитель, Знач Заголовок, Знач Свойства = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Родитель);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Заголовок);
- OPI_ПреобразованиеТипов.ПолучитьКоллекцию(Свойства);
-
- // Пример структуры/соответствия свойств
-
- // Имя : title
- // Описание : rich_text
- // В работе : checkbox
- // Количество : number
- // Дата : date
- // Статус : Соответствие
- // Активный : green
- // Неактивный : red
- // Архив : yellow
-
- // Все страницы, которые будут созданы как дочерние, должны иметь свойства базы-родителя
-
- Если Не ТипЗнч(Свойства) = Тип("Структура") И Не ТипЗнч(Свойства) = Тип("Соответствие") Тогда
- Свойства = Новый Структура("Наименование", "title");
- КонецЕсли;
-
- Заголовки = СоздатьЗаголовкиЗапроса(Токен);
- Параметры = Новый Структура;
-
- ДобавитьРодителяБазы(Родитель, Ложь, Параметры);
- ДобавитьЗаголовокБазы(Заголовок, Параметры);
- ДобавитьСвойстваБазы(Свойства, Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом("https://api.notion.com/v1/databases", Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить базу данных
-// Получить данные о базе данных
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// База - Строка - ID базы данных - base
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Notion
-Функция ПолучитьБазуДанных(Знач Токен, Знач База) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(База);
-
- Заголовки = СоздатьЗаголовкиЗапроса(Токен);
- ПреобразоватьИД(База);
-
- Ответ = OPI_ЗапросыHTTP.Get("https://api.notion.com/v1/databases/" + База, , Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Изменить свойства базы
-// Изменяет свойства существующей базы
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// База - Строка - ID целевой базы - base
-// Свойства - Соответствие из КлючИЗначение - Новые или изменяемые свойства базы данных - props
-// Заголовок - Строка - Новый заголовок базы - title
-// Описание - Строка - Новое описание базы - description
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Notion
-Функция ИзменитьСвойстваБазы(Знач Токен, Знач База, Знач Свойства = "", Знач Заголовок = "", Знач Описание = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(База);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Заголовок);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Описание);
- OPI_ПреобразованиеТипов.ПолучитьКоллекцию(Свойства);
-
- Параметры = Новый Структура;
- Заголовки = СоздатьЗаголовкиЗапроса(Токен);
- ПреобразоватьИД(База);
-
- Если ЗначениеЗаполнено(Заголовок) Тогда
- ДобавитьЗаголовокБазы(Заголовок, Параметры);
- КонецЕсли;
-
- Если ЗначениеЗаполнено(Описание) Тогда
- ДобавитьОписаниеБазы(Описание, Параметры);
- КонецЕсли;
-
- Если ТипЗнч(Свойства) = Тип("Структура") Или ТипЗнч(Свойства) = Тип("Соответствие") Тогда
- ДобавитьСвойстваБазы(Свойства, Параметры);
- КонецЕсли;
-
- Ответ = OPI_ЗапросыHTTP.PatchСТелом("https://api.notion.com/v1/databases/" + База, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область РаботаСБлоками
-
-// Создать блок
-// Создает новый блок на основе существующего блока
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// Родитель - Строка - ID родительского блока или страницы - page
-// Блок - Строка,Соответствие Из КлючИЗначение - ID блока или сам блок образец - block
-// ВставитьПосле - Строка - ID блока, после которого необходимо встаивть новый - prev
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Notion
-Функция СоздатьБлок(Знач Токен, Знач Родитель, Знач Блок, Знач ВставитьПосле = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Родитель);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(ВставитьПосле);
- OPI_ПреобразованиеТипов.ПолучитьКоллекцию(Блок);
-
- Если ТипЗнч(Блок) = Тип("Массив") Тогда
- Блок = Блок[0];
- КонецЕсли;
-
- Заголовки = СоздатьЗаголовкиЗапроса(Токен);
- ПреобразоватьИД(Родитель);
-
- Если ТипЗнч(Блок) = Тип("Строка") Тогда
- ПреобразоватьИД(Блок);
- Блок = ВернутьБлок(Токен, Блок);
- КонецЕсли;
-
- МассивБлоков = Новый Массив;
- МассивБлоков.Добавить(Блок);
-
- Параметры = Новый Соответствие;
- Параметры.Вставить("children", МассивБлоков);
-
- Если ЗначениеЗаполнено(ВставитьПосле) Тогда
- Параметры.Вставить("after", ВставитьПосле);
- КонецЕсли;
-
- URL = "https://api.notion.com/v1/blocks/" + Родитель + "/children";
- Ответ = OPI_ЗапросыHTTP.PatchСТелом(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Вернуть блок
-// Возвращает структуру блока по ID
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// ИДБлока - Строка - ID блока - block
-// ТолькоОснова - Булево - Истина > служебные поля удаляются, остается только сам блок - core
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Notion
-Функция ВернутьБлок(Знач Токен, Знач ИДБлока, Знач ТолькоОснова = Истина) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(ИДБлока);
- OPI_ПреобразованиеТипов.ПолучитьБулево(ТолькоОснова);
-
- ПреобразоватьИД(ИДБлока);
-
- Заголовки = СоздатьЗаголовкиЗапроса(Токен);
- Ответ = OPI_ЗапросыHTTP.Get("https://api.notion.com/v1/blocks/" + ИДБлока, , Заголовки);
-
- Если ТолькоОснова Тогда
- УдалитьЛишниеПоляБлока(Ответ);
- КонецЕсли;
-
- Возврат Ответ;
-
-КонецФункции
-
-// Вернуть дочерние блоки
-// Созвращает список дочерних блоков блока-родителя
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// ИДБлока - Строка - ID блока родителя - block
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Notion
-Функция ВернутьДочерниеБлоки(Знач Токен, Знач ИДБлока) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(ИДБлока);
-
- ПреобразоватьИД(ИДБлока);
-
- Заголовки = СоздатьЗаголовкиЗапроса(Токен);
- Ответ = OPI_ЗапросыHTTP.Get("https://api.notion.com/v1/blocks/" + ИДБлока + "/children", , Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Удалить блок
-// Удаляет блок по ID
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// ИДБлока - Строка - ID блока - block
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Notion
-Функция УдалитьБлок(Знач Токен, Знач ИДБлока) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(ИДБлока);
-
- ПреобразоватьИД(ИДБлока);
-
- Заголовки = СоздатьЗаголовкиЗапроса(Токен);
- Ответ = OPI_ЗапросыHTTP.Delete("https://api.notion.com/v1/blocks/" + ИДБлока, , Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область Пользователи
-
-// Список пользователей
-// Возвращает список пользователей рабочего пространства
-//
-// Параметры:
-// Токен - Строка - Токен - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Notion
-Функция СписокПользователей(Знач Токен) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
-
- Заголовки = СоздатьЗаголовкиЗапроса(Токен);
- Ответ = OPI_ЗапросыHTTP.Get("https://api.notion.com/v1/users", , Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить данные пользователя
-// Получает данные пользователя по ID
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// ИДПользователя - Строка - ID целевого пользователя - user
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Notion
-Функция ПолучитьДанныеПользователя(Знач Токен, Знач ИДПользователя) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(ИДПользователя);
-
- ПреобразоватьИД(ИДПользователя);
-
- Заголовки = СоздатьЗаголовкиЗапроса(Токен);
- Ответ = OPI_ЗапросыHTTP.Get("https://api.notion.com/v1/users/" + ИДПользователя, , Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-#КонецОбласти
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-Функция СоздатьЗаголовкиЗапроса(Знач Токен)
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
-
- Заголовки = Новый Соответствие;
- Заголовки.Вставить("Authorization" , "Bearer " + Токен);
- Заголовки.Вставить("Notion-Version", "2022-06-28");
-
- Возврат Заголовки;
-
-КонецФункции
-
-Процедура ПреобразоватьИД(Идентификатор)
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Идентификатор);
-
- Идентификатор = СтрЗаменить(Идентификатор, "-", "");
-
-КонецПроцедуры
-
-Процедура ДобавитьРодителяСтраницы(Знач Родитель, Знач РодительБаза, ОсновнаяСтруктура)
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(РодительБаза);
-
- ПреобразоватьИД(Родитель);
-
- ПолеИдентификатора = ?(РодительБаза, "database_id", "page_id");
- СтруктураРодителя = Новый Структура(ПолеИдентификатора, Родитель);
-
- ОсновнаяСтруктура.Вставить("parent", СтруктураРодителя);
-
-КонецПроцедуры
-
-Процедура ДобавитьРодителяБазы(Знач Родитель, Знач РодительБаза, ОсновнаяСтруктура)
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(РодительБаза);
-
- ПреобразоватьИД(Родитель);
-
- ПолеИдентификатора = ?(РодительБаза, "database_id", "page_id");
-
- СтруктураРодителя = Новый Структура();
- СтруктураРодителя.Вставить("type" , ПолеИдентификатора);
- СтруктураРодителя.Вставить(ПолеИдентификатора, Родитель);
-
- ОсновнаяСтруктура.Вставить("parent", СтруктураРодителя);
-
-КонецПроцедуры
-
-Процедура ДобавитьЗаголовокСтраницы(Знач Заголовок, ОсновнаяСтруктура)
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Заголовок);
-
- ПодчиненнаяСтруктура = Новый Структура;
- СтруктураДанных = Новый Структура;
- СтруктураТекста = Новый Структура;
- МассивДанных = Новый Массив;
- Title = "title";
-
- СтруктураТекста.Вставить("content", Заголовок);
- СтруктураТекста.Вставить("link" , Неопределено);
-
- СтруктураДанных.Вставить("text", СтруктураТекста);
- СтруктураДанных.Вставить("type", "text");
-
- МассивДанных.Добавить(СтруктураДанных);
-
- ПодчиненнаяСтруктура.Вставить("id" , Title);
- ПодчиненнаяСтруктура.Вставить("type" , Title);
- ПодчиненнаяСтруктура.Вставить(Title , МассивДанных);
-
- ОсновнаяСтруктура.Вставить(Title, ПодчиненнаяСтруктура);
-
-КонецПроцедуры
-
-Процедура ДобавитьЗаголовокБазы(Знач Заголовок, ОсновнаяСтруктура)
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Заголовок);
-
- Заголовок = ПреобразоватьЗаголовок(Заголовок);
- ОсновнаяСтруктура.Вставить("title", Заголовок["title"]);
-
-КонецПроцедуры
-
-Процедура ДобавитьОписаниеБазы(Знач Описание, ОсновнаяСтруктура)
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Описание);
-
- Заголовок = ПреобразоватьЗаголовок(Описание);
- ОсновнаяСтруктура.Вставить("description", Заголовок["title"]);
-
-КонецПроцедуры
-
-Процедура ДобавитьСвойстваБазы(Знач Свойства, ОсновнаяСтруктура)
-
- Если Свойства.Количество() = 0 Тогда
- ОсновнаяСтруктура.Вставить("properties", Новый Структура);
- Возврат;
- КонецЕсли;
-
- СоответствиеПараметров = Новый Соответствие;
-
- Для Каждого Свойство Из Свойства Цикл
-
- Если ТипЗнч(Свойство.Значение) = Тип("Строка") Тогда
-
- СоответствиеПараметров.Вставить(Свойство.Ключ, Новый Структура(Свойство.Значение, Новый Структура));
-
- ИначеЕсли ТипЗнч(Свойство.Значение) = Тип("Структура")
- Или ТипЗнч(Свойство.Значение) = Тип("Соответствие") Тогда
-
- ВыборЗначения = СформироватьЗначенияВыбора(Свойство.Значение);
- СоответствиеПараметров.Вставить(Свойство.Ключ, Новый Структура("select", ВыборЗначения));
-
- Иначе
-
- СоответствиеПараметров.Вставить(Свойство.Ключ, Свойство.Значение);
-
- КонецЕсли;
-
- КонецЦикла;
-
- ОсновнаяСтруктура.Вставить("properties", СоответствиеПараметров);
-
-КонецПроцедуры
-
-Функция СформироватьЗначенияВыбора(Знач СтруктураВариантов)
-
- МассивВариантов = Новый Массив;
-
- Для Каждого Вариант Из СтруктураВариантов Цикл
-
- СоответствиеВарианта = Новый Соответствие;
- СоответствиеВарианта.Вставить("name" , Вариант.Ключ);
- СоответствиеВарианта.Вставить("color", Вариант.Значение);
-
- МассивВариантов.Добавить(СоответствиеВарианта);
-
- КонецЦикла;
-
- Возврат Новый Структура("options", МассивВариантов);
-
-КонецФункции
-
-Функция ЗаполнитьДанныеПоСхеме(Знач Схема, Знач Данные, Знач Токен, Знач ЭтоБаза = Истина)
-
- Если ЭтоБаза Тогда
- ДанныеСхемы = ПолучитьБазуДанных(Токен, Схема);
- Иначе
- ДанныеСхемы = ПолучитьСтраницу(Токен, Схема);
- КонецЕсли;
-
- ПоляБазы = ДанныеСхемы["properties"];
- Свойства = Новый Соответствие;
-
- Если ЗначениеЗаполнено(ПоляБазы) Тогда
-
- Для Каждого Поле Из ПоляБазы Цикл
-
- ДанныеПоля = Поле.Значение;
- ТипПоля = ДанныеПоля["type"];
-
- ЗаполняемыеДанные = Данные.Получить(Поле.Ключ);
-
- Если ЗаполняемыеДанные = Неопределено Тогда
- Продолжить;
- КонецЕсли;
-
- ПреобразованныеДанные = ПреобразоватьЗначениеПоТипу(ТипПоля, ЗаполняемыеДанные);
-
- Если ПреобразованныеДанные = Неопределено Тогда
- Продолжить;
- КонецЕсли;
-
- Свойства.Вставить(ДанныеПоля["id"], ПреобразованныеДанные);
-
- КонецЦикла;
-
- КонецЕсли;
-
- Возврат Свойства;
-
-КонецФункции
-
-Процедура УдалитьЛишниеПоляБлока(Знач Блок)
-
- МассивЛишних = Новый Массив;
- МассивЛишних.Добавить("request_id");
- МассивЛишних.Добавить("archived");
- МассивЛишних.Добавить("created_by");
- МассивЛишних.Добавить("last_edited_time");
- МассивЛишних.Добавить("created_time");
- МассивЛишних.Добавить("has_children");
- МассивЛишних.Добавить("parrent");
- МассивЛишних.Добавить("last_edited_by");
- МассивЛишних.Добавить("id");
-
- Для Каждого Поле Из МассивЛишних Цикл
-
- Если Не Блок.Получить(Поле) = Неопределено Тогда
- Блок.Удалить(Поле);
- КонецЕсли;
-
- КонецЦикла;
-
-КонецПроцедуры
-
-#Область ПреобразованиеТипов
-
-Функция ПреобразоватьЗначениеПоТипу(Знач Тип, Знач Значение)
-
- Если Тип = "title" Тогда
- Возврат ПреобразоватьЗаголовок(Значение);
- ИначеЕсли Тип = "rich_text" Тогда
- Возврат ПреобразоватьТекст(Значение);
- ИначеЕсли Тип = "number" Тогда
- Возврат ПреобразоватьЧисло(Значение);
- ИначеЕсли Тип = "select" Тогда
- Возврат ПреобразоватьВариантВыбора(Значение);
- ИначеЕсли Тип = "multi_select" Тогда
- Возврат ПреобразоватьМножественныйВыбор(Значение);
- ИначеЕсли Тип = "status" Тогда
- Возврат ПреобразоватьСтатус(Значение);
- ИначеЕсли Тип = "date" Тогда
- Возврат ПреобразоватьДату(Значение);
- ИначеЕсли Тип = "relation" Тогда
- Возврат ПреобразоватьСвязь(Значение);
- ИначеЕсли Тип = "people" Тогда
- Возврат ПреобразоватьПользователей(Значение);
- ИначеЕсли Тип = "files" Тогда
- Возврат ПреобразоватьФайлы(Значение);
- ИначеЕсли Тип = "checkbox" Тогда
- Возврат ПреобразоватьБулево(Значение);
- ИначеЕсли Тип = "url" Тогда
- Возврат ПреобразоватьСсылку(Значение);
- ИначеЕсли Тип = "email" Тогда
- Возврат ПреобразоватьПочту(Значение);
- ИначеЕсли Тип = "phone_number" Тогда
- Возврат ПреобразоватьТелефон(Значение);
- Иначе
- Возврат Неопределено;
- КонецЕсли;
-
-КонецФункции
-
-Функция ПреобразоватьЗаголовок(Знач Заголовок)
-
- СтруктураДанных = Новый Структура;
- СтруктураТекста = Новый Структура;
- МассивДанных = Новый Массив;
-
- СтруктураТекста.Вставить("content", Заголовок);
- СтруктураТекста.Вставить("link" , Неопределено);
-
- СтруктураДанных.Вставить("type", "text");
- СтруктураДанных.Вставить("text", СтруктураТекста);
-
- МассивДанных.Добавить(СтруктураДанных);
-
- Возврат Новый Структура("title", МассивДанных);
-
-КонецФункции
-
-Функция ПреобразоватьТекст(Знач Текст)
-
- МассивТекста = Новый Массив;
- СтруктураТекста = Новый Структура;
-
- СтруктураТекста.Вставить("type", "text");
- СтруктураТекста.Вставить("text", Новый Структура("content", Текст));
-
- МассивТекста.Добавить(СтруктураТекста);
-
- Возврат Новый Структура("rich_text", МассивТекста);
-
-КонецФункции
-
-Функция ПреобразоватьЧисло(Знач Число)
- Возврат Новый Структура("number", Число);
-КонецФункции
-
-Функция ПреобразоватьВариантВыбора(Знач Вариант)
-
- СтруктураВыбора = Новый Структура;
- СтруктураВыбора.Вставить("select", Новый Структура("name", Вариант));
-
- Возврат СтруктураВыбора;
-
-КонецФункции
-
-Функция ПреобразоватьСтатус(Знач Статус)
-
- СтруктураСтатуса = Новый Структура;
- СтруктураСтатуса.Вставить("status", Новый Структура("name", Статус));
-
- Возврат СтруктураСтатуса;
-
-КонецФункции
-
-Функция ПреобразоватьМножественныйВыбор(Знач МассивВариантов)
-
- МассивВариантовВыбора = Новый Массив;
-
- Для Каждого Вариант Из МассивВариантов Цикл
- МассивВариантовВыбора.Добавить(Новый Структура("name", Вариант));
- КонецЦикла;
-
- Возврат Новый Структура("multi_select", МассивВариантовВыбора);
-
-КонецФункции
-
-Функция ПреобразоватьДату(Знач Дата)
-
- СтруктураДаты = Новый Структура;
-
- Если Дата = НачалоДня(Дата) Тогда
- ФорматДаты = "ДФ=yyyy-MM-dd";
- Иначе
- ФорматДаты = "ДФ=yyyy-MM-ddThh:mm:ssZ";
- КонецЕсли;
-
- Дата = Формат(Дата, ФорматДаты);
- СтруктураДаты.Вставить("start", Дата);
-
- Возврат Новый Структура("date", СтруктураДаты);
-
-КонецФункции
-
-Функция ПреобразоватьСвязь(Знач Идентификатор)
-
- МассивСвязи = Новый Массив;
- МассивСвязи.Добавить(Новый Структура("id", Идентификатор));
-
- Возврат Новый Структура("relation", МассивСвязи);
-
-КонецФункции
-
-Функция ПреобразоватьПользователей(Знач МассивИД)
-
- Если Не ТипЗнч(МассивИД) = Тип("Массив") Тогда
- МассивИД_ = Новый Массив;
- МассивИД_.Добавить(МассивИД);
- МассивИД = МассивИД_;
- КонецЕсли;
-
- МассивПользователей = Новый Массив;
-
- Для Каждого Идентификатор Из МассивИД Цикл
-
- СтруктураПользователя = Новый Структура;
- СтруктураПользователя.Вставить("object", "user");
- СтруктураПользователя.Вставить("id" , Идентификатор);
- МассивПользователей.Добавить(СтруктураПользователя);
-
- КонецЦикла;
-
- Возврат Новый Структура("people", МассивПользователей);
-
-КонецФункции
-
-Функция ПреобразоватьФайлы(Знач СоответствиеФайлов)
-
- МассивФайлов = Новый Массив;
-
- Для Каждого Файл Из СоответствиеФайлов Цикл
-
- СтруктураФайла = Новый Структура;
- СтруктураФайла.Вставить("type" , "external");
- СтруктураФайла.Вставить("name" , Файл.Ключ);
- СтруктураФайла.Вставить("external", Новый Структура("url", Файл.Значение));
-
- МассивФайлов.Добавить(СтруктураФайла);
-
- КонецЦикла;
-
- Возврат Новый Структура("files", МассивФайлов);
-
-КонецФункции
-
-Функция ПреобразоватьБулево(Знач Булево)
- Возврат Новый Структура("checkbox", Булево);
-КонецФункции
-
-Функция ПреобразоватьСсылку(Знач URL)
- Возврат Новый Структура("url", URL);
-КонецФункции
-
-Функция ПреобразоватьПочту(Знач Почта)
- Возврат Новый Структура("email", Почта);
-КонецФункции
-
-Функция ПреобразоватьТелефон(Знач Телефон)
- Возврат Новый Структура("phone_number", Телефон);
-КонецФункции
-
-#КонецОбласти
-
-#КонецОбласти
diff --git a/XML/CommonModules/OPI_Ollama.xml b/XML/CommonModules/OPI_Ollama.xml
deleted file mode 100644
index fae8f33985..0000000000
--- a/XML/CommonModules/OPI_Ollama.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- OPI_Ollama
-
-
- ru
- Ollama (ОПИ)
-
-
- Модуль для работы с Ollama из набора ОПИ
- false
- false
- true
- true
- true
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git a/XML/CommonModules/OPI_Ollama/Ext/Module.bsl b/XML/CommonModules/OPI_Ollama/Ext/Module.bsl
deleted file mode 100644
index 8063f4f2d7..0000000000
--- a/XML/CommonModules/OPI_Ollama/Ext/Module.bsl
+++ /dev/null
@@ -1,731 +0,0 @@
-// OneScript: ./OInt/core/Modules/OPI_Ollama.os
-// Lib: Ollama
-// CLI: ollama
-
-// MIT License
-
-// Copyright (c) 2023-2025 Anton Tsitavets
-
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-
-// The above copyright notice and this permission notice shall be included in all
-// copies or substantial portions of the Software.
-
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-// SOFTWARE.
-
-// https://github.com/Bayselonarrend/OpenIntegrations
-
-// BSLLS:Typo-off
-// BSLLS:LatinAndCyrillicSymbolInWord-off
-// BSLLS:IncorrectLineBreak-off
-// BSLLS:NumberOfOptionalParams-off
-// BSLLS:UsingServiceTag-off
-// BSLLS:LineLength-off
-// BSLLS:UsingSynchronousCalls-off
-// BSLLS:MagicNumber-off
-
-//@skip-check module-structure-top-region
-//@skip-check module-structure-method-in-regions
-//@skip-check wrong-string-literal-content
-//@skip-check method-too-many-params
-//@skip-check constructor-function-return-section
-//@skip-check doc-comment-collection-item-type
-
-#Область ПрограммныйИнтерфейс
-
-#Область ОбработкаЗапросов
-
-// Получить версию
-// Получает версию Ollama
-//
-// Примечание:
-// Метод в документации API: [Version](@github.com/ollama/ollama/blob/main/docs/api.md#version)
-//
-// Параметры:
-// URL - Строка - URL сервера Ollama - url
-// ДопЗаголовки - Соответствие Из КлючИЗначение - Доп заголовки запроса, если необходимо - headers
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат обработки
-Функция ПолучитьВерсию(Знач URL, Знач ДопЗаголовки = "") Экспорт
-
- ДополнитьURL(URL, "api/version");
-
- ОбработатьЗаголовки(ДопЗаголовки);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, , ДопЗаголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить ответ
-// Генерирует ответ по заданному текстовому запросу
-//
-// Примечание:
-// Метод в документации API: [Generate a completion](@github.com/ollama/ollama/blob/main/docs/api.md#generate-a-completion)
-//
-// Параметры:
-// URL - Строка - URL сервера Ollama - url
-// Модель - Строка - Имя модели - model
-// Вопрос - Строка - Текст запроса - prompt
-// ДопПараметры - Структура Из КлючИЗначение - Доп. параметры. См. ПолучитьСтруктуруПараметровЗапроса - options
-// ДопЗаголовки - Соответствие Из КлючИЗначение - Доп заголовки запроса, если необходимо - headers
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат обработки
-Функция ПолучитьОтвет(Знач URL, Знач Модель, Знач Вопрос, Знач ДопПараметры = "", Знач ДопЗаголовки = "") Экспорт
-
- ДополнитьURL(URL, "api/generate");
-
- Параметры = Новый Структура;
- Параметры.Вставить("suffix", "");
-
- OPI_Инструменты.ДобавитьПоле("model" , Модель, "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("prompt", Вопрос, "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("stream", Ложь , "Булево", Параметры);
-
- ОбработатьПараметры(Параметры, ДопПараметры);
- ОбработатьЗаголовки(ДопЗаголовки);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, ДопЗаголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить ответ в контексте
-// Получает очередной ответ от модели в соответствии с историей сообщений
-//
-// Примечание:
-// Метод в документации API: [Generate a chat completion](@github.com/ollama/ollama/blob/main/docs/api.md#generate-a-chat-completion)
-//
-// Параметры:
-// URL - Строка - URL сервера Ollama - url
-// Модель - Строка - Имя модели - model
-// Сообщения - Массив Из Структура - История сообщений. См. ПолучитьСтруктуруСообщенияКонтекста - msgs
-// ДопПараметры - Структура Из КлючИЗначение - Доп. параметры. См. ПолучитьСтруктуруПараметровЗапроса - options
-// ДопЗаголовки - Соответствие Из КлючИЗначение - Доп заголовки запроса, если необходимо - headers
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат обработки
-Функция ПолучитьОтветВКонтексте(Знач URL, Знач Модель, Знач Сообщения, Знач ДопПараметры = "", Знач ДопЗаголовки = "") Экспорт
-
- ДополнитьURL(URL, "api/chat");
-
- Параметры = Новый Структура;
-
- OPI_Инструменты.ДобавитьПоле("model" , Модель , "Строка" , Параметры);
- OPI_Инструменты.ДобавитьПоле("messages", Сообщения, "Коллекция", Параметры);
- OPI_Инструменты.ДобавитьПоле("stream" , Ложь , "Булево" , Параметры);
-
- ОбработатьПараметры(Параметры, ДопПараметры);
- ОбработатьЗаголовки(ДопЗаголовки);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, ДопЗаголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить представления
-// Получает представления (embeddings) для заданных вводных
-//
-// Примечание:
-// Метод в документации API: [Generate Embeddings](@github.com/ollama/ollama/blob/main/docs/api.md#generate-embeddings)
-//
-// Параметры:
-// URL - Строка - URL сервера Ollama - url
-// Модель - Строка - Имя модели - model
-// Вопрос - Массив Из Строка - Строка или массив строк запросов - input
-// ДопПараметры - Структура Из КлючИЗначение - Доп. параметры. См. ПолучитьСтруктуруПараметровПредставлений - options
-// ДопЗаголовки - Соответствие Из КлючИЗначение - Доп заголовки запроса, если необходимо - headers
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат обработки
-Функция ПолучитьПредставления(Знач URL, Знач Модель, Знач Вопрос, Знач ДопПараметры = "", Знач ДопЗаголовки = "") Экспорт
-
- ДополнитьURL(URL, "api/embed");
-
- Параметры = Новый Структура;
-
- OPI_Инструменты.ДобавитьПоле("model", Модель, "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("input", Вопрос, "Строка", Параметры);
-
- ОбработатьПараметры(Параметры, ДопПараметры);
- ОбработатьЗаголовки(ДопЗаголовки);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, ДопЗаголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить структуру параметров запроса
-// Получает структуру дополнительных параметров для обработки запроса
-//
-// Параметры:
-// Пустая - Булево - Истина > структура с пустыми значениями, Ложь > в значениях будут описания полей - empty
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - Структура полей
-Функция ПолучитьСтруктуруПараметровЗапроса(Знач Пустая = Ложь) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьБулево(Пустая);
-
- СтруктураПолей = Новый Структура;
- СтруктураПолей.Вставить("format" , "<формат, в котором возвращается ответ: json или схема JSON>");
- СтруктураПолей.Вставить("options" , "<дополнительные параметры модели, перечисленные в документации к Modelfile>");
- СтруктураПолей.Вставить("system" , "<системное сообщение (переопределяет то, что определено в Modelfile)>");
- СтруктураПолей.Вставить("template" , "<шаблон промпта (переопределяет то, что определено в Modelfile)>");
- СтруктураПолей.Вставить("raw" , "<истина > откюлчить форматирование промпта>");
- СтруктураПолей.Вставить("keep_alive", "<как долго модель будет оставаться загруженной в память после запроса>");
- СтруктураПолей.Вставить("suffix" , "<текст после ответа модели>");
- СтруктураПолей.Вставить("images" , "<список картинок в формате Base64 (для многомодальных моделей, вроде llava)>");
-
- Если Пустая Тогда
- СтруктураПолей = OPI_Инструменты.ОчиститьКоллекциюРекурсивно(СтруктураПолей);
- КонецЕсли;
-
- //@skip-check constructor-function-return-section
- Возврат СтруктураПолей;
-
-КонецФункции
-
-// Получить структуру параметров представлений
-// Получает структуру дополнительных параметров для обработки запросов получения представлений
-//
-// Параметры:
-// Пустая - Булево - Истина > структура с пустыми значениями, Ложь > в значениях будут описания полей - empty
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - Структура полей
-Функция ПолучитьСтруктуруПараметровПредставлений(Знач Пустая = Ложь) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьБулево(Пустая);
-
- СтруктураПолей = Новый Структура;
- СтруктураПолей.Вставить("options" , "<дополнительные параметры модели, перечисленные в документации к Modelfile>");
- СтруктураПолей.Вставить("keep_alive", "<как долго модель будет оставаться загруженной в память после запроса>");
- СтруктураПолей.Вставить("truncate" , "<обрезает конец каждого ответа, чтобы уложиться в длину контекста. Возвращает ошибку, если false и длина превышена>");
-
- Если Пустая Тогда
- СтруктураПолей = OPI_Инструменты.ОчиститьКоллекциюРекурсивно(СтруктураПолей);
- КонецЕсли;
-
- //@skip-check constructor-function-return-section
- Возврат СтруктураПолей;
-
-КонецФункции
-
-// Получить структуру параметров в контексте
-// Получает структуру дополнительных параметров для обработки запроса в контексте
-//
-// Параметры:
-// Пустая - Булево - Истина > структура с пустыми значениями, Ложь > в значениях будут описания полей - empty
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - Структура полей
-Функция ПолучитьСтруктуруПараметровВКонтексте(Знач Пустая = Ложь) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьБулево(Пустая);
-
- СтруктураПолей = Новый Структура;
- СтруктураПолей.Вставить("format" , "<формат, в котором возвращается ответ: json или схема JSON>");
- СтруктураПолей.Вставить("options" , "<дополнительные параметры модели, перечисленные в документации к Modelfile>");
- СтруктураПолей.Вставить("keep_alive", "<как долго модель будет оставаться загруженной в память после запроса>");
- СтруктураПолей.Вставить("tools" , "<список инструментов в формате JSON (для моделей, которые это поддерживают)>");
-
- Если Пустая Тогда
- СтруктураПолей = OPI_Инструменты.ОчиститьКоллекциюРекурсивно(СтруктураПолей);
- КонецЕсли;
-
- //@skip-check constructor-function-return-section
- Возврат СтруктураПолей;
-
-КонецФункции
-
-// Получить структуру сообщения контекста
-// Получает структуру сообщения для списка сообщений запроса в контексте
-//
-// Параметры:
-// Роль - Строка - Источник сообщения: system, user, assistant, tool - role
-// Текст - Строка - Текст сообщения - text
-// Картинки - Массив Из Строка - Список картинок в формате Base64 (для многомодальных моделей, вроде llava) - images
-// Инструменты - Массив Из Строка - Список инструментов в формате JSON, которые модель должна использовать - tools
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - Структура полей
-Функция ПолучитьСтруктуруСообщенияКонтекста(Знач Роль, Знач Текст, Знач Картинки = "", Знач Инструменты = "") Экспорт
-
- СтруктураПолей = Новый Структура;
-
- OPI_Инструменты.ДобавитьПоле("role" , Роль , "Строка" , СтруктураПолей);
- OPI_Инструменты.ДобавитьПоле("content" , Текст , "Строка" , СтруктураПолей);
- OPI_Инструменты.ДобавитьПоле("images" , Картинки , "Коллекция", СтруктураПолей);
- OPI_Инструменты.ДобавитьПоле("tool_calls", Инструменты, "Коллекция", СтруктураПолей);
-
- Возврат СтруктураПолей;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область РаботаСМоделями
-
-// Получить список моделей
-// Получает список локальных моделей
-//
-// Примечание:
-// Метод в документации API: [List Local Models](@github.com/ollama/ollama/blob/main/docs/api.md#list-local-models)
-//
-// Параметры:
-// URL - Строка - URL сервера Ollama - url
-// ДопЗаголовки - Соответствие Из КлючИЗначение - Доп заголовки запроса, если необходимо - headers
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат обработки
-Функция ПолучитьСписокМоделей(Знач URL, Знач ДопЗаголовки = "") Экспорт
-
- ДополнитьURL(URL, "api/tags");
-
- ОбработатьЗаголовки(ДопЗаголовки);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, , ДопЗаголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить список запущенных моделей
-// Получает список запущенных моделей
-//
-// Примечание:
-// Метод в документации API: [List Running Models](@github.com/ollama/ollama/blob/main/docs/api.md#list-running-models)
-//
-// Параметры:
-// URL - Строка - URL сервера Ollama - url
-// ДопЗаголовки - Соответствие Из КлючИЗначение - Доп заголовки запроса, если необходимо - headers
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат обработки
-Функция ПолучитьСписокЗапущенныхМоделей(Знач URL, Знач ДопЗаголовки = "") Экспорт
-
- ДополнитьURL(URL, "api/ps");
-
- ОбработатьЗаголовки(ДопЗаголовки);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, , ДопЗаголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить информацию о модели
-// Получает информацию о выбранной модели
-//
-// Примечание:
-// Метод в документации API: [Show Model Information](@github.com/ollama/ollama/blob/main/docs/api.md#show-model-information)
-//
-// Параметры:
-// URL - Строка - URL сервера Ollama - url
-// Модель - Строка - Имя модели - model
-// Подробно - Булево - Возврат полной информации о модели - verbose
-// ДопЗаголовки - Соответствие Из КлючИЗначение - Доп заголовки запроса, если необходимо - headers
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат обработки
-Функция ПолучитьИнформациюОМодели(Знач URL, Знач Модель, Знач Подробно = Истина, Знач ДопЗаголовки = "") Экспорт
-
- ДополнитьURL(URL, "api/show");
-
- Параметры = Новый Структура;
-
- OPI_Инструменты.ДобавитьПоле("model" , Модель , "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("verbose", Подробно, "Булево", Параметры);
-
- ОбработатьЗаголовки(ДопЗаголовки);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, ДопЗаголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Создать модель
-// Создает новую модель с заданными настройками
-//
-// Примечание:
-// Метод в документации API: [Create a Model](@github.com/ollama/ollama/blob/main/docs/api.md#create-a-model)
-//
-// Параметры:
-// URL - Строка - URL сервера Ollama - url
-// Модель - Строка - Имя модели - model
-// Настройки - Структура Из КлючИЗначение - Настройки модели. См. ПолучитьСтруктуруНастроекМодели - settings
-// ДопЗаголовки - Соответствие Из КлючИЗначение - Доп заголовки запроса, если необходимо - headers
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат обработки
-Функция СоздатьМодель(Знач URL, Знач Модель, Знач Настройки, Знач ДопЗаголовки = "") Экспорт
-
- ДополнитьURL(URL, "api/create");
-
- Параметры = Новый Структура;
-
- OPI_Инструменты.ДобавитьПоле("model" , Модель, "Строка" , Параметры);
- OPI_Инструменты.ДобавитьПоле("stream", Ложь , "Булево" , Параметры);
-
- ОбработатьПараметры(Параметры, Настройки);
- ОбработатьЗаголовки(ДопЗаголовки);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, ДопЗаголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Копировать модель
-// Копирует существующую модель
-//
-// Примечание:
-// Метод в документации API: [Copy a Model](@github.com/ollama/ollama/blob/main/docs/api.md#copy-a-model)
-//
-// Параметры:
-// URL - Строка - URL сервера Ollama - url
-// Модель - Строка - Имя существующей модели - model
-// Имя - Строка - Имя новой модели - name
-// ДопЗаголовки - Соответствие Из КлючИЗначение - Доп заголовки запроса, если необходимо - headers
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат обработки
-Функция КопироватьМодель(Знач URL, Знач Модель, Знач Имя, Знач ДопЗаголовки = "") Экспорт
-
- ДополнитьURL(URL, "api/copy");
-
- Параметры = Новый Структура;
-
- OPI_Инструменты.ДобавитьПоле("source" , Модель, "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("destination", Имя , "Строка", Параметры);
-
- ОбработатьЗаголовки(ДопЗаголовки);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, ДопЗаголовки, , Истина);
- Ответ = Новый Структура("status_code", Ответ.КодСостояния);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Удалить модель
-// Удаляет существующую модель
-//
-// Примечание:
-// Метод в документации API: [Delete a Model](@github.com/ollama/ollama/blob/main/docs/api.md#delete-a-model)
-//
-// Параметры:
-// URL - Строка - URL сервера Ollama - url
-// Модель - Строка - Имя модели - model
-// ДопЗаголовки - Соответствие Из КлючИЗначение - Доп заголовки запроса, если необходимо - headers
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат обработки
-Функция УдалитьМодель(Знач URL, Знач Модель, Знач ДопЗаголовки = "") Экспорт
-
- ДополнитьURL(URL, "api/delete");
-
- Параметры = Новый Структура;
-
- OPI_Инструменты.ДобавитьПоле("model" , Модель, "Строка", Параметры);
-
- ОбработатьЗаголовки(ДопЗаголовки);
-
- Ответ = OPI_ЗапросыHTTP.DeleteСТелом(URL, Параметры, ДопЗаголовки, , Истина);
- Ответ = Новый Структура("status_code", Ответ.КодСостояния);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Загрузить модель в память
-// Загружает выбранную модель в оперативную память
-//
-// Примечание:
-// Метод в документации API: [Load a model](@github.com/ollama/ollama/blob/main/docs/api.md#load-a-model)
-//
-// Параметры:
-// URL - Строка - URL сервера Ollama - url
-// Модель - Строка - Имя модели - model
-// Период - Число - Время удержания модели в памяти в секундах - keep
-// ДопЗаголовки - Соответствие Из КлючИЗначение - Доп заголовки запроса, если необходимо - headers
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат обработки
-Функция ЗагрузитьМодельВПамять(Знач URL, Знач Модель, Знач Период = 300, Знач ДопЗаголовки = "") Экспорт
-
- ДополнитьURL(URL, "api/generate");
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("model" , Модель, "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("keep_alive", Период, "Число" , Параметры);
-
- ОбработатьЗаголовки(ДопЗаголовки);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, ДопЗаголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Выгрузить модель из памяти
-// Выгружает выбранную модель из памяти
-//
-// Примечание:
-// Метод в документации API: [Unload a model](@github.com/ollama/ollama/blob/main/docs/api.md#unload-a-model)
-//
-// Параметры:
-// URL - Строка - URL сервера Ollama - url
-// Модель - Строка - Имя модели - model
-// ДопЗаголовки - Соответствие Из КлючИЗначение - Доп заголовки запроса, если необходимо - headers
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат обработки
-Функция ВыгрузитьМодельИзПамяти(Знач URL, Знач Модель, Знач ДопЗаголовки = "") Экспорт
-
- ДополнитьURL(URL, "api/generate");
-
- Параметры = Новый Структура;
- Параметры.Вставить("keep_alive", 0);
-
- OPI_Инструменты.ДобавитьПоле("model", Модель, "Строка", Параметры);
-
- ОбработатьЗаголовки(ДопЗаголовки);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, ДопЗаголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Отправить модель
-// Загружает модель в библиотеку моделей
-//
-// Примечание:
-// Метод в документации API: [Push a Model](@github.com/ollama/ollama/blob/main/docs/api.md#push-a-model)
-// Имя модели должно быть в формате /:^
-// Требуется регистрация на ollama.ai и добавление открытого ключа.
-//
-// Параметры:
-// URL - Строка - URL сервера Ollama - url
-// Модель - Строка - Имя модели - model
-// Небезопасно - Булево - Разрешает незащищенное соединение с библиотекой - insecure
-// ДопЗаголовки - Соответствие Из КлючИЗначение - Доп заголовки запроса, если необходимо - headers
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат обработки
-Функция ОтправитьМодель(Знач URL, Знач Модель, Знач Небезопасно = Ложь, Знач ДопЗаголовки = "") Экспорт
-
- ДополнитьURL(URL, "api/push");
-
- Параметры = Новый Структура;
-
- OPI_Инструменты.ДобавитьПоле("model" , Модель , "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("insecure", Небезопасно, "Булево", Параметры);
- OPI_Инструменты.ДобавитьПоле("stream" , Ложь , "Булево", Параметры);
-
- ОбработатьЗаголовки(ДопЗаголовки);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, ДопЗаголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Скачать модель
-// Скачивает модель из библиотеки
-//
-// Примечание:
-// Метод в документации API: [Pull a Model](@github.com/ollama/ollama/blob/main/docs/api.md#pull-a-model)
-//
-// Параметры:
-// URL - Строка - URL сервера Ollama - url
-// Модель - Строка - Имя модели - model
-// Небезопасно - Булево - Разрешает незащищенное соединение с библиотекой - insecure
-// ДопЗаголовки - Соответствие Из КлючИЗначение - Доп заголовки запроса, если необходимо - headers
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат обработки
-Функция СкачатьМодель(Знач URL, Знач Модель, Знач Небезопасно = Ложь, Знач ДопЗаголовки = "") Экспорт
-
- ДополнитьURL(URL, "api/pull");
-
- Параметры = Новый Структура;
-
- OPI_Инструменты.ДобавитьПоле("model" , Модель , "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("insecure", Небезопасно, "Булево", Параметры);
- OPI_Инструменты.ДобавитьПоле("stream" , Ложь , "Булево", Параметры);
-
- ОбработатьЗаголовки(ДопЗаголовки);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, ДопЗаголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить структуру настроек модели
-// Получает структуру настроек для создания новой модели
-//
-// Параметры:
-// Пустая - Булево - Истина > структура с пустыми значениями, Ложь > в значениях будут описания полей - empty
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - Структура полей
-Функция ПолучитьСтруктуруНастроекМодели(Знач Пустая = Ложь) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьБулево(Пустая);
-
- СтруктураПолей = Новый Структура;
- СтруктураПолей.Вставить("from" , "<имя существующей модели, из которой будет создана новая>");
- СтруктураПолей.Вставить("files" , "<список имен файлов или SHA256 блобов, из которых будет создана модель>");
- СтруктураПолей.Вставить("adapters" , "<список имен файлов или SHA256 блобов для LORA адаптеров>");
- СтруктураПолей.Вставить("template" , "<шаблон промптов новой модели>");
- СтруктураПолей.Вставить("license" , "<строка или список строк текста лицензий для модели>");
- СтруктураПолей.Вставить("system" , "<строка с системным промптом для модели>");
- СтруктураПолей.Вставить("parameters", "<список параметров модели>");
- СтруктураПолей.Вставить("messages" , "<список объектов сообщений контекста>");
- СтруктураПолей.Вставить("quantize" , "<квантовать неквантованную (например, float16) модель>");
-
- Если Пустая Тогда
- СтруктураПолей = OPI_Инструменты.ОчиститьКоллекциюРекурсивно(СтруктураПолей);
- КонецЕсли;
-
- //@skip-check constructor-function-return-section
- Возврат СтруктураПолей;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область РаботаСBlob
-
-// Отправить BLOB
-// Отправляет двоичные данные на сервер Ollama
-//
-// Примечание:
-// Метод в документации API: [Push a Blob](@github.com/ollama/ollama/blob/main/docs/api.md#push-a-blob)
-//
-// Параметры:
-// URL - Строка - URL сервера Ollama - url
-// Данные - Строка, ДвоичныеДанные - Данные или путь к файлу - data
-// ДопЗаголовки - Соответствие Из КлючИЗначение - Доп заголовки запроса, если необходимо - headers
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат обработки
-Функция ОтправитьBlob(Знач URL, Знач Данные, Знач ДопЗаголовки = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Данные, Истина);
-
- ДополнитьURL(URL, "api/blobs/sha256:%1");
-
- Хеш = OPI_Криптография.Хеш(Данные, ХешФункция.SHA256);
- Хеш = нРег(ПолучитьHexСтрокуИзДвоичныхДанных(Хеш));
-
- URL = СтрШаблон(URL, Хеш);
-
- ОбработатьЗаголовки(ДопЗаголовки);
- Ответ = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать(URL)
- .УстановитьДвоичноеТело(Данные)
- .УстановитьЗаголовки(ДопЗаголовки)
- .ОбработатьЗапрос("POST")
- .ВернутьОтвет(Ложь, Истина);
-
- Ответ = Новый Структура("status_code,digest", Ответ.КодСостояния, Хеш);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Проверить BLOB
-// Проверяет существование BLOB по его SHA256 дайджесту
-//
-// Примечание:
-// Метод в документации API: [Check if a Blob Exists](@github.com/ollama/ollama/blob/main/docs/api.md#check-if-a-blob-exists)
-//
-// Параметры:
-// URL - Строка - URL сервера Ollama - url
-// SHA256 - Строка - SHA256 дайджест нужного BLOB - digest
-// ДопЗаголовки - Соответствие Из КлючИЗначение - Доп заголовки запроса, если необходимо - headers
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат обработки
-Функция ПроверитьBlob(Знач URL, Знач SHA256, Знач ДопЗаголовки = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(SHA256);
-
- ДополнитьURL(URL, "api/blobs/sha256:%1");
-
- URL = СтрШаблон(URL, SHA256);
-
- ОбработатьЗаголовки(ДопЗаголовки);
-
- Ответ = OPI_ЗапросыHTTP.Head(URL, , ДопЗаголовки, , Истина);
- Ответ = Новый Структура("status_code", Ответ.КодСостояния);
-
- Возврат Ответ;
-
-КонецФункции
-
-#КонецОбласти
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-Процедура ДополнитьURL(URL, Знач Путь)
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(URL);
-
- URL = ?(СтрЗаканчиваетсяНа(URL, "/"), URL, URL + "/");
- URL = URL + Путь;
-
-КонецПроцедуры
-
-Процедура ОбработатьПараметры(Параметры, Знач ДопПараметры)
-
- Если Не ЗначениеЗаполнено(ДопПараметры) Тогда
- Возврат;
- КонецЕсли;
-
- ТекстОшибки = "Передана некорректная коллекция доп. параметров!";
- OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(ДопПараметры, ТекстОшибки);
-
- Для Каждого ДопПараметр Из ДопПараметры Цикл
- Параметры.Вставить(ДопПараметр.Ключ, ДопПараметр.Значение);
- КонецЦикла;
-
-КонецПроцедуры
-
-Процедура ОбработатьЗаголовки(ДопЗаголовки)
-
- Если Не ЗначениеЗаполнено(ДопЗаголовки) Тогда
- ДопЗаголовки = Новый Соответствие;
- Иначе
- ТекстОшибки = "Передана некорректная коллекция доп. заголовков!";
- OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(ДопЗаголовки, ТекстОшибки);
- КонецЕсли;
-
-КонецПроцедуры
-
-#КонецОбласти
diff --git a/XML/CommonModules/OPI_OpenAI.xml b/XML/CommonModules/OPI_OpenAI.xml
deleted file mode 100644
index 847d6af90f..0000000000
--- a/XML/CommonModules/OPI_OpenAI.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- OPI_OpenAI
-
-
- ru
- Open AI (ОПИ)
-
-
- Модуль для работы с OpenAI API из набора ОПИ
- false
- false
- true
- true
- true
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git a/XML/CommonModules/OPI_OpenAI/Ext/Module.bsl b/XML/CommonModules/OPI_OpenAI/Ext/Module.bsl
deleted file mode 100644
index 0a77710280..0000000000
--- a/XML/CommonModules/OPI_OpenAI/Ext/Module.bsl
+++ /dev/null
@@ -1,772 +0,0 @@
-// OneScript: ./OInt/core/Modules/OPI_OpenAI.os
-// Lib: OpenAI
-// CLI: openai
-
-// MIT License
-
-// Copyright (c) 2023-2025 Anton Tsitavets
-
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-
-// The above copyright notice and this permission notice shall be included in all
-// copies or substantial portions of the Software.
-
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-// SOFTWARE.
-
-// https://github.com/Bayselonarrend/OpenIntegrations
-
-// BSLLS:Typo-off
-// BSLLS:LatinAndCyrillicSymbolInWord-off
-// BSLLS:IncorrectLineBreak-off
-// BSLLS:NumberOfOptionalParams-off
-// BSLLS:UsingServiceTag-off
-// BSLLS:LineLength-off
-// BSLLS:UsingSynchronousCalls-off
-// BSLLS:MagicNumber-off
-
-//@skip-check module-structure-top-region
-//@skip-check module-structure-method-in-regions
-//@skip-check wrong-string-literal-content
-//@skip-check method-too-many-params
-//@skip-check constructor-function-return-section
-//@skip-check doc-comment-collection-item-type
-
-#Область ПрограммныйИнтерфейс
-
-#Область ОбработкаЗапросов
-
-// Получить ответ
-// Генерирует ответ по заданному текстовому запросу
-//
-// Примечание:
-// Метод в документации API: [Create chat completion](@platform.openai.com/docs/api-reference/chat/create)
-//
-// Параметры:
-// URL - Строка - URL сервера OpenAI - url
-// Токен - Строка - Токен авторизации OpenAI - token
-// Модель - Строка - Имя модели - model
-// Сообщения - Строка, Массив Из Строка - Сообщения разговора. См. ПолучитьСтруктуруСообщения - msgs
-// ДопПараметры - Структура Из КлючИЗначение - Доп. параметры запроса, если необходимо - options
-// ДопЗаголовки - Соответствие Из КлючИЗначение - Доп. заголовки запроса, если необходимо - headers
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат обработки
-Функция ПолучитьОтвет(Знач URL, Знач Токен, Знач Модель, Знач Сообщения, Знач ДопПараметры = "", Знач ДопЗаголовки = "") Экспорт
-
- ДополнитьURL(URL, "v1/chat/completions");
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("model" , Модель , "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("messages", Сообщения, "Массив", Параметры);
- OPI_Инструменты.ДобавитьПоле("stream" , Ложь , "Булево", Параметры);
-
- ОбработатьПараметры(Параметры, ДопПараметры);
- ОбработатьЗаголовки(ДопЗаголовки, Токен);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, ДопЗаголовки);
-
- Возврат ПривестиКлючиКНижнемуРегистру(Ответ);
-
-КонецФункции
-
-// Получить картинки
-// Генерирует картинки по указанному описанию
-//
-// Примечание:
-// Метод в документации API: [Create image](@platform.openai.com/docs/api-reference/images/create)
-//
-// Параметры:
-// URL - Строка - URL сервера OpenAI - url
-// Токен - Строка - Токен авторизации OpenAI - token
-// Модель - Строка - Имя модели - model
-// Описание - Структура Из КлючИЗначение - Параметры генерации. См. ПолучитьСтруктуруОписанияКартинок - descr
-// ДопЗаголовки - Соответствие Из КлючИЗначение - Доп. заголовки запроса, если необходимо - headers
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат обработки
-Функция ПолучитьКартинки(Знач URL, Знач Токен, Знач Модель, Знач Описание, Знач ДопЗаголовки = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(Описание);
-
- ДополнитьURL(URL, "v1/images/generations");
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("model", Модель, "Строка", Параметры);
-
- Для Каждого Поле Из Описание Цикл
- Параметры.Вставить(Поле.Ключ, Поле.Значение);
- КонецЦикла;
-
- ОбработатьЗаголовки(ДопЗаголовки, Токен);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, ДопЗаголовки);
-
- Возврат ПривестиКлючиКНижнемуРегистру(Ответ);
-
-КонецФункции
-
-// Получить представления
-// Получает представления (embeddings) для заданных вводных
-//
-// Примечание:
-// Метод в документации API: [Create embeddings](@platform.openai.com/docs/api-reference/embeddings/create)
-//
-// Параметры:
-// URL - Строка - URL сервера OpenAI - url
-// Токен - Строка - Токен авторизации OpenAI - token
-// Модель - Строка - Имя модели - model
-// Текст - Массив Из Строка - Строка или массив строк запросов - input
-// ДопПараметры - Структура Из КлючИЗначение - Доп. параметры запроса, если необходимо - options
-// ДопЗаголовки - Соответствие Из КлючИЗначение - Доп. заголовки запроса, если необходимо - headers
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат обработки
-Функция ПолучитьПредставления(Знач URL, Знач Токен, Знач Модель, Знач Текст, Знач ДопПараметры = "", Знач ДопЗаголовки = "") Экспорт
-
- ДополнитьURL(URL, "v1/embeddings");
-
- Параметры = Новый Структура;
-
- OPI_Инструменты.ДобавитьПоле("model", Модель, "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("input", Текст , "Массив", Параметры);
-
- ОбработатьПараметры(Параметры, ДопПараметры);
- ОбработатьЗаголовки(ДопЗаголовки, Токен);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, ДопЗаголовки);
-
- Возврат ПривестиКлючиКНижнемуРегистру(Ответ);
-
-КонецФункции
-
-// Получить структуру сообщения
-// Получает структуру произвольного сообщения для списка сообщений запроса
-//
-// Параметры:
-// Роль - Строка - Источник сообщения: system, user, assistant и др. - role
-// Текст - Строка - Текст сообщения - text
-// Имя - Строка - Имя участника разговора - name
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - Структура полей
-Функция ПолучитьСтруктуруСообщения(Знач Роль, Знач Текст, Знач Имя = "") Экспорт
-
- Строка_ = "Строка";
- СтруктураПолей = Новый Структура;
-
- OPI_Инструменты.ДобавитьПоле("role" , Роль , Строка_, СтруктураПолей);
- OPI_Инструменты.ДобавитьПоле("content", Текст, Строка_, СтруктураПолей);
- OPI_Инструменты.ДобавитьПоле("name" , Имя , Строка_, СтруктураПолей);
-
- Возврат СтруктураПолей;
-
-КонецФункции
-
-// Получить сообщение пользователя
-// Получает структуру сообщения от лица пользователя для использования в запросе
-//
-// Примечание:
-// Является краткой формой функции `ПолучитьСтруктуруСообщения`
-//
-// Параметры:
-// Текст - Строка - Текст сообщения - text
-// Имя - Строка - Имя участника разговора - name
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - Структура полей
-Функция ПолучитьСообщениеПользователя(Знач Текст, Знач Имя = "") Экспорт
- Возврат ПолучитьСтруктуруСообщения("user", Текст, Имя);
-КонецФункции
-
-// Получить сообщение ассистента
-// Получает структуру сообщения от лица ассистента для использования в запросе
-//
-// Примечание:
-// Является краткой формой функции `ПолучитьСтруктуруСообщения`
-//
-// Параметры:
-// Текст - Строка - Текст сообщения - text
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - Структура полей
-Функция ПолучитьСообщениеАссистента(Знач Текст) Экспорт
- Возврат ПолучитьСтруктуруСообщения("assistant", Текст);
-КонецФункции
-
-// Получить сообщение системы
-// Получает структуру системного сообщения для использования в запросе
-//
-// Примечание:
-// Является краткой формой функции `ПолучитьСтруктуруСообщения`
-//
-// Параметры:
-// Текст - Строка - Текст сообщения - text
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - Структура полей
-Функция ПолучитьСообщениеСистемы(Знач Текст) Экспорт
- Возврат ПолучитьСтруктуруСообщения("system", Текст);
-КонецФункции
-
-// Получить структуру сообщения картинки
-// Получает структура сообщения на основе изображения для списка сообщений запроса
-//
-// Параметры:
-// Роль - Строка - Источник сообщения: system, user, developer - role
-// IDФайла - Строка - ID файла картинки. См. ЗагрузитьФайл - file
-// Текст - Строка - Вводный текст запроса для обработки картинки - prompt
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - Структура полей
-Функция ПолучитьСтруктуруСообщенияКартинки(Знач Роль, Знач IDФайла, Знач Текст = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(IDФайла);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Текст);
-
- СтруктураПолей = Новый Структура;
- МассивКонтента = Новый Массив;
-
- МассивКонтента.Добавить(Новый Структура("type,file_id", "input_image", IDФайла));
-
- Если ЗначениеЗаполнено(Текст) Тогда
- МассивКонтента.Добавить(Новый Структура("type,text", "input_text", Текст));
- КонецЕсли;
-
- OPI_Инструменты.ДобавитьПоле("role" , Роль , "Строка", СтруктураПолей);
- OPI_Инструменты.ДобавитьПоле("content", МассивКонтента, "Массив", СтруктураПолей);
-
- Возврат СтруктураПолей;
-
-КонецФункции
-
-// Получить структуру описания картинок
-// Получить структуру описания картинок для генерации
-//
-// Примечание:
-// Набор полей и их интерпретация может отличаться в зависимости от используемой модели
-//
-// Параметры:
-// Промпт - Строка - Текстовое описание картинки для генерации - prompt
-// Количество - Число - Количество изображений для генерации - amount
-// Фон - Строка - Вариант генерации фона: transparent, opaque, auto - bg
-// Размер - Строка - Вариант размера сгенерированных изображений - size
-// ДопПараметры - Структура Из КлючИЗначение - Доп. параметры запроса, если необходимо - options
-//
-// Возвращаемое значение:
-// Структура - Структура полей
-Функция ПолучитьСтруктуруОписанияКартинок(Знач Промпт
- , Знач Количество
- , Знач Фон = ""
- , Знач Размер = ""
- , Знач ДопПараметры = "") Экспорт
-
- Строка_ = "Строка";
- Описание = Новый Структура;
-
- OPI_Инструменты.ДобавитьПоле("prompt" , Промпт , Строка_, Описание);
- OPI_Инструменты.ДобавитьПоле("n" , Количество, "Число", Описание);
- OPI_Инструменты.ДобавитьПоле("background", Фон , Строка_, Описание);
- OPI_Инструменты.ДобавитьПоле("size" , Размер , Строка_, Описание);
-
- ОбработатьПараметры(Описание, ДопПараметры);
-
- Возврат Описание;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область Ассистенты
-
-// Получить список ассистентов
-// Получает список ассистентов с отбором или без
-//
-// Примечание:
-// Метод в документации API: [List assistants](@platform.openai.com/docs/api-reference/assistants/listAssistants)
-//
-// Параметры:
-// URL - Строка - URL сервера OpenAI - url
-// Токен - Строка - Токен авторизации OpenAI - token
-// Количество - Число - Максимальное число возвращаемых ассистентов - limit
-// ДопПараметры - Структура Из КлючИЗначение - Доп. параметры запроса, если необходимо - options
-// ДопЗаголовки - Соответствие Из КлючИЗначение - Доп. заголовки запроса, если необходимо - headers
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат обработки
-Функция ПолучитьСписокАссистентов(Знач URL
- , Знач Токен
- , Знач Количество = 20
- , Знач ДопПараметры = ""
- , Знач ДопЗаголовки = "") Экспорт
-
- ДополнитьURL(URL, "v1/assistants");
-
- Параметры = Новый Структура;
-
- OPI_Инструменты.ДобавитьПоле("limit", Количество, "Число", Параметры);
-
- ОбработатьПараметры(Параметры, ДопПараметры);
- ОбработатьЗаголовки(ДопЗаголовки, Токен);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры, ДопЗаголовки);
-
- Если ТипЗнч(Ответ) = Тип("Массив") Тогда
- Ответ = Новый Структура("object,data", "list", Ответ);
- КонецЕсли;
-
- Возврат ПривестиКлючиКНижнемуРегистру(Ответ);
-
-КонецФункции
-
-// Создать ассистента
-// Создает ассистента по модели и инструкции
-//
-// Примечание:
-// Метод в документации API: [Create assistant](@platform.openai.com/docs/api-reference/assistants/createAssistant)
-//
-// Параметры:
-// URL - Строка - URL сервера OpenAI - url
-// Токен - Строка - Токен авторизации OpenAI - token
-// Модель - Строка - Имя модели - model
-// Имя - Строка - Имя ассистента - name
-// Инструкция - Строка - Системная инструкция для ассистента - inst
-// ДопПараметры - Структура Из КлючИЗначение - Доп. параметры запроса, если необходимо - options
-// ДопЗаголовки - Соответствие Из КлючИЗначение - Доп. заголовки запроса, если необходимо - headers
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат обработки
-Функция СоздатьАссистента(Знач URL
- , Знач Токен
- , Знач Модель
- , Знач Имя = ""
- , Знач Инструкция = ""
- , Знач ДопПараметры = ""
- , Знач ДопЗаголовки = "") Экспорт
-
- ДополнитьURL(URL, "v1/assistants");
-
- Строка_ = "Строка";
- Параметры = Новый Структура;
-
- OPI_Инструменты.ДобавитьПоле("model" , Модель , Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("name" , Имя , Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("instructions", Инструкция , Строка_, Параметры);
-
- ОбработатьПараметры(Параметры, ДопПараметры);
- ОбработатьЗаголовки(ДопЗаголовки, Токен);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, ДопЗаголовки);
-
- Возврат ПривестиКлючиКНижнемуРегистру(Ответ);
-
-КонецФункции
-
-// Получить ассистента
-// Получает информацию об ассистенте по ID
-//
-// Примечание:
-// Метод в документации API: [Retrieve assistant](@platform.openai.com/docs/api-reference/assistants/getAssistant)
-//
-// Параметры:
-// URL - Строка - URL сервера OpenAI - url
-// Токен - Строка - Токен авторизации OpenAI - token
-// IDАссистента - Строка - ID ассистента - id
-// ДопЗаголовки - Соответствие Из КлючИЗначение - Доп. заголовки запроса, если необходимо - headers
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат обработки
-Функция ПолучитьАссистента(Знач URL, Знач Токен, Знач IDАссистента, Знач ДопЗаголовки = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(IDАссистента);
-
- ДополнитьURL(URL, СтрШаблон("v1/assistants/%1", IDАссистента));
- ОбработатьЗаголовки(ДопЗаголовки, Токен);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, , ДопЗаголовки);
-
- Возврат ПривестиКлючиКНижнемуРегистру(Ответ);
-
-КонецФункции
-
-// Удалить ассистента
-// Удаляет ранее созданного ассистента
-//
-// Примечание:
-// Метод в документации API: [Delete assistant](@platform.openai.com/docs/api-reference/assistants/deleteAssistant)
-//
-// Параметры:
-// URL - Строка - URL сервера OpenAI - url
-// Токен - Строка - Токен авторизации OpenAI - token
-// IDАссистента - Строка - ID ассистента - id
-// ДопЗаголовки - Соответствие Из КлючИЗначение - Доп. заголовки запроса, если необходимо - headers
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат обработки
-Функция УдалитьАссистента(Знач URL, Знач Токен, Знач IDАссистента, Знач ДопЗаголовки = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(IDАссистента);
-
- ДополнитьURL(URL, СтрШаблон("v1/assistants/%1", IDАссистента));
- ОбработатьЗаголовки(ДопЗаголовки, Токен);
-
- Ответ = OPI_ЗапросыHTTP.Delete(URL, , ДопЗаголовки);
-
- Возврат ПривестиКлючиКНижнемуРегистру(Ответ);
-
-КонецФункции
-
-#КонецОбласти
-
-#Область РаботаСФайлами
-
-// Получить список файлов
-// Получает список файлов с отбором или без
-//
-// Примечание:
-// Метод в документации API: [List files](@platform.openai.com/docs/api-reference/files/list)
-//
-// Параметры:
-// URL - Строка - URL сервера OpenAI - url
-// Токен - Строка - Токен авторизации OpenAI - token
-// Количество - Число - Максимальное число возвращаемых ассистентов - limit
-// ДопПараметры - Структура Из КлючИЗначение - Доп. параметры запроса, если необходимо - options
-// ДопЗаголовки - Соответствие Из КлючИЗначение - Доп. заголовки запроса, если необходимо - headers
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат обработки
-Функция ПолучитьСписокФайлов(Знач URL
- , Знач Токен
- , Знач Количество = 10000
- , Знач ДопПараметры = ""
- , Знач ДопЗаголовки = "") Экспорт
-
- ДополнитьURL(URL, "v1/files");
-
- Параметры = Новый Структура;
-
- OPI_Инструменты.ДобавитьПоле("limit", Количество, "Число", Параметры);
-
- ОбработатьПараметры(Параметры, ДопПараметры);
- ОбработатьЗаголовки(ДопЗаголовки, Токен);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры, ДопЗаголовки);
-
- Если ТипЗнч(Ответ) = Тип("Массив") Тогда
- Ответ = Новый Структура("object,data", "list", Ответ);
- КонецЕсли;
-
- Возврат ПривестиКлючиКНижнемуРегистру(Ответ);
-
-КонецФункции
-
-// Загрузить файл
-// Загружает файл для дальнейшего использования в других запросах
-//
-// Примечание:
-// Метод в документации API: [Upload file](@platform.openai.com/docs/api-reference/files/create)
-//
-// Параметры:
-// URL - Строка - URL сервера OpenAI - url
-// Токен - Строка - Токен авторизации OpenAI - token
-// ИмяФайла - Строка - Имя файла с раширением - name
-// Данные - Строка, ДвоичныеДанные - Путь к файлу или данные - data
-// Назначение - Строка - Назначение файла: assistants, batch, vision, user_data, evals - purpose
-// ДопЗаголовки - Соответствие Из КлючИЗначение - Доп. заголовки запроса, если необходимо - headers
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат обработки
-Функция ЗагрузитьФайл(Знач URL, Знач Токен, Знач ИмяФайла, Знач Данные, Знач Назначение, Знач ДопЗаголовки = "") Экспорт
-
- ДополнитьURL(URL, "v1/files");
- ОбработатьЗаголовки(ДопЗаголовки, Токен);
-
- Ответ = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать(URL)
- .НачатьЗаписьТелаMultipart()
- .ДобавитьФайлMultipartFormData("file", ИмяФайла, Данные)
- .ДобавитьПолеMultipartFormData("purpose", Назначение)
- .УстановитьЗаголовки(ДопЗаголовки)
- .ОбработатьЗапрос("POST")
- .ВернутьОтветКакJSONКоллекцию();
-
- Возврат ПривестиКлючиКНижнемуРегистру(Ответ);
-
-КонецФункции
-
-// Получить информацию о файле
-// Получает информацию о файле
-//
-// Примечание:
-// Метод в документации API: [Retrieve file](@platform.openai.com/docs/api-reference/files/retrieve)
-//
-// Параметры:
-// URL - Строка - URL сервера OpenAI - url
-// Токен - Строка - Токен авторизации OpenAI - token
-// IDФайла - Строка - ID файла - id
-// ДопЗаголовки - Соответствие Из КлючИЗначение - Доп. заголовки запроса, если необходимо - headers
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат обработки
-Функция ПолучитьИнформациюОФайле(Знач URL, Знач Токен, Знач IDФайла, Знач ДопЗаголовки = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(IDФайла);
-
- ДополнитьURL(URL, СтрШаблон("v1/files/%1", IDФайла));
- ОбработатьЗаголовки(ДопЗаголовки, Токен);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, , ДопЗаголовки);
-
- Возврат ПривестиКлючиКНижнемуРегистру(Ответ);
-
-КонецФункции
-
-// Скачать файл
-// Получает данные файла с сервера
-//
-// Примечание:
-// Метод в документации API: [Retrieve file content](@platform.openai.com/docs/api-reference/files/retrieve-contents)
-//
-// Параметры:
-// URL - Строка - URL сервера OpenAI - url
-// Токен - Строка - Токен авторизации OpenAI - token
-// IDФайла - Строка - ID файла - id
-// ДопЗаголовки - Соответствие Из КлючИЗначение - Доп. заголовки запроса, если необходимо - headers
-//
-// Возвращаемое значение:
-// ДвоичныеДанные - Данные файла
-Функция СкачатьФайл(Знач URL, Знач Токен, Знач IDФайла, Знач ДопЗаголовки = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(IDФайла);
-
- ДополнитьURL(URL, СтрШаблон("v1/files/%1/content", IDФайла));
- ОбработатьЗаголовки(ДопЗаголовки, Токен);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, , ДопЗаголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Удалить файл
-// Удаляет ранее загруженный файл
-//
-// Примечание:
-// Метод в документации API: [Delete file](@platform.openai.com/docs/api-reference/files/delete)
-//
-// Параметры:
-// URL - Строка - URL сервера OpenAI - url
-// Токен - Строка - Токен авторизации OpenAI - token
-// IDФайла - Строка - ID файла - id
-// ДопЗаголовки - Соответствие Из КлючИЗначение - Доп. заголовки запроса, если необходимо - headers
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат обработки
-Функция УдалитьФайл(Знач URL, Знач Токен, Знач IDФайла, Знач ДопЗаголовки = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(IDФайла);
-
- ДополнитьURL(URL, СтрШаблон("v1/files/%1", IDФайла));
- ОбработатьЗаголовки(ДопЗаголовки, Токен);
-
- Ответ = OPI_ЗапросыHTTP.Delete(URL, , ДопЗаголовки);
-
- Возврат ПривестиКлючиКНижнемуРегистру(Ответ);
-
-КонецФункции
-
-#КонецОбласти
-
-#Область РаботаСАудио
-
-// Сгенерировать речь
-// Генерирует аудио с озвучиванием указанного текста
-//
-// Примечание:
-// Метод в документации API: [Create speech](@platform.openai.com/docs/api-reference/audio/createSpeech)
-// Доступные голоса могут отличаться в зависимости от выбранной модели
-// Формат аудиофайла ответа можно изменить при помощи добавления `response_format` в доп. параметры.^^
-// Доступные форматы: mp3 (по умолчанию), opus, aac, flac, wav, pcm
-//
-// Параметры:
-// URL - Строка - URL сервера OpenAI - url
-// Токен - Строка - Токен авторизации OpenAI - token
-// Модель - Строка - Имя модели - model
-// Текст - Строка - Текст для озвучивания - input
-// Голос - Строка - Вид голоса: alloy, ash, ballad, coral, echo и др. - voice
-// ДопПараметры - Структура Из КлючИЗначение - Доп. параметры запроса, если необходимо - options
-// ДопЗаголовки - Соответствие Из КлючИЗначение - Доп. заголовки запроса, если необходимо - headers
-//
-// Возвращаемое значение:
-// ДвоичныеДанные - Результат обработки
-Функция СгенерироватьРечь(Знач URL
- , Знач Токен
- , Знач Модель
- , Знач Текст
- , Знач Голос = "alloy"
- , Знач ДопПараметры = ""
- , Знач ДопЗаголовки = "") Экспорт
-
- ДополнитьURL(URL, "v1/audio/speech");
-
- Строка_ = "Строка";
- Параметры = Новый Структура;
-
- OPI_Инструменты.ДобавитьПоле("model", Модель, Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("input", Текст , Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("voice", Голос , Строка_, Параметры);
-
- ОбработатьПараметры(Параметры, ДопПараметры);
- ОбработатьЗаголовки(ДопЗаголовки, Токен);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, ДопЗаголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Создать транскрипцию
-// Создает текстовую транскрипцию для выбранного аудио файла
-//
-// Примечание:
-// Метод в документации API: [Create transcription](@platform.openai.com/docs/api-reference/audio/createTranscription)
-//
-// Параметры:
-// URL - Строка - URL сервера OpenAI - url
-// Токен - Строка - Токен авторизации OpenAI - token
-// Модель - Строка - Имя модели - model
-// Аудио - Строка, ДвоичныеДанные - Аудио файл - audio
-// MIME - Строка - MIME тип аудио файла - type
-// ДопПараметры - Структура Из КлючИЗначение - Доп. параметры запроса, если необходимо - options
-// ДопЗаголовки - Соответствие Из КлючИЗначение - Доп. заголовки запроса, если необходимо - headers
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат обработки
-Функция СоздатьТранскрипцию(Знач URL
- , Знач Токен
- , Знач Модель
- , Знач Аудио
- , Знач MIME = "audio/mpeg"
- , Знач ДопПараметры = ""
- , Знач ДопЗаголовки = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(MIME);
-
- ДополнитьURL(URL, "v1/audio/transcriptions");
- ОбработатьЗаголовки(ДопЗаголовки, Токен);
-
- Ответ = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать(URL)
- .НачатьЗаписьТелаMultipart()
- .ДобавитьФайлMultipartFormData("file", "audio.bin", Аудио, MIME)
- .ДобавитьПолеMultipartFormData("model", Модель)
- .УстановитьЗаголовки(ДопЗаголовки)
- .ОбработатьЗапрос("POST")
- .ВернутьОтветКакJSONКоллекцию();
-
- Возврат ПривестиКлючиКНижнемуРегистру(Ответ);
-
-КонецФункции
-
-#КонецОбласти
-
-#Область РаботаСМоделями
-
-// Получить список моделей
-// Получает список доступных моделей
-//
-// Примечание:
-// Метод в документации API: [List models](@platform.openai.com/docs/api-reference/models/list)
-//
-// Параметры:
-// URL - Строка - URL сервера OpenAI - url
-// Токен - Строка - Токен авторизации OpenAI - token
-// ДопЗаголовки - Соответствие Из КлючИЗначение - Доп. заголовки запроса, если необходимо - headers
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат обработки
-Функция ПолучитьСписокМоделей(Знач URL, Знач Токен, Знач ДопЗаголовки = "") Экспорт
-
- ДополнитьURL(URL, "v1/models");
- ОбработатьЗаголовки(ДопЗаголовки, Токен);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, , ДопЗаголовки);
-
- Возврат ПривестиКлючиКНижнемуРегистру(Ответ);
-
-КонецФункции
-
-#КонецОбласти
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-Процедура ДополнитьURL(URL, Знач Путь)
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(URL);
-
- URL = ?(СтрЗаканчиваетсяНа(URL, "/"), URL, URL + "/");
- URL = URL + Путь;
-
-КонецПроцедуры
-
-Процедура ОбработатьПараметры(Параметры, Знач ДопПараметры)
-
- Если Не ЗначениеЗаполнено(ДопПараметры) Тогда
- Возврат;
- КонецЕсли;
-
- ТекстОшибки = "Передана некорректная коллекция доп. параметров!";
- OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(ДопПараметры, ТекстОшибки);
-
- Для Каждого ДопПараметр Из ДопПараметры Цикл
- Параметры.Вставить(ДопПараметр.Ключ, ДопПараметр.Значение);
- КонецЦикла;
-
-КонецПроцедуры
-
-Процедура ОбработатьЗаголовки(ДопЗаголовки, Знач Токен)
-
- Если Не ЗначениеЗаполнено(ДопЗаголовки) Тогда
- ДопЗаголовки = Новый Соответствие;
- Иначе
- ТекстОшибки = "Передана некорректная коллекция доп. заголовков!";
- OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(ДопЗаголовки, ТекстОшибки);
- КонецЕсли;
-
- Если ЗначениеЗаполнено(Токен) Тогда
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
- ДопЗаголовки.Вставить("Authorization", СтрШаблон("Bearer %1", Токен));
- КонецЕсли;
-
-КонецПроцедуры
-
-Функция ПривестиКлючиКНижнемуРегистру(Знач Коллекция)
-
- Попытка
- Коллекция_ = Новый(ТипЗнч(Коллекция));
-
- Для Каждого КлючЗначение Из Коллекция Цикл
- Коллекция_.Вставить(нРег(КлючЗначение.Ключ), КлючЗначение.Значение);
- КонецЦикла;
-
- Возврат Коллекция_;
-
- Исключение
- Возврат Коллекция;
- КонецПопытки;
-
-КонецФункции
-
-#КонецОбласти
diff --git a/XML/CommonModules/OPI_PostgreSQL.xml b/XML/CommonModules/OPI_PostgreSQL.xml
deleted file mode 100644
index 6a26485e1a..0000000000
--- a/XML/CommonModules/OPI_PostgreSQL.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- OPI_PostgreSQL
-
-
- ru
- PostgreSQL (ОПИ)
-
-
- Модуль для работы с базами PostgreSQL из набора ОПИ
- false
- false
- true
- true
- true
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git a/XML/CommonModules/OPI_PostgreSQL/Ext/Module.bsl b/XML/CommonModules/OPI_PostgreSQL/Ext/Module.bsl
deleted file mode 100644
index dd4470e8ff..0000000000
--- a/XML/CommonModules/OPI_PostgreSQL/Ext/Module.bsl
+++ /dev/null
@@ -1,586 +0,0 @@
-// OneScript: ./OInt/core/Modules/OPI_PostgreSQL.os
-// Lib: PostgreSQL
-// CLI: postgres
-// Keywords: postgresql, postgre sql, postgres
-// Depends: OPI_PostgreSQL
-
-// MIT License
-
-// Copyright (c) 2023-2025 Anton Tsitavets
-
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-
-// The above copyright notice and this permission notice shall be included in all
-// copies or substantial portions of the Software.
-
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-// SOFTWARE.
-
-// https://github.com/Bayselonarrend/OpenIntegrations
-
-// BSLLS:Typo-off
-// BSLLS:LatinAndCyrillicSymbolInWord-off
-// BSLLS:IncorrectLineBreak-off
-// BSLLS:NumberOfOptionalParams-off
-// BSLLS:UsingServiceTag-off
-// BSLLS:LineLength-off
-// BSLLS:UsingSynchronousCalls-off
-
-//@skip-check module-structure-top-region
-//@skip-check module-structure-method-in-regions
-//@skip-check wrong-string-literal-content
-//@skip-check method-too-many-params
-//@skip-check constructor-function-return-section
-//@skip-check doc-comment-collection-item-type
-
-#Область ПрограммныйИнтерфейс
-
-#Область ОсновныеМетоды
-
-// Открыть соединение !NOCLI
-// Создает подключение к указанной базе
-//
-// Параметры:
-// СтрокаПодключения - Строка - Строка подключения. См. СформироватьСтрокуПодключения - string
-// Tls - Структура Из КлючИЗначение - Настройки TLS, если необходимо. См. ПолучитьНастройкиTls - tls
-//
-// Возвращаемое значение:
-// Произвольный - Объект коннектора или структура с информацией об ошибке
-Функция ОткрытьСоединение(Знач СтрокаПодключения = "", Знач Tls = "") Экспорт
-
- Если ЭтоКоннектор(СтрокаПодключения) Тогда
- Возврат СтрокаПодключения;
- КонецЕсли;
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(СтрокаПодключения);
- OPI_Инструменты.ВернутьУправляющиеПоследовательности(СтрокаПодключения);
-
- Коннектор = OPI_Компоненты.ПолучитьКомпоненту("PostgreSQL");
-
- Tls = OPI_Компоненты.УстановитьTls(Коннектор, Tls);
-
- Если Не OPI_Инструменты.ПолучитьИли(Tls, "result", Ложь) Тогда
- Возврат Tls;
- КонецЕсли;
-
- Коннектор.ConnectionString = СтрокаПодключения;
-
- Результат = Коннектор.Connect();
- Результат = OPI_Инструменты.JsonВСтруктуру(Результат, Ложь);
-
- Возврат ?(Результат["result"], Коннектор, Результат);
-
-КонецФункции
-
-// Закрыть соединение !NOCLI
-// Явно закрывает переданное соединение
-//
-// Параметры:
-// Соединение - Произвольный - Объект компоненты с открытым соединением - dbc
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - Результат закрытия соединения
-Функция ЗакрытьСоединение(Знач Соединение) Экспорт
-
- Если ЭтоКоннектор(Соединение) Тогда
-
- Результат = Соединение.Close();
- Результат = OPI_Инструменты.JsonВСтруктуру(Результат, Ложь);
-
- Иначе
-
- Результат = Новый Структура("result,error", Ложь, "It's not a connection");
-
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-// Это коннектор !NOCLI
-// Проверяет, что значение является объектом внешней компоненты PostgreSQL
-//
-// Параметры:
-// Значение - Произвольный - Значение для проверки - value
-//
-// Возвращаемое значение:
-// Булево - Это коннектор
-Функция ЭтоКоннектор(Знач Значение) Экспорт
-
- Возврат Строка(ТипЗнч(Значение)) = "AddIn.OPI_PostgreSQL.Main";
-
-КонецФункции
-
-// Выполнить запрос SQL
-// Выполняет произвольный SQL запрос
-//
-// Примечание:
-// Параметры запроса указываются как массив структур вида `{'Тип данных': 'Значение'}`.^^
-// Список доступных типов описан на начальной странице документации библиотеки PostgreSQL
-// Без указания флага `ФорсироватьРезультат`, чтение результата осуществляется только для запросов, начинающихся с `SELECT`^^
-// Для остальных запросов возвращается `result:true` или `false` с текстом ошибки
-//
-// Параметры:
-// ТекстЗапроса - Строка - Текст запроса к базе - sql
-// Параметры - Массив Из Произвольный - Массив позиционных параметров запроса - params
-// ФорсироватьРезультат - Булево - Включает попытку получения результата, даже для не SELECT запросов - force
-// Соединение - Строка, Произвольный - Соединение или строка подключения - dbc
-// Tls - Структура Из КлючИЗначение - Настройки TLS, если необходимо. См. ПолучитьНастройкиTls - tls
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат выполнения запроса
-Функция ВыполнитьЗапросSQL(Знач ТекстЗапроса
- , Знач Параметры = ""
- , Знач ФорсироватьРезультат = Ложь
- , Знач Соединение = ""
- , Знач Tls = "") Экспорт
-
- Если ЭтоКоннектор(Соединение) Тогда
- ЗакрыватьСоединение = Ложь;
- Коннектор = Соединение;
- Иначе
- ЗакрыватьСоединение = Истина;
- Коннектор = ОткрытьСоединение(Соединение, Tls);
- КонецЕсли;
-
- Если Не ЭтоКоннектор(Коннектор) Тогда
- Возврат Коннектор;
- КонецЕсли;
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(ТекстЗапроса, Истина);
- OPI_ПреобразованиеТипов.ПолучитьБулево(ФорсироватьРезультат);
-
- Параметры_ = OPI_ЗапросыSQL.ОбработатьПараметры(Параметры, ПолучитьСтруктуруТипов());
- Результат = OPI_ЗапросыSQL.ВыполнитьЗапросСОбработкой(Коннектор, ТекстЗапроса, ФорсироватьРезультат, Параметры_);
-
- Если ЗакрыватьСоединение Тогда
- ЗакрытьСоединение(Коннектор);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-// Сформировать строку подключения
-// Формирует строку подключения из переданных данных
-//
-// Параметры:
-// Адрес - Строка - IP адрес или доменное имя сервера - addr
-// База - Строка - Имя базы данных для подключения - db
-// Логин - Строка - Логин пользователя postgres - login
-// Пароль - Строка - Пароль пользователя postgres - pass
-// Порт - Строка - Порт подключения - port
-//
-// Возвращаемое значение:
-// Строка - Строка подключения к базе PostgreSQL
-Функция СформироватьСтрокуПодключения(Знач Адрес, Знач База, Знач Логин, Знач Пароль = "", Знач Порт = "5432") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Адрес);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Логин);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(База);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Порт);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Пароль);
-
- Порт = ?(ЗначениеЗаполнено(Порт), ":" + Порт, Порт);
- Пароль = ?(ЗначениеЗаполнено(Пароль), ":" + Пароль, Пароль);
-
- ШаблонСтроки = "postgresql://%1%2@%3%4/%5";
- СтрокаПодключения = СтрШаблон(ШаблонСтроки, Логин, Пароль, Адрес, Порт, База);
-
- Возврат СтрокаПодключения;
-
-КонецФункции
-
-// Получить настройки TLS
-// Формирует настройки для использования TLS при выполнении запросов
-//
-// Примечание:
-// Настройки Tls могут быть установлены только в момент создания соединения: явного, при использовании функции `ОткрытьСоединение`^^
-// или неявного, при передаче строки подключения в методы ORM.
-// Передача настроек Tls совместно с передачей уже созданного соединения в параметр `Соединение` будет проигнорирована
-//
-// Параметры:
-// ОтключитьПроверкуСертификатов - Булево - Позволяет работать с некорретными сертификатами, в т.ч. самоподписанными - trust
-// ПутьКСертификату - Строка - Путь к корневому PEM файлу сертификата, если его нет в системном хранилище - cert
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - Структура настроек TLS соединения
-Функция ПолучитьНастройкиTls(Знач ОтключитьПроверкуСертификатов, Знач ПутьКСертификату = "") Экспорт
-
- Возврат OPI_Компоненты.ПолучитьНастройкиTls(ОтключитьПроверкуСертификатов, ПутьКСертификату);
-
-КонецФункции
-
-#КонецОбласти
-
-#Область ORM
-
-// Создать базу данных
-// Создает базу данных с указанным именем
-//
-// Параметры:
-// База - Строка - Имя базы - base
-// Соединение - Строка, Произвольный - Соединение или строка подключения - dbc
-// Tls - Структура Из КлючИЗначение - Настройки TLS, если необходимо. См. ПолучитьНастройкиTls - tls
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат выполнения запроса
-Функция СоздатьБазуДанных(Знач База, Знач Соединение = "", Знач Tls = "") Экспорт
-
- Результат = OPI_ЗапросыSQL.СоздатьБазуДанных(OPI_PostgreSQL, База, Соединение, Tls);
- Возврат Результат;
-
-КонецФункции
-
-// Удалить базу данных
-// Удаляет базу данных
-//
-// Параметры:
-// База - Строка - Имя базы - base
-// Соединение - Строка, Произвольный - Соединение или строка подключения - dbc
-// Tls - Структура Из КлючИЗначение - Настройки TLS, если необходимо. См. ПолучитьНастройкиTls - tls
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат выполнения запроса
-Функция УдалитьБазуДанных(Знач База, Знач Соединение = "", Знач Tls = "") Экспорт
-
- Результат = OPI_ЗапросыSQL.УдалитьБазуДанных(OPI_PostgreSQL, База, Соединение, Tls);
- Возврат Результат;
-
-КонецФункции
-
-// Отключить все соединения базы данных
-// Завершает все соединения к базе данных кроме текущего
-//
-// Параметры:
-// База - Строка - Имя базы - base
-// Соединение - Строка, Произвольный - Соединение или строка подключения - dbc
-// Tls - Структура Из КлючИЗначение - Настройки TLS, если необходимо. См. ПолучитьНастройкиTls - tls
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат выполнения запроса
-Функция ОтключитьВсеСоединенияБазыДанных(Знач База, Знач Соединение = "", Знач Tls = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(База);
-
- ТекстSQL = "SELECT pg_terminate_backend(pid)
- |FROM pg_stat_activity
- |WHERE datname = '%1' AND pid <> pg_backend_pid();";
-
- ТекстSQL = СтрШаблон(ТекстSQL, База);
-
- Результат = ВыполнитьЗапросSQL(ТекстSQL, , , Соединение, Tls);
-
- Возврат Результат;
-
-КонецФункции
-
-// Получить информацию о таблице
-// Получает информацию о таблице
-//
-// Параметры:
-// Таблица - Строка - Имя таблицы - table
-// Соединение - Строка, Произвольный - Соединение или строка подключения - dbc
-// Tls - Структура Из КлючИЗначение - Настройки TLS, если необходимо. См. ПолучитьНастройкиTls - tls
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат выполнения запроса
-Функция ПолучитьИнформациюОТаблице(Знач Таблица, Знач Соединение = "", Знач Tls = "") Экспорт
-
- Результат = OPI_ЗапросыSQL.ПолучитьСтруктуруТаблицы(OPI_PostgreSQL, Таблица, Соединение, Tls);
- Возврат Результат;
-
-КонецФункции
-
-// Создать таблицу
-// Создает пустую таблицу в базе
-//
-// Примечание:
-// Список доступных типов описан на начальной странице документации библиотеки PostgreSQL
-//
-// Параметры:
-// Таблица - Строка - Имя таблицы - table
-// СтруктураКолонок - Структура Из КлючИЗначение - Структура колонок: Ключ > имя, Значение > Тип данных - cols
-// Соединение - Строка, Произвольный - Соединение или строка подключения - dbc
-// Tls - Структура Из КлючИЗначение - Настройки TLS, если необходимо. См. ПолучитьНастройкиTls - tls
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат выполнения запроса
-Функция СоздатьТаблицу(Знач Таблица, Знач СтруктураКолонок, Знач Соединение = "", Знач Tls = "") Экспорт
-
- Результат = OPI_ЗапросыSQL.СоздатьТаблицу(OPI_PostgreSQL, Таблица, СтруктураКолонок, Соединение, Tls);
- Возврат Результат;
-
-КонецФункции
-
-// Добавить колонку таблицы
-// Добавляет новую колонку в существующую таблицу
-//
-// Параметры:
-// Таблица - Строка - Имя таблицы - table
-// Имя - Строка - Имя колонки - name
-// ТипДанных - Строка - Тип данных колонки - type
-// Соединение - Строка, Произвольный - Соединение или строка подключения - dbc
-// Tls - Структура Из КлючИЗначение - Настройки TLS, если необходимо. См. ПолучитьНастройкиTls - tls
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат выполнения запроса
-Функция ДобавитьКолонкуТаблицы(Знач Таблица, Знач Имя, Знач ТипДанных, Знач Соединение = "", Знач Tls = "") Экспорт
-
- Результат = OPI_ЗапросыSQL.ДобавитьКолонкуТаблицы(OPI_PostgreSQL, Таблица, Имя, ТипДанных, Соединение, Tls);
- Возврат Результат;
-
-КонецФункции
-
-// Удалить колонку таблицы
-// Удаляет колонку из таблицы
-//
-// Параметры:
-// Таблица - Строка - Имя таблицы - table
-// Имя - Строка - Имя колонки - name
-// Соединение - Строка, Произвольный - Соединение или строка подключения - dbc
-// Tls - Структура Из КлючИЗначение - Настройки TLS, если необходимо. См. ПолучитьНастройкиTls - tls
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат выполнения запроса
-Функция УдалитьКолонкуТаблицы(Знач Таблица, Знач Имя, Знач Соединение = "", Знач Tls = "") Экспорт
-
- Результат = OPI_ЗапросыSQL.УдалитьКолонкуТаблицы(OPI_PostgreSQL, Таблица, Имя, Соединение, Tls);
- Возврат Результат;
-
-КонецФункции
-
-// Гарантировать таблицу
-// Создает новую таблицу в случае отсутствия или обновляет состав колонок существующей таблицы
-//
-// Примечание:
-// В результате изменения структуры таблицы данные могут быть утеряны!^^
-// Рекомендуется предварительно опробовать данный метод на тестовых данных
-// Данная функция не обновляет тип данных существующих колонок
-//
-// Параметры:
-// Таблица - Строка - Имя таблицы - table
-// СтруктураКолонок - Структура Из КлючИЗначение - Структура колонок: Ключ > имя, Значение > Тип данных - cols
-// Соединение - Строка, Произвольный - Существующее соединение или путь к базе - dbc
-// Tls - Структура Из КлючИЗначение - Настройки TLS, если необходимо. См. ПолучитьНастройкиTls - tls
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат выполнения запроса
-Функция ГарантироватьТаблицу(Знач Таблица, Знач СтруктураКолонок, Знач Соединение = "", Знач Tls = "") Экспорт
-
- Результат = OPI_ЗапросыSQL.ГарантироватьТаблицу(OPI_PostgreSQL, Таблица, СтруктураКолонок, Соединение, Tls);
- Возврат Результат;
-
-КонецФункции
-
-// Очистить таблицу
-// Очищает таблицу базы
-//
-// Параметры:
-// Таблица - Строка - Имя таблицы - table
-// Соединение - Строка, Произвольный - Соединение или строка подключения - dbc
-// Tls - Структура Из КлючИЗначение - Настройки TLS, если необходимо. См. ПолучитьНастройкиTls - tls
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат выполнения запроса
-Функция ОчиститьТаблицу(Знач Таблица, Знач Соединение = "", Знач Tls = "") Экспорт
-
- Результат = OPI_ЗапросыSQL.УдалитьЗаписи(OPI_PostgreSQL, Таблица, , Соединение, Tls);
- Возврат Результат;
-
-КонецФункции
-
-// Удалить таблицу
-// Удаляет таблицу из базы
-//
-// Параметры:
-// Таблица - Строка - Имя таблицы - table
-// Соединение - Строка, Произвольный - Соединение или строка подключения - dbc
-// Tls - Структура Из КлючИЗначение - Настройки TLS, если необходимо. См. ПолучитьНастройкиTls - tls
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат выполнения запроса
-Функция УдалитьТаблицу(Знач Таблица, Знач Соединение = "", Знач Tls = "") Экспорт
-
- Результат = OPI_ЗапросыSQL.УдалитьТаблицу(OPI_PostgreSQL, Таблица, Соединение, Tls);
- Возврат Результат;
-
-КонецФункции
-
-// Добавить записи
-// Добавляет записи в таблицу
-//
-// Примечание:
-// Данные записей указываются как массив структур вида:^
-// `{'Имя поля 1': {'Тип данных': 'Значение'}, 'Имя поля 2': {'Тип данных': 'Значение'},...}`
-// Список доступных типов описан на начальной странице документации библиотеки PostgreSQL
-//
-// Параметры:
-// Таблица - Строка - Имя таблицы - table
-// МассивДанных - Массив Из Структура - Массив структур данных строк: Ключ > поле, Значение > значение поля - rows
-// Транзакция - Булево - Истина > добавление записей в транзакции с откатом при ошибке - trn
-// Соединение - Строка, Произвольный - Соединение или строка подключения - dbc
-// Tls - Структура Из КлючИЗначение - Настройки TLS, если необходимо. См. ПолучитьНастройкиTls - tls
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат выполнения запроса
-Функция ДобавитьЗаписи(Знач Таблица, Знач МассивДанных, Знач Транзакция = Истина, Знач Соединение = "", Знач Tls = "") Экспорт
-
- Результат = OPI_ЗапросыSQL.ДобавитьЗаписи(OPI_PostgreSQL, Таблица, МассивДанных, Транзакция, Соединение, Tls);
- Возврат Результат;
-
-КонецФункции
-
-// Получить записи
-// Получает записи из выбранной таблицы
-//
-// Параметры:
-// Таблица - Строка - Имя таблицы - table
-// Поля - Массив Из Строка - Поля для выборки - fields
-// Фильтры - Массив Из Структура - Массив фильтров. См. ПолучитьСтруктуруФильтраЗаписей - filter
-// Сортировка - Структура Из КлючИЗначение - Сортировка: Ключ > поле, Значение > направление (ASC, DESC) - order
-// Количество - Число - Ограничение количества получаемых строк - limit
-// Соединение - Строка, Произвольный - Соединение или строка подключения - dbc
-// Tls - Структура Из КлючИЗначение - Настройки TLS, если необходимо. См. ПолучитьНастройкиTls - tls
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат выполнения запроса
-Функция ПолучитьЗаписи(Знач Таблица
- , Знач Поля = "*"
- , Знач Фильтры = ""
- , Знач Сортировка = ""
- , Знач Количество = ""
- , Знач Соединение = ""
- , Знач Tls = "") Экспорт
-
- Результат = OPI_ЗапросыSQL.ПолучитьЗаписи(OPI_PostgreSQL
- , Таблица
- , Поля
- , Фильтры
- , Сортировка
- , Количество
- , Соединение
- , Tls);
-
- Возврат Результат;
-
-КонецФункции
-
-// Обновить записи
-// Обновляет значение записей по выбранным критериям
-//
-// Примечание:
-// Данные записей указываются как массив структур вида:^
-// `{'Имя поля 1': {'Тип данных': 'Значение'}, 'Имя поля 2': {'Тип данных': 'Значение'},...}`
-// Список доступных типов описан на начальной странице документации библиотеки PostgreSQL
-//
-// Параметры:
-// Таблица - Строка - Имя таблицы - table
-// СтруктураЗначений - Структура Из КлючИЗначение - Структура значений: Ключ > поле, Значение > значение поля - values
-// Фильтры - Массив Из Структура - Массив фильтров. См. ПолучитьСтруктуруФильтраЗаписей - filter
-// Соединение - Строка, Произвольный - Соединение или строка подключения - dbc
-// Tls - Структура Из КлючИЗначение - Настройки TLS, если необходимо. См. ПолучитьНастройкиTls - tls
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат выполнения запроса
-Функция ОбновитьЗаписи(Знач Таблица
- , Знач СтруктураЗначений
- , Знач Фильтры = ""
- , Знач Соединение = ""
- , Знач Tls = "") Экспорт
-
- Результат = OPI_ЗапросыSQL.ОбновитьЗаписи(OPI_PostgreSQL, Таблица, СтруктураЗначений, Фильтры, Соединение, Tls);
- Возврат Результат;
-
-КонецФункции
-
-// Удалить записи
-// Удаляет записи из таблицы
-//
-// Параметры:
-// Таблица - Строка - Имя таблицы - table
-// Фильтры - Массив Из Структура - Массив фильтров. См. ПолучитьСтруктуруФильтраЗаписей - filter
-// Соединение - Строка, Произвольный - Соединение или строка подключения - dbc
-// Tls - Структура Из КлючИЗначение - Настройки TLS, если необходимо. См. ПолучитьНастройкиTls - tls
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат выполнения запроса
-Функция УдалитьЗаписи(Знач Таблица, Знач Фильтры = "", Знач Соединение = "", Знач Tls = "") Экспорт
-
- Результат = OPI_ЗапросыSQL.УдалитьЗаписи(OPI_PostgreSQL, Таблица, Фильтры, Соединение, Tls);
- Возврат Результат;
-
-КонецФункции
-
-// Получить структуру фильтра записей
-// Получает структуру шаблон для фильтрации записей в запросах ORM
-//
-// Примечание:
-// Использование признака `raw` необходимо для составных конструкций, вроде `BEETWEEN`.^^
-// Например: при `raw:false` фильтр `type:BETWEEN` `value:10 AND 20` будет интерпритирован как `BETWEEN ?1 `^^
-// где `?1 = "10 AND 20"`, что приведет к ошибке.^^
-// В таком случае необходимо использовать `raw:true` для установки условия напрямую в текст запроса
-//
-// Параметры:
-// Пустая - Булево - Истина > структура с пустыми значениями, Ложь > в значениях будут описания полей - empty
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - Элемент фильтра записей
-Функция ПолучитьСтруктуруФильтраЗаписей(Знач Пустая = Ложь) Экспорт
-
- Возврат OPI_ЗапросыSQL.ПолучитьСтруктуруФильтраЗаписей(Пустая);
-
-КонецФункции
-
-#КонецОбласти
-
-#КонецОбласти
-
-#Область СлужебныйПрограммныйИнтерфейс
-
-Функция ПолучитьОсобенности() Экспорт
-
- Особенности = Новый Соответствие;
- Особенности.Вставить("НумерацияПараметров", Истина);
- Особенности.Вставить("МаркерПараметров" , "$");
- Особенности.Вставить("СУБД" , "postgres");
- Особенности.Вставить("ПолеКолонки" , "column_name");
- Особенности.Вставить("НачалоТранзакции" , "BEGIN");
-
- Возврат Особенности;
-
-КонецФункции
-
-Функция ПолучитьСтруктуруТипов() Экспорт
-
- ТипыКоллекции = Новый СписокЗначений();
- ТипыКоллекции.Добавить("JSONB");
- ТипыКоллекции.Добавить("JSON");
- ТипыКоллекции.Добавить("HSTORE");
-
- СтруктураТипов = Новый Соответствие;
- СтруктураТипов.Вставить("ДвоичныеДанные" , "BYTEA");
- СтруктураТипов.Вставить("УникальныйИдентификатор", "UUID");
- СтруктураТипов.Вставить("Булево" , "BOOL");
- СтруктураТипов.Вставить("Дробное" , "REAL");
- СтруктураТипов.Вставить("Целое" , "INT");
- СтруктураТипов.Вставить("Дата" , "TIMESTAMP");
- СтруктураТипов.Вставить("Строка" , "VARCHAR");
- СтруктураТипов.Вставить("Коллекции" , ТипыКоллекции);
- СтруктураТипов.Вставить("БулевоКакЧисло" , Ложь);
-
- Возврат СтруктураТипов;
-
-КонецФункции
-
-#КонецОбласти
diff --git a/XML/CommonModules/OPI_RCON.xml b/XML/CommonModules/OPI_RCON.xml
deleted file mode 100644
index 8f0a5e532f..0000000000
--- a/XML/CommonModules/OPI_RCON.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- OPI_RCON
-
-
- ru
- RCON (ОПИ)
-
-
- Модуль для работы с RCON из набора ОПИ
- false
- false
- true
- true
- true
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git a/XML/CommonModules/OPI_RCON/Ext/Module.bsl b/XML/CommonModules/OPI_RCON/Ext/Module.bsl
deleted file mode 100644
index a4ba82e764..0000000000
--- a/XML/CommonModules/OPI_RCON/Ext/Module.bsl
+++ /dev/null
@@ -1,163 +0,0 @@
-// OneScript: ./OInt/core/Modules/OPI_RCON.os
-// Lib: RCON
-// CLI: rcon
-// Keywords: rcon, remote console
-
-// MIT License
-
-// Copyright (c) 2023-2025 Anton Tsitavets
-
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-
-// The above copyright notice and this permission notice shall be included in all
-// copies or substantial portions of the Software.
-
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-// SOFTWARE.
-
-// https://github.com/Bayselonarrend/OpenIntegrations
-
-// BSLLS:Typo-off
-// BSLLS:LatinAndCyrillicSymbolInWord-off
-// BSLLS:IncorrectLineBreak-off
-// BSLLS:NumberOfOptionalParams-off
-// BSLLS:UsingServiceTag-off
-// BSLLS:LineLength-off
-// BSLLS:UsingSynchronousCalls-off
-// BSLLS:MagicNumber-off
-
-//@skip-check module-structure-top-region
-//@skip-check module-structure-method-in-regions
-//@skip-check wrong-string-literal-content
-//@skip-check method-too-many-params
-
-#Область ПрограммныйИнтерфейс
-
-#Область ВыполнениеКоманд
-
-// Открыть соединение !NOCLI
-// Открывает новое соединения RCON
-//
-// Параметры:
-// ПараметрыСоединения - Структура Из КлючИЗначение - Параметры соединения. См. СформироватьПараметрыСоединения - params
-//
-// Возвращаемое значение:
-// Произвольный - Объект коннектора или структура с информацией об ошибке
-Функция ОткрытьСоединение(Знач ПараметрыСоединения) Экспорт
-
- Если ЭтоКоннектор(ПараметрыСоединения) Тогда
- Возврат ПараметрыСоединения;
- КонецЕсли;
-
- OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(ПараметрыСоединения);
-
- МассивОбязательных = СтрРазделить("url,password,read_timeout,write_timeout", ",");
- МассивНедостающих = OPI_Инструменты.НайтиОтсутствующиеПоляКоллекции(ПараметрыСоединения, МассивОбязательных);
-
- Если ЗначениеЗаполнено(МассивНедостающих) Тогда
- ВызватьИсключение СтрШаблон("Отсутствуют параметры подключения: %1", СтрСоединить(МассивНедостающих, ", "));
- КонецЕсли;
-
- Коннектор = OPI_Компоненты.ПолучитьКомпоненту("RCON");
-
- URL = ПараметрыСоединения["url"];
- Пароль = ПараметрыСоединения["password"];
- ТаймаутЧтения = ПараметрыСоединения["read_timeout"];
- ТаймаутЗаписи = ПараметрыСоединения["write_timeout"];
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(URL);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Пароль);
- OPI_ПреобразованиеТипов.ПолучитьЧисло(ТаймаутЧтения);
- OPI_ПреобразованиеТипов.ПолучитьЧисло(ТаймаутЗаписи);
-
- Результат = Коннектор.Connect(URL, Пароль, ТаймаутЧтения, ТаймаутЗаписи);
- Результат = OPI_Инструменты.JsonВСтруктуру(Результат, Ложь);
-
- Возврат ?(Результат["result"], Коннектор, Результат);
-
-КонецФункции
-
-// Выполнить команду
-// Выполняет команду на сервере
-//
-// Примечание:
-// При передаче параметров соединения, новое соединение будет создано и закрыто в рамках выполнения одной команды.^^
-// Для выполнения нескольких команд (в версиях для OS и 1С) рекомендуется использовать заранее созданное соединение (см. ОткрытьСоединение)
-//
-// Параметры:
-// Команда - Строка - Текст команды - exec
-// Соединение - Произвольный, Структура Из КлючИЗначение - Соединение или параметры соединения - conn
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат выполнения команды
-Функция ВыполнитьКоманду(Знач Команда, Знач Соединение) Экспорт
-
- Если ЭтоКоннектор(Соединение) Тогда
- Коннектор = Соединение;
- Иначе
- Коннектор = ОткрытьСоединение(Соединение);
- КонецЕсли;
-
- Если Не ЭтоКоннектор(Коннектор) Тогда
- Возврат Коннектор;
- КонецЕсли;
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Команда);
-
- Результат = Коннектор.Command(Команда);
- Результат = OPI_Инструменты.JsonВСтруктуру(Результат);
-
- Возврат Результат;
-
-КонецФункции
-
-// Сформировать параметры соединения
-// Формирует коллекцию параметров соединения
-//
-// Параметры:
-// URL - Строка - URL сервера - url
-// Пароль - Строка - Пароль для подключения - pass
-// ТаймаутЧтения - Число - Таймаут ожидания ответа (в секундах) - rtout
-// ТаймаутЗаписи - Число - Таймаут ожидания отправки запроса (в секундах) - wtout
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - Структура параметров соединения
-Функция СформироватьПараметрыСоединения(Знач URL, Знач Пароль, Знач ТаймаутЧтения = 30, Знач ТаймаутЗаписи = 30) Экспорт
-
- ПараметрыСоединения = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("url" , URL , "Строка", ПараметрыСоединения);
- OPI_Инструменты.ДобавитьПоле("password" , Пароль , "Строка", ПараметрыСоединения);
- OPI_Инструменты.ДобавитьПоле("read_timeout" , ТаймаутЧтения, "Число" , ПараметрыСоединения);
- OPI_Инструменты.ДобавитьПоле("write_timeout", ТаймаутЗаписи, "Число" , ПараметрыСоединения);
-
- Возврат ПараметрыСоединения;
-
-КонецФункции
-
-// Это коннектор !NOCLI
-// Проверяет, что значение является объектом внешней компоненты RCON
-//
-// Параметры:
-// Значение - Произвольный - Значение для проверки - value
-//
-// Возвращаемое значение:
-// Булево - Это коннектор
-Функция ЭтоКоннектор(Знач Значение) Экспорт
-
- Возврат Строка(ТипЗнч(Значение)) = "AddIn.OPI_RCON.Main";
-
-КонецФункции
-
-#КонецОбласти
-
-#КонецОбласти
diff --git a/XML/CommonModules/OPI_ReportPortal.xml b/XML/CommonModules/OPI_ReportPortal.xml
deleted file mode 100644
index f7acb0fdc5..0000000000
--- a/XML/CommonModules/OPI_ReportPortal.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- OPI_ReportPortal
-
-
- ru
- ReportPortal (ОПИ)
-
-
- Модуль для работы с ReportPortal из набора ОПИ
- false
- false
- true
- true
- true
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git a/XML/CommonModules/OPI_ReportPortal/Ext/Module.bsl b/XML/CommonModules/OPI_ReportPortal/Ext/Module.bsl
deleted file mode 100644
index a948335aad..0000000000
--- a/XML/CommonModules/OPI_ReportPortal/Ext/Module.bsl
+++ /dev/null
@@ -1,480 +0,0 @@
-// OneScript: ./OInt/core/Modules/OPI_ReportPortal.os
-// Lib: ReportPortal
-// CLI: rportal
-// Keywords: reportportal
-
-// MIT License
-
-// Copyright (c) 2023-2025 Anton Tsitavets
-
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-
-// The above copyright notice and this permission notice shall be included in all
-// copies or substantial portions of the Software.
-
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-// SOFTWARE.
-
-// https://github.com/Bayselonarrend/OpenIntegrations
-
-// BSLLS:Typo-off
-// BSLLS:LatinAndCyrillicSymbolInWord-off
-// BSLLS:IncorrectLineBreak-off
-// BSLLS:UnreachableCode-off
-// BSLLS:CommentedCode-off
-// BSLLS:UsingServiceTag-off
-// BSLLS:NumberOfParams-off
-// BSLLS:LineLength-off
-// BSLLS:UsingSynchronousCalls-off
-// BSLLS:MagicNumber-off
-
-//@skip-check module-structure-top-region
-//@skip-check module-structure-method-in-regions
-//@skip-check wrong-string-literal-content
-
-#Область ПрограммныйИнтерфейс
-
-#Область Авторизация
-
-// Получить временный токен
-// Получает временный токен на основе логина и пароля
-//
-// Параметры:
-// URL - Строка - URL сервера ReportPortal - url
-// Логин - Строка - Логин пользователя - login
-// Пароль - Строка - Пароль пользователя - pass
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от ReportPortal
-Функция ПолучитьВременныйТокен(Знач URL, Знач Логин, Знач Пароль) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Логин);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Пароль);
-
- ДополнитьURL(URL, "uat/sso/oauth/token");
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать()
- .УстановитьURL(URL)
- .ДобавитьBasicАвторизацию("ui", "uiman")
- .УстановитьFormТело(Новый Структура("grant_type,username,password", "password", Логин, Пароль))
- .ОбработатьЗапрос("POST")
- .ВернутьОтветКакJSONКоллекцию();
-
- Возврат Результат;
-
-КонецФункции
-
-// Получить постоянный токен
-// Создает постоянный токен пользователя ReportPortal
-//
-// Параметры:
-// URL - Строка - URL сервера ReportPortal - url
-// Токен - Строка - Токен доступа - token
-// IDПользователя - Строка - ID пользователя - user
-// ИмяКлюча - Строка - Имя токена - name
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от ReportPortal
-Функция ПолучитьПостоянныйТокен(Знач URL, Знач Токен, Знач IDПользователя, Знач ИмяКлюча) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(IDПользователя);
-
- ДополнитьURL(URL, СтрШаблон("api/users/%1/api-keys", IDПользователя));
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("name", ИмяКлюча, "Строка", Параметры);
-
- Заголовки = ПолучитьЗаголовокАвторизации(Токен);
- Результат = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, Заголовки);
-
- Возврат Результат;
-
-КонецФункции
-
-// Удалить постоянный токен
-// Удаляет ранее созданный токен пользователя
-//
-// Параметры:
-// URL - Строка - URL сервера ReportPortal - url
-// Токен - Строка - Токен доступа - token
-// IDПользователя - Строка - ID пользователя - user
-// IDКлюча - Строка - ID токена - id
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от ReportPortal
-Функция УдалитьПостоянныйТокен(Знач URL, Знач Токен, Знач IDПользователя, Знач IDКлюча) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(IDПользователя);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(IDКлюча);
-
- ДополнитьURL(URL, СтрШаблон("api/users/%1/api-keys/%2", IDПользователя, IDКлюча));
-
- Заголовки = ПолучитьЗаголовокАвторизации(Токен);
-
- Результат = OPI_ЗапросыHTTP.Delete(URL, , Заголовки);
-
- Возврат Результат;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область УправлениеРезультатами
-
-// Создать запуск
-// Запускает новый сеанс выполнения тестов
-//
-// Параметры:
-// URL - Строка - URL сервера ReportPortal - url
-// Токен - Строка - Токен доступа - token
-// Проект - Строка - ID проекта - proj
-// СтруктураЗапуска - Структура Из КлючИЗначение - Параметры запуска. См. ПолучитьСтруктуруЗапуска - params
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от ReportPortal
-Функция СоздатьЗапуск(Знач URL, Знач Токен, Знач Проект, Знач СтруктураЗапуска) Экспорт
-
- ТекстОшибки = "Структура запуска не является корректной коллекцией КлючИЗначение";
-
- OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(СтруктураЗапуска, ТекстОшибки);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Проект);
-
- ДополнитьURL(URL, СтрШаблон("api/v1/%1/launch", Проект));
-
- Заголовки = ПолучитьЗаголовокАвторизации(Токен);
-
- Результат = OPI_ЗапросыHTTP.PostСТелом(URL, СтруктураЗапуска, Заголовки);
-
- Возврат Результат;
-
-КонецФункции
-
-// Создать элемент
-// Создает новый тестовый элемент
-//
-// Параметры:
-// URL - Строка - URL сервера ReportPortal - url
-// Токен - Строка - Токен доступа - token
-// Проект - Строка - ID проекта - proj
-// СтруктураЭлемента - Структура Из КлючИЗначение - Параметры элемента. См. ПолучитьСтруктуруЭлемента - params
-// Родитель - Строка - ID родительского элемента, если необходимо - parent
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от ReportPortal
-Функция СоздатьЭлемент(Знач URL, Знач Токен, Знач Проект, Знач СтруктураЭлемента, Знач Родитель = "") Экспорт
-
- ТекстОшибки = "Структура элемента не является корректной коллекцией КлючИЗначение";
-
- OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(СтруктураЭлемента, ТекстОшибки);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Проект);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Родитель);
-
- Родитель = ?(ЗначениеЗаполнено(Родитель), "/" + Родитель, "");
-
- ДополнитьURL(URL, СтрШаблон("api/v1/%1/item%2", Проект, Родитель));
-
- Заголовки = ПолучитьЗаголовокАвторизации(Токен);
-
- Результат = OPI_ЗапросыHTTP.PostСТелом(URL, СтруктураЭлемента, Заголовки);
-
- Возврат Результат;
-
-КонецФункции
-
-// Завершить запуск
-// Завершает запущенный ранее сеанс выполнения тестов
-//
-// Параметры:
-// URL - Строка - URL сервера ReportPortal - url
-// Токен - Строка - Токен доступа - token
-// Проект - Строка - ID проекта - proj
-// IDЗапуска - Строка - ID запуска - id
-// СтруктураЗавершения - Структура Из КлючИЗначение - Параметры завершения. См. ПолучитьСтруктуруЗавершенияЗапуска - params
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от ReportPortal
-Функция ЗавершитьЗапуск(Знач URL, Знач Токен, Знач Проект, Знач IDЗапуска, Знач СтруктураЗавершения) Экспорт
-
- ТекстОшибки = "Структура завершения не является корректной коллекцией КлючИЗначение";
-
- OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(СтруктураЗавершения, ТекстОшибки);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Проект);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЗапуска);
-
- ДополнитьURL(URL, СтрШаблон("api/v1/%1/launch/%2/finish", Проект, IDЗапуска));
-
- Заголовки = ПолучитьЗаголовокАвторизации(Токен);
-
- Результат = OPI_ЗапросыHTTP.PutСТелом(URL, СтруктураЗавершения, Заголовки);
-
- Возврат Результат;
-
-КонецФункции
-
-// Завершить элемент
-// Завершает работу созданного ранее тестового элемента
-//
-// Параметры:
-// URL - Строка - URL сервера ReportPortal - url
-// Токен - Строка - Токен доступа - token
-// Проект - Строка - ID проекта - proj
-// IDЭлемента - Строка - ID элемента - id
-// СтруктураЗавершения - Структура Из КлючИЗначение - Параметры завершения. См. ПолучитьСтруктуруЗавершенияЭлемента - params
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от ReportPortal
-Функция ЗавершитьЭлемент(Знач URL, Знач Токен, Знач Проект, Знач IDЭлемента, Знач СтруктураЗавершения) Экспорт
-
- ТекстОшибки = "Структура завершения не является корректной коллекцией КлючИЗначение";
-
- OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(СтруктураЗавершения, ТекстОшибки);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Проект);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЭлемента);
-
- ДополнитьURL(URL, СтрШаблон("api/v1/%1/item/%2", Проект, IDЭлемента));
-
- Заголовки = ПолучитьЗаголовокАвторизации(Токен);
-
- Результат = OPI_ЗапросыHTTP.PutСТелом(URL, СтруктураЗавершения, Заголовки);
-
- Возврат Результат;
-
-КонецФункции
-
-// Получить структуру запуска
-// Получает структуру параметров запуска
-//
-// Параметры:
-// Пустая - Булево - Истина > структура с пустыми значениями, Ложь > в значениях будут описания полей - empty
-// КакСоответствие - Булево - Истина > возвращает поля фильтра как соответствие - map
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - Структура полей
-Функция ПолучитьСтруктуруЗапуска(Знач Пустая = Ложь, Знач КакСоответствие = Ложь) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьБулево(Пустая);
- OPI_ПреобразованиеТипов.ПолучитьБулево(КакСоответствие);
-
- Если КакСоответствие Тогда
- СтруктураЗапуска = Новый Соответствие;
- Иначе
- СтруктураЗапуска = Новый Структура;
- КонецЕсли;
-
- СтруктураЗапуска.Вставить("name" , "<название запуска>");
- СтруктураЗапуска.Вставить("startTime" , "<время начала запуска>");
- СтруктураЗапуска.Вставить("description", "<описание запуска>");
- СтруктураЗапуска.Вставить("uuid" , "");
- СтруктураЗапуска.Вставить("attributes" , "<атрибуты запуска в виде ключ1:значение1, ключ2:значение2>");
- СтруктураЗапуска.Вставить("mode" , "<режим: default или debug>");
- СтруктураЗапуска.Вставить("rerun" , "<признак перезапуска>");
- СтруктураЗапуска.Вставить("rerunOf" , "");
-
- Если Пустая Тогда
- СтруктураЗапуска = OPI_Инструменты.ОчиститьКоллекциюРекурсивно(СтруктураЗапуска);
- КонецЕсли;
-
- //@skip-check constructor-function-return-section
- Возврат СтруктураЗапуска;
-
-КонецФункции
-
-// Получить структуру элемента
-// Получает структуру параметров тестового элемента
-//
-// Параметры:
-// Пустая - Булево - Истина > структура с пустыми значениями, Ложь > в значениях будут описания полей - empty
-// КакСоответствие - Булево - Истина > возвращает поля фильтра как соответствие - map
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - Структура полей
-Функция ПолучитьСтруктуруЭлемента(Знач Пустая = Ложь, Знач КакСоответствие = Ложь) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьБулево(Пустая);
- OPI_ПреобразованиеТипов.ПолучитьБулево(КакСоответствие);
-
- Если КакСоответствие Тогда
- СтруктураЭлемента = Новый Соответствие;
- Иначе
- СтруктураЭлемента = Новый Структура;
- КонецЕсли;
-
- СтруктураЭлемента.Вставить("name" , "<название элемента>");
- СтруктураЭлемента.Вставить("startTime" , "<время начала>");
- СтруктураЭлемента.Вставить("type" , "<тип элемента: suite, story, test, scenario, step, before_class, before_groups, before_method, before_suite, before_test, after_class, after_groups, after_method, after_suite, after_test>");
- СтруктураЭлемента.Вставить("launchUuid" , "");
- СтруктураЭлемента.Вставить("description", "<описание элемента>");
- СтруктураЭлемента.Вставить("attributes" , "<атрибуты элемента в виде ключ1:значение1, ключ2:значение2>");
- СтруктураЭлемента.Вставить("uuid" , "");
- СтруктураЭлемента.Вставить("codeRef" , "<физическое расположение тестов>");
- СтруктураЭлемента.Вставить("parameters" , "<параметры для параметризированных тестов>");
- СтруктураЭлемента.Вставить("retry" , "<является перезапуском>");
-
- Если Пустая Тогда
- СтруктураЭлемента = OPI_Инструменты.ОчиститьКоллекциюРекурсивно(СтруктураЭлемента);
- КонецЕсли;
-
- //@skip-check constructor-function-return-section
- Возврат СтруктураЭлемента;
-
-КонецФункции
-
-// Получить структуру завершения элемента
-// Получает структуру параметров завершения выполнения тестового элемента
-//
-// Параметры:
-// Пустая - Булево - Истина > структура с пустыми значениями, Ложь > в значениях будут описания полей - empty
-// КакСоответствие - Булево - Истина > возвращает поля фильтра как соответствие - map
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - Структура полей
-Функция ПолучитьСтруктуруЗавершенияЭлемента(Знач Пустая = Ложь, Знач КакСоответствие = Ложь) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьБулево(Пустая);
- OPI_ПреобразованиеТипов.ПолучитьБулево(КакСоответствие);
-
- Если КакСоответствие Тогда
- СтруктураЭлемента = Новый Соответствие;
- Иначе
- СтруктураЭлемента = Новый Структура;
- КонецЕсли;
-
- СтруктураЭлемента.Вставить("endTime" , "<время окончания>");
- СтруктураЭлемента.Вставить("launchUuid" , "");
- СтруктураЭлемента.Вставить("status" , "<статус завершения: passed, failed, stopped, skipped, interrupted, cancelled>");
- СтруктураЭлемента.Вставить("description", "<описание элемента. Перезаписывает указанное при создании>");
- СтруктураЭлемента.Вставить("attributes" , "<атрибуты элемента. Перезаписывает указанное при создании>");
- СтруктураЭлемента.Вставить("retry" , "<флаг завершения повторной попытки>");
- СтруктураЭлемента.Вставить("issue" , "<информация о проблеме>");
-
- Если Пустая Тогда
- СтруктураЭлемента = OPI_Инструменты.ОчиститьКоллекциюРекурсивно(СтруктураЭлемента);
- КонецЕсли;
-
- //@skip-check constructor-function-return-section
- Возврат СтруктураЭлемента;
-
-КонецФункции
-
-// Получить структуру завершения запуска
-// Получает структуру параметров завершения тестового сеанса
-//
-// Параметры:
-// Время - Дата - Дата и время завершения запуска - end
-// Статус - Строка - Статус заверщения: passed, failed, stopped, skipped, interrupted, cancelled - status
-// Описание - Строка - Описание запуска. Перезаписывает указанное при создании - descr
-// Артибуты - Строка - Атрибуты запуска. Перезаписывает указанное при создании - attr
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - Структура полей
-Функция ПолучитьСтруктуруЗавершенияЗапуска(Знач Время, Знач Статус = "", Знач Описание = "", Знач Артибуты = "") Экспорт
-
- Строка_ = "Строка";
-
- СтруктураЗавершения = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("endTime" , Время , "ДатаISO", СтруктураЗавершения);
- OPI_Инструменты.ДобавитьПоле("status" , Статус , Строка_ , СтруктураЗавершения);
- OPI_Инструменты.ДобавитьПоле("description", Описание, Строка_ , СтруктураЗавершения);
- OPI_Инструменты.ДобавитьПоле("attributes" , Артибуты, Строка_ , СтруктураЗавершения);
-
- Возврат СтруктураЗавершения;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область ЗаписьЛогов
-
-// Записать лог
-// Добавляет информацию о выполнении для тестового элемента
-//
-// Параметры:
-// URL - Строка - URL сервера ReportPortal - url
-// Токен - Строка - Токен доступа - token
-// Проект - Строка - ID проекта - proj
-// СтруктураЛога - Структура Из КлючИЗначение - Информация о выполнении. См. ПолучитьСтруктуруЛога - params
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от ReportPortal
-Функция ЗаписатьЛог(Знач URL, Знач Токен, Знач Проект, Знач СтруктураЛога) Экспорт
-
- ТекстОшибки = "Структура лога не является корректной коллекцией КлючИЗначение";
-
- OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(СтруктураЛога, ТекстОшибки);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Проект);
-
- ДополнитьURL(URL, СтрШаблон("api/v1/%1/log", Проект));
-
- Заголовки = ПолучитьЗаголовокАвторизации(Токен);
-
- Результат = OPI_ЗапросыHTTP.PostСТелом(URL, СтруктураЛога, Заголовки);
-
- Возврат Результат;
-
-КонецФункции
-
-// Получить структуру лога
-// Получает структуру параметров для записи лога
-//
-// Параметры:
-// IDЗапуска - Строка - ID запуска, к которому принадлежит тестовый элемент - launch
-// IDЭлемента - Строка - ID тестового элемента - id
-// Время - Дата - Дата и время записи лога - time
-// Текст - Строка - Текстовая информация лога - text
-// Уровень - Строка - Уровень информации: error, warn, info, debug, trace, fatal, unknown - level
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - Структура полей
-Функция ПолучитьСтруктуруЛога(Знач IDЗапуска, Знач IDЭлемента, Знач Время, Знач Текст = "", Знач Уровень = "info") Экспорт
-
- Строка_ = "Строка";
-
- СтруктураЛога = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("launchUuid", IDЗапуска , Строка_ , СтруктураЛога);
- OPI_Инструменты.ДобавитьПоле("itemUuid" , IDЭлемента, Строка_ , СтруктураЛога);
- OPI_Инструменты.ДобавитьПоле("time" , Время , "Дата" , СтруктураЛога);
- OPI_Инструменты.ДобавитьПоле("message" , Текст , Строка_ , СтруктураЛога);
- OPI_Инструменты.ДобавитьПоле("level" , Уровень , Строка_ , СтруктураЛога);
-
- Возврат СтруктураЛога;
-
-КонецФункции
-
-#КонецОбласти
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-Процедура ДополнитьURL(URL, Знач Путь)
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(URL);
-
- URL = ?(СтрЗаканчиваетсяНа(URL, "/"), URL, URL + "/");
- URL = URL + Путь;
-
-КонецПроцедуры
-
-Функция ПолучитьЗаголовокАвторизации(Знач Токен)
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
-
- Заголовки = Новый Соответствие;
- OPI_Инструменты.ДобавитьПоле("Authorization", СтрШаблон("Bearer %1", Токен), "Строка", Заголовки);
-
- Возврат Заголовки;
-
-КонецФункции
-
-#КонецОбласти
diff --git a/XML/CommonModules/OPI_S3.xml b/XML/CommonModules/OPI_S3.xml
deleted file mode 100644
index 0b163c883a..0000000000
--- a/XML/CommonModules/OPI_S3.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- OPI_S3
-
-
- ru
- S3 (ОПИ)
-
-
- Модуль для работы с S3 хранилищами из набора ОПИ
- false
- false
- true
- true
- true
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git a/XML/CommonModules/OPI_S3/Ext/Module.bsl b/XML/CommonModules/OPI_S3/Ext/Module.bsl
deleted file mode 100644
index 0196c8bd2d..0000000000
--- a/XML/CommonModules/OPI_S3/Ext/Module.bsl
+++ /dev/null
@@ -1,1971 +0,0 @@
-// OneScript: ./OInt/core/Modules/OPI_S3.os
-// Lib: S3
-// CLI: s3
-// Keywords: s3, minio, aws, simple storage service
-
-// MIT License
-
-// Copyright (c) 2023-2025 Anton Tsitavets
-
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-
-// The above copyright notice and this permission notice shall be included in all
-// copies or substantial portions of the Software.
-
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-// SOFTWARE.
-
-// https://github.com/Bayselonarrend/OpenIntegrations
-
-// BSLLS:Typo-off
-// BSLLS:LatinAndCyrillicSymbolInWord-off
-// BSLLS:IncorrectLineBreak-off
-// BSLLS:NumberOfOptionalParams-off
-// BSLLS:UsingServiceTag-off
-// BSLLS:LineLength-off
-// BSLLS:UsingSynchronousCalls-off
-// BSLLS:MagicNumber-off
-
-//@skip-check module-structure-top-region
-//@skip-check module-structure-method-in-regions
-//@skip-check wrong-string-literal-content
-//@skip-check method-too-many-params
-//@skip-check constructor-function-return-section
-//@skip-check bsl-legacy-check-expression-type
-
-#Область ПрограммныйИнтерфейс
-
-#Область ОбщиеМетоды
-
-// Получить структуру данных
-// Возвращает основные данные запроса в структурированном виде
-//
-// Параметры:
-// URL - Строка - URL: домен для обычных методов или полный URL с параметрами для прямой отправки запросов - url
-// AccessKey - Строка - Access key для авторизации - access
-// SecretKey - Строка - Secret key для авторизации - secret
-// Region - Строка - Регион сервиса - region
-// Service - Строка - Вид сервиса, если отличен от s3 - service
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - Структура основных данных запроса
-Функция ПолучитьСтруктуруДанных(Знач URL, Знач AccessKey, Знач SecretKey, Знач Region, Знач Service = "s3") Экспорт
-
- Строка_ = "Строка";
-
- СтруктураАвторизации = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("URL" , URL , Строка_, СтруктураАвторизации);
- OPI_Инструменты.ДобавитьПоле("AccessKey", AccessKey, Строка_, СтруктураАвторизации);
- OPI_Инструменты.ДобавитьПоле("SecretKey", SecretKey, Строка_, СтруктураАвторизации);
- OPI_Инструменты.ДобавитьПоле("Region" , Region , Строка_, СтруктураАвторизации);
- OPI_Инструменты.ДобавитьПоле("Service" , Service , Строка_, СтруктураАвторизации);
-
- Возврат СтруктураАвторизации;
-
-КонецФункции
-
-// Отправить запрос без тела
-// Отправляет простой http запрос без тела
-//
-// Параметры:
-// Метод - Строка - HTTP метод - method
-// ОсновныеДанные - Структура Из КлючИЗначение - Основные данные запроса (c полным URL). См. ПолучитьСтруктуруДанных - basic
-// ОжидаютсяДвоичные - Булево - Отключает попытку преобразования ответа в JSON - binary
-// Заголовки - Соответствие Из КлючИЗначение - Дополнительные заголовки запроса, если необходимо - headers
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
-Функция ОтправитьЗапросБезТела(Знач Метод
- , Знач ОсновныеДанные
- , Знач ОжидаютсяДвоичные = Ложь
- , Знач Заголовки = Неопределено) Экспорт
-
- Ответ = ОтправитьЗапрос(Метод, ОсновныеДанные, , ОжидаютсяДвоичные, Заголовки);
- Возврат Ответ;
-
-КонецФункции
-
-// Отправить запрос с телом
-// Отправляет http запрос с телом
-//
-// Параметры:
-// Метод - Строка - HTTP метод - method
-// ОсновныеДанные - Структура Из КлючИЗначение - Основные данные запроса (c полным URL). См. ПолучитьСтруктуруДанных - basic
-// Тело - Строка, ДвоичныеДанные - Двоичное тело запроса или путь к файлу - body
-// ОжидаютсяДвоичные - Булево - Отключает попытку преобразования ответа в JSON - binary
-// Заголовки - Соответствие Из КлючИЗначение - Дополнительные заголовки запроса, если необходимо - headers
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
-Функция ОтправитьЗапросСТелом(Знач Метод
- , Знач ОсновныеДанные
- , Знач Тело
- , Знач ОжидаютсяДвоичные = Ложь
- , Знач Заголовки = Неопределено) Экспорт
-
- Ответ = ОтправитьЗапрос(Метод, ОсновныеДанные, Тело, ОжидаютсяДвоичные, Заголовки);
- Возврат Ответ;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область РаботаСБакетами
-
-// Создать бакет
-// Создает новый бакет с выбранным именем
-//
-// Примечание:
-// Метод в документации AWS: [CreateBucket](@docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html)
-//
-// Параметры:
-// Наименование - Строка - Наименование бакета - name
-// ОсновныеДанные - Структура Из КлючИЗначение - Основные данные запроса. См. ПолучитьСтруктуруДанных - basic
-// Каталог - Булево - Истина > Path style URL, Ложь > Virtual hosted style URL - dir
-// Заголовки - Соответствие Из КлючИЗначение - Дополнительные заголовки запроса, если необходимо - headers
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
-Функция СоздатьБакет(Знач Наименование, Знач ОсновныеДанные, Знач Каталог = Ложь, Знач Заголовки = Неопределено) Экспорт
-
- Ответ = УправлениеБакетом(Наименование, ОсновныеДанные, Каталог, "PUT", Заголовки);
- Возврат Ответ;
-
-КонецФункции
-
-// Удалить бакет
-// Удаляет бакет с выбранным именем
-//
-// Примечание:
-// Метод в документации AWS: [DeleteBucket](@docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html)
-//
-// Параметры:
-// Наименование - Строка - Наименование бакета - name
-// ОсновныеДанные - Структура Из КлючИЗначение - Основные данные запроса. См. ПолучитьСтруктуруДанных - basic
-// Каталог - Булево - Истина > Path style URL, Ложь > Virtual hosted style URL - dir
-// Заголовки - Соответствие Из КлючИЗначение - Дополнительные заголовки запроса, если необходимо - headers
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
-Функция УдалитьБакет(Знач Наименование, Знач ОсновныеДанные, Знач Каталог = Ложь, Знач Заголовки = Неопределено) Экспорт
-
- Ответ = УправлениеБакетом(Наименование, ОсновныеДанные, Каталог, "DELETE", Заголовки);
- Возврат Ответ;
-
-КонецФункции
-
-// Проверить доступность бакета
-// Проверяет доступность бакета для текущего аккаунта или аккаунта по ID
-//
-// Примечание:
-// Метод в документации AWS: [HeadBucket](@docs.aws.amazon.com/AmazonS3/latest/API/API_HeadBucket.html)
-//
-// Параметры:
-// Наименование - Строка - Наименование бакета - name
-// ОсновныеДанные - Структура Из КлючИЗначение - Основные данные запроса. См. ПолучитьСтруктуруДанных - basic
-// Каталог - Булево - Истина > Path style URL, Ложь > Virtual hosted style URL - dir
-// IDАккаунта - Строка - ID аккаунта для проверки, что бакет принадлежит ему - account
-// Заголовки - Соответствие Из КлючИЗначение - Дополнительные заголовки запроса, если необходимо - headers
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
-Функция ПроверитьДоступностьБакета(Знач Наименование
- , Знач ОсновныеДанные
- , Знач Каталог = Ложь
- , Знач IDАккаунта = ""
- , Знач Заголовки = Неопределено) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(IDАккаунта);
-
- Если ЗначениеЗаполнено(IDАккаунта) Тогда
- ЗаголовокАккаунта = Новый Соответствие();
- ЗаголовокАккаунта.Вставить("x-amz-expected-bucket-owner", IDАккаунта);
- ДобавитьДополнительныеЗаголовки(Заголовки, ЗаголовокАккаунта);
- КонецЕсли;
-
- Ответ = УправлениеБакетом(Наименование, ОсновныеДанные, Каталог, "HEAD", Заголовки);
- Возврат Ответ;
-
-КонецФункции
-
-// Установить шифрование бакета
-// Устанавлиает шифрование бакета по XML конфигурации
-//
-// Примечание:
-// Метод в документации AWS: [PutBucketEncryption](@docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html)
-//
-// Параметры:
-// Наименование - Строка - Наименование бакета - name
-// ОсновныеДанные - Структура Из КлючИЗначение - Основные данные запроса. См. ПолучитьСтруктуруДанных - basic
-// XMLКонфигурация - Строка - XML строка или файл конфигурации шифрования - conf
-// Каталог - Булево - Истина > Path style URL, Ложь > Virtual hosted style URL - dir
-// Заголовки - Соответствие Из КлючИЗначение - Дополнительные заголовки запроса, если необходимо - headers
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
-Функция УстановитьШифрованиеБакета(Знач Наименование
- , Знач ОсновныеДанные
- , Знач XMLКонфигурация
- , Знач Каталог = Ложь
- , Знач Заголовки = Неопределено) Экспорт
-
- ОсновныеДанные_ = OPI_Инструменты.КопироватьКоллекцию(ОсновныеДанные);
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(XMLКонфигурация, Истина);
- XMLКонфигурация = ПолучитьДвоичныеДанныеИзСтроки(XMLКонфигурация);
-
- URL = ПолучитьURLСервиса(ОсновныеДанные_);
- URL = СформироватьURLБакета(URL, Наименование, Каталог);
- URL = URL + "?encryption";
-
- ОсновныеДанные_.Вставить("URL", URL);
-
- Ответ = ОтправитьЗапросСТелом("PUT", ОсновныеДанные_, XMLКонфигурация, , Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить шифрование бакета
-// Получает установленную ранее конфигурацию шифрования бакета
-//
-// Примечание:
-// Метод в документации AWS: [GetBucketEncryption](@docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html)
-//
-// Параметры:
-// Наименование - Строка - Наименование бакета - name
-// ОсновныеДанные - Структура Из КлючИЗначение - Основные данные запроса. См. ПолучитьСтруктуруДанных - basic
-// Каталог - Булево - Истина > Path style URL, Ложь > Virtual hosted style URL - dir
-// Заголовки - Соответствие Из КлючИЗначение - Дополнительные заголовки запроса, если необходимо - headers
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
-Функция ПолучитьШифрованиеБакета(Знач Наименование
- , Знач ОсновныеДанные
- , Знач Каталог = Ложь
- , Знач Заголовки = Неопределено) Экспорт
-
- ОсновныеДанные_ = OPI_Инструменты.КопироватьКоллекцию(ОсновныеДанные);
-
- URL = ПолучитьURLСервиса(ОсновныеДанные_);
- URL = СформироватьURLБакета(URL, Наименование, Каталог);
-
- URL = URL + "?encryption";
-
- ОсновныеДанные_.Вставить("URL", URL);
-
- Ответ = ОтправитьЗапросБезТела("GET", ОсновныеДанные_, , Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Удалить шифрование бакета
-// Удаляет конфигурацию шифрования бакета
-//
-// Примечание:
-// Метод в документации AWS: [DeleteBucketEncryption](@docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketEncryption.html)
-//
-// Параметры:
-// Наименование - Строка - Наименование бакета - name
-// ОсновныеДанные - Структура Из КлючИЗначение - Основные данные запроса. См. ПолучитьСтруктуруДанных - basic
-// Каталог - Булево - Истина > Path style URL, Ложь > Virtual hosted style URL - dir
-// Заголовки - Соответствие Из КлючИЗначение - Дополнительные заголовки запроса, если необходимо - headers
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
-Функция УдалитьШифрованиеБакета(Знач Наименование
- , Знач ОсновныеДанные
- , Знач Каталог = Ложь
- , Знач Заголовки = Неопределено) Экспорт
-
- ОсновныеДанные_ = OPI_Инструменты.КопироватьКоллекцию(ОсновныеДанные);
-
- URL = ПолучитьURLСервиса(ОсновныеДанные_);
- URL = СформироватьURLБакета(URL, Наименование, Каталог);
-
- URL = URL + "?encryption";
-
- ОсновныеДанные_.Вставить("URL", URL);
-
- Ответ = ОтправитьЗапросБезТела("DELETE", ОсновныеДанные_, , Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Установить теги бакета
-// Устанавливает набор тегов для бакета
-//
-// Примечание:
-// Установка нового набора удаляет все существующие теги бакета
-// Метод в документации AWS: [PutBucketTagging](@docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketTagging.html)
-//
-// Параметры:
-// Наименование - Строка - Наименование бакета - name
-// ОсновныеДанные - Структура Из КлючИЗначение - Основные данные запроса. См. ПолучитьСтруктуруДанных - basic
-// Теги - Структура Из КлючИЗначение - Набор тегов (ключ и значение) для установки - tagset
-// Каталог - Булево - Истина > Path style URL, Ложь > Virtual hosted style URL - dir
-// Заголовки - Соответствие Из КлючИЗначение - Дополнительные заголовки запроса, если необходимо - headers
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
-Функция УстановитьТегиБакета(Знач Наименование
- , Знач ОсновныеДанные
- , Знач Теги
- , Знач Каталог = Ложь
- , Знач Заголовки = Неопределено) Экспорт
-
- ОсновныеДанные_ = OPI_Инструменты.КопироватьКоллекцию(ОсновныеДанные);
-
- Теги = СформироватьСтруктуруТегов(Теги);
- ТегиXML = OPI_Инструменты.ПолучитьXML(Теги, "http://s3.amazonaws.com/doc/2006-03-01/");
- ТегиXML = ПолучитьДвоичныеДанныеИзСтроки(ТегиXML);
-
- URL = ПолучитьURLСервиса(ОсновныеДанные_);
- URL = СформироватьURLБакета(URL, Наименование, Каталог);
- URL = URL + "?tagging";
-
- ОсновныеДанные_.Вставить("URL", URL);
-
- Ответ = ОтправитьЗапросСТелом("PUT", ОсновныеДанные_, ТегиXML, , Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить теги бакета
-// Получает набор тегов бакета
-//
-// Примечание:
-// Метод в документации AWS: [GetBucketTagging](@docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketTagging.html)
-//
-// Параметры:
-// Наименование - Строка - Наименование бакета - name
-// ОсновныеДанные - Структура Из КлючИЗначение - Основные данные запроса. См. ПолучитьСтруктуруДанных - basic
-// Каталог - Булево - Истина > Path style URL, Ложь > Virtual hosted style URL - dir
-// Заголовки - Соответствие Из КлючИЗначение - Дополнительные заголовки запроса, если необходимо - headers
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
-Функция ПолучитьТегиБакета(Знач Наименование
- , Знач ОсновныеДанные
- , Знач Каталог = Ложь
- , Знач Заголовки = Неопределено) Экспорт
-
- ОсновныеДанные_ = OPI_Инструменты.КопироватьКоллекцию(ОсновныеДанные);
-
- URL = ПолучитьURLСервиса(ОсновныеДанные_);
- URL = СформироватьURLБакета(URL, Наименование, Каталог);
- URL = URL + "?tagging";
-
- ОсновныеДанные_.Вставить("URL", URL);
-
- Ответ = ОтправитьЗапросБезТела("GET", ОсновныеДанные_, , Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Удалить теги бакета
-// Удаляет набор тегов бакета
-//
-// Примечание:
-// Метод в документации AWS: [DeleteBucketTagging](@docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketTagging.html)
-//
-// Параметры:
-// Наименование - Строка - Наименование бакета - name
-// ОсновныеДанные - Структура Из КлючИЗначение - Основные данные запроса. См. ПолучитьСтруктуруДанных - basic
-// Каталог - Булево - Истина > Path style URL, Ложь > Virtual hosted style URL - dir
-// Заголовки - Соответствие Из КлючИЗначение - Дополнительные заголовки запроса, если необходимо - headers
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
-Функция УдалитьТегиБакета(Знач Наименование
- , Знач ОсновныеДанные
- , Знач Каталог = Ложь
- , Знач Заголовки = Неопределено) Экспорт
-
- ОсновныеДанные_ = OPI_Инструменты.КопироватьКоллекцию(ОсновныеДанные);
-
- URL = ПолучитьURLСервиса(ОсновныеДанные_);
- URL = СформироватьURLБакета(URL, Наименование, Каталог);
- URL = URL + "?tagging";
-
- ОсновныеДанные_.Вставить("URL", URL);
-
- Ответ = ОтправитьЗапросБезТела("DELETE", ОсновныеДанные_, , Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Установить настройки версионирования бакета
-// Устанавливает настройки версионирования объектов бакета
-//
-// Примечание:
-// Метод в документации AWS: [PutBucketVersioning](@docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketVersioning.html)
-//
-// Параметры:
-// Наименование - Строка - Наименование бакета - name
-// ОсновныеДанные - Структура Из КлючИЗначение - Основные данные запроса. См. ПолучитьСтруктуруДанных - basic
-// Статус - Булево - Включение и отключение версионирования, если необходимо - status
-// УдалениеMFA - Булево - Включение и отключение удаления MFA, если необходимо - mfad
-// Каталог - Булево - Истина > Path style URL, Ложь > Virtual hosted style URL - dir
-// Заголовки - Соответствие Из КлючИЗначение - Дополнительные заголовки запроса, если необходимо - headers
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
-Функция УстановитьНастройкиВерсионированияБакета(Знач Наименование
- , Знач ОсновныеДанные
- , Знач Статус = Неопределено
- , Знач УдалениеMFA = Неопределено
- , Знач Каталог = Ложь
- , Знач Заголовки = Неопределено) Экспорт
-
- ОсновныеДанные_ = OPI_Инструменты.КопироватьКоллекцию(ОсновныеДанные);
-
- Теги = СформироватьСтруктуруНастроекВерсионирования(Статус, УдалениеMFA);
- ТегиXML = OPI_Инструменты.ПолучитьXML(Теги, "http://s3.amazonaws.com/doc/2006-03-01/");
- ТегиXML = ПолучитьДвоичныеДанныеИзСтроки(ТегиXML);
-
- URL = ПолучитьURLСервиса(ОсновныеДанные_);
- URL = СформироватьURLБакета(URL, Наименование, Каталог);
- URL = URL + "?versioning";
-
- ОсновныеДанные_.Вставить("URL", URL);
-
- Ответ = ОтправитьЗапросСТелом("PUT", ОсновныеДанные_, ТегиXML, , Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить настройки версионирования бакета
-// Получает значения настроек версионирования объектов в бакете
-//
-// Примечание:
-// Метод в документации AWS: [GetBucketVersioning](@docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html)
-//
-// Параметры:
-// Наименование - Строка - Наименование бакета - name
-// ОсновныеДанные - Структура Из КлючИЗначение - Основные данные запроса. См. ПолучитьСтруктуруДанных - basic
-// Каталог - Булево - Истина > Path style URL, Ложь > Virtual hosted style URL - dir
-// Заголовки - Соответствие Из КлючИЗначение - Дополнительные заголовки запроса, если необходимо - headers
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
-Функция ПолучитьНастройкийВерсионированияБакета(Знач Наименование
- , Знач ОсновныеДанные
- , Знач Каталог = Ложь
- , Знач Заголовки = Неопределено) Экспорт
-
- ОсновныеДанные_ = OPI_Инструменты.КопироватьКоллекцию(ОсновныеДанные);
-
- URL = ПолучитьURLСервиса(ОсновныеДанные_);
- URL = СформироватьURLБакета(URL, Наименование, Каталог);
- URL = URL + "?versioning";
-
- ОсновныеДанные_.Вставить("URL", URL);
-
- Ответ = ОтправитьЗапросБезТела("GET", ОсновныеДанные_, , Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить список бакетов
-// Получает список бакетов. Возможно использование отборов, если они поддерживаются сервисом
-//
-// Примечание:
-// Метод в документации AWS: [ListBuckets](@docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html)
-//
-// Параметры:
-// ОсновныеДанные - Структура Из КлючИЗначение - Основные данные запроса. См. ПолучитьСтруктуруДанных - basic
-// Префикс - Строка - Отбор по префиксу, если необходимо - prefix
-// Регион - Строка - Отбор по региону бакета, если необходимо - region
-// ТокенСтраницы - Строка - Токен страницы, если используется пагинация - ctoken
-// Заголовки - Соответствие Из КлючИЗначение - Дополнительные заголовки запроса, если необходимо - headers
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
-Функция ПолучитьСписокБакетов(Знач ОсновныеДанные
- , Знач Префикс = ""
- , Знач Регион = ""
- , Знач ТокенСтраницы = ""
- , Знач Заголовки = Неопределено) Экспорт
-
- Строка_ = "Строка";
-
- ОсновныеДанные_ = OPI_Инструменты.КопироватьКоллекцию(ОсновныеДанные);
-
- Параметры = Новый Соответствие;
- OPI_Инструменты.ДобавитьПоле("bucket-region" , Регион , Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("continuation-token", ТокенСтраницы, Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("max-buckets" , 250 , Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("prefix" , Префикс , Строка_, Параметры);
-
- URL = ПолучитьURLСервиса(ОсновныеДанные_);
- URL = URL + OPI_Инструменты.ПараметрыЗапросаВСтроку(Параметры);
-
- ОсновныеДанные_.Вставить("URL", URL);
-
- Ответ = ОтправитьЗапросБезТела("GET", ОсновныеДанные_, , Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область РаботаСОбъектами
-
-// Загрузить объект
-// Загружает файл в бакет
-//
-// Примечание:
-// Метод в документации AWS (стандартный): [PutObject](@docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)^
-// Метод в документации AWS (по частям): [Multipart upload](@docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html)
-// Вы можете использовать поле `ChunkSize` в основных данных для указания минимального размера и величины чанка загрузки по частям.^^
-// Например, `ChunkSize равный X` означает, что все файлы, размером больше `X` (в байтах) будут загружаться по частям, где одна часть будет размером `X`.^^
-// Загрузка по частям используется для больших файлов. Стандартный размер `ChunkSize` - 20971520 байт (20 МБайт)
-//
-// Параметры:
-// Наименование - Строка - Наименование объекта в бакете - name
-// Бакет - Строка - Имя бакета для загрузки объекта - bucket
-// Содержимое - Строка, ДвоичныеДанные - Данные или путь к файлу для загрузки - data
-// ОсновныеДанные - Структура Из КлючИЗначение - Основные данные запроса. См. ПолучитьСтруктуруДанных - basic
-// Заголовки - Соответствие Из КлючИЗначение - Дополнительные заголовки запроса, если необходимо - headers
-// Каталог - Булево - Истина > Path style URL, Ложь > Virtual hosted style URL - dir
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
-Функция ЗагрузитьОбъект(Знач Наименование
- , Знач Бакет
- , Знач Содержимое
- , Знач ОсновныеДанные
- , Знач Заголовки = Неопределено
- , Знач Каталог = Ложь) Экспорт
-
- ОсновныеДанные_ = OPI_Инструменты.КопироватьКоллекцию(ОсновныеДанные);
-
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Содержимое);
-
- РазмерФайла = ПолучитьРазмерСодержимого(Содержимое);
- Делитель = 10000;
- МинимальныйРазмерЧасти = РазмерФайла / Делитель;
- МинимальныйРазмерЧасти = Макс(МинимальныйРазмерЧасти, 5242880);
- Половина = 0.5;
-
- Если OPI_Инструменты.ПолеКоллекцииСуществует(ОсновныеДанные_, "ChunkSize") Тогда
- МаксимальныйРазмер = ОсновныеДанные_["ChunkSize"];
- OPI_ПреобразованиеТипов.ПолучитьЧисло(МаксимальныйРазмер);
- Иначе
- МаксимальныйРазмер = 20971520;
- КонецЕсли;
-
- Если МинимальныйРазмерЧасти > МаксимальныйРазмер Тогда
- ВызватьИсключение "ChunkSize слишком мал. Необходимо увеличить размер части (минимум для данного файла - "
- + OPI_Инструменты.ЧислоВСтроку(Окр(МинимальныйРазмерЧасти + Половина))
- + ")";
- КонецЕсли;
-
- Если РазмерФайла > МаксимальныйРазмер Тогда
-
- Размеры = Новый Структура("object,chunk", РазмерФайла, МаксимальныйРазмер);
- Ответ = ЗагрузитьОбъектЧастями(Наименование, Бакет, Содержимое, ОсновныеДанные_, Заголовки, Размеры, Каталог);
-
- Иначе
-
- Ответ = ЗагрузитьОбъектЦеликом(Наименование, Бакет, Содержимое, ОсновныеДанные_, Заголовки, Каталог);
-
- КонецЕсли;
-
- Возврат Ответ;
-
-КонецФункции
-
-// Загрузить объект целиком
-// Загружает объект на сервер не используюя загрузку по частям
-//
-// Примечание:
-// Метод в документации AWS: [PutObject](@docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)
-// Это служебный метод. Для простого сценария загрузки файлов предназначен единый метод `ЗагрузитьОбъект`^
-// Использование данного метода для больших файлов может приводить к сбоям
-//
-// Параметры:
-// Наименование - Строка - Наименование объекта в бакете - name
-// Бакет - Строка - Имя бакета для загрузки объекта - bucket
-// Содержимое - Строка, ДвоичныеДанные - Данные или путь к файлу для загрузки - data
-// ОсновныеДанные - Структура Из КлючИЗначение - Основные данные запроса. См. ПолучитьСтруктуруДанных - basic
-// Заголовки - Соответствие Из КлючИЗначение - Дополнительные заголовки запроса, если необходимо - headers
-// Каталог - Булево - Истина > Path style URL, Ложь > Virtual hosted style URL - dir
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
-Функция ЗагрузитьОбъектЦеликом(Знач Наименование
- , Знач Бакет
- , Знач Содержимое
- , Знач ОсновныеДанные
- , Знач Заголовки = Неопределено
- , Знач Каталог = Ложь) Экспорт
-
- ОсновныеДанные_ = OPI_Инструменты.КопироватьКоллекцию(ОсновныеДанные);
-
- ЗаполнитьURLОбъекта(ОсновныеДанные_, Наименование, Бакет, , Каталог);
-
- Ответ = ОтправитьЗапрос("PUT", ОсновныеДанные_, Содержимое, , Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Инициализировать загрузку частями
-// Инициализирует загрузку объекта по частям
-//
-// Примечание:
-// Метод в документации AWS: [CreateMultipartUpload](@docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html)
-// Это служебный метод. Для простого сценария загрузки файлов предназначен единый метод `ЗагрузитьОбъект`^
-// Использование загрузки частями для файлов < 5 МБ или при размере одной части < 5 МБ приведет к ошибке
-//
-// Параметры:
-// Наименование - Строка - Наименование объекта в бакете - name
-// Бакет - Строка - Имя бакета для загрузки объекта - bucket
-// ОсновныеДанные - Структура Из КлючИЗначение - Основные данные запроса. См. ПолучитьСтруктуруДанных - basic
-// Заголовки - Соответствие Из КлючИЗначение - Дополнительные заголовки запроса, если необходимо - headers
-// Каталог - Булево - Истина > Path style URL, Ложь > Virtual hosted style URL - dir
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
-Функция ИнициализироватьЗагрузкуЧастями(Знач Наименование
- , Знач Бакет
- , Знач ОсновныеДанные
- , Знач Заголовки = Неопределено
- , Знач Каталог = Ложь) Экспорт
-
- ОсновныеДанные_ = OPI_Инструменты.КопироватьКоллекцию(ОсновныеДанные);
-
- ЗаполнитьURLОбъекта(ОсновныеДанные_, Наименование, Бакет, , Каталог);
-
- ОсновныеДанные_.Вставить("URL", ОсновныеДанные_["URL"] + "?uploads");
-
- Ответ = ОтправитьЗапросБезТела("POST", ОсновныеДанные_, , Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Загрузить часть объекта
-// Загружает часть объекта при загрузке по частям
-//
-// Примечание:
-// Метод в документации AWS: [UploadPart](@docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html)
-// Это служебный метод. Для простого сценария загрузки файлов предназначен единый метод `ЗагрузитьОбъект`
-//
-// Параметры:
-// Наименование - Строка - Наименование объекта в бакете - name
-// Бакет - Строка - Имя бакета для загрузки объекта - bucket
-// ОсновныеДанные - Структура Из КлючИЗначение - Основные данные запроса. См. ПолучитьСтруктуруДанных - basic
-// IDЗагрузки - Строка - ID загрузки по частям. См. ИнициализироватьЗагрузкуЧастями - upload
-// НомерЧасти - Число, Строка - Порядковый номер части объекта от 1 до 10000 - part
-// Данные - ДвоичныеДанные, Строка - Данные части для загрузки - content
-// Каталог - Булево - Истина > Path style URL, Ложь > Virtual hosted style URL - dir
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
-Функция ЗагрузитьЧастьОбъекта(Знач Наименование
- , Знач Бакет
- , Знач ОсновныеДанные
- , Знач IDЗагрузки
- , Знач НомерЧасти
- , Знач Данные
- , Знач Каталог = Ложь) Экспорт
-
- ОсновныеДанные_ = OPI_Инструменты.КопироватьКоллекцию(ОсновныеДанные);
-
- ЗаполнитьURLОбъекта(ОсновныеДанные_, Наименование, Бакет, , Каталог);
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("partNumber", НомерЧасти, "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("uploadId" , IDЗагрузки, "Строка", Параметры);
-
- СтрокаПараметров = OPI_Инструменты.ПараметрыЗапросаВСтроку(Параметры);
-
- ОсновныеДанные_.Вставить("URL", ОсновныеДанные_["URL"] + СтрокаПараметров);
-
- Ответ = ОтправитьЗапросСТелом("PUT", ОсновныеДанные_, Данные);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Завершить загрузку частями
-// Подтверждает окончание загрузки объекта по частям
-//
-// Примечание:
-// Метод в документации AWS: [CompleteMultipartUpload](@docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html)
-// Это служебный метод. Для простого сценария загрузки файлов предназначен единый метод `ЗагрузитьОбъект`
-//
-// Параметры:
-// Наименование - Строка - Наименование объекта в бакете - name
-// Бакет - Строка - Имя бакета для загрузки объекта - bucket
-// ОсновныеДанные - Структура Из КлючИЗначение - Основные данные запроса. См. ПолучитьСтруктуруДанных - basic
-// IDЗагрузки - Строка - ID загрузки по частям. См. ИнициализироватьЗагрузкуЧастями - upload
-// МассивТегов - Массив Из Строка - Массив тегов (Etag) из загрузок каждой части - tags
-// Заголовки - Соответствие Из КлючИЗначение - Дополнительные заголовки запроса, если необходимо - headers
-// Каталог - Булево - Истина > Path style URL, Ложь > Virtual hosted style URL - dir
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
-Функция ЗавершитьЗагрузкуЧастями(Знач Наименование
- , Знач Бакет
- , Знач ОсновныеДанные
- , Знач IDЗагрузки
- , Знач МассивТегов
- , Знач Заголовки = Неопределено
- , Знач Каталог = Ложь) Экспорт
-
- ОсновныеДанные_ = OPI_Инструменты.КопироватьКоллекцию(ОсновныеДанные);
-
- OPI_ПреобразованиеТипов.ПолучитьМассив(МассивТегов);
- ЗаполнитьURLОбъекта(ОсновныеДанные_, Наименование, Бакет, , Каталог);
-
- ОсновныеДанные_.Вставить("URL", ОсновныеДанные_["URL"] + "?uploadId=" + Строка(IDЗагрузки));
-
- МассивЧастей = Новый Массив;
-
- Для Н = 1 По МассивТегов.Количество() Цикл
-
- СтруктураЧасти = Новый Структура;
- СтруктураЧасти.Вставить("ETag" , МассивТегов[Н - 1]);
- СтруктураЧасти.Вставить("PartNumber", Н);
-
- МассивЧастей.Добавить(Новый Структура("Part", СтруктураЧасти));
-
- КонецЦикла;
-
- СтруктураЗавершения = Новый Структура("CompleteMultipartUpload", МассивЧастей);
- XMLЗавершения = OPI_Инструменты.ПолучитьXML(СтруктураЗавершения, "http://s3.amazonaws.com/doc/2006-03-01/");
- XMLЗавершения = ПолучитьДвоичныеДанныеИзСтроки(XMLЗавершения);
-
- Ответ = ОтправитьЗапросСТелом("POST", ОсновныеДанные_, XMLЗавершения, , Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Отменить загрузку частями
-// Отменяет загрузку объекта по частям
-//
-// Примечание:
-// Метод в документации AWS: [AbortMultipartUpload](@docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html)
-// Это служебный метод. Для простого сценария загрузки файлов предназначен единый метод `ЗагрузитьОбъект`^
-//
-// Параметры:
-// Наименование - Строка - Наименование объекта в бакете - name
-// Бакет - Строка - Имя бакета для загрузки объекта - bucket
-// ОсновныеДанные - Структура Из КлючИЗначение - Основные данные запроса. См. ПолучитьСтруктуруДанных - basic
-// IDЗагрузки - Строка - ID загрузки по частям. См. ИнициализироватьЗагрузкуЧастями - upload
-// Заголовки - Соответствие Из КлючИЗначение - Дополнительные заголовки запроса, если необходимо - headers
-// Каталог - Булево - Истина > Path style URL, Ложь > Virtual hosted style URL - dir
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
-Функция ОтменитьЗагрузкуЧастями(Знач Наименование
- , Знач Бакет
- , Знач ОсновныеДанные
- , Знач IDЗагрузки
- , Знач Заголовки = Неопределено
- , Знач Каталог = Ложь) Экспорт
-
- ОсновныеДанные_ = OPI_Инструменты.КопироватьКоллекцию(ОсновныеДанные);
-
- ЗаполнитьURLОбъекта(ОсновныеДанные_, Наименование, Бакет, , Каталог);
-
- ОсновныеДанные_.Вставить("URL", ОсновныеДанные_["URL"] + "?uploadId=" + Строка(IDЗагрузки));
-
- Ответ = ОтправитьЗапросБезТела("DELETE", ОсновныеДанные_, , Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить описание объекта
-// Получает информацию о характеристиках объекта в бакете
-//
-// Примечание:
-// Метаданные объекты содержатся в заголовках
-// Метод в документации AWS: [GetObjectAttributes](@docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAttributes.html)
-//
-// Параметры:
-// Наименование - Строка - Наименование объекта в бакете - name
-// Бакет - Строка - Имя бакета, в котором находится объект - bucket
-// ОсновныеДанные - Структура Из КлючИЗначение - Основные данные запроса. См. ПолучитьСтруктуруДанных - basic
-// Версия - Строка - Токен для получения конкретной версии объекта - ver
-// Заголовки - Соответствие Из КлючИЗначение - Дополнительные заголовки запроса, если необходимо - headers
-// Каталог - Булево - Истина > Path style URL, Ложь > Virtual hosted style URL - dir
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
-Функция ПолучитьОписаниеОбъекта(Знач Наименование
- , Знач Бакет
- , Знач ОсновныеДанные
- , Знач Версия = Неопределено
- , Знач Заголовки = Неопределено
- , Знач Каталог = Ложь) Экспорт
-
- ОсновныеДанные_ = OPI_Инструменты.КопироватьКоллекцию(ОсновныеДанные);
- ЗаполнитьURLОбъекта(ОсновныеДанные_, Наименование, Бакет, Версия, Каталог);
-
- Ответ = ОтправитьЗапросБезТела("HEAD", ОсновныеДанные_, , Заголовки);
- Ответ["response"] = Новый Структура;
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить объект
-// Получает содержимое объекта из бакета
-//
-// Примечание:
-// Метод в документации AWS: [GetObjectAttributes](@docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAttributes.html)
-// Вы можете использовать поле `ChunkSize` в основных данных для указания минимального размера и величины чанка загрузки по частям.^^
-// Например, `ChunkSize равный X` означает, что все файлы, размером больше `X` (в байтах) будут загружаться по частям, где одна часть будет размером `X`.^^
-// Загрузка по частям используется для больших файлов. Стандартный размер `ChunkSize` - 20971520 байт (20 МБайт)
-//
-// Параметры:
-// Наименование - Строка - Наименование объекта в бакете - name
-// Бакет - Строка - Имя бакета, в котором находится объект - bucket
-// ОсновныеДанные - Структура Из КлючИЗначение - Основные данные запроса. См. ПолучитьСтруктуруДанных - basic
-// Версия - Строка - Токен для получения конкретной версии объекта - ver
-// Заголовки - Соответствие Из КлючИЗначение - Дополнительные заголовки запроса, если необходимо - headers
-// ПутьСохранения - Строка - Путь для прямой записи файла на диск - out
-// Каталог - Булево - Истина > Path style URL, Ложь > Virtual hosted style URL - dir
-//
-// Возвращаемое значение:
-// ДвоичныеДанные, Строка - содержимое объекта или путь к файлу, если указан путь сохранения
-Функция ПолучитьОбъект(Знач Наименование
- , Знач Бакет
- , Знач ОсновныеДанные
- , Знач Версия = ""
- , Знач Заголовки = Неопределено
- , Знач ПутьСохранения = ""
- , Знач Каталог = Ложь) Экспорт
-
- ОсновныеДанные_ = OPI_Инструменты.КопироватьКоллекцию(ОсновныеДанные);
- ИнформацияОбъекта = ПолучитьОписаниеОбъекта(Наименование, Бакет, ОсновныеДанные_, Версия);
-
- Если OPI_Инструменты.ПолеКоллекцииСуществует(ОсновныеДанные_, "ChunkSize") Тогда
- МаксимальныйРазмер = ОсновныеДанные_["ChunkSize"];
- OPI_ПреобразованиеТипов.ПолучитьЧисло(МаксимальныйРазмер);
- Иначе
- МаксимальныйРазмер = 20971520;
- КонецЕсли;
-
- Если Не OPI_Инструменты.ПолеКоллекцииСуществует(ИнформацияОбъекта, "headers.Content-Length") Тогда
- Возврат ИнформацияОбъекта;
- КонецЕсли;
-
- РазмерОбъекта = ИнформацияОбъекта["headers"]["Content-Length"];
- ОсновныеДанные_ = OPI_Инструменты.КопироватьКоллекцию(ОсновныеДанные);
-
- OPI_ПреобразованиеТипов.ПолучитьЧисло(МаксимальныйРазмер);
- OPI_ПреобразованиеТипов.ПолучитьЧисло(РазмерОбъекта);
- ЗаполнитьURLОбъекта(ОсновныеДанные_, Наименование, Бакет, Версия, Каталог);
-
- Если РазмерОбъекта > МаксимальныйРазмер Тогда
-
- Размеры = Новый Структура("object,chunk", РазмерОбъекта, МаксимальныйРазмер);
- Ответ = ПолучитьОбъектЧастями(ОсновныеДанные_, Заголовки, ПутьСохранения, Размеры);
-
- Иначе
-
- Ответ = ПолучитьОбъектЦеликом(ОсновныеДанные_, Заголовки, ПутьСохранения);
-
- КонецЕсли;
-
- Возврат Ответ;
-
-КонецФункции
-
-// Удалить объект
-// Удаляет объект из бакета
-//
-// Примечание:
-// Метод в документации AWS: [DeleteObject](@docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html)
-//
-// Параметры:
-// Наименование - Строка - Наименование объекта в бакете - name
-// Бакет - Строка - Имя бакета для загрузки объекта - bucket
-// ОсновныеДанные - Структура Из КлючИЗначение - Основные данные запроса. См. ПолучитьСтруктуруДанных - basic
-// Версия - Строка - Токен для удаления конкретной версии объекта - ver
-// Заголовки - Соответствие Из КлючИЗначение - Дополнительные заголовки запроса, если необходимо - headers
-// Каталог - Булево - Истина > Path style URL, Ложь > Virtual hosted style URL - dir
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
-Функция УдалитьОбъект(Знач Наименование
- , Знач Бакет
- , Знач ОсновныеДанные
- , Знач Версия = Неопределено
- , Знач Заголовки = Неопределено
- , Знач Каталог = Ложь) Экспорт
-
- ОсновныеДанные_ = OPI_Инструменты.КопироватьКоллекцию(ОсновныеДанные);
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Наименование);
-
- URL = ПолучитьURLСервиса(ОсновныеДанные_);
- URL = СформироватьURLБакета(URL, Бакет, Каталог);
- URL = URL + Наименование;
-
- Если ЗначениеЗаполнено(Версия) Тогда
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Версия);
- URL = URL + "?versionId=" + Версия;
-
- КонецЕсли;
-
- ОсновныеДанные_.Вставить("URL", URL);
-
- Ответ = ОтправитьЗапросБезТела("DELETE", ОсновныеДанные_, , Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Копировать объект
-// Копирует объект из одного расположения в другое
-//
-// Примечание:
-// Метод в документации AWS: [CopyObject](@docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html)
-//
-// Параметры:
-// ПутьИсточник - Строка - Путь (имя) в бакете источнике - sname
-// БакетИсточник - Строка - Бакет источник объекта - sbucket
-// ПутьПриемник - Строка - Путь (имя) объекта в бакете приемнике - name
-// БакетПриемник - Строка - Имя бакета приемника - bucket
-// ОсновныеДанные - Структура Из КлючИЗначение - Основные данные запроса. См. ПолучитьСтруктуруДанных - basic
-// Заголовки - Соответствие Из КлючИЗначение - Дополнительные заголовки запроса, если необходимо - headers
-// Каталог - Булево - Истина > Path style URL, Ложь > Virtual hosted style URL - dir
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
-Функция КопироватьОбъект(Знач ПутьИсточник
- , Знач БакетИсточник
- , Знач ПутьПриемник
- , Знач БакетПриемник
- , Знач ОсновныеДанные
- , Знач Заголовки = Неопределено
- , Знач Каталог = Ложь) Экспорт
-
- ОсновныеДанные_ = OPI_Инструменты.КопироватьКоллекцию(ОсновныеДанные);
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(ПутьИсточник);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(БакетИсточник);
-
- Источник = БакетИсточник + "/" + ПутьИсточник;
- Источник = ?(СтрНачинаетсяС(Источник, "/"), Источник, "/" + Источник);
-
- ЗаголовокИсточника = Новый Соответствие();
- ЗаголовокИсточника.Вставить("x-amz-copy-source", Источник);
- ДобавитьДополнительныеЗаголовки(Заголовки, ЗаголовокИсточника);
-
- Ответ = ЗагрузитьОбъектЦеликом(ПутьПриемник, БакетПриемник, Неопределено, ОсновныеДанные_, Заголовки, Каталог);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Установить теги объекта
-// Устанавливает набор тегов для объекта
-//
-// Примечание:
-// Установка нового набора удаляет все существующие теги объекта
-// Метод в документации AWS: [PutObjectTagging](@docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectTagging.html)
-//
-// Параметры:
-// Наименование - Строка - Наименование объекта - name
-// Бакет - Строка - Наименование бакета - bucket
-// ОсновныеДанные - Структура Из КлючИЗначение - Основные данные запроса. См. ПолучитьСтруктуруДанных - basic
-// Теги - Структура Из КлючИЗначение - Набор тегов (ключ и значение) для установки - tagset
-// Заголовки - Соответствие Из КлючИЗначение - Дополнительные заголовки запроса, если необходимо - headers
-// Каталог - Булево - Истина > Path style URL, Ложь > Virtual hosted style URL - dir
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
-Функция УстановитьТегиОбъекта(Знач Наименование
- , Знач Бакет
- , Знач ОсновныеДанные
- , Знач Теги
- , Знач Заголовки = Неопределено
- , Знач Каталог = Ложь) Экспорт
-
- ОсновныеДанные_ = OPI_Инструменты.КопироватьКоллекцию(ОсновныеДанные);
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Наименование);
-
- Теги = СформироватьСтруктуруТегов(Теги);
- ТегиXML = OPI_Инструменты.ПолучитьXML(Теги, "http://s3.amazonaws.com/doc/2006-03-01/");
- ТегиXML = ПолучитьДвоичныеДанныеИзСтроки(ТегиXML);
-
- URL = ПолучитьURLСервиса(ОсновныеДанные_);
- URL = СформироватьURLБакета(URL, Бакет, Каталог);
- URL = URL + Наименование + "?tagging";
-
- ОсновныеДанные_.Вставить("URL", URL);
-
- Ответ = ОтправитьЗапросСТелом("PUT", ОсновныеДанные_, ТегиXML, , Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить теги объекта
-// Получает набор тегов объекта
-//
-// Примечание:
-// Метод в документации AWS: [GetObjectTagging](@docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html)
-//
-// Параметры:
-// Наименование - Строка - Наименование объекта - name
-// Бакет - Строка - Наименование бакета - bucket
-// ОсновныеДанные - Структура Из КлючИЗначение - Основные данные запроса. См. ПолучитьСтруктуруДанных - basic
-// Версия - Строка - Токен для получения данных конкретной версии объекта - ver
-// Заголовки - Соответствие Из КлючИЗначение - Дополнительные заголовки запроса, если необходимо - headers
-// Каталог - Булево - Истина > Path style URL, Ложь > Virtual hosted style URL - dir
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
-Функция ПолучитьТегиОбъекта(Знач Наименование
- , Знач Бакет
- , Знач ОсновныеДанные
- , Знач Версия = ""
- , Знач Заголовки = Неопределено
- , Знач Каталог = Ложь) Экспорт
-
- ОсновныеДанные_ = OPI_Инструменты.КопироватьКоллекцию(ОсновныеДанные);
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Наименование);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Версия);
-
- URL = ПолучитьURLСервиса(ОсновныеДанные_);
- URL = СформироватьURLБакета(URL, Бакет, Каталог);
- URL = URL + Наименование + "?tagging";
-
- Если ЗначениеЗаполнено(Версия) Тогда
- URL = URL + "&versionId=" + Версия;
- КонецЕсли;
-
- ОсновныеДанные_.Вставить("URL", URL);
-
- Ответ = ОтправитьЗапросБезТела("GET", ОсновныеДанные_, , Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Удалить теги объекта
-// Удаляет набор тегов объекта
-//
-// Примечание:
-// Метод в документации AWS: [DeleteObjectTagging](@docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjectTagging.html)
-//
-// Параметры:
-// Наименование - Строка - Наименование объекта - name
-// Бакет - Строка - Наименование бакета - bucket
-// ОсновныеДанные - Структура Из КлючИЗначение - Основные данные запроса. См. ПолучитьСтруктуруДанных - basic
-// Версия - Строка - Токен для удаления данных конкретной версии объекта - ver
-// Заголовки - Соответствие Из КлючИЗначение - Дополнительные заголовки запроса, если необходимо - headers
-// Каталог - Булево - Истина > Path style URL, Ложь > Virtual hosted style URL - dir
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
-Функция УдалитьТегиОбъекта(Знач Наименование
- , Знач Бакет
- , Знач ОсновныеДанные
- , Знач Версия = ""
- , Знач Заголовки = Неопределено
- , Знач Каталог = Ложь) Экспорт
-
- ОсновныеДанные_ = OPI_Инструменты.КопироватьКоллекцию(ОсновныеДанные);
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Наименование);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Версия);
-
- URL = ПолучитьURLСервиса(ОсновныеДанные_);
- URL = СформироватьURLБакета(URL, Бакет, Каталог);
- URL = URL + Наименование + "?tagging";
-
- Если ЗначениеЗаполнено(Версия) Тогда
- URL = URL + "&versionId=" + Версия;
- КонецЕсли;
-
- ОсновныеДанные_.Вставить("URL", URL);
-
- Ответ = ОтправитьЗапросБезТела("DELETE", ОсновныеДанные_, , Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить список объектов
-// Получает список объектов в выбранном бакете
-//
-// Примечание:
-// Метод в документации AWS: [ListObjectsV2](@docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html)
-//
-// Параметры:
-// Бакет - Строка - Наименование бакета - bucket
-// ОсновныеДанные - Структура Из КлючИЗначение - Основные данные запроса. См. ПолучитьСтруктуруДанных - basic
-// Префикс - Строка - Отбор по префиксу, если необходимо - prefix
-// ТокенСтраницы - Строка - Токен страницы, если используется пагинация - ctoken
-// Заголовки - Соответствие Из КлючИЗначение - Дополнительные заголовки запроса, если необходимо - headers
-// Каталог - Булево - Истина > Path style URL, Ложь > Virtual hosted style URL - dir
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
-Функция ПолучитьСписокОбъектов(Знач Бакет
- , Знач ОсновныеДанные
- , Знач Префикс = ""
- , Знач ТокенСтраницы = ""
- , Знач Заголовки = Неопределено
- , Знач Каталог = Ложь) Экспорт
-
- Строка_ = "Строка";
-
- ОсновныеДанные_ = OPI_Инструменты.КопироватьКоллекцию(ОсновныеДанные);
-
- URL = ПолучитьURLСервиса(ОсновныеДанные_);
- URL = СформироватьURLБакета(URL, Бакет, Каталог);
-
- Параметры = Новый Соответствие;
- OPI_Инструменты.ДобавитьПоле("list-type" , 2 , Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("max-keys" , 250 , Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("continuation-token", ТокенСтраницы, Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("prefix" , Префикс , Строка_, Параметры);
-
- URL = URL + OPI_Инструменты.ПараметрыЗапросаВСтроку(Параметры);
- ОсновныеДанные_.Вставить("URL", URL);
-
- Ответ = ОтправитьЗапросБезТела("GET", ОсновныеДанные_, , Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить список версий объектов
-// Получает список всех версий объектов в выбранном бакете
-//
-// Примечание:
-// Метод в документации AWS: [ListObjectVersions](@docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectVersions.html)
-//
-// Параметры:
-// Бакет - Строка - Наименование бакета - bucket
-// ОсновныеДанные - Структура Из КлючИЗначение - Основные данные запроса. См. ПолучитьСтруктуруДанных - basic
-// Префикс - Строка - Отбор по префиксу, если необходимо - prefix
-// Версия - Строка - ID версии начала списка - ver
-// Заголовки - Соответствие Из КлючИЗначение - Дополнительные заголовки запроса, если необходимо - headers
-// Каталог - Булево - Истина > Path style URL, Ложь > Virtual hosted style URL - dir
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - сериализованный JSON ответа от хранилища
-Функция ПолучитьСписокВерсийОбъектов(Знач Бакет
- , Знач ОсновныеДанные
- , Знач Префикс = ""
- , Знач Версия = ""
- , Знач Заголовки = Неопределено
- , Знач Каталог = Ложь) Экспорт
-
- Строка_ = "Строка";
-
- ОсновныеДанные_ = OPI_Инструменты.КопироватьКоллекцию(ОсновныеДанные);
-
- URL = ПолучитьURLСервиса(ОсновныеДанные_);
- URL = СформироватьURLБакета(URL, Бакет, Каталог);
- URL = URL + "?versions";
-
- Параметры = Новый Соответствие;
- OPI_Инструменты.ДобавитьПоле("max-keys" , 250 , Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("version-id-marker", Версия , Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("prefix" , Префикс, Строка_, Параметры);
-
- URL = URL + OPI_Инструменты.ПараметрыЗапросаВСтроку(Параметры, , Ложь);
- ОсновныеДанные_.Вставить("URL", URL);
-
- Ответ = ОтправитьЗапросБезТела("GET", ОсновныеДанные_, , Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить ссылку скачивания объекта
-// Получает прямую ссылку для скачивания объекта без дополнительной авторизации
-//
-// Примечание:
-// В Заголовки необходимо добавить все x-amz заголовки, которые будут использоваться при обращении к полученному URL
-// О механизме в документации AWS: [Download and upload objects with presigned URLs](@docs.aws.amazon.com/AmazonS3/latest/userguide/using-presigned-url.html)
-//
-// Параметры:
-// Наименование - Строка - Наименование объекта в бакете - name
-// Бакет - Строка - Имя бакета для загрузки объекта - bucket
-// ОсновныеДанные - Структура Из КлючИЗначение - Основные данные запроса. См. ПолучитьСтруктуруДанных - basic
-// ВремяЖизни - Строка, Число - Время жизни ссылки в секундах. 604800 максимум - expires
-// Заголовки - Соответствие Из КлючИЗначение - Дополнительные заголовки запроса, если необходимо - headers
-// Каталог - Булево - Истина > Path style URL, Ложь > Virtual hosted style URL - dir
-//
-// Возвращаемое значение:
-// Строка - URL для получения объекта
-Функция ПолучитьСсылкуСкачиванияОбъекта(Знач Наименование
- , Знач Бакет
- , Знач ОсновныеДанные
- , Знач ВремяЖизни = 3600
- , Знач Заголовки = Неопределено
- , Знач Каталог = Ложь) Экспорт
-
- ОсновныеДанные_ = OPI_Инструменты.КопироватьКоллекцию(ОсновныеДанные);
-
- ПроверитьОсновныеДанные(ОсновныеДанные_);
- ЗаполнитьURLОбъекта(ОсновныеДанные_, Наименование, Бакет, , Каталог);
-
- Подпись = СоздатьПодписьURL(ОсновныеДанные_, "GET", ВремяЖизни, Заголовки);
- URL = ОсновныеДанные_["URL"] + Подпись;
-
- Возврат URL;
-
-КонецФункции
-
-// Получить ссылку загрузки объекта
-// Получает прямую ссылку для загрузки объекта без дополнительной авторизации
-//
-// Примечание:
-// В Заголовки необходимо добавить все x-amz заголовки, которые будут использоваться при обращении к полученному URL
-// О механизме в документации AWS: [Download and upload objects with presigned URLs](@docs.aws.amazon.com/AmazonS3/latest/userguide/using-presigned-url.html)
-//
-// Параметры:
-// Наименование - Строка - Наименование объекта в бакете - name
-// Бакет - Строка - Имя бакета для загрузки объекта - bucket
-// ОсновныеДанные - Структура Из КлючИЗначение - Основные данные запроса. См. ПолучитьСтруктуруДанных - basic
-// ВремяЖизни - Строка, Число - Время жизни ссылки в секундах. 604800 максимум - expires
-// Заголовки - Соответствие Из КлючИЗначение - Дополнительные заголовки запроса, если необходимо - headers
-// Каталог - Булево - Истина > Path style URL, Ложь > Virtual hosted style URL - dir
-//
-// Возвращаемое значение:
-// Строка - URL для получения объекта
-Функция ПолучитьСсылкуЗагрузкиОбъекта(Знач Наименование
- , Знач Бакет
- , Знач ОсновныеДанные
- , Знач ВремяЖизни = 3600
- , Знач Заголовки = Неопределено
- , Знач Каталог = Ложь) Экспорт
-
- ОсновныеДанные_ = OPI_Инструменты.КопироватьКоллекцию(ОсновныеДанные);
-
- ПроверитьОсновныеДанные(ОсновныеДанные_);
- ЗаполнитьURLОбъекта(ОсновныеДанные_, Наименование, Бакет, , Каталог);
-
- Подпись = СоздатьПодписьURL(ОсновныеДанные_, "PUT", ВремяЖизни, Заголовки);
- URL = ОсновныеДанные_["URL"] + Подпись;
-
- Возврат URL;
-
-КонецФункции
-
-#КонецОбласти
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-#Область Авторизация
-
-Функция СоздатьПодписьURL(Знач СтруктураДанных, Знач Метод, Знач ВремяЖизни, Знач Заголовки)
-
- AccessKey = СтруктураДанных["AccessKey"];
- SecretKey = СтруктураДанных["SecretKey"];
- Region = СтруктураДанных["Region"];
- Service = СтруктураДанных["Service"];
- URL = СтруктураДанных["URL"];
-
- РазбитыйURL = OPI_Инструменты.РазбитьURL(URL);
-
- Домен = РазбитыйURL["Домен"];
- Адрес = РазбитыйURL["Адрес"];
-
- ДопЗаголовки = Новый Структура("Host", Домен);
- ДобавитьДополнительныеЗаголовки(Заголовки, ДопЗаголовки);
-
- ТекущаяДата = ТекущаяУниверсальнаяДата();
- КлючПодписи = ПолучитьКлючПодписи(SecretKey, Region, Service, ТекущаяДата);
- Скоуп = СоздатьСкоуп(Region, Service, ТекущаяДата);
- ВременнаяМетка = OPI_Инструменты.ВременнаяМеткаISO(ТекущаяДата);
- КлючиЗаголовков = ПолучитьСтрокуКлючейЗаголовков(Заголовки);
- Основа = КодироватьСтроку(AccessKey + "/" + Скоуп, СпособКодированияСтроки.КодировкаURL);
-
- СтрокаЗаголовков = ПолучитьСтрокуЗаголовков(Заголовки);
- СтрокаХеша = "UNSIGNED-PAYLOAD";
-
- ПараметрыURL = Новый ТаблицаЗначений;
-
- OPI_Инструменты.ДобавитьКлючЗначение(ПараметрыURL, "X-Amz-Algorithm" , "AWS4-HMAC-SHA256");
- OPI_Инструменты.ДобавитьКлючЗначение(ПараметрыURL, "X-Amz-Credential" , Основа);
- OPI_Инструменты.ДобавитьКлючЗначение(ПараметрыURL, "X-Amz-Date" , ВременнаяМетка);
- OPI_Инструменты.ДобавитьКлючЗначение(ПараметрыURL, "X-Amz-Expires" , ВремяЖизни);
- OPI_Инструменты.ДобавитьКлючЗначение(ПараметрыURL, "X-Amz-SignedHeaders", КлючиЗаголовков);
-
- ПараметрыСтрокой = OPI_Инструменты.ПараметрыЗапросаВСтроку(ПараметрыURL);
- ПараметрыСтрокой = Прав(ПараметрыСтрокой, СтрДлина(ПараметрыСтрокой) - 1);
- ШаблонЗапроса = "";
- ЧислоЧастей = 6;
-
- Для Н = 1 По ЧислоЧастей Цикл
-
- ШаблонЗапроса = ШаблонЗапроса + "%" + Строка(Н) + ?(Н = ЧислоЧастей, "", Символы.ПС);
-
- КонецЦикла;
-
- КаноническийЗапрос = СтрШаблон(ШаблонЗапроса
- , Метод
- , Адрес
- , ПараметрыСтрокой
- , СтрокаЗаголовков
- , КлючиЗаголовков
- , СтрокаХеша);
-
- СтрокаДляПодписи = СоздатьСтрокуПодписи(КаноническийЗапрос, Скоуп, ТекущаяДата);
- Сигнатура = OPI_Криптография.HMAC(КлючПодписи, СтрокаДляПодписи, "SHA256");
- Сигнатура = нРег(ПолучитьHexСтрокуИзДвоичныхДанных(Сигнатура));
-
- OPI_Инструменты.ДобавитьКлючЗначение(ПараметрыURL, "X-Amz-Signature", Сигнатура);
-
- ПодписьURL = OPI_Инструменты.ПараметрыЗапросаВСтроку(ПараметрыURL);
-
- Возврат ПодписьURL;
-
-КонецФункции
-
-Функция ПолучитьКлючПодписи(Знач СекретныйКлюч, Знач Регион, Знач Сервис, Знач ТекущаяДата)
-
- СекретныйКлюч = ПолучитьДвоичныеДанныеИзСтроки("AWS4" + СекретныйКлюч);
- ДанныеДата = ПолучитьДвоичныеДанныеИзСтроки(Формат(ТекущаяДата, "ДФ=yyyyMMdd;"));
- Регион = ПолучитьДвоичныеДанныеИзСтроки(Регион);
- Сервис = ПолучитьДвоичныеДанныеИзСтроки(Сервис);
- AWSЗапрос = ПолучитьДвоичныеДанныеИзСтроки("aws4_request");
- Sha256_ = "SHA256";
-
- КлючДанных = OPI_Криптография.HMAC(СекретныйКлюч, ДанныеДата, Sha256_);
- КлючРегиона = OPI_Криптография.HMAC(КлючДанных, Регион, Sha256_);
- КлючСервиса = OPI_Криптография.HMAC(КлючРегиона, Сервис, Sha256_);
-
- ФинальныйКлюч = OPI_Криптография.HMAC(КлючСервиса, AWSЗапрос, Sha256_);
-
- Возврат ФинальныйКлюч;
-
-КонецФункции
-
-Функция СоздатьСкоуп(Знач Регион, Знач Сервис, Знач ТекущаяДата)
-
- ДатаОбычная = Формат(ТекущаяДата, "ДФ=yyyyMMdd;");
-
- Скоуп = Новый Массив;
- Скоуп.Добавить(ДатаОбычная);
- Скоуп.Добавить(Регион);
- Скоуп.Добавить(Сервис);
- Скоуп.Добавить("aws4_request");
-
- СкоупСтрокой = СтрСоединить(Скоуп, "/");
-
- Возврат СкоупСтрокой;
-
-КонецФункции
-
-Функция СоздатьСтрокуПодписи(Знач КаноническийЗапрос, Знач Скоуп, Знач ТекущаяДата)
-
- ШаблонСтроки = "";
- Алгоритм = "AWS4-HMAC-SHA256";
- ДатаISO = OPI_Инструменты.ВременнаяМеткаISO(ТекущаяДата);
- ЧислоЧастей = 4;
-
- КаноническийЗапрос = ПолучитьДвоичныеДанныеИзСтроки(КаноническийЗапрос);
- КаноническийЗапрос = OPI_Криптография.Хеш(КаноническийЗапрос, ХешФункция.SHA256);
- КаноническийЗапрос = нРег(ПолучитьHexСтрокуИзДвоичныхДанных(КаноническийЗапрос));
-
- Для Н = 1 По ЧислоЧастей Цикл
-
- ШаблонСтроки = ШаблонСтроки + "%" + Строка(Н) + ?(Н = ЧислоЧастей, "", Символы.ПС);
-
- КонецЦикла;
-
- СтрокаПодписи = СтрШаблон(ШаблонСтроки, Алгоритм, ДатаISO, Скоуп, КаноническийЗапрос);
- СтрокаПодписи = ПолучитьДвоичныеДанныеИзСтроки(СтрокаПодписи);
-
- Возврат СтрокаПодписи;
-
-КонецФункции
-
-Функция ПолучитьСтрокуЗаголовков(Знач Заголовки)
-
- СписокЗаголовков = Новый СписокЗначений;
-
- Для Каждого Заголовок Из Заголовки Цикл
-
- ТекущийКлюч = Заголовок.Ключ;
- ТекущийКлючН = нРег(ТекущийКлюч);
-
- Если Не СтрНачинаетсяС(ТекущийКлючН, "host") И Не СтрНачинаетсяС(ТекущийКлючН, "x-amz") Тогда
- Продолжить;
- КонецЕсли;
-
- СтрокаЗаголовка = нРег(ТекущийКлюч) + ":" + Заголовок.Значение;
- СписокЗаголовков.Добавить(СтрокаЗаголовка);
-
- КонецЦикла;
-
- СписокЗаголовков.СортироватьПоЗначению();
-
- СтрокаЗаголовков = СтрСоединить(СписокЗаголовков.ВыгрузитьЗначения(), Символы.ПС);
- СтрокаЗаголовков = СтрокаЗаголовков + Символы.ПС;
-
- Возврат СтрокаЗаголовков;
-
-КонецФункции
-
-Функция ПолучитьСтрокуКлючейЗаголовков(Знач Заголовки)
-
- СписокЗаголовков = Новый СписокЗначений;
-
- Для Каждого Заголовок Из Заголовки Цикл
-
- ТекущийКлюч = Заголовок.Ключ;
- ТекущийКлючН = нРег(ТекущийКлюч);
-
- Если Не СтрНачинаетсяС(ТекущийКлючН, "host") И Не СтрНачинаетсяС(ТекущийКлючН, "x-amz") Тогда
- Продолжить;
- КонецЕсли;
-
- СтрокаЗаголовка = нРег(ТекущийКлюч);
- СписокЗаголовков.Добавить(СтрокаЗаголовка);
-
- КонецЦикла;
-
- СписокЗаголовков.СортироватьПоЗначению();
-
- СтрокаЗаголовков = СтрСоединить(СписокЗаголовков.ВыгрузитьЗначения(), ";");
-
- Возврат СтрокаЗаголовков;
-
-КонецФункции
-
-Функция ПолучитьURLСервиса(ОсновныеДанные)
-
- OPI_ПреобразованиеТипов.ПолучитьКоллекцию(ОсновныеДанные);
-
- Если ТипЗнч(ОсновныеДанные) = Тип("Массив") Тогда
- ВызватьИсключение "Ошибка получения авторизационных данных из структуры";
- КонецЕсли;
-
- URL = ОсновныеДанные["URL"];
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(URL);
-
- Если Не СтрЗаканчиваетсяНа(URL, "/") Тогда
- URL = URL + "/";
- КонецЕсли;
-
- Возврат URL;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область Прочее
-
-Функция ОтправитьЗапрос(Знач Метод
- , Знач ОсновныеДанные
- , Знач Тело = Неопределено
- , Знач ОжидаютсяДвоичные = Ложь
- , Знач Заголовки = Неопределено)
-
- ОсновныеДанные_ = OPI_Инструменты.КопироватьКоллекцию(ОсновныеДанные);
- ПроверитьОсновныеДанные(ОсновныеДанные_);
-
- AccessKey = ОсновныеДанные_["AccessKey"];
- SecretKey = ОсновныеДанные_["SecretKey"];
- Region = ОсновныеДанные_["Region"];
- Service = ОсновныеДанные_["Service"];
- URL = ОсновныеДанные_["URL"];
-
- Ответ = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать(URL)
- .УстановитьЗаголовки(Заголовки)
- .УстановитьДвоичноеТело(Тело)
- .ДобавитьAWS4Авторизацию(AccessKey, SecretKey, Region, Service)
- .ОбработатьЗапрос(Метод);
-
- HTTPОтвет = Ответ.ВернутьОтвет(Ложь, Истина);
- ТелоОтвета = ?(ОжидаютсяДвоичные
- , Ответ.ВернутьОтветКакДвоичныеДанные(Ложь, Истина)
- , Ответ.ВернутьОтветКакСтроку(Ложь, Истина));
-
- Ответ = ОформитьОтвет(HTTPОтвет, ТелоОтвета);
-
- Возврат Ответ;
-
-КонецФункции
-
-Функция УправлениеБакетом(Знач Имя, Знач ОсновныеДанные, Знач Каталог, Знач Метод, Знач Заголовки)
-
- ОсновныеДанные_ = OPI_Инструменты.КопироватьКоллекцию(ОсновныеДанные);
-
- URL = ПолучитьURLСервиса(ОсновныеДанные_);
- URL = СформироватьURLБакета(URL, Имя, Каталог);
-
- ОсновныеДанные_.Вставить("URL", URL);
-
- Ответ = ОтправитьЗапросБезТела(Метод, ОсновныеДанные_, , Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-Функция ПолучитьОбъектЧастями(Знач ОсновныеДанные
- , Знач Заголовки
- , Знач ПутьСохранения
- , Знач Размеры)
-
- ОбщийРазмер = Размеры["object"];
- РазмерУчастка = Размеры["chunk"];
- ШаблонЗаголовка = "bytes=%1-%2";
- НачалоУчастка = 0;
- Попытки = 3;
-
- МассивЗаголовков = Новый Массив;
-
- Пока НачалоУчастка < ОбщийРазмер - РазмерУчастка Цикл
-
- КонецУчастка = НачалоУчастка + РазмерУчастка - 1;
-
- НачалоСтр = OPI_Инструменты.ЧислоВСтроку(НачалоУчастка);
- КонецСтр = OPI_Инструменты.ЧислоВСтроку(КонецУчастка);
-
- Заголовок = СтрШаблон(ШаблонЗаголовка, НачалоСтр, КонецСтр);
- МассивЗаголовков.Добавить(Новый Структура("Заголовок,Позиция", Заголовок, КонецСтр));
-
- НачалоУчастка = КонецУчастка + 1;
-
- КонецЦикла;
-
- Если НачалоУчастка < ОбщийРазмер Тогда
-
- Заголовок = "bytes=" + OPI_Инструменты.ЧислоВСтроку(НачалоУчастка) + "-";
-
- СтруктураИнформации = Новый Структура("Заголовок,Позиция", Заголовок, ОбщийРазмер);
- МассивЗаголовков.Добавить(СтруктураИнформации);
-
- КонецЕсли;
-
- ПотокФайла = OPI_Инструменты.СоздатьПоток(ПутьСохранения);
- ЗаписьФайла = Новый ЗаписьДанных(ПотокФайла);
-
- Для Каждого ТекущийНабор Из МассивЗаголовков Цикл
-
- Для Н = 1 По Попытки Цикл
-
- Попытка
-
- ЗаголовокУчастка = ТекущийНабор["Заголовок"];
- ТекущаяПозиция = ТекущийНабор["Позиция"];
-
- ЗаголовокИсточника = Новый Соответствие();
- ЗаголовокИсточника.Вставить("Range", ЗаголовокУчастка);
- ДобавитьДополнительныеЗаголовки(Заголовки, ЗаголовокИсточника);
-
- ПромежуточныйРезультат = ПолучитьОбъектЦеликом(ОсновныеДанные, ЗаголовокИсточника);
- ЗаписьФайла.Записать(ПромежуточныйРезультат);
-
- КБайт = 1024;
- МБайт = КБайт * КБайт;
- OPI_Инструменты.ИнформацияОПрогрессе(ТекущаяПозиция, ОбщийРазмер, "МБ", МБайт);
-
- // !OInt ВыполнитьСборкуМусора();
- // !OInt ОсвободитьОбъект(ПромежуточныйРезультат);
-
- Прервать;
-
- Исключение
-
- Если Н = Попытки Тогда
-
- // !OInt Сообщить(ОписаниеОшибки());
- ВызватьИсключение "Не удалось получить файл!";
-
- Иначе
- // !OInt Сообщить("Ошибка загрузки участка " + Строка(Н) + "/" + Строка(Попытки));
- Продолжить;
- КонецЕсли;
-
- КонецПопытки;
-
- КонецЦикла;
-
- КонецЦикла;
-
- ЗаписьФайла.Закрыть();
-
- ПолученныйОбъект = ЗакрытьПотокИПолучитьДанные(ПотокФайла, ПутьСохранения);
-
- Возврат ПолученныйОбъект;
-
-КонецФункции
-
-Функция ПолучитьОбъектЦеликом(Знач ОсновныеДанные
- , Знач Заголовки
- , Знач ПутьСохранения = "")
-
- Ответ = ОтправитьЗапросБезТела("GET", ОсновныеДанные, Истина, Заголовки);
-
- Если ЗначениеЗаполнено(ПутьСохранения) Тогда
- Ответ.Записать(ПутьСохранения);
- ФайлОтвета = Новый Файл(ПутьСохранения);
- Возврат ФайлОтвета.ПолноеИмя;
- Иначе
- Возврат Ответ;
- КонецЕсли;
-
-КонецФункции
-
-Функция ЗагрузитьОбъектЧастями(Знач Наименование
- , Знач Бакет
- , Знач Содержимое
- , Знач ОсновныеДанные
- , Знач Заголовки
- , Знач Размеры
- , Знач Каталог = "")
-
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеИлиПоток(Содержимое);
-
- НачалоЗагрузки = ИнициализироватьЗагрузкуЧастями(Наименование, Бакет, ОсновныеДанные, Заголовки, Каталог);
-
- ПолеID = "response.InitiateMultipartUploadResult.UploadId";
- IDЗагрузки = Неопределено;
- ОбщийРазмер = Размеры["object"];
- РазмерУчастка = Размеры["chunk"];
- ПрочитаноБайт = 0;
- НомерЧасти = 1;
-
- Если Не OPI_Инструменты.ПолеКоллекцииСуществует(НачалоЗагрузки, ПолеID, IDЗагрузки) Тогда
- Возврат НачалоЗагрузки;
- КонецЕсли;
-
- ЧтениеДанных = Новый ЧтениеДанных(Содержимое);
- ИсходныйПоток = ЧтениеДанных.ИсходныйПоток();
- Ответ = Новый Соответствие;
- МассивТегов = Новый Массив;
-
- Ошибка = Ложь;
- Попытки = 3;
- ПоследнийКодУспеха = 299;
-
- Пока ПрочитаноБайт < ОбщийРазмер Цикл
-
- Для Н = 1 По Попытки Цикл
-
- Попытка
-
- Результат = ЧтениеДанных.Прочитать(РазмерУчастка);
- ТекущиеДанные = Результат.ПолучитьДвоичныеДанные();
-
- Если ТекущиеДанные.Размер() = 0 Тогда
- Прервать;
- КонецЕсли;
-
- Ответ = ЗагрузитьЧастьОбъекта(Наименование
- , Бакет
- , ОсновныеДанные
- , IDЗагрузки
- , НомерЧасти
- , ТекущиеДанные
- , Каталог);
-
- Если Ответ["status"] > ПоследнийКодУспеха Тогда
- ВызватьИсключение "Сервер вернул статус " + Строка(Ответ["status"]);
- КонецЕсли;
-
- ПрочитаноБайт = ИсходныйПоток.ТекущаяПозиция();
-
- ETag = Ответ["headers"]["Etag"];
- ETag = ?(ETag = Неопределено, Ответ["headers"]["ETag"], ETag);
-
- МассивТегов.Добавить(ETag);
-
- КБайт = 1024;
- МБайт = КБайт * КБайт;
- OPI_Инструменты.ИнформацияОПрогрессе(ПрочитаноБайт, ОбщийРазмер, "МБ", МБайт);
-
- // !OInt ВыполнитьСборкуМусора();
- // !OInt ОсвободитьОбъект(ТекущиеДанные);
-
- Прервать;
-
- Исключение
-
- Если Н = Попытки Тогда
-
- // !OInt Сообщить(OPI_Инструменты.JSONСтрокой(Ответ));
- // !OInt Сообщить("Не удалось загрузить часть файла! Отмена загрузки ID:" + IDЗагрузки + "...");
-
- Ошибка = Истина;
- Прервать;
-
- Иначе
-
- // !OInt Сообщить("Ошибка загрузки участка " + Строка(Н) + "/" + Строка(Попытки));
- // !OInt Сообщить(ОписаниеОшибки());
- Продолжить;
-
- КонецЕсли;
-
- КонецПопытки;
-
- КонецЦикла;
-
- НомерЧасти = НомерЧасти + 1;
-
- КонецЦикла;
-
- Если Ошибка Тогда
- Ответ = ОтменитьЗагрузкуЧастями(Наименование, Бакет, ОсновныеДанные, IDЗагрузки, , Каталог);
- Иначе
- Ответ = ЗавершитьЗагрузкуЧастями(Наименование, Бакет, ОсновныеДанные, IDЗагрузки, МассивТегов, , Каталог);
- КонецЕсли;
-
- Возврат Ответ;
-
-КонецФункции
-
-Функция ОформитьОтвет(Знач Ответ, Знач Тело)
-
- Статус = Ответ.КодСостояния;
- Заголовки = Ответ.Заголовки;
- ПоследнийКодУспеха = 299;
-
- Если ТипЗнч(Тело) = Тип("Строка") Или Статус > ПоследнийКодУспеха Тогда
-
- ДанныеОтвета = Новый Структура;
- ДанныеТела = Новый Структура;
-
- ТелоОтветаИзначальное = ?(ТипЗнч(Тело) = Тип("Строка"), Тело, Base64Строка(Тело));
- ТелоОтветаДляОбработки = СокрЛП(ТелоОтветаИзначальное);
-
- Если ЗначениеЗаполнено(ТелоОтветаДляОбработки) Тогда
-
- Попытка
- ДанныеТела = OPI_Инструменты.ОбработатьXML(ТелоОтветаДляОбработки);
- Исключение
- ДанныеТела.Вставить("notValidXMLMessage", ТелоОтветаИзначальное);
- КонецПопытки;
-
- КонецЕсли;
-
- ДанныеОтвета = Новый Структура;
- ДанныеОтвета.Вставить("status" , Статус);
- ДанныеОтвета.Вставить("response", ДанныеТела);
- ДанныеОтвета.Вставить("headers" , Заголовки);
-
- Иначе
- ДанныеОтвета = Тело;
- КонецЕсли;
-
- Возврат ДанныеОтвета;
-
-КонецФункции
-
-Функция СформироватьURLБакета(Знач URL, Знач Имя, Знач Каталог)
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Имя);
- OPI_ПреобразованиеТипов.ПолучитьБулево(Каталог);
-
- Признак = "://";
-
- Если Каталог Тогда
- URL = URL + Имя;
- Иначе
-
- Если СтрНайти(URL, Признак) Тогда
- URL = СтрЗаменить(URL, Признак, Признак + Имя + ".");
- Иначе
- URL = Имя + "." + URL;
- КонецЕсли;
-
- КонецЕсли;
-
- Если Не СтрЗаканчиваетсяНа(URL, "/") Тогда
- URL = URL + "/";
- КонецЕсли;
-
- Возврат URL;
-
-КонецФункции
-
-Функция СформироватьСтруктуруТегов(Знач Теги)
-
- ТекстОшибки = "Некорректный формат тегов. Ожидается коллекция ключ-значение";
- OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(Теги, ТекстОшибки);
-
- МассивТегов = Новый Массив;
-
- Для Каждого Тег Из Теги Цикл
-
- СтруктураТега = Новый Структура;
- СтруктураТега.Вставить("Key" , Строка(Тег.Ключ));
- СтруктураТега.Вставить("Value", Строка(Тег.Значение));
-
- МассивТегов.Добавить(Новый Структура("Tag", СтруктураТега));
-
- КонецЦикла;
-
- ФинальнаяСтруктура = Новый Структура;
- НаборТегов = Новый Структура;
-
- НаборТегов.Вставить("TagSet", МассивТегов);
- ФинальнаяСтруктура.Вставить("Tagging", НаборТегов);
-
- Возврат ФинальнаяСтруктура;
-
-КонецФункции
-
-Функция СформироватьСтруктуруНастроекВерсионирования(Знач Статус, Знач УдалениеMFA)
-
- СтруктураНастроек = Новый Структура;
-
- Если ЗначениеЗаполнено(Статус) Тогда
-
- OPI_ПреобразованиеТипов.ПолучитьБулево(Статус);
- СтруктураНастроек.Вставить("Status", ?(Статус, "Enabled", "Suspended"));
-
- КонецЕсли;
-
- Если ЗначениеЗаполнено(УдалениеMFA) Тогда
-
- OPI_ПреобразованиеТипов.ПолучитьБулево(УдалениеMFA);
- СтруктураНастроек.Вставить("MfaDelete", ?(УдалениеMFA, "Enabled", "Disabled"));
-
- КонецЕсли;
-
- ФинальнаяСтруктура = Новый Структура("VersioningConfiguration", СтруктураНастроек);
-
- Возврат ФинальнаяСтруктура;
-
-КонецФункции
-
-Функция ПолучитьРазмерСодержимого(Знач Содержимое)
-
- Если ТипЗнч(Содержимое) = Тип("Строка") Тогда
-
- ФайлСодержимого = Новый Файл(Содержимое);
- Возврат ФайлСодержимого.Размер();
-
- Иначе
-
- Возврат Содержимое.Размер();
-
- КонецЕсли;
-
-КонецФункции
-
-Функция ЗакрытьПотокИПолучитьДанные(Знач ПотокФайла, Знач ПутьСохранения)
-
- Если ТипЗнч(ПотокФайла) = Тип("ПотокВПамяти") Тогда
- Возврат ПотокФайла.ЗакрытьИПолучитьДвоичныеДанные();
- Иначе
- ПотокФайла.Закрыть();
- ФайлОтвета = Новый Файл(ПутьСохранения);
- Возврат ФайлОтвета.ПолноеИмя;
- КонецЕсли;
-
-КонецФункции
-
-Процедура ПроверитьОсновныеДанные(ОсновныеДанные)
-
- ТекстОшибки = "Ошибка получения авторизационных данных из структуры";
- OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(ОсновныеДанные, ТекстОшибки);
-
- МассивНеобходимыхПолей = Новый Массив;
- МассивНеобходимыхПолей.Добавить("AccessKey");
- МассивНеобходимыхПолей.Добавить("SecretKey");
- МассивНеобходимыхПолей.Добавить("Region");
- МассивНеобходимыхПолей.Добавить("Service");
- МассивНеобходимыхПолей.Добавить("URL");
-
- ОтсутствующиеПоля = OPI_Инструменты.НайтиОтсутствующиеПоляКоллекции(ОсновныеДанные, МассивНеобходимыхПолей);
-
- Если ОтсутствующиеПоля.Количество() > 0 Тогда
- ВызватьИсключение "Отсутствуют необходимые данные авторизации: " + СтрСоединить(ОтсутствующиеПоля, ", ");
- КонецЕсли;
-
-КонецПроцедуры
-
-Процедура ДобавитьДополнительныеЗаголовки(Приемник, Знач Заголовки)
-
- Если Не ЗначениеЗаполнено(Заголовки) Тогда
- Возврат;
- КонецЕсли;
-
- ТипПриемника = ТипЗнч(Приемник);
- ТекстОшибки = "Ошибка установки дополнительных заголовков";
- OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(Заголовки, ТекстОшибки);
-
- Если ТипПриемника = Тип("HTTPЗапрос") Тогда
-
- Для Каждого Заголовок Из Заголовки Цикл
- Приемник.Заголовки.Вставить(Заголовок.Ключ, Заголовок.Значение);
- КонецЦикла;
-
- Иначе
-
- Если Не ЗначениеЗаполнено(Приемник) Тогда
- Приемник = Новый Соответствие;
- Иначе
- OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(Приемник, ТекстОшибки);
- КонецЕсли;
-
- Для Каждого Заголовок Из Заголовки Цикл
- Приемник.Вставить(Заголовок.Ключ, Заголовок.Значение);
- КонецЦикла;
-
- КонецЕсли;
-
-КонецПроцедуры
-
-Процедура ЗаполнитьURLОбъекта(ОсновныеДанные, Наименование, Бакет, Версия = "", Каталог = Ложь)
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Наименование);
-
- URL = ПолучитьURLСервиса(ОсновныеДанные);
- URL = СформироватьURLБакета(URL, Бакет, Каталог);
- URL = URL + Наименование;
-
- Если ЗначениеЗаполнено(Версия) Тогда
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Версия);
- URL = URL + "?versionId=" + Версия;
-
- КонецЕсли;
-
- ОсновныеДанные.Вставить("URL", URL);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#КонецОбласти
diff --git a/XML/CommonModules/OPI_SFTP.xml b/XML/CommonModules/OPI_SFTP.xml
deleted file mode 100644
index 06cacdc08f..0000000000
--- a/XML/CommonModules/OPI_SFTP.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- OPI_SFTP
-
-
- ru
- SFTP (ОПИ)
-
-
- Модуль для работы с SFTP из набора ОПИ
- false
- false
- true
- true
- true
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git a/XML/CommonModules/OPI_SFTP/Ext/Module.bsl b/XML/CommonModules/OPI_SFTP/Ext/Module.bsl
deleted file mode 100644
index 30d20e9820..0000000000
--- a/XML/CommonModules/OPI_SFTP/Ext/Module.bsl
+++ /dev/null
@@ -1,740 +0,0 @@
-// OneScript: ./OInt/core/Modules/OPI_SFTP.os
-// Lib: SFTP
-// CLI: sftp
-// Keywords: sftp
-
-// MIT License
-
-// Copyright (c) 2023-2025 Anton Tsitavets
-
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-
-// The above copyright notice and this permission notice shall be included in all
-// copies or substantial portions of the Software.
-
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-// SOFTWARE.
-
-// https://github.com/Bayselonarrend/OpenIntegrations
-
-// BSLLS:Typo-off
-// BSLLS:LatinAndCyrillicSymbolInWord-off
-// BSLLS:IncorrectLineBreak-off
-// BSLLS:NumberOfOptionalParams-off
-// BSLLS:UsingServiceTag-off
-// BSLLS:LineLength-off
-// BSLLS:UsingSynchronousCalls-off
-
-//@skip-check module-structure-top-region
-//@skip-check module-structure-method-in-regions
-//@skip-check wrong-string-literal-content
-//@skip-check method-too-many-params
-//@skip-check constructor-function-return-section
-
-#Область ПрограммныйИнтерфейс
-
-#Область ОсновныеМетоды
-
-// Открыть соединение !NOCLI
-// Создает новый сеанс SFTP
-//
-// Примечание:
-// Получить конфигурацию соединения можно при помощи функций `ПолучитьНастройкиЛогинПароль`,^^
-// `ПолучитьНастройкиПриватныйКлюч`, `ПолучитьНастройкиЧерезАгента`
-//
-// Параметры:
-// НастройкиSSH - Структура Из КлючИЗначение - Структура настроек соединения - set
-// Прокси - Структура Из КлючИЗначение - Структура настроек прокси, если необходимо - proxy
-//
-// Возвращаемое значение:
-// Произвольный, Соответствие Из КлючИЗначение - Открыть соединение
-Функция ОткрытьСоединение(Знач НастройкиSSH, Знач Прокси = "") Экспорт
-
- СоединениеSSH = OPI_ЗапросыSSH.ОткрытьСоединение(НастройкиSSH, Прокси);
-
- Если ЭтоКоннектор(СоединениеSSH) Тогда
- Результат = СоединениеSSH.ToSFTP();
- Результат = OPI_Инструменты.JsonВСтруктуру(Результат);
- Иначе
- Возврат СоединениеSSH;
- КонецЕсли;
-
- Возврат ?(Результат["result"], СоединениеSSH, Результат);
-
-КонецФункции
-
-// Получить конфигурацию соединения
-// Формирует полную структуру настроек соединения, которая может быть использована вместо самого соединения при вызове других функций
-//
-// Примечание:
-// Может быть передана в качестве параметра `Соединение` в других функциях вместо настоящего соединения из функции `ОткрытьСоединение`.^^
-// При этом новое соединение будет открыто и закрыто в рамках вызываемой функции
-// Не рекомендуется использовать конфигурацию соединения при множественных обращениях к серверу SSH.^^
-// Данный функционал предназначен, в первую очередь для CLI версии ОПИ, где хранение соединения между вызовами невозможно
-//
-// Параметры:
-// НастройкиSSH - Структура Из КлючИЗначение - Настройки SSH - set
-// Прокси - Структура Из КлючИЗначение - Настройки прокси, если необходимо. См. ПолучитьНастройкиПрокси - proxy
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - Структура настроек соединения
-Функция ПолучитьКонфигурациюСоединения(Знач НастройкиSSH, Знач Прокси = Неопределено) Экспорт
-
- Возврат OPI_ЗапросыSSH.ПолучитьКонфигурациюСоединения(НастройкиSSH, Прокси);
-
-КонецФункции
-
-// Закрыть соединение !NOCLI
-// Явно закрывает переданное соединение
-//
-// Параметры:
-// Соединение - Произвольный - Объект компоненты с открытым соединением - conn
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - Результат закрытия соединения
-Функция ЗакрытьСоединение(Знач Соединение) Экспорт
-
- Возврат OPI_ЗапросыSSH.ЗакрытьСоединение(Соединение);
-
-КонецФункции
-
-// Изменить путь
-// Изменяет путь объекта на указанный
-//
-// Параметры:
-// Соединение - Произвольный - Существующее соединение или конфигурация соединения - conn
-// Путь - Строка - Текущий путь к объекту - old
-// НовыйПуть - Строка - Новый путь к объекту - new
-// Перезаписывать - Булево - Перезаписывать, если объект по целевому пути уже существует - rw
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат обработки
-Функция ИзменитьПуть(Знач Соединение, Знач Путь, Знач НовыйПуть, Знач Перезаписывать = Ложь) Экспорт
-
- ЗакрыватьСоединение = ПроверитьСоздатьСоединение(Соединение);
-
- Если Не ЭтоКоннектор(Соединение) Тогда
- Возврат Соединение;
- Иначе
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Путь);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(НовыйПуть);
- OPI_ПреобразованиеТипов.ПолучитьБулево(Перезаписывать);
-
- Результат = Соединение.RenameObject(Путь, НовыйПуть, Перезаписывать);
- Результат = OPI_Инструменты.JsonВСтруктуру(Результат);
-
- КонецЕсли;
-
- Если ЗакрыватьСоединение Тогда
- Результат.Вставить("close_connection", ЗакрытьСоединение(Соединение));
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-// Это коннектор !NOCLI
-// Проверяет, что значение является объектом внешней компоненты для работы с SFTP
-//
-// Параметры:
-// Значение - Произвольный - Значение для проверки - value
-//
-// Возвращаемое значение:
-// Булево - Это коннектор
-Функция ЭтоКоннектор(Знач Значение) Экспорт
-
- Возврат OPI_ЗапросыSSH.ЭтоКоннектор(Значение);
-
-КонецФункции
-
-// Получить настройки (логин/пароль)
-// Получает настройки соединения с авторизацией через логин и пароль
-//
-// Параметры:
-// Хост - Строка - Хост SSH - host
-// Порт - Число - Порт SSH - port
-// Логин - Строка - Имя пользователя SSH - user
-// Пароль - Строка - Пароль пользователя SSH - pass
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - Конфигурация соединения
-Функция ПолучитьНастройкиЛогинПароль(Знач Хост, Знач Порт, Знач Логин, Знач Пароль = "") Экспорт
-
- Возврат OPI_ЗапросыSSH.ПолучитьНастройкиЛогинПароль(Хост, Порт, Логин, Пароль);
-
-КонецФункции
-
-// Получить настройки (приватный ключ)
-// Получает настройки соединения с авторизацией через приватный ключ
-//
-// Параметры:
-// Хост - Строка - Хост SSH - host
-// Порт - Число - Порт SSH - port
-// Логин - Строка - Имя пользователя SSH - user
-// Приватный - Строка - Путь к файлу приватного ключа - key
-// Публичный - Строка - Путь к файлу публичного ключ - pub
-// Пароль - Строка - Пароль (passphrase) приватного ключа - pass
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - Конфигурация соединения
-Функция ПолучитьНастройкиПриватныйКлюч(Знач Хост
- , Знач Порт
- , Знач Логин
- , Знач Приватный
- , Знач Публичный = ""
- , Знач Пароль = "") Экспорт
-
- Возврат OPI_ЗапросыSSH.ПолучитьНастройкиПриватныйКлюч(Хост, Порт, Логин, Приватный, Публичный, Пароль);
-
-КонецФункции
-
-// Получить настройки (через агента)
-// Получает настройки соединения с авторизацией через SSH Agent
-//
-// Параметры:
-// Хост - Строка - Хост SSH - host
-// Порт - Число - Порт SSH - port
-// Логин - Строка - Имя пользователя SSH - user
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - Конфигурация соединения
-Функция ПолучитьНастройкиЧерезАгента(Знач Хост, Знач Порт, Знач Логин) Экспорт
-
- Возврат OPI_ЗапросыSSH.ПолучитьНастройкиЧерезАгента(Хост, Порт, Логин);
-
-КонецФункции
-
-// Получить настройки прокси
-// Формирует структуру настроек прокси-сервера для соединения
-//
-// Параметры:
-// Адрес - Строка - Адрес прокси - addr
-// Порт - Число - Порт прокси - port
-// Вид - Строка - Вид прокси: socks5, socks4, http - type
-// Логин - Строка, Неопределено - Логин авторизации, если необходимо - login
-// Пароль - Строка, Неопределено - Пароль для авторизации, если необходимо - pass
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - Структура настроек прокси
-Функция ПолучитьНастройкиПрокси(Знач Адрес
- , Знач Порт
- , Знач Вид = "socks5"
- , Знач Логин = Неопределено
- , Знач Пароль = Неопределено) Экспорт
-
- //@skip-check constructor-function-return-section
- Возврат OPI_Компоненты.ПолучитьНастройкиПрокси(Адрес, Порт, Вид, Логин, Пароль);
-
-КонецФункции
-
-#КонецОбласти
-
-#Область РаботаСДиректориями
-
-// Получить список объектов
-// Получает информацию о содержимом директории по выбранному пути
-//
-// Примечание:
-// Команда FTP: `LIST`
-//
-// Параметры:
-// Соединение - Произвольный - Существующее соединение или конфигурация соединения - conn
-// Путь - Строка - Путь к директории поиска - path
-// Рекурсивно - Булево - Получать информацию об объектах во вложенных директориях - rcv
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат обработки
-Функция ПолучитьСписокОбъектов(Знач Соединение, Знач Путь = "", Знач Рекурсивно = Ложь) Экспорт
-
- ЗакрыватьСоединение = ПроверитьСоздатьСоединение(Соединение);
-
- Если Не ЭтоКоннектор(Соединение) Тогда
- Возврат Соединение;
- Иначе
-
- OPI_ПреобразованиеТипов.ПолучитьБулево(Рекурсивно);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Путь);
-
- Результат = Соединение.ListDirectory(Путь);
- Результат = OPI_Инструменты.JsonВСтруктуру(Результат);
-
- ОбработатьРезультатПолученияСписка(Результат, Соединение, Рекурсивно);
-
- КонецЕсли;
-
- Если ЗакрыватьСоединение Тогда
- Результат.Вставить("close_connection", ЗакрытьСоединение(Соединение));
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-// BSLLS:MagicNumber-off
-
-// Создать новую директорию
-// Создает директорию по указанному пути
-//
-// Параметры:
-// Соединение - Произвольный - Существующее соединение или конфигурация соединения - conn
-// Путь - Строка - Путь к новой директории - path
-// Права - Строка - Режим доступа к каталогу в числовом формате POSIX (как в chmod) - mode
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат обработки
-Функция СоздатьНовуюДиректорию(Знач Соединение, Знач Путь, Знач Права = 700) Экспорт
-
- ЗакрыватьСоединение = ПроверитьСоздатьСоединение(Соединение);
-
- Если Не ЭтоКоннектор(Соединение) Тогда
- Возврат Соединение;
- Иначе
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Путь);
-
- Результат = Соединение.MakeDirectory(Путь, Права);
- Результат = OPI_Инструменты.JsonВСтруктуру(Результат);
-
- КонецЕсли;
-
- Если ЗакрыватьСоединение Тогда
- Результат.Вставить("close_connection", ЗакрытьСоединение(Соединение));
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-// BSLLS:MagicNumber-on
-
-// Удалить директорию
-// Удаляет существующую директорию
-//
-// Параметры:
-// Соединение - Произвольный - Существующее соединение или конфигурация соединения - conn
-// Путь - Строка - Путь к удаляемой директории - path
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат обработки
-Функция УдалитьДиректорию(Знач Соединение, Знач Путь) Экспорт
-
- ЗакрыватьСоединение = ПроверитьСоздатьСоединение(Соединение);
-
- Если Не ЭтоКоннектор(Соединение) Тогда
- Возврат Соединение;
- Иначе
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Путь);
-
- Результат = Соединение.RemoveDirectory(Путь);
- Результат = OPI_Инструменты.JsonВСтруктуру(Результат);
-
- КонецЕсли;
-
- Если ЗакрыватьСоединение Тогда
- Результат.Вставить("close_connection", ЗакрытьСоединение(Соединение));
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-// Получить текущий каталог
-// Получает текущий каталог, от которого вычисляются относительные пути
-//
-//
-// Параметры:
-// Соединение - Произвольный - Существующее соединение или конфигурация соединения - conn
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат обработки
-Функция ПолучитьТекущийКаталог(Знач Соединение) Экспорт
-
- ЗакрыватьСоединение = ПроверитьСоздатьСоединение(Соединение);
-
- Если Не ЭтоКоннектор(Соединение) Тогда
- Возврат Соединение;
- Иначе
-
- Результат = OPI_ЗапросыSSH.ВыполнитьКоманду(Соединение, "pwd");
- ОбработатьВыполнениеКомандыSSH(Результат, "path");
-
- КонецЕсли;
-
- Если ЗакрыватьСоединение Тогда
- Результат.Вставить("close_connection", ЗакрытьСоединение(Соединение));
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область РаботаСФайлами
-
-// Загрузить файл
-// Загружает файл с диска или двоичные данные на сервер
-//
-//
-// Параметры:
-// Соединение - Произвольный - Существующее соединение или конфигурация соединения - conn
-// Файл - Строка, ДвоичныеДанные - Файл на диске или данные файла - file
-// Путь - Строка - Путь сохранения файла на сервере - path
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат обработки
-Функция ЗагрузитьФайл(Знач Соединение, Знач Файл, Знач Путь) Экспорт
-
- ЗакрыватьСоединение = ПроверитьСоздатьСоединение(Соединение);
-
- Если Не ЭтоКоннектор(Соединение) Тогда
- Возврат Соединение;
- Иначе
-
- Если ТипЗнч(Файл) = Тип("Строка") Тогда
- ФайлНаДиске = Новый Файл(Файл);
- ЭтоФайлНаДиске = ФайлНаДиске.Существует();
- Иначе
- ЭтоФайлНаДиске = Ложь;
- КонецЕсли;
-
- Если Не ЭтоФайлНаДиске Тогда
-
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Файл);
-
- Если OPI_Компоненты.ТребуетсяПередачаЧерезФайл() Тогда
-
- // BSLLS:MissingTemporaryFileDeletion-off
-
- //@skip-check missing-temporary-file-deletion
- ИВФ = ПолучитьИмяВременногоФайла();
-
- // BSLLS:MissingTemporaryFileDeletion-on
-
- Файл.Записать(ИВФ);
-
- Результат = Соединение.UploadFile(ИВФ, Путь);
-
- OPI_Инструменты.УдалитьФайлВПопытке(ИВФ, "Не удалось удалить временный файл после загрузки");
-
- Иначе
- Результат = Соединение.UploadData(Файл, Путь);
- КонецЕсли;
-
- Иначе
- Результат = Соединение.UploadFile(Файл, Путь);
- КонецЕсли;
-
- Результат = OPI_Инструменты.JsonВСтруктуру(Результат);
-
- КонецЕсли;
-
- Если ЗакрыватьСоединение Тогда
- Результат.Вставить("close_connection", ЗакрытьСоединение(Соединение));
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-// Удалить файл
-// Удаляет файл с сервера
-//
-// Параметры:
-// Соединение - Произвольный - Существующее соединение или конфигурация соединения - conn
-// Путь - Строка - Путь файла на сервере - path
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат обработки
-Функция УдалитьФайл(Знач Соединение, Знач Путь) Экспорт
-
- ЗакрыватьСоединение = ПроверитьСоздатьСоединение(Соединение);
-
- Если Не ЭтоКоннектор(Соединение) Тогда
- Возврат Соединение;
- Иначе
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Путь);
-
- Результат = Соединение.RemoveFile(Путь);
- Результат = OPI_Инструменты.JsonВСтруктуру(Результат);
-
- КонецЕсли;
-
- Если ЗакрыватьСоединение Тогда
- Результат.Вставить("close_connection", ЗакрытьСоединение(Соединение));
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-// Сохранить файл
-// Сохраняет файл с сервера по указанному пути
-//
-// Параметры:
-// Соединение - Произвольный - Существующее соединение или конфигурация соединения - conn
-// Путь - Строка - Путь файла на сервере - path
-// ИмяФайла - Строка - Путь для сохранения файла на диске - file
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат обработки
-Функция СохранитьФайл(Знач Соединение, Знач Путь, Знач ИмяФайла) Экспорт
-
- ЗакрыватьСоединение = ПроверитьСоздатьСоединение(Соединение);
-
- Если Не ЭтоКоннектор(Соединение) Тогда
- Возврат Соединение;
- Иначе
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Путь);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(ИмяФайла);
-
- OPI_Инструменты.ВернутьУправляющиеПоследовательности(ИмяФайла);
-
- Результат = Соединение.DownloadToFile(Путь, ИмяФайла);
- Результат = OPI_Инструменты.JsonВСтруктуру(Результат);
-
- КонецЕсли;
-
- Если ЗакрыватьСоединение Тогда
- Результат.Вставить("close_connection", ЗакрытьСоединение(Соединение));
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-// Получить данные файла !NOCLI
-// Получает файл с сервера как двоичные данные
-//
-// Параметры:
-// Соединение - Произвольный - Существующее соединение или конфигурация соединения - conn
-// Путь - Строка - Путь файла на сервере - path
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение, ДвоичныеДанные - Данные файла или информация об ошибке
-Функция ПолучитьДанныеФайла(Знач Соединение, Знач Путь) Экспорт
-
- ЗакрыватьСоединение = ПроверитьСоздатьСоединение(Соединение);
-
- Если Не ЭтоКоннектор(Соединение) Тогда
- Возврат Соединение;
- Иначе
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Путь);
-
- Если OPI_Компоненты.ТребуетсяПередачаЧерезФайл() Тогда
-
- // BSLLS:MissingTemporaryFileDeletion-off
-
- //@skip-check missing-temporary-file-deletion
- ИВФ = ПолучитьИмяВременногоФайла();
-
- // BSLLS:MissingTemporaryFileDeletion-on
-
- Результат = Соединение.DownloadToFile(Путь, ИВФ);
- Результат = OPI_Инструменты.JsonВСтруктуру(Результат);
-
- Если Результат["result"] Тогда
-
- Данные = Новый ДвоичныеДанные(ИВФ);
- OPI_Инструменты.УдалитьФайлВПопытке(ИВФ, "Не удалось удалить временный файл после загрузки");
- Возврат Данные;
-
- КонецЕсли;
-
- Иначе
-
- Данные = Соединение.DownloadToBuffer(Путь);
-
- Если ТипЗнч(Данные) = Тип("Строка") Тогда
- Результат = OPI_Инструменты.JsonВСтруктуру(Данные);
- Иначе
- Возврат Данные;
- КонецЕсли;
-
- КонецЕсли;
-
- КонецЕсли;
-
- Если ЗакрыватьСоединение Тогда
- Результат.Вставить("close_connection", ЗакрытьСоединение(Соединение));
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-// Получить информацию о файле
-// Получает информацию о файле по указанному пути
-//
-// Параметры:
-// Соединение - Произвольный - Существующее соединение или конфигурация соединения - conn
-// Путь - Строка - Путь файла на сервере - path
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат обработки
-Функция ПолучитьИнформациюОФайле(Знач Соединение, Знач Путь) Экспорт
-
- ЗакрыватьСоединение = ПроверитьСоздатьСоединение(Соединение);
-
- Если Не ЭтоКоннектор(Соединение) Тогда
- Возврат Соединение;
- Иначе
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Путь);
-
- Результат = Соединение.GetFileInfo(Путь);
- Результат = OPI_Инструменты.JsonВСтруктуру(Результат);
-
- КонецЕсли;
-
- Если ЗакрыватьСоединение Тогда
- Результат.Вставить("close_connection", ЗакрытьСоединение(Соединение));
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-#КонецОбласти
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-Функция ПроверитьСоздатьСоединение(Соединение)
-
- Если Не ЭтоКоннектор(Соединение) Тогда
-
- ЗакрыватьСоединение = Истина;
- Соединение = ОткрытьСоединениеПоКонфигурации(Соединение);
-
- Иначе
- ЗакрыватьСоединение = Ложь;
- КонецЕсли;
-
- Если Не ЭтоКоннектор(Соединение) Тогда
- Возврат Соединение;
- КонецЕсли;
-
- ЭтоSFTP = Соединение.IsSFTP();
-
- Если Не ЭтоSFTP Тогда
-
- Результат = Соединение.ToSFTP();
- Результат = OPI_Инструменты.JsonВСтруктуру(Результат);
- Соединение = ?(Результат["result"], Соединение, Результат);
-
- КонецЕсли;
-
- Возврат ЗакрыватьСоединение;
-
-КонецФункции
-
-Функция ОткрытьСоединениеПоКонфигурации(Знач СтруктураКонфигурации)
-
- Если ЭтоКоннектор(СтруктураКонфигурации) Тогда
- Возврат СтруктураКонфигурации;
- КонецЕсли;
-
- ШаблонОшибки = "Передана некорректная конфигурация соединения: %1";
-
- Попытка
- OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(СтруктураКонфигурации);
- Исключение
-
- Результат = Новый Соответствие;
- Результат.Вставить("result", Ложь);
- Результат.Вставить("error" , СтрШаблон(ШаблонОшибки, ОписаниеОшибки()));
- Возврат Результат;
-
- КонецПопытки;
-
- Если Не OPI_Инструменты.ПолеКоллекцииСуществует(СтруктураКонфигурации, "set") Тогда
-
- Результат = Новый Соответствие;
- Результат.Вставить("result", Ложь);
- Результат.Вставить("error" , СтрШаблон(ШаблонОшибки, "отсутствуют основные параметры соединения"));
- Возврат Результат;
-
- КонецЕсли;
-
- НастройкиSSH = СтруктураКонфигурации["set"];
- Прокси = OPI_Инструменты.ПолучитьИли(СтруктураКонфигурации, "proxy", Неопределено);
-
- Возврат ОткрытьСоединение(НастройкиSSH, Прокси);
-
-КонецФункции
-
-Процедура ОбработатьВыполнениеКомандыSSH(Результат, ПолеРезультата = "data")
-
- Result_ = "result";
-
- Если Результат[Result_] Тогда
-
- РезультатОбработки = Новый Соответствие;
-
- Если Не ЗначениеЗаполнено(Результат["stderr"]) Тогда
-
- РезультатОбработки.Вставить(Result_, Истина);
-
- StdOut = Результат["stdout"];
-
- Если ЗначениеЗаполнено(StdOut) Тогда
- РезультатОбработки.Вставить(ПолеРезультата, StdOut);
- КонецЕсли;
-
- Иначе
- РезультатОбработки.Вставить(Result_, Ложь);
- РезультатОбработки.Вставить("error", Результат["stderr"]);
- КонецЕсли;
-
- Результат = РезультатОбработки;
-
- КонецЕсли;
-
-КонецПроцедуры
-
-Процедура ОбработатьРезультатПолученияСписка(Результат, Соединение, Знач Рекурсивно)
-
- Если Результат["result"] И Рекурсивно Тогда
-
- Для Каждого ОбъектКаталога Из Результат["data"] Цикл
-
- Если Не ОбъектКаталога["is_directory"] Тогда
- Продолжить;
- КонецЕсли;
-
- Дочерние = ПолучитьСписокОбъектов(Соединение, ОбъектКаталога["path"], Истина);
-
- Если Дочерние["result"] Тогда
-
- ОбъектКаталога.Вставить("objects", Дочерние["data"]);
-
- Иначе
-
- ОбъектКаталога.Вставить("objects", Дочерние["error"]);
-
- КонецЕсли;
-
- КонецЦикла;
-
- КонецЕсли;
-
-КонецПроцедуры
-
-#КонецОбласти
diff --git a/XML/CommonModules/OPI_SQLite.xml b/XML/CommonModules/OPI_SQLite.xml
deleted file mode 100644
index ba8819a1b7..0000000000
--- a/XML/CommonModules/OPI_SQLite.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
- OPI_SQLite
-
-
-
- OPI SQLite
-
-
- ru
- SQLite (ОПИ)
-
-
- Модуль для работы с базами SQLite из набора ОПИ
- false
- false
- true
- true
- true
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git a/XML/CommonModules/OPI_SQLite/Ext/Module.bsl b/XML/CommonModules/OPI_SQLite/Ext/Module.bsl
deleted file mode 100644
index 1cca23a476..0000000000
--- a/XML/CommonModules/OPI_SQLite/Ext/Module.bsl
+++ /dev/null
@@ -1,501 +0,0 @@
-// OneScript: ./OInt/core/Modules/OPI_SQLite.os
-// Lib: SQLite
-// CLI: sqlite
-// Keywords: sqlite
-// Depends: OPI_SQLite
-
-// MIT License
-
-// Copyright (c) 2023-2025 Anton Tsitavets
-
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-
-// The above copyright notice and this permission notice shall be included in all
-// copies or substantial portions of the Software.
-
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-// SOFTWARE.
-
-// https://github.com/Bayselonarrend/OpenIntegrations
-
-// BSLLS:Typo-off
-// BSLLS:LatinAndCyrillicSymbolInWord-off
-// BSLLS:IncorrectLineBreak-off
-// BSLLS:NumberOfOptionalParams-off
-// BSLLS:UsingServiceTag-off
-// BSLLS:LineLength-off
-// BSLLS:UsingSynchronousCalls-off
-
-//@skip-check module-structure-top-region
-//@skip-check module-structure-method-in-regions
-//@skip-check wrong-string-literal-content
-//@skip-check method-too-many-params
-//@skip-check constructor-function-return-section
-
-#Область ПрограммныйИнтерфейс
-
-#Область ОсновныеМетоды
-
-// Открыть соединение !NOCLI
-// Создает подключение к указанной базе
-//
-// Параметры:
-// База - Строка - Путь к базе. In memory, если не заполнено - db
-//
-// Возвращаемое значение:
-// Произвольный - Объект коннектора или структура с информацией об ошибке
-Функция ОткрытьСоединение(Знач База = "") Экспорт
-
- Если ЭтоКоннектор(База) Тогда
- Возврат База;
- КонецЕсли;
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(База);
- OPI_Инструменты.ВернутьУправляющиеПоследовательности(База);
-
- Коннектор = OPI_Компоненты.ПолучитьКомпоненту("SQLite");
-
- Коннектор.Database = База;
-
- Результат = Коннектор.Connect();
- Результат = OPI_Инструменты.JsonВСтруктуру(Результат, Ложь);
-
- Возврат ?(Результат["result"], Коннектор, Результат);
-
-КонецФункции
-
-// Закрыть соединение !NOCLI
-// Явно закрывает переданное соединение
-//
-// Параметры:
-// Соединение - Произвольный - Объект компоненты с открытым соединением - db
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - Результат закрытия соединения
-Функция ЗакрытьСоединение(Знач Соединение) Экспорт
-
- Если ЭтоКоннектор(Соединение) Тогда
-
- Результат = Соединение.Close();
- Результат = OPI_Инструменты.JsonВСтруктуру(Результат, Ложь);
-
- Иначе
-
- Результат = Новый Структура("result,error", Ложь, "It's not a connection");
-
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-// Это коннектор !NOCLI
-// Проверяет, что значение является объектом внешней компоненты SQLite
-//
-// Параметры:
-// Значение - Произвольный - Значение для проверки - value
-//
-// Возвращаемое значение:
-// Булево - Это коннектор
-Функция ЭтоКоннектор(Знач Значение) Экспорт
-
- Возврат Строка(ТипЗнч(Значение)) = "AddIn.OPI_SQLite.Main";
-
-КонецФункции
-
-// Выполнить запрос SQL
-// Выполняет произвольный SQL запрос
-//
-// Примечание:
-// Доступные типы параметров: Cтрока, Число, Дата, Булево, ДвоичныеДанные.^^
-// Двоичные данные могут также быть переданы как структура `{'blob':Путь к файлу}`. Возвращаются значения двоичных данных (BLOB)^^
-// в виде `{'blob':Base64 строка}`
-// Без указания флага `ФорсироватьРезультат`, чтение результата осуществляется только для запросов, начинающихся с `SELECT`^^
-// Для остальных запросов возвращается `result:true` или `false` с текстом ошибки
-// При выполнении нескольких запросов в рамках одного соединения, расширения лучше подключить один раз при помощи функции `ПодключитьРасширение`
-//
-// Параметры:
-// ТекстЗапроса - Строка - Текст запроса к базе - sql
-// Параметры - Массив Из Произвольный - Массив позиционных параметров запроса - params
-// ФорсироватьРезультат - Булево - Включает попытку получения результата, даже для не SELECT запросов - force
-// Соединение - Строка, Произвольный - Существующее соединение или путь к базе. In memory, если не заполнено - db
-// Расширения - Соответствие Из КлючИЗначение - Расширения: Ключ > путь или данные расширения, Значение > точка входа - exts
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат выполнения запроса
-Функция ВыполнитьЗапросSQL(Знач ТекстЗапроса
- , Знач Параметры = ""
- , Знач ФорсироватьРезультат = Ложь
- , Знач Соединение = ""
- , Знач Расширения = Неопределено) Экспорт
-
- Если ЭтоКоннектор(Соединение) Тогда
- ЗакрыватьСоединение = Ложь;
- Коннектор = Соединение;
- Иначе
- ЗакрыватьСоединение = Истина;
- Коннектор = ОткрытьСоединение(Соединение);
- КонецЕсли;
-
- Если Не ЭтоКоннектор(Коннектор) Тогда
- Возврат Коннектор;
- КонецЕсли;
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(ТекстЗапроса, Истина);
- OPI_ПреобразованиеТипов.ПолучитьБулево(ФорсироватьРезультат);
-
- Если ЗначениеЗаполнено(Расширения) Тогда
-
- OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(Расширения, "Некорректная коллекция расширений!");
-
- Для Каждого Расширение Из Расширения Цикл
-
- ПодключениеРасширения = ПодключитьРасширение(Расширение.Ключ, Расширение.Значение, Коннектор);
-
- Если Не ПодключениеРасширения["result"] Тогда
- Возврат ПодключениеРасширения;
- КонецЕсли;
-
- КонецЦикла;
-
- КонецЕсли;
-
- Параметры_ = OPI_ЗапросыSQL.ОбработатьПараметры(Параметры, ПолучитьСтруктуруТипов());
- Результат = OPI_ЗапросыSQL.ВыполнитьЗапросСОбработкой(Коннектор, ТекстЗапроса, ФорсироватьРезультат, Параметры_);
-
- Если ЗакрыватьСоединение Тогда
- ЗакрытьСоединение(Коннектор);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-// Подключить расширение !NOCLI
-// Подключает расширение SQLite для указанного соединения
-//
-// Примечание:
-// Расширение активно только в рамках соединения. При каждом новом соединении его необходимо подключать заново
-// Аналогично использованию параметра `Расширения` (`exts` в CLI) функции `ВыполнитьЗапросSQL`
-//
-// Параметры:
-// Расширение - Строка, ДвоичныеДанные - Данные или путь к расширению - ext
-// ТочкаВхода - Строка - Точка входа расширения, если необходима - point
-// Соединение - Строка, Произвольный - Существующее соединение или путь к базе. In memory, если не заполнено - db
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат подключения расширения
-Функция ПодключитьРасширение(Знач Расширение, Знач ТочкаВхода = "", Знач Соединение = "") Экспорт
-
- Расширение_ = Расширение;
- РасширениеФайла = ?(OPI_Инструменты.ЭтоWindows(), "dll", "so");
-
- OPI_ПреобразованиеТипов.ПолучитьФайлНаДиске(Расширение_, РасширениеФайла);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(ТочкаВхода);
-
- Временный = Расширение_["Временный"];
- ПутьКФайлу = Расширение_["Путь"];
- Коннектор = ОткрытьСоединение(Соединение);
-
- ТипКомпоненты = "AddIn.OPI_SQLite.Main";
-
- Если ТипЗнч(Коннектор) <> Тип(ТипКомпоненты) Тогда
- Возврат Коннектор;
- КонецЕсли;
-
- Результат = Коннектор.LoadExtension(ПутьКФайлу, ТочкаВхода);
- Результат = OPI_Инструменты.JsonВСтруктуру(Результат);
-
- Если Временный Тогда
-
- Попытка
- УдалитьФайлы(ПутьКФайлу);
- Исключение
- Возврат Результат;
- КонецПопытки;
-
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область ORM
-
-// Получить информацию о таблице
-// Получает информацию о таблице
-//
-// Параметры:
-// Таблица - Строка - Имя таблицы - table
-// Соединение - Строка, Произвольный - Существующее соединение или путь к базе - db
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат выполнения запроса
-Функция ПолучитьИнформациюОТаблице(Знач Таблица, Знач Соединение = "") Экспорт
-
- Результат = OPI_ЗапросыSQL.ПолучитьСтруктуруТаблицы(OPI_SQLite, Таблица, Соединение);
- Возврат Результат;
-
-КонецФункции
-
-// Создать таблицу
-// Создает пустую таблицу в базе
-//
-// Параметры:
-// Таблица - Строка - Имя таблицы - table
-// СтруктураКолонок - Структура Из КлючИЗначение - Структура колонок: Ключ > имя, Значение > Тип данных - cols
-// Соединение - Строка, Произвольный - Существующее соединение или путь к базе - db
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат выполнения запроса
-Функция СоздатьТаблицу(Знач Таблица, Знач СтруктураКолонок, Знач Соединение = "") Экспорт
-
- Результат = OPI_ЗапросыSQL.СоздатьТаблицу(OPI_SQLite, Таблица, СтруктураКолонок, Соединение);
- Возврат Результат;
-
-КонецФункции
-
-// Добавить колонку таблицы
-// Добавляет новую колонку в существующую таблицу
-//
-// Параметры:
-// Таблица - Строка - Имя таблицы - table
-// Имя - Строка - Имя колонки - name
-// ТипДанных - Строка - Тип данных колонки - type
-// Соединение - Строка, Произвольный - Существующее соединение или путь к базе - db
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат выполнения запроса
-Функция ДобавитьКолонкуТаблицы(Знач Таблица, Знач Имя, Знач ТипДанных, Знач Соединение = "") Экспорт
-
- Результат = OPI_ЗапросыSQL.ДобавитьКолонкуТаблицы(OPI_SQLite, Таблица, Имя, ТипДанных, Соединение);
- Возврат Результат;
-
-КонецФункции
-
-// Удалить колонку таблицы
-// Удаляет колонку из таблицы
-//
-// Параметры:
-// Таблица - Строка - Имя таблицы - table
-// Имя - Строка - Имя колонки - name
-// Соединение - Строка, Произвольный - Существующее соединение или путь к базе - db
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат выполнения запроса
-Функция УдалитьКолонкуТаблицы(Знач Таблица, Знач Имя, Знач Соединение = "") Экспорт
-
- Результат = OPI_ЗапросыSQL.УдалитьКолонкуТаблицы(OPI_SQLite, Таблица, Имя, Соединение);
- Возврат Результат;
-
-КонецФункции
-
-// Гарантировать таблицу
-// Создает новую таблицу в случае отсутствия или обновляет состав колонок существующей таблицы
-//
-// Примечание:
-// В результате изменения структуры таблицы данные могут быть утеряны!^^
-// Рекомендуется предварительно опробовать данный метод на тестовых данных
-// Данная функция не обновляет тип данных существующих колонок
-//
-// Параметры:
-// Таблица - Строка - Имя таблицы - table
-// СтруктураКолонок - Структура Из КлючИЗначение - Структура колонок: Ключ > имя, Значение > Тип данных - cols
-// Соединение - Строка, Произвольный - Существующее соединение или путь к базе - db
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат выполнения запроса
-Функция ГарантироватьТаблицу(Знач Таблица, Знач СтруктураКолонок, Знач Соединение = "") Экспорт
-
- Результат = OPI_ЗапросыSQL.ГарантироватьТаблицу(OPI_SQLite, Таблица, СтруктураКолонок, Соединение);
- Возврат Результат;
-
-КонецФункции
-
-// Добавить записи
-// Добавляет записи в таблицу
-//
-// Примечание:
-// Двоичные данные могут также быть переданы как структура `{'blob':Путь к файлу}`
-//
-// Параметры:
-// Таблица - Строка - Имя таблицы - table
-// МассивДанных - Массив Из Структура - Массив структур данных строк: Ключ > поле, Значение > значение поля - rows
-// Транзакция - Булево - Истина > добавление записей в транзакции с откатом при ошибке - trn
-// Соединение - Строка, Произвольный - Существующее соединение или путь к базе - db
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат выполнения запроса
-Функция ДобавитьЗаписи(Знач Таблица, Знач МассивДанных, Знач Транзакция = Истина, Знач Соединение = "") Экспорт
-
- Результат = OPI_ЗапросыSQL.ДобавитьЗаписи(OPI_SQLite, Таблица, МассивДанных, Транзакция, Соединение);
- Возврат Результат;
-
-КонецФункции
-
-// Получить записи
-// Получает записи из выбранной таблицы
-//
-// Примечание:
-// Значения типа Двоичные данные (BLOB) возвращаются в виде `{'blob':Base64 строка}`
-//
-// Параметры:
-// Таблица - Строка - Имя таблицы - table
-// Поля - Массив Из Строка - Поля для выборки - fields
-// Фильтры - Массив Из Структура - Массив фильтров. См. ПолучитьСтруктуруФильтраЗаписей - filter
-// Сортировка - Структура Из КлючИЗначение - Сортировка: Ключ > поле, Значение > направление (ASC, DESC) - order
-// Количество - Число - Ограничение количества получаемых строк - limit
-// Соединение - Строка, Произвольный - Существующее соединение или путь к базе - db
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат выполнения запроса
-Функция ПолучитьЗаписи(Знач Таблица
- , Знач Поля = "*"
- , Знач Фильтры = ""
- , Знач Сортировка = ""
- , Знач Количество = ""
- , Знач Соединение = "") Экспорт
-
- Результат = OPI_ЗапросыSQL.ПолучитьЗаписи(OPI_SQLite, Таблица, Поля, Фильтры, Сортировка, Количество, Соединение);
- Возврат Результат;
-
-КонецФункции
-
-// Обновить записи
-// Обновляет значение записей по выбранным критериям
-//
-// Параметры:
-// Таблица - Строка - Имя таблицы - table
-// СтруктураЗначений - Структура Из КлючИЗначение - Структура значений: Ключ > поле, Значение > значение поля - values
-// Фильтры - Массив Из Структура - Массив фильтров. См. ПолучитьСтруктуруФильтраЗаписей - filter
-// Соединение - Строка, Произвольный - Существующее соединение или путь к базе - db
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат выполнения запроса
-Функция ОбновитьЗаписи(Знач Таблица, Знач СтруктураЗначений, Знач Фильтры = "", Знач Соединение = "") Экспорт
-
- Результат = OPI_ЗапросыSQL.ОбновитьЗаписи(OPI_SQLite, Таблица, СтруктураЗначений, Фильтры, Соединение);
- Возврат Результат;
-
-КонецФункции
-
-// Удалить записи
-// Удаляет записи из таблицы
-//
-// Параметры:
-// Таблица - Строка - Имя таблицы - table
-// Фильтры - Массив Из Структура - Массив фильтров. См. ПолучитьСтруктуруФильтраЗаписей - filter
-// Соединение - Строка, Произвольный - Существующее соединение или путь к базе - db
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат выполнения запроса
-Функция УдалитьЗаписи(Знач Таблица, Знач Фильтры = "", Знач Соединение = "") Экспорт
-
- Результат = OPI_ЗапросыSQL.УдалитьЗаписи(OPI_SQLite, Таблица, Фильтры, Соединение);
- Возврат Результат;
-
-КонецФункции
-
-// Удалить таблицу
-// Удаляет таблицу из базы
-//
-// Параметры:
-// Таблица - Строка - Имя таблицы - table
-// Соединение - Строка, Произвольный - Существующее соединение или путь к базе - db
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат выполнения запроса
-Функция УдалитьТаблицу(Знач Таблица, Знач Соединение = "") Экспорт
-
- Результат = OPI_ЗапросыSQL.УдалитьТаблицу(OPI_SQLite, Таблица, Соединение);
- Возврат Результат;
-
-КонецФункции
-
-// Очистить таблицу
-// Очищает таблицу базы
-//
-// Параметры:
-// Таблица - Строка - Имя таблицы - table
-// Соединение - Строка, Произвольный - Существующее соединение или путь к базе - db
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат выполнения запроса
-Функция ОчиститьТаблицу(Знач Таблица, Знач Соединение = "") Экспорт
-
- Результат = OPI_ЗапросыSQL.УдалитьЗаписи(OPI_SQLite, Таблица, , Соединение);
- Возврат Результат;
-
-КонецФункции
-
-// Получить структуру фильтра записей
-// Получает структуру шаблон для фильтрации записей в запросах ORM
-//
-// Примечание:
-// Использование признака `raw` необходимо для составных конструкций, вроде `BEETWEEN`.^^
-// Например: при `raw:false` фильтр `type:BETWEEN` `value:10 AND 20` будет интерпритирован как `BETWEEN ?1 `^^
-// где `?1 = "10 AND 20"`, что приведет к ошибке.^^
-// В таком случае необходимо использовать `raw:true` для установки условия напрямую в текст запроса
-//
-// Параметры:
-// Пустая - Булево - Истина > структура с пустыми значениями, Ложь > в значениях будут описания полей - empty
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - Элемент фильтра записей
-Функция ПолучитьСтруктуруФильтраЗаписей(Знач Пустая = Ложь) Экспорт
-
- Возврат OPI_ЗапросыSQL.ПолучитьСтруктуруФильтраЗаписей(Пустая);
-
-КонецФункции
-
-#КонецОбласти
-
-#КонецОбласти
-
-#Область СлужебныйПрограммныйИнтерфейс
-
-Функция ПолучитьОсобенности() Экспорт
-
- Особенности = Новый Соответствие;
- Особенности.Вставить("НумерацияПараметров", Истина);
- Особенности.Вставить("МаркерПараметров" , "?");
- Особенности.Вставить("СУБД" , "sqlite");
- Особенности.Вставить("ПолеКолонки" , "name");
- Особенности.Вставить("НачалоТранзакции" , "BEGIN");
-
- Возврат Особенности;
-
-КонецФункции
-
-Функция ПолучитьСтруктуруТипов() Экспорт
-
- Text_ = "TEXT";
-
- СтруктураТипов = Новый Соответствие;
- СтруктураТипов.Вставить("ДвоичныеДанные" , "BLOB");
- СтруктураТипов.Вставить("УникальныйИдентификатор", Text_);
- СтруктураТипов.Вставить("Булево" , "BOOL");
- СтруктураТипов.Вставить("Дробное" , "REAL");
- СтруктураТипов.Вставить("Целое" , "INTEGER");
- СтруктураТипов.Вставить("Дата" , Text_);
- СтруктураТипов.Вставить("Строка" , Text_);
- СтруктураТипов.Вставить("Коллекции" , Новый СписокЗначений);
- СтруктураТипов.Вставить("БулевоКакЧисло" , Ложь);
-
- Возврат СтруктураТипов;
-
-КонецФункции
-
-#КонецОбласти
diff --git a/XML/CommonModules/OPI_SSH.xml b/XML/CommonModules/OPI_SSH.xml
deleted file mode 100644
index 04245fc805..0000000000
--- a/XML/CommonModules/OPI_SSH.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- OPI_SSH
-
-
- ru
- SSH (ОПИ)
-
-
- Модуль для работы с SSH из набора ОПИ
- false
- false
- true
- true
- true
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git a/XML/CommonModules/OPI_SSH/Ext/Module.bsl b/XML/CommonModules/OPI_SSH/Ext/Module.bsl
deleted file mode 100644
index c822765700..0000000000
--- a/XML/CommonModules/OPI_SSH/Ext/Module.bsl
+++ /dev/null
@@ -1,212 +0,0 @@
-// OneScript: ./OInt/core/Modules/OPI_SSH.os
-// Lib: SSH
-// CLI: ssh
-// Keywords: ssh, shell
-
-// MIT License
-
-// Copyright (c) 2023-2025 Anton Tsitavets
-
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-
-// The above copyright notice and this permission notice shall be included in all
-// copies or substantial portions of the Software.
-
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-// SOFTWARE.
-
-// https://github.com/Bayselonarrend/OpenIntegrations
-
-// BSLLS:Typo-off
-// BSLLS:LatinAndCyrillicSymbolInWord-off
-// BSLLS:IncorrectLineBreak-off
-// BSLLS:NumberOfOptionalParams-off
-// BSLLS:UsingServiceTag-off
-// BSLLS:LineLength-off
-// BSLLS:UsingSynchronousCalls-off
-
-//@skip-check module-structure-top-region
-//@skip-check module-structure-method-in-regions
-//@skip-check wrong-string-literal-content
-//@skip-check method-too-many-params
-//@skip-check constructor-function-return-section
-
-#Область ПрограммныйИнтерфейс
-
-#Область ОсновныеМетоды
-
-// Открыть соединение !NOCLI
-// Создает новый сеанс SSH
-//
-// Примечание:
-// Получить конфигурацию соединения можно при помощи функций `ПолучитьНастройкиЛогинПароль`,^^
-// `ПолучитьНастройкиПриватныйКлюч`, `ПолучитьНастройкиЧерезАгента`
-//
-// Параметры:
-// НастройкиSSH - Структура Из КлючИЗначение - Структура настроек соединения - set
-// Прокси - Структура Из КлючИЗначение - Структура настроек прокси, если необходимо - proxy
-//
-// Возвращаемое значение:
-// Произвольный, Соответствие Из КлючИЗначение - Открыть соединение
-Функция ОткрытьСоединение(Знач НастройкиSSH, Знач Прокси = "") Экспорт
-
- Возврат OPI_ЗапросыSSH.ОткрытьСоединение(НастройкиSSH, Прокси);
-
-КонецФункции
-
-// Получить конфигурацию соединения
-// Формирует полную структуру настроек соединения, которая может быть использована вместо самого соединения при вызове других функций
-//
-// Примечание:
-// Может быть передана в качестве параметра `Соединение` в других функциях вместо настоящего соединения из функции `ОткрытьСоединение`.^^
-// При этом новое соединение будет открыто и закрыто в рамках вызываемой функции
-// Не рекомендуется использовать конфигурацию соединения при множественных обращениях к серверу SSH.^^
-// Данный функционал предназначен, в первую очередь для CLI версии ОПИ, где хранение соединения между вызовами невозможно
-//
-// Параметры:
-// НастройкиSSH - Структура Из КлючИЗначение - Настройки SSH - set
-// Прокси - Структура Из КлючИЗначение - Настройки прокси, если необходимо. См. ПолучитьНастройкиПрокси - proxy
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - Структура настроек соединения
-Функция ПолучитьКонфигурациюСоединения(Знач НастройкиSSH, Знач Прокси = Неопределено) Экспорт
-
- Возврат OPI_ЗапросыSSH.ПолучитьКонфигурациюСоединения(НастройкиSSH, Прокси);
-
-КонецФункции
-
-// Выполнить команду
-// Выполняет указанную команду
-//
-// Параметры:
-// Соединение - Произвольный - Существующее соединение или конфигурация соединения - conn
-// Команда - Строка - Текст команды - comm
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Результат обработки
-Функция ВыполнитьКоманду(Знач Соединение, Знач Команда) Экспорт
-
- Возврат OPI_ЗапросыSSH.ВыполнитьКоманду(Соединение, Команда);
-
-КонецФункции
-
-// Закрыть соединение !NOCLI
-// Явно закрывает переданное соединение
-//
-// Параметры:
-// Соединение - Произвольный - Объект компоненты с открытым соединением - conn
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - Результат закрытия соединения
-Функция ЗакрытьСоединение(Знач Соединение) Экспорт
-
- Возврат OPI_ЗапросыSSH.ЗакрытьСоединение(Соединение);
-
-КонецФункции
-
-// Это коннектор !NOCLI
-// Проверяет, что значение является объектом внешней компоненты для работы с SSH
-//
-// Параметры:
-// Значение - Произвольный - Значение для проверки - value
-//
-// Возвращаемое значение:
-// Булево - Это коннектор
-Функция ЭтоКоннектор(Знач Значение) Экспорт
-
- Возврат OPI_ЗапросыSSH.ЭтоКоннектор(Значение);
-
-КонецФункции
-
-// Получить настройки (логин/пароль)
-// Получает настройки соединения с авторизацией через логин и пароль
-//
-// Параметры:
-// Хост - Строка - Хост SSH - host
-// Порт - Число - Порт SSH - port
-// Логин - Строка - Имя пользователя SSH - user
-// Пароль - Строка - Пароль пользователя SSH - pass
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - Конфигурация соединения
-Функция ПолучитьНастройкиЛогинПароль(Знач Хост, Знач Порт, Знач Логин, Знач Пароль = "") Экспорт
-
- Возврат OPI_ЗапросыSSH.ПолучитьНастройкиЛогинПароль(Хост, Порт, Логин, Пароль);
-
-КонецФункции
-
-// Получить настройки (приватный ключ)
-// Получает настройки соединения с авторизацией через приватный ключ
-//
-// Параметры:
-// Хост - Строка - Хост SSH - host
-// Порт - Число - Порт SSH - port
-// Логин - Строка - Имя пользователя SSH - user
-// Приватный - Строка - Путь к файлу приватного ключа - key
-// Публичный - Строка - Путь к файлу публичного ключ - pub
-// Пароль - Строка - Пароль (passphrase) приватного ключа - pass
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - Конфигурация соединения
-Функция ПолучитьНастройкиПриватныйКлюч(Знач Хост
- , Знач Порт
- , Знач Логин
- , Знач Приватный
- , Знач Публичный = ""
- , Знач Пароль = "") Экспорт
-
- Возврат OPI_ЗапросыSSH.ПолучитьНастройкиПриватныйКлюч(Хост, Порт, Логин, Приватный, Публичный, Пароль);
-
-КонецФункции
-
-// Получить настройки (через агента)
-// Получает настройки соединения с авторизацией через SSH Agent
-//
-// Параметры:
-// Хост - Строка - Хост SSH - host
-// Порт - Число - Порт SSH - port
-// Логин - Строка - Имя пользователя SSH - user
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - Конфигурация соединения
-Функция ПолучитьНастройкиЧерезАгента(Знач Хост, Знач Порт, Знач Логин) Экспорт
-
- Возврат OPI_ЗапросыSSH.ПолучитьНастройкиЧерезАгента(Хост, Порт, Логин);
-
-КонецФункции
-
-// Получить настройки прокси
-// Формирует структуру настроек прокси-сервера для соединения
-//
-// Параметры:
-// Адрес - Строка - Адрес прокси - addr
-// Порт - Число - Порт прокси - port
-// Вид - Строка - Вид прокси: socks5, socks4, http - type
-// Логин - Строка, Неопределено - Логин авторизации, если необходимо - login
-// Пароль - Строка, Неопределено - Пароль для авторизации, если необходимо - pass
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - Структура настроек прокси
-Функция ПолучитьНастройкиПрокси(Знач Адрес
- , Знач Порт
- , Знач Вид = "socks5"
- , Знач Логин = Неопределено
- , Знач Пароль = Неопределено) Экспорт
-
- Возврат OPI_ЗапросыSSH.ПолучитьНастройкиПрокси(Адрес, Порт, Вид, Логин, Пароль);
-
-КонецФункции
-
-#КонецОбласти
-
-#КонецОбласти
diff --git a/XML/CommonModules/OPI_Slack.xml b/XML/CommonModules/OPI_Slack.xml
deleted file mode 100644
index 8ab2fe23b5..0000000000
--- a/XML/CommonModules/OPI_Slack.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- OPI_Slack
-
-
- ru
- Slack (ОПИ)
-
-
- Модуль для работы со Slack из набора ОПИ
- false
- false
- true
- true
- true
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git a/XML/CommonModules/OPI_Slack/Ext/Module.bsl b/XML/CommonModules/OPI_Slack/Ext/Module.bsl
deleted file mode 100644
index dd0f1dfd43..0000000000
--- a/XML/CommonModules/OPI_Slack/Ext/Module.bsl
+++ /dev/null
@@ -1,1042 +0,0 @@
-// OneScript: ./OInt/core/Modules/OPI_Slack.os
-// Lib: Slack
-// CLI: slack
-// Keywords: slack
-
-// MIT License
-
-// Copyright (c) 2023-2025 Anton Tsitavets
-
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-
-// The above copyright notice and this permission notice shall be included in all
-// copies or substantial portions of the Software.
-
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-// SOFTWARE.
-
-// https://github.com/Bayselonarrend/OpenIntegrations
-
-// BSLLS:IncorrectLineBreak-off
-// BSLLS:Typo-off
-// BSLLS:UsingServiceTag-off
-// BSLLS:UsingSynchronousCalls-off
-
-//@skip-check module-structure-top-region
-//@skip-check module-structure-method-in-regions
-//@skip-check wrong-string-literal-content
-
-#Область ПрограммныйИнтерфейс
-
-#Область УправлениеИНастройки
-
-// Получить информацию о боте
-// Получает основную информацию о боте
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Slack
-Функция ПолучитьИнформациюОБоте(Знач Токен) Экспорт
-
- URL = "https://slack.com/api/auth.test";
- Заголовки = ПолучитьЗаголовокАвторизации(Токен);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, , Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить список рабочих областей
-// Получает список рабочих областей, в которых подключен бот
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// Курсор - Строка - Указатель из предыдущего запроса, если строк результата > 100 - cursor
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Slack
-Функция ПолучитьСписокРабочихОбластей(Знач Токен, Знач Курсор = "") Экспорт
-
- URL = "https://slack.com/api/auth.teams.list";
- Ответ = ПолучениеОбщихДанных(Токен, URL, Курсор);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить список пользователей
-// Получает список пользователей рабочей области
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// Курсор - Строка - Указатель из предыдущего запроса, если строк результата > 100 - cursor
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Slack
-Функция ПолучитьСписокПользователей(Знач Токен, Знач Курсор = "") Экспорт
-
- URL = "https://slack.com/api/users.list";
- Ответ = ПолучениеОбщихДанных(Токен, URL, Курсор);
-
- Возврат Ответ;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область РаботаССообщениями
-
-// Отправить сообщение
-// Отправляет сообщение в выбранный час
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// Канал - Строка - Идентификатор канала - channel
-// Текст - Строка - Текст сообщения - text
-// ДатаОтправки - Дата - Дата отправки для отложенного сообщения - date
-// Блоки - Массив Из Структура - Массив описаний блоков - blocks - JSON массива описаний блоков
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Slack
-Функция ОтправитьСообщение(Знач Токен, Знач Канал, Знач Текст = "", Знач ДатаОтправки = "", Знач Блоки = "") Экспорт
-
- Строка_ = "Строка";
- ЕстьДата = ЗначениеЗаполнено(ДатаОтправки);
- Заголовки = ПолучитьЗаголовокАвторизации(Токен);
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("channel", Канал, Строка_ , Параметры);
- OPI_Инструменты.ДобавитьПоле("text" , Текст, Строка_ , Параметры);
- OPI_Инструменты.ДобавитьПоле("blocks" , Блоки, "Массив" , Параметры);
-
- Если ЕстьДата Тогда
-
- URL = "https://slack.com/api/chat.scheduleMessage";
- OPI_Инструменты.ДобавитьПоле("post_at", ДатаОтправки, "Дата", Параметры);
-
- Иначе
-
- URL = "https://slack.com/api/chat.postMessage";
-
- КонецЕсли;
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Отправить эфемерное сообщение
-// Отправляет сообщение, которое приходит в канал, но видно
-// только конкретному пользователю
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// Канал - Строка - Идентификатор канала - channel
-// Текст - Строка - Текст сообщения - text
-// Пользователь - Строка - ID пользователя - user
-// Блоки - Массив Из Структура - Массив описаний блоков - blocks - JSON массива описаний блоков
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Slack
-Функция ОтправитьЭфемерноеСообщение(Знач Токен
- , Знач Канал
- , Знач Текст = ""
- , Знач Пользователь = ""
- , Знач Блоки = "") Экспорт
-
- Строка_ = "Строка";
-
- Заголовки = ПолучитьЗаголовокАвторизации(Токен);
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("channel", Канал , Строка_ , Параметры);
- OPI_Инструменты.ДобавитьПоле("text" , Текст , Строка_ , Параметры);
- OPI_Инструменты.ДобавитьПоле("user" , Пользователь, Строка_ , Параметры);
- OPI_Инструменты.ДобавитьПоле("blocks" , Блоки , "Массив" , Параметры);
-
- URL = "https://slack.com/api/chat.postEphemeral";
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Изменить сообщение
-// Изменяет состав существующего сообщения
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// Канал - Строка - Идентификатор канала - channel
-// Отметка - Строка - Временная отметка сообщения - stamp
-// Текст - Строка - Новый текст сообщения - text
-// МассивБлоков - Массив Из Структура - Массив описаний блоков - blocks - JSON массива описаний блоков
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Slack
-Функция ИзменитьСообщение(Знач Токен, Знач Канал, Знач Отметка, Знач Текст = "", Знач МассивБлоков = "") Экспорт
-
- Строка_ = "Строка";
- URL = "https://slack.com/api/chat.update";
- Заголовки = ПолучитьЗаголовокАвторизации(Токен);
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("channel", Канал , Строка_ , Параметры);
- OPI_Инструменты.ДобавитьПоле("text" , Текст , Строка_ , Параметры);
- OPI_Инструменты.ДобавитьПоле("ts" , Отметка , Строка_ , Параметры);
- OPI_Инструменты.ДобавитьПоле("blocks" , МассивБлоков, "Коллекция", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Удалить сообщение
-// Удаляет сообщение канала по timestamp
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// Канал - Строка - Идентификатор канала - channel
-// Отметка - Строка - Временная отметка или ID сообщения - stamp
-// ЭтоОтложенное - Булево - Признак удаления отложенного сообщения - issheduled
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Slack
-Функция УдалитьСообщение(Знач Токен, Знач Канал, Знач Отметка, Знач ЭтоОтложенное = Ложь) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьБулево(ЭтоОтложенное);
-
- Заголовки = ПолучитьЗаголовокАвторизации(Токен);
-
- Если ЭтоОтложенное Тогда
- URL = "https://slack.com/api/chat.deleteScheduledMessage";
- ПолеОтметки = "scheduled_message_id";
- Иначе
- URL = "https://slack.com/api/chat.delete";
- ПолеОтметки = "ts";
- КонецЕсли;
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("channel" , Канал , "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле(ПолеОтметки, Отметка, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить список отложенных сообщений
-// Получает список отложенных сообщений канала
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// Канал - Строка - Идентификатор канала - channel
-// Курсор - Строка - Указатель из предыдущего запроса, если строк результата > 100 - cursor
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Slack
-Функция ПолучитьСписокОтложенныхСообщений(Знач Токен, Знач Канал, Знач Курсор = "") Экспорт
-
- URL = "https://slack.com/api/chat.scheduledMessages.list";
- Заголовки = ПолучитьЗаголовокАвторизации(Токен);
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("channel", Канал , "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("cursor" , Курсор, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить ссылку на сообщение
-// Получает постоянный UTL к сообщению канала
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// Канал - Строка - Идентификатор канала - channel
-// Отметка - Строка - Временная отметка или ID сообщения - stamp
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Slack
-Функция ПолучитьСсылкуНаСообщение(Знач Токен, Знач Канал, Знач Отметка) Экспорт
-
- URL = "https://slack.com/api/chat.getPermalink";
- Заголовки = ПолучитьЗаголовокАвторизации(Токен);
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("channel" , Канал , "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("message_ts", Отметка, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить список ответов на сообщение
-// Получает массив сообщений, которые являются ответом на указанное
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// Канал - Строка - Идентификатор канала - channel
-// Отметка - Строка - Временная отметка или ID сообщения - stamp
-// Курсор - Строка - Указатель из предыдущего запроса, если строк результата > 100 - cursor
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Slack
-Функция ПолучитьСписокОтветовНаСообщение(Знач Токен, Знач Канал, Знач Отметка, Знач Курсор = "") Экспорт
-
- Строка_ = "Строка";
- URL = "https://slack.com/api/conversations.replies";
- Заголовки = ПолучитьЗаголовокАвторизации(Токен);
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("channel", Канал , Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("cursor" , Курсор , Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("ts" , Отметка, Строка_, Параметры);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область РаботаСКаналами
-
-// Получить список каналов
-// Получает список доступных каналов
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// ИсключатьАрхивированные - Булево - Признак исключения архивированных каналов - notarchived
-// Курсор - Строка - Указатель из предыдущего запроса, если строк результата > 100 - cursor
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Slack
-Функция ПолучитьСписокКаналов(Знач Токен, Знач ИсключатьАрхивированные = Ложь, Знач Курсор = "") Экспорт
-
- URL = "https://slack.com/api/conversations.list";
- Заголовки = ПолучитьЗаголовокАвторизации(Токен);
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("exclude_archived", ИсключатьАрхивированные, "Булево", Параметры);
- OPI_Инструменты.ДобавитьПоле("cursor" , Курсор , "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить список пользователей канала
-// Получает список пользователей указанного канала
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// Канал - Строка - Идентификатор канала - channel
-// Курсор - Строка - Указатель из предыдущего запроса, если строк результата > 100 - cursor
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Slack
-Функция ПолучитьСписокПользователейКанала(Знач Токен, Знач Канал, Знач Курсор = "") Экспорт
-
- URL = "https://slack.com/api/conversations.members";
- Заголовки = ПолучитьЗаголовокАвторизации(Токен);
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("channel", Канал , "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("cursor" , Курсор, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Создать канал
-// Создает новый канал
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// Название - Строка - Наименование канала - title
-// Приватный - Булево - Создать канал приватным - private
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Slack
-Функция СоздатьКанал(Знач Токен, Знач Название, Знач Приватный = Ложь) Экспорт
-
- URL = "https://slack.com/api/conversations.create";
- Заголовки = ПолучитьЗаголовокАвторизации(Токен);
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("name" , Название , "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("is_private", Приватный, "Булево", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Архивировать канал
-// Архивирует активный канал
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// Канал - Строка - ID канала - channel
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Slack
-Функция АрхивироватьКанал(Знач Токен, Знач Канал) Экспорт
-
- URL = "https://slack.com/api/conversations.archive";
- Ответ = УправлениеДиалогом(Токен, Канал, URL);
- Возврат Ответ;
-
-КонецФункции
-
-// Получить канал
-// Получает информацию о канале
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// Канал - Строка - ID канала - channel
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Slack
-Функция ПолучитьКанал(Знач Токен, Знач Канал) Экспорт
-
- URL = "https://slack.com/api/conversations.info";
- Ответ = УправлениеДиалогом(Токен, Канал, URL, "GET");
- Возврат Ответ;
-
-КонецФункции
-
-// Получить историю канала
-// Получает информацию событиях канала
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// Канал - Строка - ID канала - channel
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Slack
-Функция ПолучитьИсториюКанала(Знач Токен, Знач Канал) Экспорт
-
- URL = "https://slack.com/api/conversations.history";
- Ответ = УправлениеДиалогом(Токен, Канал, URL, "GET");
- Возврат Ответ;
-
-КонецФункции
-
-// Пригласить пользователей в канал
-// Добавляет указанных пользователей в канал
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// Канал - Строка - ID канала - channel
-// МассивПользователей - Массив Из Строка - Массив ID пользователей - users
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Slack
-Функция ПригласитьПользователейВКанал(Знач Токен, Знач Канал, Знач МассивПользователей) Экспорт
-
- URL = "https://slack.com/api/conversations.invite";
- Заголовки = ПолучитьЗаголовокАвторизации(Токен);
-
- OPI_ПреобразованиеТипов.ПолучитьКоллекцию(МассивПользователей);
- МассивПользователей = СтрСоединить(МассивПользователей, ",");
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("channel", Канал , "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("users" , МассивПользователей, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Выгнать пользователя из канала
-// Удаляет указанного пользователя из канала
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// Канал - Строка - ID канала - channel
-// Пользователь - Строка - ID пользователя - user
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Slack
-Функция ВыгнатьПользователяИзКанала(Знач Токен, Знач Канал, Знач Пользователь) Экспорт
-
- URL = "https://slack.com/api/conversations.kick";
- Заголовки = ПолучитьЗаголовокАвторизации(Токен);
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("channel", Канал , "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("user" , Пользователь, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Вступить в канал
-// Добавляет текущего бота в канал
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// Канал - Строка - ID канала - channel
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Slack
-Функция ВступитьВКанал(Знач Токен, Знач Канал) Экспорт
-
- URL = "https://slack.com/api/conversations.join";
- Ответ = УправлениеДиалогом(Токен, Канал, URL);
- Возврат Ответ;
-
-КонецФункции
-
-// Покинуть канал
-// Удаляет текущего бота из канала
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// Канал - Строка - ID канала - channel
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Slack
-Функция ПокинутьКанал(Знач Токен, Знач Канал) Экспорт
-
- URL = "https://slack.com/api/conversations.leave";
- Ответ = УправлениеДиалогом(Токен, Канал, URL);
- Возврат Ответ;
-
-КонецФункции
-
-// Установить тему канала
-// Устанавливает тему канала
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// Канал - Строка - ID канала - channel
-// Тема - Строка - Тема канала - theme
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Slack
-Функция УстановитьТемуКанала(Знач Токен, Знач Канал, Знач Тема) Экспорт
-
- URL = "https://slack.com/api/conversations.setTopic";
- Заголовки = ПолучитьЗаголовокАвторизации(Токен);
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("channel", Канал , "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("topic" , Тема , "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Установить цель канала
-// Устанавливает цель (описание) канала
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// Канал - Строка - ID канала - channel
-// Цель - Строка - Цель канала - purpose
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Slack
-Функция УстановитьЦельКанала(Знач Токен, Знач Канал, Знач Цель) Экспорт
-
- URL = "https://slack.com/api/conversations.setPurpose";
- Заголовки = ПолучитьЗаголовокАвторизации(Токен);
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("channel", Канал , "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("purpose", Цель , "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Переименовать канал
-// Изменяет название канала
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// Канал - Строка - ID канала - channel
-// Название - Строка - Новое название канала - title
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Slack
-Функция ПереименоватьКанал(Знач Токен, Знач Канал, Знач Название) Экспорт
-
- URL = "https://slack.com/api/conversations.rename";
- Заголовки = ПолучитьЗаголовокАвторизации(Токен);
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("channel", Канал , "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("name" , Название, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область РаботаСДиалогами
-
-// Открыть диалог
-// Открывает новый диалог с одним или несколькими пользователями
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// МассивПользователей - Массив из Строка - Массив ID пользователей - users
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Slack
-Функция ОткрытьДиалог(Знач Токен, Знач МассивПользователей) Экспорт
-
- URL = "https://slack.com/api/conversations.open";
- Заголовки = ПолучитьЗаголовокАвторизации(Токен);
-
- OPI_ПреобразованиеТипов.ПолучитьКоллекцию(МассивПользователей);
- МассивПользователей = СтрСоединить(МассивПользователей, ",");
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("users", МассивПользователей, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Закрыть диалог
-// Закрывает существующий диалог
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// Диалог - Строка - ID диалога - conv
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Slack
-Функция ЗакрытьДиалог(Знач Токен, Знач Диалог) Экспорт
-
- URL = "https://slack.com/api/conversations.close";
- Ответ = УправлениеДиалогом(Токен, Диалог, URL);
- Возврат Ответ;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область РаботаСФайлами
-
-// Получить список файлов
-// Получает список файлов бота или канала
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// Канал - Строка - Канал для отбора - channel
-// НомерСтраницы - Число, Строка - Номер страницы - page
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Slack
-Функция ПолучитьСписокФайлов(Знач Токен, Знач Канал = "", Знач НомерСтраницы = 1) Экспорт
-
- URL = "https://slack.com/api/files.list";
- Заголовки = ПолучитьЗаголовокАвторизации(Токен);
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("channel", Канал , "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("page" , НомерСтраницы, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Загрузить файл
-// Загружает файл на сервера Slack
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// Файл - Строка,ДвоичныеДанные - Файл для загрузки - file
-// ИмяФайла - Строка - Имя файла с расширением - filename
-// Заголовок - Строка - Имя файла в Slack - title
-// Канал - Строка - ID канала - channel
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Slack
-Функция ЗагрузитьФайл(Знач Токен, Знач Файл, Знач ИмяФайла, Знач Заголовок, Знач Канал = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Файл);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(ИмяФайла);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Заголовок);
-
- Строка_ = "Строка";
- Upload_url = "upload_url";
- File_id = "file_id";
- URL = "https://slack.com/api/files.getUploadURLExternal";
- Заголовки = ПолучитьЗаголовокАвторизации(Токен);
- Размер = Файл.Размер();
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("filename", ИмяФайла, Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("length" , Размер , Строка_, Параметры);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры, Заголовки);
- URL = Ответ[Upload_url];
- Идентификатор = Ответ[File_id];
-
- Если Не ЗначениеЗаполнено(URL) Или Не ЗначениеЗаполнено(Идентификатор) Тогда
- Возврат Ответ;
- КонецЕсли;
-
- Файлы = Новый Соответствие;
- Файлы.Вставить(ИмяФайла, Файл);
-
- Ответ = OPI_ЗапросыHTTP.PostMultipart(URL, , Файлы, , Заголовки);
- URL = "https://slack.com/api/files.completeUploadExternal";
- ФайлСлак = Новый Структура("id, title", Идентификатор, Заголовок);
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("filename" , ИмяФайла, Строка_ , Параметры);
- OPI_Инструменты.ДобавитьПоле("channel_id", Канал , Строка_ , Параметры);
- OPI_Инструменты.ДобавитьПоле("files" , ФайлСлак, "Массив", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить данные файла
-// Получает информацию о файле
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// ИдентификаторФайла - Строка - Идентификатор файла - fileid
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Slack
-Функция ПолучитьДанныеФайла(Знач Токен, Знач ИдентификаторФайла) Экспорт
-
- URL = "https://slack.com/api/files.info";
- Ответ = УправлениеФайлом(Токен, ИдентификаторФайла, URL, "GET");
-
- Возврат Ответ;
-
-КонецФункции
-
-// Удалить файл
-// Удаляет файл на Slack
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// ИдентификаторФайла - Строка - Идентификатор файла - fileid
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Slack
-Функция УдалитьФайл(Знач Токен, Знач ИдентификаторФайла) Экспорт
-
- URL = "https://slack.com/api/files.delete";
- Ответ = УправлениеФайлом(Токен, ИдентификаторФайла, URL);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Сделать файл публичным
-// Создает публичный URL для файла. Требует токен пользователя
-//
-// Параметры:
-// Токен - Строка - Токен пользователя - token
-// ИдентификаторФайла - Строка - Идентификатор файла - fileid
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Slack
-Функция СделатьФайлПубличным(Знач Токен, Знач ИдентификаторФайла) Экспорт
-
- URL = "https://slack.com/api/files.sharedPublicURL";
- Ответ = УправлениеФайлом(Токен, ИдентификаторФайла, URL);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Сделать файл приватным
-// Удаляет публичный URL у файла. Требует токен пользователя
-//
-// Параметры:
-// Токен - Строка - Токен пользователя - token
-// ИдентификаторФайла - Строка - Идентификатор файла - fileid
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Slack
-Функция СделатьФайлПриватным(Знач Токен, Знач ИдентификаторФайла) Экспорт
-
- URL = "https://slack.com/api/files.revokePublicURL";
- Ответ = УправлениеФайлом(Токен, ИдентификаторФайла, URL);
-
- Возврат Ответ;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область РаботаСУдаленнымиФайлами
-
-// Получить список внешних файлов
-// Получает список внешних файлов пользователя или канала
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// Канал - Строка - Канал для отбора - channel
-// Курсор - Строка - Указатель из предыдущего запроса, если строк результата > 100 - cursor
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Slack
-Функция ПолучитьСписокВнешнихФайлов(Знач Токен, Знач Канал = "", Знач Курсор = "") Экспорт
-
- URL = "https://slack.com/api/files.remote.list";
- Заголовки = ПолучитьЗаголовокАвторизации(Токен);
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("channel", Канал , "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("cursor" , Курсор, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить внешний файл
-// Получает информацию о внешнем файле
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// ИдентификаторФайла - Строка - Идентификатор файла - fileid
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Slack
-Функция ПолучитьВнешнийФайл(Знач Токен, Знач ИдентификаторФайла) Экспорт
-
- URL = "https://slack.com/api/files.remote.info";
- Ответ = УправлениеВнешнимФайлом(Токен, ИдентификаторФайла, URL);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Добавить внешний файл
-// Добавляет новый внешний файл
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// URL - Строка - URL к внешнему файлу - url
-// Заголовок - Строка - Заголовок файла для Slack - title
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Slack
-Функция ДобавитьВнешнийФайл(Знач Токен, Знач URL, Знач Заголовок) Экспорт
-
- Строка_ = "Строка";
- URLЗапроса = "https://slack.com/api/files.remote.add";
- Заголовки = ПолучитьЗаголовокАвторизации(Токен);
- UID = Строка(Новый УникальныйИдентификатор());
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("external_url", URL , Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("external_id" , UID , Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("title" , Заголовок , Строка_, Параметры);
-
- Ответ = OPI_ЗапросыHTTP.Get(URLЗапроса, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Отправить внешний файл
-// Отправляет внейшний файл по списку каналов
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// ИдентификаторФайла - Строка - Идентификатор файла - fileid
-// МассивКаналов - Массив Из Строка - Массив каналов для отправки - channels
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Slack
-Функция ОтправитьВнешнийФайл(Знач Токен, Знач ИдентификаторФайла, Знач МассивКаналов) Экспорт
-
- URL = "https://slack.com/api/files.remote.share";
- Заголовки = ПолучитьЗаголовокАвторизации(Токен);
-
- OPI_ПреобразованиеТипов.ПолучитьКоллекцию(МассивКаналов);
- МассивКаналов = СтрСоединить(МассивКаналов, ",");
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("file" , ИдентификаторФайла , "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("channels", МассивКаналов , "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Удалить внешний файл
-// Удаляет внешний файл из Slack
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// ИдентификаторФайла - Строка - Идентификатор файла - fileid
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Slack
-Функция УдалитьВнешнийФайл(Знач Токен, Знач ИдентификаторФайла) Экспорт
-
- URL = "https://slack.com/api/files.remote.remove";
- Ответ = УправлениеВнешнимФайлом(Токен, ИдентификаторФайла, URL);
-
- Возврат Ответ;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область ФормированиеБлоков
-
-// Сформировать блок картинку
-// Формирует блок с картинкой для добавления в массив блоков сообщения
-//
-// Параметры:
-// URL - Строка - URL картинки - picture
-// АльтернативныйТекст - Строка - Альтернативный текст картинки - alt
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Блок картинки
-Функция СформироватьБлокКартинку(Знач URL, Знач АльтернативныйТекст = "") Экспорт
-
- Строка_ = "Строка";
-
- Блок = Новый Соответствие;
- OPI_Инструменты.ДобавитьПоле("type" , "image" , Строка_, Блок);
- OPI_Инструменты.ДобавитьПоле("image_url", URL , Строка_, Блок);
- OPI_Инструменты.ДобавитьПоле("alt_text" , АльтернативныйТекст , Строка_, Блок);
-
- Возврат Блок;
-
-КонецФункции
-
-#КонецОбласти
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-Функция ПолучитьЗаголовокАвторизации(Знач Токен)
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
-
- Заголовки = Новый Соответствие;
- Заголовки.Вставить("Authorization", "Bearer " + Токен);
- Возврат Заголовки;
-
-КонецФункции
-
-Функция УправлениеДиалогом(Знач Токен, Знач Канал, Знач URL, Знач ВидЗапроса = "POST")
-
- Заголовки = ПолучитьЗаголовокАвторизации(Токен);
- ВидЗапроса = вРег(ВидЗапроса);
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("channel", Канал, "Строка", Параметры);
-
- Если ВидЗапроса = "POST" Тогда
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, Заголовки);
- Иначе
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры, Заголовки);
- КонецЕсли;
-
- Возврат Ответ;
-
-КонецФункции
-
-Функция УправлениеФайлом(Знач Токен, Знач ИдентификаторФайла, Знач URL, Знач ВидЗапроса = "POST")
-
- Заголовки = ПолучитьЗаголовокАвторизации(Токен);
- ВидЗапроса = вРег(ВидЗапроса);
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("file", ИдентификаторФайла , "Строка", Параметры);
-
- Если ВидЗапроса = "POST" Тогда
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, Заголовки);
- Иначе
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры, Заголовки);
- КонецЕсли;
-
- Возврат Ответ;
-
-КонецФункции
-
-Функция ПолучениеОбщихДанных(Знач Токен, Знач URL, Знач Курсор)
-
- Заголовки = ПолучитьЗаголовокАвторизации(Токен);
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("cursor", Курсор, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-Функция УправлениеВнешнимФайлом(Знач Токен, Знач ИдентификаторФайла, Знач URL)
-
- Заголовки = ПолучитьЗаголовокАвторизации(Токен);
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("file", ИдентификаторФайла , "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-#КонецОбласти
diff --git a/XML/CommonModules/OPI_TCP.xml b/XML/CommonModules/OPI_TCP.xml
deleted file mode 100644
index 2e74a84c7d..0000000000
--- a/XML/CommonModules/OPI_TCP.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- OPI_TCP
-
-
- ru
- TCP (ОПИ)
-
-
- Модуль для работы с TCP из набора ОПИ
- false
- false
- true
- true
- true
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git a/XML/CommonModules/OPI_TCP/Ext/Module.bsl b/XML/CommonModules/OPI_TCP/Ext/Module.bsl
deleted file mode 100644
index c914f63af9..0000000000
--- a/XML/CommonModules/OPI_TCP/Ext/Module.bsl
+++ /dev/null
@@ -1,309 +0,0 @@
-// OneScript: ./OInt/core/Modules/OPI_TCP.os
-// Lib: TCP
-// CLI: tcp
-// Keywords: tcp
-
-// MIT License
-
-// Copyright (c) 2023-2025 Anton Tsitavets
-
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-
-// The above copyright notice and this permission notice shall be included in all
-// copies or substantial portions of the Software.
-
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-// SOFTWARE.
-
-// https://github.com/Bayselonarrend/OpenIntegrations
-
-// BSLLS:Typo-off
-// BSLLS:LatinAndCyrillicSymbolInWord-off
-// BSLLS:IncorrectLineBreak-off
-// BSLLS:NumberOfOptionalParams-off
-// BSLLS:UsingServiceTag-off
-// BSLLS:LineLength-off
-// BSLLS:UsingSynchronousCalls-off
-// BSLLS:MagicNumber-off
-
-//@skip-check module-structure-top-region
-//@skip-check module-structure-method-in-regions
-//@skip-check wrong-string-literal-content
-//@skip-check method-too-many-params
-
-#Область ПрограммныйИнтерфейс
-
-#Область МетодыКлиента
-
-// Открыть соединение !NOCLI
-// Создает TCP соединение
-//
-// Параметры:
-// Адрес - Строка - Адрес и порт для подключения - address
-// Tls - Структура Из КлючИЗначение - Настройки TLS, если необходимо. См. ПолучитьНастройкиTls - tls
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение, Произвольный - Возвращает объект TCP клиента при успешном подключении или информацию об ошибке
-Функция ОткрытьСоединение(Знач Адрес, Знач Tls = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Адрес);
- OPI_Инструменты.ВернутьУправляющиеПоследовательности(Адрес);
-
- Домен = OPI_Инструменты.ПолучитьДомен(Адрес);
-
- TCPКлиент = OPI_Компоненты.ПолучитьКомпоненту("TCPClient");
- Успех = TCPКлиент.SetAddress(Адрес, Домен);
-
- Если Не Успех Тогда
- Возврат ПолучитьПоследнююОшибку(TCPКлиент);
- КонецЕсли;
-
- Tls = OPI_Компоненты.УстановитьTls(TCPКлиент, Tls);
-
- Если Не OPI_Инструменты.ПолучитьИли(Tls, "result", Ложь) Тогда
- Возврат Tls;
- КонецЕсли;
-
- Успех = TCPКлиент.Connect();
-
- Если Не Успех Тогда
- Возврат ПолучитьПоследнююОшибку(TCPКлиент);
- КонецЕсли;
-
- Возврат TCPКлиент;
-
-КонецФункции
-
-// Закрыть соединение !NOCLI
-// Явно закрывает созданное ранее соединение
-//
-// Параметры:
-// Соединение - Произвольный - Соединение, см. ОткрытьСоединение - tcp
-//
-// Возвращаемое значение:
-// Булево - всегда возвращает Истина
-Функция ЗакрытьСоединение(Знач Соединение) Экспорт
-
- Возврат Соединение.Disconnect();
-
-КонецФункции
-
-// Прочитать двоичные данные !NOCLI
-// Читает данные из указанного соединения
-//
-// Примечание:
-// При работе с бесконечным потоком входящих данных обязательно указание параметра МаксимальныйРазмер, так как^^
-// бесконечное получение данных может привести к зависанию
-// При закрытии соединения, ошибке или обнаружении EOF чтение завершается в любом случае
-//
-// Параметры:
-// Соединение - Произвольный - Соединение, см. ОткрытьСоединение - tcp
-// МаксимальныйРазмер - Число - Максимальный размер данных (байт). 0 > без ограничений - size
-// Маркер - Строка, ДвоичныеДанные - Маркер конца сообщения. Пусто > без маркера - marker
-// Таймаут - Число - Таймаут ожидания данных (мс). 0 > без ограничений - timeout
-//
-// Возвращаемое значение:
-// ДвоичныеДанные - Полученные данные
-Функция ПрочитатьДвоичныеДанные(Знач Соединение
- , Знач МаксимальныйРазмер = 0
- , Знач Маркер = ""
- , Знач Таймаут = 5000) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьЧисло(Таймаут);
- OPI_ПреобразованиеТипов.ПолучитьЧисло(МаксимальныйРазмер);
-
- Если ТипЗнч(Маркер) = Тип("Строка") Тогда
- Маркер = ПолучитьДвоичныеДанныеИзСтроки(Маркер);
- Иначе
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Маркер);
- КонецЕсли;
-
- Данные = Соединение.Read(МаксимальныйРазмер, Маркер, Таймаут);
-
- Возврат Данные;
-
-КонецФункции
-
-// Прочитать строку !NOCLI
-// Читает данные из указанного соединения в виде строки
-//
-// Примечание:
-// При закрытии соединения, ошибке или обнаружении EOF чтение завершается в любом случае
-//
-// Параметры:
-// Соединение - Произвольный - Соединение, см. ОткрытьСоединение - tcp
-// Кодировка - Строка - Кодировка преобразования данных в строку - enc
-// Маркер - Строка, ДвоичныеДанные - Маркер конца сообщения. Пусто > без маркера - marker
-// Таймаут - Число - Таймаут ожидания данных (мс). 0 > без ограничений - timeout
-//
-// Возвращаемое значение:
-// Строка - Полученные данные в виде строки
-Функция ПрочитатьСтроку(Знач Соединение
- , Знач Кодировка = "UTF-8"
- , Знач Маркер = ""
- , Знач Таймаут = 5000) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Кодировка);
-
- Данные = ПрочитатьДвоичныеДанные(Соединение, , Маркер, Таймаут);
- Данные = ПолучитьСтрокуИзДвоичныхДанных(Данные, Кодировка);
-
- Возврат Данные;
-
-КонецФункции
-
-// Отправить двоичные данные !NOCLI
-// Отправляет двоичные данные через указанное соединение
-//
-// Параметры:
-// Соединение - Произвольный - Соединение, см. ОткрытьСоединение - tcp
-// Данные - ДвоичныеДанные - Данные для отправки - data
-// Таймаут - Число - Таймаут ожидания записи (мс). 0 > без ограничений - timeout
-//
-// Возвращаемое значение:
-// Булево - Признак успешного выполнения
-Функция ОтправитьДвоичныеДанные(Знач Соединение, Знач Данные, Знач Таймаут = 5000) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Данные);
- OPI_ПреобразованиеТипов.ПолучитьЧисло(Таймаут);
-
- Результат = Соединение.Send(Данные, Таймаут);
-
- Возврат Результат;
-
-КонецФункции
-
-// Отправить строку !NOCLI
-// Отправляет данные в виде строки через указанное соединение
-//
-// Параметры:
-// Соединение - Произвольный - Соединение, см. ОткрытьСоединение - tcp
-// Данные - Строка - Данные для отправки в виде строки - data
-// Кодировка - Строка - Кодировка для записи исходящей строки в поток - enc
-// Таймаут - Число - Таймаут ожидания записи (мс). 0 > без ограничений - timeout
-//
-// Возвращаемое значение:
-// Булево - Признак успешного выполнения
-Функция ОтправитьСтроку(Знач Соединение, Знач Данные, Знач Кодировка = "UTF-8", Знач Таймаут = 5000) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Данные);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Кодировка);
-
- ДанныеДД = ПолучитьДвоичныеДанныеИзСтроки(Данные, Кодировка);
-
- Результат = ОтправитьДвоичныеДанные(Соединение, ДанныеДД, Таймаут);
-
- Возврат Результат;
-
-КонецФункции
-
-// Обработать запрос
-// Отправляет одиночный запрос на указанный адрес и получает ответ, используя стандартные настройки
-//
-// Параметры:
-// Адрес - Строка - Адрес и порт для подключения - address
-// Данные - Строка, ДвоичныеДанные - Данные или текст для отправки - data
-// ОтветСтрокой - Булево - Признак получения ответа как строки - string
-// Tls - Структура Из КлючИЗначение - Настройки TLS, если необходимо. См. ПолучитьНастройкиTls - tls
-//
-// Возвращаемое значение:
-// ДвоичныеДанные, Строка - Ответ на запрос или информация об ошибке
-Функция ОбработатьЗапрос(Знач Адрес, Знач Данные = "", Знач ОтветСтрокой = Истина, Знач Tls = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Данные, Истина, Ложь);
- OPI_ПреобразованиеТипов.ПолучитьБулево(ОтветСтрокой);
-
- Соединение = ОткрытьСоединение(Адрес, Tls);
-
- Если Не OPI_Компоненты.ЭтоКомпонента(Соединение) Тогда
- Возврат Соединение;
- КонецЕсли;
-
- Результат = ОтправитьДвоичныеДанные(Соединение, Данные);
-
- Если Результат Тогда
-
- Ответ = ПрочитатьДвоичныеДанные(Соединение, , Символы.ПС);
-
- Если Не ЗначениеЗаполнено(Ответ) Тогда
-
- Ошибка = ПолучитьПоследнююОшибку(Соединение);
-
- Если ЗначениеЗаполнено(Ошибка) Тогда
- Ответ = OPI_Инструменты.JSONСтрокой(Ошибка);
- Ответ = ПолучитьДвоичныеДанныеИзСтроки(Ответ);
- КонецЕсли;
-
- КонецЕсли;
-
- Ответ = ?(ОтветСтрокой, ПолучитьСтрокуИзДвоичныхДанных(Ответ), Ответ);
-
- Иначе
-
- Ответ = ПолучитьПоследнююОшибку(Соединение);
- Ответ = ?(ЗначениеЗаполнено(Ответ), OPI_Инструменты.JSONСтрокой(Ответ), "OPI: Не удалось отправить сообщение");
-
- Ответ = ?(ОтветСтрокой, Ответ, ПолучитьДвоичныеДанныеИзСтроки(Ответ));
-
- КонецЕсли;
-
- ЗакрытьСоединение(Соединение);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить последнюю ошибку !NOCLI
-// Получает информацию о последней ошибке в соединении
-//
-// Параметры:
-// Соединение - Произвольный - Соединение, см. ОткрытьСоединение - tcp
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение, Неопределено - Информация об ошибке или неопределено, если ошибки нет
-Функция ПолучитьПоследнююОшибку(Знач Соединение) Экспорт
-
- Результат = Соединение.GetLastError();
-
- Если ЗначениеЗаполнено(Результат) Тогда
- Результат = OPI_Инструменты.JsonВСтруктуру(Результат);
- Иначе
- Результат = Неопределено;
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-// Получить настройки TLS
-// Формирует настройки для использования TLS при выполнении запросов
-//
-// Примечание:
-// Настройки Tls могут быть установлены только в момент создания соединения: явного, при использовании функции `ОткрытьСоединение`^^
-// или неявного, при передаче строки подключения в метод `ОбработатьЗапрос`
-//
-// Параметры:
-// ОтключитьПроверкуСертификатов - Булево - Позволяет работать с некорретными сертификатами, в т.ч. самоподписанными - trust
-// ПутьКСертификату - Строка - Путь к корневому PEM файлу сертификата, если его нет в системном хранилище - cert
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - Структура настроек TLS соединения
-Функция ПолучитьНастройкиTls(Знач ОтключитьПроверкуСертификатов, Знач ПутьКСертификату = "") Экспорт
-
- Возврат OPI_Компоненты.ПолучитьНастройкиTls(ОтключитьПроверкуСертификатов, ПутьКСертификату);
-
-КонецФункции
-
-#КонецОбласти
-
-#КонецОбласти
diff --git a/XML/CommonModules/OPI_Telegram.xml b/XML/CommonModules/OPI_Telegram.xml
deleted file mode 100644
index 7b4c9217bd..0000000000
--- a/XML/CommonModules/OPI_Telegram.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- OPI_Telegram
-
-
- ru
- Telegram (ОПИ)
-
-
- Модуль для работы с Telegram Bot API из набора ОПИ
- false
- false
- true
- true
- true
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git a/XML/CommonModules/OPI_Telegram/Ext/Module.bsl b/XML/CommonModules/OPI_Telegram/Ext/Module.bsl
deleted file mode 100644
index 68eb6a2ba0..0000000000
--- a/XML/CommonModules/OPI_Telegram/Ext/Module.bsl
+++ /dev/null
@@ -1,1571 +0,0 @@
-// OneScript: ./OInt/core/Modules/OPI_Telegram.os
-// Lib: Telegram
-// CLI: telegram
-// Keywords: telegram
-
-// MIT License
-
-// Copyright (c) 2023-2025 Anton Tsitavets
-
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-
-// The above copyright notice and this permission notice shall be included in all
-// copies or substantial portions of the Software.
-
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-// SOFTWARE.
-
-// https://github.com/Bayselonarrend/OpenIntegrations
-
-// BSLLS:Typo-off
-// BSLLS:LatinAndCyrillicSymbolInWord-off
-// BSLLS:IncorrectLineBreak-off
-// BSLLS:UnreachableCode-off
-// BSLLS:CommentedCode-off
-// BSLLS:UsingServiceTag-off
-// BSLLS:NumberOfParams-off
-// BSLLS:LineLength-off
-// BSLLS:UsingSynchronousCalls-off
-// BSLLS:MagicNumber-off
-
-//@skip-check module-structure-top-region
-//@skip-check module-structure-method-in-regions
-//@skip-check wrong-string-literal-content
-
-#Область ПрограммныйИнтерфейс
-
-#Область ПолучениеДанныхИНастройка
-
-// Получить информацию о боте
-// Выполняет запрос, возвращающий базовую информацию о боте: имя, id, возможность добавлять бота в группы и т.д.
-//
-// Примечание:
-// Метод в документации API: [getMe](@core.telegram.org/bots/api#getme)
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram
-Функция ПолучитьИнформациюБота(Знач Токен) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
-
- URL = "api.telegram.org/bot" + Токен + "/getMe";
- Ответ = OPI_ЗапросыHTTP.Get(URL);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить обновления
-// Выполняет запрос, возвращающий информацию о событиях бота. Используется при работе в polling режиме
-//
-// Примечание:
-// Метод в документации API: [getUpdates](@core.telegram.org/bots/api#getupdates)
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// Таймаут - Число - Время ожидания новых событий - timeout
-// Смещение - Число - Смещение в списке получаемых сообщений - offset
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram
-Функция ПолучитьОбновления(Знач Токен, Знач Таймаут = 0, Знач Смещение = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
-
- URL = "api.telegram.org/bot" + Токен + "/getUpdates";
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("timeout", Таймаут , "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("offset" , Смещение, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры);
- Возврат Ответ;
-
-КонецФункции
-
-// Установить Webhook
-// Устанавливает URL обработчика событий бота для работы в режиме Webhook
-//
-// Примечание:
-// Метод в документации API: [setWebhook](@core.telegram.org/bots/api#setwebhook)
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// URL - Строка - Адрес обработки запросов от Telegram (с https:) - url
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram
-Функция УстановитьWebhook(Знач Токен, Знач URL) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("url", URL, "Строка", Параметры);
-
- URL = "api.telegram.org/bot" + Токен + "/setWebHook";
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Удалить Webhook
-// Удаляет URL обработчика событий бота для работы в режиме Webhook
-//
-// Примечание:
-// Метод в документации API: [deleteWebhook](@core.telegram.org/bots/api#deletewebhook)
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram
-Функция УдалитьWebhook(Знач Токен) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
-
- URL = "api.telegram.org/bot" + Токен + "/deleteWebHook";
- Ответ = OPI_ЗапросыHTTP.Get(URL);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Скачать файл
-// Скачивает файл с серверов Telegram
-//
-// Примечание:
-// Метод в документации API: [getFile](@core.telegram.org/bots/api#getfile)
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// IDФайла - Строка - ID файла для скачивания - fileid
-//
-// Возвращаемое значение:
-// ДвоичныеДанные - данные файла
-Функция СкачатьФайл(Знач Токен, Знач IDФайла) Экспорт
-
- Result = "result";
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(IDФайла);
-
- Параметры = Новый Структура("file_id", IDФайла);
-
- URL = "api.telegram.org/bot" + Токен + "/getFile";
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры);
-
- Путь = Ответ[Result]["file_path"];
-
- Если Не ЗначениеЗаполнено(Путь) Тогда
-
- Загружен = Ложь;
-
- Для Н = 1 По 5 Цикл
-
- OPI_Инструменты.Пауза(Н);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры);
- Путь = Ответ[Result]["file_path"];
-
- Загружен = ЗначениеЗаполнено(Путь);
-
- Если Загружен Тогда
- Прервать;
- КонецЕсли;
-
- КонецЦикла;
-
- Если Не Загружен Тогда
- Возврат Ответ;
- КонецЕсли;
-
- КонецЕсли;
-
- URL = "api.telegram.org/file/bot" + Токен + "/" + Путь;
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Обработать данные Telegram Mini App !NOCLI
-// Обрабатывает данные Telegram Mini App и опредеяет их достоверность
-//
-// Параметры:
-// СтрокаДанных - Строка - query из Telegram.WebApp.initData - datastring
-// Токен - Строка - Токен бота - token
-//
-// Возвращаемое значение:
-// Соответствие из Строка - Соответствие данных с результатом проверки в поле passed
-Функция ОбработатьДанныеTMA(Знач СтрокаДанных, Знач Токен) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(СтрокаДанных);
-
- Если СтрНачинаетсяС(СтрокаДанных, "?") Тогда
- СтрокаДанных = Прав(СтрокаДанных, СтрДлина(СтрокаДанных) - 1);
- КонецЕсли;
-
- КодированныеДанные = OPI_Инструменты.ПараметрыЗапросаВСоответствие(СтрокаДанных);
- СтруктураДанных = Новый Соответствие;
-
- Для Каждого ЭлементДанных Из КодированныеДанные Цикл
-
- ТекущийКлюч = РаскодироватьСтроку(ЭлементДанных.Ключ, СпособКодированияСтроки.КодировкаURL);
- ТекущееЗначение = РаскодироватьСтроку(ЭлементДанных.Значение, СпособКодированияСтроки.КодировкаURL);
-
- СтруктураДанных.Вставить(ТекущийКлюч, ТекущееЗначение);
-
- КонецЦикла;
-
- КлючСтрокой = "WebAppData";
- Хэш = "";
- КлючДвоичные = ПолучитьДвоичныеДанныеИзСтроки(КлючСтрокой);
-
- Результат = OPI_Криптография.HMAC(КлючДвоичные, ПолучитьДвоичныеДанныеИзСтроки(Токен), "SHA256");
-
- ТЗнач = Новый ТаблицаЗначений;
- ТЗнач.Колонки.Добавить("Ключ");
- ТЗнач.Колонки.Добавить("Значение");
-
- Для Каждого Данные Из СтруктураДанных Цикл
-
- НоваяСтрока = ТЗнач.Добавить();
- НоваяСтрока.Ключ = Данные.Ключ;
- НоваяСтрока.Значение = Данные.Значение;
-
- КонецЦикла;
-
- ТЗнач.Сортировать("Ключ");
-
- СоответствиеВозврата = Новый Соответствие;
- DCS = "";
-
- Для Каждого СтрокаТЗ Из ТЗнач Цикл
-
- Если СтрокаТЗ.Ключ <> "hash" И СтрокаТЗ.Ключ <> "cookie" Тогда
- DCS = DCS + СтрокаТЗ.Ключ + "=" + СтрокаТЗ.Значение + Символы.ПС;
- СоответствиеВозврата.Вставить(СтрокаТЗ.Ключ, СтрокаТЗ.Значение);
- Иначе
- Хэш = СтрокаТЗ.Значение;
- КонецЕсли;
-
- КонецЦикла;
-
- DCS = Лев(DCS, СтрДлина(DCS) - 1);
- Подпись = OPI_Криптография.HMAC(Результат, ПолучитьДвоичныеДанныеИзСтроки(DCS), "SHA256");
-
- Финал = ПолучитьHexСтрокуИзДвоичныхДанных(Подпись);
-
- Если Финал = вРег(Хэш) Тогда
- Ответ = Истина;
- Иначе
- Ответ = Ложь;
- КонецЕсли;
-
- СоответствиеВозврата.Вставить("passed", Ответ);
-
- Возврат СоответствиеВозврата;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область ОтправкаДанных
-
-// Отправить текстовое сообщение
-// Отправляет текстовое сообщение в чат или канал
-//
-// Примечание:
-// Метод в документации API: [sendMessage](@core.telegram.org/bots/api#sendmessage)
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// IDЧата - Строка, Число - ID целевого чата или IDЧата*IDТемы - chat
-// Текст - Строка - Текст сообщения - text
-// Клавиатура - Строка, Структура Из КлючИЗначение - Клавиатура. См. СформироватьКлавиатуруПоМассивуКнопок - keyboard
-// Разметка - Строка - Вид обработки текста (HTML, Markdown, MarkdownV2) - parsemode
-// IDВходящего - Строка, Число - ID сообщения на которое надо ответить - reply
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram
-Функция ОтправитьТекстовоеСообщение(Знач Токен
- , Знач IDЧата
- , Знач Текст
- , Знач Клавиатура = ""
- , Знач Разметка = "Markdown"
- , Знач IDВходящего = 0) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Текст);
- OPI_Инструменты.ЗаменитьСпецСимволы(Текст, Разметка);
-
- Строка_ = "Строка";
-
- Текст = РаскодироватьСтроку(Текст, СпособКодированияСтроки.URLВКодировкеURL);
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("parse_mode" , Разметка , Строка_ , Параметры);
- OPI_Инструменты.ДобавитьПоле("text" , Текст , Строка_ , Параметры);
- OPI_Инструменты.ДобавитьПоле("reply_markup" , Клавиатура , "Коллекция" , Параметры);
- OPI_Инструменты.ДобавитьПоле("reply_to_message_id", IDВходящего, "Число" , Параметры);
-
- ДобавитьИдентификаторЧата(IDЧата, Параметры);
-
- URL = "api.telegram.org/bot" + Токен + "/sendMessage";
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Отправить картинку
-// Отправляет картинку в чат или канал
-//
-// Примечание:
-// Метод в документации API: [sendPhoto](@core.telegram.org/bots/api#sendphoto)
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// IDЧата - Строка, Число - ID целевого чата или IDЧата*IDТемы - chat
-// Текст - Строка - Текст сообщения - text
-// Картинка - ДвоичныеДанные, Строка - Файл картинки - picture
-// Клавиатура - Строка, Структура Из КлючИЗначение - Клавиатура. См. СформироватьКлавиатуруПоМассивуКнопок - keyboard
-// Разметка - Строка - Вид обработки текста (HTML, Markdown, MarkdownV2) - parsemode
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram
-Функция ОтправитьКартинку(Знач Токен
- , Знач IDЧата
- , Знач Текст
- , Знач Картинка
- , Знач Клавиатура = ""
- , Знач Разметка = "Markdown") Экспорт
-
- Возврат ОтправитьФайл(Токен, IDЧата, Текст, Картинка, "photo", Клавиатура, Разметка);
-
-КонецФункции
-
-// Отправить видео
-// Отправляет видео в чат или канал
-//
-// Примечание:
-// Метод в документации API: [sendVideo](@core.telegram.org/bots/api#sendvideo)
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// IDЧата - Строка, Число - ID целевого чата или IDЧата*IDТемы - chat
-// Текст - Строка - Текст сообщения - text
-// Видео - ДвоичныеДанные, Строка - Файл видео - video
-// Клавиатура - Строка, Структура Из КлючИЗначение - Клавиатура. См. СформироватьКлавиатуруПоМассивуКнопок - keyboard
-// Разметка - Строка - Вид обработки текста (HTML, Markdown, MarkdownV2) - parsemode
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram
-Функция ОтправитьВидео(Знач Токен
- , Знач IDЧата
- , Знач Текст
- , Знач Видео
- , Знач Клавиатура = ""
- , Знач Разметка = "Markdown") Экспорт
-
- Возврат ОтправитьФайл(Токен, IDЧата, Текст, Видео, "video", Клавиатура, Разметка);
-
-КонецФункции
-
-// Отправить аудио
-// Отправляет аудиофайл в чат или канал
-//
-// Примечание:
-// Метод в документации API: [sendAudio](@core.telegram.org/bots/api#sendaudio)
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// IDЧата - Строка, Число - ID целевого чата или IDЧата*IDТемы - chat
-// Текст - Строка - Текст сообщения - text
-// Аудио - ДвоичныеДанные, Строка - Файл аудио - audio
-// Клавиатура - Строка, Структура Из КлючИЗначение - Клавиатура. См. СформироватьКлавиатуруПоМассивуКнопок - keyboard
-// Разметка - Строка - Вид обработки текста (HTML, Markdown, MarkdownV2) - parsemode
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram
-Функция ОтправитьАудио(Знач Токен
- , Знач IDЧата
- , Знач Текст
- , Знач Аудио
- , Знач Клавиатура = ""
- , Знач Разметка = "Markdown") Экспорт
-
- Возврат ОтправитьФайл(Токен, IDЧата, Текст, Аудио, "audio", Клавиатура, Разметка);
-
-КонецФункции
-
-// Отправить документ
-// Отправляет документ в чат или канал
-//
-// Примечание:
-// Метод в документации API: [sendDocument](@core.telegram.org/bots/api#senddocument)
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// IDЧата - Строка,Число - ID целевого чата или IDЧата*IDТемы - chat
-// Текст - Строка - Текст сообщения - text
-// Документ - ДвоичныеДанные, Строка - Файл документа - doc
-// Клавиатура - Строка, Структура Из КлючИЗначение - Клавиатура. См. СформироватьКлавиатуруПоМассивуКнопок - keyboard
-// Разметка - Строка - Вид обработки текста (HTML, Markdown, MarkdownV2) - parsemode
-// ИмяФайла - Строка - Отображаемое имя файла c расширением, если необходимо - filename
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram
-Функция ОтправитьДокумент(Знач Токен
- , Знач IDЧата
- , Знач Текст
- , Знач Документ
- , Знач Клавиатура = ""
- , Знач Разметка = "Markdown"
- , Знач ИмяФайла = "") Экспорт
-
- Возврат ОтправитьФайл(Токен, IDЧата, Текст, Документ, "document", Клавиатура, Разметка, ИмяФайла);
-
-КонецФункции
-
-// Отправить гифку
-// Отправляет гифку в чат или канал
-//
-// Примечание:
-// Метод в документации API: [sendAnimation](@core.telegram.org/bots/api#sendanimation)
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// IDЧата - Строка, Число - ID целевого чата или IDЧата*IDТемы - chat
-// Текст - Строка - Текст сообщения - text
-// Гифка - ДвоичныеДанные, Строка - Файл гифки - gif
-// Клавиатура - Строка, Структура Из КлючИЗначение - Клавиатура. См. СформироватьКлавиатуруПоМассивуКнопок - keyboard
-// Разметка - Строка - Вид обработки текста (HTML, Markdown, MarkdownV2) - parsemode
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram
-Функция ОтправитьГифку(Знач Токен
- , Знач IDЧата
- , Знач Текст
- , Знач Гифка
- , Знач Клавиатура = ""
- , Знач Разметка = "Markdown") Экспорт
-
- Возврат ОтправитьФайл(Токен, IDЧата, Текст, Гифка, "animation", Клавиатура, Разметка);
-
-КонецФункции
-
-// Отправить группу медиафайлов
-// Отправляет набор файлов в чат или канал. Варианты типов медиа: audio, document, photo, video
-//
-// Примечание:
-// Метод в документации API: [sendMediaGroup](@core.telegram.org/bots/api#sendmediagroup)
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// IDЧата - Строка, Число - ID целевого чата или IDЧата*IDТемы - chat
-// Текст - Строка - Текст сообщения - text
-// СоответствиеФайлов - Соответствие из КлючИЗначение - Коллекция файлов: Ключ > Файл, Значение > Тип медиа - media
-// Клавиатура - Строка - Клавиатура. См. СформироватьКлавиатуруПоМассивуКнопок - keyboard
-// Разметка - Строка - Вид обработки текста (HTML, Markdown, MarkdownV2) - parsemode
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram
-Функция ОтправитьМедиагруппу(Знач Токен
- , Знач IDЧата
- , Знач Текст
- , Знач СоответствиеФайлов
- , Знач Клавиатура = ""
- , Знач Разметка = "Markdown") Экспорт
-
- // СоответствиеФайлов
- // Ключ - Файл, Значение - Тип
- // Типы: audio, document, photo, video
- // Нельзя замешивать разные типы!
-
- Строка_ = "Строка";
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата);
- OPI_ПреобразованиеТипов.ПолучитьКоллекцию(СоответствиеФайлов);
-
- OPI_Инструменты.ЗаменитьСпецсимволы(Текст, Разметка);
-
- URL = "api.telegram.org/bot" + Токен + "/sendMediaGroup";
- Медиа = Новый Массив;
- Параметры = Новый Структура;
-
- ДобавитьИдентификаторЧата(IDЧата, Параметры);
- ПреобразоватьФайлыВМедиа(СоответствиеФайлов, Текст, Медиа);
-
- OPI_Инструменты.ДобавитьПоле("parse_mode" , Разметка , Строка_ , Параметры);
- OPI_Инструменты.ДобавитьПоле("caption" , Текст , Строка_ , Параметры);
- OPI_Инструменты.ДобавитьПоле("media" , Медиа , Строка_ , Параметры);
- OPI_Инструменты.ДобавитьПоле("reply_markup", Клавиатура, "Коллекция" , Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostMultipart(URL, Параметры, СоответствиеФайлов, "mixed");
-
- Возврат Ответ;
-
-КонецФункции
-
-// Отправить местоположение
-// Отправляет местоположение по географической широте и долготе в чат или канал
-//
-// Примечание:
-// Метод в документации API: [sendLocation](@core.telegram.org/bots/api#sendlocation)
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// IDЧата - Строка, Число - ID целевого чата или IDЧата*IDТемы - chat
-// Широта - Строка, Число - Географическая широта - lat
-// Долгота - Строка, Число - Географическая долгота - long
-// Клавиатура - Строка, Структура Из КлючИЗначение - Клавиатура. См. СформироватьКлавиатуруПоМассивуКнопок - keyboard
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram
-Функция ОтправитьМестоположение(Знач Токен, Знач IDЧата, Знач Широта, Знач Долгота, Знач Клавиатура = "") Экспорт
-
- Строка_ = "Строка";
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата);
-
- URL = "api.telegram.org/bot" + Токен + "/sendLocation";
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("parse_mode" , "Markdown" , Строка_ , Параметры);
- OPI_Инструменты.ДобавитьПоле("latitude" , Широта , Строка_ , Параметры);
- OPI_Инструменты.ДобавитьПоле("longitude" , Долгота , Строка_ , Параметры);
- OPI_Инструменты.ДобавитьПоле("reply_markup", Клавиатура , "Коллекция", Параметры);
-
- ДобавитьИдентификаторЧата(IDЧата, Параметры);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Отправить контакт
-// Отправляет контакт с именем и номером телефона
-//
-// Примечание:
-// Метод в документации API: [sendContact](@core.telegram.org/bots/api#sendcontact)
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// IDЧата - Строка, Число - ID целевого чата или IDЧата*IDТемы - chat
-// Имя - Строка - Имя контакта - name
-// Фамилия - Строка - Фамилия контакта - surname
-// Телефон - Строка - Телефон контакта - phone
-// Клавиатура - Строка, Структура Из КлючИЗначение - Клавиатура. См. СформироватьКлавиатуруПоМассивуКнопок - keyboard
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram
-Функция ОтправитьКонтакт(Знач Токен, Знач IDЧата, Знач Имя, Знач Фамилия, Знач Телефон, Знач Клавиатура = "") Экспорт
-
- Строка_ = "Строка";
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата);
-
- URL = "api.telegram.org/bot" + Токен + "/sendContact";
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("parse_mode" , "Markdown", Строка_ , Параметры);
- OPI_Инструменты.ДобавитьПоле("first_name" , Имя , Строка_ , Параметры);
- OPI_Инструменты.ДобавитьПоле("last_name" , Фамилия , Строка_ , Параметры);
- OPI_Инструменты.ДобавитьПоле("phone_number", Телефон , Строка_ , Параметры);
- OPI_Инструменты.ДобавитьПоле("reply_markup", Клавиатура, "Коллекция", Параметры);
-
- ДобавитьИдентификаторЧата(IDЧата, Параметры);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Отправить опрос
-// Отправляет опрос с вариантами ответа
-//
-// Примечание:
-// Метод в документации API: [sendPoll](@core.telegram.org/bots/api#sendpoll)
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// IDЧата - Строка, Число - ID целевого чата или IDЧата*IDТемы - chat
-// Вопрос - Строка - Вопрос опроса - question
-// МассивОтветов - Массив из Строка - Массив вариантов ответа - options
-// Анонимный - Булево - Флаг анонимности опроса - anonymous
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram
-Функция ОтправитьОпрос(Знач Токен, Знач IDЧата, Знач Вопрос, Знач МассивОтветов, Знач Анонимный = Истина) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата);
- OPI_ПреобразованиеТипов.ПолучитьКоллекцию(МассивОтветов);
-
- OPI_ПреобразованиеТипов.ПолучитьБулево(Анонимный);
-
- URL = "api.telegram.org/bot" + Токен + "/sendPoll";
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("parse_mode", "Markdown" , "Строка" , Параметры);
- OPI_Инструменты.ДобавитьПоле("question" , Вопрос , "Строка" , Параметры);
- OPI_Инструменты.ДобавитьПоле("options" , МассивОтветов, "Коллекция", Параметры);
-
- Параметры.Вставить("is_anonymous", ?(Анонимный, 1, 0));
- ДобавитьИдентификаторЧата(IDЧата, Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Переслать сообщение
-// Пересылает сообщение между чатами или в рамках одного чата
-//
-// Примечание:
-// Метод в документации API: [forwardMessage](@core.telegram.org/bots/api#forwardmessage)
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// IDОригинала - Строка, Число - ID оригинального сообщения - message
-// ОткудаID - Строка, Число - ID чата оригинального сообщения - from
-// КудаID - Строка, Число - ID целевого чата или IDЧата*IDТемы - to
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram
-Функция ПереслатьСообщение(Знач Токен, Знач IDОригинала, Знач ОткудаID, Знач КудаID) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(IDОригинала);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(ОткудаID);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(КудаID);
-
- URL = "api.telegram.org/bot" + Токен + "/forwardMessage";
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("from_chat_id", ОткудаID , "Число", Параметры);
- OPI_Инструменты.ДобавитьПоле("message_id" , IDОригинала, "Число", Параметры);
-
- ДобавитьИдентификаторЧата(КудаID, Параметры);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Удалить сообщение
-// Удаляет указанное сообщение из чата или канала
-//
-// Примечание:
-// Метод в документации API: [deleteMessage](@core.telegram.org/bots/api#deletemessage)
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// IDЧата - Строка, Число - ID целевого чата - chat
-// IDСообщения - Строка, Число - ID удаляемого сообщения - message
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram
-Функция УдалитьСообщение(Знач Токен, Знач IDЧата, Знач IDСообщения) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
-
- URL = "api.telegram.org/bot" + Токен + "/deleteMessage";
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("message_id", IDСообщения, "Число", Параметры);
- OPI_Инструменты.ДобавитьПоле("chat_id" , IDЧата , "Число", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры);
- Возврат Ответ;
-
-КонецФункции
-
-// Заменить клавиатуру сообщения
-// Заменяет клавиатуру сообщения на новую
-//
-// Примечание:
-// Метод в документации API: [editMessageReplyMarkup](@core.telegram.org/bots/api#editmessagereplymarkup)
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// IDЧата - Строка, Число - ID целевого чата - chat
-// IDСообщения - Строка, Число - ID удаляемого сообщения - message
-// Клавиатура - Строка, Структура Из КлючИЗначение - Клавиатура. См. СформироватьКлавиатуруПоМассивуКнопок - keyboard
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram
-Функция ЗаменитьКлавиатуруСообщения(Знач Токен, Знач IDЧата, Знач IDСообщения, Знач Клавиатура) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("message_id" , IDСообщения, "Число" , Параметры);
- OPI_Инструменты.ДобавитьПоле("reply_markup", Клавиатура , "Коллекция", Параметры);
-
- ДобавитьИдентификаторЧата(IDЧата, Параметры);
-
- URL = "api.telegram.org/bot" + Токен + "/editMessageReplyMarkup";
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Заменить текст сообщения
-// Заменяет текст сообщения на новый
-//
-// Примечание:
-// Метод в документации API: [editMessageText](@core.telegram.org/bots/api#editmessagetext)
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// IDЧата - Строка, Число - ID целевого чата - chat
-// IDСообщения - Строка, Число - ID удаляемого сообщения - message
-// Текст - Строка - Новый текст сообщения - text
-// Разметка - Строка - Вид обработки текста (HTML, Markdown, MarkdownV2) - parsemode
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram
-Функция ЗаменитьТекстСообщения(Знач Токен
- , Знач IDЧата
- , Знач IDСообщения
- , Знач Текст
- , Знач Разметка = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Текст);
-
- OPI_Инструменты.ЗаменитьСпецСимволы(Текст, Разметка);
-
- Строка_ = "Строка";
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("message_id", IDСообщения, "Число", Параметры);
- OPI_Инструменты.ДобавитьПоле("text" , Текст , Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("parse_mode", Разметка , Строка_, Параметры);
-
- ДобавитьИдентификаторЧата(IDЧата, Параметры);
-
- URL = "api.telegram.org/bot" + Токен + "/editMessageText";
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Заменить описание сообщения
-// Заменяет текст в сообщении с вложениями
-//
-// Примечание:
-// Метод в документации API: [editMessageCaption](@core.telegram.org/bots/api#editmessagecaption)
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// IDЧата - Строка, Число - ID целевого чата - chat
-// IDСообщения - Строка, Число - ID удаляемого сообщения - message
-// Описание - Строка - Новое описание сообщения - caption
-// Разметка - Строка - Вид обработки текста (HTML, Markdown, MarkdownV2) - parsemode
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram
-Функция ЗаменитьОписаниеСообщения(Знач Токен
- , Знач IDЧата
- , Знач IDСообщения
- , Знач Описание
- , Знач Разметка = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Описание);
-
- OPI_Инструменты.ЗаменитьСпецСимволы(Описание, Разметка);
-
- Строка_ = "Строка";
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("message_id", IDСообщения, "Число", Параметры);
- OPI_Инструменты.ДобавитьПоле("caption" , Описание , Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("parse_mode", Разметка , Строка_, Параметры);
-
- ДобавитьИдентификаторЧата(IDЧата, Параметры);
-
- URL = "api.telegram.org/bot" + Токен + "/editMessageCaption";
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Сформировать клавиатуру по массиву кнопок
-// Формирует простую JSON клавиатуру из массив кнопок для сообщения или нижней панели
-//
-// Примечание:
-// О клавиатурах в документации API: [InlineKeyboardMarkup](@core.telegram.org/bots/api#inlinekeyboardmarkup)
-//
-// Параметры:
-// МассивКнопок - Массив из Строка - Массив кнопок - buttons
-// ПодСообщением - Булево - Клавиатура под сообщением или на нижней панели - under
-// ОднаПодОдной - Булево - Истина > кнопки выводятся в столбик, Ложь > в строку - column
-//
-// Возвращаемое значение:
-// Строка - JSON клавиатуры
-Функция СформироватьКлавиатуруПоМассивуКнопок(Знач МассивКнопок
- , Знач ПодСообщением = Ложь
- , Знач ОднаПодОдной = Истина) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьБулево(ПодСообщением);
- OPI_ПреобразованиеТипов.ПолучитьБулево(ОднаПодОдной);
- OPI_ПреобразованиеТипов.ПолучитьКоллекцию(МассивКнопок);
-
- Если ОднаПодОдной Тогда
- Строки = СоздатьВысокуюКлавиатуру(МассивКнопок);
- Иначе
- Строки = СоздатьДлиннуюКлавиатуру(МассивКнопок);
- КонецЕсли;
-
- Если ПодСообщением Тогда
- СтруктураПараметра = Новый Структура("inline_keyboard,rows" , Строки, 1);
- Иначе
- СтруктураПараметра = Новый Структура("keyboard,resize_keyboard", Строки, Истина);
- КонецЕсли;
-
- СтруктураПараметра = OPI_Инструменты.JSONСтрокой(СтруктураПараметра, , Ложь, Ложь);
-
- Возврат СтруктураПараметра;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область Администрирование
-
-// Бан
-// Банит пользователя в выбранном чате
-//
-// Примечание:
-// Метод в документации API: [banChatMember](@core.telegram.org/bots/api#banchatmember)
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// IDЧата - Строка, Число - ID целевого чата или IDЧата*IDТемы - chat
-// IDПользователя - Строка, Число - ID целевого пользователя - user
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram
-Функция Бан(Знач Токен, Знач IDЧата, Знач IDПользователя) Экспорт
-
- Строка_ = "Строка";
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
-
- URL = "api.telegram.org/bot" + Токен + "/banChatMember";
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("parse_mode", "Markdown" , Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("chat_id" , IDЧата , "Число", Параметры);
- OPI_Инструменты.ДобавитьПоле("user_id" , IDПользователя, "Число", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Разбан
-// Разбанивает забаненного ранее пользователя
-//
-// Примечание:
-// Метод в документации API: [unbanChatMember](@core.telegram.org/bots/api#unbanchatmember)
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// IDЧата - Строка, Число - ID целевого чата или IDЧата*IDТемы - chat
-// IDПользователя - Строка, Число - ID целевого пользователя - user
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram
-Функция Разбан(Знач Токен, Знач IDЧата, Знач IDПользователя) Экспорт
-
- Строка_ = "Строка";
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
-
- URL = "api.telegram.org/bot" + Токен + "/unbanChatMember";
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("parse_mode" , "Markdown" , Строка_ , Параметры);
- OPI_Инструменты.ДобавитьПоле("chat_id" , IDЧата , "Число" , Параметры);
- OPI_Инструменты.ДобавитьПоле("user_id" , IDПользователя, "Число" , Параметры);
- OPI_Инструменты.ДобавитьПоле("only_if_banned", Ложь , "Булево", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Создать ссылку-приглашение
-// Создает ссылку для вступления в закрытый чат
-//
-// Примечание:
-// Метод в документации API: [createChatInviteLink](@core.telegram.org/bots/api#createchatinvitelink)
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// IDЧата - Строка, Число - ID целевого чата или IDЧата*IDТемы - chat
-// Заголовок - Строка - Заголовок приглашения - title
-// ДатаИстечения - Дата - Дата окончания жизни ссылки (безсрочно, если не указано) - expire
-// ЛимитПользователей - Число - Лимит пользователей (бесконечно, если не указано) - limit
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram
-Функция СоздатьСсылкуПриглашение(Знач Токен
- , Знач IDЧата
- , Знач Заголовок = ""
- , Знач ДатаИстечения = ""
- , Знач ЛимитПользователей = 0) Экспорт
-
- Строка_ = "Строка";
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
-
- URL = "api.telegram.org/bot" + Токен + "/createChatInviteLink";
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("parse_mode" , "Markdown" , Строка_ , Параметры);
- OPI_Инструменты.ДобавитьПоле("chat_id" , IDЧата , "Число" , Параметры);
- OPI_Инструменты.ДобавитьПоле("name" , Заголовок , Строка_ , Параметры);
- OPI_Инструменты.ДобавитьПоле("member_limit" , ЛимитПользователей, "Число" , Параметры);
- OPI_Инструменты.ДобавитьПоле("expire_date" , ДатаИстечения , "Дата" , Параметры);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Закрепить сообщение
-// Закрепляет сообщение в шапке чата
-//
-// Примечание:
-// Метод в документации API: [pinChatMessage](@core.telegram.org/bots/api#pinchatmessage)
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// IDЧата - Строка, Число - ID целевого чата - chat
-// IDСообщения - Строка, Число - ID целевого сообщения - message
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram
-Функция ЗакрепитьСообщение(Знач Токен, Знач IDЧата, Знач IDСообщения) Экспорт
-
- Строка_ = "Строка";
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
-
- URL = "api.telegram.org/bot" + Токен + "/pinChatMessage";
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("parse_mode" , "Markdown" , Строка_ , Параметры);
- OPI_Инструменты.ДобавитьПоле("chat_id" , IDЧата , "Число" , Параметры);
- OPI_Инструменты.ДобавитьПоле("message_id" , IDСообщения, "Число" , Параметры);
- OPI_Инструменты.ДобавитьПоле("disable_notification", Ложь , "Булево", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Открепить сообщение
-// Открепляет сообщение в шапке чата
-//
-// Примечание:
-// Метод в документации API: [unpinChatMessage](@core.telegram.org/bots/api#unpinchatmessage)
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// IDЧата - Строка, Число - ID целевого чата - chat
-// IDСообщения - Строка, Число - ID целевого сообщения - message
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram
-Функция ОткрепитьСообщение(Знач Токен, Знач IDЧата, Знач IDСообщения) Экспорт
-
- Строка_ = "Строка";
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
-
- URL = "api.telegram.org/bot" + Токен + "/unpinChatMessage";
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("parse_mode", "Markdown" , Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("chat_id" , IDЧата , "Число", Параметры);
- OPI_Инструменты.ДобавитьПоле("message_id", IDСообщения, "Число", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить число участников
-// Получает общее число участников чата
-//
-// Примечание:
-// Метод в документации API: [getChatMemberCount](@core.telegram.org/bots/api#getchatmembercount)
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// IDЧата - Строка, Число - ID целевого чата - chat
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram
-Функция ПолучитьЧислоУчастников(Знач Токен, Знач IDЧата) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
-
- URL = "api.telegram.org/bot" + Токен + "/getChatMemberCount";
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("parse_mode", "Markdown" , "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("chat_id" , IDЧата , "Число" , Параметры);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область РаботаСТемамиФорума
-
-// Получить список иконок-аватаров
-// Получает соответствие ID Emoji для установки в качестве иконок тем форума
-//
-// Примечание:
-// Метод в документации API: [getForumTopicIconStickers](@core.telegram.org/bots/api#getforumtopiciconstickers)
-//
-// Параметры:
-// Токен - Строка - Токен - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Ключ > ID, Значение > Emoji
-Функция ПолучитьСписокИконокАватаров(Знач Токен) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
-
- Result = "result";
- URL = "api.telegram.org/bot" + Токен + "/getForumTopicIconStickers";
- Ответ = OPI_ЗапросыHTTP.Get(URL);
- Иконки = Ответ[Result];
-
- Если Не ЗначениеЗаполнено(Иконки) Тогда
- Возврат Ответ;
- КонецЕсли;
-
- Коллекция = Новый Соответствие;
-
- Для Каждого Иконка Из Иконки Цикл
- Коллекция.Вставить(Иконка["custom_emoji_id"], Иконка["emoji"]);
- КонецЦикла;
-
- Возврат Коллекция;
-
-КонецФункции
-
-// Создать тему форума
-// Создает новую тему в группе с включенным функционалом тем
-//
-// Примечание:
-// Метод в документации API: [createForumTopic](@core.telegram.org/bots/api#createforumtopic)
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// IDЧата - Строка, Число - ID чата создания темы - forum
-// Заголовок - Строка - Заголовок темы - title
-// IDИконки - Строка - См. ПолучитьСписокИконокАватаров - icon
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram
-Функция СоздатьТемуФорума(Знач Токен, Знач IDЧата, Знач Заголовок, Знач IDИконки = "") Экспорт
-
- Возврат УправлениеТемойФорума(Токен, IDЧата, Заголовок, IDИконки);
-
-КонецФункции
-
-// Изменить тему форума
-// Создает новую тему в группе с включенным функционалом тем
-//
-// Примечание:
-// Метод в документации API: [editForumTopic](@core.telegram.org/bots/api#editforumtopic)
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// IDЧата - Строка, Число - ID чата создания темы - forum
-// IDТемы - Строка, Число - ID темы - topic
-// Заголовок - Строка - Новый заголовок - title
-// IDИконки - Строка - См. ПолучитьСписокИконокАватаров - icon
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram
-Функция ИзменитьТемуФорума(Знач Токен
- , Знач IDЧата
- , Знач IDТемы
- , Знач Заголовок = Неопределено
- , Знач IDИконки = Неопределено) Экспорт
-
- Возврат УправлениеТемойФорума(Токен, IDЧата, Заголовок, IDИконки, IDТемы);
-КонецФункции
-
-// Закрыть тему форума
-// Закрывает тему для новых сообщений
-//
-// Примечание:
-// Метод в документации API: [closeForumTopic](@core.telegram.org/bots/api#closeforumtopic)
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// IDЧата - Строка, Число - ID чата темы - forum
-// IDТемы - Строка, Число - ID темы - topic
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram
-Функция ЗакрытьТемуФорума(Знач Токен, Знач IDЧата, Знач IDТемы = "") Экспорт
-
- Возврат УправлениеСостояниемТемыФорума(Токен, IDЧата, 2, IDТемы);
-
-КонецФункции
-
-// Открыть тему форума
-// Повторно открывает ранее закрытую тему форума
-//
-// Примечание:
-// Метод в документации API: [reopenForumTopic](@core.telegram.org/bots/api#reopenforumtopic)
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// IDЧата - Строка, Число - ID чата темы - forum
-// IDТемы - Строка, Число - ID темы - topic
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram
-Функция ОткрытьТемуФорума(Знач Токен, Знач IDЧата, Знач IDТемы = "") Экспорт
-
- Возврат УправлениеСостояниемТемыФорума(Токен, IDЧата, 1, IDТемы);
-
-КонецФункции
-
-// Удалить тему форума
-// Удаляет тему форума
-//
-// Примечание:
-// Метод в документации API: [deleteForumTopic](@core.telegram.org/bots/api#deleteforumtopic)
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// IDЧата - Строка, Число - ID чата темы - forum
-// IDТемы - Строка, Число - ID темы - topic
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram
-Функция УдалитьТемуФорума(Знач Токен, Знач IDЧата, Знач IDТемы) Экспорт
-
- Возврат УправлениеСостояниемТемыФорума(Токен, IDЧата, 3, IDТемы);
-
-КонецФункции
-
-// Скрыть главную тему форума
-// Скрывает главную тему форума
-//
-// Примечание:
-// Метод в документации API: [hideGeneralForumTopic](@core.telegram.org/bots/api#hidegeneralforumtopic)
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// IDЧата - Строка, Число - ID чата темы - forum
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram
-Функция СкрытьГлавнуюТемуФорума(Знач Токен, Знач IDЧата) Экспорт
-
- Возврат УправлениеВидимостьюГлавнойТемыФорума(Токен, IDЧата, Истина);
-
-КонецФункции
-
-// Показать главную тему форума
-// Показывает ранее скрытую главную тему форума
-//
-// Примечание:
-// Метод в документации API: [unhideGeneralForumTopic](@core.telegram.org/bots/api#unhidegeneralforumtopic)
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// IDЧата - Строка, Число - ID чата темы - forum
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram
-Функция ПоказатьГлавнуюТемуФорума(Знач Токен, Знач IDЧата) Экспорт
-
- Возврат УправлениеВидимостьюГлавнойТемыФорума(Токен, IDЧата, Ложь);
-
-КонецФункции
-
-// Изменить имя главной темы форума
-// Изменяет имя главной темы форума
-//
-// Примечание:
-// Метод в документации API: [editGeneralForumTopic](@core.telegram.org/bots/api#editgeneralforumtopic)
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// IDЧата - Строка, Число - ID чата темы - forum
-// Заголовок - Строка - Новое имя главной темы - title
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram
-Функция ИзменитьИмяГлавнойТемыФорума(Знач Токен, Знач IDЧата, Знач Заголовок) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
-
- URL = "api.telegram.org/bot" + Токен + "/editGeneralForumTopic";
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("chat_id", IDЧата , "Число" , Параметры);
- OPI_Инструменты.ДобавитьПоле("name" , Заголовок, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Очистить список закрепленных сообщений темы
-// Очищает список закрепленных сообщений в теме форума
-//
-// Примечание:
-// Метод в документации API: [unpinAllForumTopicMessages](@core.telegram.org/bots/api#unpinallforumtopicmessages)
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// IDЧата - Строка, Число - ID чата темы - forum
-// IDТемы - Строка, Число - ID темы. Главная, если не заполнено - topic
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram
-Функция ОчиститьСписокЗакрепленныхСообщенийТемы(Знач Токен, Знач IDЧата, Знач IDТемы = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(IDТемы);
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("chat_id" , IDЧата, "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("message_thread_id", IDТемы, "Строка", Параметры);
-
- Если ЗначениеЗаполнено(IDТемы) Тогда
- Метод = "/unpinAllForumTopicMessages";
- Иначе
- Метод = "/unpinAllGeneralForumTopicMessages";
- КонецЕсли;
-
- URL = "api.telegram.org/bot" + Токен + Метод;
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-#КонецОбласти
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-Функция ОтправитьФайл(Знач Токен
- , Знач IDЧата
- , Знач Текст
- , Знач Файл
- , Знач Вид
- , Знач Клавиатура
- , Знач Разметка
- , Знач ИмяФайла = "")
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Вид);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Текст);
-
- OPI_Инструменты.ЗаменитьСпецсимволы(Текст, Разметка);
-
- Если Не ЗначениеЗаполнено(ИмяФайла) Тогда
- ИмяФайла = ПреобразоватьДанныеФайла(Файл, Вид, "");
- Иначе
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Файл);
- КонецЕсли;
-
- ИмяФайла = Вид + "|" + ИмяФайла;
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("parse_mode" , Разметка , "Строка" , Параметры);
- OPI_Инструменты.ДобавитьПоле("caption" , Текст , "Строка" , Параметры);
- OPI_Инструменты.ДобавитьПоле("reply_markup", Клавиатура, "Коллекция", Параметры);
-
- ДобавитьИдентификаторЧата(IDЧата, Параметры);
-
- СоответствиеФайлов = Новый Соответствие;
- СоответствиеФайлов.Вставить(ИмяФайла, Файл);
-
- Метод = ОпределитьМетодОтправки(Вид);
- URL = "api.telegram.org/bot" + Токен + Метод;
- Ответ = OPI_ЗапросыHTTP.PostMultipart(URL, Параметры, СоответствиеФайлов, "mixed");
-
- Возврат Ответ;
-
-КонецФункции
-
-Функция УправлениеТемойФорума(Знач Токен
- , Знач IDЧата
- , Знач Заголовок = Неопределено
- , Знач IDИконки = Неопределено
- , Знач IDТемы = "")
-
- Строка_ = "Строка";
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("name" , Заголовок, Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("chat_id" , IDЧата , "Число", Параметры);
- OPI_Инструменты.ДобавитьПоле("icon_custom_emoji_id", IDИконки , Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("message_thread_id" , IDТемы , "Число", Параметры);
-
- Если ЗначениеЗаполнено(IDТемы) Тогда
- Метод = "/editForumTopic";
- Иначе
- Метод = "/createForumTopic";
- КонецЕсли;
-
- Ответ = OPI_ЗапросыHTTP.Get("api.telegram.org/bot" + Токен + Метод, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-Функция УправлениеСостояниемТемыФорума(Знач Токен, Знач IDЧата, Знач Статус, Знач IDТемы = "")
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
-
- Если ЗначениеЗаполнено(IDТемы) Тогда
- Форум = "Forum";
- Иначе
- Форум = "GeneralForum";
- КонецЕсли;
-
- Метод = ОпределитьМетодУправленияФорумом(Статус, Форум);
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("chat_id" , IDЧата, "Число", Параметры);
- OPI_Инструменты.ДобавитьПоле("message_thread_id", IDТемы, "Число", Параметры);
-
- URL = "api.telegram.org/bot" + Токен + Метод;
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-Функция УправлениеВидимостьюГлавнойТемыФорума(Знач Токен, Знач IDЧата, Знач Скрыть)
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
- OPI_ПреобразованиеТипов.ПолучитьБулево(Скрыть);
-
- Если Скрыть Тогда
- Метод = "/hideGeneralForumTopic";
- Иначе
- Метод = "/unhideGeneralForumTopic";
- КонецЕсли;
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("chat_id", IDЧата, "Строка", Параметры);
-
- URL = "api.telegram.org/bot" + Токен + Метод;
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-Функция ОпределитьМетодУправленияФорумом(Знач Статус, Знач Форум)
-
- Открыть = 1;
- Закрыть = 2;
- Удалить = 3;
-
- Если Статус = Открыть Тогда
- Метод = "/reopen" + Форум + "Topic";
- ИначеЕсли Статус = Закрыть Тогда
- Метод = "/close" + Форум + "Topic";
- ИначеЕсли Статус = Удалить Тогда
- Метод = "/deleteForumTopic";
- Иначе
- ВызватьИсключение "Некорректный статус управления форумом";
- КонецЕсли;
-
- Возврат Метод;
-
-КонецФункции
-
-Функция СоздатьВысокуюКлавиатуру(Знач МассивКнопок)
-
- Строки = Новый Массив;
-
- Для Каждого Кнопка Из МассивКнопок Цикл
- Кнопки = Новый Массив;
- Кнопка = OPI_Инструменты.ЧислоВСтроку(Кнопка);
- Кнопки.Добавить(Новый Структура("text,callback_data", Кнопка, Кнопка));
- Строки.Добавить(Кнопки);
- КонецЦикла;
-
- Возврат Строки;
-
-КонецФункции
-
-Функция СоздатьДлиннуюКлавиатуру(Знач МассивКнопок)
-
- Строки = Новый Массив;
- Кнопки = Новый Массив;
-
- Для Каждого Кнопка Из МассивКнопок Цикл
- Кнопка = OPI_Инструменты.ЧислоВСтроку(Кнопка);
- Кнопки.Добавить(Новый Структура("text,callback_data", Кнопка, Кнопка));
- КонецЦикла;
-
- Строки.Добавить(Кнопки);
-
- Возврат Строки;
-
-КонецФункции
-
-Функция ОпределитьМетодОтправки(Знач Вид)
-
- Если Вид = "photo" Тогда
- Метод = "/sendPhoto";
- ИначеЕсли Вид = "video" Тогда
- Метод = "/sendVideo";
- ИначеЕсли Вид = "audio" Тогда
- Метод = "/sendAudio";
- ИначеЕсли Вид = "animation" Тогда
- Метод = "/sendAnimation";
- Иначе
- Метод = "/sendDocument";
- КонецЕсли;
-
- Возврат Метод;
-
-КонецФункции
-
-Функция ПреобразоватьДанныеФайла(Файл, Вид, Счетчик)
-
- ИмяФайла = "";
-
- Если ТипЗнч(Файл) = Тип("Строка") И Вид = "document" Тогда
-
- ТекущийФайл = Новый Файл(Файл);
- ИмяФайла = ТекущийФайл.Имя;
-
- КонецЕсли;
-
- Если Не ЗначениеЗаполнено(ИмяФайла) Тогда
- ИмяФайла = Вид + Строка(Счетчик);
-
- Если Вид = "animation" Тогда
- ИмяФайла = ИмяФайла + ".gif";
- КонецЕсли;
-
- КонецЕсли;
-
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Файл);
-
- Возврат ИмяФайла;
-
-КонецФункции
-
-Процедура ПреобразоватьФайлыВМедиа(СоответствиеФайлов, Текст, Медиа)
-
- OPI_ПреобразованиеТипов.ПолучитьКоллекцию(СоответствиеФайлов);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Текст);
-
- Если ТипЗнч(СоответствиеФайлов) <> Тип("Соответствие") Тогда
- // !OInt ВызватьИсключение("Не удалось получить информацию из json медиа!");
- Возврат;
- КонецЕсли;
-
- ВременноеСоответствие = Новый Соответствие;
- Счетчик = 0;
-
- Для Каждого ТекущийФайл Из СоответствиеФайлов Цикл
-
- ТекущиеДанные = ТекущийФайл.Ключ;
- ТипМедиа = ТекущийФайл.Значение;
-
- ИмяМедиа = ПреобразоватьДанныеФайла(ТекущиеДанные, ТипМедиа, Счетчик);
-
- ВременноеСоответствие.Вставить(ИмяМедиа + "|" + ИмяМедиа, ТекущиеДанные);
-
- СтруктураМедиа = Новый Структура;
- СтруктураМедиа.Вставить("type" , ТипМедиа);
- СтруктураМедиа.Вставить("media", "attach://" + ИмяМедиа);
-
- Если Счетчик = 0 Тогда
- СтруктураМедиа.Вставить("caption", Текст);
- КонецЕсли;
-
- Медиа.Добавить(СтруктураМедиа);
-
- Счетчик = Счетчик + 1;
-
- КонецЦикла;
-
- Медиа = OPI_Инструменты.JSONСтрокой(Медиа);
- СоответствиеФайлов = ВременноеСоответствие;
-
-КонецПроцедуры
-
-Процедура ДобавитьИдентификаторЧата(Знач IDЧата, Параметры)
-
- IDЧата = OPI_Инструменты.ЧислоВСтроку(IDЧата);
- МассивЧата = СтрРазделить(IDЧата, "*", Ложь);
-
- Если МассивЧата.Количество() > 1 Тогда
-
- IDЧата = МассивЧата[0];
- IDТемы = МассивЧата[1];
-
- OPI_ПреобразованиеТипов.ПолучитьЧисло(IDТемы);
- Параметры.Вставить("message_thread_id", IDТемы);
-
- КонецЕсли;
-
- OPI_ПреобразованиеТипов.ПолучитьЧисло(IDТемы);
- Параметры.Вставить("chat_id", IDЧата);
-
-КонецПроцедуры
-
-#КонецОбласти
diff --git a/XML/CommonModules/OPI_Twitter.xml b/XML/CommonModules/OPI_Twitter.xml
deleted file mode 100644
index 60b893ad1d..0000000000
--- a/XML/CommonModules/OPI_Twitter.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- OPI_Twitter
-
-
- ru
- Twitter (ОПИ)
-
-
- Модуль для работы с Twitter из набора ОПИ
- false
- false
- true
- true
- true
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git a/XML/CommonModules/OPI_Twitter/Ext/Module.bsl b/XML/CommonModules/OPI_Twitter/Ext/Module.bsl
deleted file mode 100644
index 8a9aa3bd0f..0000000000
--- a/XML/CommonModules/OPI_Twitter/Ext/Module.bsl
+++ /dev/null
@@ -1,661 +0,0 @@
-// OneScript: ./OInt/core/Modules/OPI_Twitter.os
-// Lib: Twitter
-// CLI: twitter
-// Keywords: twitter, x
-
-// MIT License
-
-// Copyright (c) 2023-2025 Anton Tsitavets
-
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-
-// The above copyright notice and this permission notice shall be included in all
-// copies or substantial portions of the Software.
-
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-// SOFTWARE.
-
-// https://github.com/Bayselonarrend/OpenIntegrations
-// Если в не знаете с чего начать, то стоит найти метод ПолучитьСтандартныеПараметры()
-// и почитать комментарии
-
-// BSLLS:Typo-off
-// BSLLS:LatinAndCyrillicSymbolInWord-off
-// BSLLS:IncorrectLineBreak-off
-// BSLLS:NumberOfOptionalParams-off
-// BSLLS:UsingServiceTag-off
-// BSLLS:LineLength-off
-// BSLLS:UsingSynchronousCalls-off
-
-//@skip-check method-too-many-params
-//@skip-check module-structure-top-region
-//@skip-check module-structure-method-in-regions
-//@skip-check wrong-string-literal-content
-
-#Область ПрограммныйИнтерфейс
-
-#Область ДанныеИНастройка
-
-// Получить ссылку для авторизации
-// Формирует ссылку для авторизации через браузер
-//
-// Параметры:
-// Параметры - Структура из Строка - Данные авторизации. См.ПолучитьСтандартныеПараметры - auth
-//
-// Возвращаемое значение:
-// Строка - URL для перехода в браузере
-Функция ПолучитьСсылкуАвторизации(Параметры = "") Экспорт
-
- Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
-
- ПараметрыURL = Новый Структура;
-
- ПараметрыURL.Вставить("response_type" , "code");
- ПараметрыURL.Вставить("client_id" , Параметры_["client_id"]);
- ПараметрыURL.Вставить("redirect_uri" , Параметры_["redirect_uri"]);
- ПараметрыURL.Вставить("scope" , Параметры_["scope"]);
- ПараметрыURL.Вставить("state" , "state");
- ПараметрыURL.Вставить("code_challenge" , "challenge");
- ПараметрыURL.Вставить("code_challenge_method", "plain");
-
- ПараметрыURL = OPI_Инструменты.ПараметрыЗапросаВСтроку(ПараметрыURL);
- Линк = "https://twitter.com/i/oauth2/authorize" + ПараметрыURL;
-
- Возврат Линк;
-
-КонецФункции
-
-// Получить токен
-// Получает токен по коду, полученному при авторизации по ссылке из ПолучитьСсылкуАвторизации
-//
-// Параметры:
-// Код - Строка - Код, полученный из авторизации См.ПолучитьСсылкуАвторизации - code
-// Параметры - Структура из Строка - Данные авторизации. См.ПолучитьСтандартныеПараметры - auth
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Twitter
-Функция ПолучитьТокен(Знач Код, Знач Параметры = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Код);
-
- Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
-
- ПараметрыЗапроса = Новый Структура;
- ПараметрыЗапроса.Вставить("code" , Код);
- ПараметрыЗапроса.Вставить("grant_type" , "authorization_code");
- ПараметрыЗапроса.Вставить("client_id" , Параметры_["client_id"]);
- ПараметрыЗапроса.Вставить("redirect_uri" , Параметры_["redirect_uri"]);
- ПараметрыЗапроса.Вставить("code_verifier", "challenge");
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом("https://api.twitter.com/2/oauth2/token"
- , ПараметрыЗапроса
- ,
- , Ложь);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Обновить токен
-// Обновляет v2 токен при помощи refresh_token
-//
-// Параметры:
-// Параметры - Структура из Строка - Данные авторизации. См.ПолучитьСтандартныеПараметры - auth
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Twitter
-Функция ОбновитьТокен(Знач Параметры = "") Экспорт
-
- Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
- Refresh = "refresh_token";
-
- ПараметрыЗапроса = Новый Структура;
- ПараметрыЗапроса.Вставить(Refresh , Параметры_[Refresh]);
- ПараметрыЗапроса.Вставить("grant_type" , Refresh);
- ПараметрыЗапроса.Вставить("client_id" , Параметры_["client_id"]);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом("https://api.twitter.com/2/oauth2/token"
- , ПараметрыЗапроса
- ,
- , Ложь);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Обработка входящего запроса после авторизации !NOCLI
-// Метод для вставки в http-сервис, адрес которого указывается в redirect_uri
-//
-// Примечание:
-// Вызывает метод получения токена, так как для получения токена из кода, приходящего^^
-// на redirect_uri после авторизации через браузер есть всего 30 секунд
-//
-// Параметры:
-// Запрос - HTTPСервисЗапрос - Запрос, приходящий на http-сервис
-//
-// Возвращаемое значение:
-// HTTPОтвет, Произвольный, ДвоичныеДанные - Результат чтения JSON ответа сервера
-Функция ОбработкаВходящегоЗапросаПослеАвторизации(Запрос) Экспорт
-
- Код = Запрос.ПараметрыЗапроса["code"];
- ОтветТокен = ПолучитьТокен(Код);
-
- // BSLLS:CommentedCode-off
- // Предпочтительное хранение токенов
- // Константы.TwitterRefresh.Установить(ОтветТокен["refresh_token"]);
- // Константы.TwitterToken.Установить(ОтветТокен["access_token"]);
- // BSLLS:CommentedCode-on
-
- Возврат ОтветТокен;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область Твиты
-
-// Создать произвольный твит
-// Создает твит с произвольным содержимым
-//
-// Параметры:
-// Текст - Строка - Текст твита - text
-// МассивМедиа - Массив из Строка,ДвоичныеДанные - Массив двоичных данных или путей к файлам - media
-// МассивВариантовОпроса - Массив из Строка - Массив вариантов опроса, если необходимо - options
-// ДлительностьОпроса - Строка,Число - Длительность опроса, если необходимо (опрос без длительности не создается) - dur
-// Параметры - Структура из Строка - Данные авторизации. См.ПолучитьСтандартныеПараметры - auth
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Twitter
-Функция СоздатьПроизвольныйТвит(Знач Текст = ""
- , Знач МассивМедиа = ""
- , Знач МассивВариантовОпроса = ""
- , Знач ДлительностьОпроса = ""
- , Знач Параметры = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Текст);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(ДлительностьОпроса);
-
- Если ЗначениеЗаполнено(МассивМедиа) Тогда
- OPI_ПреобразованиеТипов.ПолучитьКоллекцию(МассивМедиа);
- КонецЕсли;
-
- Если ЗначениеЗаполнено(МассивВариантовОпроса) Тогда
- OPI_ПреобразованиеТипов.ПолучитьКоллекцию(МассивВариантовОпроса);
- КонецЕсли;
-
- Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
- URL = "https://api.twitter.com/2/tweets";
- Массив = "Массив";
- Поля = Новый Соответствие;
-
- Если ЗначениеЗаполнено(Текст) Тогда
- Поля.Вставить("text", Текст);
- КонецЕсли;
-
- Если ТипЗнч(МассивВариантовОпроса) = Тип(Массив) И ЗначениеЗаполнено(ДлительностьОпроса) Тогда
-
- ДлительностьОпроса = Число(ДлительностьОпроса);
-
- Если МассивВариантовОпроса.Количество() > 0 Тогда
-
- СтруктураВарианта = Новый Структура("options,duration_minutes", МассивВариантовОпроса, ДлительностьОпроса);
- Поля.Вставить("poll", СтруктураВарианта);
-
- КонецЕсли;
-
- КонецЕсли;
-
- Если ТипЗнч(МассивМедиа) = Тип(Массив) Тогда
- Если МассивМедиа.Количество() > 0 Тогда
- Поля.Вставить("media", Новый Структура("media_ids", МассивМедиа));
- КонецЕсли;
- КонецЕсли;
-
- Если ЗначениеЗаполнено(Поля["media"]) Тогда
- ЭтоV2 = Ложь;
- Иначе
- ЭтоV2 = Истина;
- КонецЕсли;
-
- Ответ = Post(URL, Поля, Параметры_, Истина, ЭтоV2);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Создать текстовый твит
-// Создает твит без вложений
-//
-// Параметры:
-// Текст - Строка - Текст твита - text
-// Параметры - Структура из Строка - Данные авторизации. См.ПолучитьСтандартныеПараметры - auth
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Twitter
-Функция СоздатьТекстовыйТвит(Знач Текст, Знач Параметры = "") Экспорт
- Возврат СоздатьПроизвольныйТвит(Текст, , , , Параметры);
-КонецФункции
-
-// Создать твит картинки
-// Создает твит с картинкой вложением
-//
-// Параметры:
-// Текст - Строка - Текст твита - text
-// МассивКартинок - Массив из Строка,ДвоичныеДанные - Массив файлов картинок - pictures
-// Параметры - Структура из Строка - Данные авторизации. См.ПолучитьСтандартныеПараметры - auth
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Twitter
-Функция СоздатьТвитКартинки(Знач Текст, Знач МассивКартинок, Знач Параметры = "") Экспорт
-
- МассивМедиа = ЗагрузитьМассивВложений(МассивКартинок, "tweet_image", Параметры);
-
- Если ТипЗнч(МассивМедиа) = Тип("Массив") Тогда
- Результат = СоздатьПроизвольныйТвит(Текст, МассивМедиа, , , Параметры);
- Иначе
- Результат = МассивМедиа;
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-// Создать твит гифки
-// Создает твит с вложением-гифкой
-//
-// Параметры:
-// Текст - Строка - Текст твита - text
-// МассивГифок - Массив из Строка,ДвоичныеДанные - Массив файлов гифок - gifs
-// Параметры - Структура из Строка - Данные авторизации. См.ПолучитьСтандартныеПараметры - auth
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Twitter
-Функция СоздатьТвитГифки(Знач Текст, Знач МассивГифок, Знач Параметры = "") Экспорт
-
- МассивМедиа = ЗагрузитьМассивВложений(МассивГифок, "tweet_gif", Параметры);
-
- Если ТипЗнч(МассивМедиа) = Тип("Массив") Тогда
- Результат = СоздатьПроизвольныйТвит(Текст, МассивМедиа, , , Параметры);
- Иначе
- Результат = МассивМедиа;
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-// Создать твит видео
-// Создает твит с видеовложением
-//
-// Параметры:
-// Текст - Строка - Текст твита - text
-// МассивВидео - Массив из Строка,ДвоичныеДанные - Массив файлов видео - videos
-// Параметры - Структура из Строка - Данные авторизации. См.ПолучитьСтандартныеПараметры - auth
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Twitter
-Функция СоздатьТвитВидео(Знач Текст, Знач МассивВидео, Знач Параметры = "") Экспорт
-
- МассивМедиа = ЗагрузитьМассивВложений(МассивВидео, "tweet_video", Параметры);
-
- Если ТипЗнч(МассивМедиа) = Тип("Массив") Тогда
- Результат = СоздатьПроизвольныйТвит(Текст, МассивМедиа, , , Параметры);
- Иначе
- Результат = МассивМедиа;
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-// Создать твит опрос
-// Создает твит с опросом
-//
-// Параметры:
-// Текст - Строка - Текст твита - text
-// МассивВариантов - Массив из Строка - Массив вариантов опроса - options
-// Длительность - Строка,Число - Длительность опроса - duration
-// Параметры - Структура из Строка - Данные авторизации. См.ПолучитьСтандартныеПараметры - auth
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Twitter
-Функция СоздатьТвитОпрос(Знач Текст, Знач МассивВариантов, Знач Длительность, Знач Параметры = "") Экспорт
-
- Возврат СоздатьПроизвольныйТвит(Текст, , МассивВариантов, Длительность, Параметры);
-
-КонецФункции
-
-// Загрузить массив вложений
-// Загружает файлы на сервер и возвращает их ID
-//
-// Параметры:
-// МассивФайлов - Массив из Строка, ДвоичныеДанные - Массив файлов для загрузки - files
-// ТипВложений - Строка - Тип вложений: tweet_video, tweet_image, tweet_gif - type
-// Параметры - Структура из Строка - Данные авторизации. См.ПолучитьСтандартныеПараметры - auth
-//
-// Возвращаемое значение:
-// Массив Из Строка - Массив ID медиа
-Функция ЗагрузитьМассивВложений(Знач МассивФайлов, Знач ТипВложений, Знач Параметры = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(ТипВложений);
- OPI_ПреобразованиеТипов.ПолучитьКоллекцию(МассивФайлов);
-
- МассивМедиа = Новый Массив;
- Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
- MIS = "media_id_string";
-
- Если ЗначениеЗаполнено(МассивФайлов) Тогда
-
- Для Каждого ФайлОтправки Из МассивФайлов Цикл
-
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(ФайлОтправки);
-
- Ответ = ЗагрузитьМедиафайл(ФайлОтправки, ТипВложений, Параметры_);
- IDМедиа = Ответ[MIS];
-
- Если Не ЗначениеЗаполнено(IDМедиа) Тогда
- Возврат Ответ;
- КонецЕсли;
-
- МассивМедиа.Добавить(IDМедиа);
-
- КонецЦикла;
-
- КонецЕсли;
-
- Возврат МассивМедиа;
-
-КонецФункции
-
-#КонецОбласти
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-Функция ЗагрузитьМедиафайл(Знач Файл, Знач Тип, Знач Параметры)
-
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Файл);
-
- ВидЗапроса = "POST";
- Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
- URL = "https://upload.twitter.com/1.1/media/upload.json";
-
- Ответ = ЗагрузитьМедиаЧастями(Файл, Тип, ВидЗапроса, URL, Параметры_);
-
- Возврат Ответ;
-
-КонецФункции
-
-Функция ЗагрузитьМедиаЧастями(Знач Файл, Знач Тип, Знач ВидЗапроса, Знач URL, Параметры)
-
- Единица = 1024;
- Количество = 4;
- MID = "media_id";
- MIS = "media_id_string";
- Command = "command";
- Размер = Файл.Размер();
-
- РазмерЧасти = Количество * Единица * Единица;
- МассивЧтения = РазделитьДвоичныеДанные(Файл, РазмерЧасти);
-
- Поля = Новый Структура;
- Поля.Вставить(Command , "INIT");
- Поля.Вставить("total_bytes" , OPI_Инструменты.ЧислоВСтроку(Размер));
- Поля.Вставить("media_category", Тип);
-
- ОтветИнициализации = Post(URL, Поля, Параметры);
- IDИнициализации = ОтветИнициализации[MID];
- IDSИнициализации = ОтветИнициализации[MIS];
-
- Если Не ЗначениеЗаполнено(IDSИнициализации) Или Не ЗначениеЗаполнено(IDИнициализации) Тогда
- Возврат ОтветИнициализации;
- КонецЕсли;
-
- Счетчик = 0;
-
- Для Каждого Часть Из МассивЧтения Цикл
-
- Поля = Новый Структура;
- Поля.Вставить(Command , "APPEND");
- Поля.Вставить(MID , IDSИнициализации);
- Поля.Вставить("segment_index", OPI_Инструменты.ЧислоВСтроку(Счетчик));
- Поля.Вставить("media" , Часть);
-
- Ответ = PostMultipart(URL, Поля, Параметры);
-
- Счетчик = Счетчик + 1;
-
- КонецЦикла;
-
- Поля = Новый Структура;
- Поля.Вставить(Command, "FINALIZE");
- Поля.Вставить(MID , IDSИнициализации);
-
- СтатусОбработки = ПолучитьСтатусОбработки(Параметры, Поля, URL);
-
- Если Не ТипЗнч(СтатусОбработки) = Тип("Строка") Тогда
- Возврат СтатусОбработки;
- КонецЕсли;
-
- Ответ = ОжидатьЗавершенияОбработки(СтатусОбработки, IDSИнициализации, URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-Функция ОжидатьЗавершенияОбработки(Знач СтатусОбработки, Знач IDИнициализации, Знач URL, Знач Параметры)
-
- ProcessingInfo = "processing_info";
- Command = "command";
- Поля = Новый Структура;
-
- Поля.Вставить(Command , "STATUS");
- Поля.Вставить("media_id", IDИнициализации);
-
- Пока Строка(СтатусОбработки) = "pending" Или Строка(СтатусОбработки) = "in_progress" Цикл
-
- Ответ = Get(URL, Поля, Параметры);
- Информация = Ответ[ProcessingInfo];
-
- Если Не ЗначениеЗаполнено(Информация) Тогда
- Возврат Ответ;
- КонецЕсли;
-
- СтатусОбработки = Информация["state"];
-
- Если Не ЗначениеЗаполнено(СтатусОбработки) Тогда
- Возврат Ответ;
- КонецЕсли;
-
- КонецЦикла;
-
- Если СтатусОбработки = "failed" Тогда
- ВызватьИсключение "Твиттер не смог обработать загруженное вами видео";
- КонецЕсли;
-
- Возврат Ответ;
-
-КонецФункции
-
-Функция ПолучитьСтандартныеПараметры(Знач Параметры = "")
-
- // Здесь собрано определение данных, необходимых для работы.
- // Для Twitter это довольно значительный набор, что обсуловлено наличием сразу 2-х API,
- // которые, при этом, созданы не для разныз задач, но просто являются версиями друг друга.
- // Актуальной версией API является v2 и она требует получения временных токенов. Несмотря на то,
- // что Twitter настаивает на использовании этой актуальной версии, они как-то умудрились не перенести
- // механизм загрузки файлов и некоторые другие из старой версии - v1.1. Поэтому что-то нужно делать
- // на версии 1.1, а что-то на 2: вплоть до того что они убрали возможность постить твиты из v1.1,
- // но только через нее в твит можно добавить картинку. При этом способы авторизации и токены у них разные
-
- // Мировая гигокорпорация Илона Маска, кстати, напоминаю ;)
-
- // P.S Далее часто упоминается "страница настроек Twitter Developer" - это
- // https://developer.twitter.com/en/portal/dashboard и выбор конкретного проекта из списка (значек c ключем)
-
- Параметры_ = Новый Соответствие;
- Разрешения = "tweet.read tweet.write tweet.moderate.write users.read "
- + "follows.read follows.write offline.access space.read mute.read "
- + "mute.write like.read like.write list.read list.write block.read "
- + "block.write bookmark.read bookmark.write";
-
- // Данные для API v2
-
- // redirect_uri - URL вашего http-сервиса (или другого обработчика запросов) для авторизации
- // scope - набор разрешений для получаемого ключа. Может быть любой, но offline.access обязателен
- // client_id - Из OAuth 2.0 Client ID and Client Secret страницы настроек Twitter Developer
- // client_secret - Из OAuth 2.0 Client ID and Client Secret страницы настроек Twitter Developer
- // access_token - ПолучитьСсылкуАвторизации() -> Браузер -> code придет на redirect_uri -> ПолучитьТокен(code)
- // refresh_token - Приходит вместе с access_token и используется для его обновления (время жизни access_token - 2 ч)
- // Обновление происходит методом ОбновитьТокен с новыми access_token и refresh_token.
- // При следующем обновлении нужно использовать уже новый refresh_token, так что захардкодить
- // не получится (access_token тоже не получится)
-
- // |--> ОбновитьТокен() ->|access_token --> Используется в т-нии 2-х часов для запросов
- // | |refresh_token --|
- // |--------[через 2 ч.]-------------------|
-
- // Данные для API v1.1
-
- // oauth_token - Из Authentication Tokens -> Access Token and Secret страницы настроек Twitter Developer
- // oauth_token_secret - Из Authentication Tokens -> Access Token and Secret страницы настроек Twitter Developer
- // oauth_consumer_key - Из Consumer Keys -> Access Token and Secret страницы настроек Twitter Developer
- // oauth_consumer_secret - Из Consumer Keys -> Access Token and Secret страницы настроек Twitter Developer
-
- // Эти токены обновлять не надо
-
- Параметры_.Вставить("redirect_uri" , "");
- Параметры_.Вставить("scope" , Разрешения);
- Параметры_.Вставить("client_id" , "");
- Параметры_.Вставить("client_secret" , "");
- Параметры_.Вставить("access_token" , ""); // Должно быть нечто вроде Константы.TwitterToken.Получить()
- Параметры_.Вставить("refresh_token" , ""); // Должно быть нечто вроде Константы.TwitterRefresh.Получить()
- Параметры_.Вставить("oauth_token" , "");
- Параметры_.Вставить("oauth_token_secret" , "");
- Параметры_.Вставить("oauth_consumer_key" , "");
- Параметры_.Вставить("oauth_consumer_secret", "");
-
- OPI_ПреобразованиеТипов.ПолучитьКоллекцию(Параметры);
-
- Если ТипЗнч(Параметры) = Тип("Структура") Или ТипЗнч(Параметры) = Тип("Соответствие") Тогда
- Для Каждого ПереданныйПараметр Из Параметры Цикл
- Параметры_.Вставить(ПереданныйПараметр.Ключ, OPI_Инструменты.ЧислоВСтроку(ПереданныйПараметр.Значение));
- КонецЦикла;
- КонецЕсли;
-
- Возврат Параметры_;
-
-КонецФункции
-
-Функция ПолучитьСтатусОбработки(Знач Параметры, Знач Поля, Знач URL)
-
- ProcessingInfo = "processing_info";
-
- Ответ = Post(URL, Поля, Параметры);
- Информация = Ответ[ProcessingInfo];
-
- Если Не ЗначениеЗаполнено(Информация) Тогда
- Возврат Ответ;
- КонецЕсли;
-
- СтатусОбработки = Информация["state"];
-
- Если Не ЗначениеЗаполнено(СтатусОбработки) Тогда
- Возврат Ответ;
- Иначе
- Возврат СтатусОбработки;
- КонецЕсли;
-
-КонецФункции
-
-Функция Get(Знач URL, Знач Поля, Знач УчетныеДанные)
-
- Токен = УчетныеДанные["oauth_token"];
- Секрет = УчетныеДанные["oauth_token_secret"];
- КлючПользователя = УчетныеДанные["oauth_consumer_key"];
- СекретПользователя = УчетныеДанные["oauth_consumer_secret"];
- Версия = "1.0";
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать(URL)
- .УстановитьПараметрыURL(Поля)
- .ДобавитьOauthV1Авторизацию(Токен, Секрет, КлючПользователя, СекретПользователя, Версия)
- .УстановитьАлгоритмOAuthV1("HMAC", "SHA1")
- .ОбработатьЗапрос("GET")
- .ВернутьОтветКакJSONКоллекцию(Истина, Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Post(Знач URL, Знач Поля, Знач УчетныеДанные, Знач JSON = Ложь, Знач ЭтоV2 = Ложь)
-
- Токен = УчетныеДанные["oauth_token"];
- Секрет = УчетныеДанные["oauth_token_secret"];
- КлючПользователя = УчетныеДанные["oauth_consumer_key"];
- СекретПользователя = УчетныеДанные["oauth_consumer_secret"];
- Версия = "1.0";
-
- HttpКлиент = OPI_ЗапросыHTTP.НовыйЗапрос().Инициализировать(URL);
-
- Если ЭтоV2 Тогда
-
- HttpКлиент.ДобавитьЗаголовок("Authorization", "Bearer " + УчетныеДанные["access_token"]);
-
- Иначе
-
- ДействиеСВложениями = OPI_Инструменты.ПолеКоллекцииСуществует(Поля, "media");
-
- HttpКлиент.ДобавитьOauthV1Авторизацию(Токен, Секрет, КлючПользователя, СекретПользователя, Версия)
- .УстановитьАлгоритмOAuthV1("HMAC", "SHA1")
- .ИспользоватьПоляТелаВOAuth(Не ДействиеСВложениями);
-
- КонецЕсли;
-
- Если JSON Тогда
- HttpКлиент.УстановитьJsonТело(Поля);
- Иначе
- HttpКлиент.УстановитьFormТело(Поля);
- КонецЕсли;
-
- Возврат HttpКлиент.ОбработатьЗапрос("POST").ВернутьОтветКакJSONКоллекцию(Истина, Истина);
-
-КонецФункции
-
-Функция PostMultipart(Знач URL, Знач Поля, Знач УчетныеДанные)
-
- Токен = УчетныеДанные["oauth_token"];
- Секрет = УчетныеДанные["oauth_token_secret"];
- КлючПользователя = УчетныеДанные["oauth_consumer_key"];
- СекретПользователя = УчетныеДанные["oauth_consumer_secret"];
- Версия = "1.0";
-
- HttpКлиент = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать(URL)
- .НачатьЗаписьТелаMultipart()
- .ДобавитьOauthV1Авторизацию(Токен, Секрет, КлючПользователя, СекретПользователя, Версия)
- .УстановитьАлгоритмOAuthV1("HMAC", "SHA1")
- .ИспользоватьПоляТелаВOAuth(Ложь);
-
- Для Каждого Параметр Из Поля Цикл
- HttpКлиент.ДобавитьПолеMultipartFormData(Параметр.Ключ, Параметр.Значение);
- КонецЦикла;
-
- Результат = HttpКлиент.ОбработатьЗапрос("POST").ВернутьОтветКакJSONКоллекцию(Истина, Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-#КонецОбласти
diff --git a/XML/CommonModules/OPI_VK.xml b/XML/CommonModules/OPI_VK.xml
deleted file mode 100644
index b073352528..0000000000
--- a/XML/CommonModules/OPI_VK.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- OPI_VK
-
-
- ru
- VK (ОПИ)
-
-
- Модуль для работы с VK из набора ОПИ
- false
- false
- true
- true
- true
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git a/XML/CommonModules/OPI_VK/Ext/Module.bsl b/XML/CommonModules/OPI_VK/Ext/Module.bsl
deleted file mode 100644
index 4b4877c7ec..0000000000
--- a/XML/CommonModules/OPI_VK/Ext/Module.bsl
+++ /dev/null
@@ -1,2203 +0,0 @@
-// OneScript: ./OInt/core/Modules/OPI_VK.os
-// Lib: VK
-// CLI: vk
-// Keywords: vk, vkontakte
-
-// MIT License
-
-// Copyright (c) 2023-2025 Anton Tsitavets
-
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-
-// The above copyright notice and this permission notice shall be included in all
-// copies or substantial portions of the Software.
-
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-// SOFTWARE.
-
-// https://github.com/Bayselonarrend/OpenIntegrations
-// Если в не знаете с чего начать, то стоит найти метод ПолучитьСтандартныеПараметры()
-// и почитать комментарии
-
-// BSLLS:NumberOfOptionalParams-off
-// BSLLS:LatinAndCyrillicSymbolInWord-off
-// BSLLS:IncorrectLineBreak-off
-// BSLLS:NumberOfOptionalParams-off
-// BSLLS:UsingServiceTag-off
-// BSLLS:UnusedLocalVariable-off
-// BSLLS:UsingSynchronousCalls-off
-// BSLLS:MagicNumber-off
-
-//@skip-check method-too-many-params
-//@skip-check wrong-string-literal-content
-//@skip-check module-structure-top-region
-//@skip-check module-structure-method-in-regions
-//@skip-check wrong-string-literal-content
-
-#Область ПрограммныйИнтерфейс
-
-#Область ПолучениеТокена
-
-// Создать ссылку получения токена
-// Получение ссылки для интерактивного получения токена (access_token), который необходим
-// для дальнейших действий
-//
-// Параметры:
-// app_id - Строка,Число - app_id из настроек приложения - app
-//
-// Возвращаемое значение:
-// Строка - URL, по которому необходимо перейти в браузере
-Функция СоздатьСсылкуПолученияТокена(Знач App_id) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(App_id);
-
- // access_token нужно будет забрать из параметра в строке адреса браузера
- Возврат "https://oauth.vk.com/authorize?client_id=" + App_id
- + "&scope=offline,wall,groups,photos,stats,stories,ads,market,video"
- + "&v=5.131&response_type=token&redirect_uri=https://api.vk.com/blank.html";
-
-КонецФункции
-
-#КонецОбласти
-
-#Область РаботаСГруппой
-
-// Создать пост
-// Создает пост с картинками
-//
-// Параметры:
-// Текст - Строка - Текст поста - text
-// МассивКартинок - Массив из Строка,ДвоичныеДанные - Массив картинок - pictures
-// Реклама - Булево - Признак ""Это реклама"" - ad
-// СсылкаПодЗаписью - Строка - Ссылка (URL) под записью - url
-// Параметры - Структура из Строка - См.ПолучитьСтандартныеПараметры - auth - JSON авторизации или путь к .json
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
-Функция СоздатьПост(Знач Текст
- , Знач МассивКартинок
- , Знач Реклама = Ложь
- , Знач СсылкаПодЗаписью = ""
- , Знач Параметры = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьКоллекцию(МассивКартинок);
-
- Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
- МассивВложений = Новый Массив;
-
- Для Каждого КартинкаПоста Из МассивКартинок Цикл
-
- Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
- ОтветСоответствие = ПолучитьСоответствиеКартинки(КартинкаПоста, Параметры_, "Пост");
-
- OwnerId = ОтветСоответствие.Получить("owner_id");
- ObjectId = ОтветСоответствие.Получить("id");
-
- Если Не ЗначениеЗаполнено(OwnerId) Или Не ЗначениеЗаполнено(ObjectId) Тогда
- Возврат ОтветСоответствие;
- КонецЕсли;
-
- OwnerId = OPI_Инструменты.ЧислоВСтроку(OwnerId);
- ObjectId = OPI_Инструменты.ЧислоВСтроку(ObjectId);
-
- ФотоID = "photo" + OwnerId + "_" + ObjectId;
-
- МассивВложений.Добавить(ФотоID);
-
- КонецЦикла;
-
- Ответ = СоздатьСоставнойПост(Текст, МассивВложений, Реклама, СсылкаПодЗаписью, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Создать составной пост
-// Создает пост на основе массива идетификаторов объектов (картинок, видео и др.)
-//
-// Параметры:
-// Текст - Строка - Текст поста - text
-// Объекты - Массив из Строка - Массив идентификаторов вида photo123_123 - objects
-// Реклама - Булево - Признак ""Это реклама"" - ad
-// СсылкаПодЗаписью - Строка - Ссылка (URL) под записью - url
-// Параметры - Структура из Строка - См.ПолучитьСтандартныеПараметры - auth - JSON авторизации или путь к .json
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
-Функция СоздатьСоставнойПост(Знач Текст
- , Знач Объекты
- , Знач Реклама = Ложь
- , Знач СсылкаПодЗаписью = ""
- , Знач Параметры = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(СсылкаПодЗаписью);
- OPI_ПреобразованиеТипов.ПолучитьБулево(Реклама);
- OPI_ПреобразованиеТипов.ПолучитьМассив(Объекты);
-
- Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
- СтрокаВложений = СтрСоединить(Объекты, ",");
- СтрокаВложений = СтрокаВложений + СсылкаПодЗаписью;
- РекламаЧисло = ?(Реклама, 1, 0);
-
- OPI_Инструменты.ДобавитьПоле("message" , Текст , "Строка", Параметры_);
- OPI_Инструменты.ДобавитьПоле("attachments" , СтрокаВложений, "Строка", Параметры_);
- OPI_Инструменты.ДобавитьПоле("mark_as_ads" , РекламаЧисло , "Число" , Параметры_);
- OPI_Инструменты.ДобавитьПоле("close_comments", РекламаЧисло , "Число" , Параметры_);
-
- Ответ = OPI_ЗапросыHTTP.Get("api.vk.com/method/wall.post", Параметры_);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Удалить пост
-// Удаляет пост по id
-//
-// Параметры:
-// IDПоста - Строка,Число - ID поста - post
-// Параметры - Структура из Строка - См.ПолучитьСтандартныеПараметры - auth - JSON авторизации или путь к .json
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
-Функция УдалитьПост(Знач IDПоста, Знач Параметры = "") Экспорт
-
- Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
- OPI_Инструменты.ДобавитьПоле("post_id", IDПоста, "Строка", Параметры_);
-
- Ответ = OPI_ЗапросыHTTP.Get("api.vk.com/method/wall.delete", Параметры_);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Создать опрос
-// Создает опрос с вариантами ответа
-//
-// Параметры:
-// Вопрос - Строка - Вопрос опроса - question
-// МассивОтветов - Массив из Строка - Массив вариантов ответа - options
-// Картинка - Строка, ДвоичныеДанные - Картинка опроса. Обязательна, если нет текста - picture
-// Текст - Строка - Текст поста. Обязателен, если нет картинки - text
-// Параметры - Структура из Строка - См.ПолучитьСтандартныеПараметры - auth
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
-Функция СоздатьОпрос(Знач Вопрос, Знач МассивОтветов, Знач Картинка = "", Знач Текст = "", Знач Параметры = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Вопрос);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Текст);
- OPI_ПреобразованиеТипов.ПолучитьКоллекцию(МассивОтветов);
-
- Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
- Response_ = "response";
-
- Параметры_.Вставить("is_anonymous", 1);
- Параметры_.Вставить("is_multiple" , 0);
-
- Ответы = СтрСоединить(МассивОтветов, """,""");
- Ответы = "[""" + Ответы + """]";
-
- Параметры_.Вставить("add_answers", Ответы);
- Параметры_.Вставить("question" , Вопрос);
-
- Опрос = OPI_ЗапросыHTTP.Get("api.vk.com/method/polls.create", Параметры_);
- ОпросСоответствие = Опрос.Получить(Response_);
-
- Если Не ЗначениеЗаполнено(ОпросСоответствие) Тогда
- Возврат Опрос;
- КонецЕсли;
-
- OwnerId = ОпросСоответствие.Получить("owner_id");
- ObjectId = ОпросСоответствие.Получить("id");
-
- Если Не ЗначениеЗаполнено(OwnerId) Или Не ЗначениеЗаполнено(ObjectId) Тогда
- Возврат Опрос;
- КонецЕсли;
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(OwnerId);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(ObjectId);
-
- МассивВложений = Новый Массив;
-
- ОпросID = СтрШаблон("poll%1_%2", OwnerId, ObjectId);
- МассивВложений.Добавить(ОпросID);
-
- Если ЗначениеЗаполнено(Картинка) Тогда
-
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка);
-
- ОтветСоответствие = ПолучитьСоответствиеКартинки(Картинка, Параметры_, "Пост");
-
- OwnerId = ОтветСоответствие.Получить("owner_id");
- ObjectId = ОтветСоответствие.Получить("id");
-
- Если Не ЗначениеЗаполнено(OwnerId) Или Не ЗначениеЗаполнено(ObjectId) Тогда
- Возврат ОтветСоответствие;
- КонецЕсли;
-
- OwnerId = OPI_Инструменты.ЧислоВСтроку(OwnerId);
- ObjectId = OPI_Инструменты.ЧислоВСтроку(ObjectId);
-
- ФотоID = "photo" + OwnerId + "_" + ObjectId;
-
- МассивВложений.Добавить(ФотоID);
-
- КонецЕсли;
-
- Если ЗначениеЗаполнено(Текст) Тогда
- Параметры_.Вставить("message", Текст);
- КонецЕсли;
-
- Параметры_.Вставить("attachments", СтрСоединить(МассивВложений, ","));
-
- Ответ = OPI_ЗапросыHTTP.Get("api.vk.com/method/wall.post", Параметры_);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Создать альбом
-// Создает альбом для хранения картинок
-//
-// Параметры:
-// Наименование - Строка - Наименование альбома - title
-// Описание - Строка - Описание альбома - description
-// Параметры - Структура из Строка - См.ПолучитьСтандартныеПараметры - auth - JSON авторизации или путь к .json
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
-Функция СоздатьАльбом(Знач Наименование, Знач Описание = "", Знач Параметры = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Наименование);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Описание);
-
- Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
-
- Параметры_.Вставить("title" , Наименование);
- Параметры_.Вставить("description" , Описание);
- Параметры_.Вставить("upload_by_admins_only", 1);
-
- Ответ = OPI_ЗапросыHTTP.Get("api.vk.com/method/photos.createAlbum", Параметры_);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Удалить альбом
-// Удаляет ранее созданный альбом
-//
-// Параметры:
-// IDАльбома - Строка,Число - ID альбома - album
-// Параметры - Структура из Строка - См.ПолучитьСтандартныеПараметры - auth - JSON авторизации или путь к .json
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
-Функция УдалитьАльбом(Знач IDАльбома, Знач Параметры = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(IDАльбома);
-
- Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
- Параметры_.Вставить("album_id", OPI_Инструменты.ЧислоВСтроку(IDАльбома));
-
- Ответ = OPI_ЗапросыHTTP.Get("api.vk.com/method/photos.deleteAlbum", Параметры_);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Создать историю
-// Создает историю из картинки
-//
-// Параметры:
-// Картинка - Строка,ДвоичныеДанные - Фон истории - picture
-// URL - Строка - URL для кнопки под историей - url
-// Параметры - Структура из Строка - См.ПолучитьСтандартныеПараметры - auth - JSON авторизации или путь к .json
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
-Функция СоздатьИсторию(Знач Картинка, Знач URL = "", Знач Параметры = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(URL);
-
- Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
- Параметры_.Вставить("link_text" , "more");
- Параметры_.Вставить("link_url" , URL);
- Параметры_.Вставить("add_to_news", "1");
-
- Ответ = ЗагрузитьФотоНаСервер(Картинка, Параметры_, "История");
- Возврат Ответ;
-
-КонецФункции
-
-// Сохранить картинку в альбом
-// Сохраняет картинку в альбом сообщества
-//
-// Параметры:
-// IDАльбома - Строка,Число - ID альбома - album
-// Картинка - ДвоичныеДанные,Строка - Файл картинки - picture
-// Описание - Строка - Описание картинки - description
-// Параметры - Структура из Строка - См.ПолучитьСтандартныеПараметры - auth - JSON авторизации или путь к .json
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
-Функция СохранитьКартинкуВАльбом(Знач IDАльбома, Знач Картинка, Знач Описание = "", Знач Параметры = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(IDАльбома);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Описание);
-
- Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
-
- Параметры_.Вставить("album_id", IDАльбома);
- Параметры_.Вставить("caption" , Описание);
-
- Возврат ЗагрузитьФотоНаСервер(Картинка, Параметры_, "Альбом");
-
-КонецФункции
-
-// Удалить картинку
-// Удалить картинку из альбома
-//
-// Параметры:
-// IDКартинки - Строка,Число - ID картинки - pictureid
-// Параметры - Структура из Строка - См.ПолучитьСтандартныеПараметры - auth - JSON авторизации или путь к .json
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
-Функция УдалитьКартинку(Знач IDКартинки, Знач Параметры = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(IDКартинки);
-
- Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
- Параметры_.Вставить("photo_id", IDКартинки);
-
- Ответ = OPI_ЗапросыHTTP.Get("api.vk.com/method/photos.delete", Параметры_);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Загрузить видео на сервер
-// Загружает видео в группу с возможностью его дальнейшего использования
-//
-// Параметры:
-// Видео - Строка, ДвоичныеДанные - Файл видео - file
-// Наименование - Строка - Наименование видео - title
-// Описание - Строка - Описание видео - description
-// Альбом - Строка - ID альбома, если необходимо - album
-// Параметры - Структура из Строка - См.ПолучитьСтандартныеПараметры - auth - JSON авторизации или путь к .json
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
-Функция ЗагрузитьВидеоНаСервер(Знач Видео
- , Знач Наименование
- , Знач Описание = ""
- , Знач Альбом = ""
- , Знач Параметры = "") Экспорт
-
- Строка_ = "Строка";
- Параметры = ПолучитьСтандартныеПараметры(Параметры);
-
- OPI_Инструменты.ДобавитьПоле("name" , Наименование, Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("description", Описание , Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("album_id" , Альбом , Строка_, Параметры);
-
- Ответ = OPI_ЗапросыHTTP.Get("api.vk.com/method/video.save", Параметры);
-
- Результат = Ответ["response"];
-
- Если Не ЗначениеЗаполнено(Результат) Тогда
- Возврат Ответ;
- КонецЕсли;
-
- URL = Результат["upload_url"];
-
- Если Не ЗначениеЗаполнено(URL) Тогда
- Возврат Ответ;
- КонецЕсли;
-
- СоответствиеФайлов = Новый Соответствие;
- OPI_Инструменты.ДобавитьПоле("video_file.mp4", Видео, "ДвоичныеДанные", СоответствиеФайлов);
-
- РазмерДанных = СоответствиеФайлов["video_file.mp4"].Размер();
- РазмерДанных = OPI_Инструменты.ЧислоВСтроку(РазмерДанных);
-
- Ответ = OPI_ЗапросыHTTP.PostMultipart(URL, , СоответствиеФайлов, "video/mp4");
-
- Возврат Ответ;
-
-КонецФункции
-
-// Загрузить фото на сервер
-// Загружает фото на сервер для его дальнейшего использования
-//
-// Параметры:
-// Картинка - Строка, ДвоичныеДанные - Файл картинки - file
-// Параметры - Структура из Строка - См.ПолучитьСтандартныеПараметры - auth - JSON авторизации или путь к .json
-// Вид - Строка - Вид загрузки (Пост, Товар, История, Опрос, Прочее) - type
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
-Функция ЗагрузитьФотоНаСервер(Знач Картинка, Знач Параметры = "", Знач Вид = "Пост") Экспорт
-
- Параметры = ПолучитьСтандартныеПараметры(Параметры);
- Метод = ОпределитьМетодЗагрузкиИзображений(Вид);
- Файлы = Новый Соответствие;
-
- Response_ = "response";
- URL = "api.vk.com/method/";
- Загрузка = URL + Метод["Загрузка"];
- Сохранение = URL + Метод["Сохранение"];
-
- Если ТипЗнч(Картинка) = Тип("Строка") Тогда
- КлючКартинка = СтрЗаменить(Картинка, ".", "___");
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка);
- Иначе
- КлючКартинка = "image___jpeg";
- КонецЕсли;
-
- Файлы.Вставить(КлючКартинка, Картинка);
-
- Для Н = 1 По 5 Цикл
-
- Ответ = OPI_ЗапросыHTTP.Get(Загрузка, Параметры);
- Результат = Ответ[Response_];
-
- Если ЗначениеЗаполнено(Результат) Тогда
-
- URL = Результат["upload_url"];
-
- Если Не ЗначениеЗаполнено(URL) Тогда
- Возврат Ответ;
- КонецЕсли;
-
- Иначе
- Возврат Ответ;
- КонецЕсли;
-
- Параметры.Вставить("upload_url", URL);
- Ответ = OPI_ЗапросыHTTP.PostMultipart(URL, Параметры, Файлы);
-
- Если ТипЗнч(Ответ) = Тип("Соответствие") Тогда
- Прервать;
- КонецЕсли;
-
- КонецЦикла;
-
- Если ТипЗнч(Ответ) <> Тип("Соответствие") Тогда
- Возврат ПолучитьСтрокуИзДвоичныхДанных(Ответ);
- КонецЕсли;
-
- ЗаполнитьПараметрыЗагрузкиФото(Метод, Ответ, Параметры);
-
- Ответ = OPI_ЗапросыHTTP.Get(Сохранение, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область РаботаСОбсуждениями
-
-// Создать обсуждение
-// Создает новое обсуждение
-//
-// Параметры:
-// Наименование - Строка - Наименование обсуждения - title
-// ТекстПервогоСообщения - Строка - Текст первого сообщения - text
-// Параметры - Структура из Строка - См.ПолучитьСтандартныеПараметры - auth - JSON авторизации или путь к .json
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
-Функция СоздатьОбсуждение(Знач Наименование, Знач ТекстПервогоСообщения, Знач Параметры = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Наименование);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(ТекстПервогоСообщения);
-
- Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
- Параметры_.Вставить("title", Наименование);
- Параметры_.Вставить("text" , ТекстПервогоСообщения);
-
- Ответ = OPI_ЗапросыHTTP.Get("api.vk.com/method/board.addTopic", Параметры_);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Закрыть обсуждение
-// Закрывает или удаляет обсуждение
-//
-// Параметры:
-// IDОбсуждения - Строка,Число - ID обсуждения - topic
-// УдалитьПолностью - Булево - Удалить полностью (Истина) или закрыть - remove
-// Параметры - Структура из Строка - См.ПолучитьСтандартныеПараметры - auth - JSON авторизации или путь к .json
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
-Функция ЗакрытьОбсуждение(Знач IDОбсуждения, Знач УдалитьПолностью = Ложь, Знач Параметры = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(IDОбсуждения);
- OPI_ПреобразованиеТипов.ПолучитьБулево(УдалитьПолностью);
-
- Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
- Параметры_.Вставить("topic_id", IDОбсуждения);
-
- Метод = ?(УдалитьПолностью, "deleteTopic", "closeTopic");
- Ответ = OPI_ЗапросыHTTP.Get("api.vk.com/method/board." + Метод, Параметры_);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Открыть обсуждение
-// Открывает ранее закрытое обсуждение
-//
-// Параметры:
-// IDОбсуждения - Строка,Число - ID обсуждения - topic
-// Параметры - Структура из Строка - См.ПолучитьСтандартныеПараметры - auth - JSON авторизации или путь к .json
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
-Функция ОткрытьОбсуждение(Знач IDОбсуждения, Знач Параметры = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(IDОбсуждения);
-
- Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
- Параметры_.Вставить("topic_id", IDОбсуждения);
-
- Ответ = OPI_ЗапросыHTTP.Get("api.vk.com/method/board.openTopic", Параметры_);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Написать в обсуждение
-// Добавляет сообщение в обсуждение от имени группы
-//
-// Параметры:
-// IDОбсуждения - Строка,Число - ID обсуждения - topic
-// Текст - Строка - Текст сообщения - text
-// Параметры - Структура из Строка - См.ПолучитьСтандартныеПараметры - auth - JSON авторизации или путь к .json
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
-Функция НаписатьВОбсуждение(Знач IDОбсуждения, Знач Текст, Знач Параметры = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(IDОбсуждения);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Текст);
-
- Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
- Параметры_.Вставить("topic_id", IDОбсуждения);
- Параметры_.Вставить("message" , Текст);
-
- Ответ = OPI_ЗапросыHTTP.Get("api.vk.com/method/board.createComment", Параметры_);
-
- Возврат Ответ;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область ИнтерактивныеДействия
-
-// Поставить лайк
-// Ставит лайк на пост
-//
-// Параметры:
-// IDПоста - Строка,Число - ID поста - post
-// IDСтены - Строка,Число - ID стены расположения поста - wall
-// Параметры - Структура из Строка - См.ПолучитьСтандартныеПараметры - auth - JSON авторизации или путь к .json
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
-Функция ПоставитьЛайк(Знач IDПоста, Знач IDСтены = "", Знач Параметры = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(IDПоста);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(IDСтены);
-
- Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
- IDСтены = ?(ЗначениеЗаполнено(IDСтены), IDСтены, Параметры_["owner_id"]);
- ОбъектВК = "wall" + IDСтены + "_" + OPI_Инструменты.ЧислоВСтроку(IDПоста);
-
- Параметры_.Вставить("type" , "post");
- Параметры_.Вставить("object" , ОбъектВК);
- Параметры_.Вставить("item_id" , OPI_Инструменты.ЧислоВСтроку(IDПоста));
- Параметры_.Вставить("owner_id" , OPI_Инструменты.ЧислоВСтроку(IDСтены));
- Параметры_.Вставить("from_group" , 0);
-
- Ответ = OPI_ЗапросыHTTP.Get("api.vk.com/method/likes.add", Параметры_);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Сделать репост
-// Делает репост записи
-//
-// Параметры:
-// IDПоста - Строка,Число - ID поста - post
-// IDСтены - Строка,Число - ID стены расположения поста - from
-// ЦелеваяСтена - Строка,Число - ID целевой стены или группы - to
-// Рекламный - Булево - Признак рекламного поста - ad
-// Параметры - Структура из Строка - См.ПолучитьСтандартныеПараметры - auth - JSON авторизации или путь к .json
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
-Функция СделатьРепост(Знач IDПоста
- , Знач IDСтены = ""
- , Знач ЦелеваяСтена = ""
- , Знач Рекламный = Ложь
- , Знач Параметры = "") Экспорт
-
- Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
- GroupId = Параметры_["group_id"];
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(GroupId);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(IDПоста);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(IDСтены);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(ЦелеваяСтена);
- OPI_ПреобразованиеТипов.ПолучитьБулево(Рекламный);
-
- Источник = ?(ЗначениеЗаполнено(IDСтены), IDСтены, GroupId);
- Приемник = ?(ЗначениеЗаполнено(ЦелеваяСтена), ЦелеваяСтена, GroupId);
-
- Параметры_.Вставить("object" , "wall" + Источник + "_" + OPI_Инструменты.ЧислоВСтроку(IDПоста));
- Параметры_.Вставить("group_id" , СтрЗаменить(Приемник, "-", ""));
- Параметры_.Вставить("mark_as_ads" , ?(Рекламный , 1 , 0));
-
- Ответ = OPI_ЗапросыHTTP.Get("api.vk.com/method/wall.repost", Параметры_);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Написать сообщение
-// Написать сообщение пользователю в диалоге сообщества
-//
-// Параметры:
-// Текст - Строка - Текст сообщения - text
-// IDПользователя - Строка - ID пользователя адресата - user
-// Communitytoken - Строка - Токен бота чата сообщества, котрый можно получить в настройках - ct
-// Клавиатура - Строка - JSON клавиатуры. См.СформироватьКлавиатуру - keyboard
-// Параметры - Структура из Строка - См.ПолучитьСтандартныеПараметры - auth - JSON авторизации или путь к .json
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
-Функция НаписатьСообщение(Знач Текст
- , Знач IDПользователя
- , Знач Communitytoken
- , Знач Клавиатура = ""
- , Знач Параметры = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Текст);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(IDПользователя);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Communitytoken);
- OPI_ПреобразованиеТипов.ПолучитьКоллекцию(Клавиатура);
-
- Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
- Параметры_.Вставить("access_token", Communitytoken);
-
- Параметры_.Вставить("user_id" , IDПользователя);
- Параметры_.Вставить("peer_id" , IDПользователя);
- Параметры_.Вставить("parse_mode" , "Markdown");
- Параметры_.Вставить("random_id" , 0);
- Параметры_.Вставить("message" , Текст);
-
- Если ЗначениеЗаполнено(Клавиатура) Тогда
- Параметры_.Вставить("keyboard", Клавиатура);
- КонецЕсли;
-
- Ответ = OPI_ЗапросыHTTP.Get("api.vk.com/method/messages.send", Параметры_);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Написать комментарий
-// Создает комментарий под выбранной записью
-//
-// Параметры:
-// IDПоста - Строка,Число - ID целевого поста - post
-// IDСтены - Строка,Число - ID стены расположения поста - wall
-// Текст - Строка - Текст комментария - text
-// Параметры - Структура из Строка - См.ПолучитьСтандартныеПараметры - auth - JSON авторизации или путь к .json
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
-Функция НаписатьКомментарий(Знач IDПоста, Знач IDСтены, Знач Текст, Знач Параметры = "") Экспорт
-
- Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
- GroupId = Параметры_["group_id"];
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(GroupId);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(IDПоста);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(IDСтены);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Текст);
-
- Параметры_.Вставить("owner_id" , IDСтены);
- Параметры_.Вставить("from_group" , GroupId);
- Параметры_.Вставить("post_id" , IDПоста);
- Параметры_.Вставить("message" , Текст);
-
- Параметры_.Удалить("group_id");
-
- Ответ = OPI_ЗапросыHTTP.Get("api.vk.com/method/wall.createComment", Параметры_);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Сократить ссылку
-// Создает сокращенный URL из обычного
-//
-// Параметры:
-// URL - Строка - URL для сокращения - url
-// Параметры - Структура из Строка - См.ПолучитьСтандартныеПараметры - auth - JSON авторизации или путь к .json
-//
-// Возвращаемое значение:
-// Строка - Сокращенный URL
-Функция СократитьСсылку(Знач URL, Знач Параметры = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(URL);
-
- Response_ = "response";
- Параметры_ = Новый Структура;
- Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
- Параметры_.Вставить("url", URL);
-
- Ответ = OPI_ЗапросыHTTP.Get("https://api.vk.com/method/utils.getShortLink", Параметры_);
- Результат = Ответ[Response_];
-
- Если ЗначениеЗаполнено(Результат) Тогда
-
- URL = Результат["short_url"];
-
- Если ЗначениеЗаполнено(URL) Тогда
- Возврат URL;
- Иначе
- Возврат Ответ;
- КонецЕсли;
-
- Иначе
- Возврат Ответ;
- КонецЕсли;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область Статистика
-
-// Получить статистику
-// Получает общую статистику сообщества за период
-//
-// Параметры:
-// ДатаНачала - Дата - Дата начала периода - datefrom
-// ДатаОкончания - Дата - Дата окончания периода - dateto
-// Параметры - Структура из Строка - См.ПолучитьСтандартныеПараметры - auth - JSON авторизации или путь к .json
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
-Функция ПолучитьСтатистику(Знач ДатаНачала, Знач ДатаОкончания, Знач Параметры = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьДату(ДатаНачала);
- OPI_ПреобразованиеТипов.ПолучитьДату(ДатаОкончания);
-
- Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
-
- ДатаНачала = OPI_Инструменты.UNIXTime(ДатаНачала);
- ДатаОкончания = OPI_Инструменты.UNIXTime(ДатаОкончания);
-
- Параметры_.Вставить("timestamp_from", ДатаНачала);
- Параметры_.Вставить("timestamp_to" , ДатаОкончания);
- Параметры_.Вставить("stats_groups" , "visitors, reach, activity");
-
- Ответ = OPI_ЗапросыHTTP.Get("api.vk.com/method/stats.get", Параметры_);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить статистику по постам
-// Получает статистику в разрезе постов
-//
-// Параметры:
-// МассивИДПостов - Массив из Строка,Число - Массив ID постов - posts
-// Параметры - Структура из Строка - См.ПолучитьСтандартныеПараметры - auth - JSON авторизации или путь к .json
-//
-// Возвращаемое значение:
-// Массив из Произвольный - Массив данных статистики по постам
-Функция ПолучитьСтатистикуПостов(Знач МассивИДПостов, Знач Параметры = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьКоллекцию(МассивИДПостов);
-
- Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
- МассивОтветов = Новый Массив;
- МассивНабора = Новый Массив;
- МаксимумПостов = 30;
- Response_ = "response";
-
- Для Каждого Пост Из МассивИДПостов Цикл
-
- МассивНабора.Добавить(OPI_Инструменты.ЧислоВСтроку(Пост));
-
- Если МассивНабора.Количество() = МаксимумПостов Тогда
-
- СтрокаНомеров = СтрСоединить(МассивНабора, ",");
- Параметры_.Вставить("post_ids", СтрокаНомеров);
-
- Статистика = OPI_ЗапросыHTTP.Get("api.vk.com/method/stats.getPostReach", Параметры_);
- МассивСтатистики = Статистика[Response_];
-
- Для Каждого ЭлементСтатистики Из МассивСтатистики Цикл
- МассивОтветов.Добавить(ЭлементСтатистики);
- КонецЦикла;
-
- МассивНабора = Новый Массив;
-
- КонецЕсли;
-
- КонецЦикла;
-
- СтрокаНомеров = СтрСоединить(МассивНабора, ",");
- Параметры_.Вставить("post_ids", СтрокаНомеров);
-
- Статистика = OPI_ЗапросыHTTP.Get("api.vk.com/method/stats.getPostReach", Параметры_);
- МассивСтатистики = Статистика[Response_];
-
- Если ТипЗнч(МассивСтатистики) = Тип("Массив") Тогда
- Для Каждого ЭлементСтатистики Из МассивСтатистики Цикл
- МассивОтветов.Добавить(ЭлементСтатистики);
- КонецЦикла;
- КонецЕсли;
-
- Возврат МассивОтветов;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область РаботаСРекламнымКабинетом
-
-// Создать рекламную кампанию
-// Создает кампанию в выбранном рекламном кабинете
-//
-// Параметры:
-// IDКабинета - Строка,Число - ID рекламного кабинета - cabinet
-// Наименование - Строка - Наименование кампании - title
-// Параметры - Структура из Строка - См.ПолучитьСтандартныеПараметры - auth - JSON авторизации или путь к .json
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
-Функция СоздатьРекламнуюКампанию(Знач IDКабинета, Знач Наименование, Знач Параметры = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(IDКабинета);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Наименование);
-
- ТекущаяДата = OPI_Инструменты.ПолучитьТекущуюДату();
- КонечнаяДата = ДобавитьМесяц(ТекущаяДата, 24);
-
- Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
- Параметры_.Вставить("account_id", IDКабинета);
-
- МассивСтруктур = Новый Массив;
- ДатаСтарт = OPI_Инструменты.UNIXTime(ТекущаяДата);
- ДатаСтоп = OPI_Инструменты.UNIXTime(КонечнаяДата);
-
- СтруктураКампании = Новый Структура;
- СтруктураКампании.Вставить("type" , "promoted_posts");
- СтруктураКампании.Вставить("name" , Наименование);
- СтруктураКампании.Вставить("day_limit" , 0);
- СтруктураКампании.Вставить("all_limit" , 0);
- СтруктураКампании.Вставить("start_time" , ДатаСтарт);
- СтруктураКампании.Вставить("stop_time" , ДатаСтоп);
- СтруктураКампании.Вставить("status" , 1);
-
- МассивСтруктур.Добавить(СтруктураКампании);
-
- Параметры_.Вставить("data", МассивСтруктур);
-
- Ответ = OPI_ЗапросыHTTP.Get("api.vk.com/method/ads.createCampaigns", Параметры_);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Создать рекламное объявление
-// Создает рекламное объявление на основе поста
-//
-// Параметры:
-// НомерКампании - Строка,Число - ID рекламной кампании - campaign
-// ДневнойЛимит - Строка,Число - Дневной лимит в рублях - limit
-// НомерКатегории - Строка,Число - Номер рекламной категории - category
-// IDПоста - Строка,Число - ID поста, используемого в качетсве рекламы - post
-// IDКабинета - Строка,Число - ID рекламного кабинета - cabinet
-// Параметры - Структура из Строка - См.ПолучитьСтандартныеПараметры - auth - JSON авторизации или путь к .json
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
-Функция СоздатьРекламноеОбъявление(Знач НомерКампании
- , Знач ДневнойЛимит
- , Знач НомерКатегории
- , Знач IDПоста
- , Знач IDКабинета
- , Знач Параметры = "") Экспорт
-
- Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
- GroupId = Параметры_["group_id"];
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(GroupId);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(НомерКампании);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(ДневнойЛимит);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(НомерКатегории);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(IDПоста);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(IDКабинета);
-
- Линк = "https://vk.com/wall-" + GroupId + "_" + IDПоста;
-
- МассивСтруктур = Новый Массив;
- СтруктураКампании = Новый Структура;
- СтруктураКампании.Вставить("campaign_id" , НомерКампании);
- СтруктураКампании.Вставить("ad_format" , 9);
- СтруктураКампании.Вставить("conversion_event_id" , 1);
- СтруктураКампании.Вставить("autobidding" , 1);
- СтруктураКампании.Вставить("cost_type" , 3);
- СтруктураКампании.Вставить("goal_type" , 2);
- СтруктураКампании.Вставить("ad_platform" , "all");
- СтруктураКампании.Вставить("publisher_platforms" , "vk");
- СтруктураКампании.Вставить("publisher_platforms_auto" , "1");
- СтруктураКампании.Вставить("day_limit" , ДневнойЛимит);
- СтруктураКампании.Вставить("all_limit" , "0");
- СтруктураКампании.Вставить("category1_id" , НомерКатегории);
- СтруктураКампании.Вставить("age_restriction" , 0);
- СтруктураКампании.Вставить("status" , 1);
- СтруктураКампании.Вставить("name" , "Объявление");
- СтруктураКампании.Вставить("link_url" , Линк);
-
- МассивСтруктур.Добавить(СтруктураКампании);
-
- Параметры_.Вставить("data" , МассивСтруктур);
- Параметры_.Вставить("account_id" , IDКабинета);
-
- Ответ = OPI_ЗапросыHTTP.Get("api.vk.com/method/ads.createAds", Параметры_);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Приостановить рекламное объявление
-// Приостанавливает показ рекламного объявления
-//
-// Параметры:
-// IDКабинета - Строка,Число - ID рекламного кабинета - cabinet
-// IDОбъявления - Строка,Число - ID объявления - adv
-// Параметры - Структура из Строка - См.ПолучитьСтандартныеПараметры - auth - JSON авторизации или путь к .json
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
-Функция ПриостановитьРекламноеОбъявление(Знач IDКабинета, Знач IDОбъявления, Знач Параметры = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(IDКабинета);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(IDОбъявления);
-
- Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
-
- Параметры_.Вставить("account_id", IDКабинета);
-
- МассивСтруктур = Новый Массив;
- СтруктураКампании = Новый Структура;
-
- СтруктураКампании.Вставить("ad_id" , IDОбъявления);
- СтруктураКампании.Вставить("status" , 0);
-
- МассивСтруктур.Добавить(СтруктураКампании);
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(МассивСтруктур, Истина);
-
- Параметры_.Вставить("data", МассивСтруктур);
-
- Ответ = OPI_ЗапросыHTTP.Get("api.vk.com/method/ads.updateAds", Параметры_);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить список рекламных категорий
-// Получает список id рекламных категорий для создания рекламного объявления
-//
-// Параметры:
-// Параметры - Структура из Строка - См.ПолучитьСтандартныеПараметры - auth - JSON авторизации или путь к .json
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
-Функция ПолучитьСписокРекламныхКатегорий(Знач Параметры = "") Экспорт
-
- Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
- Ответ = OPI_ЗапросыHTTP.Get("api.vk.com/method/ads.getCategories", Параметры_);
-
- Возврат Ответ;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область РаботаСТоварами
-
-// Получить список категорий товаров
-// Получает список ID товарных категорий для указания при создании товара
-//
-// Параметры:
-// Параметры - Структура из Строка - См.ПолучитьСтандартныеПараметры - auth - JSON авторизации или путь к .json
-//
-// Возвращаемое значение:
-// Соответствие Из Строка - Ключ - ID, Значение - Имя
-Функция ПолучитьСписокКатегорийТоваров(Знач Параметры = "") Экспорт
-
- Response_ = "response";
- Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
- Ответ = OPI_ЗапросыHTTP.Get("api.vk.com/method/market.getCategories", Параметры_);
- Результат = Ответ[Response_];
-
- Если ЗначениеЗаполнено(Результат) Тогда
-
- Количество = Результат["count"];
-
- Если Не ЗначениеЗаполнено(Количество) Тогда
- Возврат Ответ;
- КонецЕсли;
-
- Иначе
- Возврат Ответ;
- КонецЕсли;
-
- Параметры_.Вставить("count", Количество);
- Ответ = OPI_ЗапросыHTTP.Get("api.vk.com/method/market.getCategories", Параметры_);
- Результат = Ответ[Response_];
-
- Если ЗначениеЗаполнено(Результат) Тогда
-
- Категории = Результат["items"];
-
- Если Не ЗначениеЗаполнено(Категории) Тогда
- Возврат Ответ;
- КонецЕсли;
-
- Иначе
- Возврат Ответ;
- КонецЕсли;
-
- СоответствиеКатегорий = Новый Соответствие;
-
- Для Каждого Категория Из Категории Цикл
- СоответствиеКатегорий.Вставить(Категория["id"], Категория["name"]);
- КонецЦикла;
-
- Возврат СоответствиеКатегорий;
-
-КонецФункции
-
-// Получить список товаров
-// Получает список товаров сообщества
-//
-// Параметры:
-// Подборка - Строка,Число - ID подборки, если нужен отбор - sel
-// Параметры - Структура из Строка - См.ПолучитьСтандартныеПараметры - auth - JSON авторизации или путь к .json
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Массив соответствий товаров
-Функция ПолучитьСписокТоваров(Знач Подборка = "", Знач Параметры = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Подборка);
-
- Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
- Параметры_.Вставить("count" , 200);
- Параметры_.Вставить("extended" , 1);
- Параметры_.Вставить("with_disabled", 1);
-
- Если ЗначениеЗаполнено(Подборка) Тогда
- Параметры_.Вставить("album_id", Подборка);
- КонецЕсли;
-
- МассивТоваров = Новый Массив;
- ПолучитьСписокТоваровРекурсивно(МассивТоваров, Параметры_);
-
- Возврат МассивТоваров;
-
-КонецФункции
-
-// Получить товары по ID
-// Получает информацию о товарах по массиву ID
-//
-// Параметры:
-// Товары - Строка, Массив Из Строка - Массив ID товаров - items
-// Параметры - Структура из Строка - См.ПолучитьСтандартныеПараметры - auth - JSON авторизации или путь к .json
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
-Функция ПолучитьТоварыПоИД(Знач Товары, Знач Параметры = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьКоллекцию(Товары);
-
- МассивСтрокТоваров = Новый Массив;
- Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
- СтрокаТоваров = "";
- IDВладельца = Параметры_["owner_id"];
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(IDВладельца);
-
- Для Каждого Товар Из Товары Цикл
-
- ТекущийТовар = OPI_Инструменты.ЧислоВСтроку(Товар);
- ТекущийТовар = IDВладельца + "_" + ТекущийТовар;
-
- МассивСтрокТоваров.Добавить(ТекущийТовар);
-
- КонецЦикла;
-
- СтрокаТоваров = СтрСоединить(МассивСтрокТоваров, ",");
-
- Параметры_.Вставить("item_ids", СтрокаТоваров);
- Параметры_.Вставить("extended", 1);
-
- Ответ = OPI_ЗапросыHTTP.Get("api.vk.com/method/market.getById", Параметры_);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Добавить товар
-// Добавляет новый товар в каталог сообщества
-//
-// Параметры:
-// ОписаниеТовара - Соответствие Из КлючИЗначение - См.ПолучитьОписаниеТовара - product - JSON описание товара или путь
-// Подборка - Строка - ID подборка для помещения товара, если необходимо - sel
-// Параметры - Структура из Строка - См.ПолучитьСтандартныеПараметры - auth - JSON авторизации или путь к .json
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
-Функция ДобавитьТовар(Знач ОписаниеТовара, Знач Подборка = "", Знач Параметры = "") Экспорт
-
- Возврат УправлениеТоваром(ОписаниеТовара, , Подборка, Параметры);
-
-КонецФункции
-
-// Изменить товар
-// Изменяет ранее созданный товар
-//
-// Параметры:
-// Товар - Число,Строка - Идентификатор изменяемого товара - item
-// ОписаниеТовара - Соответствие Из КлючИЗначение - См.ПолучитьОписаниеТовара - product - JSON описание товара или путь
-// Подборка - Строка - Идентификатор новой подборки, если необходимо - sel
-// Параметры - Структура из Строка - См.ПолучитьСтандартныеПараметры - auth - JSON авторизации или путь к .json
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
-Функция ИзменитьТовар(Знач Товар, Знач ОписаниеТовара, Знач Подборка = "", Знач Параметры = "") Экспорт
-
- Возврат УправлениеТоваром(ОписаниеТовара, Товар, Подборка, Параметры);
-
-КонецФункции
-
-// Удалить товар
-// Удаляет ранее созданный товар
-//
-// Параметры:
-// Товар - Строка,Число - ID товара - item
-// Параметры - Структура из Строка - См.ПолучитьСтандартныеПараметры - auth - JSON авторизации или путь к .json
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
-Функция УдалитьТовар(Знач Товар, Знач Параметры = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Товар);
-
- Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
- Параметры_.Вставить("item_id", Товар);
-
- Ответ = OPI_ЗапросыHTTP.Get("api.vk.com/method/market.delete", Параметры_);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Сгруппировать товары
-// Группирует товары на основе одинаковых наборов свойств
-//
-// Параметры:
-// МассивТоваров - Массив Из Строка - Массив ID товаров - items
-// СуществующаяГруппа - Строка - ID существующей группы, если необходимо - sellgroup
-// Параметры - Структура из Строка - См.ПолучитьСтандартныеПараметры - auth - JSON авторизации или путь к .json
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
-Функция СгруппироватьТовары(Знач МассивТоваров, Знач СуществующаяГруппа = "", Знач Параметры = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(СуществующаяГруппа);
- OPI_ПреобразованиеТипов.ПолучитьКоллекцию(МассивТоваров);
-
- Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
- МассивТоваров_ = Новый Массив;
-
- Для Каждого Товар Из МассивТоваров Цикл
- МассивТоваров_.Добавить(OPI_Инструменты.ЧислоВСтроку(Товар));
- КонецЦикла;
-
- Товары = СтрСоединить(МассивТоваров_, ",");
-
- Параметры_.Вставить("item_ids", Товары);
-
- Если ЗначениеЗаполнено(СуществующаяГруппа) Тогда
- Параметры_.Вставить("item_group_id", СуществующаяГруппа);
- КонецЕсли;
-
- Ответ = OPI_ЗапросыHTTP.Get("api.vk.com/method/market.groupItems", Параметры_);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить описание товара
-// Получает шаблон описания для создания товара
-//
-// Параметры:
-// Пустая - Булево - Истина > структура с пустыми значениями, Ложь > в значениях будут описания полей - empty
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Соответствие полей
-Функция ПолучитьОписаниеТовара(Знач Пустая = Ложь) Экспорт
-
- Товар = Новый Соответствие();
- Товар.Вставить("Имя" , "Новый товар"); // Имя товара
- Товар.Вставить("Описание" , "Описание товара"); // Описание товара
- Товар.Вставить("Категория" , "20173"); // См. ПолучитьСписокКатегорийТоваров()
- Товар.Вставить("Цена" , 1); // Цена.
- Товар.Вставить("СтараяЦена" , Неопределено); // Для отражения изменения цены
- Товар.Вставить("ОсновноеФото" , Неопределено); // ДД или путь к осн. фото
- Товар.Вставить("URL" , Неопределено); // Ссылка на страницу магазина
- Товар.Вставить("ДополнительныеФото" , Новый Массив); // Массив путей или ДД для доп. фото
- Товар.Вставить("ЗначенияСвойств" , Новый Массив); // Значения свойств (варианты). Максимум 2
- Товар.Вставить("ГлавныйВГруппе" , Ложь); // Сделать главным в своей группе
- Товар.Вставить("Ширина" , Неопределено); // В миллиметрах
- Товар.Вставить("Высота" , Неопределено); // В миллиметрах
- Товар.Вставить("Глубина" , Неопределено); // В миллиметрах
- Товар.Вставить("Вес" , Неопределено); // В граммах
- Товар.Вставить("SKU" , Неопределено); // Артикул
- Товар.Вставить("ДоступныйОстаток" , 1);
-
- Если Пустая Тогда
- Для Каждого Характеристика Из Товар Цикл
- Товар.Вставить(Характеристика.Ключ, "");
- КонецЦикла;
- КонецЕсли;
-
- Возврат Товар;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область РаботаСПодборкамиТоваров
-
-// Получить список подборок
-// Получает список подборок товаров
-//
-// Параметры:
-// Параметры - Структура из Строка - См.ПолучитьСтандартныеПараметры - auth - JSON авторизации или путь к .json
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - Массив соответствий подборок
-Функция ПолучитьСписокПодборок(Знач Параметры = "") Экспорт
-
- Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
- Параметры_.Вставить("count", 100);
-
- МассивАльбомов = Новый Массив;
- ПолучитьСписокАльбомовРекурсивно(МассивАльбомов, Параметры_);
-
- Возврат МассивАльбомов;
-
-КонецФункции
-
-// Получить подборки по ID
-// Получить список подборок по массиву ID
-//
-// Параметры:
-// Подборки - Строка, Массив Из Строка - ID подборок - sels
-// Параметры - Структура из Строка - См.ПолучитьСтандартныеПараметры - auth - JSON авторизации или путь к .json
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
-Функция ПолучитьПодборкиПоИД(Знач Подборки, Знач Параметры = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьКоллекцию(Подборки);
-
- Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
- Подборки_ = Новый Массив;
- СтрокаПодборок = "";
-
- Для Каждого Подборка Из Подборки Цикл
- Подборки_.Добавить(OPI_Инструменты.ЧислоВСтроку(Подборка));
- КонецЦикла;
-
- СтрокаПодборок = СтрСоединить(Подборки_, ",");
-
- Параметры_.Вставить("album_ids", СтрокаПодборок);
-
- Ответ = OPI_ЗапросыHTTP.Get("api.vk.com/method/market.getAlbumById", Параметры_);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Создать подборку товаров
-// Создает пустую подборку товаров
-//
-// Параметры:
-// Название - Строка - Название подборки - title
-// Картинка - Строка,ДвоичныеДанные - Файл картинки - picture
-// Основная - Булево - Основная - main
-// Скрытая - Булево - Скрытая - hidden
-// Параметры - Структура из Строка - См.ПолучитьСтандартныеПараметры - auth - JSON авторизации или путь к .json
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
-Функция СоздатьПодборкуТоваров(Знач Название
- , Знач Картинка
- , Знач Основная = Ложь
- , Знач Скрытая = Ложь
- , Знач Параметры = "") Экспорт
-
- Возврат УправлениеПодборкой(Название, Картинка, , Основная, Скрытая, Параметры);
-
-КонецФункции
-
-// Изменить подборку товаров
-// Изменяет свойства подборки товаров
-//
-// Параметры:
-// Название - Строка - Новое название подборки - title
-// Подборка - Строка - ID подборки - sel
-// Картинка - Строка,ДвоичныеДанные - Новая картинка подборки - picture
-// Основная - Булево - Основная - main
-// Скрытая - Булево - Скрытая - hidden
-// Параметры - Структура из Строка - См.ПолучитьСтандартныеПараметры - auth - JSON авторизации или путь к .json
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
-Функция ИзменитьПодборкуТоваров(Знач Название
- , Знач Подборка
- , Знач Картинка = ""
- , Знач Основная = Ложь
- , Знач Скрытая = Ложь
- , Знач Параметры = "") Экспорт
-
- Возврат УправлениеПодборкой(Название, Картинка, Подборка, Основная, Скрытая, Параметры);
-
-КонецФункции
-
-// Добавить товар в подборку
-// Добавляет товар в подборку
-//
-// Параметры:
-// МассивТоваров - Массив из Строка, Число - Массив товаров или товар - items
-// Подборка - Строка - ID подборки - sel
-// Параметры - Структура из Строка - См.ПолучитьСтандартныеПараметры - auth - JSON авторизации или путь к .json
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
-Функция ДобавитьТоварВПодборку(Знач МассивТоваров, Знач Подборка, Знач Параметры = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьКоллекцию(МассивТоваров);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Подборка);
-
- Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
- МассивТоваров_ = Новый Массив;
-
- Для Каждого Товар Из МассивТоваров Цикл
- МассивТоваров_.Добавить(OPI_Инструменты.ЧислоВСтроку(Товар));
- КонецЦикла;
-
- СписокТоваров = СтрСоединить(МассивТоваров_, ",");
-
- Параметры_.Вставить("item_ids" , СписокТоваров);
- Параметры_.Вставить("album_ids", Подборка);
-
- Ответ = OPI_ЗапросыHTTP.Get("api.vk.com/method/market.addToAlbum", Параметры_);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Удалить товар из подборки
-// Удаляет ранее добавленный товар из подборки
-//
-// Параметры:
-// Товар - Строка - ID товара - item
-// Подборка - Строка - ID подборки - sel
-// Параметры - Структура из Строка - См.ПолучитьСтандартныеПараметры - auth - JSON авторизации или путь к .json
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
-Функция УдалитьТоварИзПодборки(Знач Товар, Знач Подборка, Знач Параметры = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Товар);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Подборка);
-
- Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
-
- Параметры_.Вставить("item_id" , Товар);
- Параметры_.Вставить("album_ids", Подборка);
-
- Ответ = OPI_ЗапросыHTTP.Get("api.vk.com/method/market.removeFromAlbum", Параметры_);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Удалить подборку
-// Удаляет подборку по ID
-//
-// Параметры:
-// Подборка - Строка - ID подборки - sel
-// Параметры - Структура из Строка - См.ПолучитьСтандартныеПараметры - auth - JSON авторизации или путь к .json
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
-Функция УдалитьПодборку(Знач Подборка, Знач Параметры = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Подборка);
-
- Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
- Параметры_.Вставить("album_id", Подборка);
-
- Ответ = OPI_ЗапросыHTTP.Get("api.vk.com/method/market.deleteAlbum", Параметры_);
-
- Возврат Ответ;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область РаботаСоСвойствамиТоваров
-
-// Получить список свойств
-// Получает список свойств товаров группы
-//
-// Параметры:
-// Параметры - Структура из Строка - См.ПолучитьСтандартныеПараметры - auth - JSON авторизации или путь к .json
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
-Функция ПолучитьСписокСвойств(Знач Параметры = "") Экспорт
-
- Response_ = "response";
- Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
-
- Ответ = OPI_ЗапросыHTTP.Get("api.vk.com/method/market.getProperties", Параметры_);
- Свойства = Ответ[Response_]["items"];
-
- Возврат Свойства;
-
-КонецФункции
-
-// Создать свойство товара
-// Создает новое свойство для использования в товарах
-//
-// Параметры:
-// Название - Строка - Название свойства - title
-// Параметры - Структура из Строка - См.ПолучитьСтандартныеПараметры - auth - JSON авторизации или путь к .json
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
-Функция СоздатьСвойствоТовара(Знач Название, Знач Параметры = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Название);
-
- Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
- Параметры_.Вставить("title", Название);
-
- Ответ = OPI_ЗапросыHTTP.Get("api.vk.com/method/market.addProperty", Параметры_);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Изменить свойство товара
-// Изменяет существующее свойство товара
-//
-// Параметры:
-// Название - Строка - Новое название - title
-// Свойство - Строка,Число - ID свойства - prop
-// Параметры - Структура из Строка - См.ПолучитьСтандартныеПараметры - auth - JSON авторизации или путь к .json
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
-Функция ИзменитьСвойствоТовара(Знач Название, Знач Свойство, Знач Параметры = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Название);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Свойство);
-
- Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
- Параметры_.Вставить("title" , Название);
- Параметры_.Вставить("property_id", Свойство);
- Параметры_.Вставить("type" , "text");
-
- Ответ = OPI_ЗапросыHTTP.Get("api.vk.com/method/market.editProperty", Параметры_);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Удалить свойство товара
-// Удаляет существующее свойство товара
-//
-// Параметры:
-// Свойство - Строка,Число - ID свойства - prop
-// Параметры - Структура из Строка - См.ПолучитьСтандартныеПараметры - auth - JSON авторизации или путь к .json
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
-Функция УдалитьСвойствоТовара(Знач Свойство, Знач Параметры = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Свойство);
-
- Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
- Параметры_.Вставить("property_id", Свойство);
-
- Ответ = OPI_ЗапросыHTTP.Get("api.vk.com/method/market.deleteProperty", Параметры_);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Добавить вариант свойства товара
-// Добавляет вариант для существующего свойства
-//
-// Параметры:
-// Значение - Строка - Значение свойства - value
-// Свойство - Строка,Число - ID свойства, куда добавляется вариант - prop
-// Параметры - Структура из Строка - См.ПолучитьСтандартныеПараметры - auth - JSON авторизации или путь к .json
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
-Функция ДобавитьВариантСвойстваТовара(Знач Значение, Знач Свойство, Знач Параметры = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Свойство);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Значение);
-
- Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
- Параметры_.Вставить("property_id", Свойство);
- Параметры_.Вставить("title" , Значение);
-
- Ответ = OPI_ЗапросыHTTP.Get("api.vk.com/method/market.addPropertyVariant", Параметры_);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Изменить вариант свойства товара
-// Изменяет значение варианта существующего свойства товара
-//
-// Параметры:
-// Значение - Строка - Новое значение свойства - value
-// Свойство - Строка,Число - ID свойства - prop
-// Вариант - Строка,Число - ID варианта - option
-// Параметры - Структура из Строка - См.ПолучитьСтандартныеПараметры - auth - JSON авторизации или путь к .json
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
-Функция ИзменитьВариантСвойстваТовара(Знач Значение, Знач Свойство, Знач Вариант, Знач Параметры = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Значение);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Свойство);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Вариант);
-
- Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
- Параметры_.Вставить("property_id", Свойство);
- Параметры_.Вставить("variant_id" , Вариант);
- Параметры_.Вставить("title" , Значение);
-
- Ответ = OPI_ЗапросыHTTP.Get("api.vk.com/method/market.editPropertyVariant", Параметры_);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Удалить вариант свойства товара
-// Удаляет ранее созданный вариант свойства
-//
-// Параметры:
-// Вариант - Строка,Число - ID варианта - option
-// Параметры - Структура из Строка - См.ПолучитьСтандартныеПараметры - auth - JSON авторизации или путь к .json
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
-Функция УдалитьВариантСвойстваТовара(Знач Вариант, Знач Параметры = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Вариант);
-
- Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
- Параметры_.Вставить("variant_id", Вариант);
-
- Ответ = OPI_ЗапросыHTTP.Get("api.vk.com/method/market.deletePropertyVariant", Параметры_);
-
- Возврат Ответ;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область РаботаСЗаказами
-
-// Получить список заказов
-// Возвращает список заказов сообщества
-//
-// Параметры:
-// Параметры - Структура из Строка - См.ПолучитьСтандартныеПараметры - auth - JSON авторизации или путь к .json
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
-Функция ПолучитьСписокЗаказов(Знач Параметры = "") Экспорт
-
- Параметры = ПолучитьСтандартныеПараметры(Параметры);
- Параметры.Вставить("count", 50);
-
- МассивЗаказов = Новый Массив;
- ПолучитьСписокЗаказовРекурсивно(МассивЗаказов, Параметры);
-
- Возврат МассивЗаказов;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область Прочие
-
-// Сформировать клавиатуру
-// Формирует клавиатуру по массиву кнопок
-//
-// Параметры:
-// МассивКнопок - Массив из Строка - Массив заголовков кнопок - buttons
-//
-// Возвращаемое значение:
-// Строка - JSON клавиатуры
-Функция СформироватьКлавиатуру(Знач МассивКнопок) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьКоллекцию(МассивКнопок);
-
- Клавиатура = Новый Структура;
- МассивКлавиатуры = Новый Массив;
- МассивБлока = Новый Массив;
-
- Для Каждого Действие Из МассивКнопок Цикл
-
- Кнопка = Новый Структура;
- Выражение = Новый Структура;
-
- Выражение.Вставить("type" , "text");
- Выражение.Вставить("label", Действие);
-
- Кнопка.Вставить("action", Выражение);
- МассивБлока.Добавить(Кнопка);
-
- КонецЦикла;
-
- МассивКлавиатуры.Добавить(МассивБлока);
-
- Клавиатура.Вставить("buttons" , МассивКлавиатуры);
- Клавиатура.Вставить("one_time", Ложь);
-
- Возврат OPI_Инструменты.JSONСтрокой(Клавиатура, , Ложь);
-
-КонецФункции
-
-#КонецОбласти
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-Функция ПолучитьСтандартныеПараметры(Знач Параметры = "")
-
- // Здесь собрано определение данных для работы с VK API
- // Вы можете переопределять их, передавая в качестве параметра
- // Совпадающие поля будут перезаписаны с приоритетом параметра функции
-
- Параметры_ = Новый Структура;
-
- // access_token - можно получить в браузере по URL из функции СоздатьСсылкуПолученияТокена()
- // from_group - действия будут выполняться от лица группы
- // owner_id - id группы с "-" в начале. Можно найти в настройках группы ВК или в ее URL, если не был
- // установлен свой
- // app_id - id приложения, которое необходимо создать в профиле на странице для разработчиков
- // group_id - owner_id, но без "-"
-
- Параметры_.Вставить("access_token" , "");
- Параметры_.Вставить("from_group" , "1");
- Параметры_.Вставить("owner_id" , "");
- Параметры_.Вставить("v" , "5.131");
- Параметры_.Вставить("app_id" , "");
- Параметры_.Вставить("group_id" , "");
-
- OPI_ПреобразованиеТипов.ПолучитьКоллекцию(Параметры);
-
- Если ТипЗнч(Параметры) = Тип("Структура") Или ТипЗнч(Параметры) = Тип("Соответствие") Тогда
- Для Каждого ПереданныйПараметр Из Параметры Цикл
- Параметры_.Вставить(ПереданныйПараметр.Ключ, OPI_Инструменты.ЧислоВСтроку(ПереданныйПараметр.Значение));
- КонецЦикла;
- КонецЕсли;
-
- Возврат Параметры_;
-
-КонецФункции
-
-Функция ПолучитьИДКартинки(Знач Картинка, Знач Параметры, Знач Вид)
-
- Response_ = "response";
- Ответ = ЗагрузитьФотоНаСервер(Картинка, Параметры, Вид);
- Результат = Ответ[Response_];
-
- Если ЗначениеЗаполнено(Результат) Тогда
- ИДФото = Результат["photo_id"];
-
- Если Не ЗначениеЗаполнено(ИДФото) Тогда
- Возврат Ответ;
- КонецЕсли;
-
- Иначе
- Возврат Ответ;
- КонецЕсли;
-
- ИДФото = OPI_Инструменты.ЧислоВСтроку(ИДФото);
- Возврат ИДФото;
-
-КонецФункции
-
-Функция ПолучитьСоответствиеКартинки(Знач Картинка, Знач Параметры, Знач Вид)
-
- Ответ = ЗагрузитьФотоНаСервер(Картинка, Параметры, Вид);
- ОтветМассив = Ответ.Получить("response");
-
- Если Не ЗначениеЗаполнено(ОтветМассив) Или Не ТипЗнч(ОтветМассив) = Тип("Массив") Тогда
- Возврат Ответ;
- Иначе
- Если ОтветМассив.Количество() = 0 Тогда
- Возврат Ответ;
- Иначе
- ОтветСоответствие = ОтветМассив[0];
- КонецЕсли;
- КонецЕсли;
-
- Возврат ОтветСоответствие;
-
-КонецФункции
-
-Функция ПолучитьМассивПодборок(Знач Подборки, Знач Параметры = "")
-
- Response_ = "response";
- Подборки = ПолучитьПодборкиПоИД(Подборки, Параметры);
- Результат = Подборки[Response_];
-
- Если ЗначениеЗаполнено(Результат) Тогда
-
- МассивПодборок = Результат["items"];
-
- Если Не ЗначениеЗаполнено(МассивПодборок) Тогда
- Возврат Подборки;
- КонецЕсли;
-
- Иначе
- Возврат Подборки;
- КонецЕсли;
-
- Возврат МассивПодборок;
-
-КонецФункции
-
-Функция ОпределитьМетодЗагрузкиИзображений(Знач Вид)
-
- СоответствиеМетодов = Новый Соответствие;
- Загрузка = "Загрузка";
- Сохранение = "Сохранение";
- Способ = "Способ";
- Фото = "Фото";
-
- Если Вид = "Пост" Тогда
-
- СоответствиеМетодов.Вставить(Загрузка , "photos.getWallUploadServer");
- СоответствиеМетодов.Вставить(Сохранение, "photos.saveWallPhoto");
- СоответствиеМетодов.Вставить(Фото , "photo");
- СоответствиеМетодов.Вставить(Способ , 1);
-
- ИначеЕсли Вид = "Товар" Тогда
-
- СоответствиеМетодов.Вставить(Загрузка , "market.getProductPhotoUploadServer");
- СоответствиеМетодов.Вставить(Сохранение, "market.saveProductPhoto");
- СоответствиеМетодов.Вставить(Способ , 2);
-
- ИначеЕсли Вид = "История" Тогда
-
- СоответствиеМетодов.Вставить(Загрузка , "stories.getPhotoUploadServer");
- СоответствиеМетодов.Вставить(Сохранение, "stories.save");
- СоответствиеМетодов.Вставить(Способ , 3);
-
- ИначеЕсли Вид = "Опрос" Тогда
-
- СоответствиеМетодов.Вставить(Загрузка , "polls.getPhotoUploadServer");
- СоответствиеМетодов.Вставить(Сохранение, "polls.savePhoto");
- СоответствиеМетодов.Вставить(Фото , "photo");
- СоответствиеМетодов.Вставить(Способ , 1);
-
- Иначе
-
- СоответствиеМетодов.Вставить(Загрузка , "photos.getUploadServer");
- СоответствиеМетодов.Вставить(Сохранение, "photos.save");
- СоответствиеМетодов.Вставить(Фото , "photos_list");
- СоответствиеМетодов.Вставить(Способ , 1);
-
- КонецЕсли;
-
- Возврат СоответствиеМетодов;
-
-КонецФункции
-
-Функция ПолучитьСоответствиеПараметровТовара()
-
- Поля = Новый Соответствие();
- Поля.Вставить("Имя" , "name");
- Поля.Вставить("Описание" , "description");
- Поля.Вставить("Категория" , "category_id");
- Поля.Вставить("Цена" , "price");
- Поля.Вставить("СтараяЦена" , "old_price");
- Поля.Вставить("URL" , "url");
- Поля.Вставить("ГлавныйВГруппе" , "is_main_variant");
- Поля.Вставить("Ширина" , "dimension_width");
- Поля.Вставить("Высота" , "dimension_height");
- Поля.Вставить("Глубина" , "dimension_length");
- Поля.Вставить("Вес" , "weight");
- Поля.Вставить("SKU" , "sku");
- Поля.Вставить("ДоступныйОстаток" , "stock_amount");
-
- Возврат Поля;
-
-КонецФункции
-
-Функция УправлениеТоваром(Знач ОписаниеТовара, Знач ИДТовара = "", Знач Подборка = "", Знач Параметры = "")
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(ИДТовара);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Подборка);
- OPI_ПреобразованиеТипов.ПолучитьКоллекцию(ОписаниеТовара);
-
- Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
- Параметры_.Вставить("v", "5.199");
-
- Response_ = "response";
-
- ЗаполнитьПоляЗапросаТовара(ОписаниеТовара, Параметры_);
-
- Если ЗначениеЗаполнено(ИДТовара) Тогда
- Параметры_.Вставить("item_id", ИДТовара);
- Метод = "edit";
- Иначе
- Метод = "add";
- КонецЕсли;
-
- Ответ = OPI_ЗапросыHTTP.Get("api.vk.com/method/market." + Метод, Параметры_);
- Результат = Ответ[Response_];
-
- Если Не ЗначениеЗаполнено(ИДТовара) И ЗначениеЗаполнено(Результат) Тогда
-
- ИДТовара = Результат["market_item_id"];
-
- Если Не ЗначениеЗаполнено(ИДТовара) Тогда
- Возврат Ответ;
- КонецЕсли;
-
- Иначе
- Возврат Ответ;
- КонецЕсли;
-
- Если ЗначениеЗаполнено(Подборка) И ЗначениеЗаполнено(ИДТовара) Тогда
- ДобавитьТоварВПодборку(ИДТовара, Подборка, Параметры_);
- КонецЕсли;
-
- Возврат Ответ;
-
-КонецФункции
-
-Функция УправлениеПодборкой(Знач Название
- , Знач Картинка = ""
- , Знач ИДПодборки = ""
- , Знач Основная = Ложь
- , Знач Скрытая = Ложь
- , Знач Параметры = "")
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Название);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(ИДПодборки);
- OPI_ПреобразованиеТипов.ПолучитьБулево(Основная);
- OPI_ПреобразованиеТипов.ПолучитьБулево(Скрытая);
-
- Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
- Ответ = ДобавитьПараметрКартинки(Картинка, ИДПодборки, Параметры_);
-
- Если ЗначениеЗаполнено(Ответ) Тогда
- Возврат Ответ;
- КонецЕсли;
-
- Параметры_.Вставить("title" , Название);
- Параметры_.Вставить("main_album" , ?(Основная, 1, 0));
- Параметры_.Вставить("is_hidden" , ?(Скрытая , 1, 0));
-
- Если ЗначениеЗаполнено(ИДПодборки) Тогда
- Параметры_.Вставить("album_id", ИДПодборки);
- Метод = "editAlbum";
- Иначе
- Метод = "addAlbum";
- КонецЕсли;
-
- Ответ = OPI_ЗапросыHTTP.Get("api.vk.com/method/market." + Метод, Параметры_);
-
- Возврат Ответ;
-
-КонецФункции
-
-Функция ДобавитьПараметрКартинки(Знач Картинка, Знач ИДПодборки, Параметры)
-
- PhotoID_ = "photo_id";
-
- Если ЗначениеЗаполнено(Картинка) Тогда
-
- ИДФото = ПолучитьИДКартинки(Картинка, Параметры, "Товар");
-
- Если Не ТипЗнч(ИДФото) = Тип("Строка") Тогда
- Возврат ИДФото;
- КонецЕсли;
-
- Параметры.Вставить(PhotoID_, ИДФото);
-
- Иначе
-
- Если ЗначениеЗаполнено(ИДПодборки) Тогда
-
- Подборки = ПолучитьМассивПодборок(ИДПодборки, Параметры);
-
- Если Не ТипЗнч(Подборки) = Тип("Массив") Тогда
- Возврат Подборки;
- КонецЕсли;
-
- Если Не Подборки.Количество() = 0 Тогда
- ИДФото = Подборки[0]["photo"]["id"];
- OPI_ПреобразованиеТипов.ПолучитьСтроку(ИДФото);
- Параметры.Вставить(PhotoID_, ИДФото);
- КонецЕсли;
-
- КонецЕсли;
-
- КонецЕсли;
-
- Возврат "";
-
-КонецФункции
-
-Процедура ЗаполнитьПараметрыЗагрузкиФото(Знач Метод, Знач Ответ, Параметры)
-
- Response_ = "response";
- Способ = Метод["Способ"];
- СтандартныйСпособ = 1;
- НовыйСпособ = 2;
-
- Если Способ = СтандартныйСпособ Тогда
-
- Hash = "hash";
- Serv = "server";
- Aid = "aid";
- Фото = Метод["Фото"];
-
- Параметры.Вставить(Hash, Ответ[Hash]);
- Параметры.Вставить(Фото, Ответ[Фото]);
-
- СерверФото = Ответ.Получить(Serv);
-
- Если ЗначениеЗаполнено(СерверФото) Тогда
- СерверФото = OPI_Инструменты.ЧислоВСтроку(СерверФото);
- Параметры.Вставить(Serv, СерверФото);
- КонецЕсли;
-
- Идентификатор = Ответ.Получить(Aid);
-
- Если ЗначениеЗаполнено(Идентификатор) Тогда
- Идентификатор = OPI_Инструменты.ЧислоВСтроку(Идентификатор);
- Параметры.Вставить(Aid , Идентификатор);
- КонецЕсли;
-
- ИначеЕсли Способ = НовыйСпособ Тогда
-
- Параметры.Вставить("upload_response", Ответ);
-
- Иначе
-
- Параметры.Вставить("upload_results", Ответ[Response_]["upload_result"]);
-
- КонецЕсли;
-
-КонецПроцедуры
-
-Процедура ЗаполнитьПоляЗапросаТовара(Знач ОписаниеТовара, Параметры)
-
- Response_ = "response";
- ОсновноеФото = ОписаниеТовара["ОсновноеФото"];
- ДопФото = ОписаниеТовара["ДополнительныеФото"];
- Свойства = ОписаниеТовара["ЗначенияСвойств"];
-
- Если ЗначениеЗаполнено(ОсновноеФото) Тогда
-
- Ответ = ЗагрузитьФотоНаСервер(ОсновноеФото, Параметры, "Товар");
- Результат = Ответ[Response_];
-
- Если ЗначениеЗаполнено(Результат) Тогда
-
- ИДФото = Результат["photo_id"];
-
- Если Не ЗначениеЗаполнено(ИДФото) Тогда
- Возврат;
- КонецЕсли;
-
- Иначе
- Возврат;
- КонецЕсли;
-
- ИДФото = OPI_Инструменты.ЧислоВСтроку(ИДФото);
- Параметры.Вставить("main_photo_id", ИДФото);
-
- КонецЕсли;
-
- Если ТипЗнч(Свойства) = Тип("Массив") Тогда
-
- Свойства_ = Новый Массив;
-
- Для Каждого Свойство Из Свойства Цикл
- Свойства_.Добавить(OPI_Инструменты.ЧислоВСтроку(Свойство));
- КонецЦикла;
-
- Свойства = СтрСоединить(Свойства_, ",");
-
- КонецЕсли;
-
- Если ЗначениеЗаполнено(Свойства) Тогда
- Параметры.Вставить("variant_ids", OPI_Инструменты.ЧислоВСтроку(Свойства));
- КонецЕсли;
-
- ДобавитьДополнительныеФотоТовара(ДопФото, Параметры);
-
- Для Каждого Поле Из ПолучитьСоответствиеПараметровТовара() Цикл
-
- Значение = ОписаниеТовара[Поле.Ключ];
-
- Если Значение <> Неопределено Тогда
- Параметры.Вставить(Поле.Значение, ОписаниеТовара[Поле.Ключ]);
- КонецЕсли;
-
- КонецЦикла;
-
-КонецПроцедуры
-
-Процедура ДобавитьДополнительныеФотоТовара(Знач МассивФото, Параметры)
-
- Если ТипЗнч(МассивФото) = Тип("Массив") Тогда
- Если МассивФото.Количество() > 0 Тогда
-
- СтрокаФотографий = "";
-
- Для Каждого Фото Из МассивФото Цикл
-
- ИДФото = ПолучитьИДКартинки(Фото, Параметры, "Товар");
-
- Если Не ТипЗнч(ИДФото) = Тип("Строка") Тогда
- Возврат;
- КонецЕсли;
-
- СтрокаФотографий = СтрокаФотографий + ИДФото + ",";
-
- КонецЦикла;
-
- СтрокаФотографий = Лев(СтрокаФотографий, СтрДлина(СтрокаФотографий) - 1);
- Параметры.Вставить("photo_ids", СтрокаФотографий);
- КонецЕсли;
- КонецЕсли;
-
-КонецПроцедуры
-
-Процедура ПолучитьСписокТоваровРекурсивно(МассивТоваров, Параметры, Сдвиг = 0)
-
- Response_ = "response";
- МаксимумВЗапросе = 200;
- Ответ = OPI_ЗапросыHTTP.Get("api.vk.com/method/market.get", Параметры);
- Товары = Ответ[Response_]["items"];
-
- Если Товары.Количество() = 0 Тогда
- Возврат;
- КонецЕсли;
-
- Для Каждого Товар Из Товары Цикл
- МассивТоваров.Добавить(Товар);
- КонецЦикла;
-
- Сдвиг = Сдвиг + МаксимумВЗапросе;
- Параметры.Вставить("offset", Сдвиг);
- ПолучитьСписокТоваровРекурсивно(МассивТоваров, Параметры, Сдвиг);
-
-КонецПроцедуры
-
-Процедура ПолучитьСписокАльбомовРекурсивно(МассивАльбомов, Параметры, Сдвиг = 0)
-
- Response_ = "response";
- МаксимумВЗапросе = 100;
- Ответ = OPI_ЗапросыHTTP.Get("api.vk.com/method/market.getAlbums", Параметры);
- Альбомы = Ответ[Response_]["items"];
-
- Если Альбомы.Количество() = 0 Тогда
- Возврат;
- КонецЕсли;
-
- Для Каждого Альбом Из Альбомы Цикл
- МассивАльбомов.Добавить(Альбом);
- КонецЦикла;
-
- Сдвиг = Сдвиг + МаксимумВЗапросе;
- Параметры.Вставить("offset", Сдвиг);
- ПолучитьСписокАльбомовРекурсивно(МассивАльбомов, Параметры, Сдвиг);
-
-КонецПроцедуры
-
-Процедура ПолучитьСписокЗаказовРекурсивно(МассивЗаказов, Параметры, Сдвиг = 0)
-
- Response_ = "response";
- МаксимумВЗапросе = 50;
- Ответ = OPI_ЗапросыHTTP.Get("api.vk.com/method/market.getGroupOrders", Параметры);
- Заказы = Ответ[Response_]["items"];
-
- Если Заказы.Количество() = 0 Тогда
- Возврат;
- КонецЕсли;
-
- Для Каждого Заказ Из Заказы Цикл
- МассивЗаказов.Добавить(Заказ);
- КонецЦикла;
-
- Сдвиг = Сдвиг + МаксимумВЗапросе;
- Параметры.Вставить("offset", Сдвиг);
- ПолучитьСписокЗаказовРекурсивно(МассивЗаказов, Параметры, Сдвиг);
-
-КонецПроцедуры
-
-#КонецОбласти
diff --git a/XML/CommonModules/OPI_VKTeams.xml b/XML/CommonModules/OPI_VKTeams.xml
deleted file mode 100644
index 1194e863ee..0000000000
--- a/XML/CommonModules/OPI_VKTeams.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- OPI_VKTeams
-
-
- ru
- VK Teams (ОПИ)
-
-
- Модуль для работы с VK Teams из набора ОПИ
- false
- false
- true
- true
- true
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git a/XML/CommonModules/OPI_VKTeams/Ext/Module.bsl b/XML/CommonModules/OPI_VKTeams/Ext/Module.bsl
deleted file mode 100644
index 89daf15f6c..0000000000
--- a/XML/CommonModules/OPI_VKTeams/Ext/Module.bsl
+++ /dev/null
@@ -1,976 +0,0 @@
-// OneScript: ./OInt/core/Modules/OPI_VKTeams.os
-// Lib: VKTeams
-// CLI: vkteams
-// Keywords: vkteams, vk teams
-
-// MIT License
-
-// Copyright (c) 2023-2025 Anton Tsitavets
-
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-
-// The above copyright notice and this permission notice shall be included in all
-// copies or substantial portions of the Software.
-
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-// SOFTWARE.
-
-// https://github.com/Bayselonarrend/OpenIntegrations
-
-// BSLLS:Typo-off
-// BSLLS:IncorrectLineBreak-off
-// BSLLS:NumberOfOptionalParams-off
-// BSLLS:UsingServiceTag-off
-// BSLLS:LineLength-off
-// BSLLS:UsingSynchronousCalls-off
-
-//@skip-check module-structure-top-region
-//@skip-check module-structure-method-in-regions
-//@skip-check wrong-string-literal-content
-//@skip-check method-too-many-params
-
-#Область ПрограммныйИнтерфейс
-
-#Область ОбщиеМетоды
-
-// Проверить токен
-// Проверяет работоспособность токена бота
-//
-// Примечание:
-// Метод в документации API: [GET /self/get](@teams.vk.com/botapi/#/self/get_self_get)
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK Teams
-Функция ПроверитьТокен(Знач Токен) Экспорт
-
- URL = "/self/get";
- Параметры = НормализоватьОснову(URL, Токен);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить события
-// Получает события бота в Polling режиме
-//
-// Примечание:
-// Метод в документации API: [GET /events/get](@teams.vk.com/botapi/#/events/get_events_get)
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// IDПоследнего - Строка, Число - ID последнего обработанного до этого события - last
-// Таймаут - Строка, Число - Время удержания соединения для Long Polling - timeout
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK Teams
-Функция ПолучитьСобытия(Знач Токен, Знач IDПоследнего, Знач Таймаут = 0) Экспорт
-
- URL = "/events/get";
- Параметры = НормализоватьОснову(URL, Токен);
- IDПоследнего = OPI_Инструменты.ЧислоВСтроку(IDПоследнего);
-
- OPI_Инструменты.ДобавитьПоле("lastEventId", IDПоследнего, "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("pollTime" , Таймаут , "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить информацию о файле
-// Получает информацию о файле по его ID
-//
-// Примечание:
-// Метод в документации API: [GET /files/getInfo](@teams.vk.com/botapi/#/files/get_files_getInfo)
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// IDФайла - Строка, Число - ID Файла - fileid
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK Teams
-Функция ПолучитьИнформациюОФайле(Знач Токен, Знач IDФайла) Экспорт
-
- URL = "/files/getInfo";
- Параметры = НормализоватьОснову(URL, Токен);
-
- OPI_Инструменты.ДобавитьПоле("fileId", IDФайла , "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область ОтправкаСообщений
-
-// Отправить текстовое сообщение
-// Отправляет текстовое сообщение в чат
-//
-// Примечание:
-// Можно упомянуть пользователя, добавив в текст его userId в следующем формате @[userId]
-// Метод в документации API: [GET /messages/sendText](@teams.vk.com/botapi/#/messages/get_messages_sendText)
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// IDЧата - Строка, Число - ID чата для отправки сообщения - chatid
-// Текст - Строка - Текст сообщения - text
-// IDЦитируемого - Строка, Число - ID цитируемого сообщения, если необходимо - reply
-// Клавиатура - Массив Из Строка - Кнопки к сообщению, если необходимо - keyboard
-// Разметка - Строка - Вид разметки для текста сообщения: MarkdownV2 или HTML - parsemod
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK Teams
-Функция ОтправитьТекстовоеСообщение(Знач Токен
- , Знач IDЧата
- , Знач Текст
- , Знач IDЦитируемого = 0
- , Знач Клавиатура = ""
- , Знач Разметка = "MarkdownV2") Экспорт
-
- Строка_ = "Строка";
-
- URL = "/messages/sendText";
- Параметры = НормализоватьОснову(URL, Токен);
-
- OPI_Инструменты.ДобавитьПоле("chatId" , IDЧата , Строка_ , Параметры);
- OPI_Инструменты.ДобавитьПоле("text" , Текст , Строка_ , Параметры);
- OPI_Инструменты.ДобавитьПоле("replyMsgId" , IDЦитируемого, Строка_ , Параметры);
- OPI_Инструменты.ДобавитьПоле("inlineKeyboardMarkup", Клавиатура , "Коллекция", Параметры);
- OPI_Инструменты.ДобавитьПоле("parseMode" , Разметка , Строка_ , Параметры);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Отправить файл
-// Отправляет файл в чат
-//
-// Примечание:
-// Метод в документации API: [POST /messages/sendFile](@teams.vk.com/botapi/#/messages/post_messages_sendFile)
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// IDЧата - Строка, Число - ID чата для отправки файла - chatid
-// Файл - ДвоичныеДанные, Строка - Файл для отправки - file
-// Текст - Строка - Подпись к файлу - text
-// ИмяФайла - Строка - Отображаемое имя файла - filename
-// Разметка - Строка - Вид разметки для текста сообщения: MarkdownV2 или HTML - parsemod
-// ТипКонтента - Строка - Тип файла для отправки - type
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK Teams
-Функция ОтправитьФайл(Знач Токен
- , Знач IDЧата
- , Знач Файл
- , Знач Текст = ""
- , Знач ИмяФайла = ""
- , Знач Разметка = "MarkdownV2"
- , Знач ТипКонтента = "image/jpeg") Экспорт
-
- Строка_ = "Строка";
-
- URL = "/messages/sendFile";
- Параметры = НормализоватьОснову(URL, Токен);
-
- OPI_Инструменты.ДобавитьПоле("chatId" , IDЧата , Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("caption" , Текст , Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("parseMode", Разметка, Строка_, Параметры);
-
- Если ТипЗнч(Файл) = Тип(Строка_) Тогда
- ФайлОбъект = Новый Файл(Файл);
- ИспользуемоеИмя = ФайлОбъект.Имя;
- Иначе
- ИспользуемоеИмя = "file";
- КонецЕсли;
-
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Файл);
- ИспользуемоеИмя = ?(ЗначениеЗаполнено(ИмяФайла), ИмяФайла, ИспользуемоеИмя);
-
- Файлы = Новый Соответствие;
- Файлы.Вставить("file|" + ИспользуемоеИмя, Файл);
-
- Ответ = OPI_ЗапросыHTTP.PostMultipart(URL, Параметры, Файлы, ТипКонтента);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Отправить голосовое сообщение
-// Отправляет аудиофайл в качестве голосового сообщения
-//
-// Примечание:
-// Если вы хотите, чтобы клиент отображал этот файл как воспроизводимое голосовое сообщение, он должен быть в формате aac, ogg или m4a
-// Метод в документации API: [POST /messages/sendVoice](@teams.vk.com/botapi/#/messages/post_messages_sendVoice)
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// IDЧата - Строка, Число - ID чата для отправки файла - chatid
-// Файл - ДвоичныеДанные, Строка - Файл для отправки - file
-// ТипФайла - Строка - Тип аудиофайла: aac, ogg или m4a - type
-// IDЦитируемого - Строка, Число - ID цитируемого сообщения, если необходимо - reply
-// Клавиатура - Массив Из Строка - Кнопки к сообщению, если необходимо - keyboard
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK Teams
-Функция ОтправитьГолосовоеСообщение(Знач Токен
- , Знач IDЧата
- , Знач Файл
- , Знач ТипФайла = "m4a"
- , Знач IDЦитируемого = 0
- , Знач Клавиатура = "") Экспорт
-
- URL = "/messages/sendVoice";
- Параметры = НормализоватьОснову(URL, Токен);
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(ТипФайла);
-
- СоответствиеMIME = Новый Соответствие;
- СоответствиеMIME.Вставить("m4a", "audio/mp4");
- СоответствиеMIME.Вставить("ogg", "audio/ogg");
- СоответствиеMIME.Вставить("aac", "audio/aac");
-
- OPI_Инструменты.ДобавитьПоле("chatId" , IDЧата , "Строка" , Параметры);
- OPI_Инструменты.ДобавитьПоле("inlineKeyboardMarkup", Клавиатура , "Коллекция", Параметры);
- OPI_Инструменты.ДобавитьПоле("replyMsgId" , IDЦитируемого, "Строка" , Параметры);
-
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Файл);
-
- Файлы = Новый Соответствие;
- Файлы.Вставить("file|voice", Файл);
-
- Ответ = OPI_ЗапросыHTTP.PostMultipart(URL, Параметры, Файлы, СоответствиеMIME[ТипФайла]);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Изменить текст сообщения
-// Изменяет текст сущесствующего сообщения
-//
-// Примечание:
-// Можно упомянуть пользователя, добавив в текст его userId в следующем формате @[userId]
-// Метод в документации API: [GET /messages/editText](@teams.vk.com/botapi/#/messages/get_messages_editText)
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// IDЧата - Строка, Число - ID чата для отправки сообщения - chatid
-// IDСообщения - Строка, Число - ID сообщения для редактирования - messageid
-// Текст - Строка - Новый текст сообщения - text
-// Разметка - Строка - Вид разметки для текста сообщения: MarkdownV2 или HTML - parsemod
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK Teams
-Функция ИзменитьТекстСообщения(Знач Токен
- , Знач IDЧата
- , Знач IDСообщения
- , Знач Текст
- , Знач Разметка = "MarkdownV2") Экспорт
-
- Строка_ = "Строка";
-
- URL = "/messages/editText";
- Параметры = НормализоватьОснову(URL, Токен);
-
- OPI_Инструменты.ДобавитьПоле("chatId" , IDЧата , Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("text" , Текст , Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("msgId" , IDСообщения, Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("parseMode", Разметка , Строка_, Параметры);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Удалить сообщение
-// Удаляет сообщение по ID
-//
-// Примечание:
-// Метод в документации API: [GET /messages/deleteMessages](@teams.vk.com/botapi/#/messages/get_messages_deleteMessages)
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// IDЧата - Строка, Число - ID чата для отправки сообщения - chatid
-// IDСообщения - Строка, Число - ID сообщения для редактирования - messageid
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK Teams
-Функция УдалитьСообщение(Знач Токен, Знач IDЧата, Знач IDСообщения) Экспорт
-
- URL = "/messages/deleteMessages";
- Параметры = НормализоватьОснову(URL, Токен);
-
- OPI_Инструменты.ДобавитьПоле("chatId", IDЧата , "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("msgId" , IDСообщения, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Переслать файл
-// Отправляет ранее загруженный файл по его ID
-//
-// Примечание:
-// Метод в документации API: [GET /messages/sendFile](@teams.vk.com/botapi/#/messages/get_messages_sendFile)
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// IDЧата - Строка, Число - ID чата для отправки файла - chatid
-// IDФайла - Строка, Число - ID Файла для отправки - fileid
-// Текст - Строка - Подпись к файлу - text
-// Разметка - Строка - Вид разметки для текста сообщения: MarkdownV2 или HTML - parsemod
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK Teams
-Функция ПереслатьФайл(Знач Токен
- , Знач IDЧата
- , Знач IDФайла
- , Знач Текст = ""
- , Знач Разметка = "MarkdownV2") Экспорт
-
- Строка_ = "Строка";
-
- URL = "/messages/sendFile";
- Параметры = НормализоватьОснову(URL, Токен);
-
- OPI_Инструменты.ДобавитьПоле("chatId" , IDЧата , Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("caption" , Текст , Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("parseMode" , Разметка, Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("fileId" , IDФайла , Строка_, Параметры);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Переслать голосовое сообщение
-// Отправляет ранее загруженное голосовое сообщение по ID
-//
-// Примечание:
-// Метод в документации API: [GET /messages/sendVoice](@teams.vk.com/botapi/#/messages/get_messages_sendVoice)
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// IDЧата - Строка, Число - ID чата для отправки файла - chatid
-// IDФайла - Строка, Число - ID Файла голосового сообщения - fileid
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK Teams
-Функция ПереслатьГолосовоеСообщение(Знач Токен, Знач IDЧата, Знач IDФайла) Экспорт
-
- URL = "/messages/sendVoice";
- Параметры = НормализоватьОснову(URL, Токен);
-
- OPI_Инструменты.ДобавитьПоле("chatId", IDЧата , "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("fileId", IDФайла , "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Переслать сообщение
-// Переслыает существующее сообщение в текущий диалог
-//
-// Примечание:
-// В IDЧатаИсточника можно передавать только chatId из событий (код из ссылки на чат не подходит)
-// Метод в документации API: [GET /messages/sendText](@teams.vk.com/botapi/#/messages/get_messages_sendText)
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// IDСообщения - Строка, Число - ID оригинального сообщения - messageid
-// IDЧатаИсточника - Строка, Число - ID чата источника оригинального сообщения - fromid
-// IDЧата - Строка, Число - ID чата для отправки сообщения - chatid
-// Текст - Строка - Дополнительный текст сообщения - text
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK Teams
-Функция ПереслатьСообщение(Знач Токен, Знач IDСообщения, Знач IDЧатаИсточника, Знач IDЧата, Знач Текст = "") Экспорт
-
- Строка_ = "Строка";
-
- URL = "/messages/sendText";
- Параметры = НормализоватьОснову(URL, Токен);
-
- OPI_Инструменты.ДобавитьПоле("chatId" , IDЧата , Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("text" , Текст , Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("forwardChatId", IDЧатаИсточника, Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("forwardMsgId" , IDСообщения , Строка_, Параметры);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Закрепить сообщение
-// Закрепляет выбранное сообщение в чате
-//
-// Примечание:
-// Для вызова этого метода бот должен быть администратором в чате
-// Метод в документации API: [GET /chats/pinMessage](@teams.vk.com/botapi/#/chats/get_chats_pinMessage)
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// IDЧата - Строка, Число - ID чата - chatid
-// IDСообщения - Строка, Число - ID сообщения для закрепления - messageid
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK Teams
-Функция ЗакрепитьСообщение(Знач Токен, Знач IDЧата, Знач IDСообщения) Экспорт
-
- URL = "/chats/pinMessage";
- Параметры = НормализоватьОснову(URL, Токен);
-
- OPI_Инструменты.ДобавитьПоле("chatId", IDЧата , "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("msgId" , IDСообщения, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Открепить сообщение
-// Открепляет ранее закрепленное сообщение в чате
-//
-// Примечание:
-// Для вызова этого метода бот должен быть администратором в чате
-// Метод в документации API: [GET /chats/unpinMessage](@teams.vk.com/botapi/#/chats/get_chats_unpinMessage)
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// IDЧата - Строка, Число - ID чата - chatid
-// IDСообщения - Строка, Число - ID сообщения для открепления - messageid
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK Teams
-Функция ОткрепитьСообщение(Знач Токен, Знач IDЧата, Знач IDСообщения) Экспорт
-
- URL = "/chats/unpinMessage";
- Параметры = НормализоватьОснову(URL, Токен);
-
- OPI_Инструменты.ДобавитьПоле("chatId", IDЧата , "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("msgId" , IDСообщения, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Ответить на событие клавиатуры
-// Возвращает ответ пользователю при нажатии на кнопку клавиатуры
-//
-// Примечание:
-// Вызов данного метода должен использоваться в ответ на получение события callbackQuery
-// Метод в документации API: [GET /messages/answerCallbackQuery](@teams.vk.com/botapi/#/messages/get_messages_answerCallbackQuery)
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// IDСобытия - Строка - Идентификатор callback query полученного ботом - queryid
-// Текст - Строка - Текст ответа - text
-// URL - Строка - URL, который будет открыт клиентским приложением - url
-// ЭтоПредупреждение - Булево - Отображать ответ как предупреждение (alert) - showalert
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK Teams
-Функция ОтветитьНаСобытиеКлавиатуры(Знач Токен
- , Знач IDСобытия
- , Знач Текст = ""
- , Знач URL = ""
- , Знач ЭтоПредупреждение = Ложь) Экспорт
-
- Строка_ = "Строка";
-
- URLЗапроса = "/messages/answerCallbackQuery";
- Параметры = НормализоватьОснову(URL, Токен);
-
- OPI_Инструменты.ДобавитьПоле("queryId" , IDСобытия , Строка_ , Параметры);
- OPI_Инструменты.ДобавитьПоле("text" , Текст , Строка_ , Параметры);
- OPI_Инструменты.ДобавитьПоле("url" , URL , Строка_ , Параметры);
- OPI_Инструменты.ДобавитьПоле("showAlert", ЭтоПредупреждение , "Булево", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.Get(URLЗапроса, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Сформировать кнопку действия
-// Формирует кнопку действия для клавиатуры сообщения
-//
-// Примечание:
-// Используется при вызове функции `ОтправитьТекстовоеСообщение`
-//
-// Параметры:
-// Текст - Строка - Текст кнопки - text
-// Значение - Строка - Значение, возвращаемое в событии нажатия. Только если не заполнено URL - data
-// URL - Строка - URL для создания кнопки открытия страницы. Только если не заполнено Значение - url
-// Стиль - Строка - Стиль кнопки: primary, attention или base - style
-//
-// Возвращаемое значение:
-// Структура - Кнопка для клавиатуры
-Функция СформироватьКнопкуДействия(Знач Текст, Знач Значение = "", Знач URL = "", Знач Стиль = "base") Экспорт
-
- Строка_ = "Строка";
-
- СтруктураКнопки = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("text" , Текст , Строка_, СтруктураКнопки);
- OPI_Инструменты.ДобавитьПоле("callbackData", Значение, Строка_, СтруктураКнопки);
- OPI_Инструменты.ДобавитьПоле("url" , URL , Строка_, СтруктураКнопки);
- OPI_Инструменты.ДобавитьПоле("style" , Стиль , Строка_, СтруктураКнопки);
-
- Возврат СтруктураКнопки;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область УправлениеЧатами
-
-// Исключить пользователей чата
-// Исключает пользователей из чата
-//
-// Примечание:
-// Метод в документации API: [GET /chats/members/delete](@teams.vk.com/botapi/#/chats/get_chats_members_delete)
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// IDЧата - Строка, Число - ID чата - chatid
-// Пользователи - Строка, Число, Массив Из Строка, Число - Пользователь или пользователи чата для удаления - members
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK Teams
-Функция ИсключитьПользователейЧата(Знач Токен, Знач IDЧата, Знач Пользователи) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьМассив(Пользователи);
-
- URL = "/chats/members/delete";
- Параметры = НормализоватьОснову(URL, Токен);
-
- СтрокаПользователей = "";
-
- Для Каждого ПользовательЧата Из Пользователи Цикл
-
- ТекущийПользователь = OPI_Инструменты.ЧислоВСтроку(ПользовательЧата);
- СтрокаПользователей = ?(ЗначениеЗаполнено(СтрокаПользователей), СтрокаПользователей + ",", "[");
-
- СтрокаПользователей = СтрокаПользователей
- + "{""sn"":"""
- + ТекущийПользователь
- + """}";
-
- КонецЦикла;
-
- СтрокаПользователей = СтрокаПользователей + "]";
-
- OPI_Инструменты.ДобавитьПоле("chatId" , IDЧата , "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("members", СтрокаПользователей, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Изменить аватар чата
-// Изменяет картинку аватар чата
-//
-// Примечание:
-// Метод в документации API: [POST /chats/avatar/set](@teams.vk.com/botapi/#/chats/post_chats_avatar_set)
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// IDЧата - Строка, Число - ID чата - chatid
-// Файл - ДвоичныеДанные, Строка - Файл картинки - file
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK Teams
-Функция ИзменитьАватарЧата(Знач Токен, Знач IDЧата, Знач Файл) Экспорт
-
- URL = "/chats/avatar/set";
- Параметры = НормализоватьОснову(URL, Токен);
-
- OPI_Инструменты.ДобавитьПоле("chatId", IDЧата, "Строка", Параметры);
-
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Файл);
-
- Файлы = Новый Соответствие;
- Файлы.Вставить("image|image", Файл);
-
- Ответ = OPI_ЗапросыHTTP.PostMultipart(URL, Параметры, Файлы, "image/xyz");
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить информацию о чате
-// Получает основную информацию о чате
-//
-// Примечание:
-// Метод в документации API: [GET /chats/getInfo](@teams.vk.com/botapi/#/chats/get_chats_getInfo)
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// IDЧата - Строка, Число - ID чата - chatid
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK Teams
-Функция ПолучитьИнформациюОЧате(Знач Токен, Знач IDЧата) Экспорт
-
- Метод = "/chats/getInfo";
- Ответ = ПолучитьДанныеЧата(Токен, IDЧата, Метод);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить администраторов чата
-// Получает список администраторов чата
-//
-// Примечание:
-// Метод в документации API: [GET /chats/getAdmins](@teams.vk.com/botapi/#/chats/get_chats_getAdmins)
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// IDЧата - Строка, Число - ID чата - chatid
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK Teams
-Функция ПолучитьАдминистраторовЧата(Знач Токен, Знач IDЧата) Экспорт
-
- Метод = "/chats/getAdmins";
- Ответ = ПолучитьДанныеЧата(Токен, IDЧата, Метод);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить пользователей чата
-// Получает список пользователей чата
-//
-// Примечание:
-// Метод в документации API: [GET /chats/getMembers](@teams.vk.com/botapi/#/chats/get_chats_getMembers)
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// IDЧата - Строка, Число - ID чата - chatid
-// Курсор - Строка - Маркер продолжения списка из предыдущего запроса - cursor
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK Teams
-Функция ПолучитьПользователейЧата(Знач Токен, Знач IDЧата, Знач Курсор = "") Экспорт
-
- Метод = "/chats/getMembers";
- Ответ = ПолучитьДанныеЧата(Токен, IDЧата, Метод, Курсор);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить заблокированных пользователей чата
-// Получает список заблокированных пользователей чата
-//
-// Примечание:
-// Для вызова этого метода бот должен быть администратором в чате.
-// Метод в документации API: [GET /chats/getBlockedUsers](@teams.vk.com/botapi/#/chats/get_chats_getBlockedUsers)
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// IDЧата - Строка, Число - ID чата - chatid
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK Teams
-Функция ПолучитьЗаблокированныхПользователейЧата(Знач Токен, Знач IDЧата) Экспорт
-
- Метод = "/chats/getBlockedUsers";
- Ответ = ПолучитьДанныеЧата(Токен, IDЧата, Метод);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить запросы вступления чата
-// Получает список запросов на вступление в чат
-//
-// Примечание:
-// Для вызова этого метода бот должен быть администратором в чате.
-// Метод в документации API: [GET /chats/getPendingUsers](@teams.vk.com/botapi/#/chats/get_chats_getPendingUsers)
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// IDЧата - Строка, Число - ID чата - chatid
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK Teams
-Функция ПолучитьЗапросыВступленияЧата(Знач Токен, Знач IDЧата) Экспорт
-
- Метод = "/chats/getPendingUsers";
- Ответ = ПолучитьДанныеЧата(Токен, IDЧата, Метод);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Заблокировать пользователя чата
-// Блокирует выбранного пользователя в чате
-//
-// Примечание:
-// Для вызова этого метода бот должен быть администратором в чате.
-// Метод в документации API: [GET /chats/blockUser](@teams.vk.com/botapi/#/chats/get_chats_blockUser)
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// IDЧата - Строка, Число - ID чата - chatid
-// IDПользователя - Строка, Число - ID пользователя для блокировки - userid
-// УдалитьПоследниеСообщения - Булево - Удалить последние сообщения перед блокировкой - dellast
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK Teams
-Функция ЗаблокироватьПользователяЧата(Знач Токен
- , Знач IDЧата
- , Знач IDПользователя
- , Знач УдалитьПоследниеСообщения = Ложь) Экспорт
-
- URL = "/chats/blockUser";
- Параметры = НормализоватьОснову(URL, Токен);
-
- OPI_Инструменты.ДобавитьПоле("chatId" , IDЧата , "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("userId" , IDПользователя , "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("delLastMessages", УдалитьПоследниеСообщения, "Булево", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Разблокировать пользователя чата
-// Разблокирует ранее заблокированного пользователя в чате
-//
-// Примечание:
-// Для вызова этого метода бот должен быть администратором в чате.
-// Метод в документации API: [GET /chats/unblockUser](@teams.vk.com/botapi/#/chats/get_chats_unblockUser)
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// IDЧата - Строка, Число - ID чата - chatid
-// IDПользователя - Строка, Число - ID пользователя - userid
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK Teams
-Функция РазблокироватьПользователяЧата(Знач Токен, Знач IDЧата, Знач IDПользователя) Экспорт
-
- URL = "/chats/unblockUser";
- Параметры = НормализоватьОснову(URL, Токен);
-
- OPI_Инструменты.ДобавитьПоле("chatId", IDЧата , "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("userId", IDПользователя, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Одобрить заявку на вступление
-// Подтверждает вступление пользователя в закрытый чат
-//
-// Примечание:
-// Для вызова этого метода бот должен быть администратором в чате.
-// Метод в документации API: [GET /chats/resolvePending](@teams.vk.com/botapi/#/chats/get_chats_resolvePending)
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// IDЧата - Строка, Число - ID чата - chatid
-// IDПользователя - Строка, Число - ID пользователя. Ответ на все заявки, если не заполнено - userid
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK Teams
-Функция ОдобритьЗаявкуНаВступление(Знач Токен, Знач IDЧата, Знач IDПользователя = "") Экспорт
-
- Ответ = ОтветитьНаЗаявкуНаВступление(Токен, IDЧата, Истина, IDПользователя);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Отклонить заявку на вступление
-// Отклоняет вступление пользователя в закрытый чат
-//
-// Примечание:
-// Для вызова этого метода бот должен быть администратором в чате.
-// Метод в документации API: [GET /chats/resolvePending](@teams.vk.com/botapi/#/chats/get_chats_resolvePending)
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// IDЧата - Строка, Число - ID чата - chatid
-// IDПользователя - Строка, Число - ID пользователя. Ответ на все заявки, если не заполнено - userid
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK Teams
-Функция ОтклонитьЗаявкуНаВступление(Знач Токен, Знач IDЧата, Знач IDПользователя = "") Экспорт
-
- Ответ = ОтветитьНаЗаявкуНаВступление(Токен, IDЧата, Ложь, IDПользователя);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Установить заголовок чата
-// Устанавливает новый заголовок чата
-//
-// Примечание:
-// Для вызова этого метода бот должен быть администратором в чате.
-// Метод в документации API: [GET /chats/setTitle](@teams.vk.com/botapi/#/chats/get_chats_setTitle)
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// IDЧата - Строка, Число - ID чата - chatid
-// Текст - Строка - Текст заголовка - text
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK Teams
-Функция УстановитьЗаголовокЧата(Знач Токен, Знач IDЧата, Знач Текст) Экспорт
-
- Ответ = ИзменитьПараметрыЧата(Токен, IDЧата, "title", Текст);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Установить описание чата
-// Устанавливает новое описание чата
-//
-// Примечание:
-// Для вызова этого метода бот должен быть администратором в чате.
-// Метод в документации API: [GET /chats/setAbout](@teams.vk.com/botapi/#/chats/get_chats_setAbout)
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// IDЧата - Строка, Число - ID чата - chatid
-// Текст - Строка - Текст описания - text
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK Teams
-Функция УстановитьОписаниеЧата(Знач Токен, Знач IDЧата, Знач Текст) Экспорт
-
- Ответ = ИзменитьПараметрыЧата(Токен, IDЧата, "about", Текст);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Установить правила чата
-// Устанавливает новые правила чата
-//
-// Примечание:
-// Для вызова этого метода бот должен быть администратором в чате.
-// Метод в документации API: [GET /chats/setRules](@teams.vk.com/botapi/#/chats/get_chats_setRules)
-//
-// Параметры:
-// Токен - Строка - Токен бота - token
-// IDЧата - Строка, Число - ID чата - chatid
-// Текст - Строка - Текст правил - text
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK Teams
-Функция УстановитьПравилаЧата(Знач Токен, Знач IDЧата, Знач Текст) Экспорт
-
- Ответ = ИзменитьПараметрыЧата(Токен, IDЧата, "rules", Текст);
-
- Возврат Ответ;
-
-КонецФункции
-
-#КонецОбласти
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-Функция НормализоватьОснову(URL, Знач Токен)
-
- URL = "https://myteam.mail.ru/bot/v1" + URL;
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("token", Токен, "Строка", Параметры);
-
- Возврат Параметры;
-
-КонецФункции
-
-Функция ПолучитьДанныеЧата(Знач Токен, Знач IDЧата, Знач Метод, Знач Курсор = "")
-
- URL = Метод;
- Параметры = НормализоватьОснову(URL, Токен);
-
- OPI_Инструменты.ДобавитьПоле("chatId", IDЧата, "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("cursor", Курсор, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-Функция ОтветитьНаЗаявкуНаВступление(Знач Токен, Знач IDЧата, Знач Ответ, Знач IDПользователя = "")
-
- URL = "/chats/resolvePending";
- Параметры = НормализоватьОснову(URL, Токен);
-
- OPI_Инструменты.ДобавитьПоле("chatId" , IDЧата, "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("approve", Ответ , "Булево", Параметры);
-
- Если ЗначениеЗаполнено(IDПользователя) Тогда
- OPI_Инструменты.ДобавитьПоле("userId" , IDПользователя, "Строка", Параметры);
- Иначе
- OPI_Инструменты.ДобавитьПоле("everyone", Истина , "Булево", Параметры);
- КонецЕсли;
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-Функция ИзменитьПараметрыЧата(Знач Токен, Знач IDЧата, Знач Параметр, Знач Значение)
-
- URL = "/chats/set" + ТРег(Параметр);
- Параметры = НормализоватьОснову(URL, Токен);
-
- OPI_Инструменты.ДобавитьПоле("chatId", IDЧата , "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле(Параметр, Значение, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры);
-
- Возврат Ответ;
-
-КонецФункции
-
-#КонецОбласти
diff --git a/XML/CommonModules/OPI_Viber.xml b/XML/CommonModules/OPI_Viber.xml
deleted file mode 100644
index 03a67d6128..0000000000
--- a/XML/CommonModules/OPI_Viber.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- OPI_Viber
-
-
- ru
- Viber (ОПИ)
-
-
- Модуль для работы с Viber из набора ОПИ
- false
- false
- true
- true
- true
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git a/XML/CommonModules/OPI_Viber/Ext/Module.bsl b/XML/CommonModules/OPI_Viber/Ext/Module.bsl
deleted file mode 100644
index 0f029d8b79..0000000000
--- a/XML/CommonModules/OPI_Viber/Ext/Module.bsl
+++ /dev/null
@@ -1,405 +0,0 @@
-// OneScript: ./OInt/core/Modules/OPI_Viber.os
-// Lib: Viber
-// CLI: viber
-// Keywords: viber
-
-// MIT License
-
-// Copyright (c) 2023-2025 Anton Tsitavets
-
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-
-// The above copyright notice and this permission notice shall be included in all
-// copies or substantial portions of the Software.
-
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-// SOFTWARE.
-
-// https://github.com/Bayselonarrend/OpenIntegrations
-
-// BSLLS:LatinAndCyrillicSymbolInWord-off
-// BSLLS:IncorrectLineBreak-off
-// BSLLS:UsingServiceTag-off
-// BSLLS:UsingSynchronousCalls-off
-// BSLLS:MagicNumber-off
-
-//@skip-check module-structure-top-region
-//@skip-check module-structure-method-in-regions
-//@skip-check wrong-string-literal-content
-
-#Область ПрограммныйИнтерфейс
-
-#Область НастройкиИИнформация
-
-// Установить Webhook
-// ВАЖНО: Установка Webhook обязательна по правилам Viber. Для этого надо иметь свободный URL,
-// который будет возвращать 200 и подлинный SSL сертификат. Если есть сертификат и база опубликована
-// на сервере - можно использовать http-сервис. Туда же будет приходить и информация о новых сообщениях
-// Viber периодически стучит по адресу Webhook, так что если он будет неактивен, то все перестанет работать
-//
-// Параметры:
-// Токен - Строка - Токен Viber - token
-// URL - Строка - URL для установки Webhook - url
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Viber
-Функция УстановитьWebhook(Знач Токен, Знач URL) Экспорт
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("url" , URL , "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("auth_token" , Токен, "Строка", Параметры);
-
- Возврат OPI_ЗапросыHTTP.PostСТелом("https://chatapi.viber.com/pa/set_webhook", Параметры);
-
-КонецФункции
-
-// Получить информацию о канале
-// Тут можно получить ID пользователей канала. ID для бота необходимо получать из прилетов на Webhook
-// ID пользователя из информации о канале не подойдет для отправки сообщений через бота - они разные
-//
-// Параметры:
-// Токен - Строка - Токен - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Viber
-Функция ПолучитьИнформациюОКанале(Знач Токен) Экспорт
-
- URL = "https://chatapi.viber.com/pa/get_account_info";
- Возврат OPI_ЗапросыHTTP.Get(URL, , ТокенВЗаголовки(Токен));
-
-КонецФункции
-
-// Получить данные пользователя
-// Получает информацию о пользователе по ID
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// IDПользователя - Строка, Число - ID пользователя Viber - user
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Viber
-Функция ПолучитьДанныеПользователя(Знач Токен, Знач IDПользователя) Экспорт
-
- URL = "https://chatapi.viber.com/pa/get_user_details";
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("id", IDПользователя, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, ТокенВЗаголовки(Токен));
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить онлайн пользователей
-// Получает статус пользователя или нескольких пользователей по ID
-//
-// Параметры:
-// Токен - Строка - Токен Viber - token
-// IDПользователей - Строка,Число,Массив из Строка,Число - ID пользователей(я) Viber - users
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Viber
-Функция ПолучитьОнлайнПользователей(Знач Токен, Знач IDПользователей) Экспорт
-
- URL = "https://chatapi.viber.com/pa/get_online";
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("ids", IDПользователей, "Коллекция", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, ТокенВЗаголовки(Токен));
-
- Возврат Ответ;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область ОтправкаСообщений
-
-// Отправить текстовое сообщение
-// Отправляет текстовое сообщение в чат или канал
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// Текст - Строка - Текст сообщения - text
-// IDПользователя - Строка,Число - ID пользователя. Для канала > администратора, для бота > получателя - user
-// ОтправкаВКанал - Булево - Отправка в канал или в чат бота - ischannel
-// Клавиатура - Структура из Строка - См. СформироватьКлавиатуруИзМассиваКнопок - keyboard
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Viber
-Функция ОтправитьТекстовоеСообщение(Знач Токен
- , Знач Текст
- , Знач IDПользователя
- , Знач ОтправкаВКанал
- , Знач Клавиатура = "") Экспорт
-
- Возврат ОтправитьСообщение(Токен, "text", IDПользователя, ОтправкаВКанал, , Текст, Клавиатура);
-
-КонецФункции
-
-// Отправить картинку
-// Отправляет картинку в чат или канал
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// URL - Строка - URL картинки - picture
-// IDПользователя - Строка,Число - ID пользователя. Для канала > администратора, для бота > получателя - user
-// ОтправкаВКанал - булево - Отправка в канал или в чат бота - ischannel
-// Описание - Строка - Аннотация к картинке - description
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Viber
-Функция ОтправитьКартинку(Знач Токен, Знач URL, Знач IDПользователя, Знач ОтправкаВКанал, Знач Описание = "") Экспорт
-
- Возврат ОтправитьСообщение(Токен, "picture", IDПользователя, ОтправкаВКанал, URL, Описание);
-
-КонецФункции
-
-// Отправить файл
-// Отправляет файл (документ) в чат или канал
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// URL - Строка - URL файла - file
-// IDПользователя - Строка,Число - ID пользователя. Для канала > администратора, для бота > получателя - user
-// ОтправкаВКанал - Булево - Отправка в канал или в чат бота - ischannel
-// Расширение - Строка - Расширение файла - ext
-// Размер - Число - Размер файла. Если не заполнен > определяется автоматически скачиванием файла - size
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Viber
-Функция ОтправитьФайл(Знач Токен
- , Знач URL
- , Знач IDПользователя
- , Знач ОтправкаВКанал
- , Знач Расширение
- , Знач Размер = "") Экспорт
-
- Если Не ЗначениеЗаполнено(Размер) Тогда
-
- Ответ = OPI_ЗапросыHTTP.Get(URL);
- Размер = Ответ.Размер();
-
- КонецЕсли;
-
- Строка_ = "Строка";
- Расширение = СтрЗаменить(Расширение, ".", "");
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("URL" , URL , Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("Размер" , Размер , Строка_, Параметры);
- OPI_Инструменты.ДобавитьПоле("Расширение", Расширение, Строка_, Параметры);
-
- Возврат ОтправитьСообщение(Токен, "file", IDПользователя, ОтправкаВКанал, Параметры);
-
-КонецФункции
-
-// Отправить контакт
-// Отправляет контакт с номером телефона в чат или канал
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// ИмяКонтакта - Строка - Имя контакта - name
-// НомерТелефона - Строка - Номер телефона - phone
-// IDПользователя - Строка,Число - ID пользователя. Для канала > администратора, для бота > получателя - user
-// ОтправкаВКанал - Булево - Отправка в канал или в чат бота - ischannel
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Viber
-Функция ОтправитьКонтакт(Знач Токен
- , Знач ИмяКонтакта
- , Знач НомерТелефона
- , Знач IDПользователя
- , Знач ОтправкаВКанал) Экспорт
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("name" , ИмяКонтакта , "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("phone_number", НомерТелефона, "Строка", Параметры);
-
- Возврат ОтправитьСообщение(Токен, "contact", IDПользователя, ОтправкаВКанал, Параметры);
-
-КонецФункции
-
-// Отправить локацию
-// Отправляет географические координаты в чат или канал
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// Широта - Строка,Число - Географическая широта - lat
-// Долгота - Строка,Число - Географическая долгота - long
-// IDПользователя - Строка,Число - ID пользователя. Для канала > администратора, для бота > получателя - user
-// ОтправкаВКанал - Булево - Отправка в канал или в чат бота - ischannel
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Viber
-Функция ОтправитьЛокацию(Знач Токен, Знач Широта, Знач Долгота, Знач IDПользователя, Знач ОтправкаВКанал) Экспорт
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("lat", Широта , "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("lon", Долгота, "Строка", Параметры);
-
- Возврат ОтправитьСообщение(Токен, "location", IDПользователя, ОтправкаВКанал, Параметры);
-
-КонецФункции
-
-// Отправить ссылку
-// Отправляет URL с предпросмотром в чат или канал
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// URL - Строка - Отправляемая ссылка - url
-// IDПользователя - Строка,Число - ID пользователя. Для канала > администратора, для бота > получателя - user
-// ОтправкаВКанал - Булево - Отправка в канал или в чат бота - ischannel
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Viber
-Функция ОтправитьСсылку(Знач Токен, Знач URL, Знач IDПользователя, Знач ОтправкаВКанал) Экспорт
-
- Возврат ОтправитьСообщение(Токен, "url", IDПользователя, ОтправкаВКанал, URL);
-
-КонецФункции
-
-// Сформировать клавиатуру из массива кнопок
-// Возвращает структура клавиатуры для сообщений
-//
-// Параметры:
-// МассивКнопок - Массив из Строка - Массив кнопок - buttons
-// ЦветКнопок - Строка - HEX цвет кнопок с # в начале - color
-//
-// Возвращаемое значение:
-// Структура - Сформировать клавиатуру из массива кнопок:
-// * Buttons - Массив из Структура - Массив сформированных кнопок
-// * Type - Строка - Тип клавиатуры
-Функция СформироватьКлавиатуруИзМассиваКнопок(Знач МассивКнопок, Знач ЦветКнопок = "#2db9b9") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(ЦветКнопок);
- OPI_ПреобразованиеТипов.ПолучитьКоллекцию(МассивКнопок);
-
- МассивСтруктурКнопок = Новый Массив;
- СтруктураКлавиатуры = Новый Структура;
-
- Для Каждого ТекстКнопки Из МассивКнопок Цикл
-
- СтруктураКнопки = Новый Структура;
- СтруктураКнопки.Вставить("ActionType", "reply");
- СтруктураКнопки.Вставить("ActionBody", ТекстКнопки);
- СтруктураКнопки.Вставить("Text" , ТекстКнопки);
- СтруктураКнопки.Вставить("BgColor" , ЦветКнопок);
- СтруктураКнопки.Вставить("Coloumns" , 3);
-
- МассивСтруктурКнопок.Добавить(СтруктураКнопки);
-
- КонецЦикла;
-
- СтруктураКлавиатуры.Вставить("Buttons", МассивСтруктурКнопок);
- СтруктураКлавиатуры.Вставить("Type" , "keyboard");
-
- Возврат СтруктураКлавиатуры;
-
-КонецФункции
-
-#КонецОбласти
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-Функция ОтправитьСообщение(Знач Токен
- , Знач Тип
- , Знач IDПользователя
- , Знач ЭтоКанал
- , Знач Значение = ""
- , Знач Текст = ""
- , Знач Клавиатура = "")
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Тип);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(IDПользователя);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Текст);
- OPI_ПреобразованиеТипов.ПолучитьБулево(ЭтоКанал);
- OPI_ПреобразованиеТипов.ПолучитьКоллекцию(Клавиатура);
-
- СтруктураПараметров = ВернутьСтандартныеПараметры();
- СтруктураПараметров.Вставить("type", Тип);
-
- Если (Тип = "text" Или Тип = "picture") И ЗначениеЗаполнено(Текст) Тогда
- СтруктураПараметров.Вставить("text", Текст);
- КонецЕсли;
-
- Если ТипЗнч(Клавиатура) = Тип("Структура") Тогда
- СтруктураПараметров.Вставить("keyboard", Клавиатура);
- КонецЕсли;
-
- Если ЗначениеЗаполнено(Значение) Тогда
-
- Если Тип = "file" Тогда
-
- СтруктураПараметров.Вставить("media" , Значение.URL);
- СтруктураПараметров.Вставить("size" , Значение.Размер);
- СтруктураПараметров.Вставить("file_name", "Файл." + Значение.Расширение);
-
- ИначеЕсли Тип = "contact" Тогда
- СтруктураПараметров.Вставить("contact" , Значение);
- ИначеЕсли Тип = "location" Тогда
- СтруктураПараметров.Вставить("location" , Значение);
- Иначе
- СтруктураПараметров.Вставить("media" , Значение);
- КонецЕсли;
-
- КонецЕсли;
-
- Если ЭтоКанал Тогда
- СтруктураПараметров.Вставить("from" , IDПользователя);
- URL = "https://chatapi.viber.com/pa/post";
- Иначе
- СтруктураПараметров.Вставить("receiver", IDПользователя);
- URL = "https://chatapi.viber.com/pa/send_message";
- КонецЕсли;
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, СтруктураПараметров, ТокенВЗаголовки(Токен));
-
- Попытка
- Возврат OPI_Инструменты.JsonВСтруктуру(Ответ.ПолучитьТелоКакДвоичныеДанные());
- Исключение
- Возврат Ответ;
- КонецПопытки;
-
-КонецФункции
-
-Функция ВернутьСтандартныеПараметры()
-
- СтруктураОтправителя = Новый Структура;
- СтруктураОтправителя.Вставить("name" , "Bot");
- СтруктураОтправителя.Вставить("avatar", "");
-
- СтруктураПараметров = Новый Структура;
- СтруктураПараметров.Вставить("sender" , СтруктураОтправителя);
- СтруктураПараметров.Вставить("min_api_version", 1);
-
- Возврат СтруктураПараметров;
-
-КонецФункции
-
-Функция ТокенВЗаголовки(Знач Токен)
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
-
- СтруктураЗаголовков = Новый Соответствие;
- СтруктураЗаголовков.Вставить("X-Viber-Auth-Token", Токен);
- Возврат СтруктураЗаголовков;
-
-КонецФункции
-
-#КонецОбласти
diff --git a/XML/CommonModules/OPI_YandexDisk.xml b/XML/CommonModules/OPI_YandexDisk.xml
deleted file mode 100644
index 595504fa6a..0000000000
--- a/XML/CommonModules/OPI_YandexDisk.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- OPI_YandexDisk
-
-
- ru
- Yandex.Disk (ОПИ)
-
-
- Модуль для работы с Yandex.Disk из набора ОПИ
- false
- false
- true
- true
- true
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git a/XML/CommonModules/OPI_YandexDisk/Ext/Module.bsl b/XML/CommonModules/OPI_YandexDisk/Ext/Module.bsl
deleted file mode 100644
index 8b881c7a89..0000000000
--- a/XML/CommonModules/OPI_YandexDisk/Ext/Module.bsl
+++ /dev/null
@@ -1,608 +0,0 @@
-// OneScript: ./OInt/core/Modules/OPI_YandexDisk.os
-// Lib: Yandex Disk
-// CLI: yadisk
-// Keywords: yandexdisk, yandex.disk, yandex disk, yandex drive, yadisk, ya disk
-// Depends: OPI_YandexID
-
-// MIT License
-
-// Copyright (c) 2023-2025 Anton Tsitavets
-
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-
-// The above copyright notice and this permission notice shall be included in all
-// copies or substantial portions of the Software.
-
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-// SOFTWARE.
-
-// https://github.com/Bayselonarrend/OpenIntegrations
-
-// BSLLS:LatinAndCyrillicSymbolInWord-off
-// BSLLS:IncorrectLineBreak-off
-// BSLLS:NumberOfOptionalParams-off
-// BSLLS:UsingServiceTag-off
-// BSLLS:UsingSynchronousCalls-off
-
-//@skip-check method-too-many-params
-//@skip-check module-structure-top-region
-//@skip-check module-structure-method-in-regions
-//@skip-check wrong-string-literal-content
-
-#Область ПрограммныйИнтерфейс
-
-#Область РаботаСФайламиИПапками
-
-// Получить информацию о диске
-// Получает информацию о текущем диске
-//
-// Параметры:
-// Токен - Строка - Токен - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
-Функция ПолучитьИнформациюОДиске(Знач Токен) Экспорт
-
- Заголовки = OPI_YandexID.ПолучитьЗаголовокАвторизации(Токен);
- Ответ = OPI_ЗапросыHTTP.Get("https://cloud-api.yandex.net/v1/disk", , Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Создать папку
-// Создает каталог на диске
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// Путь - Строка - Путь к созаваемой папке - path
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
-Функция СоздатьПапку(Знач Токен, Знач Путь) Экспорт
-
- Заголовки = OPI_YandexID.ПолучитьЗаголовокАвторизации(Токен);
- URL = "https://cloud-api.yandex.net/v1/disk/resources";
- Href = "href";
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("path", Путь, "Строка", Параметры);
-
- Параметры = OPI_Инструменты.ПараметрыЗапросаВСтроку(Параметры);
- Ответ = OPI_ЗапросыHTTP.PutСТелом(URL + Параметры, , Заголовки, Ложь);
-
- URLОтвета = Ответ[Href];
-
- Если Не ЗначениеЗаполнено(URLОтвета) Тогда
- Возврат Ответ;
- КонецЕсли;
-
- Ответ = OPI_ЗапросыHTTP.Get(URLОтвета, , Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить объект
-// Получает информацию об объекте диска по заданному пути
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// Путь - Строка - Путь к папке или файлу - path
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
-Функция ПолучитьОбъект(Знач Токен, Знач Путь) Экспорт
-
- Заголовки = OPI_YandexID.ПолучитьЗаголовокАвторизации(Токен);
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("path", Путь, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.Get("https://cloud-api.yandex.net/v1/disk/resources", Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Удалить объект
-// Удаляет объект по заданному пути
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// Путь - Строка - Путь к удаляемой папке или файлу - path
-// ВКорзину - Булево - В корзину - can
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
-Функция УдалитьОбъект(Знач Токен, Знач Путь, Знач ВКорзину = Истина) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьБулево(ВКорзину);
-
- Заголовки = OPI_YandexID.ПолучитьЗаголовокАвторизации(Токен);
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("path" , Путь , "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("permanently", Не ВКорзину, "Булево", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.Delete("https://cloud-api.yandex.net/v1/disk/resources", Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Создать копию объекта
-// Создает копию объекта по заданному пути и пути к оригиналу
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// Оригинал - Строка - Путь к оригинальному файлу или каталогу - from
-// Путь - Строка - Путь назначения для копии - to
-// Перезаписывать - Булево - Перезаписывать если файл с таким именем уже существует - rewrite
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
-Функция СоздатьКопиюОбъекта(Знач Токен, Знач Оригинал, Знач Путь, Знач Перезаписывать = Ложь) Экспорт
-
- Заголовки = OPI_YandexID.ПолучитьЗаголовокАвторизации(Токен);
- URL = "https://cloud-api.yandex.net/v1/disk/resources/copy";
- Href = "href";
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("from" , Оригинал , "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("path" , Путь , "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("overwrite", Перезаписывать, "Булево", Параметры);
-
- Параметры = OPI_Инструменты.ПараметрыЗапросаВСтроку(Параметры);
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL + Параметры, , Заголовки, Ложь);
-
- URLОтвета = Ответ[Href];
-
- Если Не ЗначениеЗаполнено(URLОтвета) Тогда
- Возврат Ответ;
- КонецЕсли;
-
- Ответ = OPI_ЗапросыHTTP.Get(URLОтвета, , Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить ссылку для скачивания
-// Получает ссылку для скачивания файла
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// Путь - Строка - Путь к файлу для скачивания - path
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
-Функция ПолучитьСсылкуДляСкачивания(Знач Токен, Знач Путь) Экспорт
-
- Заголовки = OPI_YandexID.ПолучитьЗаголовокАвторизации(Токен);
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("path", Путь, "Строка", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.Get("https://cloud-api.yandex.net/v1/disk/resources/download", Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Скачать файл
-// Скачивает файл по указанному пути
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// Путь - Строка - Путь к файлу для скачивания - path
-// ПутьСохранения - Строка - Путь сохранения файла - out
-//
-// Возвращаемое значение:
-// ДвоичныеДанные,Строка - Двоичные данные или путь к файлу при указании параметра ПутьСохранения
-Функция СкачатьФайл(Знач Токен, Знач Путь, Знач ПутьСохранения = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(ПутьСохранения);
-
- Ответ = ПолучитьСсылкуДляСкачивания(Токен, Путь);
- URL = Ответ["href"];
-
- Если Не ЗначениеЗаполнено(URL) Тогда
- Возврат Ответ;
- КонецЕсли;
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, , , ПутьСохранения);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить список файлов
-// Получает список файлов с или без отбора по типу
-// Список доступных типов: audio, backup, book, compressed, data, development,
-// diskimage, document, encoded, executable, flash, font,
-// mage, settings, spreadsheet, text, unknown, video, web
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// Количество - Число,Строка - Количество возвращаемых объектов - amount
-// СмещениеОтНачала - Число - Смещение для получение объектов не из начала списка - offset
-// ОтборПоТипу - Строка - Отбор по типу файла - type
-// СортироватьПоДате - Булево - Истина > сортировать по дате, Ложь > по алфавиту - datesort
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
-Функция ПолучитьСписокФайлов(Знач Токен
- , Знач Количество = 0
- , Знач СмещениеОтНачала = 0
- , Знач ОтборПоТипу = ""
- , Знач СортироватьПоДате = Ложь) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Количество);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(СмещениеОтНачала);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(ОтборПоТипу);
- OPI_ПреобразованиеТипов.ПолучитьБулево(СортироватьПоДате);
-
- Заголовки = OPI_YandexID.ПолучитьЗаголовокАвторизации(Токен);
-
- Параметры = Новый Структура;
-
- Если ЗначениеЗаполнено(Количество) Тогда
- Параметры.Вставить("limit", OPI_Инструменты.ЧислоВСтроку(Количество));
- КонецЕсли;
-
- Если ЗначениеЗаполнено(СмещениеОтНачала) Тогда
- Параметры.Вставить("offset", OPI_Инструменты.ЧислоВСтроку(СмещениеОтНачала));
- КонецЕсли;
-
- Если ЗначениеЗаполнено(ОтборПоТипу) Тогда
- Параметры.Вставить("media_type", ОтборПоТипу);
- КонецЕсли;
-
- Если СортироватьПоДате Тогда
- Назначение = "last-uploaded";
- Иначе
- Назначение = "files";
- КонецЕсли;
-
- Ответ = OPI_ЗапросыHTTP.Get("https://cloud-api.yandex.net/v1/disk/resources/" + Назначение, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Переместить объект
-// Перемещает объект по заданному пути и пути к оригиналу
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// Оригинал - Строка - Путь к оригинальному файлу или папке - from
-// Путь - Строка - Путь назначение для перемещения - to
-// Перезаписывать - Булево - Перезаписывать если файл с таким именем уже существует - rewrite
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
-Функция ПереместитьОбъект(Знач Токен, Знач Оригинал, Знач Путь, Знач Перезаписывать = Ложь) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Оригинал);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Путь);
- OPI_ПреобразованиеТипов.ПолучитьБулево(Перезаписывать);
-
- Заголовки = OPI_YandexID.ПолучитьЗаголовокАвторизации(Токен);
- URL = "https://cloud-api.yandex.net/v1/disk/resources/move";
- Href = "href";
-
- Параметры = Новый Структура;
- Параметры.Вставить("from" , Оригинал);
- Параметры.Вставить("path" , Путь);
- Параметры.Вставить("overwrite" , Перезаписывать);
-
- Параметры = OPI_Инструменты.ПараметрыЗапросаВСтроку(Параметры);
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL + Параметры, , Заголовки, Ложь);
- URLОтвета = Ответ[Href];
-
- Если Не ЗначениеЗаполнено(URLОтвета) Тогда
- Возврат Ответ;
- КонецЕсли;
-
- Ответ = OPI_ЗапросыHTTP.Get(URLОтвета, , Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Загрузить файл
-// Загружает файл на диск по заданному пути
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// Путь - Строка - Путь для сохранение файла на Диске - path
-// Файл - Строка,ДвоичныеДанные - Файл для загрузки - file
-// Перезаписывать - Булево - Перезаписывать, если файл с таким именем уже существует - rewrite
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
-Функция ЗагрузитьФайл(Знач Токен, Знач Путь, Знач Файл, Знач Перезаписывать = Ложь) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Путь);
- OPI_ПреобразованиеТипов.ПолучитьБулево(Перезаписывать);
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Файл);
-
- Заголовки = OPI_YandexID.ПолучитьЗаголовокАвторизации(Токен);
- Href = "href";
- Файл = Новый Структура("file", Файл);
-
- Параметры = Новый Структура;
- Параметры.Вставить("path" , Путь);
- Параметры.Вставить("overwrite" , Перезаписывать);
-
- Ответ = OPI_ЗапросыHTTP.Get("https://cloud-api.yandex.net/v1/disk/resources/upload", Параметры, Заголовки);
- URL = Ответ[Href];
-
- Если Не ЗначениеЗаполнено(URL) Тогда
- Возврат Ответ;
- КонецЕсли;
-
- Ответ = OPI_ЗапросыHTTP.PutMultipart(URL, Новый Структура(), Файл, "multipart", Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Загрузить файл по URL
-// Загружает файл на диск, забирая его по заданному URL
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// Путь - Строка - Путь помещения загруженного файла - path
-// Адрес - Строка - URL файла - url
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
-Функция ЗагрузитьФайлПоURL(Знач Токен, Знач Путь, Знач Адрес) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Путь);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Адрес);
-
- Заголовки = OPI_YandexID.ПолучитьЗаголовокАвторизации(Токен);
- URL = "https://cloud-api.yandex.net/v1/disk/resources/upload";
-
- Параметры = Новый Структура;
- Параметры.Вставить("url" , КодироватьСтроку(Адрес, СпособКодированияСтроки.КодировкаURL));
- Параметры.Вставить("path", Путь);
-
- Параметры = OPI_Инструменты.ПараметрыЗапросаВСтроку(Параметры);
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL + Параметры, , Заголовки, Ложь);
-
- Возврат Ответ;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область УправлениеПубличнымДоступом
-
-// Опубликовать объект
-// Публикует объект диска в публичный доступ
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// Путь - Строка - Путь к публикуемому объекту - path
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
-Функция ОпубликоватьОбъект(Знач Токен, Знач Путь) Экспорт
-
- Возврат ПереключениеОбщегоДоступа(Токен, Путь, Истина);
-
-КонецФункции
-
-// Отменить публикацию объекта
-// Отменяет публикацию ранее опубликованного объекта
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// Путь - Строка - Путь к опубликованному ранее объекту - path
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
-Функция ОтменитьПубликациюОбъекта(Знач Токен, Знач Путь) Экспорт
-
- Возврат ПереключениеОбщегоДоступа(Токен, Путь, Ложь);
-
-КонецФункции
-
-// Получить список опубликованных объектов.
-// Получает список опубликованных объектов
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// Количество - Число - Количество возвращаемых объектов - amount
-// СмещениеОтНачала - Число - Смещение для получение объектов не из начала списка - offset
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
-Функция ПолучитьСписокОпубликованныхОбъектов(Знач Токен, Знач Количество = 0, Знач СмещениеОтНачала = 0) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Количество);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(СмещениеОтНачала);
-
- Заголовки = OPI_YandexID.ПолучитьЗаголовокАвторизации(Токен);
-
- Параметры = Новый Структура;
-
- Если ЗначениеЗаполнено(Количество) Тогда
- Параметры.Вставить("limit", Количество);
- КонецЕсли;
-
- Если ЗначениеЗаполнено(СмещениеОтНачала) Тогда
- Параметры.Вставить("offset", СмещениеОтНачала);
- КонецЕсли;
-
- Ответ = OPI_ЗапросыHTTP.Get("https://cloud-api.yandex.net/v1/disk/resources/public", Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить публичный объект
-// Получает информацию об опубликованном объекте по его URL
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// URL - Строка - Адрес объекта - url
-// Количество - Число - Количество возвращаемых вложенных объектов (для каталога) - amount
-// СмещениеОтНачала - Число - Смещение для получение вложенных объектов не из начала списка - offset
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
-Функция ПолучитьПубличныйОбъект(Знач Токен, Знач URL, Знач Количество = 0, Знач СмещениеОтНачала = 0) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(URL);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Количество);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(СмещениеОтНачала);
-
- Заголовки = OPI_YandexID.ПолучитьЗаголовокАвторизации(Токен);
-
- Параметры = Новый Структура;
-
- Если ЗначениеЗаполнено(Количество) Тогда
- Параметры.Вставить("limit", OPI_Инструменты.ЧислоВСтроку(Количество));
- КонецЕсли;
-
- Если ЗначениеЗаполнено(СмещениеОтНачала) Тогда
- Параметры.Вставить("offset", OPI_Инструменты.ЧислоВСтроку(СмещениеОтНачала));
- КонецЕсли;
-
- Параметры.Вставить("public_key", URL);
-
- Ответ = OPI_ЗапросыHTTP.Get("https://cloud-api.yandex.net/v1/disk/public/resources", Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить ссылку скачивания публичного объекта
-// Получает прямую ссылку для скачивания публичного объекта
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// URL - Строка - Адрес объекта - url
-// Путь - Строка - Путь внутри объекта - path
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
-Функция ПолучитьСсылкуСкачиванияПубличногоОбъекта(Знач Токен, Знач URL, Знач Путь = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(URL);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Путь);
-
- Заголовки = OPI_YandexID.ПолучитьЗаголовокАвторизации(Токен);
-
- Параметры = Новый Структура;
-
- Если ЗначениеЗаполнено(Путь) Тогда
- Параметры.Вставить("path", Путь);
- КонецЕсли;
-
- Параметры.Вставить("public_key", URL);
-
- Ответ = OPI_ЗапросыHTTP.Get("https://cloud-api.yandex.net/v1/disk/public/resources/download", Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Сохранить публичный объект на диск
-// Сохраняет публичный объект на ваш диск
-//
-// Параметры:
-// Токен - Строка - Токен - token
-// URL - Строка - Адрес объекта - url
-// Откуда - Строка - Путь внутри публичного каталога (только для папок) - from
-// Куда - Строка - Путь сохранения файла - to
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
-Функция СохранитьПубличныйОбъектНаДиск(Знач Токен, Знач URL, Откуда = "", Куда = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(URL);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Откуда);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Куда);
-
- Заголовки = OPI_YandexID.ПолучитьЗаголовокАвторизации(Токен);
- Адрес = "https://cloud-api.yandex.net/v1/disk/public/resources/save-to-disk";
- Href = "href";
-
- Параметры = Новый Структура;
- Параметры.Вставить("public_key", КодироватьСтроку(URL, СпособКодированияСтроки.КодировкаURL));
-
- Если ЗначениеЗаполнено(Откуда) Тогда
- Параметры.Вставить("path", Откуда);
- КонецЕсли;
-
- Если ЗначениеЗаполнено(Куда) Тогда
- Параметры.Вставить("save_path", Куда);
- КонецЕсли;
-
- Параметры = OPI_Инструменты.ПараметрыЗапросаВСтроку(Параметры);
- Ответ = OPI_ЗапросыHTTP.PostСТелом(Адрес + Параметры, , Заголовки, Ложь);
-
- URLОтвета = Ответ[Href];
-
- Если Не ЗначениеЗаполнено(URLОтвета) Тогда
- Возврат Ответ;
- КонецЕсли;
-
- Ответ = OPI_ЗапросыHTTP.Get(URLОтвета, , Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-#КонецОбласти
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-Функция ПереключениеОбщегоДоступа(Знач Токен, Знач Путь, Знач ОбщийДоступ)
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Путь);
- OPI_ПреобразованиеТипов.ПолучитьБулево(ОбщийДоступ);
-
- Заголовки = OPI_YandexID.ПолучитьЗаголовокАвторизации(Токен);
- Назначение = ?(ОбщийДоступ, "publish", "unpublish");
- Href = "href";
-
- URL = "https://cloud-api.yandex.net/v1/disk/resources/" + Назначение;
-
- Параметры = Новый Структура;
- Параметры.Вставить("path", Путь);
-
- Параметры = OPI_Инструменты.ПараметрыЗапросаВСтроку(Параметры);
- Ответ = OPI_ЗапросыHTTP.PutСТелом(URL + Параметры, , Заголовки, Ложь);
-
- URLОтвета = Ответ[Href];
-
- Если Не ЗначениеЗаполнено(URLОтвета) Тогда
- Возврат Ответ;
- КонецЕсли;
-
- Ответ = OPI_ЗапросыHTTP.Get(URLОтвета, , Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-#КонецОбласти
diff --git a/XML/CommonModules/OPI_YandexID.xml b/XML/CommonModules/OPI_YandexID.xml
deleted file mode 100644
index f19b3d4114..0000000000
--- a/XML/CommonModules/OPI_YandexID.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- OPI_YandexID
-
-
- ru
- YandexID (ОПИ)
-
-
- Модуль для работы с YandexID из набора ОПИ
- false
- false
- true
- true
- true
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git a/XML/CommonModules/OPI_YandexID/Ext/Module.bsl b/XML/CommonModules/OPI_YandexID/Ext/Module.bsl
deleted file mode 100644
index 8559d79947..0000000000
--- a/XML/CommonModules/OPI_YandexID/Ext/Module.bsl
+++ /dev/null
@@ -1,130 +0,0 @@
-// OneScript: ./OInt/core/Modules/OPI_YandexID.os
-// Lib: Yandex ID
-// CLI: yandex
-
-// MIT License
-
-// Copyright (c) 2023-2025 Anton Tsitavets
-
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-
-// The above copyright notice and this permission notice shall be included in all
-// copies or substantial portions of the Software.
-
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-// SOFTWARE.
-
-// https://github.com/Bayselonarrend/OpenIntegrations
-
-// BSLLS:LatinAndCyrillicSymbolInWord-off
-// BSLLS:IncorrectLineBreak-off
-// BSLLS:UsingServiceTag-off
-// BSLLS:UsingSynchronousCalls-off
-
-//@skip-check module-structure-top-region
-//@skip-check module-structure-method-in-regions
-//@skip-check wrong-string-literal-content
-
-#Область ПрограммныйИнтерфейс
-
-// Получить код подтверждения
-// Получает код подтверждения и адрес страницы, на которой его необходимо ввести
-//
-// Параметры:
-// ClientId - Строка - Client id - id
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
-Функция ПолучитьКодПодтверждения(Знач ClientId) Экспорт // Service
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(ClientId);
-
- Параметры = Новый Структура("client_id", ClientId);
- Ответ = OPI_ЗапросыHTTP.PostСТелом("https://oauth.yandex.ru/device/code", Параметры, , Ложь);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Преобразовать код в токен
-// Преобразовывает код в токен после ввода кода при выполнении ПолучитьКодПодтверждения
-//
-// Параметры:
-// ClientId - Строка - Client id - id
-// ClientSecret - Строка - Client secret - secret
-// КодУстройства - Строка - device_code из ПолучитьКодПодтверждения() - device
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
-Функция ПреобразоватьКодВТокен(Знач ClientId, Знач ClientSecret, Знач КодУстройства) Экспорт // Service
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(ClientId);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(ClientSecret);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(КодУстройства);
-
- Параметры = Новый Структура;
- Параметры.Вставить("grant_type" , "device_code");
- Параметры.Вставить("code" , КодУстройства);
- Параметры.Вставить("client_id" , ClientId);
- Параметры.Вставить("client_secret" , ClientSecret);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом("https://oauth.yandex.ru/token", Параметры, , Ложь);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Обновить токен
-// Обновляет токен по Refresh token
-//
-// Параметры:
-// ClientId - Строка - Client id - id
-// ClientSecret - Строка - Client secret - secret
-// RefreshToken - Строка - Refresh token - refresh
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
-Функция ОбновитьТокен(Знач ClientId, Знач ClientSecret, Знач RefreshToken) Экспорт // Service
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(ClientId);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(ClientSecret);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(RefreshToken);
-
- Параметры = Новый Структура;
- Параметры.Вставить("grant_type" , "refresh_token");
- Параметры.Вставить("refresh_token" , RefreshToken);
- Параметры.Вставить("client_id" , ClientId);
- Параметры.Вставить("client_secret" , ClientSecret);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом("https://oauth.yandex.ru/token", Параметры, , Ложь);
-
- Возврат Ответ;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область СлужебныйПрограммныйИнтерфейс
-
-Функция ПолучитьЗаголовокАвторизации(Знач Токен) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
-
- Заголовки = Новый Соответствие;
- Заголовки.Вставить("Authorization", "OAuth " + Токен);
-
- Возврат Заголовки;
-
-КонецФункции
-
-#КонецОбласти
diff --git a/XML/CommonModules/OPI_YandexMarket.xml b/XML/CommonModules/OPI_YandexMarket.xml
deleted file mode 100644
index 8ca7def253..0000000000
--- a/XML/CommonModules/OPI_YandexMarket.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- OPI_YandexMarket
-
-
- ru
- Yandex Market (ОПИ)
-
-
- Модуль для работы с Yandex Market из набора ОПИ
- false
- false
- true
- true
- true
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git a/XML/CommonModules/OPI_YandexMarket/Ext/Module.bsl b/XML/CommonModules/OPI_YandexMarket/Ext/Module.bsl
deleted file mode 100644
index df91376c7f..0000000000
--- a/XML/CommonModules/OPI_YandexMarket/Ext/Module.bsl
+++ /dev/null
@@ -1,428 +0,0 @@
-// OneScript: ./OInt/core/Modules/OPI_YandexMarket.os
-// Lib: Yandex Market
-// CLI: yamarket
-// Depends: OPI_YandexID
-
-// MIT License
-
-// Copyright (c) 2023-2025 Anton Tsitavets
-
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-
-// The above copyright notice and this permission notice shall be included in all
-// copies or substantial portions of the Software.
-
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-// SOFTWARE.
-
-// https://github.com/Bayselonarrend/OpenIntegrations
-
-// BSLLS:Typo-off
-// BSLLS:LatinAndCyrillicSymbolInWord-off
-// BSLLS:IncorrectLineBreak-off
-// BSLLS:NumberOfOptionalParams-off
-// BSLLS:UsingServiceTag-off
-// BSLLS:LineLength-off
-// BSLLS:UsingSynchronousCalls-off
-
-//@skip-check module-structure-top-region
-//@skip-check module-structure-method-in-regions
-//@skip-check wrong-string-literal-content
-//@skip-check method-too-many-params
-
-#Область ПрограммныйИнтерфейс
-
-#Область КабинетыИМагазины
-
-// Получить список магазинов
-// Получает список магазинов в кабинете по токену
-//
-// Примечание:
-// Метод в документации API: [Список магазинов пользователя](@yandex.ru/dev/market/partner-api/doc/ru/reference/campaigns/getCampaigns)
-//
-// Параметры:
-// Токен - Строка - Токен авторизации (Api-Key) - token
-// Страница - Число - Номер страницы выдачи списка - page
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex Market
-Функция ПолучитьСписокМагазинов(Знач Токен, Знач Страница = 1) Экспорт
-
- URL = "https://api.partner.market.yandex.ru/campaigns";
- Заголовки = СоздатьЗаголовкиЗапроса(Токен);
-
- РазмерСтраницы = 100;
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("page" , Страница , "Число", Параметры);
- OPI_Инструменты.ДобавитьПоле("pageSize", РазмерСтраницы, "Число", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить магазин
-// Получает информацию о магазине (кампании) по ID
-//
-// Примечание:
-// Метод в документации API: [Информация о магазине](@yandex.ru/dev/market/partner-api/doc/ru/reference/campaigns/getCampaign)
-//
-// Параметры:
-// Токен - Строка - Токен авторизации (Api-Key) - token
-// IDМагазина - Строка, Число - ID магазина (кампании) - campaign
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex Market
-Функция ПолучитьМагазин(Знач Токен, Знач IDМагазина) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(IDМагазина);
-
- URL = "https://api.partner.market.yandex.ru/campaigns/" + IDМагазина;
- Заголовки = СоздатьЗаголовкиЗапроса(Токен);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, , Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить настройки кабинета
-// Получает значения настроек кабинета по ID
-//
-// Примечание:
-// Метод в документации API: [Настройки кабинета](@yandex.ru/dev/market/partner-api/doc/ru/reference/businesses/getBusinessSettings)
-//
-// Параметры:
-// Токен - Строка - Токен авторизации (Api-Key) - token
-// IDКабинета - Строка, Число - ID кабинета - business
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex Market
-Функция ПолучитьНастройкиКабинета(Знач Токен, Знач IDКабинета) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(IDКабинета);
-
- URL = "https://api.partner.market.yandex.ru/businesses/%1/settings";
- URL = СтрШаблон(URL, IDКабинета);
- Заголовки = СоздатьЗаголовкиЗапроса(Токен);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, , Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить настройки магазина
-// Получает настройки магазина по ID
-//
-// Примечание:
-// Метод в документации API: [Настройки магазина](@yandex.ru/dev/market/partner-api/doc/ru/reference/campaigns/getCampaignSettings)
-//
-// Параметры:
-// Токен - Строка - Токен авторизации (Api-Key) - token
-// IDМагазина - Строка, Число - ID магазина (кампании) - campaign
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex Market
-Функция ПолучитьНастройкиМагазина(Знач Токен, Знач IDМагазина) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(IDМагазина);
-
- URL = "https://api.partner.market.yandex.ru/campaigns/%1/settings";
- URL = СтрШаблон(URL, IDМагазина);
- Заголовки = СоздатьЗаголовкиЗапроса(Токен);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, , Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область РаботаСТоварами
-
-// Добавить обновить товары
-// Добавляет или обновляет информацию о товарах в каталоге
-//
-// Примечание:
-// Метод в документации API: [Добавление товаров в каталог и изменение информации о них](@yandex.ru/dev/market/partner-api/doc/ru/reference/business-assortment/updateOfferMappings)
-//
-// Параметры:
-// Токен - Строка - Токен авторизации (Api-Key) - token
-// IDКабинета - Строка, Число - ID кабинета - business
-// МассивТоваров - Структура, Массив Из Структура - Массив описаний товаров - offers
-// СвоиИзображения - Булево - Признак использования только своих изображений товаров - pmedia
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex Market
-Функция ДобавитьОбновитьТовары(Знач Токен, Знач IDКабинета, Знач МассивТоваров, Знач СвоиИзображения = Ложь) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(IDКабинета);
-
- URL = "https://api.partner.market.yandex.ru/businesses/%1/offer-mappings/update";
- URL = СтрШаблон(URL, IDКабинета);
- Заголовки = СоздатьЗаголовкиЗапроса(Токен);
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("offerMappings" , МассивТоваров , "Массив", Параметры);
- OPI_Инструменты.ДобавитьПоле("onlyPartnerMediaContent", СвоиИзображения, "Булево", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить товары магазина
-// Получает список товаров выбранного магазина
-//
-// Примечание:
-// Метод в документации API: [Информация о товарах, которые размещены в заданном магазине](@https://yandex.ru/dev/market/partner-api/doc/ru/reference/assortment/getCampaignOffers)
-//
-// Параметры:
-// Токен - Строка - Токен авторизации (Api-Key) - token
-// IDМагазина - Строка, Число - ID магазина - business
-// Фильтры - Структура Из КлючИЗначение - Фильтры для отбора товаров - filters
-// ТокенСтраницы - Строка - Токен следующей страницы при большой выборке - page
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex Market
-Функция ПолучитьТоварыМагазина(Знач Токен, Знач IDМагазина, Знач Фильтры = "", Знач ТокенСтраницы = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(IDМагазина);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(ТокенСтраницы);
-
- URL = "https://api.partner.market.yandex.ru/campaigns/%1/offers";
- URL = СтрШаблон(URL, IDМагазина);
- Заголовки = СоздатьЗаголовкиЗапроса(Токен);
-
- Если ЗначениеЗаполнено(ТокенСтраницы) Тогда
- URL = URL + "?page_token=" + ТокенСтраницы;
- КонецЕсли;
-
- Если ЗначениеЗаполнено(Фильтры) Тогда
- OPI_ПреобразованиеТипов.ПолучитьКоллекцию(Фильтры);
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Фильтры, Заголовки);
- Иначе
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, , Заголовки);
- КонецЕсли;
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить товары кабинета
-// Получает список товаров выбранного кабинета
-//
-// Параметры:
-// Токен - Строка - Токен авторизации (Api-Key) - token
-// IDКабинета - Строка, Число - ID кабинета - business
-// Фильтры - Структура Из КлючИЗначение - Фильтры для отбора товаров - filters
-// ТокенСтраницы - Строка - Токен следующей страницы при большой выборке - page
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex Market
-Функция ПолучитьТоварыКабинета(Знач Токен, Знач IDКабинета, Знач Фильтры = "", Знач ТокенСтраницы = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(IDКабинета);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(ТокенСтраницы);
-
- URL = "https://api.partner.market.yandex.ru/businesses/%1/offer-mappings";
- URL = СтрШаблон(URL, IDКабинета);
- Заголовки = СоздатьЗаголовкиЗапроса(Токен);
-
- Если ЗначениеЗаполнено(ТокенСтраницы) Тогда
- URL = URL + "?page_token=" + ТокенСтраницы;
- КонецЕсли;
-
- Если ЗначениеЗаполнено(Фильтры) Тогда
- OPI_ПреобразованиеТипов.ПолучитьКоллекцию(Фильтры);
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Фильтры, Заголовки);
- Иначе
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, , Заголовки);
- КонецЕсли;
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить структуру товара
-// Получает структуру стандартных полей товара
-//
-// Примечание:
-// Описание в документации API: [UpdateOfferDTO](@https://yandex.ru/dev/market/partner-api/doc/ru/reference/business-assortment/updateOfferMappings#updateofferdto)
-//
-// Параметры:
-// Пустая - Булево - Истина > структура с пустыми значениями, Ложь > в значениях будут описания полей - empty
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - Структура полей товара
-Функция ПолучитьСтруктуруТовара(Знач Пустая = Ложь) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьБулево(Пустая);
-
- // BSLLS:DuplicateStringLiteral-off
-
- СтруктураТовара = Новый Структура;
- СтруктураТовара.Вставить("offerId", "<идентификатор товара в вашей системе>");
-
- СтруктураРасходов = Новый Структура;
- СтруктураРасходов.Вставить("currencyId" , "<код валюты>");
- СтруктураРасходов.Вставить("value" , "<доп. расходы>");
-
- СтруктураТовара.Вставить("additionalExpenses", СтруктураРасходов);
- СтруктураТовара.Вставить("adult" , "<параметр включает для товара пометку 18+>");
-
- СтруктураВозраста = Новый Структура;
- СтруктураВозраста.Вставить("ageUnit", "<единица измерения: YEAR, MONTH>");
- СтруктураВозраста.Вставить("value" , "<возрастное ограничение>");
-
- СтруктураТовара.Вставить("age", СтруктураВозраста);
-
- МассивШтрихкодов = Новый Массив;
- МассивШтрихкодов.Добавить("<штрихкод>");
-
- СтруктураТовара.Вставить("barcodes", МассивШтрихкодов);
-
- СтруктураБазовойЦены = Новый Структура;
- СтруктураБазовойЦены.Вставить("currencyId" , "<код валюты>");
- СтруктураБазовойЦены.Вставить("value" , "<цена>");
- СтруктураБазовойЦены.Вставить("discountBase", "<цена до скидки>");
-
- СтруктураТовара.Вставить("basicPrice", СтруктураБазовойЦены);
- СтруктураТовара.Вставить("boxCount" , "<количество грузовых мест>");
- СтруктураТовара.Вставить("category" , "<категория товара в вашем магазине>");
-
- МассивСертификатов = Новый Массив;
- МассивСертификатов.Добавить("<номер документа на товар>");
-
- СтруктураТовара.Вставить("certificates", МассивСертификатов);
-
- СтруктураЦеныДляСкидок = Новый Структура;
- СтруктураЦеныДляСкидок.Вставить("currencyId" , "<код валюты>");
- СтруктураЦеныДляСкидок.Вставить("value" , "<цена>");
-
- СтруктураТовара.Вставить("cofinancePrice", СтруктураЦеныДляСкидок);
-
- СтруктураСостояния = Новый Структура;
- СтруктураСостояния.Вставить("quality", "<внешний вид товара>");
- СтруктураСостояния.Вставить("reason" , "<описание дефектов>");
- СтруктураСостояния.Вставить("type" , "<тип уценки>");
-
- СтруктураТовара.Вставить("condition", СтруктураСостояния);
-
- СтруктураТовара.Вставить("customsCommodityCode", "<код товара ТН ВЭД>");
- СтруктураТовара.Вставить("description" , "<подробное описание товара>");
- СтруктураТовара.Вставить("downloadable" , "<признак цифрового товара>");
-
- СтруктураПериода = Новый Структура;
- СтруктураПериода.Вставить("timePeriod", "<значение продолжительности>");
- СтруктураПериода.Вставить("timeUnit" , "<единица измерения>");
- СтруктураПериода.Вставить("comment" , "<комментарий>");
-
- СтруктураТовара.Вставить("guaranteePeriod", СтруктураПериода);
- СтруктураТовара.Вставить("lifeTime" , СтруктураПериода);
-
- МассивРуководств = Новый Массив;
-
- СтруктураРуководства = Новый Структура;
- СтруктураРуководства.Вставить("url" , "<сслыка на руководство>");
- СтруктураРуководства.Вставить("title", "<заголовок руководства>");
-
- МассивРуководств.Добавить(СтруктураРуководства);
-
- СтруктураТовара.Вставить("manuals", МассивРуководств);
-
- МассивСтран = Новый Массив;
- МассивСтран.Добавить("<страна производства>");
-
- СтруктураТовара.Вставить("manufacturerCountries", МассивСтран);
- СтруктураТовара.Вставить("marketCategoryId" , "<идентификатор категории на Маркете>");
- СтруктураТовара.Вставить("name" , "<имя товара>");
-
- МассивХарактеристик = Новый Массив;
-
- СтруктураХарактеристики = Новый Структура;
- СтруктураХарактеристики.Вставить("parameterId", "<идентификатор характеристики>");
- СтруктураХарактеристики.Вставить("unitId" , "<идентификатор единицы измерения>");
- СтруктураХарактеристики.Вставить("value" , "<значение>");
- СтруктураХарактеристики.Вставить("valueId" , "<идентификатор значения для перечислений>");
-
- МассивХарактеристик.Добавить(СтруктураХарактеристики);
-
- СтруктураТовара.Вставить("parameterValues", МассивХарактеристик);
-
- МассивКартинок = Новый Массив;
- МассивКартинок.Добавить("<ссылка на картинку товара>");
-
- СтруктураТовара.Вставить("pictures" , МассивКартинок);
-
- СтруктураЦеныЗакупки = Новый Структура;
- СтруктураЦеныЗакупки.Вставить("currencyId" , "<код валюты>");
- СтруктураЦеныЗакупки.Вставить("value" , "<цена>");
-
- СтруктураТовара.Вставить("purchasePrice", СтруктураЦеныЗакупки);
- СтруктураТовара.Вставить("shelfLife" , СтруктураПериода);
-
- МассивТэгов = Новый Массив;
- МассивТэгов.Добавить("<метка>");
-
- СтруктураТовара.Вставить("tags" , МассивТэгов);
- СтруктураТовара.Вставить("type" , "<особый тип товара>");
- СтруктураТовара.Вставить("vendor" , "<название бренда или производителя>");
- СтруктураТовара.Вставить("vendorCode", "<артикул товара от производителя>");
-
- МассивВидео = Новый Массив;
- МассивВидео.Добавить("<ссылка на видео>");
-
- СтруктураТовара.Вставить("videos" , МассивВидео);
-
- СтруктураРазмеров = Новый Структура;
- СтруктураРазмеров.Вставить("height", "<высота в см.>");
- СтруктураРазмеров.Вставить("length", "<длина в см.>");
- СтруктураРазмеров.Вставить("weight", "<вес в кг. (брутто)>");
- СтруктураРазмеров.Вставить("width" , "<ширина в см.>");
-
- СтруктураТовара.Вставить("weightDimensions", "<габариты и вес товара>");
-
- // BSLLS:DuplicateStringLiteral-on
-
- Если Пустая Тогда
- СтруктураТовара = OPI_Инструменты.ОчиститьКоллекциюРекурсивно(СтруктураТовара);
- КонецЕсли;
-
- //@skip-check constructor-function-return-section
- Возврат СтруктураТовара;
-
-КонецФункции
-
-#КонецОбласти
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-Функция СоздатьЗаголовкиЗапроса(Знач Токен)
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
-
- Заголовки = Новый Соответствие;
- Заголовки.Вставить("Api-Key", Токен);
- Возврат Заголовки;
-
-КонецФункции
-
-#КонецОбласти
diff --git a/XML/CommonModules/OPI_YandexMetrika.xml b/XML/CommonModules/OPI_YandexMetrika.xml
deleted file mode 100644
index f4c581795f..0000000000
--- a/XML/CommonModules/OPI_YandexMetrika.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- OPI_YandexMetrika
-
-
- ru
- Yandex Metrika (ОПИ)
-
-
- Модуль для работы с Yandex Metrika из набора ОПИ
- false
- false
- true
- true
- true
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git a/XML/CommonModules/OPI_YandexMetrika/Ext/Module.bsl b/XML/CommonModules/OPI_YandexMetrika/Ext/Module.bsl
deleted file mode 100644
index 50ffbe8d17..0000000000
--- a/XML/CommonModules/OPI_YandexMetrika/Ext/Module.bsl
+++ /dev/null
@@ -1,588 +0,0 @@
-// OneScript: ./OInt/core/Modules/OPI_YandexMetrika.os
-// Lib: Yandex Metrika
-// CLI: metrika
-// Depends: OPI_YandexID
-
-// MIT License
-
-// Copyright (c) 2023-2025 Anton Tsitavets
-
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-
-// The above copyright notice and this permission notice shall be included in all
-// copies or substantial portions of the Software.
-
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-// SOFTWARE.
-
-// https://github.com/Bayselonarrend/OpenIntegrations
-
-// BSLLS:Typo-off
-// BSLLS:LatinAndCyrillicSymbolInWord-off
-// BSLLS:IncorrectLineBreak-off
-// BSLLS:NumberOfOptionalParams-off
-// BSLLS:UsingServiceTag-off
-// BSLLS:LineLength-off
-// BSLLS:UsingSynchronousCalls-off
-
-//@skip-check module-structure-top-region
-//@skip-check module-structure-method-in-regions
-//@skip-check wrong-string-literal-content
-//@skip-check method-too-many-params
-
-#Область ПрограммныйИнтерфейс
-
-#Область УправлениеМетками
-
-// Создать метку
-// Создает метку с указанным именем
-//
-// Примечание:
-// Метод в документации API: [Создание метки](@yandex.ru/dev/metrika/ru/management/openapi/label/createLabel)
-//
-// Параметры:
-// Токен - Строка - Токен авторизации - token
-// Наименование - Строка - Наименование метки - title
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
-Функция СоздатьМетку(Знач Токен, Знач Наименование) Экспорт
-
- Заголовки = OPI_YandexID.ПолучитьЗаголовокАвторизации(Токен);
- URL = "https://api-metrika.yandex.net/management/v1/labels";
-
- Метка = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("name", Наименование, "Строка", Метка);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Новый Структура("label", Метка), Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Изменить метку
-// Изменяет имя метки по ID
-//
-// Примечание:
-// Метод в документации API: [Изменение метки](@yandex.ru/dev/metrika/ru/management/openapi/label/updateLabel)
-//
-// Параметры:
-// Токен - Строка - Токен авторизации - token
-// IDМетки - Строка - ID метки для изменения - label
-// Наименование - Строка - Новое наименование - title
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
-Функция ИзменитьМетку(Знач Токен, Знач IDМетки, Знач Наименование) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(IDМетки);
-
- Заголовки = OPI_YandexID.ПолучитьЗаголовокАвторизации(Токен);
- URL = "https://api-metrika.yandex.net/management/v1/label/" + IDМетки;
-
- Метка = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("name", Наименование, "Строка", Метка);
-
- Ответ = OPI_ЗапросыHTTP.PutСТелом(URL, Новый Структура("label", Метка), Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить метку
-// Получает метку по ID
-//
-// Примечание:
-// Метод в документации API: [Информация о метке](@yandex.ru/dev/metrika/ru/management/openapi/label/getLabel)
-//
-// Параметры:
-// Токен - Строка - Токен авторизации - token
-// IDМетки - Строка - ID метки - label
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
-Функция ПолучитьМетку(Знач Токен, Знач IDМетки) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(IDМетки);
-
- Заголовки = OPI_YandexID.ПолучитьЗаголовокАвторизации(Токен);
- URL = "https://api-metrika.yandex.net/management/v1/label/" + IDМетки;
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, , Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Удалить метку
-// Удаляет метку по ID
-//
-// Примечание:
-// Метод в документации API: [Удаление метки](@yandex.ru/dev/metrika/ru/management/openapi/label/deleteLabel)
-//
-// Параметры:
-// Токен - Строка - Токен авторизации - token
-// IDМетки - Строка - ID метки для удаления - label
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
-Функция УдалитьМетку(Знач Токен, Знач IDМетки) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(IDМетки);
-
- Заголовки = OPI_YandexID.ПолучитьЗаголовокАвторизации(Токен);
- URL = "https://api-metrika.yandex.net/management/v1/label/" + IDМетки;
-
- Ответ = OPI_ЗапросыHTTP.Delete(URL, , Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить список меток
-// Получает список меток пользователя
-//
-// Примечание:
-// Метод в документации API: [Список меток пользователя](@yandex.ru/dev/metrika/ru/management/openapi/label/getLabels)
-//
-// Параметры:
-// Токен - Строка - Токен авторизации - token
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
-Функция ПолучитьСписокМеток(Знач Токен) Экспорт
-
- Заголовки = OPI_YandexID.ПолучитьЗаголовокАвторизации(Токен);
- URL = "https://api-metrika.yandex.net/management/v1/labels";
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, , Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область УправлениеСчетчиками
-
-// Создать счетчик
-// Создает счетчик по описанию полей
-//
-// Примечание:
-// Метод в документации API: [Создание счетчика](@yandex.ru/dev/metrika/ru/management/openapi/counter/addCounter)
-//
-// Параметры:
-// Токен - Строка - Токен авторизации - token
-// СтруктураСчетчика - Структура Из КлючИЗначение - Структура счетчика. См. ПолучитьСтруктуруСчетчика - fields
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
-Функция СоздатьСчетчик(Знач Токен, Знач СтруктураСчетчика) Экспорт
-
- Заголовки = OPI_YandexID.ПолучитьЗаголовокАвторизации(Токен);
- URL = "https://api-metrika.yandex.net/management/v1/counters";
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("counter", СтруктураСчетчика, "Коллекция", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Изменить счетчик
-// Изменяет значения полей счетчика по ID
-//
-// Примечание:
-// Метод в документации API: [Изменение счетчика](@yandex.ru/dev/metrika/ru/management/openapi/counter/editCounter)
-//
-// Параметры:
-// Токен - Строка - Токен авторизации - token
-// IDСчетчика - Строка, Число - ID счетчика для изменения - counter
-// СтруктураСчетчика - Структура Из КлючИЗначение - Структура изменяемых полей. См. ПолучитьСтруктуруСчетчика - fields
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
-Функция ИзменитьСчетчик(Знач Токен, Знач IDСчетчика, Знач СтруктураСчетчика) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(IDСчетчика);
-
- Заголовки = OPI_YandexID.ПолучитьЗаголовокАвторизации(Токен);
- URL = "https://api-metrika.yandex.net/management/v1/counter/" + IDСчетчика;
-
- Параметры = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("counter", СтруктураСчетчика, "Коллекция", Параметры);
-
- Ответ = OPI_ЗапросыHTTP.PutСТелом(URL, Параметры, Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить счетчик
-// Получает информацию о счетчике по ID
-//
-// Примечание:
-// Метод в документации API: [Информация о счетчике](@yandex.ru/dev/metrika/ru/management/openapi/counter/counter)
-//
-// Параметры:
-// Токен - Строка - Токен авторизации - token
-// IDСчетчика - Строка, Число - ID счетчика - counter
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
-Функция ПолучитьСчетчик(Знач Токен, Знач IDСчетчика) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(IDСчетчика);
-
- Заголовки = OPI_YandexID.ПолучитьЗаголовокАвторизации(Токен);
- URL = "https://api-metrika.yandex.net/management/v1/counter/" + IDСчетчика;
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, , Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Удалить счетчик
-// Удаляет счетчик по ID
-//
-// Примечание:
-// Метод в документации API: [Удаление счетчика](@yandex.ru/dev/metrika/ru/management/openapi/counter/deleteCounter)
-//
-// Параметры:
-// Токен - Строка - Токен авторизации - token
-// IDСчетчика - Число, Строка - ID счетчика для удаления - counter
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
-Функция УдалитьСчетчик(Знач Токен, Знач IDСчетчика) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(IDСчетчика);
-
- Заголовки = OPI_YandexID.ПолучитьЗаголовокАвторизации(Токен);
- URL = "https://api-metrika.yandex.net/management/v1/counter/" + IDСчетчика;
-
- Ответ = OPI_ЗапросыHTTP.Delete(URL, , Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Восстановить счетчик
-// Восстанавливает ранее удаленный счетчик по ID
-//
-// Примечание:
-// Метод в документации API: [Восстановление счетчика](@yandex.ru/dev/metrika/ru/management/openapi/counter/undeleteCounter)
-//
-// Параметры:
-// Токен - Строка - Токен авторизации - token
-// IDСчетчика - Строка, Число - ID счетчика для восстановления - counter
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
-Функция ВосстановитьСчетчик(Знач Токен, Знач IDСчетчика) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(IDСчетчика);
-
- Заголовки = OPI_YandexID.ПолучитьЗаголовокАвторизации(Токен);
- URL = "https://api-metrika.yandex.net/management/v1/counter/%1/undelete";
- URL = СтрШаблон(URL, IDСчетчика);
-
- Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, , Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить список счетчиков
-// Получает список доступных счетчиков с фильтром или без
-//
-// Примечание:
-// Метод в документации API: [Список доступных счетчиков](@yandex.ru/dev/metrika/ru/management/openapi/counter/counters)
-//
-// Параметры:
-// Токен - Строка - Токен авторизации - token
-// Фильтр - Структура Из КлючИЗначение - Фильтр списка. См. ПолучитьСтруктуруФильтраСчетчиков - filter
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
-Функция ПолучитьСписокСчетчиков(Знач Токен, Знач Фильтр = Неопределено) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьКоллекцию(Фильтр);
-
- Заголовки = OPI_YandexID.ПолучитьЗаголовокАвторизации(Токен);
- URL = "https://api-metrika.yandex.net/management/v1/counters";
-
- Если ТипЗнч(Фильтр) <> Тип("Массив") И ЗначениеЗаполнено(Фильтр) Тогда
-
- URL = URL + OPI_Инструменты.ПараметрыЗапросаВСтроку(Фильтр, Истина);
-
- КонецЕсли;
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, , Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-// Получить структуру счетчика
-// Получает структуру стандартных полей для создания счетчика
-//
-// Примечание:
-// Описание в документации API: [Создание счетчика](@yandex.ru/dev/metrika/ru/management/openapi/counter/addCounter)
-//
-// Параметры:
-// Пустая - Булево - Истина > структура с пустыми значениями, Ложь > в значениях будут описания полей - empty
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - Структура полей счетчика
-Функция ПолучитьСтруктуруСчетчика(Знач Пустая = Ложь) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьБулево(Пустая);
-
- // BSLLS:DuplicateStringLiteral-off
-
- СтруктураСчетчика = Новый Структура;
- СтруктураСчетчика.Вставить("autogoals_enabled", "<включение автоматических целей>");
-
- СтруктураНастроекКода = Новый Структура;
- СтруктураНастроекКода.Вставить("async" , "<асинхронный код счетчика>");
- СтруктураНастроекКода.Вставить("clickmap" , "<сбор статистики для работы Карты кликов>");
- СтруктураНастроекКода.Вставить("ecommerce" , "<сбор данных по электронной коммерции>");
- СтруктураНастроекКода.Вставить("in_one_line" , "<выводить код счетчика в одну строку>");
- СтруктураНастроекКода.Вставить("track_hash" , "<отслеживание хеша в адресной строке браузера>");
- СтруктураНастроекКода.Вставить("visor" , "<запись и анализ поведения посетителей сайта>");
- СтруктураНастроекКода.Вставить("xml_site" , "<для XML-сайтов>");
- СтруктураНастроекКода.Вставить("ytm" , "<использование системы управления тегами>");
- СтруктураНастроекКода.Вставить("alternative_cdn"
- , "<учитывать посещения из регионов без доступ к ресурсам Яндекса>");
-
- СтруктураИнформера = Новый Структура;
- СтруктураИнформера.Вставить("color_arrow", "<цвет стрелки на информере>");
- СтруктураИнформера.Вставить("color_end" , "<конечный (нижний) цвет информера в формате RRGGBBAA>");
- СтруктураИнформера.Вставить("color_start", "<начальный (верхний) цвет информера в формате RRGGBBAA>");
- СтруктураИнформера.Вставить("color_text" , "<цвет текста на информере>");
- СтруктураИнформера.Вставить("enabled" , "<разрешение отображения информера>");
- СтруктураИнформера.Вставить("indicator" , "<показатель информера>");
- СтруктураИнформера.Вставить("size" , "<размер информера>");
- СтруктураИнформера.Вставить("type" , "<тип информера>");
-
- СтруктураНастроекКода.Вставить("informer", СтруктураИнформера);
-
- СтруктураСчетчика.Вставить("code_options", СтруктураНастроекКода);
-
- СтруктураФлагов = Новый Структура;
- СтруктураФлагов.Вставить("collect_first_party_data" , "<использовать доп. настройки отслеживания>");
- СтруктураФлагов.Вставить("measurement_enabled" , "<включить опцию Measurement Protocol>");
- СтруктураФлагов.Вставить("use_in_benchmarks" , "<получать доступ к отчетам по рынку>");
- СтруктураФлагов.Вставить("direct_allow_use_goals_without_access"
- , "<разрешить в рекламных кампаниях оптимизацию по целям без доступа к счетчику>");
-
- СтруктураСчетчика.Вставить("counter_flags", СтруктураФлагов);
- СтруктураСчетчика.Вставить("favorite" , "<избранное>");
- СтруктураСчетчика.Вставить("filter_robots", "<фильтрация роботов>");
-
- МассивФильтров = Новый Массив;
-
- СтруктураФильтра = Новый Структура;
- СтруктураФильтра.Вставить("action" , "<тип фильтра>");
- СтруктураФильтра.Вставить("attr" , "<тип данных, к которым применяется фильтр>");
- СтруктураФильтра.Вставить("status" , "<статус фильтра>");
- СтруктураФильтра.Вставить("type" , "<отношение или действие для фильтра>");
- СтруктураФильтра.Вставить("end_ip" , "<последний IP-адрес диапазона>");
- СтруктураФильтра.Вставить("id" , "<идентификатор фильтра для изменения>");
- СтруктураФильтра.Вставить("start_ip" , "<первый IP-адрес диапазона>");
- СтруктураФильтра.Вставить("value" , "<значение>");
- СтруктураФильтра.Вставить("with_subdomains", "<фильтровать по поддоменам>");
-
- МассивФильтров.Добавить(СтруктураФильтра);
-
- СтруктураСчетчика.Вставить("filters" , МассивФильтров);
- СтруктураСчетчика.Вставить("gdpr_agreement_accepted", "<согласие с Договором об обработке данных>");
-
- МассивЦелей = Новый Массив;
-
- СтруктураЦели = Новый Структура;
- СтруктураЦели.Вставить("name" , "<наименование цели>");
- СтруктураЦели.Вставить("type" , "<тип цели>");
- СтруктураЦели.Вставить("default_price", "<цена цели по умолчанию>");
- СтруктураЦели.Вставить("id" , "");
- СтруктураЦели.Вставить("is_favorite" , "<избранное>");
-
- МассивЦелей.Добавить(СтруктураЦели);
-
- СтруктураСчетчика.Вставить("goals", МассивЦелей);
-
- МассивПрав = Новый Массив;
-
- СтруктураПрав = Новый Структура;
- СтруктураПрав.Вставить("perm" , "<уровень доступа>");
- СтруктураПрав.Вставить("comment" , "<произвольный комментарий>");
- СтруктураПрав.Вставить("partner_data_access", "<доступ к группе отчетов Монетизация>");
- СтруктураПрав.Вставить("user_login" , "<логин пользователя, которому выдано разрешение>");
- СтруктураПрав.Вставить("user_uid" , "");
-
- МассивПрав.Добавить(СтруктураПрав);
-
- СтруктураСчетчика.Вставить("grants", МассивПрав);
-
- МассивЯрлыков = Новый Массив;
-
- СтруктураЯрлыка = Новый Структура;
- СтруктураЯрлыка.Вставить("name", "<имя метки>");
-
- МассивЯрлыков.Добавить(СтруктураЯрлыка);
-
- СтруктураСчетчика.Вставить("labels" , МассивЯрлыков);
- СтруктураСчетчика.Вставить("measurement_tokens", "<список активных токенов>");
-
- МассивЗеркал = Новый Массив;
-
- СтруктураЗеркала = Новый Структура;
- СтруктураЗеркала.Вставить("site", "<полный домен сайта>");
-
- МассивЗеркал.Добавить(СтруктураЗеркала);
-
- СтруктураСчетчика.Вставить("mirrors2", МассивЗеркал);
- СтруктураСчетчика.Вставить("name" , "<наименование счетчика>");
-
- СтруктураОффлайнОпций = Новый Структура;
- СтруктураОффлайнОпций.Вставить("offline_calls_extended_threshold" , "<расширенный период учета звонков>");
- СтруктураОффлайнОпций.Вставить("offline_conversion_extended_threshold"
- , "<расширенный период учета офлайн-конверсий>");
- СтруктураОффлайнОпций.Вставить("offline_visits_extended_threshold"
- , "<расширенный период учета оффлайн-заходов>");
-
- СтруктураСчетчика.Вставить("offline_options", СтруктураОффлайнОпций);
-
- МассивОпераций = Новый Массив;
-
- СтруктураОперации = Новый Структура;
- СтруктураОперации.Вставить("action", "<тип операции>");
- СтруктураОперации.Вставить("attr" , "<поле фильтрации>");
- СтруктураОперации.Вставить("status", "<статус операции>");
- СтруктураОперации.Вставить("id" , "<операции для изменения>");
- СтруктураОперации.Вставить("value" , "<значение для замены>");
-
- МассивОпераций.Добавить(СтруктураОперации);
-
- СтруктураСчетчика.Вставить("operations" , МассивОпераций);
- СтруктураСчетчика.Вставить("owner_login", "<логин владельца>");
- СтруктураСчетчика.Вставить("permission" , "<уровень доступа к счетчику>");
-
- СтруктураАналитики = Новый Структура;
- СтруктураАналитики.Вставить("enabled" , "<сбор данных контентной аналитики>");
- СтруктураАналитики.Вставить("schema" , "<используемый на сайте тип разметки>");
- СтруктураАналитики.Вставить("schema_options", "<доступные варианты разметки сайта>");
-
- СтруктураСчетчика.Вставить("publisher_options", СтруктураАналитики);
- СтруктураСчетчика.Вставить("site2" , МассивЗеркал);
- СтруктураСчетчика.Вставить("source" , "<тип счетчика>");
- СтруктураСчетчика.Вставить("time_zone_name" , "<часовой пояс>");
- СтруктураСчетчика.Вставить("visit_threshold" , "<таймаут визита в секундах>");
-
- СтруктураВебвизора = Новый Структура;
- СтруктураВебвизора.Вставить("arch_enabled" , "<сохранение страниц сайта>");
- СтруктураВебвизора.Вставить("arch_type" , "<запись содержимого страниц>");
- СтруктураВебвизора.Вставить("load_player_type", "<загрузка страниц в плеер>");
- СтруктураВебвизора.Вставить("urls" , "<список страниц для сохранения>");
- СтруктураВебвизора.Вставить("wv_forms" , "<запись содержимого полей и форм>");
- СтруктураВебвизора.Вставить("wv_version" , "<версия вебвизора>");
-
- СтруктураСчетчика.Вставить("webvisor", СтруктураВебвизора);
-
- // BSLLS:DuplicateStringLiteral-on
-
- Если Пустая Тогда
- СтруктураСчетчика = OPI_Инструменты.ОчиститьКоллекциюРекурсивно(СтруктураСчетчика);
- КонецЕсли;
-
- //@skip-check constructor-function-return-section
- Возврат СтруктураСчетчика;
-
-КонецФункции
-
-// Получить структуру фильтра счетчиков
-// Получает структуру полей фильтра для получения списка счетчиков
-//
-// Примечание:
-// Описание в документации API: [Список доступных счетчиков](@yandex.ru/dev/metrika/ru/management/openapi/counter/counters)
-//
-// Параметры:
-// Пустая - Булево - Истина > структура с пустыми значениями, Ложь > в значениях будут описания полей - empty
-//
-// Возвращаемое значение:
-// Структура Из КлючИЗначение - Структура полей счетчика
-Функция ПолучитьСтруктуруФильтраСчетчиков(Знач Пустая = Ложь) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьБулево(Пустая);
-
- СтруктураФильтра = Новый Структура;
-
- МассивID = Новый Массив;
- МассивID.Добавить("");
-
- СтруктураФильтра.Вставить("counter_ids" , МассивID);
- СтруктураФильтра.Вставить("label_id" , "<фмльтр по метке>");
- СтруктураФильтра.Вставить("offset" , "<порядковый номер первого счетчика в списке>");
- СтруктураФильтра.Вставить("per_page" , "<максимальное количество счетчиков в выдаче>");
- СтруктураФильтра.Вставить("permission" , "<фильтр по уровню доступа>");
- СтруктураФильтра.Вставить("search_string", "<фильтр по содержанию подстроки в полях>");
- СтруктураФильтра.Вставить("status" , "<фильтр по статусу>");
- СтруктураФильтра.Вставить("type" , "<фильтр по типу>");
- СтруктураФильтра.Вставить("sort" , "<сортировка>");
-
- Если Пустая Тогда
- СтруктураФильтра = OPI_Инструменты.ОчиститьКоллекциюРекурсивно(СтруктураФильтра);
- КонецЕсли;
-
- //@skip-check constructor-function-return-section
- Возврат СтруктураФильтра;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область УправлениеОперациями
-
-// Получить список операций
-// Получает список операций выбранного счетчика
-//
-// Примечание:
-// Метод в документации API: [Список операций](@yandex.ru/dev/metrika/ru/management/openapi/operation/operations)
-//
-// Параметры:
-// Токен - Строка - Токен авторизации - token
-// IDСчетчика - Строка, Число - ID счетчика - counter
-//
-// Возвращаемое значение:
-// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
-Функция ПолучитьСписокОпераций(Знач Токен, Знач IDСчетчика) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(IDСчетчика);
-
- Заголовки = OPI_YandexID.ПолучитьЗаголовокАвторизации(Токен);
- URL = "https://api-metrika.yandex.net/management/v1/counter/%1/operations";
- URL = СтрШаблон(URL, IDСчетчика);
-
- Ответ = OPI_ЗапросыHTTP.Get(URL, , Заголовки);
-
- Возврат Ответ;
-
-КонецФункции
-
-#КонецОбласти
-
-#КонецОбласти
diff --git a/XML/CommonModules/OPI_ЗапросыHTTP.xml b/XML/CommonModules/OPI_ЗапросыHTTP.xml
deleted file mode 100644
index 4ab77a4332..0000000000
--- a/XML/CommonModules/OPI_ЗапросыHTTP.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- OPI_ЗапросыHTTP
-
-
- ru
- HTTP (служебный, ОПИ)
-
-
- Служебный модуль работы с HTTP набора ОПИ
- false
- false
- true
- true
- true
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git a/XML/CommonModules/OPI_ЗапросыHTTP/Ext/Module.bsl b/XML/CommonModules/OPI_ЗапросыHTTP/Ext/Module.bsl
deleted file mode 100644
index 2808076042..0000000000
--- a/XML/CommonModules/OPI_ЗапросыHTTP/Ext/Module.bsl
+++ /dev/null
@@ -1,351 +0,0 @@
-// OneScript: ./OInt/tools/Modules/OPI_ЗапросыHTTP.os
-
-// MIT License
-
-// Copyright (c) 2023-2025 Anton Tsitavets
-
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-
-// The above copyright notice and this permission notice shall be included in all
-// copies or substantial portions of the Software.
-
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-// SOFTWARE.
-
-// https://github.com/Bayselonarrend/OpenIntegrations
-
-// BSLLS:Typo-off
-// BSLLS:LatinAndCyrillicSymbolInWord-off
-// BSLLS:IncorrectLineBreak-off
-// BSLLS:UnusedLocalVariable-off
-// BSLLS:UsingServiceTag-off
-// BSLLS:NumberOfOptionalParams-off
-// BSLLS:UsingSynchronousCalls-off
-
-//@skip-check module-unused-local-variable
-//@skip-check method-too-many-params
-//@skip-check module-structure-top-region
-//@skip-check module-structure-method-in-regions
-//@skip-check wrong-string-literal-content
-//@skip-check use-non-recommended-method
-
-// Раскомментировать, если выполняется OneScript
-// #Использовать "./internal"
-
-#Область ПрограммныйИнтерфейс
-
-// Новый запрос
-// Создает новый объект для работы с HTTP
-//
-// Возвращаемое значение:
-// ОбработкаОбъект.OPI_HTTPКлиент - Объект обработки
-Функция НовыйЗапрос() Экспорт
-
- Если OPI_Инструменты.ЭтоOneScript() Тогда
-
- //@skip-check property-not-writable
- //@skip-check bsl-legacy-check-static-feature-access
- Обработки = Неопределено;
-
- ИмяТипа = "OPI_HTTPКлиент";
- HTTPКлиент = Новый(ИмяТипа);
-
- Иначе
- HTTPКлиент = Обработки.OPI_HTTPКлиент.Создать();
- КонецЕсли;
-
- Возврат HTTPКлиент;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область СлужебныйПрограммныйИнтерфейс
-
-#Область ЗапросыБезТела
-
-Функция Get(Знач URL
- , Знач Параметры = ""
- , Знач ДопЗаголовки = ""
- , Знач ФайлОтвета = Неопределено
- , Знач ПолныйОтвет = Ложь) Экспорт
-
- Возврат ВыполнитьЗапросБезТела(URL, "GET", Параметры, ДопЗаголовки, ФайлОтвета, ПолныйОтвет);
-
-КонецФункции
-
-Функция Head(Знач URL
- , Знач Параметры = ""
- , Знач ДопЗаголовки = ""
- , Знач ФайлОтвета = Неопределено
- , Знач ПолныйОтвет = Ложь) Экспорт
-
- Возврат ВыполнитьЗапросБезТела(URL, "HEAD", Параметры, ДопЗаголовки, ФайлОтвета, ПолныйОтвет);
-
-КонецФункции
-
-Функция Delete(Знач URL
- , Знач Параметры = ""
- , Знач ДопЗаголовки = ""
- , Знач ФайлОтвета = Неопределено
- , Знач ПолныйОтвет = Ложь) Экспорт
-
- Возврат ВыполнитьЗапросБезТела(URL, "DELETE", Параметры, ДопЗаголовки, ФайлОтвета, ПолныйОтвет);
-
-КонецФункции
-
-#КонецОбласти
-
-#Область ЗапросыСТелом
-
-Функция PostСТелом(Знач URL
- , Знач Параметры = ""
- , Знач ДопЗаголовки = ""
- , Знач JSON = Истина
- , Знач ПолныйОтвет = Ложь
- , Знач ФайлОтвета = Неопределено) Экспорт
-
- Возврат ВыполнитьЗапросСТелом(URL, "POST", Параметры, ДопЗаголовки, JSON, ПолныйОтвет, ФайлОтвета);
-
-КонецФункции
-
-Функция PatchСТелом(Знач URL
- , Знач Параметры = ""
- , Знач ДопЗаголовки = ""
- , Знач JSON = Истина
- , Знач ПолныйОтвет = Ложь
- , Знач ФайлОтвета = Неопределено) Экспорт
-
- Возврат ВыполнитьЗапросСТелом(URL, "PATCH", Параметры, ДопЗаголовки, JSON, ПолныйОтвет, ФайлОтвета);
-
-КонецФункции
-
-Функция PutСТелом(Знач URL
- , Знач Параметры = ""
- , Знач ДопЗаголовки = ""
- , Знач JSON = Истина
- , Знач ПолныйОтвет = Ложь
- , Знач ФайлОтвета = Неопределено) Экспорт
-
- Возврат ВыполнитьЗапросСТелом(URL, "PUT", Параметры, ДопЗаголовки, JSON, ПолныйОтвет, ФайлОтвета);
-
-КонецФункции
-
-Функция DeleteСТелом(Знач URL
- , Знач Параметры = ""
- , Знач ДопЗаголовки = ""
- , Знач JSON = Истина
- , Знач ПолныйОтвет = Ложь
- , Знач ФайлОтвета = Неопределено) Экспорт
-
- Возврат ВыполнитьЗапросСТелом(URL, "DELETE", Параметры, ДопЗаголовки, JSON, ПолныйОтвет, ФайлОтвета);
-
-КонецФункции
-
-#КонецОбласти
-
-#Область ЗапросыMultipart
-
-Функция PostMultipart(Знач URL
- , Знач Параметры = ""
- , Знач Файлы = ""
- , Знач ТипКонтента = "image/jpeg"
- , Знач ДопЗаголовки = ""
- , Знач ФайлОтвета = Неопределено) Экспорт
-
- HttpКлиент = НовыйЗапрос()
- .Инициализировать(URL)
- .УстановитьЗаголовки(ДопЗаголовки)
- .УстановитьФайлОтвета(ФайлОтвета)
- .НачатьЗаписьТелаMultipart();
-
- Если ЗначениеЗаполнено(Файлы) Тогда
-
- OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(Файлы);
-
- //@skip-check bsl-legacy-check-for-each-statetement-collection
- Для Каждого Файл Из Файлы Цикл
-
- СтруктураИнформации = РазобратьКлючФайла(Файл.Ключ, ТипКонтента);
-
- ИмяПоля = СтруктураИнформации["ИмяПоля"];
- ИмяФайла = СтруктураИнформации["ИмяФайла"];
-
- HttpКлиент.ДобавитьФайлMultipartFormData(ИмяПоля, ИмяФайла, Файл.Значение, ТипКонтента);
-
- КонецЦикла;
- КонецЕсли;
-
- Если ЗначениеЗаполнено(Параметры) Тогда
-
- OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(Параметры);
-
- //@skip-check bsl-legacy-check-for-each-statetement-collection
- Для Каждого Параметр Из Параметры Цикл
- HttpКлиент.ДобавитьПолеMultipartFormData(Параметр.Ключ, Параметр.Значение);
- КонецЦикла;
- КонецЕсли;
-
- HttpКлиент.ОбработатьЗапрос("POST");
-
- Результат = HttpКлиент.ВернутьОтветКакJSONКоллекцию(Истина, Истина);
-
- Если HttpКлиент.Ошибка Тогда
- ВызватьИсключение HttpКлиент.ПолучитьЛог(Истина);
- Иначе
- Возврат Результат;
- КонецЕсли;
-
-КонецФункции
-
-Функция PutMultipart(Знач URL
- , Знач Параметры = ""
- , Знач Файлы = ""
- , Знач ТипКонтента = "image/jpeg"
- , Знач ДопЗаголовки = ""
- , Знач ФайлОтвета = Неопределено) Экспорт
-
- Возврат ВыполнитьЗапросМультипарт(URL, "PUT", Параметры, Файлы, ТипКонтента, ДопЗаголовки, ФайлОтвета);
-
-КонецФункции
-
-#КонецОбласти
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-Функция ВыполнитьЗапросСТелом(Знач URL
- , Знач Вид
- , Знач Параметры = ""
- , Знач ДопЗаголовки = ""
- , Знач JSON = Истина
- , Знач ПолныйОтвет = Ложь
- , Знач ФайлОтвета = Неопределено)
-
- HttpКлиент = НовыйЗапрос()
- .Инициализировать(URL)
- .УстановитьЗаголовки(ДопЗаголовки)
- .УстановитьФайлОтвета(ФайлОтвета);
-
- Если JSON Тогда
- HttpКлиент.УстановитьJsonТело(Параметры);
- Иначе
- HttpКлиент.УстановитьFormТело(Параметры);
- КонецЕсли;
-
- HttpКлиент.ОбработатьЗапрос(Вид);
-
- Если ПолныйОтвет Тогда
- Результат = HttpКлиент.ВернутьОтвет(Ложь, Истина);
- Иначе
- Результат = HttpКлиент.ВернутьОтветКакJSONКоллекцию(Истина, Истина);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция ВыполнитьЗапросБезТела(Знач URL
- , Знач Вид
- , Знач Параметры = ""
- , Знач ДопЗаголовки = ""
- , Знач ФайлОтвета = Неопределено
- , Знач ПолныйОтвет = Ложь)
-
- HttpКлиент = НовыйЗапрос()
- .Инициализировать(URL)
- .УстановитьПараметрыURL(Параметры)
- .УстановитьЗаголовки(ДопЗаголовки)
- .УстановитьФайлОтвета(ФайлОтвета)
- .ОбработатьЗапрос(Вид);
-
- Если ПолныйОтвет Тогда
- Результат = HttpКлиент.ВернутьОтвет(Ложь, Истина);
- Иначе
- Результат = HttpКлиент.ВернутьОтветКакJSONКоллекцию(Истина, Истина);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция ВыполнитьЗапросМультипарт(Знач URL
- , Знач Вид
- , Знач Параметры = ""
- , Знач Файлы = ""
- , Знач ТипКонтента = "image/jpeg"
- , Знач ДопЗаголовки = ""
- , Знач ФайлОтвета = Неопределено)
-
- HttpКлиент = НовыйЗапрос()
- .Инициализировать(URL)
- .УстановитьЗаголовки(ДопЗаголовки)
- .УстановитьФайлОтвета(ФайлОтвета)
- .НачатьЗаписьТелаMultipart();
-
- //@skip-check bsl-legacy-check-for-each-statetement-collection
- Для Каждого Файл Из Файлы Цикл
-
- СтруктураИнформации = РазобратьКлючФайла(Файл.Ключ, ТипКонтента);
-
- ИмяПоля = СтруктураИнформации["ИмяПоля"];
- ИмяФайла = СтруктураИнформации["ИмяФайла"];
-
- HttpКлиент.ДобавитьФайлMultipartFormData(ИмяПоля, ИмяФайла, Файл.Значение, ТипКонтента);
-
- КонецЦикла;
-
- //@skip-check bsl-legacy-check-for-each-statetement-collection
- Для Каждого Параметр Из Параметры Цикл
- HttpКлиент.ДобавитьПолеMultipartFormData(Параметр.Ключ, Параметр.Значение);
- КонецЦикла;
-
- Результат = HttpКлиент.ОбработатьЗапрос("POST").ВернутьОтветКакJSONКоллекцию(Истина, Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция РазобратьКлючФайла(Знач ДанныеФайла, Знач ТипКонтента)
-
- ЗаменаТочки = "___";
- ИмяФайла = СтрЗаменить(ДанныеФайла, ЗаменаТочки, ".");
- МассивИмени = СтрРазделить(ИмяФайла, "|", Ложь);
- ЧастейИмени = 2;
-
- Если МассивИмени.Количество() = ЧастейИмени Тогда
- ИмяПоля = МассивИмени[0];
- ИмяФайла = МассивИмени[1];
- Иначе
-
- Если ТипКонтента = "image/jpeg" Тогда
-
- ИмяПоля = "photo";
-
- Иначе
-
- ИмяПоля = Лев(ИмяФайла, СтрНайти(ИмяФайла, ".") - 1);
- ИмяПоля = ?(ЗначениеЗаполнено(ИмяПоля), ИмяПоля, СтрЗаменить(ДанныеФайла, ЗаменаТочки, "."));
-
- КонецЕсли;
-
- КонецЕсли;
-
- СтруктураВозврата = Новый Структура("ИмяПоля,ИмяФайла", ИмяПоля, ИмяФайла);
-
- Возврат СтруктураВозврата;
-
-КонецФункции
-
-#КонецОбласти
diff --git a/XML/CommonModules/OPI_ЗапросыSQL.xml b/XML/CommonModules/OPI_ЗапросыSQL.xml
deleted file mode 100644
index 1b80b01748..0000000000
--- a/XML/CommonModules/OPI_ЗапросыSQL.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- OPI_ЗапросыSQL
-
-
- ru
- SQL (служебный, ОПИ)
-
-
- Общий модуль инструментов работы с SQL набора ОПИ
- false
- false
- true
- true
- true
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git a/XML/CommonModules/OPI_ЗапросыSQL/Ext/Module.bsl b/XML/CommonModules/OPI_ЗапросыSQL/Ext/Module.bsl
deleted file mode 100644
index 507a9300b1..0000000000
--- a/XML/CommonModules/OPI_ЗапросыSQL/Ext/Module.bsl
+++ /dev/null
@@ -1,1837 +0,0 @@
-// OneScript: ./OInt/tools/Modules/OPI_ЗапросыSQL.os
-
-// MIT License
-
-// Copyright (c) 2023-2025 Anton Tsitavets
-
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-
-// The above copyright notice and this permission notice shall be included in all
-// copies or substantial portions of the Software.
-
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-// SOFTWARE.
-
-// https://github.com/Bayselonarrend/OpenIntegrations
-
-// BSLLS:Typo-off
-// BSLLS:LatinAndCyrillicSymbolInWord-off
-// BSLLS:IncorrectLineBreak-off
-// BSLLS:NumberOfOptionalParams-off
-// BSLLS:UsingServiceTag-off
-// BSLLS:LineLength-off
-// BSLLS:QueryParseError-off
-// BSLLS:AssignAliasFieldsInQuery-off
-// BSLLS:NumberOfParams-off
-// BSLLS:UsingSynchronousCalls-off
-// BSLLS:MagicNumber-off
-
-//@skip-check module-structure-top-region
-//@skip-check module-structure-method-in-regions
-//@skip-check wrong-string-literal-content
-//@skip-check method-too-many-params
-//@skip-check constructor-function-return-section
-
-// Раскомментировать, если выполняется OneScript
-// #Использовать "./internal"
-
-#Область СлужебныйПрограммныйИнтерфейс
-
-Функция СоздатьБазуДанных(Знач Модуль, Знач База, Знач Соединение = "", Знач Tls = Неопределено) Экспорт
-
- Схема = ПустаяСхемаSQL("CREATEDATABASE", Модуль);
-
- УстановитьИмяБазы(Схема, База);
-
- Запрос = СформироватьТекстSQL(Схема);
- Результат = ВыполнитьЗапросSQL(Модуль, Запрос, , , Соединение, Tls);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция УдалитьБазуДанных(Знач Модуль, Знач База, Знач Соединение = "", Знач Tls = Неопределено) Экспорт
-
- Схема = ПустаяСхемаSQL("DROPDATABASE", Модуль);
-
- УстановитьИмяБазы(Схема, База);
-
- Запрос = СформироватьТекстSQL(Схема);
- Результат = ВыполнитьЗапросSQL(Модуль, Запрос, , , Соединение, Tls);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция СоздатьТаблицу(Знач Модуль
- , Знач Таблица
- , Знач СтруктураКолонок
- , Знач Соединение = ""
- , Знач Tls = Неопределено) Экспорт
-
- ТекстОшибки = "Структура колонок не является валидной структурой ключ-значение";
- OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(СтруктураКолонок, ТекстОшибки);
-
- Схема = ПустаяСхемаSQL("CREATE", Модуль);
-
- УстановитьИмяТаблицы(Схема, Таблица);
-
- Для Каждого Колонка Из СтруктураКолонок Цикл
- ДобавитьКолонку(Схема, Колонка.Ключ, Колонка.Значение);
- КонецЦикла;
-
- Запрос = СформироватьТекстSQL(Схема);
- Результат = ВыполнитьЗапросSQL(Модуль, Запрос, , , Соединение, Tls);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция ДобавитьКолонкуТаблицы(Знач Модуль
- , Знач Таблица
- , Знач Имя
- , Знач ТипДанных
- , Знач Соединение = ""
- , Знач Tls = Неопределено) Экспорт
-
- Схема = ПустаяСхемаSQL("ALTERTABLEADD", Модуль);
-
- УстановитьИмяТаблицы(Схема, Таблица);
-
- УстановитьПроизвольноеПоле(Схема, "name" , Имя , "Строка");
- УстановитьПроизвольноеПоле(Схема, "dtype", ТипДанных, "Строка");
-
- Запрос = СформироватьТекстSQL(Схема);
- Результат = ВыполнитьЗапросSQL(Модуль, Запрос, , , Соединение, Tls);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция УдалитьКолонкуТаблицы(Знач Модуль
- , Знач Таблица
- , Знач Имя
- , Знач Соединение = ""
- , Знач Tls = Неопределено) Экспорт
-
- Схема = ПустаяСхемаSQL("ALTERTABLEDROP", Модуль);
-
- УстановитьИмяТаблицы(Схема, Таблица);
- УстановитьПроизвольноеПоле(Схема, "name", Имя, "Строка");
-
- Запрос = СформироватьТекстSQL(Схема);
- Результат = ВыполнитьЗапросSQL(Модуль, Запрос, , , Соединение, Tls);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция ГарантироватьТаблицу(Знач Модуль
- , Знач Таблица
- , Знач СтруктураКолонок
- , Знач Соединение = ""
- , Знач Tls = Неопределено) Экспорт
-
- ТекстОшибки = "Структура колонок не является валидной структурой ключ-значение";
- OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(СтруктураКолонок, ТекстОшибки);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Таблица);
-
- Result_ = "result";
-
- СтруктураРезультата = Новый Структура(Result_, Истина);
-
- Соединение = ОткрытьСоединение(Модуль, Соединение, Tls);
- ПроблемныйЭтап = ОбработатьНачалоЗаписи(Модуль, Истина, Соединение);
-
- Если ЗначениеЗаполнено(ПроблемныйЭтап) Тогда
- Возврат ПроблемныйЭтап;
- КонецЕсли;
-
- Попытка
-
- ОписаниеТаблицы = ПолучитьСтруктуруТаблицы(Модуль, Таблица, Соединение, Tls);
-
- Если Не ОписаниеТаблицы[Result_] Тогда
- Возврат ОписаниеТаблицы;
- КонецЕсли;
-
- КолонкиТаблицы = ОписаниеТаблицы["data"];
-
- Если Не ЗначениеЗаполнено(КолонкиТаблицы) Тогда
- СтруктураРезультата = СоздатьТаблицу(Модуль, Таблица, СтруктураКолонок, Соединение, Tls);
- Иначе
-
- Ошибка = НормализоватьТаблицу(Модуль, Таблица, СтруктураКолонок, КолонкиТаблицы, Соединение, Tls);
-
- Если Ошибка <> Неопределено Тогда
- Возврат Ошибка;
- КонецЕсли;
-
- КонецЕсли;
-
- Завершение = Модуль.ВыполнитьЗапросSQL("COMMIT;", , , Соединение);
- СтруктураРезультата.Вставить("commit", Завершение);
-
- Исключение
-
- Откат = Модуль.ВыполнитьЗапросSQL("ROLLBACK;", , , Соединение);
-
- СтруктураРезультата.Вставить(Result_ , Ложь);
- СтруктураРезультата.Вставить("error" , ОписаниеОшибки());
- СтруктураРезультата.Вставить("rollback", Откат);
-
- КонецПопытки;
-
- Возврат СтруктураРезультата;
-
-КонецФункции
-
-Функция ДобавитьЗаписи(Знач Модуль
- , Знач Таблица
- , Знач МассивДанных
- , Знач Транзакция = Истина
- , Знач Соединение = ""
- , Знач Tls = Неопределено) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьМассив(МассивДанных);
- OPI_ПреобразованиеТипов.ПолучитьБулево(Транзакция);
-
- Соединение = ОткрытьСоединение(Модуль, Соединение, Tls);
- ПроблемныйЭтап = ОбработатьНачалоЗаписи(Модуль, Транзакция, Соединение);
-
- Если ЗначениеЗаполнено(ПроблемныйЭтап) Тогда
- Возврат ПроблемныйЭтап;
- КонецЕсли;
-
- СтруктураОбработки = ОбработатьЗаписи(Модуль, Таблица, МассивДанных, Транзакция, Соединение);
- СтруктураРезультата = ОбработатьКонецЗаписи(СтруктураОбработки, Модуль, Транзакция, Соединение);
-
- Возврат СтруктураРезультата;
-
-КонецФункции
-
-Функция ПолучитьЗаписи(Знач Модуль
- , Знач Таблица
- , Знач Поля = "*"
- , Знач Фильтры = ""
- , Знач Сортировка = ""
- , Знач Количество = ""
- , Знач Соединение = ""
- , Знач Tls = Неопределено) Экспорт
-
- Схема = ПустаяСхемаSQL("SELECT", Модуль);
-
- УстановитьИмяТаблицы(Схема, Таблица);
- УстановитьЛимит(Схема, Количество);
-
- ЗаполнитьПоля(Схема, Поля);
- ЗаполнитьФильтры(Схема, Фильтры);
- ЗаполнитьСортировку(Схема, Сортировка);
-
- Запрос = СформироватьТекстSQL(Схема);
-
- Результат = ВыполнитьЗапросSQL(Модуль, Запрос, Схема["values"], , Соединение, Tls);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция ОбновитьЗаписи(Знач Модуль
- , Знач Таблица
- , Знач СтруктураЗначений
- , Знач Фильтры = ""
- , Знач Соединение = ""
- , Знач Tls = Неопределено) Экспорт
-
- Схема = ПустаяСхемаSQL("UPDATE", Модуль);
-
- МассивПолей = Новый Массив;
- МассивЗначений = Новый Массив;
-
- УстановитьИмяТаблицы(Схема, Таблица);
- РазделитьКоллекциюДанных(СтруктураЗначений, МассивПолей, МассивЗначений);
-
- Схема["values"] = МассивЗначений;
-
- Для Каждого Поле Из МассивПолей Цикл
- ДобавитьПоле(Схема, Поле);
- КонецЦикла;
-
- ЗаполнитьФильтры(Схема, Фильтры);
-
- Запрос = СформироватьТекстSQL(Схема);
- Результат = ВыполнитьЗапросSQL(Модуль, Запрос, Схема["values"], , Соединение, Tls);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция УдалитьЗаписи(Знач Модуль
- , Знач Таблица
- , Знач Фильтры = ""
- , Знач Соединение = ""
- , Знач Tls = Неопределено) Экспорт
-
- Схема = ПустаяСхемаSQL("DELETE", Модуль);
-
- УстановитьИмяТаблицы(Схема, Таблица);
-
- ЗаполнитьФильтры(Схема, Фильтры);
-
- Запрос = СформироватьТекстSQL(Схема);
- Результат = ВыполнитьЗапросSQL(Модуль, Запрос, Схема["values"], , Соединение, Tls);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция УдалитьТаблицу(Знач Модуль, Знач Таблица, Знач Соединение = "", Знач Tls = Неопределено) Экспорт
-
- Схема = ПустаяСхемаSQL("DROP", Модуль);
-
- УстановитьИмяТаблицы(Схема, Таблица);
-
- Запрос = СформироватьТекстSQL(Схема);
- Результат = ВыполнитьЗапросSQL(Модуль, Запрос, , , Соединение, Tls);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция ОчиститьТаблицу(Знач Модуль, Знач Таблица, Знач Соединение = "", Знач Tls = Неопределено) Экспорт
-
- Схема = ПустаяСхемаSQL("TRUNCATE", Модуль);
-
- УстановитьИмяТаблицы(Схема, Таблица);
-
- Запрос = СформироватьТекстSQL(Схема);
- Результат = ВыполнитьЗапросSQL(Модуль, Запрос, , , Соединение, Tls);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция ПолучитьСтруктуруТаблицы(Знач Модуль, Знач Таблица, Знач Соединение = "", Знач Tls = Неопределено) Экспорт
-
- Схема = ПустаяСхемаSQL("TABLESCHEMA", Модуль);
-
- УстановитьИмяТаблицы(Схема, Таблица);
-
- Запрос = СформироватьТекстSQL(Схема);
- Результат = ВыполнитьЗапросSQL(Модуль, Запрос, , Истина, Соединение, Tls);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция ПолучитьСтруктуруФильтраЗаписей(Знач Пустая = Ложь) Экспорт
-
- СтруктураФильтра = Новый Структура;
-
- СтруктураФильтра.Вставить("field", "<имя поля для отбора>");
- СтруктураФильтра.Вставить("type" , "<тип сравнения>");
- СтруктураФильтра.Вставить("value", "<значение для сравнения>");
- СтруктураФильтра.Вставить("union", "<связь со следующим условием: AND, OR и пр.>");
- СтруктураФильтра.Вставить("raw" , "<истина - значение будет вставлено текстом, как есть, ложь - через параметр>");
-
- Если Пустая Тогда
- СтруктураФильтра = OPI_Инструменты.ОчиститьКоллекциюРекурсивно(СтруктураФильтра);
- КонецЕсли;
-
- //@skip-check constructor-function-return-section
- Возврат СтруктураФильтра;
-
-КонецФункции
-
-Функция ВыполнитьЗапросСОбработкой(Коннектор, Знач ТекстЗапроса, Знач ФорсироватьРезультат, Знач Параметры) Экспорт
-
- КлючЗапроса = ИнициализироватьЗапрос(Коннектор, ТекстЗапроса, ФорсироватьРезультат);
-
- Если Не КлючЗапроса["result"] Тогда
- Возврат КлючЗапроса;
- Иначе
- КлючЗапроса = КлючЗапроса["key"];
- КонецЕсли;
-
- Добавление = УстановитьПараметрыЗапроса(Коннектор, КлючЗапроса, Параметры);
-
- Если Не Добавление["result"] Тогда
- Возврат Добавление;
- КонецЕсли;
-
- Результат = Коннектор.Execute(КлючЗапроса);
- Результат = ОбработатьРезультатЗапроса(Коннектор, КлючЗапроса, Результат);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция ОбработатьПараметры(Знач Параметры, Знач СтруктураТипов) Экспорт
-
- Если Не ЗначениеЗаполнено(Параметры) Тогда
- Возврат Новый Массив;
- КонецЕсли;
-
- OPI_ПреобразованиеТипов.ПолучитьМассив(Параметры);
-
- Для Н = 0 По Параметры.ВГраница() Цикл
-
- ТекущийПараметр = Параметры[Н];
-
- ТекущийПараметр = ОбработатьПараметр(ТекущийПараметр, СтруктураТипов);
-
- Параметры[Н] = ТекущийПараметр;
-
- КонецЦикла;
-
- Возврат Параметры;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-#Область Схемы
-
-Функция ПустаяСхемаSQL(Знач Действие, Знач Модуль = Неопределено)
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Действие);
-
- Действие = вРег(Действие);
-
- Если Действие = "SELECT" Тогда
-
- Схема = ПустаяСхемаSelect();
-
- ИначеЕсли Действие = "INSERT" Тогда
-
- Схема = ПустаяСхемаInsert();
-
- ИначеЕсли Действие = "UPDATE" Тогда
-
- Схема = ПустаяСхемаUpdate();
-
- ИначеЕсли Действие = "DELETE" Тогда
-
- Схема = ПустаяСхемаDelete();
-
- ИначеЕсли Действие = "CREATE" Тогда
-
- Схема = ПустаяСхемаCreate();
-
- ИначеЕсли Действие = "DROP" Тогда
-
- Схема = ПустаяСхемаDrop();
-
- ИначеЕсли Действие = "TRUNCATE" Тогда
-
- Схема = ПустаяСхемаTruncate();
-
- ИначеЕсли Действие = "CREATEDATABASE" Тогда
-
- Схема = ПустаяСхемаCreateDatabase();
-
- ИначеЕсли Действие = "DROPDATABASE" Тогда
-
- Схема = ПустаяСхемаDropDatabase();
-
- ИначеЕсли Действие = "TABLESCHEMA" Тогда
-
- Схема = ПустаяСхемаTableSchema();
-
- ИначеЕсли Действие = "ALTERTABLEADD" Тогда
-
- Схема = ПустаяСхемаAlterTableAdd();
-
- ИначеЕсли Действие = "ALTERTABLEDROP" Тогда
-
- Схема = ПустаяСхемаAlterTableDrop();
-
- Иначе
-
- Схема = Новый Структура;
-
- КонецЕсли;
-
- Особенности = Модуль.ПолучитьОсобенности();
-
- ЗаменитьСтандартныеОсобенности(Особенности);
-
- Схема.Вставить("nump" , Особенности["НумерацияПараметров"]);
- Схема.Вставить("markp", Особенности["МаркерПараметров"]);
- Схема.Вставить("dbms" , Особенности["СУБД"]);
-
- Возврат Схема;
-
-КонецФункции
-
-Функция ПустаяСхемаSelect()
-
- Схема = Новый Структура("type", "SELECT");
-
- Схема.Вставить("table" , "");
- Схема.Вставить("filter" , Новый Массив);
- Схема.Вставить("order" , Новый Массив);
- Схема.Вставить("limit" , 0);
- Схема.Вставить("set" , Новый Массив);
- Схема.Вставить("values" , Новый Массив);
-
- Возврат Схема;
-
-КонецФункции
-
-Функция ПустаяСхемаInsert()
-
- Схема = Новый Структура("type", "INSERT");
-
- Схема.Вставить("table", "");
- Схема.Вставить("set" , Новый Массив);
-
- Возврат Схема;
-
-КонецФункции
-
-Функция ПустаяСхемаUpdate()
-
- Схема = Новый Структура("type", "UPDATE");
-
- Схема.Вставить("table" , "");
- Схема.Вставить("set" , Новый Массив);
- Схема.Вставить("filter" , Новый Массив);
- Схема.Вставить("values" , Новый Массив);
-
- Возврат Схема;
-
-КонецФункции
-
-Функция ПустаяСхемаDelete()
-
- Схема = Новый Структура("type", "DELETE");
-
- Схема.Вставить("table" , "");
- Схема.Вставить("filter", Новый Массив);
- Схема.Вставить("values", Новый Массив);
-
- Возврат Схема;
-
-КонецФункции
-
-Функция ПустаяСхемаCreate()
-
- Схема = Новый Структура("type", "CREATE");
-
- Схема.Вставить("table" , "");
- Схема.Вставить("columns", Новый Массив);
-
- Возврат Схема;
-
-КонецФункции
-
-Функция ПустаяСхемаDrop()
-
- Схема = Новый Структура("type", "DROP");
-
- Схема.Вставить("table" , "");
-
- Возврат Схема;
-
-КонецФункции
-
-Функция ПустаяСхемаTruncate()
-
- Схема = Новый Структура("type", "TRUNCATE");
-
- Схема.Вставить("table" , "");
-
- Возврат Схема;
-
-КонецФункции
-
-Функция ПустаяСхемаCreateDatabase()
-
- Схема = Новый Структура("type", "CREATEDATABASE");
-
- Схема.Вставить("database" , "");
-
- Возврат Схема;
-
-КонецФункции
-
-Функция ПустаяСхемаDropDatabase()
-
- Схема = Новый Структура("type", "DROPDATABASE");
-
- Схема.Вставить("database" , "");
-
- Возврат Схема;
-
-КонецФункции
-
-Функция ПустаяСхемаTableSchema()
-
- Схема = Новый Структура("type", "TABLESCHEMA");
-
- Схема.Вставить("table" , "");
- Схема.Вставить("common", Истина);
-
- Возврат Схема;
-
-КонецФункции
-
-Функция ПустаяСхемаAlterTableAdd()
-
- Схема = Новый Структура("type", "ALTERTABLEADD");
-
- Схема.Вставить("table", "");
- Схема.Вставить("name" , "");
- Схема.Вставить("dtype", "");
-
- Возврат Схема;
-
-КонецФункции
-
-Функция ПустаяСхемаAlterTableDrop()
-
- Схема = Новый Структура("type", "ALTERTABLEDROP");
-
- Схема.Вставить("table", "");
- Схема.Вставить("name" , "");
-
- Возврат Схема;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область Процессоры
-
-Функция СформироватьТекстSQL(Знач Схема)
-
- ТекстОшибки = "Переданное значение не является валидной схемой SQL запроса";
- OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(Схема, ТекстОшибки);
-
- ТипСхемы = "";
-
- Если Не OPI_Инструменты.ПолеКоллекцииСуществует(Схема, "type", ТипСхемы) Тогда
- ВызватьИсключение ТекстОшибки;
- КонецЕсли;
-
- ТипСхемы = вРег(ТипСхемы);
-
- Если ТипСхемы = "SELECT" Тогда
-
- ТекстЗапроса = СформироватьТекстSelect(Схема);
-
- ИначеЕсли ТипСхемы = "INSERT" Тогда
-
- ТекстЗапроса = СформироватьТекстInsert(Схема);
-
- ИначеЕсли ТипСхемы = "UPDATE" Тогда
-
- ТекстЗапроса = СформироватьТекстUpdate(Схема);
-
- ИначеЕсли ТипСхемы = "DELETE" Тогда
-
- ТекстЗапроса = СформироватьТекстDelete(Схема);
-
- ИначеЕсли ТипСхемы = "CREATE" Тогда
-
- ТекстЗапроса = СформироватьТекстCreate(Схема);
-
- ИначеЕсли ТипСхемы = "DROP" Тогда
-
- ТекстЗапроса = СформироватьТекстDrop(Схема);
-
- ИначеЕсли ТипСхемы = "TRUNCATE" Тогда
-
- ТекстЗапроса = СформироватьТекстTruncate(Схема);
-
- ИначеЕсли ТипСхемы = "CREATEDATABASE" Тогда
-
- ТекстЗапроса = СформироватьТекстCreateDatabase(Схема);
-
- ИначеЕсли ТипСхемы = "DROPDATABASE" Тогда
-
- ТекстЗапроса = СформироватьТекстDropDatabase(Схема);
-
- ИначеЕсли ТипСхемы = "TABLESCHEMA" Тогда
-
- ТекстЗапроса = СформироватьТекстTableSchema(Схема);
-
- ИначеЕсли ТипСхемы = "ALTERTABLEADD" Тогда
-
- ТекстЗапроса = СформироватьТекстAlterTableAdd(Схема);
-
- ИначеЕсли ТипСхемы = "ALTERTABLEDROP" Тогда
-
- ТекстЗапроса = СформироватьТекстAlterTableDrop(Схема);
-
- Иначе
-
- ТекстЗапроса = "";
-
- КонецЕсли;
-
- Возврат ТекстЗапроса;
-
-КонецФункции
-
-Функция СформироватьТекстSelect(Знач Схема)
-
- ПроверитьОбязательныеПоляСхемы(Схема, "table,filter,order,limit,set");
-
- Таблица = Схема["table"];
- Поля = Схема["set"];
- Фильтры = Схема["filter"];
- Сортировка = Схема["order"];
- Количество = Схема["limit"];
- СУБД = Схема["dbms"];
-
- ШаблонSQL = "SELECT %1 %2 FROM %3
- |%4
- |%5
- |%6;";
-
- ТекстФильтра = СформироватьТекстФильтра(Фильтры);
- ТекстСортировки = СформироватьТекстСортировки(Сортировка);
-
- Если СУБД = "mssql" Тогда
- ТекстТопа = СформироватьТекстТопа(Количество);
- ТекстЛимита = "";
- Иначе
- ТекстТопа = "";
- ТекстЛимита = СформироватьТекстКоличества(Количество);
- КонецЕсли;
-
- ТекстSQL = СтрШаблон(ШаблонSQL
- , ТекстТопа
- , СтрСоединить(Поля, ", ")
- , Таблица
- , ТекстФильтра
- , ТекстСортировки
- , ТекстЛимита);
-
- Возврат ТекстSQL;
-
-КонецФункции
-
-Функция СформироватьТекстInsert(Знач Схема)
-
- ПроверитьОбязательныеПоляСхемы(Схема, "table,set");
-
- Таблица = Схема["table"];
- Поля = Схема["set"];
- Нумерация = Схема["nump"];
- Маркер = Схема["markp"];
-
- ШаблонSQL = "INSERT INTO %1 (%2) VALUES (%3);";
-
- Параметры = Новый Массив;
-
- Для Н = 1 По Поля.Количество() Цикл
-
- ТекущийМаркер = Маркер;
-
- Если Нумерация Тогда
- ТекущийМаркер = ТекущийМаркер + OPI_Инструменты.ЧислоВСтроку(Н);
- КонецЕсли;
-
- Параметры.Добавить(ТекущийМаркер);
-
- КонецЦикла;
-
- ТекстSQL = СтрШаблон(ШаблонSQL
- , Таблица
- , СтрСоединить(Поля, ", ")
- , СтрСоединить(Параметры, ", "));
-
- Возврат ТекстSQL;
-
-КонецФункции
-
-Функция СформироватьТекстUpdate(Знач Схема)
-
- ПроверитьОбязательныеПоляСхемы(Схема, "table,set,values");
-
- Таблица = Схема["table"];
- Поля = Схема["set"];
- Фильтры = Схема["filter"];
- Нумерация = Схема["nump"];
- Маркер = Схема["markp"];
-
- ШаблонSQL = "UPDATE %1 SET %2 %3;";
-
- ТекстФильтра = СформироватьТекстФильтра(Фильтры);
-
- Для Н = 0 По Поля.ВГраница() Цикл
-
- ТекущийМаркер = Маркер;
-
- Если Нумерация Тогда
- ТекущийМаркер = ТекущийМаркер + OPI_Инструменты.ЧислоВСтроку(Н + 1);
- КонецЕсли;
-
- Поля[Н] = Поля[Н] + " = " + ТекущийМаркер;
-
- КонецЦикла;
-
- ТекстSQL = СтрШаблон(ШаблонSQL, Таблица, СтрСоединить(Поля, "," + Символы.ПС), ТекстФильтра);
-
- Возврат ТекстSQL;
-
-КонецФункции
-
-Функция СформироватьТекстDelete(Знач Схема)
-
- ПроверитьОбязательныеПоляСхемы(Схема, "table");
-
- Таблица = Схема["table"];
- Фильтры = Схема["filter"];
-
- ШаблонSQL = "DELETE FROM %1 %2;";
-
- ТекстФильтра = СформироватьТекстФильтра(Фильтры);
-
- ТекстSQL = СтрШаблон(ШаблонSQL, Таблица, ТекстФильтра);
-
- Возврат ТекстSQL;
-
-КонецФункции
-
-Функция СформироватьТекстCreate(Знач Схема)
-
- ПроверитьОбязательныеПоляСхемы(Схема, "table,columns");
-
- Таблица = Схема["table"];
- Колонки = Схема["columns"];
-
- ШаблонSQL = "CREATE TABLE %1 (
- | %2
- | );";
-
- ШаблонКолонки = "%1 %2";
-
- МассивОписанийКолонок = Новый Массив;
-
- Для Каждого Колонка Из Колонки Цикл
- Для Каждого Элемент Из Колонка Цикл
- МассивОписанийКолонок.Добавить(СтрШаблон(ШаблонКолонки, Элемент.Ключ, Элемент.Значение));
- КонецЦикла;
- КонецЦикла;
-
- ОписанияКолонок = СтрСоединить(МассивОписанийКолонок, "," + Символы.ПС);
-
- ТекстSQL = СтрШаблон(ШаблонSQL, Таблица, ОписанияКолонок);
-
- Возврат ТекстSQL;
-
-КонецФункции
-
-Функция СформироватьТекстDrop(Знач Схема)
-
- ПроверитьОбязательныеПоляСхемы(Схема, "table");
-
- Таблица = Схема["table"];
-
- ШаблонSQL = "DROP TABLE %1;";
-
- ТекстSQL = СтрШаблон(ШаблонSQL, Таблица);
-
- Возврат ТекстSQL;
-
-КонецФункции
-
-Функция СформироватьТекстTruncate(Знач Схема)
-
- ПроверитьОбязательныеПоляСхемы(Схема, "table");
-
- Таблица = Схема["table"];
-
- ШаблонSQL = "TRUNCATE TABLE %1;";
-
- ТекстSQL = СтрШаблон(ШаблонSQL, Таблица);
-
- Возврат ТекстSQL;
-
-КонецФункции
-
-Функция СформироватьТекстCreateDatabase(Знач Схема)
-
- ПроверитьОбязательныеПоляСхемы(Схема, "database");
-
- База = Схема["database"];
-
- ШаблонSQL = "CREATE DATABASE %1;";
-
- ТекстSQL = СтрШаблон(ШаблонSQL, База);
-
- Возврат ТекстSQL;
-
-КонецФункции
-
-Функция СформироватьТекстDropDatabase(Знач Схема)
-
- ПроверитьОбязательныеПоляСхемы(Схема, "database");
-
- База = Схема["database"];
-
- ШаблонSQL = "DROP DATABASE %1;";
-
- ТекстSQL = СтрШаблон(ШаблонSQL, База);
-
- Возврат ТекстSQL;
-
-КонецФункции
-
-Функция СформироватьТекстTableSchema(Знач Схема)
-
- СУБД = Схема["dbms"];
- Таблица = Схема["table"];
-
- Если СУБД = "sqlite" Тогда
-
- ШаблонSQL = "PRAGMA table_info('%1');";
-
- Иначе
-
- ШаблонSQL = "SELECT column_name, data_type, is_nullable, column_default, character_maximum_length
- |FROM information_schema.columns
- |WHERE table_name = '%1';";
-
- КонецЕсли;
-
- ТекстSQL = СтрШаблон(ШаблонSQL, Таблица);
-
- Возврат ТекстSQL;
-
-КонецФункции
-
-Функция СформироватьТекстAlterTableAdd(Знач Схема)
-
- Таблица = Схема["table"];
- Имя = Схема["name"];
- ТипДанных = Схема["dtype"];
-
- ШаблонSQL = "ALTER TABLE %1 ADD %2 %3";
-
- ТекстSQL = СтрШаблон(ШаблонSQL, Таблица, Имя, ТипДанных);
-
- Возврат ТекстSQL;
-
-КонецФункции
-
-Функция СформироватьТекстAlterTableDrop(Знач Схема)
-
- Таблица = Схема["table"];
- Имя = Схема["name"];
- СУБД = Схема["dbms"];
-
- ШаблонSQL = "ALTER TABLE %1 DROP %2 %3";
- Уточнение = ?(СУБД = "mssql", "COLUMN", "");
-
- ТекстSQL = СтрШаблон(ШаблонSQL, Таблица, Уточнение, Имя);
-
- Возврат ТекстSQL;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область Вспомогательные
-
-Функция ОткрытьСоединение(Знач Модуль, Знач Соединение, Знач Tls)
-
- Если Tls = Неопределено Тогда
- Результат = Модуль.ОткрытьСоединение(Соединение);
- Иначе
- Результат = Модуль.ОткрытьСоединение(Соединение, Tls);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция ВыполнитьЗапросSQL(Знач Модуль
- , Знач ТекстЗапроса
- , Знач Параметры = ""
- , Знач ФорсироватьРезультат = Ложь
- , Знач Соединение = ""
- , Знач Tls = Неопределено)
-
- Если ЗначениеЗаполнено(Tls) Тогда
- Результат = Модуль.ВыполнитьЗапросSQL(ТекстЗапроса, Параметры, ФорсироватьРезультат, Соединение, Tls);
- Иначе
- Результат = Модуль.ВыполнитьЗапросSQL(ТекстЗапроса, Параметры, ФорсироватьРезультат, Соединение);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция ОбработатьЗаписи(Знач Модуль, Знач Таблица, Знач МассивДанных, Знач Транзакция, Знач Соединение)
-
- Если OPI_Компоненты.ТребуетсяПередачаЧерезФайл() Тогда
- Результат = ДобавитьЗаписиПакетом(Модуль, Таблица, МассивДанных, Транзакция, Соединение);
- Иначе
- Результат = ДобавитьЗаписиРаздельно(Модуль, Таблица, МассивДанных, Транзакция, Соединение);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция ДобавитьЗаписиРаздельно(Знач Модуль, Знач Таблица, Знач МассивДанных, Знач Транзакция, Знач Соединение)
-
- МассивОшибок = Новый Массив;
- Счетчик = 0;
- СчетчикУспешных = 0;
-
- Для Каждого Запись Из МассивДанных Цикл
-
- Счетчик = Счетчик + 1;
-
- Если Не ПроверитьКорректностьЗаписи(Запись, МассивОшибок, Счетчик) Тогда
- Если Транзакция Тогда
- Прервать;
- Иначе
- Продолжить;
- КонецЕсли;
- КонецЕсли;
-
- Результат = ДобавитьЗапись(Модуль, Таблица, Запись, Соединение);
-
- Успех = ПроверитьВыполнениеОчередногоЗапроса(Результат, Транзакция, Счетчик, СчетчикУспешных, МассивОшибок);
-
- Если Не Успех Тогда
- Прервать;
- КонецЕсли;
-
- КонецЦикла;
-
- Результат = Новый Структура("МассивОшибок,СчетчикУспешных", МассивОшибок, СчетчикУспешных);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция ДобавитьЗаписиПакетом(Знач Модуль, Знач Таблица, Знач МассивДанных, Знач Транзакция, Знач Соединение)
-
- МассивЗаготовок = Новый Массив;
- МассивОшибок = Новый Массив;
-
- // BSLLS:MissingTemporaryFileDeletion-off
-
- //@skip-check missing-temporary-file-deletion
- ПутьЗаготовок = ПолучитьИмяВременногоФайла();
- //@skip-check missing-temporary-file-deletion
- ПутьКлючей = ПолучитьИмяВременногоФайла();
-
- // BSLLS:MissingTemporaryFileDeletion-on
-
- Счетчик = 0;
- СчетчикУспешных = 0;
-
- Для Каждого Запись Из МассивДанных Цикл
-
- Счетчик = Счетчик + 1;
-
- Если Не ПроверитьКорректностьЗаписи(Запись, МассивОшибок, Счетчик) Тогда
- Если Транзакция Тогда
- Прервать;
- Иначе
- Продолжить;
- КонецЕсли;
- КонецЕсли;
-
- Результат = ДобавитьЗапись(Модуль, Таблица, Запись, Соединение, Ложь);
- МассивЗаготовок.Добавить(Результат);
-
- КонецЦикла;
-
- Попытка
-
- OPI_Инструменты.ЗаписатьJSONФайл(ПутьЗаготовок, МассивЗаготовок);
-
- Инициализация = Соединение.BatchQuery(ПутьЗаготовок, ПутьКлючей);
- Инициализация = OPI_Инструменты.JsonВСтруктуру(Инициализация);
-
- OPI_Инструменты.УдалитьФайлВПопытке(ПутьЗаготовок, "Не удалось удалить файл пакета запросов после установки");
-
- Если Не Инициализация["result"] Тогда
- ВызватьИсключение Инициализация["error"];
- КонецЕсли;
-
- Ключи = OPI_Инструменты.ПрочитатьJSONФайл(ПутьКлючей, Истина);
-
- OPI_Инструменты.УдалитьФайлВПопытке(ПутьКлючей, "Не удалось удалить файл ключей после инициализации");
-
- Исключение
-
- Ошибка = СтрШаблон("Batch query error: %1", ОписаниеОшибки());
- МассивОшибок.Добавить(Новый Структура("row,error", -1, Ошибка));
-
- Возврат Новый Структура("МассивОшибок,СчетчикУспешных", МассивОшибок, 0);
-
- КонецПопытки;
-
- Для Каждого КлючЗапроса Из Ключи Цикл
-
- Результат = Соединение.Execute(КлючЗапроса);
- Результат = ОбработатьРезультатЗапроса(Соединение, КлючЗапроса, Результат);
-
- Успех = ПроверитьВыполнениеОчередногоЗапроса(Результат, Транзакция, Счетчик, СчетчикУспешных, МассивОшибок);
-
- Если Не Успех Тогда
- Прервать;
- КонецЕсли;
-
- КонецЦикла;
-
- Результат = Новый Структура("МассивОшибок,СчетчикУспешных", МассивОшибок, СчетчикУспешных);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция ПроверитьВыполнениеОчередногоЗапроса(Знач Результат
- , Знач Транзакция
- , Знач Счетчик
- , СчетчикУспешных
- , МассивОшибок)
-
- Если Результат["result"] Тогда
- СчетчикУспешных = СчетчикУспешных + 1;
- Иначе
-
- МассивОшибок.Добавить(Новый Структура("row,error", Счетчик, Результат["error"]));
-
- Если Транзакция Тогда
- Возврат Ложь;
- КонецЕсли;
-
- КонецЕсли;
-
- Возврат Истина;
-
-КонецФункции
-
-Функция ПроверитьКорректностьЗаписи(Запись, МассивОшибок, Знач Счетчик)
-
- ОшибкаКоллекции = "Invalid data";
- Корректна = Истина;
-
- Попытка
- OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(Запись, ОшибкаКоллекции);
- Исключение
- МассивОшибок.Добавить(Новый Структура("row,error", Счетчик, ОшибкаКоллекции));
- Корректна = Ложь;
- КонецПопытки;
-
- Возврат Корректна;
-
-КонецФункции
-
-Функция ДобавитьЗапись(Знач Модуль, Знач Таблица, Знач Запись, Знач Соединение, Знач ВыполнятьСразу = Истина)
-
- МассивПолей = Новый Массив;
- МассивЗначений = Новый Массив;
-
- Схема = ПустаяСхемаSQL("INSERT", Модуль);
- УстановитьИмяТаблицы(Схема, Таблица);
-
- РазделитьКоллекциюДанных(Запись, МассивПолей, МассивЗначений);
-
- Для Каждого Поле Из МассивПолей Цикл
- ДобавитьПоле(Схема, Поле);
- КонецЦикла;
-
- Запрос = СформироватьТекстSQL(Схема);
-
- Если ВыполнятьСразу Тогда
- Результат = Модуль.ВыполнитьЗапросSQL(Запрос, МассивЗначений, , Соединение);
- Иначе
-
- Параметры = ОбработатьПараметры(МассивЗначений, Модуль.ПолучитьСтруктуруТипов());
-
- Результат = Новый Соответствие;
- Результат.Вставить("text" , Запрос);
- Результат.Вставить("params" , Параметры);
- Результат.Вставить("force_result", Ложь);
-
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция ОбработатьНачалоЗаписи(Знач Модуль, Знач Транзакция, Знач Соединение)
-
- Если Не OPI_Компоненты.ЭтоКомпонента(Соединение) Тогда
- Возврат Соединение;
- КонецЕсли;
-
- Если Транзакция Тогда
-
- Текст = Модуль.ПолучитьОсобенности()["НачалоТранзакции"];
- Начало = Модуль.ВыполнитьЗапросSQL(Текст, , , Соединение);
-
- Если Не Начало["result"] Тогда
- Возврат Начало;
- КонецЕсли;
-
- КонецЕсли;
-
-КонецФункции
-
-Функция ОбработатьКонецЗаписи(Знач СтруктураОбработки, Знач Модуль, Знач Транзакция, Знач Соединение)
-
- СтруктураРезультата = Новый Структура;
-
- МассивОшибок = СтруктураОбработки["МассивОшибок"];
- СчетчикУспешных = СтруктураОбработки["СчетчикУспешных"];
-
- Если Транзакция Тогда
-
- Если МассивОшибок.Количество() > 0 Тогда
-
- Откат = Модуль.ВыполнитьЗапросSQL("ROLLBACK;", , , Соединение);
-
- СчетчикУспешных = 0;
- СтруктураРезультата.Вставить("rollback", Откат);
-
- Иначе
-
- Завершение = Модуль.ВыполнитьЗапросSQL("COMMIT;", , , Соединение);
- СтруктураРезультата.Вставить("commit", Завершение);
-
- КонецЕсли;
-
- КонецЕсли;
-
- СтруктураРезультата.Вставить("result", МассивОшибок.Количество() = 0);
- СтруктураРезультата.Вставить("rows" , СчетчикУспешных);
- СтруктураРезультата.Вставить("errors", МассивОшибок);
-
- Возврат СтруктураРезультата;
-
-КонецФункции
-
-Функция НормализоватьТаблицу(Знач Модуль
- , Знач Таблица
- , Знач СтруктураКолонок
- , Знач КолонкиТаблицы
- , Знач Соединение
- , Знач Tls)
-
- СоответствиеНахождения = Новый Соответствие;
- ИмяПоля = Модуль.ПолучитьОсобенности()["ПолеКолонки"];
-
- КодУдаления = 0;
- КодДобавления = 1;
- КодИгнорирования = 2;
-
- Для Каждого Колонка Из КолонкиТаблицы Цикл
-
- ИмяКолонки = Колонка[ИмяПоля];
-
- Если Не ЗначениеЗаполнено(ИмяКолонки) Тогда
- Продолжить;
- Иначе
- СоответствиеНахождения.Вставить(ИмяКолонки, КодУдаления);
- КонецЕсли;
-
- КонецЦикла;
-
- Если СоответствиеНахождения.Количество() = 0 Тогда
- СоответствиеОтвета = Новый Соответствие;
- СоответствиеОтвета.Вставить("result", "false");
- СоответствиеОтвета.Вставить("error" , "Unsupported table schema type");
- Возврат СоответствиеОтвета;
- КонецЕсли;
-
- Для Каждого НеобходимаяКолонка Из СтруктураКолонок Цикл
-
- ИмяКолонки = НеобходимаяКолонка.Ключ;
- Существует = СоответствиеНахождения.Получить(ИмяКолонки) <> Неопределено;
- Действие = ?(Существует, КодИгнорирования, КодДобавления);
-
- СоответствиеНахождения.Вставить(ИмяКолонки, Действие);
-
- КонецЦикла;
-
- Для Каждого ЧастьСхемы Из СоответствиеНахождения Цикл
-
- КодДействия = ЧастьСхемы.Значение;
- ИмяКолонки = ЧастьСхемы.Ключ;
-
- Если КодДействия = 0 Тогда
-
- Результат = УдалитьКолонкуТаблицы(Модуль, Таблица, ИмяКолонки, Соединение, Tls);
-
- ИначеЕсли КодДействия = 1 Тогда
-
- ТипДанных = СтруктураКолонок[ИмяКолонки];
- Результат = ДобавитьКолонкуТаблицы(Модуль, Таблица, ИмяКолонки, ТипДанных, Соединение, Tls);
-
- Иначе
- Продолжить;
- КонецЕсли;
-
- Если Не Результат["result"] Тогда
- ВызватьИсключение Результат["error"];
- КонецЕсли;
-
- КонецЦикла;
-
- Возврат Неопределено;
-
-КонецФункции
-
-Функция СформироватьТекстФильтра(Знач Фильтры)
-
- Если Не ЗначениеЗаполнено(Фильтры) Тогда
- Возврат "";
- КонецЕсли;
-
- ТекстФильтров = "WHERE %1";
-
- МассивФильтров = Новый Массив;
-
- Счетчик = 1;
- Всего = Фильтры.Количество();
-
- Для Каждого Фильтр Из Фильтры Цикл
-
- ТекущийТекст = "%1 %2 %3 %4";
-
- Поле = Фильтр["field"];
- Тип = Фильтр["type"];
- Значение = Фильтр["value"];
- Соединение = Фильтр["union"];
- Соединение = ?(ЗначениеЗаполнено(Соединение), Соединение, "AND");
-
- Если Счетчик = Всего Тогда
- Соединение = "";
- КонецЕсли;
-
- ТекущийТекст = СтрШаблон(ТекущийТекст, Поле, Тип, Значение, Соединение);
- МассивФильтров.Добавить(ТекущийТекст);
-
- Счетчик = Счетчик + 1;
-
- КонецЦикла;
-
- ТекстФильтров = СтрШаблон(ТекстФильтров, СтрСоединить(МассивФильтров, " "));
-
- Возврат ТекстФильтров;
-
-КонецФункции
-
-Функция СформироватьТекстСортировки(Знач Сортировка)
-
- Если Не ЗначениеЗаполнено(Сортировка) Тогда
- Возврат "";
- КонецЕсли;
-
- ТекстСортировки = "ORDER BY %1";
-
- МассивСортировки = Новый Массив;
-
- Для Каждого Элемент Из Сортировка Цикл
-
- МассивСортировки.Добавить(Элемент["field"] + " " + Элемент["type"]);
-
- КонецЦикла;
-
- ТекстСортировки = СтрШаблон(ТекстСортировки, СтрСоединить(МассивСортировки, ", "));
-
- Возврат ТекстСортировки;
-
-КонецФункции
-
-Функция СформироватьТекстКоличества(Знач Количество)
-
- Если Не ЗначениеЗаполнено(Количество) Тогда
- Возврат "";
- КонецЕсли;
-
- ТекстКоличества = "LIMIT %1";
- ТекстКоличества = СтрШаблон(ТекстКоличества, OPI_Инструменты.ЧислоВСтроку(Количество));
-
- Возврат ТекстКоличества;
-
-КонецФункции
-
-Функция СформироватьТекстТопа(Знач Количество)
-
- Если Не ЗначениеЗаполнено(Количество) Тогда
- Возврат "";
- КонецЕсли;
-
- ТекстКоличества = "TOP %1";
- ТекстКоличества = СтрШаблон(ТекстКоличества, OPI_Инструменты.ЧислоВСтроку(Количество));
-
- Возврат ТекстКоличества;
-
-КонецФункции
-
-Процедура РазделитьКоллекциюДанных(Знач Запись, МассивПолей, МассивЗначений)
-
- ТекстОшибки = "Некорректный набор данных для обновления";
- OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(Запись, ТекстОшибки);
-
- Для Каждого Элемент Из Запись Цикл
-
- МассивПолей.Добавить(Элемент.Ключ);
- МассивЗначений.Добавить(Элемент.Значение);
-
- КонецЦикла;
-
-КонецПроцедуры
-
-Процедура ЗаполнитьПоля(Схема, Знач Поля)
-
- Если Не ЗначениеЗаполнено(Поля) Тогда
- Поля = "*";
- КонецЕсли;
-
- OPI_ПреобразованиеТипов.ПолучитьМассив(Поля);
-
- //@skip-check bsl-legacy-check-for-each-statetement-collection
- Для Каждого Поле Из Поля Цикл
- ДобавитьПоле(Схема, Поле);
- КонецЦикла;
-
-КонецПроцедуры
-
-Процедура ЗаполнитьФильтры(Схема, Знач Фильтры)
-
- Если Не ЗначениеЗаполнено(Фильтры) Тогда
- Возврат;
- КонецЕсли;
-
- OPI_ПреобразованиеТипов.ПолучитьМассив(Фильтры);
-
- //@skip-check bsl-legacy-check-for-each-statetement-collection
- Для Каждого Фильтр Из Фильтры Цикл
-
- ДобавитьОтбор(Схема
- , Фильтр["field"]
- , ?(OPI_Инструменты.ПолеКоллекцииСуществует(Фильтр, "type"), Фильтр["type"], "=")
- , Фильтр["value"]
- , ?(OPI_Инструменты.ПолеКоллекцииСуществует(Фильтр, "union"), Фильтр["union"], "AND")
- , ?(OPI_Инструменты.ПолеКоллекцииСуществует(Фильтр, "raw"), Фильтр["raw"], Ложь));
-
- КонецЦикла;
-
-КонецПроцедуры
-
-Процедура ЗаполнитьСортировку(Знач Схема, Знач Сортировка)
-
- Если Не ЗначениеЗаполнено(Сортировка) Тогда
- Возврат;
- КонецЕсли;
-
- OPI_ПреобразованиеТипов.ПолучитьКоллекцию(Сортировка);
-
- //@skip-check bsl-legacy-check-for-each-statetement-collection
- Для Каждого Элемент Из Сортировка Цикл
-
- ДобавитьСортировку(Схема, Элемент.Ключ, Элемент.Значение);
-
- КонецЦикла;
-
-КонецПроцедуры
-
-Процедура ПроверитьОбязательныеПоляСхемы(Схема, Знач Поля)
-
- МассивОбязательныхПолей = СтрРазделить(Поля, ",");
- МассивОтсутствующих = OPI_Инструменты.НайтиОтсутствующиеПоляКоллекции(Схема, МассивОбязательныхПолей);
-
- Если ЗначениеЗаполнено(МассивОтсутствующих) Тогда
- ВызватьИсключение "Отсутствуют необходимые поля схемы: " + СтрСоединить(МассивОтсутствующих, ", ");
- КонецЕсли;
-
-КонецПроцедуры
-
-Процедура ДобавитьКолонку(Схема, Знач Имя, Знач Тип) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Имя);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Тип);
-
- Если Не Схема["type"] = "CREATE" Тогда
- Возврат;
- КонецЕсли;
-
- СоответствиеКолонки = Новый Соответствие;
- СоответствиеКолонки.Вставить(Имя, Тип);
-
- Схема["columns"].Добавить(СоответствиеКолонки);
-
-КонецПроцедуры
-
-Процедура ДобавитьПоле(Схема, Знач Имя) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Имя);
-
- Схема["set"].Добавить(Имя);
-
-КонецПроцедуры
-
-Процедура ДобавитьОтбор(Схема
- , Знач Поле
- , Знач Тип
- , Знач Значение
- , Знач Группировка
- , Знач КакЕсть)
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Поле);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Тип);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Группировка);
- OPI_ПреобразованиеТипов.ПолучитьБулево(КакЕсть);
-
- Нумерация = Схема["nump"];
- Маркер = Схема["markp"];
-
- ОсновнаяСтруктура = Новый Структура("field,type,union"
- , Поле
- , Тип
- , Группировка);
-
- Если КакЕсть Тогда
-
- ОсновнаяСтруктура.Вставить("value", Строка(Значение));
-
- Иначе
-
- Схема["values"].Добавить(Значение);
-
- ТекущийМаркер = Маркер;
-
- Если Нумерация Тогда
- ПорядковыйНомер = Схема["values"].Количество();
- ТекущийМаркер = ТекущийМаркер + OPI_Инструменты.ЧислоВСтроку(ПорядковыйНомер);
- КонецЕсли;
-
- ОсновнаяСтруктура.Вставить("value", ТекущийМаркер);
-
- КонецЕсли;
-
- Схема["filter"].Добавить(ОсновнаяСтруктура);
-
-КонецПроцедуры
-
-Процедура ДобавитьСортировку(Схема, Знач Поле, Знач Тип)
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Поле);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Тип);
-
- Схема["order"].Добавить(Новый Структура("field,type", Поле, Тип));
-
-КонецПроцедуры
-
-Процедура УстановитьИмяТаблицы(Схема, Знач Имя)
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Имя);
-
- Схема.Вставить("table", Имя);
-
-КонецПроцедуры
-
-Процедура УстановитьИмяБазы(Схема, Знач Имя)
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Имя);
-
- Схема.Вставить("database", Имя);
-
-КонецПроцедуры
-
-Процедура УстановитьЛимит(Схема, Знач Количество)
-
- OPI_ПреобразованиеТипов.ПолучитьЧисло(Количество);
-
- Схема.Вставить("limit", Количество);
-
-КонецПроцедуры
-
-Процедура УстановитьПроизвольноеПоле(Схема, Знач ИмяПоля, Знач Значение, Знач ТипДанных)
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(ИмяПоля);
-
- OPI_Инструменты.ДобавитьПоле(ИмяПоля, Значение, ТипДанных, Схема);
-
-КонецПроцедуры
-
-Процедура ЗаменитьСтандартныеОсобенности(Особенности)
-
- СтандартныеОсобенности = Новый Соответствие;
- СтандартныеОсобенности.Вставить("НумерацияПараметров", Истина); // nump
- СтандартныеОсобенности.Вставить("МаркерПараметров" , "?"); // markp
- СтандартныеОсобенности.Вставить("СУБД" , ""); // dbms
-
- Для Каждого Особенность Из Особенности Цикл
- СтандартныеОсобенности.Вставить(Особенность.Ключ, Особенность.Значение);
- КонецЦикла;
-
- Особенности = СтандартныеОсобенности;
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область ОбработкаПараметров
-
-Функция ИнициализироватьЗапрос(Знач Коннектор, Знач ТекстЗапроса, Знач ФорсироватьРезультат)
-
- Если OPI_Компоненты.ТребуетсяПередачаЧерезФайл() И СтрДлина(ТекстЗапроса) > 1000 Тогда
-
- // BSLLS:MissingTemporaryFileDeletion-off
-
- //@skip-check missing-temporary-file-deletion
- ИВФ = ПолучитьИмяВременногоФайла();
-
- // BSLLS:MissingTemporaryFileDeletion-on
-
- ТекстДД = ПолучитьДвоичныеДанныеИзСтроки(ТекстЗапроса);
- ТекстДД.Записать(ИВФ);
-
- КлючЗапроса = Коннектор.InitQuery(ИВФ, ФорсироватьРезультат, Истина);
-
- OPI_Инструменты.УдалитьФайлВПопытке(ИВФ, "Не удалось удалить файл запроса после установки");
-
- Иначе
- КлючЗапроса = Коннектор.InitQuery(ТекстЗапроса, ФорсироватьРезультат, Ложь);
- КонецЕсли;
-
- КлючЗапроса = OPI_Инструменты.JSONВСтруктуру(КлючЗапроса);
-
- Возврат КлючЗапроса;
-
-КонецФункции
-
-Функция УстановитьПараметрыЗапроса(Знач Коннектор, Знач КлючЗапроса, Знач Параметры)
-
- Если OPI_Компоненты.ТребуетсяПередачаЧерезФайл() И ЗначениеЗаполнено(Параметры) Тогда
-
- // BSLLS:MissingTemporaryFileDeletion-off
-
- //@skip-check missing-temporary-file-deletion
- ИВФ = ПолучитьИмяВременногоФайла();
-
- // BSLLS:MissingTemporaryFileDeletion-on
-
- Попытка
- OPI_Инструменты.ЗаписатьJSONФайл(ИВФ, Параметры);
- Исключение
- ООп = ОписаниеОшибки();
- ВызватьИсключение СтрШаблон("Ошибка валидации JSON массива параметров: %1", ООп);
- КонецПопытки;
-
- Добавление = Коннектор.SetParamsFromFile(КлючЗапроса, ИВФ);
-
- OPI_Инструменты.УдалитьФайлВПопытке(ИВФ, "Не удалось удалить файл параметров запроса после установки");
-
- Иначе
- Параметры_ = OPI_Инструменты.JSONСтрокой(Параметры);
- Добавление = Коннектор.SetParamsFromString(КлючЗапроса, Параметры_);
- КонецЕсли;
-
- Добавление = OPI_Инструменты.JsonВСтруктуру(Добавление);
-
- Возврат Добавление;
-
-КонецФункции
-
-Функция ОбработатьРезультатЗапроса(Знач Коннектор, Знач КлючЗапроса, Знач РезультатВыполнения)
-
- РезультатВыполнения = OPI_Инструменты.JsonВСтруктуру(РезультатВыполнения);
-
- Если Не РезультатВыполнения["result"] Тогда
-
- Возврат РезультатВыполнения;
-
- ИначеЕсли РезультатВыполнения["data"] = Ложь Тогда
-
- РезультатВыполнения.Удалить("data");
- Возврат РезультатВыполнения;
-
- Иначе
-
- Если OPI_Компоненты.ТребуетсяПередачаЧерезФайл() Тогда
-
- // BSLLS:MissingTemporaryFileDeletion-off
-
- //@skip-check missing-temporary-file-deletion
- ИВФ = ПолучитьИмяВременногоФайла();
-
- // BSLLS:MissingTemporaryFileDeletion-on
-
- Результат = Коннектор.GetResultAsFile(КлючЗапроса, ИВФ);
- Результат = OPI_Инструменты.JsonВСтруктуру(Результат);
-
- Если Результат["result"] Тогда
- Результат = OPI_Инструменты.ПрочитатьJSONФайл(ИВФ, Истина);
- КонецЕсли;
-
- OPI_Инструменты.УдалитьФайлВПопытке(ИВФ, "Не удалось удалить файл результата запроса после установки");
-
- Иначе
- Результат = Коннектор.GetResultAsString(КлючЗапроса);
- Результат = OPI_Инструменты.JsonВСтруктуру(Результат);
- КонецЕсли;
-
- Возврат Результат;
-
- КонецЕсли;
-
-КонецФункции
-
-Функция ОбработатьПараметр(ТекущийПараметр, СтруктураТипов, КакОбъект = Истина)
-
- ТекущийТип = ОпределитьТипПараметра(ТекущийПараметр);
- ТекущийКлюч = СтруктураТипов.Получить(ТекущийТип);
-
- Если ТекущийТип = "ДвоичныеДанные" Тогда
-
- ТекущийПараметр = Base64Строка(ТекущийПараметр);
-
- ИначеЕсли ТекущийТип = "УникальныйИдентификатор" Тогда
-
- ТекущийПараметр = Строка(ТекущийПараметр);
-
- ИначеЕсли ТекущийТип = "Дата" Тогда
-
- ТекущийПараметр = OPI_Инструменты.ДатаRFC3339(ТекущийПараметр);
-
- ИначеЕсли OPI_Инструменты.ЭтоКоллекция(ТекущийПараметр) Тогда
-
- ОбработатьПараметрКоллекцию(ТекущийТип, СтруктураТипов, ТекущийПараметр, ТекущийКлюч);
-
- ИначеЕсли ТекущийТип = "Целое" Или ТекущийТип = "Дробное" Тогда
-
- OPI_ПреобразованиеТипов.ПолучитьЧисло(ТекущийПараметр);
-
- ИначеЕсли ТекущийТип = "Булево" Тогда
-
- OPI_ПреобразованиеТипов.ПолучитьБулево(ТекущийПараметр);
-
- Если СтруктураТипов.Получить("БулевоКакЧисло") Тогда
- ТекущийПараметр = ?(ТекущийПараметр, 1, 0);
- КонецЕсли;
-
- Иначе
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(ТекущийПараметр);
-
- КонецЕсли;
-
- Если КакОбъект Тогда
- ТекущийПараметр = Новый Структура(ТекущийКлюч, ТекущийПараметр);
- КонецЕсли;
-
- Возврат ТекущийПараметр;
-
-КонецФункции
-
-Функция ОбработатьBlob(Знач Значение)
-
- Если ТипЗнч(Значение) = Тип("ДвоичныеДанные") Тогда
- Значение = Base64Строка(Значение);
- Иначе
-
- ФайлДанных = Новый Файл(Строка(Значение));
-
- Если ФайлДанных.Существует() Тогда
-
- ТекущиеДанные = Новый ДвоичныеДанные(Строка(Значение));
- Значение = Base64Строка(ТекущиеДанные);
-
- КонецЕсли;
-
- КонецЕсли;
-
- Возврат Значение;
-
-КонецФункции
-
-Функция ОпределитьТипПараметра(Знач ТекущийПараметр)
-
- ТекущийТип = ТипЗнч(ТекущийПараметр);
-
- ОбычноеСопоставление = Новый Массив;
- ОбычноеСопоставление.Добавить("ДвоичныеДанные");
- ОбычноеСопоставление.Добавить("УникальныйИдентификатор");
- ОбычноеСопоставление.Добавить("Структура");
- ОбычноеСопоставление.Добавить("Соответствие");
- ОбычноеСопоставление.Добавить("Массив");
- ОбычноеСопоставление.Добавить("Булево");
- ОбычноеСопоставление.Добавить("Дата");
- ОбычноеСопоставление.Добавить("Строка");
-
- Если ТекущийТип = Тип("Число") Тогда
- Возврат ?(Цел(ТекущийПараметр) = ТекущийПараметр, "Целое", "Дробное");
- Иначе
-
- Для Каждого ИмяТипа Из ОбычноеСопоставление Цикл
-
- Если ТекущийТип = Тип(ИмяТипа) Тогда
- Возврат ИмяТипа;
- КонецЕсли;
-
- КонецЦикла;
-
- КонецЕсли;
-
- ВызватьИсключение СтрШаблон("Тип параметра не поддерживается: %1", Строка(ТекущийТип));
-
-КонецФункции
-
-Процедура ОбработатьПараметрКоллекцию(Знач ТекущийТип, Знач СтруктураТипов, ТекущийПараметр, ТекущийКлюч)
-
- ТипыКоллекции = СтруктураТипов.Получить("Коллекции");
- ТипДвоичные = СтруктураТипов.Получить("ДвоичныеДанные");
- ТипСтрока = СтруктураТипов.Получить("Строка");
-
- Если ТекущийТип = "Структура" Или ТекущийТип = "Соответствие" Тогда
-
- Для Каждого ЭлементПараметра Из ТекущийПараметр Цикл
-
- ТекущийКлюч = вРег(ЭлементПараметра.Ключ);
- ТекущееЗначение = ЭлементПараметра.Значение;
-
- Если ТипыКоллекции.НайтиПоЗначению(ТекущийКлюч) <> Неопределено Тогда
- ТекущийПараметр = ТекущееЗначение;
-
- ИначеЕсли ТекущийКлюч = ТипДвоичные Тогда
- ТекущийПараметр = ОбработатьBlob(ТекущееЗначение);
- Иначе
- ТекущийПараметр = ОбработатьПараметр(ТекущееЗначение, СтруктураТипов, Ложь);
- КонецЕсли;
-
- Прервать;
-
- КонецЦикла;
-
- Иначе
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(ТекущийПараметр);
- ТекущийКлюч = ТипСтрока;
-
- КонецЕсли;
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#КонецОбласти
diff --git a/XML/CommonModules/OPI_ЗапросыSSH.xml b/XML/CommonModules/OPI_ЗапросыSSH.xml
deleted file mode 100644
index cd80ee0b6b..0000000000
--- a/XML/CommonModules/OPI_ЗапросыSSH.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- OPI_ЗапросыSSH
-
-
- ru
- SSH (служебный, ОПИ)
-
-
- Общий модуль инструментов работы с SSH набора ОПИ
- false
- false
- true
- true
- true
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git a/XML/CommonModules/OPI_ЗапросыSSH/Ext/Module.bsl b/XML/CommonModules/OPI_ЗапросыSSH/Ext/Module.bsl
deleted file mode 100644
index 64e0a46e56..0000000000
--- a/XML/CommonModules/OPI_ЗапросыSSH/Ext/Module.bsl
+++ /dev/null
@@ -1,321 +0,0 @@
-// OneScript: ./OInt/tools/Modules/OPI_ЗапросыSSH.os
-
-// MIT License
-
-// Copyright (c) 2023-2025 Anton Tsitavets
-
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-
-// The above copyright notice and this permission notice shall be included in all
-// copies or substantial portions of the Software.
-
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-// SOFTWARE.
-
-// https://github.com/Bayselonarrend/OpenIntegrations
-
-// BSLLS:Typo-off
-// BSLLS:LatinAndCyrillicSymbolInWord-off
-// BSLLS:IncorrectLineBreak-off
-// BSLLS:NumberOfOptionalParams-off
-// BSLLS:UsingServiceTag-off
-// BSLLS:LineLength-off
-// BSLLS:QueryParseError-off
-// BSLLS:AssignAliasFieldsInQuery-off
-// BSLLS:NumberOfParams-off
-// BSLLS:UsingSynchronousCalls-off
-// BSLLS:MagicNumber-off
-
-//@skip-check module-structure-top-region
-//@skip-check module-structure-method-in-regions
-//@skip-check wrong-string-literal-content
-//@skip-check method-too-many-params
-//@skip-check constructor-function-return-section
-
-// Раскомментировать, если выполняется OneScript
-// #Использовать "./internal"
-
-#Область СлужебныйПрограммныйИнтерфейс
-
-Функция ОткрытьСоединение(Знач НастройкиSSH, Знач Прокси = "") Экспорт
-
- Result_ = "result";
-
- Если ЭтоКоннектор(НастройкиSSH) Тогда
- Возврат НастройкиSSH;
- КонецЕсли;
-
- Коннектор = OPI_Компоненты.ПолучитьКомпоненту("SSH");
-
- УстановкаКонфигурации = УстановитьНастройки(Коннектор, НастройкиSSH);
-
- Если Не OPI_Инструменты.ПолучитьИли(УстановкаКонфигурации, Result_, Ложь) Тогда
- Возврат УстановкаКонфигурации;
- КонецЕсли;
-
- УстановкаПрокси = УстановитьПрокси(Коннектор, Прокси);
-
- Если Не OPI_Инструменты.ПолучитьИли(УстановкаПрокси, Result_, Ложь) Тогда
- Возврат УстановкаПрокси;
- КонецЕсли;
-
- Результат = Коннектор.Connect();
- Результат = OPI_Инструменты.JsonВСтруктуру(Результат);
-
- Возврат ?(Результат[Result_], Коннектор, Результат);
-
-КонецФункции
-
-Функция ПолучитьКонфигурациюСоединения(Знач НастройкиSSH, Знач Прокси = Неопределено) Экспорт
-
- СтруктураКонфигурации = Новый Структура;
-
- OPI_Инструменты.ДобавитьПоле("set" , НастройкиSSH, "Коллекция", СтруктураКонфигурации);
- OPI_Инструменты.ДобавитьПоле("proxy", Прокси , "Коллекция", СтруктураКонфигурации);
-
- Возврат СтруктураКонфигурации;
-
-КонецФункции
-
-Функция ВыполнитьКоманду(Знач Соединение, Знач Команда) Экспорт
-
- ЗакрыватьСоединение = ПроверитьСоздатьСоединение(Соединение);
-
- Если Не ЭтоКоннектор(Соединение) Тогда
- Возврат Соединение;
- Иначе
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Команда);
-
- Результат = Соединение.Execute(Команда);
- Результат = OPI_Инструменты.JsonВСтруктуру(Результат);
-
- Вывод = Результат["stdout"];
-
- Если Вывод <> Неопределено Тогда
- Если СтрЗаканчиваетсяНа(Вывод, Символы.ПС) Тогда
- Результат["stdout"] = Лев(Вывод, СтрДлина(Вывод) - 1);
- КонецЕсли;
- КонецЕсли;
-
- КонецЕсли;
-
- Если ЗакрыватьСоединение Тогда
- Результат.Вставить("close_connection", ЗакрытьСоединение(Соединение));
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция ЗакрытьСоединение(Знач Соединение) Экспорт
-
- ПроверитьСоздатьСоединение(Соединение);
-
- Если Не ЭтоКоннектор(Соединение) Тогда
- Возврат Соединение;
- КонецЕсли;
-
- Результат = Соединение.Disconnect();
- Результат = OPI_Инструменты.JsonВСтруктуру(Результат);
-
- //@skip-check constructor-function-return-section
- Возврат Результат;
-
-КонецФункции
-
-Функция ЭтоКоннектор(Знач Значение) Экспорт
-
- Возврат Строка(ТипЗнч(Значение)) = "AddIn.OPI_SSH.Main";
-
-КонецФункции
-
-Функция ПолучитьНастройкиЛогинПароль(Знач Хост, Знач Порт, Знач Логин, Знач Пароль = "") Экспорт
-
- Строка_ = "Строка";
-
- СтруктураКонфигурации = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("auth_type", "password", Строка_ , СтруктураКонфигурации);
- OPI_Инструменты.ДобавитьПоле("host" , Хост , Строка_ , СтруктураКонфигурации);
- OPI_Инструменты.ДобавитьПоле("port" , Порт , "Число" , СтруктураКонфигурации);
- OPI_Инструменты.ДобавитьПоле("username" , Логин , Строка_ , СтруктураКонфигурации);
- OPI_Инструменты.ДобавитьПоле("password" , Пароль , Строка_ , СтруктураКонфигурации);
-
- Возврат СтруктураКонфигурации;
-
-КонецФункции
-
-Функция ПолучитьНастройкиПриватныйКлюч(Знач Хост
- , Знач Порт
- , Знач Логин
- , Знач Приватный
- , Знач Публичный = ""
- , Знач Пароль = "") Экспорт
-
- Строка_ = "Строка";
-
- OPI_ПреобразованиеТипов.ПолучитьФайлНаДиске(Приватный);
- Приватный_ = Приватный.Путь;
-
- Если ЗначениеЗаполнено(Публичный) Тогда
- OPI_ПреобразованиеТипов.ПолучитьФайлНаДиске(Публичный);
- Публичный_ = Публичный.Путь;
- Иначе
- Публичный_ = Неопределено;
- КонецЕсли;
-
- СтруктураКонфигурации = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("auth_type" , "private_key" , Строка_, СтруктураКонфигурации);
- OPI_Инструменты.ДобавитьПоле("host" , Хост , Строка_, СтруктураКонфигурации);
- OPI_Инструменты.ДобавитьПоле("port" , Порт , "Число", СтруктураКонфигурации);
- OPI_Инструменты.ДобавитьПоле("username" , Логин , Строка_, СтруктураКонфигурации);
- OPI_Инструменты.ДобавитьПоле("key_path" , Приватный_ , Строка_, СтруктураКонфигурации);
- OPI_Инструменты.ДобавитьПоле("pub_path" , Публичный_ , Строка_, СтруктураКонфигурации);
- OPI_Инструменты.ДобавитьПоле("passphrase", Пароль , Строка_, СтруктураКонфигурации);
-
- Возврат СтруктураКонфигурации;
-
-КонецФункции
-
-Функция ПолучитьНастройкиЧерезАгента(Знач Хост, Знач Порт, Знач Логин) Экспорт
-
- Строка_ = "Строка";
-
- СтруктураКонфигурации = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("auth_type" , "agent", Строка_, СтруктураКонфигурации);
- OPI_Инструменты.ДобавитьПоле("host" , Хост , Строка_, СтруктураКонфигурации);
- OPI_Инструменты.ДобавитьПоле("port" , Порт , "Число", СтруктураКонфигурации);
- OPI_Инструменты.ДобавитьПоле("username" , Логин , Строка_, СтруктураКонфигурации);
-
- Возврат СтруктураКонфигурации;
-
-КонецФункции
-
-Функция ПолучитьНастройкиПрокси(Знач Адрес
- , Знач Порт
- , Знач Вид = "socks5"
- , Знач Логин = Неопределено
- , Знач Пароль = Неопределено) Экспорт
-
- //@skip-check constructor-function-return-section
- Возврат OPI_Компоненты.ПолучитьНастройкиПрокси(Адрес, Порт, Вид, Логин, Пароль);
-
-КонецФункции
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-Функция ПроверитьСоздатьСоединение(Соединение)
-
- Если Не ЭтоКоннектор(Соединение) Тогда
-
- ЗакрыватьСоединение = Истина;
- Соединение = ОткрытьСоединениеПоКонфигурации(Соединение);
-
- Иначе
- ЗакрыватьСоединение = Ложь;
- КонецЕсли;
-
- Возврат ЗакрыватьСоединение;
-
-КонецФункции
-
-Функция ОткрытьСоединениеПоКонфигурации(Знач СтруктураКонфигурации)
-
- Если ЭтоКоннектор(СтруктураКонфигурации) Тогда
- Возврат СтруктураКонфигурации;
- КонецЕсли;
-
- ШаблонОшибки = "Передана некорректная конфигурация соединения: %1";
-
- Попытка
- OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(СтруктураКонфигурации);
- Исключение
-
- Результат = Новый Соответствие;
- Результат.Вставить("result", Ложь);
- Результат.Вставить("error" , СтрШаблон(ШаблонОшибки, ОписаниеОшибки()));
- Возврат Результат;
-
- КонецПопытки;
-
- Если Не OPI_Инструменты.ПолеКоллекцииСуществует(СтруктураКонфигурации, "set") Тогда
-
- Результат = Новый Соответствие;
- Результат.Вставить("result", Ложь);
- Результат.Вставить("error" , СтрШаблон(ШаблонОшибки, "отсутствуют основные параметры соединения"));
- Возврат Результат;
-
- КонецЕсли;
-
- НастройкиSSH = СтруктураКонфигурации["set"];
- Прокси = OPI_Инструменты.ПолучитьИли(СтруктураКонфигурации, "proxy", Неопределено);
-
- Возврат ОткрытьСоединение(НастройкиSSH, Прокси);
-
-КонецФункции
-
-Функция УстановитьНастройки(Знач Коннектор, Знач НастройкиSSH)
-
- ШаблонОшибки = "Передана некорректная конфигурация соединения: %1";
-
- Попытка
- OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(НастройкиSSH);
- Исключение
-
- Результат = Новый Соответствие;
- Результат.Вставить("result", Ложь);
- Результат.Вставить("error" , СтрШаблон(ШаблонОшибки, ОписаниеОшибки()));
- Возврат Результат;
-
- КонецПопытки;
-
- СтрокаНастроек = OPI_Инструменты.JSONСтрокой(НастройкиSSH);
-
- Результат = Коннектор.SetSettings(СтрокаНастроек);
- Результат = OPI_Инструменты.JsonВСтруктуру(Результат);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция УстановитьПрокси(Знач Коннектор, Знач Прокси)
-
- Если Не ЗначениеЗаполнено(Прокси) Тогда
- Возврат Новый Структура("result", Истина);
- КонецЕсли;
-
- ШаблонОшибки = "Передана некорректная конфигурация прокси: %1";
-
- Попытка
- OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(Прокси);
- Исключение
-
- Результат = Новый Соответствие;
- Результат.Вставить("result", Ложь);
- Результат.Вставить("error" , СтрШаблон(ШаблонОшибки, ОписаниеОшибки()));
- Возврат Результат;
-
- КонецПопытки;
-
- СтрокаПрокси = OPI_Инструменты.JSONСтрокой(Прокси);
-
- Результат = Коннектор.SetProxy(СтрокаПрокси);
- Результат = OPI_Инструменты.JsonВСтруктуру(Результат);
-
- Возврат Результат;
-
-КонецФункции
-
-#КонецОбласти
diff --git a/XML/CommonModules/OPI_Инструменты.xml b/XML/CommonModules/OPI_Инструменты.xml
deleted file mode 100644
index 8b0106c7f9..0000000000
--- a/XML/CommonModules/OPI_Инструменты.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- OPI_Инструменты
-
-
- ru
- Инструменты (служебный, ОПИ)
-
-
- Основной модуль инструментов набора ОПИ
- false
- false
- true
- true
- true
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git a/XML/CommonModules/OPI_Инструменты/Ext/Module.bsl b/XML/CommonModules/OPI_Инструменты/Ext/Module.bsl
deleted file mode 100644
index 803f6637b1..0000000000
--- a/XML/CommonModules/OPI_Инструменты/Ext/Module.bsl
+++ /dev/null
@@ -1,1232 +0,0 @@
-// OneScript: ./OInt/tools/Modules/internal/Modules/OPI_Инструменты.os
-
-// MIT License
-
-// Copyright (c) 2023-2025 Anton Tsitavets
-
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-
-// The above copyright notice and this permission notice shall be included in all
-// copies or substantial portions of the Software.
-
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-// SOFTWARE.
-
-// https://github.com/Bayselonarrend/OpenIntegrations
-
-// BSLLS:Typo-off
-// BSLLS:LatinAndCyrillicSymbolInWord-off
-// BSLLS:IncorrectLineBreak-off
-// BSLLS:UnusedLocalVariable-off
-// BSLLS:UsingServiceTag-off
-// BSLLS:NumberOfOptionalParams-off
-// BSLLS:UsingSynchronousCalls-off
-// BSLLS:MagicNumber-off
-
-//@skip-check module-unused-local-variable
-//@skip-check method-too-many-params
-//@skip-check module-structure-top-region
-//@skip-check module-structure-method-in-regions
-//@skip-check wrong-string-literal-content
-//@skip-check use-non-recommended-method
-
-// Раскомментировать, если выполняется OneScript
-// #Использовать "./internal"
-
-#Область СлужебныйПрограммныйИнтерфейс
-
-#Область РаботаССетью
-
-Функция ПараметрыЗапросаВСтроку(Знач Параметры, Знач ОтдельныеЭлементыМассивов = Ложь, Знач Начало = Истина) Экспорт
-
- Если Параметры.Количество() = 0 Тогда
- Возврат "";
- КонецЕсли;
-
- СтрокаПараметров = ?(Начало, "?", "&");
-
- Для Каждого Параметр Из Параметры Цикл
-
- ТекущееЗначение = Параметр.Значение;
- ТекущийКлюч = Параметр.Ключ;
-
- Если Не ТипЗнч(ТекущееЗначение) = Тип("Массив") Или Не ОтдельныеЭлементыМассивов Тогда
-
- ЗначениеПараметра = ПреобразоватьПараметрВСтроку(ТекущееЗначение);
-
- СтрокаПараметров = СтрокаПараметров + Параметр.Ключ + "=" + ЗначениеПараметра + "&";
-
- Иначе
-
- ЗначениеПараметра = РазделитьМассивНаПараметрыURL(ТекущийКлюч, ТекущееЗначение);
- СтрокаПараметров = СтрокаПараметров + ЗначениеПараметра + "&";
-
- КонецЕсли;
-
- КонецЦикла;
-
- СтрокаПараметров = Лев(СтрокаПараметров, СтрДлина(СтрокаПараметров) - 1);
-
- Возврат СтрокаПараметров;
-
-КонецФункции
-
-Функция ПараметрыЗапросаВСоответствие(Знач СтрокаПараметров) Экспорт
-
- СоответствиеВозврата = Новый Соответствие;
- КоличествоЧастей = 2;
- МассивПараметров = СтрРазделить(СтрокаПараметров, "&", Ложь);
-
- Для Каждого Параметр Из МассивПараметров Цикл
-
- МассивКлючЗначение = СтрРазделить(Параметр, "=");
-
- Если МассивКлючЗначение.Количество() = КоличествоЧастей Тогда
- СоответствиеВозврата.Вставить(МассивКлючЗначение[0], МассивКлючЗначение[1]);
- Иначе
- СоответствиеВозврата.Вставить(МассивКлючЗначение[0], Неопределено);
- КонецЕсли;
-
- КонецЦикла;
-
- Возврат СоответствиеВозврата;
-
-КонецФункции
-
-Функция РазбитьURL(Знач URL) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(URL);
-
- ВернутьУправляющиеПоследовательности(URL);
-
- ЗащищенноеСоединение = Не СтрНачинаетсяС(URL, "http://");
-
- URL = СтрЗаменить(URL, "https://", "");
- URL = СтрЗаменить(URL, "http://" , "");
-
- Если СтрНайти(URL, "/") = 0 Тогда
- Адрес = "";
- Домен = URL;
- Иначе
- Адрес = Прав(URL, СтрДлина(URL) - СтрНайти(URL, "/", НаправлениеПоиска.СНачала) + 1);
- Домен = Лев(URL, СтрНайти(URL, "/", НаправлениеПоиска.СНачала) - 1);
- КонецЕсли;
-
- Если СтрНайти(Домен, ":") <> 0 Тогда
-
- ХостПорт = СтрРазделить(Домен, ":");
- Домен = ХостПорт[0];
- Порт = ХостПорт[1];
-
- OPI_ПреобразованиеТипов.ПолучитьЧисло(Порт);
-
- Иначе
-
- Порт = ?(ЗащищенноеСоединение, 443, 80);
-
- КонецЕсли;
-
- Если ЭтоOneScript() И ЗащищенноеСоединение Тогда
- Сервер = "https://" + Домен;
- Иначе
- Сервер = Домен;
- КонецЕсли;
-
- СтруктураВозврата = Новый Структура;
- СтруктураВозврата.Вставить("Сервер" , Сервер);
- СтруктураВозврата.Вставить("Адрес" , Адрес);
- СтруктураВозврата.Вставить("Защищенное", ЗащищенноеСоединение);
- СтруктураВозврата.Вставить("Порт" , Порт);
- СтруктураВозврата.Вставить("Домен" , Домен);
-
- Возврат СтруктураВозврата;
-
-КонецФункции
-
-Функция ПолучитьДомен(Знач СтрокаПодключения) Экспорт
-
- Домен = Строка(СтрокаПодключения);
-
- Если Не СтрНачинаетсяС(нРег(Домен), "http") И СтрНайти(Домен, "@") <> 0 Тогда
-
- Части = СтрРазделить(Домен, "@");
- Домен = Части[1];
-
- КонецЕсли;
-
- ОкончаниеПротокола = СтрНайти(Домен, "://");
- Слэши = 2;
-
- Если ОкончаниеПротокола > 0 Тогда
- Домен = Прав(Домен, СтрДлина(Домен) - (ОкончаниеПротокола + Слэши));
- КонецЕсли;
-
- Если СтрНайти(Домен, ":") <> 0 Тогда
-
- ХостПорт = СтрРазделить(Домен, ":");
- Домен = ХостПорт[0];
-
- КонецЕсли;
-
- Если СтрНайти(Домен, "/") > 0 Тогда
- Домен = Лев(Домен, СтрНайти(Домен, "/", НаправлениеПоиска.СНачала) - 1);
- КонецЕсли;
-
- Домен = СтрЗаменить(Домен, "www.", "");
-
- Возврат Домен;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область JSON
-
-Функция JsonВСтруктуру(Знач Текст, Знач ВСоответствие = Истина) Экспорт
-
- ЧтениеJSON = Новый ЧтениеJSON;
- ТипТекста = ТипЗнч(Текст);
-
- Если ТипТекста = Тип("ДвоичныеДанные") Тогда
-
- Текст = ПолучитьСтрокуИзДвоичныхДанных(Текст);
- ЧтениеJSON.УстановитьСтроку(Текст);
-
- ИначеЕсли ТипТекста = Тип("Поток") Или ТипТекста = Тип("ПотокВПамяти") Или ТипТекста = Тип("ФайловыйПоток") Тогда
-
- Если ЭтоOneScript() Тогда
-
- ЧтениеДанных = Новый ЧтениеДанных(Текст);
- РезультатЧтения = ЧтениеДанных.Прочитать();
- JSONДвоичные = РезультатЧтения.ПолучитьДвоичныеДанные();
-
- ЧтениеJSON.УстановитьСтроку(ПолучитьСтрокуИзДвоичныхДанных(JSONДвоичные));
- ЧтениеДанных.Закрыть();
-
- Иначе
- ЧтениеJSON.ОткрытьПоток(Текст);
- КонецЕсли;
-
- Иначе
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Текст, Истина);
- ЧтениеJSON.УстановитьСтроку(Текст);
-
- КонецЕсли;
-
- Данные = ПрочитатьJSON(ЧтениеJSON, ВСоответствие, Неопределено, ФорматДатыJSON.ISO);
- ЧтениеJSON.Закрыть();
-
- Возврат Данные;
-
-КонецФункции
-
-Функция JSONСтрокой(Знач Данные
- , Знач Экранирование = "Нет"
- , Знач ПереносСтрок = Истина
- , Знач ДвойныеКавычки = Истина) Экспорт
-
- Перенос = ?(ПереносСтрок, ПереносСтрокJSON.Windows, ПереносСтрокJSON.Нет);
-
- ПараметрыJSON = Новый ПараметрыЗаписиJSON(Перенос
- , " "
- , ДвойныеКавычки
- , ЭкранированиеСимволовJSON[Экранирование]
- , Ложь
- , Ложь
- , Ложь
- , Ложь);
-
- Попытка
-
- ЗаписьJSON = Новый ЗаписьJSON;
- ЗаписьJSON.УстановитьСтроку(ПараметрыJSON);
-
- ЗаписатьJSON(ЗаписьJSON, Данные);
- Возврат ЗаписьJSON.Закрыть();
-
- Исключение
- Возврат "НЕ JSON: " + Строка(Данные);
- КонецПопытки;
-
-КонецФункции
-
-Функция ПрочитатьJSONФайл(Знач Путь, Знач ВСоответствие = Ложь) Экспорт
-
- // BSLLS:ExternalAppStarting-off
-
- ЧтениеJSON = Новый ЧтениеJSON;
- ЧтениеJSON.ОткрытьФайл(Путь);
- Значения = ПрочитатьJSON(ЧтениеJSON, ВСоответствие);
-
- // BSLLS:ExternalAppStarting-on
-
- ЧтениеJSON.Закрыть();
-
- Возврат Значения;
-
-КонецФункции
-
-Процедура ЗаписатьJSONФайл(Знач Путь, Знач Данные) Экспорт
-
- ЗаписьJSON = Новый ЗаписьJSON();
-
- // BSLLS:ExternalAppStarting-off
- ЗаписьJSON.ОткрытьФайл(Путь, , Ложь);
- // BSLLS:ExternalAppStarting-on
-
- ЗаписатьJSON(ЗаписьJSON, Данные);
- ЗаписьJSON.Закрыть();
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область XML
-
-Функция ОбработатьXML(XML) Экспорт
-
- НачалоОбработкиXML(XML);
-
- ВозвращаемоеЗначение = Новый Соответствие;
-
- Пока XML.Прочитать() Цикл
-
- ТипУзла = XML.ТипУзла;
-
- Если Не ПодходящийТипУзла(ТипУзла) Тогда
- Продолжить;
- КонецЕсли;
-
- ИмяУзла = XML.Имя;
-
- СуществующееЗначение = ВозвращаемоеЗначение.Получить(ИмяУзла);
-
- Если ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
-
- Если СуществующееЗначение = Неопределено Тогда
- ВозвращаемоеЗначение.Вставить(ИмяУзла, ОбработатьXML(XML));
- Иначе
- ЗначениеВМассив(СуществующееЗначение);
- СуществующееЗначение.Добавить(ОбработатьXML(XML));
- ВозвращаемоеЗначение.Вставить(ИмяУзла, СуществующееЗначение);
- КонецЕсли;
-
- Иначе
-
- Если Не ТипУзла = ТипУзлаXML.КонецЭлемента Тогда
- ВозвращаемоеЗначение = XML.Значение;
- XML.Прочитать();
- КонецЕсли;
-
- Прервать;
-
- КонецЕсли;
-
- КонецЦикла;
-
- Возврат ВозвращаемоеЗначение;
-
-КонецФункции
-
-Функция ПолучитьXML(Значение, ПространствоИмен = "", ЗаписьXML = Неопределено) Экспорт
-
- ЭтоВход = НачалоФормированияXML(Значение, ЗаписьXML);
-
- ТипЗначения = ТипЗнч(Значение);
-
- Если ТипЗначения = Тип("Структура") Или ТипЗначения = Тип("Соответствие") Тогда
-
- Для Каждого ЗначениеКоллекции Из Значение Цикл
-
- ЗаписьXML.ЗаписатьНачалоЭлемента(ЗначениеКоллекции.Ключ, ПространствоИмен);
-
- Если ЗначениеЗаполнено(ПространствоИмен) Тогда
- ЗаписьXML.ЗаписатьСоответствиеПространстваИмен("", ПространствоИмен);
- КонецЕсли;
-
- ПолучитьXML(ЗначениеКоллекции.Значение, "", ЗаписьXML);
- ЗаписьXML.ЗаписатьКонецЭлемента();
-
- КонецЦикла;
-
- ИначеЕсли ТипЗначения = Тип("Массив") Тогда
-
- Для Каждого ЭлементМассива Из Значение Цикл
- ПолучитьXML(ЭлементМассива, "", ЗаписьXML);
- КонецЦикла;
-
- Иначе
-
- ЗаписьXML.ЗаписатьТекст(ЧислоВСтроку(Значение));
-
- КонецЕсли;
-
- Если ЭтоВход Тогда
- Возврат ЗаписьXML.Закрыть();
- Иначе
- Возврат Неопределено;
- КонецЕсли;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область Коллекции
-
-Процедура ДобавитьПоле(Знач Имя, Знач Значение, Знач Тип, Коллекция) Экспорт
-
- Заполнено = ЗначениеЗаполнено(Значение);
-
- Если Не Заполнено Тогда
- Возврат;
- КонецЕсли;
-
- Если Тип = "Дата" Тогда
- OPI_ПреобразованиеТипов.ПолучитьДату(Значение);
- Значение = UNIXTime(Значение);
-
- ИначеЕсли Тип = "ДатаISO" Тогда
- OPI_ПреобразованиеТипов.ПолучитьДату(Значение);
- Значение = Лев(XMLСтрока(Значение), 19);
-
- ИначеЕсли Тип = "ДатаISOZ" Тогда
- OPI_ПреобразованиеТипов.ПолучитьДату(Значение);
- Значение = Лев(XMLСтрока(Значение), 19) + "Z";
-
- ИначеЕсли Тип = "ДатаБезВремени" Тогда
- OPI_ПреобразованиеТипов.ПолучитьДату(Значение);
- Значение = Формат(Значение, "ДФ=yyyy-MM-dd");
-
- ИначеЕсли Тип = "Коллекция" Тогда
- OPI_ПреобразованиеТипов.ПолучитьКоллекцию(Значение);
-
- ИначеЕсли Тип = "Булево" Тогда
- OPI_ПреобразованиеТипов.ПолучитьБулево(Значение);
-
- ИначеЕсли Тип = "СтрокаФайла" Тогда
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Значение, Истина);
-
- ИначеЕсли Тип = "Массив" Тогда
- OPI_ПреобразованиеТипов.ПолучитьМассив(Значение);
-
- ИначеЕсли Тип = "ДвоичныеДанные" Тогда
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Значение);
-
- ИначеЕсли Тип = "Число" Тогда
- OPI_ПреобразованиеТипов.ПолучитьЧисло(Значение);
-
- ИначеЕсли Тип = "УникальныйИдентификатор" Тогда
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Значение);
- Значение = Новый УникальныйИдентификатор(Значение);
-
- Иначе
-
- Если Не Тип = "Текущий" Тогда
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Значение);
- КонецЕсли;
-
- КонецЕсли;
-
- Коллекция.Вставить(Имя, Значение);
-
-КонецПроцедуры
-
-Процедура ДобавитьКлючЗначение(Таблица, Знач Ключ, Знач Значение) Экспорт
-
- ЕстьКлюч = Ложь;
- ЕстьЗначение = Ложь;
-
- Для Каждого Колонка Из Таблица.Колонки Цикл
-
- Если Колонка.Имя = "Ключ" Тогда
-
- ЕстьКлюч = Истина;
-
- ИначеЕсли Колонка.Имя = "Значение" Тогда
-
- ЕстьЗначение = Истина;
-
- Иначе
- Продолжить;
- КонецЕсли;
-
- КонецЦикла;
-
- Если Не ЕстьКлюч Тогда
- Таблица.Колонки.Добавить("Ключ");
- КонецЕсли;
-
- Если Не ЕстьЗначение Тогда
- Таблица.Колонки.Добавить("Значение");
- КонецЕсли;
-
- НовоеЗначение = Таблица.Добавить();
- НовоеЗначение.Ключ = Ключ;
- НовоеЗначение.Значение = Значение;
-
-КонецПроцедуры
-
-Процедура УдалитьПустыеПоляКоллекции(Коллекция) Экспорт
-
- ТипКоллекции = ТипЗнч(Коллекция);
- ВыходнаяКоллекция = Новый (ТипКоллекции);
-
- Если ТипКоллекции = Тип("Соответствие") Или ТипКоллекции = Тип("Структура") Тогда
-
- УдалитьПустыеКлючиЗначения(Коллекция, ВыходнаяКоллекция);
-
- ИначеЕсли ТипКоллекции = Тип("Массив") Тогда
-
- УдалитьПустыеЭлементыМассива(Коллекция, ВыходнаяКоллекция);
-
- Иначе
-
- ВыходнаяКоллекция = Коллекция;
-
- КонецЕсли;
-
- Коллекция = ВыходнаяКоллекция;
-
-КонецПроцедуры
-
-Процедура ЗначениеВМассив(Значение) Экспорт
-
- Если ТипЗнч(Значение) = Тип("Массив") Тогда
- Возврат;
- КонецЕсли;
-
- Значение_ = Новый Массив;
- Значение_.Добавить(Значение);
-
- Значение = Значение_;
-
-КонецПроцедуры
-
-Функция ПолеКоллекцииСуществует(Знач Коллекция, Знач Поле, ЗначениеПоля = Неопределено) Экспорт
-
- ТипКоллекции = ТипЗнч(Коллекция);
-
- ЭтоСтруктура = ТипКоллекции = Тип("Структура");
- ЭтоСоответствие = ТипКоллекции = Тип("Соответствие");
- ЭтоКоллекция = ЭтоСтруктура Или ЭтоСоответствие;
-
- Если СтрНайти(Поле, ".") И ЭтоКоллекция Тогда
-
- ЧастиПоля = СтрРазделить(Поле, ".");
- ТекущееПоле = ЧастиПоля[0];
-
- Если Не ПолеКоллекцииСуществует(Коллекция, ТекущееПоле, ЗначениеПоля) Тогда
-
- Возврат Ложь;
-
- Иначе
-
- ЧастиПоля.Удалить(0);
- СледующаяКоллекция = Коллекция[ТекущееПоле];
- СледующееПоле = СтрСоединить(ЧастиПоля, ".");
-
- Возврат ПолеКоллекцииСуществует(СледующаяКоллекция, СледующееПоле, ЗначениеПоля);
-
- КонецЕсли;
-
- ИначеЕсли ЭтоСтруктура Тогда
-
- Возврат Коллекция.Свойство(Поле, ЗначениеПоля);
-
- ИначеЕсли ЭтоСоответствие Тогда
-
- ЗначениеПоля = Коллекция[Поле];
- Возврат ЗначениеПоля <> Неопределено;
-
- Иначе
-
- Возврат Ложь;
-
- КонецЕсли;
-
-КонецФункции
-
-Функция НайтиОтсутствующиеПоляКоллекции(Знач Коллекция, Знач Поля) Экспорт
-
- МассивОтсутствующихПолей = Новый Массив;
-
- Для Каждого Поле Из Поля Цикл
-
- Существует = ПолеКоллекцииСуществует(Коллекция, Поле);
-
- Если Не Существует Тогда
- МассивОтсутствующихПолей.Добавить(Поле);
- КонецЕсли;
-
- КонецЦикла;
-
- Возврат МассивОтсутствующихПолей;
-
-КонецФункции
-
-Функция ОчиститьКоллекциюРекурсивно(Знач Коллекция) Экспорт
-
- ТипЗначения = ТипЗнч(Коллекция);
-
- Если ТипЗначения = Тип("Структура") Тогда
-
- Для Каждого ЭлементКоллекции Из Коллекция Цикл
-
- ОчищенноеПоле = ОчиститьКоллекциюРекурсивно(ЭлементКоллекции.Значение);
-
- Коллекция[ЭлементКоллекции.Ключ] = ОчищенноеПоле;
-
- КонецЦикла;
-
- ИначеЕсли ТипЗначения = Тип("Соответствие") Тогда
-
- Коллекция_ = Новый Соответствие;
-
- Для Каждого ЭлементКоллекции Из Коллекция Цикл
-
- ОчищенноеПоле = ОчиститьКоллекциюРекурсивно(ЭлементКоллекции.Значение);
-
- Коллекция_.Вставить(ЭлементКоллекции.Ключ, ОчищенноеПоле);
-
- КонецЦикла;
-
- Коллекция = Коллекция_;
-
- ИначеЕсли ТипЗначения = Тип("Массив") Тогда
-
- Коллекция_ = Новый Массив;
-
- Для Каждого ЭлементКоллекции Из Коллекция Цикл
-
- ОчищенноеПоле = ОчиститьКоллекциюРекурсивно(ЭлементКоллекции);
- Коллекция_.Добавить(ОчищенноеПоле);
-
- КонецЦикла;
-
- Коллекция = Коллекция_;
-
- Иначе
-
- Коллекция = "";
-
- КонецЕсли;
-
- Возврат Коллекция;
-
-КонецФункции
-
-Функция КопироватьКоллекцию(Знач Коллекция) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьКоллекцию(Коллекция);
-
- ТипКоллекции = ТипЗнч(Коллекция);
- ЭтоСтруктура = ТипКоллекции = Тип("Структура");
- ЭтоСоответствие = ТипКоллекции = Тип("Соответствие");
- ЭтоМассив = ТипКоллекции = Тип("Массив");
-
- Если ЭтоСтруктура Или ЭтоСоответствие Тогда
-
- Коллекция_ = КопироватьКоллекциюКлючЗначение(Коллекция, ЭтоСтруктура);
-
- ИначеЕсли ЭтоМассив Тогда
-
- Коллекция_ = КопироватьКоллекциюМассив(Коллекция);
-
- Иначе
-
- Коллекция_ = Коллекция;
-
- КонецЕсли;
-
- Возврат Коллекция_;
-
-КонецФункции
-
-Функция ПолучитьИли(Знач Коллекция, Знач Поле, Знач ЗначениеИначе) Экспорт
-
- ЗначениеПоля = Неопределено;
- Существует = ПолеКоллекцииСуществует(Коллекция, Поле, ЗначениеПоля);
-
- Если Не Существует Тогда
- ЗначениеПоля = ЗначениеИначе;
- КонецЕсли;
-
- Возврат ЗначениеПоля;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область OneScript
-
-Функция ЭтоOneScript() Экспорт
-
- Попытка
-
- Ответ = Ложь;
-
- // BSLLS:UnusedLocalVariable-off
-
- //@skip-check module-unused-local-variable
- Проверка = Новый ЗащищенноеСоединениеOpenSSL;
-
- // BSLLS:UnusedLocalVariable-on
-
- Исключение
-
- Ответ = Истина;
-
- КонецПопытки;
-
- Возврат Ответ;
-
-КонецФункции
-
-Процедура ИнформацияОПрогрессе(Знач Текущее, Знач Всего, Знач ЕдИзм, Знач Делитель = 1) Экспорт
-
- Если Не ЭтоOneScript() Тогда
- Возврат;
- КонецЕсли;
-
- Целое = 100;
- Текущее = Окр(Текущее / Делитель, 2);
- Всего = Окр(Всего / Делитель, 2);
- Процент = Цел(Текущее / Всего * Целое);
-
- СтрТекущее = ЧислоВСтроку(Текущее);
- СтрВсего = ЧислоВСтроку(Всего);
- СтрПроцент = ЧислоВСтроку(Процент);
-
- Прогресс = "Прогресс [" + СтрПроцент + "%" + "] ▐";
- Информация = "▌ " + СтрТекущее + "/" + СтрВсего + " " + ЕдИзм;
-
- // Прогресс бар
- ДлинаПолоски = 30;
- Счетчик = 0;
- Буфер = "";
-
- Показатель = Цел(Текущее / Всего * ДлинаПолоски);
-
- Пока Счетчик < ДлинаПолоски Цикл
- Буфер = Буфер + ?(Счетчик < Показатель, "█", " ");
- Счетчик = Счетчик + 1;
- КонецЦикла;
-
- ВывестиТекстВТекущуюСтроку(Прогресс, , Истина);
- ВывестиТекстВТекущуюСтроку(Буфер , "Зеленый");
- ВывестиТекстВТекущуюСтроку(Информация);
-
- Если Процент = Целое Тогда
- ВывестиТекстВТекущуюСтроку(Символы.ПС, , Истина);
- КонецЕсли;
-
-КонецПроцедуры
-
-Процедура ОтладочнаяИнформация(Знач Текст) Экспорт
-
- Если Не ЭтоOneScript() Тогда
- Возврат;
- КонецЕсли;
-
- Попытка
-
- ЭтоОтладка = Неопределено;
- // !OInt ЭтоОтладка = ПолучитьПеременнуюСреды("OINT_DEBUG");
- ЭтоОтладка = ?(ЗначениеЗаполнено(ЭтоОтладка), ЭтоОтладка, "NO");
-
- Исключение
- ЭтоОтладка = "NO";
- КонецПопытки;
-
- Если ЭтоОтладка = "YES" Тогда
-
- // BSLLS:DeprecatedMessage-off
-
- //@skip-check use-non-recommended-method
- Сообщить(Текст);
-
- // BSLLS:DeprecatedMessage-on
-
- КонецЕсли;
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область Служебные
-
-Процедура ЗаменитьСпецСимволы(Текст, Разметка = "Markdown") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Разметка);
-
- СоответствиеСимволов = Новый Соответствие;
-
- Если Разметка = "HTML" Тогда
-
- СоответствиеСимволов.Вставить("&", "&");
-
- ИначеЕсли Разметка = "MarkdownV2" Тогда
-
- СоответствиеСимволов.Вставить("-", "\-");
- СоответствиеСимволов.Вставить("+", "\+");
- СоответствиеСимволов.Вставить("#", "\#");
- СоответствиеСимволов.Вставить("=", "\=");
- СоответствиеСимволов.Вставить("{", "\{");
- СоответствиеСимволов.Вставить("}", "\}");
- СоответствиеСимволов.Вставить(".", "\.");
-
- Иначе
- Возврат;
- КонецЕсли;
-
- Для Каждого СимволМассива Из СоответствиеСимволов Цикл
- Текст = СтрЗаменить(Текст, СимволМассива.Ключ, СимволМассива.Значение);
- КонецЦикла;
-
-КонецПроцедуры
-
-Процедура Пауза(Знач Секунды) Экспорт
-
- Соединение = Новый HTTPСоединение("1C.ru", 11111, , , , Секунды);
- Попытка
- Соединение.Получить(Новый HTTPЗапрос(""));
- Исключение
- Возврат;
- КонецПопытки;
-
-КонецПроцедуры
-
-Процедура ЗаменитьУправляющиеПоследовательности(Текст) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Текст);
-
- СоответствиеСимволов = ПолучитьСоответствиеУправляющихПоследовательностей();
-
- Для Каждого Символ Из СоответствиеСимволов Цикл
-
- Текст = СтрЗаменить(Текст, Символ.Ключ , Символ.Значение);
- Текст = СтрЗаменить(Текст, "\" + Символ.Значение, Символ.Ключ);
-
- КонецЦикла;
-
-КонецПроцедуры
-
-Процедура ВернутьУправляющиеПоследовательности(Текст) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Текст);
-
- СоответствиеСимволов = ПолучитьСоответствиеУправляющихПоследовательностей();
-
- Для Каждого Символ Из СоответствиеСимволов Цикл
-
- Текст = СтрЗаменить(Текст, Символ.Значение, Символ.Ключ);
-
- КонецЦикла;
-
-КонецПроцедуры
-
-Процедура ПотокВНачало(ТекущийПоток) Экспорт
-
- Если Не ТекущийПоток.ДоступноИзменениеПозиции Тогда
- Возврат;
- КонецЕсли;
-
- ПозицияНачала = ПозицияВПотоке.Начало;
-
- ТекущийПоток.Перейти(0, ПозицияНачала);
-
-КонецПроцедуры
-
-Процедура УдалитьФайлВПопытке(Знач Путь, Знач ТекстСообщения) Экспорт
-
- Попытка
- УдалитьФайлы(Путь);
- Исключение
-
- // BSLLS:DeprecatedMessage-off
-
- //@skip-check use-non-recommended-method
- Сообщить(ТекстСообщения);
-
- // BSLLS:DeprecatedMessage-on
-
- КонецПопытки;
-
-КонецПроцедуры
-
-Функция ЧислоВСтроку(Знач Значение) Экспорт
-
- Если ТипЗнч(Значение) = Тип("Число") Тогда
-
- Если Значение = 0 Тогда
- Значение_ = "0";
- Иначе
- Значение_ = Формат(Значение, "ЧГ=0");
- КонецЕсли;
-
- Иначе
- Значение_ = Строка(Значение);
- КонецЕсли;
-
- Возврат Значение_;
-
-КонецФункции
-
-Функция ПолучитьТекущуюДату() Экспорт
- Возврат МестноеВремя(ТекущаяУниверсальнаяДата());
-КонецФункции
-
-Функция UNIXTime(Знач Дата) Экспорт
-
- ОТД = Новый ОписаниеТипов("Дата");
- Дата = ОТД.ПривестиЗначение(Дата);
-
- UNIX = Формат(Дата - Дата(1970, 1, 1, 1, 0, 0), "ЧЦ=10; ЧДЦ=0; ЧГ=0");
- UNIX = СтрЗаменить(UNIX, "," , "");
- UNIX = СтрЗаменить(UNIX, Символы.НПП, "");
- UNIX = СтрЗаменить(UNIX, " " , "");
- UNIX = Лев(UNIX, 10);
-
- Возврат UNIX;
-
-КонецФункции
-
-Функция ДатаRFC3339(Знач Дата, Знач Смещение = "Z") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьДату(Дата);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Смещение);
-
- Возврат XMLСтрока(Дата) + Смещение;
-
-КонецФункции
-
-Функция ПреобразоватьДанныеСПолучениемРазмера(Данные, Знач МинимальныйРазмерДляПотока = 0) Экспорт
-
- Размер = 0;
-
- Если ТипЗнч(Данные) = Тип("Строка") Тогда
-
- ФайлНаДиске = Новый Файл(Данные);
-
- Если ФайлНаДиске.Существует() Тогда
- Размер = ФайлНаДиске.Размер();
- Иначе
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Данные);
- Размер = Данные.Размер();
- КонецЕсли;
-
- Иначе
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Данные);
- Размер = Данные.Размер();
- КонецЕсли;
-
- Если ЗначениеЗаполнено(МинимальныйРазмерДляПотока) Тогда
- Если Размер < МинимальныйРазмерДляПотока Тогда
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Данные);
- Иначе
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеИлиПоток(Данные);
- КонецЕсли;
- Иначе
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеИлиПоток(Данные);
- КонецЕсли;
-
- Возврат Размер;
-
-КонецФункции
-
-Функция ВременнаяМеткаISO(Знач Дата) Экспорт
-
- Метка = Лев(XMLСтрока(Дата), 19) + "Z";
- Метка = СтрЗаменить(Метка, "-", "");
- Метка = СтрЗаменить(Метка, ":", "");
-
- Возврат Метка;
-
-КонецФункции
-
-Функция СоздатьПоток(Знач ПутьКФайлу = Неопределено) Экспорт
-
- Если ЗначениеЗаполнено(ПутьКФайлу) Тогда
- ПотокФайла = Новый ФайловыйПоток(ПутьКФайлу, РежимОткрытияФайла.Создать);
- Иначе
- ПотокФайла = Новый ПотокВПамяти();
- КонецЕсли;
-
- Возврат ПотокФайла;
-
-КонецФункции
-
-Функция ЭтоWindows() Экспорт
-
- СистемнаяИнформация = Новый СистемнаяИнформация;
- ОперационнаяСистема = Строка(СистемнаяИнформация.ТипПлатформы);
-
- Ответ = СтрНайти(нРег(ОперационнаяСистема), "windows") > 0;
-
- Возврат Ответ;
-
-КонецФункции
-
-Функция СклеитьДанные(Знач Данные, Знач Дополнение) Экспорт
-
- Поток = Новый ПотокВПамяти();
- Запись = Новый ЗаписьДанных(Поток);
-
- Запись.Записать(Данные);
- Запись.Записать(Дополнение);
-
- Запись.Закрыть();
-
- Результат = Поток.ЗакрытьИПолучитьДвоичныеДанные();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция ЭтоПримитивныйТип(Знач Значение) Экспорт
-
- ТипЗначения = ТипЗнч(Значение);
-
- Возврат ТипЗначения = Тип("Строка")
- Или ТипЗначения = Тип("Число")
- Или ТипЗначения = Тип("Булево");
-
-КонецФункции
-
-Функция ЭтоКоллекция(Знач Значение, Знач КлючЗначение = Ложь) Экспорт
-
- ТипЗначения = ТипЗнч(Значение);
-
- Возврат (ТипЗначения = Тип("Массив") И Не КлючЗначение)
- Или ТипЗначения = Тип("Структура")
- Или ТипЗначения = Тип("Соответствие");
-
-КонецФункции
-
-Функция ПолучитьХешСуммуПоследнейСборки() Экспорт
-
- Возврат OPI_BuildHash.GetHashSum();
-
-КонецФункции
-
-Функция ВерсияОПИ() Экспорт
- Возврат "1.28.0";
-КонецФункции
-
-Функция ЯзыкОПИ() Экспорт
- ТекущийЯзыкОПИ = "ru";
- Возврат ТекущийЯзыкОПИ;
-КонецФункции
-
-
-#КонецОбласти
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-Процедура УдалитьПустыеКлючиЗначения(Знач Коллекция, ВыходнаяКоллекция)
-
- Для Каждого ЭлементКоллекции Из Коллекция Цикл
-
- Если Не ЭлементКоллекции.Значение = Неопределено И Не ЭлементКоллекции.Значение = Null Тогда
- ВыходнаяКоллекция.Вставить(ЭлементКоллекции.Ключ, ЭлементКоллекции.Значение);
- КонецЕсли;
-
- КонецЦикла;
-
-КонецПроцедуры
-
-Процедура УдалитьПустыеЭлементыМассива(Знач Коллекция, ВыходнаяКоллекция)
-
- Для Каждого ЭлементКоллекции Из Коллекция Цикл
-
- Если Не ЭлементКоллекции = Неопределено И Не ЭлементКоллекции = Null Тогда
- ВыходнаяКоллекция.Добавить(ЭлементКоллекции);
- КонецЕсли;
-
- КонецЦикла;
-
-КонецПроцедуры
-
-Процедура НачалоОбработкиXML(XML)
-
- Если Не ТипЗнч(XML) = Тип("ЧтениеXML") Тогда
- XML_ = XML;
- XML = Новый ЧтениеXML;
- XML.УстановитьСтроку(XML_);
- КонецЕсли;
-
-КонецПроцедуры
-
-Процедура ВывестиТекстВТекущуюСтроку(Знач Текст, Знач Цвет = "", Знач ВНачало = Ложь) Экспорт
-
- Если Не ЭтоOneScript() Тогда
- Консоль = Неопределено;
- ЦветКонсоли = Новый Соответствие;
- КонецЕсли;
-
- Кодировка = Консоль.КодировкаВыходногоПотока;
- ПотокВывода = Консоль.ОткрытьСтандартныйПотокВывода();
- ЗаписьВывода = Новый ЗаписьДанных(ПотокВывода, Кодировка);
-
- Если Не ЗначениеЗаполнено(Цвет) Тогда
- Цвет = ЦветКонсоли.Белый;
- КонецЕсли;
-
- Если ТипЗнч(Цвет) = Тип("Строка") Тогда
- Консоль.ЦветТекста = ЦветКонсоли[Цвет];
- Иначе
- Консоль.ЦветТекста = Цвет;
- КонецЕсли;
-
- Если ВНачало Тогда
- Ескейп = Символы.ВК;
- ЗаписьВывода.ЗаписатьСимволы(Ескейп);
- КонецЕсли;
-
- ЗаписьВывода.ЗаписатьСимволы(Текст);
-
-КонецПроцедуры
-
-Функция ПреобразоватьПараметрВСтроку(Знач Значение)
-
- Если ТипЗнч(Значение) = Тип("Массив") Тогда
-
- Для Н = 0 По Значение.ВГраница() Цикл
- Значение[Н] = ПреобразоватьПараметрВСтроку(Значение[Н]);
- КонецЦикла;
-
- Значение = СтрСоединить(Значение, ",");
- Значение = КодироватьСтроку(Значение, СпособКодированияСтроки.URLВКодировкеURL);
- Значение = "[" + Значение + "]";
-
- ИначеЕсли ТипЗнч(Значение) = Тип("Соответствие") Или ТипЗнч(Значение) = Тип("Структура") Тогда
-
- ПараметрыJSON = Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Нет, "");
-
- ЗаписьJSON = Новый ЗаписьJSON;
- ЗаписьJSON.УстановитьСтроку(ПараметрыJSON);
-
- ЗаписатьJSON(ЗаписьJSON, Значение);
- Значение = ЗаписьJSON.Закрыть();
-
- ИначеЕсли ТипЗнч(Значение) = Тип("Булево") Тогда
-
- Значение = ?(Значение, "true", "false");
-
- Иначе
-
- Значение = ЧислоВСтроку(Значение);
- Значение = КодироватьСтроку(Значение, СпособКодированияСтроки.URLВКодировкеURL);
-
- КонецЕсли;
-
- Возврат Значение;
-
-КонецФункции
-
-Функция РазделитьМассивНаПараметрыURL(Знач Ключ, Знач Значение)
-
- КлючМассив = Ключ + "=";
-
- Для Н = 0 По Значение.ВГраница() Цикл
-
- ТекущееЗначение = Значение[Н];
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(ТекущееЗначение);
-
- Значение.Установить(Н, КлючМассив + ТекущееЗначение);
-
- КонецЦикла;
-
- ПараметрСтрокой = СтрСоединить(Значение, "&");
-
- Возврат ПараметрСтрокой;
-
-КонецФункции
-
-Функция НачалоФормированияXML(Значение, ЗаписьXML)
-
- ЭтоВход = Ложь;
-
- Если ЗаписьXML = Неопределено Тогда
-
- ТекстОшибки = "Ошибка получения коллекции для формирования XML";
- OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(Значение, ТекстОшибки);
-
- ЗаписьXML = Новый ЗаписьXML;
- ЗаписьXML.УстановитьСтроку();
- ЗаписьXML.ЗаписатьОбъявлениеXML();
-
- ЭтоВход = Истина;
-
- КонецЕсли;
-
- Возврат ЭтоВход;
-
-КонецФункции
-
-Функция ПодходящийТипУзла(Знач ТипУзла)
-
- Возврат ТипУзла = ТипУзлаXML.НачалоЭлемента Или ТипУзла = ТипУзлаXML.КонецЭлемента Или ТипУзла = ТипУзлаXML.Текст;
-
-КонецФункции
-
-Функция ПолучитьСоответствиеУправляющихПоследовательностей()
-
- СоответствиеСимволов = Новый Соответствие;
-
- СоответствиеСимволов.Вставить("\n" , Символы.ПС);
- СоответствиеСимволов.Вставить("\r" , Символы.ВК);
- СоответствиеСимволов.Вставить("\f" , Символы.ПФ);
- СоответствиеСимволов.Вставить("\v" , Символы.ВТаб);
-
- Возврат СоответствиеСимволов;
-
-КонецФункции
-
-Функция КопироватьКоллекциюКлючЗначение(Знач Коллекция, Знач ЭтоСтруктура)
-
- Коллекция_ = ?(ЭтоСтруктура, Новый Структура, Новый Соответствие);
-
- Для Каждого ПолеКоллекции Из Коллекция Цикл
-
- ТекущееЗначение = ПолеКоллекции.Значение;
- ТекущееЗначение = ?(ЭтоКоллекция(ТекущееЗначение), КопироватьКоллекцию(ТекущееЗначение), ТекущееЗначение);
-
- Коллекция_.Вставить(ПолеКоллекции.Ключ, ТекущееЗначение);
-
- КонецЦикла;
-
- Возврат Коллекция_;
-
-КонецФункции
-
-Функция КопироватьКоллекциюМассив(Знач Коллекция)
-
- Коллекция_ = Новый Массив;
-
- Для Каждого ЭлементКоллекции Из Коллекция Цикл
-
- ТекущееЗначение = ?(ЭтоКоллекция(ЭлементКоллекции), КопироватьКоллекцию(ЭлементКоллекции), ЭлементКоллекции);
- Коллекция_.Добавить(ТекущееЗначение);
-
- КонецЦикла;
-
- Возврат Коллекция_;
-
-КонецФункции
-
-#КонецОбласти
diff --git a/XML/CommonModules/OPI_Компоненты.xml b/XML/CommonModules/OPI_Компоненты.xml
deleted file mode 100644
index 274f3b8db9..0000000000
--- a/XML/CommonModules/OPI_Компоненты.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- OPI_Компоненты
-
-
- ru
- Компоненты (служебный, ОПИ)
-
-
- Модуль работы с внешними компонентами набора ОПИ
- false
- false
- true
- true
- true
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git a/XML/CommonModules/OPI_Компоненты/Ext/Module.bsl b/XML/CommonModules/OPI_Компоненты/Ext/Module.bsl
deleted file mode 100644
index 434273d327..0000000000
--- a/XML/CommonModules/OPI_Компоненты/Ext/Module.bsl
+++ /dev/null
@@ -1,291 +0,0 @@
-// OneScript: ./OInt/tools/Modules/OPI_Компоненты.os
-
-// MIT License
-
-// Copyright (c) 2023-2025 Anton Tsitavets
-
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-
-// The above copyright notice and this permission notice shall be included in all
-// copies or substantial portions of the Software.
-
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-// SOFTWARE.
-
-// https://github.com/Bayselonarrend/OpenIntegrations
-
-// BSLLS:LatinAndCyrillicSymbolInWord-off
-// BSLLS:IncorrectLineBreak-off
-// BSLLS:UsingHardcodePath-off
-// BSLLS:Typo-off
-// BSLLS:DeprecatedMessage-off
-// BSLLS:UsingServiceTag-off
-// BSLLS:ExecuteExternalCodeInCommonModule-off
-// BSLLS:DuplicateStringLiteral-off
-// BSLLS:MagicNumber-off
-// BSLLS:UsingHardcodeNetworkAddress-off
-// BSLLS:UsingSynchronousCalls-off
-
-//@skip-check use-non-recommended-method
-//@skip-check module-structure-top-region
-//@skip-check module-structure-method-in-regions
-//@skip-check undefined-function-or-procedure
-//@skip-check wrong-string-literal-content
-
-// Раскомментировать, если выполняется OneScript
-// #Использовать "./internal"
-
-#Область СлужебныйПрограммныйИнтерфейс
-
-Функция ПолучитьКомпоненту(Знач ИмяКомпоненты, Знач Класс = "Main") Экспорт
-
- Компонента = Неопределено;
- Ошибка = "";
- ИмяКомпоненты = "OPI_" + ИмяКомпоненты;
-
- Если Не ИнициализироватьВнешнююКомпоненту(ИмяКомпоненты, Класс, Компонента) Тогда
-
- Ошибка = Неопределено;
- Компонента = ПодключитьКомпонентуНаСервере(ИмяКомпоненты, Класс, Ошибка);
-
- Если ЗначениеЗаполнено(Ошибка) Тогда
- СформироватьИсключениеКомпоненты(Ошибка);
- КонецЕсли;
-
- КонецЕсли;
-
- Возврат Компонента;
-
-КонецФункции
-
-Функция ЭтоКомпонента(Знач Значение) Экспорт
-
- ТипЗначения = Строка(ТипЗнч(Значение));
- Возврат СтрНачинаетсяС(ТипЗначения, "AddIn.");
-
-КонецФункции
-
-Функция УстановитьTls(Знач Компонета, Знач Tls) Экспорт
-
- Результат = Новый Структура("result", Истина);
-
- Если ЗначениеЗаполнено(Tls) Тогда
-
- СообщениеОшибки = "Переданы некорректные настройки Tls!";
- OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(Tls, СообщениеОшибки);
-
- ИспользоватьTls = OPI_Инструменты.ПолучитьИли(Tls, "use_tls" , Ложь);
- ОтключитьВалидацию = OPI_Инструменты.ПолучитьИли(Tls, "accept_invalid_certs", Ложь);
- ПутьКСертификату = OPI_Инструменты.ПолучитьИли(Tls, "ca_cert_path" , "");
-
- OPI_ПреобразованиеТипов.ПолучитьБулево(ИспользоватьTls);
- OPI_ПреобразованиеТипов.ПолучитьБулево(ОтключитьВалидацию);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(ПутьКСертификату);
-
- Результат = Компонета.SetTLS(ИспользоватьTls, ОтключитьВалидацию, ПутьКСертификату);
- Результат = OPI_Инструменты.JsonВСтруктуру(Результат);
-
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция ПолучитьНастройкиTls(Знач ОтключитьПроверкуСертификатов, Знач ПутьКСертификату = "") Экспорт
-
- СтруктураСертификата = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("use_tls" , Истина , "Булево", СтруктураСертификата);
- OPI_Инструменты.ДобавитьПоле("accept_invalid_certs", ОтключитьПроверкуСертификатов, "Булево", СтруктураСертификата);
- OPI_Инструменты.ДобавитьПоле("ca_cert_path" , ПутьКСертификату , "Строка", СтруктураСертификата);
-
- Возврат СтруктураСертификата;
-
-КонецФункции
-
-Функция ПолучитьНастройкиПрокси(Знач Адрес
- , Знач Порт
- , Знач Вид = "socks5"
- , Знач Логин = Неопределено
- , Знач Пароль = Неопределено) Экспорт
-
- СтруктураНастроек = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("server" , Адрес, "Строка", СтруктураНастроек);
- OPI_Инструменты.ДобавитьПоле("port" , Порт , "Число" , СтруктураНастроек);
- OPI_Инструменты.ДобавитьПоле("proxy_type", Вид , "Строка", СтруктураНастроек);
-
- Если Не Логин = Неопределено Тогда
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Логин);
- СтруктураНастроек.Вставить("login", Логин);
- КонецЕсли;
-
- Если Не Пароль = Неопределено Тогда
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Пароль);
- СтруктураНастроек.Вставить("password", Пароль);
- КонецЕсли;
-
- //@skip-check constructor-function-return-section
- Возврат СтруктураНастроек;
-
-КонецФункции
-
-Функция ТребуетсяПередачаЧерезФайл() Экспорт
-
- // BSLLS:CommentedCode-off
-
- // Компоненты в 1С на Linux не могут стабильно отдавать и принимать данные свыше 30 КБ
- // https://github.com/Bayselonarrend/OpenIntegrations/issues/72
-
- // UPD: В неизолированном режиме не падает
-
- // Возврат Не OPI_Инструменты.ЭтоWindows() И Не OPI_Инструменты.ЭтоOneScript();
-
- // BSLLS:CommentedCode-on
-
- Возврат Ложь;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-Функция ИнициализироватьВнешнююКомпоненту(Знач ИмяКомпоненты, Знач Класс, Компонента)
-
- Попытка
- Компонента = Новый("AddIn." + ИмяКомпоненты + "." + Класс);
- Возврат Истина;
- Исключение
- Возврат Ложь;
- КонецПопытки;
-
-КонецФункции
-
-Функция ПодключитьКомпонентуНаСервере(Знач ИмяКомпоненты, Знач Класс, Ошибка)
-
- Если OPI_Инструменты.ЭтоOneScript() Тогда
- ИмяМакета = КаталогКомпонентOS() + ИмяКомпоненты + ".zip";
- Иначе
- ИмяМакета = "ОбщийМакет." + ИмяКомпоненты;
- КонецЕсли;
-
- Попытка
- ПодключитьКомпонентуНеИзолированно(ИмяМакета, ИмяКомпоненты);
- Компонента = Новый("AddIn." + ИмяКомпоненты + "." + Класс);
- Ошибка = Неопределено;
- Возврат Компонента;
- Исключение
- Ошибка = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
- Возврат Неопределено;
- КонецПопытки;
-
-КонецФункции
-
-Функция ПодключитьКомпонентуНеИзолированно(ИмяМакета, ИмяКомпоненты)
-
- ЭтоOneScript = OPI_Инструменты.ЭтоOneScript();
- НеобходимТипПоСистеме = Не ЭтоOneScript И Не OPI_Инструменты.ЭтоWindows();
-
- Если ЭтоOneScript Тогда
-
- НеобходимТипПоВерсии = Ложь;
-
- Иначе
-
- СистемнаяИнформация = Новый СистемнаяИнформация();
-
- Версия1С = СистемнаяИнформация.ВерсияПриложения;
- Версия1С = СтрРазделить(Версия1С, ".");
-
- Часть1 = Число(Версия1С[0]);
- Часть2 = Число(Версия1С[1]);
- Часть3 = Число(Версия1С[2]);
-
- НеобходимТипПоВерсии = Часть1 > 8 Или Часть2 > 3 Или Часть3 > 20;
-
- КонецЕсли;
-
- НеобходимТип = НеобходимТипПоВерсии И НеобходимТипПоСистеме;
-
- Если Не НеобходимТип Тогда
-
- Если Не НеобходимТипПоВерсии Тогда
- ТипПодключенияВнешнейКомпоненты = Неопределено;
- КонецЕсли;
-
- Результат = ПодключитьВнешнююКомпоненту(ИмяМакета, ИмяКомпоненты, ТипВнешнейКомпоненты.Native);
-
- Иначе
-
- // BSLLS:UnusedLocalVariable-off
-
- //@skip-check module-unused-local-variable
- ТипПодключения = ТипПодключенияВнешнейКомпоненты.НеИзолированно;
- //@skip-check server-execution-safe-mode
-
- // BSLLS:UnusedLocalVariable-on
-
- Результат = Вычислить("ПодключитьВнешнююКомпоненту(ИмяМакета, ИмяКомпоненты, ТипВнешнейКомпоненты.Native, ТипПодключения)");
-
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция КаталогКомпонентOS() Экспорт
-
- КаталогПрограммы = СтрЗаменить(КаталогПрограммы(), "\", "/");
-
- ЭлементыПути = СтрРазделить(КаталогПрограммы, "/");
- ЭлементыПути.Удалить(ЭлементыПути.ВГраница());
-
- // BSLLS:UsingHardcodePath-off
-
- КаталогКомпонент = СтрСоединить(ЭлементыПути, "/") + "/lib/oint/addins/";
-
- // BSLLS:UsingHardcodePath-on
-
- Возврат КаталогКомпонент;
-
-КонецФункции
-
-Процедура СформироватьИсключениеКомпоненты(Знач Ошибка)
-
- Текст = "Не удалось инициализировать внешнюю компоненту. Возможно, она несовместима с вашей операционной системой.";
-
- Если Не OPI_Инструменты.ЭтоWindows() Тогда
-
- Текст = Текст
- + Символы.ПС
- + Символы.ПС
- + "Важно: Для работы компоненты требуется GLIBC >=2.18"
- + " и OpenSSL версии 3.x"
- + Символы.ПС
- + "Проверьте, что данные зависимости удоволетворены в вашей системе!";
-
- КонецЕсли;
-
- Текст = Текст
- + Символы.ПС
- + Символы.ПС
- + "Подробнее: https://openintegrations.dev/docs/Start/Component-requirements"
- + Символы.ПС
- + Символы.ПС
- + "Системная информация:"
- + Ошибка;
-
- ВызватьИсключение Текст;
-
-КонецПроцедуры
-
-#КонецОбласти
diff --git a/XML/CommonModules/OPI_Криптография.xml b/XML/CommonModules/OPI_Криптография.xml
deleted file mode 100644
index 8e8a22f458..0000000000
--- a/XML/CommonModules/OPI_Криптография.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- OPI_Криптография
-
-
- ru
- Криптография (служебный, ОПИ)
-
-
- Модуль работы с криптографией набора ОПИ
- false
- false
- true
- true
- true
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git a/XML/CommonModules/OPI_Криптография/Ext/Module.bsl b/XML/CommonModules/OPI_Криптография/Ext/Module.bsl
deleted file mode 100644
index f031750783..0000000000
--- a/XML/CommonModules/OPI_Криптография/Ext/Module.bsl
+++ /dev/null
@@ -1,244 +0,0 @@
-// OneScript: ./OInt/tools/Modules/internal/Modules/OPI_Криптография.os
-
-// MIT License
-
-// Copyright (c) 2023-2025 Anton Tsitavets
-
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-
-// The above copyright notice and this permission notice shall be included in all
-// copies or substantial portions of the Software.
-
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-// SOFTWARE.
-
-// https://github.com/Bayselonarrend/OpenIntegrations
-
-// BSLLS:LatinAndCyrillicSymbolInWord-off
-// BSLLS:IncorrectLineBreak-off
-// BSLLS:UnusedLocalVariable-off
-// BSLLS:UsingServiceTag-off
-// BSLLS:UsingSynchronousCalls-off
-
-//@skip-check module-structure-top-region
-//@skip-check module-structure-method-in-regions
-//@skip-check wrong-string-literal-content
-
-#Область СлужебныйПрограммныйИнтерфейс
-
-Функция СоздатьПодпись(Знач КлючПодписи, Знач ДанныеПодписи, Знач Алгоритм, Знач ФункцияХеша) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(КлючПодписи);
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(ДанныеПодписи);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Алгоритм);
-
- Алгоритм = вРег(Алгоритм);
- ФункцияХеша = вРег(ФункцияХеша);
-
- Если Алгоритм = "HMAC" Тогда
- Результат = HMAC(КлючПодписи, ДанныеПодписи, ФункцияХеша);
- ИначеЕсли Алгоритм = "RSA" Тогда
- Результат = RSA(КлючПодписи, ДанныеПодписи, ФункцияХеша);
- Иначе
- ВызватьИсключение "Ошибка работы с криптографией: неподдерживаемый метод";
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция RSA(Знач Ключ, Знач Данные, Знач ФункцияХеша) Экспорт
-
- Компонента = OPI_Компоненты.ПолучитьКомпоненту("Cryptography");
-
- Если ФункцияХеша = "SHA256" Тогда
- Результат = Компонента.RsaSha256(Ключ, Данные);
- ИначеЕсли ФункцияХеша = "SHA1" Тогда
- Результат = Компонента.RsaSha1(Ключ, Данные);
- Иначе
- Результат = "неподдерживаемый метод хеширования";
- КонецЕсли;
-
- Если ТипЗнч(Результат) = Тип("Строка") Тогда
- ВызватьИсключение СтрШаблон("Ошибка работы с криптографией: %1", Результат);
- Иначе
- Возврат Результат;
- КонецЕсли;
-
-КонецФункции
-
-Функция JWT(Знач Payload, Знач КлючПодписи, Знач Метод, Знач ДопЗаголовки = "") Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Метод);
- OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(Payload);
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(КлючПодписи, Истина, Ложь);
-
- Метод = вРег(Метод);
-
- Если Метод = "HS256" Тогда
-
- Алгоритм = "HMAC";
- ФункцияХеша = "SHA256";
-
- ИначеЕсли Метод = "RS256" Тогда
-
- Алгоритм = "RSA";
- ФункцияХеша = "SHA256";
-
- Иначе
- ВызватьИсключение "JWT: Неподдерживаемый метод";
- КонецЕсли;
-
- Заголовки = Новый Структура("alg,typ", Метод, "JWT");
-
- Если ЗначениеЗаполнено(ДопЗаголовки) Тогда
-
- OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(ДопЗаголовки);
-
- //@skip-check bsl-legacy-check-for-each-statetement-collection
- Для Каждого КлючЗначение Из ДопЗаголовки Цикл
- Заголовки.Вставить(КлючЗначение.Ключ, КлючЗначение.Значение);
- КонецЦикла;
-
- КонецЕсли;
-
- PayloadСтрокой = OPI_Инструменты.JSONСтрокой(Payload, , Ложь);
- ЗаголовкиСтрокой = OPI_Инструменты.JSONСтрокой(Заголовки, , Ложь);
-
- PayloadДвоичные = ПолучитьДвоичныеДанныеИзСтроки(PayloadСтрокой);
- ЗаголовкиДвоичные = ПолучитьДвоичныеДанныеИзСтроки(ЗаголовкиСтрокой);
-
- PayloadBase64 = Base64UrlEncode(PayloadДвоичные);
- ЗаголовкиBase64 = Base64UrlEncode(ЗаголовкиДвоичные);
-
- Токен = СтрШаблон("%1.%2", ЗаголовкиBase64, PayloadBase64);
- ТокенДвоичные = ПолучитьДвоичныеДанныеИзСтроки(Токен);
-
- Подпись = СоздатьПодпись(КлючПодписи, ТокенДвоичные, Алгоритм, ФункцияХеша);
- ПодписьBase64 = Base64UrlEncode(Подпись);
-
- Токен = СтрШаблон("%1.%2", Токен, ПодписьBase64);
-
- Возврат Токен;
-
-КонецФункции
-
-#Область Заимстованные
-
-///////////////////////////////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2019, ООО 1С-Софт
-// Все права защищены. Эта программа и сопроводительные материалы предоставляются
-// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
-// Текст лицензии доступен по ссылке:
-// https://creativecommons.org/licenses/by/4.0/legalcode
-///////////////////////////////////////////////////////////////////////////////////////////////////////
-
-Функция HMAC(Знач Ключ, Знач Данные, Знач ФункцияХеша) Экспорт
-
- Дважды = 2;
- РазмерБлока = 64;
- ТипХеша = ХешФункция[ФункцияХеша];
-
- Если Ключ.Размер() > РазмерБлока Тогда
- Ключ = Хеш(Ключ, ТипХеша);
- КонецЕсли;
-
- Если Ключ.Размер() <= РазмерБлока Тогда
- Ключ = ПолучитьHexСтрокуИзДвоичныхДанных(Ключ);
- Ключ = Лев(Ключ + ПовторитьСтроку("00", РазмерБлока), РазмерБлока * Дважды);
- КонецЕсли;
-
- Ключ = ПолучитьБуферДвоичныхДанныхИзДвоичныхДанных(ПолучитьДвоичныеДанныеИзHexСтроки(Ключ));
-
- Ipad = ПолучитьБуферДвоичныхДанныхИзHexСтроки(ПовторитьСтроку("36", РазмерБлока));
- Opad = ПолучитьБуферДвоичныхДанныхИзHexСтроки(ПовторитьСтроку("5c", РазмерБлока));
-
- Ipad.ЗаписатьПобитовоеИсключительноеИли(0, Ключ);
- Ikeypad = ПолучитьДвоичныеДанныеИзБуфераДвоичныхДанных(ipad);
-
- Opad.ЗаписатьПобитовоеИсключительноеИли(0, Ключ);
- Okeypad = ПолучитьДвоичныеДанныеИзБуфераДвоичныхДанных(opad);
-
- Возврат Хеш(СклеитьДвоичныеДанные(okeypad, Хеш(СклеитьДвоичныеДанные(ikeypad, Данные), ТипХеша)), ТипХеша);
-
-КонецФункции
-
-Функция Хеш(ДвоичныеДанные, Тип) Экспорт
-
- Хеширование = Новый ХешированиеДанных(Тип);
- Хеширование.Добавить(ДвоичныеДанные);
-
- Возврат Хеширование.ХешСумма;
-
-КонецФункции
-
-Функция СклеитьДвоичныеДанные(ДвоичныеДанные1, ДвоичныеДанные2) Экспорт
-
- МассивДвоичныхДанных = Новый Массив;
- МассивДвоичныхДанных.Добавить(ДвоичныеДанные1);
- МассивДвоичныхДанных.Добавить(ДвоичныеДанные2);
-
- Возврат СоединитьДвоичныеДанные(МассивДвоичныхДанных);
-
-КонецФункции
-
-Функция ПовторитьСтроку(Строка, Количество) Экспорт
-
- Части = Новый Массив(Количество);
-
- Для К = 1 По Количество Цикл
- Части.Добавить(Строка);
- КонецЦикла;
-
- Возврат СтрСоединить(Части, "");
-
-КонецФункции
-
-// The MIT License (MIT)
-//
-// Copyright (c) 2017 Vasily Pintov
-//
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in all
-// copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-// SOFTWARE.
-
-// https://github.com/pintov/1c-jwt
-
-Функция Base64UrlEncode(Знач Значение) Экспорт
-
- Вывод = Base64Строка(Значение);
- Вывод = СтрРазделить(Вывод, "=")[0];
- Вывод = СтрЗаменить(Вывод, Символы.ВК + Символы.ПС, "");
- Вывод = СтрЗаменить(Вывод, "+" , "-");
- Вывод = СтрЗаменить(Вывод, "/" , "_");
- Возврат Вывод;
-
-КонецФункции
-
-#КонецОбласти
-
-#КонецОбласти
diff --git a/XML/CommonModules/OPI_ПолучениеДанныхТестов.xml b/XML/CommonModules/OPI_ПолучениеДанныхТестов.xml
deleted file mode 100644
index 566f6d003e..0000000000
--- a/XML/CommonModules/OPI_ПолучениеДанныхТестов.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
- OPI_ПолучениеДанныхТестов
-
-
-
- OPI получение данных тестов
-
-
- ru
- Получение данных тестов (служебный, ОПИ)
-
-
- Набор получения данных и нстроек для выполнения тестов набора ОПИ
- false
- false
- true
- true
- true
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git a/XML/CommonModules/OPI_ПолучениеДанныхТестов/Ext/Module.bsl b/XML/CommonModules/OPI_ПолучениеДанныхТестов/Ext/Module.bsl
deleted file mode 100644
index 1e8c18b258..0000000000
--- a/XML/CommonModules/OPI_ПолучениеДанныхТестов/Ext/Module.bsl
+++ /dev/null
@@ -1,12315 +0,0 @@
-// OneScript: ./OInt/tools/Modules/OPI_ПолучениеДанныхТестов.os
-
-// MIT License
-
-// Copyright (c) 2023-2025 Anton Tsitavets
-
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-
-// The above copyright notice and this permission notice shall be included in all
-// copies or substantial portions of the Software.
-
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-// SOFTWARE.
-
-// https://github.com/Bayselonarrend/OpenIntegrations
-
-// BSLLS:LatinAndCyrillicSymbolInWord-off
-// BSLLS:IncorrectLineBreak-off
-// BSLLS:UsingHardcodePath-off
-// BSLLS:Typo-off
-// BSLLS:DeprecatedMessage-off
-// BSLLS:UsingServiceTag-off
-// BSLLS:ExecuteExternalCodeInCommonModule-off
-// BSLLS:DuplicateStringLiteral-off
-// BSLLS:MagicNumber-off
-// BSLLS:UsingHardcodeNetworkAddress-off
-// BSLLS:UsingSynchronousCalls-off
-// BSLLS:UnusedLocalMethod-off
-// BSLLS:MissingTemporaryFileDeletion-off
-// BSLLS:MethodSize-off
-// BSLLS:IfElseIfEndsWithElse-off
-// BSLLS:CognitiveComplexity-off
-// BSLLS:NumberOfOptionalParams-off
-// BSLLS:CommentedCode-off
-// BSLLS:CyclomaticComplexity-off
-
-//@skip-check use-non-recommended-method
-//@skip-check module-structure-top-region
-//@skip-check module-structure-method-in-regions
-//@skip-check undefined-function-or-procedure
-//@skip-check wrong-string-literal-content
-//@skip-check module-unused-method
-//@skip-check missing-temporary-file-deletion
-//@skip-check method-too-many-params
-//@skip-check bsl-legacy-check-for-each-statetement-collection
-//@skip-check bsl-legacy-check-string-literal
-//@skip-check bsl-legacy-check-expression-type
-
-// Раскомментировать, если выполняется OneScript
-// #Использовать "./internal"
-// #Использовать asserts
-#Область СлужебныйПрограммныйИнтерфейс
-
-Функция ВыполнитьТестCLI(Знач Библиотека, Знач Метод, Знач Опции, Знач Записывать = Истина) Экспорт
-
- Если OPI_Инструменты.ЭтоWindows() Тогда
-
- Если OPI_Инструменты.ЭтоOneScript() Тогда
- Oint = """C:\Program Files (x86)\OInt\bin\oint.bat""";
- Иначе
- Oint = """C:\Program Files\OneScript\bin\oint.bat""";
- КонецЕсли;
-
- Иначе
-
- Oint = "oint";
-
- КонецЕсли;
-
- ФайлРезультата = ПолучитьИмяВременногоФайла();
-
- СтрокаЗапуска = Oint + " " + Библиотека + " " + Метод;
- ДопОпции = Новый Структура;
- ОпцииЗаписи = Новый Структура;
-
- Для Каждого Опция Из Опции Цикл
-
- Если Опция.Значение = Неопределено Или Строка(Опция.Значение) = "" Тогда
- Продолжить;
- КонецЕсли;
-
- ТекущееЗначение = ПолучитьЗначениеДляCLI(Опция.Значение, , ДопОпции);
-
- СтрокаЗапуска = СтрокаЗапуска + " --" + Опция.Ключ + " " + ТекущееЗначение;
-
- ОпцииЗаписи.Вставить(Опция.Ключ, ТекущееЗначение);
-
- КонецЦикла;
-
- Для Каждого ДопОпция Из ДопОпции Цикл
-
- ТекущееЗначение = ПолучитьЗначениеДляCLI(ДопОпция.Значение);
-
- СтрокаЗапуска = СтрокаЗапуска + " --" + ДопОпция.Ключ + " " + ТекущееЗначение;
-
- ОпцииЗаписи.Вставить(ДопОпция.Ключ, ТекущееЗначение);
-
- КонецЦикла;
-
- // BSLLS:ExternalAppStarting-off
- ЗапуститьПриложение(СтрокаЗапуска + " --out """ + ФайлРезультата + """ --debug", , Истина);
- // BSLLS:ExternalAppStarting-on
-
- Результат = ПрочестьРезультатCLI(ФайлРезультата);
-
- Если Записывать Тогда
- ЗаписатьВызовCLI(Библиотека, Метод, ОпцииЗаписи);
- КонецЕсли;
-
- OPI_Инструменты.УдалитьФайлВПопытке(ФайлРезультата, "Не удалось удалить временный файл после теста!");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция ПолучитьСоответствиеРазделовТестирования() Экспорт
-
- Разделы = Новый Структура;
- Разделы.Вставить("BuildCheck" , 1);
- Разделы.Вставить("Telegram" , 5);
- Разделы.Вставить("VK" , 5);
- Разделы.Вставить("Viber" , 5);
- Разделы.Вставить("Twitter" , 4);
- Разделы.Вставить("FTP" , 5);
- Разделы.Вставить("SSH" , 5);
- Разделы.Вставить("SFTP" , 5);
- Разделы.Вставить("PostgreSQL" , 5);
- Разделы.Вставить("MySQL" , 5);
- Разделы.Вставить("MSSQL" , 5);
- Разделы.Вставить("SQLite" , 5);
- Разделы.Вставить("RCON" , 5);
- Разделы.Вставить("YandexDisk" , 5);
- Разделы.Вставить("GoogleWorkspace", 2);
- Разделы.Вставить("GoogleCalendar" , 5);
- Разделы.Вставить("GoogleDrive" , 5);
- Разделы.Вставить("GoogleSheets" , 5);
- Разделы.Вставить("Notion" , 5);
- Разделы.Вставить("Slack" , 5);
- Разделы.Вставить("Airtable" , 5);
- Разделы.Вставить("Dropbox" , 5);
- Разделы.Вставить("Bitrix24" , 5);
- Разделы.Вставить("VkTeams" , 5);
- Разделы.Вставить("Neocities" , 5);
- Разделы.Вставить("CDEK" , 5);
- Разделы.Вставить("YandexMetrika" , 5);
- Разделы.Вставить("S3" , 5);
- Разделы.Вставить("TCP" , 5);
- Разделы.Вставить("GreenAPI" , 5);
- Разделы.Вставить("GreenMax" , 5);
- Разделы.Вставить("Ollama" , 5);
- Разделы.Вставить("HTTPКлиент" , 5);
- Разделы.Вставить("OpenAI" , 5);
- Разделы.Вставить("ReportPortal" , 5);
-
- Возврат Разделы;
-
-КонецФункции
-
-Функция ПолучитьСоответствиеРазделовТестированияGA() Экспорт
-
- СтандартныеЗависимости = "[Decode, Build]";
- ЗависимостиГугл = "Testing-GoogleWorkspace";
-
- Разделы = Новый Структура;
- Разделы.Вставить("BuildCheck" , СтандартныеЗависимости);
- Разделы.Вставить("Telegram" , СтандартныеЗависимости);
- Разделы.Вставить("VK" , СтандартныеЗависимости);
- Разделы.Вставить("Viber" , СтандартныеЗависимости);
- Разделы.Вставить("Twitter" , СтандартныеЗависимости);
- Разделы.Вставить("FTP" , СтандартныеЗависимости);
- Разделы.Вставить("SSH" , СтандартныеЗависимости);
- Разделы.Вставить("SFTP" , СтандартныеЗависимости);
- Разделы.Вставить("PostgreSQL" , СтандартныеЗависимости);
- Разделы.Вставить("MySQL" , СтандартныеЗависимости);
- Разделы.Вставить("MSSQL" , СтандартныеЗависимости);
- Разделы.Вставить("SQLite" , СтандартныеЗависимости);
- Разделы.Вставить("RCON" , СтандартныеЗависимости);
- Разделы.Вставить("YandexDisk" , СтандартныеЗависимости);
- Разделы.Вставить("GoogleWorkspace", СтандартныеЗависимости);
- Разделы.Вставить("GoogleCalendar" , ЗависимостиГугл);
- Разделы.Вставить("GoogleDrive" , ЗависимостиГугл);
- Разделы.Вставить("GoogleSheets" , ЗависимостиГугл);
- Разделы.Вставить("Notion" , СтандартныеЗависимости);
- Разделы.Вставить("Slack" , СтандартныеЗависимости);
- Разделы.Вставить("Airtable" , СтандартныеЗависимости);
- Разделы.Вставить("Dropbox" , СтандартныеЗависимости);
- Разделы.Вставить("Bitrix24" , СтандартныеЗависимости);
- Разделы.Вставить("VkTeams" , СтандартныеЗависимости);
- Разделы.Вставить("Neocities" , СтандартныеЗависимости);
- Разделы.Вставить("CDEK" , СтандартныеЗависимости);
- Разделы.Вставить("YandexMetrika" , СтандартныеЗависимости);
- Разделы.Вставить("S3" , СтандартныеЗависимости);
- Разделы.Вставить("TCP" , СтандартныеЗависимости);
- Разделы.Вставить("GreenAPI" , СтандартныеЗависимости);
- Разделы.Вставить("GreenMax" , СтандартныеЗависимости);
- Разделы.Вставить("Ollama" , СтандартныеЗависимости);
- Разделы.Вставить("HTTPКлиент" , СтандартныеЗависимости);
- Разделы.Вставить("OpenAI" , СтандартныеЗависимости);
- Разделы.Вставить("ReportPortal" , СтандартныеЗависимости);
-
- Возврат Разделы;
-
-КонецФункции
-
-Функция ПолучитьТаблицуТестов() Экспорт
-
- Телеграм = "Telegram";
- ВКонтакте = "VK";
- ЯДиск = "YandexDisk";
- Календарь = "GoogleCalendar";
- Твиттер = "Twitter";
- Вайбер = "Viber";
- Драйв = "GoogleDrive";
- ВСпейс = "GoogleWorkspace";
- Ноушн = "Notion";
- Слак = "Slack";
- Таблицы = "GoogleSheets";
- АирТ = "Airtable";
- ДропБокс = "Dropbox";
- Битрикс = "Bitrix24";
- ВКТ = "VkTeams";
- Неоситиз = "Neocities";
- Сдэк = "CDEK";
- Метрика = "YandexMetrika";
- S3_ = "S3";
- TCP = "TCP";
- SQLite = "SQLite";
- Postgres = "PostgreSQL";
- GreenAPI = "GreenAPI";
- RCON = "RCON";
- MySQL = "MySQL";
- Ollama = "Ollama";
- Http = "HTTPКлиент";
- OpenAI = "OpenAI";
- MSSQL = "MSSQL";
- FTP = "FTP";
- RPortal = "ReportPortal";
- SSH = "SSH";
- SFTP = "SFTP";
- GreenMax = "GreenMax";
-
- ТаблицаТестов = Новый ТаблицаЗначений;
- ТаблицаТестов.Колонки.Добавить("Метод");
- ТаблицаТестов.Колонки.Добавить("Синоним");
- ТаблицаТестов.Колонки.Добавить("Раздел");
-
- НовыйТест(ТаблицаТестов
- , "ПроверитьСоответствиеИБПоследнейСборке"
- , "Проверить соответствие ИБ последней сборке"
- , "BuildCheck");
-
- НовыйТест(ТаблицаТестов, "Телеграм_ПолучитьИнформациюБота" , "Получить информацию бота" , Телеграм);
- НовыйТест(ТаблицаТестов, "Телеграм_ПолучитьОбновления" , "Получить обновления" , Телеграм);
- НовыйТест(ТаблицаТестов, "Телеграм_УстановитьWebhook" , "Установить Webhook" , Телеграм);
- НовыйТест(ТаблицаТестов, "Телеграм_ОтправитьТекстовоеСообщение" , "Отправить текстовое сообщение" , Телеграм);
- НовыйТест(ТаблицаТестов, "Телеграм_ОтправитьКартинку" , "Отправить картинку" , Телеграм);
- НовыйТест(ТаблицаТестов, "Телеграм_ОтправитьВидео" , "Отправить видео" , Телеграм);
- НовыйТест(ТаблицаТестов, "Телеграм_ОтправитьАудио" , "Отправить аудио" , Телеграм);
- НовыйТест(ТаблицаТестов, "Телеграм_ОтправитьДокумент" , "Отправить документ" , Телеграм);
- НовыйТест(ТаблицаТестов, "Телеграм_ОтправитьГифку" , "Отправить гифку" , Телеграм);
- НовыйТест(ТаблицаТестов, "Телеграм_ОтправитьМедиагруппу" , "Отправить медиагруппу" , Телеграм);
- НовыйТест(ТаблицаТестов, "Телеграм_ОтправитьМестоположение" , "Отправить местоположение" , Телеграм);
- НовыйТест(ТаблицаТестов, "Телеграм_ОтправитьКонтакт" , "Отправить контакт" , Телеграм);
- НовыйТест(ТаблицаТестов, "Телеграм_ОтправитьОпрос" , "Отправить опрос" , Телеграм);
- НовыйТест(ТаблицаТестов, "Телеграм_ПереслатьСообщение" , "Переслать сообщение" , Телеграм);
- НовыйТест(ТаблицаТестов, "Телеграм_БанРазбан" , "Бан/Разбан" , Телеграм);
- НовыйТест(ТаблицаТестов, "Телеграм_СоздатьСсылкуПриглашение" , "Создать ссылку-приглашение" , Телеграм);
- НовыйТест(ТаблицаТестов, "Телеграм_ЗакрепитьОткрепитьСообщение" , "Закрепить/Открепить сообщение" , Телеграм);
- НовыйТест(ТаблицаТестов, "Телеграм_ПолучитьЧислоУчастников" , "Получить число участников" , Телеграм);
- НовыйТест(ТаблицаТестов, "Телеграм_ПолучитьСписокАватаровФорума", "Получить список аватаров форума", Телеграм);
- НовыйТест(ТаблицаТестов, "Телеграм_СоздатьУдалитьТемуФорума" , "Создать/Удалить тему форума" , Телеграм);
- НовыйТест(ТаблицаТестов, "Телеграм_ИзменитьИмяГлавнойТемы" , "Изменить имя главной темы" , Телеграм);
- НовыйТест(ТаблицаТестов, "Телеграм_СкрытьПоказатьГлавнуюТему" , "Скрыть/Показать главную тему" , Телеграм);
- НовыйТест(ТаблицаТестов, "ВК_СоздатьСсылкуТокена" , "Создать ссылку получения токена", ВКонтакте);
- НовыйТест(ТаблицаТестов, "ВК_СоздатьУдалитьПост" , "Создать/Удалить пост" , ВКонтакте);
- НовыйТест(ТаблицаТестов, "ВК_СоздатьСоставнойПост" , "Создать/Удалить составной пост" , ВКонтакте);
- НовыйТест(ТаблицаТестов, "ВК_СоздатьОпрос" , "Создать опрос" , ВКонтакте);
- НовыйТест(ТаблицаТестов, "ВК_СохранитьУдалитьКартинку" , "Добавить/Удалить картинку" , ВКонтакте);
- НовыйТест(ТаблицаТестов, "ВК_СоздатьИсторию" , "Создать историю" , ВКонтакте);
- НовыйТест(ТаблицаТестов, "ВК_МетодыОбсуждений" , "Действия с обсуждениями" , ВКонтакте);
- НовыйТест(ТаблицаТестов, "ВК_ЛайкРепостКоммент" , "Лайк/Репост/Комментарий" , ВКонтакте);
- НовыйТест(ТаблицаТестов, "ВК_ПолучитьСтатистику" , "Получить статистику" , ВКонтакте);
- НовыйТест(ТаблицаТестов, "ВК_ПолучитьСтатистикуПостов" , "Получить статистику постов" , ВКонтакте);
- НовыйТест(ТаблицаТестов, "ВК_СоздатьРекламнуюКампанию" , "Создать рекламную кампанию" , ВКонтакте);
- НовыйТест(ТаблицаТестов, "ВК_ОтправитьСообщение" , "Отправить сообщение" , ВКонтакте);
- НовыйТест(ТаблицаТестов, "ВК_ПолучитьКатегорииТоваров" , "Получить категории товаров" , ВКонтакте);
- НовыйТест(ТаблицаТестов, "ВК_СоздатьТоварПодборку" , "Создать товар и подборку" , ВКонтакте);
- НовыйТест(ТаблицаТестов, "ВК_СоздатьТоварСоСвойствами" , "Создать товар со свойствами" , ВКонтакте);
- НовыйТест(ТаблицаТестов, "ВК_ПолучитьСписокТоваров" , "Получить список товаров" , ВКонтакте);
- НовыйТест(ТаблицаТестов, "ВК_ПолучитьСписокПодборок" , "Получить список подборок" , ВКонтакте);
- НовыйТест(ТаблицаТестов, "ВК_ПолучитьСписокСвойств" , "Получить список свойств" , ВКонтакте);
- НовыйТест(ТаблицаТестов, "ВК_ПолучитьСписокЗаказов" , "Получить список заказов" , ВКонтакте);
- НовыйТест(ТаблицаТестов, "ВК_ЗагрузитьВидео" , "Загрузить видео" , ВКонтакте);
- НовыйТест(ТаблицаТестов, "ЯДиск_ПолучитьИнформациюОДиске" , "Получить информацию о диске" , ЯДиск);
- НовыйТест(ТаблицаТестов, "ЯДиск_СоздатьПапку" , "Создать папку" , ЯДиск);
- НовыйТест(ТаблицаТестов, "ЯДиск_ЗагрузитьПоАдресуПолучитьОбъект", "Загрузить по URL и получить" , ЯДиск);
- НовыйТест(ТаблицаТестов, "ЯДиск_ЗагрузитьУдалитьФайл" , "Загрузить/Удалить файл" , ЯДиск);
- НовыйТест(ТаблицаТестов, "ЯДиск_СоздатьКопиюОбъекта" , "Создать копию объекта" , ЯДиск);
- НовыйТест(ТаблицаТестов, "ЯДиск_ПолучитьСсылкуНаСкачивание" , "Получить ссылку на скачивание" , ЯДиск);
- НовыйТест(ТаблицаТестов, "ЯДиск_ПолучитьСписокФайлов" , "Получить список файлов" , ЯДиск);
- НовыйТест(ТаблицаТестов, "ЯДиск_ПереместитьОбъект" , "Переместить объект" , ЯДиск);
- НовыйТест(ТаблицаТестов, "ЯДиск_ДействияПубличныхОбъектов" , "Действия с публичными объектами", ЯДиск);
- НовыйТест(ТаблицаТестов, "ЯДиск_ПолучитьСписокОпубликованных" , "Получить список опубликованных" , ЯДиск);
- НовыйТест(ТаблицаТестов, "ГВ_Авторизация" , "Авторизация" , ВСпейс);
- НовыйТест(ТаблицаТестов, "ГВ_Авторизация" , "Авторизация" , Календарь);
- НовыйТест(ТаблицаТестов, "ГК_ПолучитьСписокКалендарей" , "Получить список календарей" , Календарь);
- НовыйТест(ТаблицаТестов, "ГК_СоздатьУдалитьКалендарь" , "Создать/Удалить календарь" , Календарь);
- НовыйТест(ТаблицаТестов, "ГК_СоздатьУдалитьСобытие" , "Создать/Удалить событие" , Календарь);
- НовыйТест(ТаблицаТестов, "ГВ_Авторизация" , "Авторизация" , Драйв);
- НовыйТест(ТаблицаТестов, "ГД_ПолучитьСписокКаталогов" , "Получить список каталогов" , Драйв);
- НовыйТест(ТаблицаТестов, "ГД_ЗагрузитьУдалитьФайл" , "Загрузить/Удалить Файл" , Драйв);
- НовыйТест(ТаблицаТестов, "ГД_СоздатьУдалитьКомментарий" , "Создать/Удалить кооментарий" , Драйв);
- НовыйТест(ТаблицаТестов, "ГД_СоздатьКаталог" , "Создать/Удалить каталог" , Драйв);
- НовыйТест(ТаблицаТестов, "ГВ_Авторизация" , "Авторизация" , Таблицы);
- НовыйТест(ТаблицаТестов, "ГТ_СоздатьТаблицу" , "Создать таблицу" , Таблицы);
- НовыйТест(ТаблицаТестов, "ГТ_ЗаполнитьОчиститьЯчейки" , "Заполнить/Очистить ячейки" , Таблицы);
- НовыйТест(ТаблицаТестов, "Твиттер_ДанныеАккаунта" , "Данные аккаунта" , Твиттер);
- НовыйТест(ТаблицаТестов, "Твиттер_Твиты" , "Создание твитов" , Твиттер);
- НовыйТест(ТаблицаТестов, "Вайбер_ПолучениеИнформации" , "Получение информации" , Вайбер);
- НовыйТест(ТаблицаТестов, "Вайбер_ОтправкаСообщений" , "Отправка сообщений" , Вайбер);
- НовыйТест(ТаблицаТестов, "НоушнАпи_СоздатьСтраницу" , "Создать страницу" , Ноушн);
- НовыйТест(ТаблицаТестов, "НоушнАпи_СоздатьИзменитьБазу" , "Создать/Изменить базу" , Ноушн);
- НовыйТест(ТаблицаТестов, "НоушнАпи_СоздатьУдалитьБлок" , "Создать/Удалить блок" , Ноушн);
- НовыйТест(ТаблицаТестов, "НоушнАпи_ПолучитьПользователей" , "Получить пользователей" , Ноушн);
- НовыйТест(ТаблицаТестов, "Слак_ПолучитьИнформацию" , "Получить информацию" , Слак);
- НовыйТест(ТаблицаТестов, "Слак_ОтправитьУдалитьСообщение" , "Отправить/Удалить сообщение" , Слак);
- НовыйТест(ТаблицаТестов, "Слак_СоздатьАрхивироватьКанал" , "Создать/Архивировать канал" , Слак);
- НовыйТест(ТаблицаТестов, "Слак_ОткрытьЗакрытьДиалог" , "Открыть/Закрыть диалог" , Слак);
- НовыйТест(ТаблицаТестов, "Слак_ЗагрузитьУдалитьФайл" , "Загрузить/Удалить файл" , Слак);
- НовыйТест(ТаблицаТестов, "Слак_ЗагрузитьУдалитьВФ" , "Загрузить/Удалить внеш. файл" , Слак);
- НовыйТест(ТаблицаТестов, "АТ_СоздатьБазу" , "Создать/Изменить базу" , АирТ);
- НовыйТест(ТаблицаТестов, "АТ_СоздатьТаблицу" , "Создать/Изменить таблицу" , АирТ);
- НовыйТест(ТаблицаТестов, "АТ_СоздатьПоле" , "Создать/Изменить поле" , АирТ);
- НовыйТест(ТаблицаТестов, "АТ_СоздатьУдалитьЗаписи" , "Создать/Удалить записи" , АирТ);
- НовыйТест(ТаблицаТестов, "ДропБокс_ПолучитьОбновитьТокен" , "Получить/Обновить токен" , ДропБокс);
- НовыйТест(ТаблицаТестов, "ДропБокс_ЗагрузитьФайл" , "Загрузить файл" , ДропБокс);
- НовыйТест(ТаблицаТестов, "ДропБокс_ЗагрузитьФайлПоURL" , "Загрузить файл по URL" , ДропБокс);
- НовыйТест(ТаблицаТестов, "ДропБокс_СоздатьКаталог" , "Создать каталог" , ДропБокс);
- НовыйТест(ТаблицаТестов, "ДропБокс_СоздатьУдалитьТег" , "Создать/Удалить тег" , ДропБокс);
- НовыйТест(ТаблицаТестов, "ДропБокс_ПолучитьАккаунт" , "Получить данные аккаунта" , ДропБокс);
- НовыйТест(ТаблицаТестов, "ДропБокс_РаботаСДоступами" , "Работа с доступами" , ДропБокс);
- НовыйТест(ТаблицаТестов, "ДропБокс_ПолучитьСписокФайловПапки" , "Получить список файлов папки" , ДропБокс);
- НовыйТест(ТаблицаТестов, "Б24_РаботаСТокеном" , "Работа с токеном" , Битрикс);
- НовыйТест(ТаблицаТестов, "Б24_СерверноеВремя" , "Серверное время" , Битрикс);
- НовыйТест(ТаблицаТестов, "Б24_РаботаСНовостями" , "Работа с новостями" , Битрикс);
- НовыйТест(ТаблицаТестов, "Б24_РаботаСЗадачами" , "Работа с задачами" , Битрикс);
- НовыйТест(ТаблицаТестов, "Б24_РаботаСКомментариями" , "Работа с комментариями" , Битрикс);
- НовыйТест(ТаблицаТестов, "Б24_РаботаСДиском" , "Работа с диском" , Битрикс);
- НовыйТест(ТаблицаТестов, "Б24_Канбан" , "Канбан" , Битрикс);
- НовыйТест(ТаблицаТестов, "Б24_УчетРабочегоВремени" , "Учет рабочего времени" , Битрикс);
- НовыйТест(ТаблицаТестов, "Б24_РаботаСЧатами" , "Работа с чатами" , Битрикс);
- НовыйТест(ТаблицаТестов, "Б24_РаботаСУведомлениями" , "Работа с уведомлениями" , Битрикс);
- НовыйТест(ТаблицаТестов, "Б24_РаботаСПолямиЗадач" , "Работа с польз. полями задач" , Битрикс);
- НовыйТест(ТаблицаТестов, "Б24_УправлениеПодразделениями" , "Управление подразделениями" , Битрикс);
- НовыйТест(ТаблицаТестов, "Б24_УправлениеПользователями" , "Управление пользователями" , Битрикс);
- НовыйТест(ТаблицаТестов, "Б24_РаботаСЛидами" , "Работа с лидами" , Битрикс);
- НовыйТест(ТаблицаТестов, "Б24_РаботаСоСделками" , "Работа со сделками" , Битрикс);
- НовыйТест(ТаблицаТестов, "Б24_РаботаСКалендарями" , "Работа с календарями" , Битрикс);
- НовыйТест(ТаблицаТестов, "ВКТ_ОтправкаСообщений" , "Отправка сообщений" , ВКТ);
- НовыйТест(ТаблицаТестов, "ВКТ_ОбщиеМетоды" , "Общие методы" , ВКТ);
- НовыйТест(ТаблицаТестов, "ВКТ_УправлениеЧатами" , "Управление чатами" , ВКТ);
- НовыйТест(ТаблицаТестов, "НС_РаботаСФайлами" , "Работа с файлами" , Неоситиз);
- НовыйТест(ТаблицаТестов, "НС_ПолучениеДанных" , "Получение данных" , Неоситиз);
- НовыйТест(ТаблицаТестов, "СдэкАПИ_ОбщиеМетоды" , "Общие методы" , Сдэк);
- НовыйТест(ТаблицаТестов, "СдэкАПИ_РаботаСЗаказами" , "Работа с заказами" , Сдэк);
- НовыйТест(ТаблицаТестов, "СдэкАПИ_РаботаСЗаявкамиНаВызовКурьера", "Работа с заявками курьера" , Сдэк);
- НовыйТест(ТаблицаТестов, "ЯМетрика_УправлениеМетками" , "Управление метками" , Метрика);
- НовыйТест(ТаблицаТестов, "ЯМетрика_УправлениеСчетчиками" , "Управление счетчиками" , Метрика);
- НовыйТест(ТаблицаТестов, "ЯМетрика_УправлениеОперациями" , "Управление операциями" , Метрика);
- НовыйТест(ТаблицаТестов, "AWS_ОбщиеМетоды" , "Общие методы" , S3_);
- НовыйТест(ТаблицаТестов, "AWS_РаботаСБакетами" , "Работа с бакетами" , S3_);
- НовыйТест(ТаблицаТестов, "AWS_РаботаСОбъектами" , "Работа с объектами" , S3_);
- НовыйТест(ТаблицаТестов, "TC_Клиент" , "TCP Клиент" , TCP);
- НовыйТест(ТаблицаТестов, "SQLL_ОсновныеМетоды" , "Основные методы" , SQLite);
- НовыйТест(ТаблицаТестов, "SQLL_ORM" , "ORM" , SQLite);
- НовыйТест(ТаблицаТестов, "Postgres_ОсновныеМетоды" , "Основные методы" , Postgres);
- НовыйТест(ТаблицаТестов, "Postgres_ORM" , "ORM" , Postgres);
- НовыйТест(ТаблицаТестов, "MYS_ОсновныеМетоды" , "Основные методы" , MySQL);
- НовыйТест(ТаблицаТестов, "MYS_ORM" , "ORM" , MySQL);
- НовыйТест(ТаблицаТестов, "MSS_ОсновныеМетоды" , "Основные методы" , MSSQL);
- НовыйТест(ТаблицаТестов, "MSS_ORM" , "ORM" , MSSQL);
- НовыйТест(ТаблицаТестов, "GAPI_УправлениеГруппами" , "Управление группами" , GreenAPI);
- НовыйТест(ТаблицаТестов, "GAPI_ОтправкаСообщений" , "Отправка сообщений" , GreenAPI);
- НовыйТест(ТаблицаТестов, "GAPI_ПолучениеУведомлений" , "Получение уведомлений" , GreenAPI);
- НовыйТест(ТаблицаТестов, "GAPI_ОчередьСообщений" , "Очередь сообщений" , GreenAPI);
- НовыйТест(ТаблицаТестов, "GAPI_ЖурналыСообщений" , "Журналы сообщений" , GreenAPI);
- НовыйТест(ТаблицаТестов, "GAPI_Аккаунт" , "Аккаунт" , GreenAPI);
- НовыйТест(ТаблицаТестов, "GMax_Аккаунт" , "Аккаунт" , GreenMax);
- НовыйТест(ТаблицаТестов, "RC_ВыполнениеКоманд" , "Выполнение команд" , RCON);
- НовыйТест(ТаблицаТестов, "OLLM_ОбработкаЗапросов" , "Обработка запросов" , Ollama);
- НовыйТест(ТаблицаТестов, "OLLM_РаботаСМоделями" , "Работа с моделями" , Ollama);
- НовыйТест(ТаблицаТестов, "OLLM_РаботаСBlob" , "Работа с BLOB" , Ollama);
- НовыйТест(ТаблицаТестов, "HTTP_Инициализация" , "Инициализация" , Http);
- НовыйТест(ТаблицаТестов, "HTTP_УстановкаТела" , "Установка тела" , Http);
- НовыйТест(ТаблицаТестов, "HTTP_Настройки" , "Настройки" , Http);
- НовыйТест(ТаблицаТестов, "HTTP_УстановкаЗаголовков" , "Установка заголовков" , Http);
- НовыйТест(ТаблицаТестов, "HTTP_Авторизация" , "Авторизация" , Http);
- НовыйТест(ТаблицаТестов, "HTTP_ОбработкаЗапроса" , "Обработка запроса" , Http);
- НовыйТест(ТаблицаТестов, "HTTP_ПолучениеОтвета" , "Получение ответа" , Http);
- НовыйТест(ТаблицаТестов, "OAI_ОбработкаЗапросов" , "Обработка запросов" , OpenAI);
- НовыйТест(ТаблицаТестов, "OAI_Ассистенты" , "Ассистенты" , OpenAI);
- НовыйТест(ТаблицаТестов, "OAI_РаботаСФайлами" , "Работа с файлами" , OpenAI);
- НовыйТест(ТаблицаТестов, "OAI_РаботаСАудио" , "Работа с аудио" , OpenAI);
- НовыйТест(ТаблицаТестов, "OAI_РаботаСМоделями" , "Работа с моделями" , OpenAI);
- НовыйТест(ТаблицаТестов, "FT_РаботаСДиректориями" , "Работа с директориями" , FTP);
- НовыйТест(ТаблицаТестов, "FT_РаботаСФайлами" , "Работа с файлами" , FTP);
- НовыйТест(ТаблицаТестов, "FT_ОсновныеМетоды" , "Основные методы" , FTP);
- НовыйТест(ТаблицаТестов, "RPortal_Авторизация" , "Авторизация" , RPortal);
- НовыйТест(ТаблицаТестов, "SShell_ОсновныеМетоды" , "Основные методы" , SSH);
- НовыйТест(ТаблицаТестов, "SF_ОсновныеМетоды" , "Основные методы" , SFTP);
- НовыйТест(ТаблицаТестов, "SF_РаботаСДиректориями" , "Работа с директориями" , SFTP);
- НовыйТест(ТаблицаТестов, "SF_РаботаСФайлами" , "Работа с файлами" , SFTP);
-
- Возврат ТаблицаТестов;
-
-КонецФункции
-
-Функция ОжидаетЧто(Значение) Экспорт
-
- Попытка
-
- Модуль = ПолучитьОбщийМодуль("ЮТест");
- Ожидаем = ТипЗнч(Модуль) = Тип("ОбщийМодуль");
- Возврат Модуль.ОжидаетЧто(Значение);
-
- Исключение
- Возврат Ожидаем.Что(Значение);
- КонецПопытки;
-
-КонецФункции
-
-Функция СформироватьТестыЯкс() Экспорт
-
- Модуль = ПолучитьОбщийМодуль("ЮТТесты");
- Разделы = ПолучитьСоответствиеРазделовТестирования();
- ТаблицаТестов = ПолучитьТаблицуТестов();
-
- Для Каждого Раздел Из Разделы Цикл
-
- ТекущийРаздел = Раздел.Ключ;
- Отбор = Новый Структура("Раздел", ТекущийРаздел);
- ТестыРаздела = ТаблицаТестов.НайтиСтроки(Отбор);
-
- Набор = Модуль.ДобавитьТестовыйНабор(ТекущийРаздел);
-
- Для Каждого Тест Из ТестыРаздела Цикл
- Набор.ДобавитьСерверныйТест(Тест.Метод, Тест.Синоним);
- КонецЦикла;
-
- КонецЦикла;
-
- Возврат "";
-
-КонецФункции
-
-Функция СформироватьТестыАссертс() Экспорт
-
- ТаблицаТестов = ПолучитьТаблицуТестов();
- МассивТестов = Новый Массив;
-
- Для Каждого Тест Из ТаблицаТестов Цикл
- МассивТестов.Добавить(Тест.Метод);
- КонецЦикла;
-
- Возврат МассивТестов;
-
-КонецФункции
-
-Функция СформироватьТестыЯксCLI() Экспорт
-
- Модуль = ПолучитьОбщийМодуль("ЮТТесты");
- Разделы = ПолучитьСоответствиеРазделовТестирования();
- ТаблицаТестов = ПолучитьТаблицуТестов();
-
- Для Каждого Раздел Из Разделы Цикл
-
- ТекущийРаздел = Раздел.Ключ;
-
- Если ТекущийРаздел = "HTTP" Тогда
- Продолжить;
- КонецЕсли;
-
- Отбор = Новый Структура("Раздел", ТекущийРаздел);
- ТестыРаздела = ТаблицаТестов.НайтиСтроки(Отбор);
-
- Набор = Модуль.ДобавитьТестовыйНабор(ТекущийРаздел + " (CLI)");
-
- Для Каждого Тест Из ТестыРаздела Цикл
- Набор.ДобавитьСерверныйТест(Тест.Метод, Тест.Синоним);
- КонецЦикла;
-
- КонецЦикла;
-
- Возврат "";
-
-КонецФункции
-
-Функция СформироватьТестыАссертсCLI() Экспорт
-
- МассивТестов = Новый Массив;
-
- Разделы = ПолучитьСоответствиеРазделовТестирования();
- ТаблицаТестов = ПолучитьТаблицуТестов();
-
- Для Каждого Раздел Из Разделы Цикл
-
- ТекущийРаздел = Раздел.Ключ;
-
- Если ТекущийРаздел = "HTTP" Тогда
- Продолжить;
- КонецЕсли;
-
- Отбор = Новый Структура("Раздел", ТекущийРаздел);
- ТестыРаздела = ТаблицаТестов.НайтиСтроки(Отбор);
-
- Для Каждого Тест Из ТестыРаздела Цикл
- МассивТестов.Добавить(Тест.Метод);
- КонецЦикла;
-
- КонецЦикла;
-
- Возврат МассивТестов;
-
-КонецФункции
-
-Функция ПолучитьПараметр(Параметр) Экспорт
-
- Путь = ПутьКФайлуДанных();
- Возврат ПолучитьЗначениеИзФайла(Параметр, Путь);
-
-КонецФункции
-
-Функция ПолучитьДвоичные(Параметр) Экспорт
-
- Путь = ПутьКФайлуДанных();
- Значение = ПолучитьЗначениеИзФайла(Параметр, Путь);
-
- Если ТипЗнч(Значение) = Тип("Строка") Тогда
-
- Значение = ПолучитьФайлПути(Значение);
-
- КонецЕсли;
-
- Возврат Значение;
-
-КонецФункции
-
-Функция ПолучитьФайлПути(Знач Путь) Экспорт
-
- Если СтрНайти(Путь, "http") > 0 Или СтрНайти(Путь, "www") > 0 Тогда
-
- ИВФ = ПолучитьИмяВременногоФайла();
- КопироватьФайл(Путь, ИВФ);
- Путь = ИВФ;
- Двоичные = Новый ДвоичныеДанные(Путь);
-
- OPI_Инструменты.УдалитьФайлВПопытке(ИВФ, "Не удалось удалить временный файл после теста!");
-
- Иначе
-
- Двоичные = Новый ДвоичныеДанные(Путь);
-
- КонецЕсли;
-
- Возврат Двоичные;
-
-КонецФункции
-
-Функция ПолучитьLocalhost() Экспорт
-
- Если OPI_Инструменты.ЭтоWindows() Тогда
- Результат = "127.0.0.1";
- Иначе
- Результат = "host.docker.internal";
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция ЭтоТестCLI() Экспорт
-
- // !OInt Данные = ПолучитьПеременнуюСреды("OINT_TESTS_CLI");
- Данные = Константы.ЭтоТестыCLI.Получить(); // !OPI
-
- Если Строка(Данные) = "1" Тогда
- Результат = Истина;
- Иначе
- Результат = Ложь;
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Процедура ПараметрВКоллекцию(Параметр, Коллекция) Экспорт
-
- Значение = ПолучитьПараметр(Параметр);
- Коллекция.Вставить(Параметр, Значение);
-
-КонецПроцедуры
-
-Процедура ДвоичныеВКоллекцию(Параметр, Коллекция) Экспорт
-
- Значение = ПолучитьДвоичные(Параметр);
- Коллекция.Вставить(Параметр, Значение);
-
-КонецПроцедуры
-
-Процедура ЗаписатьПараметр(Параметр, Значение) Экспорт
-
- Путь = ПутьКФайлуДанных();
- ЗаписатьПараметрВФайл(Параметр, Значение, Путь);
-
-КонецПроцедуры
-
-Процедура ОбработатьРезультатТестирования(Знач Результат, Знач Метод, Знач Библиотека, Знач Вариант = "",
- ДопПараметр1 = Неопределено, ДопПараметр2 = Неопределено, ДопПараметр3 = Неопределено) Экспорт
-
- // BSLLS:UnusedLocalVariable-off
- //
- //@skip-check module-unused-local-variable
- Результат_ = ?(OPI_Инструменты.ЭтоКоллекция(Результат), OPI_Инструменты.КопироватьКоллекцию(Результат), Результат);
-
- // BSLLS:UnusedLocalVariable-on
-
- ЭтоВариант = ЗначениеЗаполнено(Вариант);
- МетодЛога = ?(ЭтоВариант, СтрШаблон("%1 (%2)", Метод, Вариант), Метод);
-
- IDНабора = СоздатьНаборЗапуска(Библиотека);
- IDЭлемента = СоздатьТестовыйЭлемент(IDНабора, Библиотека, Метод, Вариант);
-
- Попытка
-
- МассивПараметров = Новый Массив;
- МассивПараметров.Добавить("Результат_");
- МассивПараметров.Добавить("Вариант");
-
- Если ДопПараметр1 <> Неопределено Тогда
- МассивПараметров.Добавить("ДопПараметр1");
- КонецЕсли;
-
- Если ДопПараметр2 <> Неопределено Тогда
- МассивПараметров.Добавить("ДопПараметр2");
- КонецЕсли;
-
- Если ДопПараметр3 <> Неопределено Тогда
- МассивПараметров.Добавить("ДопПараметр3");
- КонецЕсли;
-
- ШаблонПроверки = "РезультатПроверки = Проверка_%1_%2(%3)";
-
- ВызовПроверки = СтрШаблон(ШаблонПроверки, Библиотека, Метод, СтрСоединить(МассивПараметров, ", "));
- РезультатПроверки = Неопределено;
-
- //@skip-check server-execution-safe-mode
- Выполнить (ВызовПроверки);
-
- Текст = ВывестиЛог(Результат, МетодЛога, Библиотека);
-
- Если Не ЗначениеЗаполнено(Вариант) Тогда
-
- РезультатСтрока = ТипЗнч(РезультатПроверки) = Тип("Строка");
- Перезаписывать = Не ?(РезультатСтрока, РезультатПроверки = "", РезультатПроверки = Неопределено);
-
- Если Перезаписывать Тогда
- ЗаписатьФайлЛога(РезультатПроверки, Метод, Библиотека);
- Иначе
- ЗаписатьФайлЛога(Результат , Метод, Библиотека, Ложь);
- КонецЕсли;
-
- КонецЕсли;
-
- ЗаписатьЛогТеста(IDЭлемента, Текст, "info");
- ЗавершитьТестовыйЭлемент(IDЭлемента, "passed");
-
- Исключение
-
- ООп = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
- Текст = ВывестиЛог(Результат, МетодЛога, Библиотека, ООп);
-
- ЗаписатьЛогТеста(IDЭлемента, Текст, "error");
- ЗавершитьТестовыйЭлемент(IDЭлемента, "failed");
-
- ВызватьИсключение ООп;
-
- КонецПопытки;
-
-КонецПроцедуры
-
-Процедура ВывестиСлужебнуюИнформацию(Знач Текст, Знач Примечание, Знач Библиотека) Экспорт
-
- ШаблонТекста = "
- |--!!!---------%1----------!!!--
- |
- |%2
- |
- |%3
- |
- |---------------------------------";
-
- Сообщить(СтрШаблон(ШаблонТекста, Библиотека, Примечание, Текст));
-
-КонецПроцедуры
-
-#Область ReportPortal
-
-Функция СоздатьЗапускReportPortal(Знач Платформа = "") Экспорт
-
- Токен = ПолучитьПараметр("RPortal_Token");
- Проект = ПолучитьПараметр("RPortal_MainProject");
- URL = ПолучитьПараметр("RPortal_URL");
-
- ЗавершитьЗапуск();
-
- ТекущаяДата = ПолучитьВремяЗапуска();
- СистемнаяИнформация = Новый СистемнаяИнформация;
-
- ОперационнаяСистема = Строка(СистемнаяИнформация.ТипПлатформы);
- ТекущаяДатаСтрока = Формат(ТекущаяДата, "ДФ=yyyy-MM-dd");
- UUID = Строка(Новый УникальныйИдентификатор);
- ВерсияОПИ = OPI_Инструменты.ВерсияОПИ();
-
- Если Не ЗначениеЗаполнено(Платформа) Тогда
- Платформа = ?(OPI_Инструменты.ЭтоOneScript(), "OneScript", "1C:Enterprise");
- КонецЕсли;
-
- ИмяЗапуска = СтрШаблон("%1 | %2 | %3 | %4", ТекущаяДатаСтрока, ВерсияОПИ, Платформа, ОперационнаяСистема);
-
- СтруктураЗапуска = Новый Структура;
-
- СтруктураЗапуска.Вставить("name" , ИмяЗапуска);
- СтруктураЗапуска.Вставить("startTime", ТекущаяДата);
- СтруктураЗапуска.Вставить("uuid" , UUID);
-
- ЗаписатьПараметр("RPortal_MainLaunch", UUID);
-
- Результат = ReportPortal().СоздатьЗапуск(URL, Токен, Проект, СтруктураЗапуска);
- UID = Результат["id"];
-
- СоздатьФайлЗапуска(UID);
-
- Сообщить(OPI_Инструменты.JSONСтрокой(Результат));
-
- Возврат UID;
-
-КонецФункции
-
-Функция СоздатьНаборЗапуска(Знач Наименование) Экспорт
-
- Данные = ПолучитьСуществующийЗапуск();
-
- Если Данные = Неопределено Тогда
- Возврат Неопределено;
- КонецЕсли;
-
- СуществующиеНаборы = Данные["suites"];
- Существующий = СуществующиеНаборы.Получить(Наименование);
-
- Если Существующий <> Неопределено Тогда
- Возврат Существующий;
- КонецЕсли;
-
- Токен = ПолучитьПараметр("RPortal_Token");
- Проект = ПолучитьПараметр("RPortal_MainProject");
- URL = ПолучитьПараметр("RPortal_URL");
-
- ТекущаяДата = ПолучитьВремяЗапуска();
- ПоследнийНабор = Данные["last_suite"];
-
- Если ЗначениеЗаполнено(ПоследнийНабор) Тогда
-
- СтруктураЗавершения = Новый Структура("endTime,launchUuid", ТекущаяДата, ПоследнийНабор);
- ReportPortal().ЗавершитьЭлемент(URL, Токен, Проект, ПоследнийНабор, СтруктураЗавершения);
-
- КонецЕсли;
-
- UUID = Строка(Новый УникальныйИдентификатор);
-
- СтруктураЭлемента = Новый Структура;
- СтруктураЭлемента.Вставить("name" , Наименование);
- СтруктураЭлемента.Вставить("startTime" , ТекущаяДата);
- СтруктураЭлемента.Вставить("type" , "suite");
- СтруктураЭлемента.Вставить("launchUuid", Данные["id"]);
- СтруктураЭлемента.Вставить("uuid" , UUID);
-
- ReportPortal().СоздатьЭлемент(URL, Токен, Проект, СтруктураЭлемента);
-
- СуществующиеНаборы.Вставить(Наименование, UUID);
-
- Данные.Вставить("suites" , СуществующиеНаборы);
- Данные.Вставить("last_suite", UUID);
-
- ЗаписатьФайлЗапуска(Данные);
-
- Возврат UUID;
-
-КонецФункции
-
-Функция СоздатьТестовыйЭлемент(Знач Набор, Знач Библиотека, Знач Метод, Знач Вариант) Экспорт
-
- Данные = ПолучитьСуществующийЗапуск();
-
- Если Данные = Неопределено Тогда
- Возврат Неопределено;
- КонецЕсли;
-
- UUID = Строка(Новый УникальныйИдентификатор);
- ТекущаяДата = ПолучитьВремяЗапуска();
-
- Если ЗначениеЗаполнено(Вариант) Тогда
- Заголовок = СтрШаблон("%1 (%2)", Метод, Вариант);
- Идентификатор = СтрШаблон("%1_%2_%3", Библиотека, Метод, Вариант);
- Иначе
- Заголовок = Метод;
- Идентификатор = СтрШаблон("%1_%2" , Библиотека, Метод);
- КонецЕсли;
-
- Токен = ПолучитьПараметр("RPortal_Token");
- Проект = ПолучитьПараметр("RPortal_MainProject");
- URL = ПолучитьПараметр("RPortal_URL");
-
- СтруктураЭлемента = Новый Структура;
-
- СтруктураЭлемента.Вставить("name" , Заголовок);
- СтруктураЭлемента.Вставить("startTime" , ТекущаяДата);
- СтруктураЭлемента.Вставить("uuid" , UUID);
- СтруктураЭлемента.Вставить("type" , "step");
- СтруктураЭлемента.Вставить("launchUuid", Данные["id"]);
-
- ReportPortal().СоздатьЭлемент(URL, Токен, Проект, СтруктураЭлемента, Набор);
-
- Данные["items"].Вставить(UUID, Идентификатор);
-
- ЗаписатьФайлЗапуска(Данные);
-
- Возврат UUID;
-
-КонецФункции
-
-Процедура ЗавершитьЗапуск() Экспорт
-
- Токен = ПолучитьПараметр("RPortal_Token");
- Проект = ПолучитьПараметр("RPortal_MainProject");
- URL = ПолучитьПараметр("RPortal_URL");
-
- ТекущаяДата = ПолучитьВремяЗапуска();
-
- СуществующийЗапуск = ПолучитьСуществующийЗапуск();
-
- Если ЗначениеЗаполнено(СуществующийЗапуск) Тогда
-
- ПоследнийНабор = СуществующийЗапуск["last_suite"];
-
- Если ЗначениеЗаполнено(ПоследнийНабор) Тогда
-
- СтруктураЗавершения = Новый Структура("endTime,launchUuid", ТекущаяДата, ПоследнийНабор);
- ReportPortal().ЗавершитьЭлемент(URL, Токен, Проект, ПоследнийНабор, СтруктураЗавершения);
-
- КонецЕсли;
-
- ВсеТесты = ПолучитьПолныйСписокТестов();
- ВыполненныеТесты = Новый СписокЗначений;
- ВыполненныеТесты.ЗагрузитьЗначения(ПолучитьСпискоВыполненныхТестов());
-
- Если ВыполненныеТесты.Количество() / ВсеТесты.Количество() > 0.8 Тогда
-
- Для Каждого Тест Из ВсеТесты Цикл
-
- Если ЗначениеЗаполнено(Тест["variant"]) Тогда
- ИмяФункцииТеста = СтрШаблон("%1_%2_%3", Тест["lib"], Тест["name"], Тест["variant"]);
- Иначе
- ИмяФункцииТеста = СтрШаблон("%1_%2" , Тест["lib"], Тест["name"]);
- КонецЕсли;
-
- Если ВыполненныеТесты.НайтиПоЗначению(ИмяФункцииТеста) = Неопределено Тогда
- ЗаписатьПропущенныйТест(Тест["lib"], Тест["name"], Тест["variant"]);
- КонецЕсли;
-
- КонецЦикла;
-
- КонецЕсли;
-
- СтруктураЗавершения = ReportPortal().ПолучитьСтруктуруЗавершенияЗапуска(ТекущаяДата);
- ReportPortal().ЗавершитьЗапуск(URL, Токен, Проект, СуществующийЗапуск["id"], СтруктураЗавершения);
-
- СуществующийЗапуск["ended"] = Истина;
- ЗаписатьФайлЗапуска(СуществующийЗапуск);
-
- КонецЕсли;
-
-КонецПроцедуры
-
-Функция ПолучитьСпискоВыполненныхТестов() Экспорт
-
- Тесты = ПрочитатьФайлЗапуска()["tests"];
- Возврат ?(Тесты = Неопределено, Новый Массив, Тесты);
-
-КонецФункции
-
-Функция ПолучитьПолныйСписокТестов() Экспорт
-
- Язык = OPI_Инструменты.ЯзыкОПИ();
-
- Тесты = СтрШаблон(
- "https://raw.githubusercontent.com/Bayselonarrend/OpenIntegrations/refs/heads/main/service/tests_%1.json", Язык);
-
- OPI_ПреобразованиеТипов.ПолучитьКоллекцию(Тесты);
-
- Если Тесты.Количество() = 1 Или Не OPI_Инструменты.ЭтоКоллекция(Тесты[0], Истина) Тогда
- Возврат Новый Массив;
- Иначе
- Возврат Тесты;
- КонецЕсли;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область Параметризация
-
-Функция ПолучитьВариантыПараметровFTP() Экспорт
-
- МассивВариантов = Новый Массив;
-
- ПараметрыТестаОсновные = Новый Структура;
- ПараметрВКоллекцию("FTP_IP" , ПараметрыТестаОсновные);
- ПараметрВКоллекцию("FTP_Port" , ПараметрыТестаОсновные);
- ПараметрВКоллекцию("FTPS_IP" , ПараметрыТестаОсновные);
- ПараметрВКоллекцию("FTPS_Port" , ПараметрыТестаОсновные);
- ПараметрВКоллекцию("FTP_User" , ПараметрыТестаОсновные);
- ПараметрВКоллекцию("FTP_Password" , ПараметрыТестаОсновные);
- ПараметрВКоллекцию("Proxy_User" , ПараметрыТестаОсновные);
- ПараметрВКоллекцию("Proxy_Password", ПараметрыТестаОсновные);
- ПараметрВКоллекцию("Socks5_IP" , ПараметрыТестаОсновные);
- ПараметрВКоллекцию("Socks5_Port" , ПараметрыТестаОсновные);
- ПараметрВКоллекцию("Proxy_IP" , ПараметрыТестаОсновные);
- ПараметрВКоллекцию("Proxy_Port" , ПараметрыТестаОсновные);
- ПараметрВКоллекцию("Picture" , ПараметрыТестаОсновные);
- ПараметрВКоллекцию("Big" , ПараметрыТестаОсновные);
-
- Локалхост = ПолучитьLocalhost();
-
- Socks5IP = ПараметрыТестаОсновные["Socks5_IP"];
- ПараметрыТестаОсновные["Socks5_IP"] = ?(Socks5IP = "127.0.0.1", Локалхост, Socks5IP);
-
- HttpProxyIP = ПараметрыТестаОсновные["Proxy_IP"];
- ПараметрыТестаОсновные["Proxy_IP"] = ?(HttpProxyIP = "127.0.0.1", Локалхост, HttpProxyIP);
-
- // FTP
- СтруктураПараметров = Новый Структура;
- СтруктураПараметров.Вставить("Postfix", "FTP");
- СтруктураПараметров.Вставить("FTP_IP", Локалхост);
- СтруктураПараметров.Вставить("FTP_Port", ПараметрыТестаОсновные["FTP_Port"]);
- СтруктураПараметров.Вставить("FTP_User", ПараметрыТестаОсновные["FTP_User"]);
- СтруктураПараметров.Вставить("FTP_Password", ПараметрыТестаОсновные["FTP_Password"]);
- СтруктураПараметров.Вставить("Proxy_User", ПараметрыТестаОсновные["Proxy_User"]);
- СтруктураПараметров.Вставить("Proxy_Password", ПараметрыТестаОсновные["Proxy_Password"]);
- СтруктураПараметров.Вставить("Proxy_IP", ПараметрыТестаОсновные["Socks5_IP"]);
- СтруктураПараметров.Вставить("Proxy_Port", ПараметрыТестаОсновные["Socks5_Port"]);
- СтруктураПараметров.Вставить("Proxy_Type", "socks5");
- СтруктураПараметров.Вставить("Proxy", Ложь);
- СтруктураПараметров.Вставить("TLS", Ложь);
- СтруктураПараметров.Вставить("Picture", ПараметрыТестаОсновные["Picture"]);
- СтруктураПараметров.Вставить("Big", ПараметрыТестаОсновные["Big"]);
- МассивВариантов.Добавить(СтруктураПараметров);
-
- // FTPS
- СтруктураПараметров = Новый Структура;
- СтруктураПараметров.Вставить("Postfix", "FTPS");
- СтруктураПараметров.Вставить("FTP_IP", Локалхост);
- СтруктураПараметров.Вставить("FTP_Port", ПараметрыТестаОсновные["FTPS_Port"]);
- СтруктураПараметров.Вставить("FTP_User", ПараметрыТестаОсновные["FTP_User"]);
- СтруктураПараметров.Вставить("FTP_Password", ПараметрыТестаОсновные["FTP_Password"]);
- СтруктураПараметров.Вставить("Proxy_User", ПараметрыТестаОсновные["Proxy_User"]);
- СтруктураПараметров.Вставить("Proxy_Password", ПараметрыТестаОсновные["Proxy_Password"]);
- СтруктураПараметров.Вставить("Proxy_IP", ПараметрыТестаОсновные["Socks5_IP"]);
- СтруктураПараметров.Вставить("Proxy_Port", ПараметрыТестаОсновные["Socks5_Port"]);
- СтруктураПараметров.Вставить("Proxy_Type", "socks5");
- СтруктураПараметров.Вставить("Proxy", Ложь);
- СтруктураПараметров.Вставить("TLS", Истина);
- СтруктураПараметров.Вставить("Picture", ПараметрыТестаОсновные["Picture"]);
- СтруктураПараметров.Вставить("Big", ПараметрыТестаОсновные["Big"]);
- МассивВариантов.Добавить(СтруктураПараметров);
-
- // FTP + Socks5
- СтруктураПараметров = Новый Структура;
- СтруктураПараметров.Вставить("Postfix", "FTP, Socks5");
- СтруктураПараметров.Вставить("FTP_IP", ПараметрыТестаОсновные["FTP_IP"]);
- СтруктураПараметров.Вставить("FTP_Port", ПараметрыТестаОсновные["FTP_Port"]);
- СтруктураПараметров.Вставить("FTP_User", ПараметрыТестаОсновные["FTP_User"]);
- СтруктураПараметров.Вставить("FTP_Password", ПараметрыТестаОсновные["FTP_Password"]);
- СтруктураПараметров.Вставить("Proxy_User", ПараметрыТестаОсновные["Proxy_User"]);
- СтруктураПараметров.Вставить("Proxy_Password", ПараметрыТестаОсновные["Proxy_Password"]);
- СтруктураПараметров.Вставить("Proxy_IP", ПараметрыТестаОсновные["Socks5_IP"]);
- СтруктураПараметров.Вставить("Proxy_Port", ПараметрыТестаОсновные["Socks5_Port"]);
- СтруктураПараметров.Вставить("Proxy_Type", "socks5");
- СтруктураПараметров.Вставить("Proxy", Истина);
- СтруктураПараметров.Вставить("TLS", Ложь);
- СтруктураПараметров.Вставить("Picture", ПараметрыТестаОсновные["Picture"]);
- СтруктураПараметров.Вставить("Big", ПараметрыТестаОсновные["Big"]);
- МассивВариантов.Добавить(СтруктураПараметров);
-
- // FTPS + Socks5
- СтруктураПараметров = Новый Структура;
- СтруктураПараметров.Вставить("Postfix", ?(OPI_Инструменты.ЭтоWindows(), "FTPS, Socks5", ""));
- СтруктураПараметров.Вставить("FTP_IP", ПараметрыТестаОсновные["FTPS_IP"]);
- СтруктураПараметров.Вставить("FTP_Port", ПараметрыТестаОсновные["FTP_Port"]);
- СтруктураПараметров.Вставить("FTP_User", ПараметрыТестаОсновные["FTP_User"]);
- СтруктураПараметров.Вставить("FTP_Password", ПараметрыТестаОсновные["FTP_Password"]);
- СтруктураПараметров.Вставить("Proxy_User", ПараметрыТестаОсновные["Proxy_User"]);
- СтруктураПараметров.Вставить("Proxy_Password", ПараметрыТестаОсновные["Proxy_Password"]);
- СтруктураПараметров.Вставить("Proxy_IP", ПараметрыТестаОсновные["Socks5_IP"]);
- СтруктураПараметров.Вставить("Proxy_Port", ПараметрыТестаОсновные["Socks5_Port"]);
- СтруктураПараметров.Вставить("Proxy_Type", "socks5");
- СтруктураПараметров.Вставить("Proxy", Истина);
- СтруктураПараметров.Вставить("TLS", Истина);
- СтруктураПараметров.Вставить("Picture", ПараметрыТестаОсновные["Picture"]);
- СтруктураПараметров.Вставить("Big", ПараметрыТестаОсновные["Big"]);
- МассивВариантов.Добавить(СтруктураПараметров);
-
- Если OPI_Инструменты.ЭтоWindows() Тогда
-
- // FTP + HTTP
- СтруктураПараметров = Новый Структура;
- СтруктураПараметров.Вставить("Postfix", "FTP, HTTP");
- СтруктураПараметров.Вставить("FTP_IP", ПараметрыТестаОсновные["FTP_IP"]);
- СтруктураПараметров.Вставить("FTP_Port", ПараметрыТестаОсновные["FTP_Port"]);
- СтруктураПараметров.Вставить("FTP_User", ПараметрыТестаОсновные["FTP_User"]);
- СтруктураПараметров.Вставить("FTP_Password", ПараметрыТестаОсновные["FTP_Password"]);
- СтруктураПараметров.Вставить("Proxy_User", ПараметрыТестаОсновные["Proxy_User"]);
- СтруктураПараметров.Вставить("Proxy_Password", ПараметрыТестаОсновные["Proxy_Password"]);
- СтруктураПараметров.Вставить("Proxy_IP", ПараметрыТестаОсновные["Proxy_IP"]);
- СтруктураПараметров.Вставить("Proxy_Port", ПараметрыТестаОсновные["Proxy_Port"]);
- СтруктураПараметров.Вставить("Proxy_Type", "http");
- СтруктураПараметров.Вставить("Proxy", Истина);
- СтруктураПараметров.Вставить("TLS", Ложь);
- СтруктураПараметров.Вставить("Picture", ПараметрыТестаОсновные["Picture"]);
- СтруктураПараметров.Вставить("Big", ПараметрыТестаОсновные["Big"]);
- МассивВариантов.Добавить(СтруктураПараметров);
-
- // FTPS + HTTP
- СтруктураПараметров = Новый Структура;
- СтруктураПараметров.Вставить("Postfix", "");
- СтруктураПараметров.Вставить("FTP_IP", ПараметрыТестаОсновные["FTPS_IP"]);
- СтруктураПараметров.Вставить("FTP_Port", ПараметрыТестаОсновные["FTP_Port"]);
- СтруктураПараметров.Вставить("FTP_User", ПараметрыТестаОсновные["FTP_User"]);
- СтруктураПараметров.Вставить("FTP_Password", ПараметрыТестаОсновные["FTP_Password"]);
- СтруктураПараметров.Вставить("Proxy_User", ПараметрыТестаОсновные["Proxy_User"]);
- СтруктураПараметров.Вставить("Proxy_Password", ПараметрыТестаОсновные["Proxy_Password"]);
- СтруктураПараметров.Вставить("Proxy_IP", ПараметрыТестаОсновные["Proxy_IP"]);
- СтруктураПараметров.Вставить("Proxy_Port", ПараметрыТестаОсновные["Proxy_Port"]);
- СтруктураПараметров.Вставить("Proxy_Type", "http");
- СтруктураПараметров.Вставить("Proxy", Истина);
- СтруктураПараметров.Вставить("TLS", Истина);
- СтруктураПараметров.Вставить("Picture", ПараметрыТестаОсновные["Picture"]);
- СтруктураПараметров.Вставить("Big", ПараметрыТестаОсновные["Big"]);
- МассивВариантов.Добавить(СтруктураПараметров);
-
- КонецЕсли;
-
- Возврат МассивВариантов;
-
-КонецФункции
-
-Функция ПолучитьВариантыПараметровSSH() Экспорт
-
- МассивВариантов = Новый Массив;
-
- ПараметрыТестаОсновные = Новый Структура;
- ПараметрВКоллекцию("Picture" , ПараметрыТестаОсновные);
- ПараметрВКоллекцию("Big" , ПараметрыТестаОсновные);
- ПараметрВКоллекцию("SSH_Host" , ПараметрыТестаОсновные);
- ПараметрВКоллекцию("SSH_Port" , ПараметрыТестаОсновные);
- ПараметрВКоллекцию("SSH_User" , ПараметрыТестаОсновные);
- ПараметрВКоллекцию("SSH_Password" , ПараметрыТестаОсновные);
- ПараметрВКоллекцию("SSH_Key" , ПараметрыТестаОсновные);
- ПараметрВКоллекцию("SSH_Pub" , ПараметрыТестаОсновные);
- ПараметрВКоллекцию("Proxy_User" , ПараметрыТестаОсновные);
- ПараметрВКоллекцию("Proxy_Password", ПараметрыТестаОсновные);
- ПараметрВКоллекцию("Socks5_IP" , ПараметрыТестаОсновные);
- ПараметрВКоллекцию("Socks5_Port" , ПараметрыТестаОсновные);
- ПараметрВКоллекцию("Proxy_IP" , ПараметрыТестаОсновные);
- ПараметрВКоллекцию("Proxy_Port" , ПараметрыТестаОсновные);
- ПараметрВКоллекцию("Access_Token" , ПараметрыТестаОсновные);
-
- Локалхост = ПолучитьLocalhost();
-
- Socks5IP = ПараметрыТестаОсновные["Socks5_IP"];
- ПараметрыТестаОсновные["Socks5_IP"] = ?(Socks5IP = "127.0.0.1", Локалхост, Socks5IP);
-
- HttpProxyIP = ПараметрыТестаОсновные["Proxy_IP"];
- ПараметрыТестаОсновные["Proxy_IP"] = ?(HttpProxyIP = "127.0.0.1", Локалхост, HttpProxyIP);
-
- АдресВСети = ПараметрыТестаОсновные["SSH_Host"];
- ПараметрыТестаОсновные.Вставить("SSH_Host", Локалхост);
-
- ПриватныйКлюч = ПолучитьИмяВременногоФайла();
- Токен = ПараметрыТестаОсновные["Access_Token"];
- OPI_ЗапросыHTTP.НовыйЗапрос().Инициализировать(ПараметрыТестаОсновные["SSH_Key"]).ДобавитьBearerАвторизацию(
- Токен).ОбработатьЗапрос("GET").ВернутьОтветКакДвоичныеДанные().Записать(ПриватныйКлюч);
-
- ПараметрыТестаОсновные.Вставить("SSH_Key", ПриватныйКлюч);
-
- ПараметрыТестаОсновные.Вставить("Proxy" , Ложь);
- ПараметрыТестаОсновные.Вставить("Proxy_Type", "none");
-
- ПараметрыТеста = OPI_Инструменты.КопироватьКоллекцию(ПараметрыТестаОсновные);
- ПараметрыТеста.Вставить("AuthType", "По логину и паролю");
- ПараметрыТеста.Вставить("Postfix" , "По логину и паролю");
- МассивВариантов.Добавить(ПараметрыТеста);
-
- ПараметрыТеста = OPI_Инструменты.КопироватьКоллекцию(ПараметрыТестаОсновные);
- ПараметрыТеста.Вставить("AuthType", "По ключу");
- ПараметрыТеста.Вставить("Postfix" , "По ключу");
- МассивВариантов.Добавить(ПараметрыТеста);
-
- ПараметрыТеста = OPI_Инструменты.КопироватьКоллекцию(ПараметрыТестаОсновные);
- ПараметрыТеста.Вставить("AuthType", "Через SSH-агента");
- ПараметрыТеста.Вставить("Postfix" , "Через SSH-агента");
- //МассивВариантов.Добавить(ПараметрыТеста);
-
- Для Н = 0 По МассивВариантов.ВГраница() Цикл
-
- ПараметрыТестаПрокси = OPI_Инструменты.КопироватьКоллекцию(МассивВариантов[Н]);
-
- Префикс = ?(ПараметрыТестаПрокси["Postfix"] = "По логину и паролю", "", СтрШаблон("%1, SOCKS5",
- ПараметрыТестаПрокси["Postfix"]));
-
- ПараметрыТестаПрокси.Вставить("SSH_Host" , АдресВСети);
- ПараметрыТестаПрокси.Вставить("Proxy" , Истина);
- ПараметрыТестаПрокси.Вставить("Proxy_Type", "socks5");
- ПараметрыТестаПрокси.Вставить("Postfix" , Префикс);
-
- ПараметрыТестаПрокси.Вставить("Proxy_IP" , ПараметрыТестаПрокси["Socks5_IP"]);
- ПараметрыТестаПрокси.Вставить("Proxy_Port", ПараметрыТестаПрокси["Socks5_Port"]);
- МассивВариантов.Добавить(ПараметрыТестаПрокси);
-
- ПараметрыТестаПрокси = OPI_Инструменты.КопироватьКоллекцию(МассивВариантов[Н]);
-
- ПараметрыТестаПрокси.Вставить("SSH_Host" , АдресВСети);
- ПараметрыТестаПрокси.Вставить("Proxy" , Истина);
- ПараметрыТестаПрокси.Вставить("Proxy_Type", "http");
- ПараметрыТестаПрокси.Вставить("Postfix" , СтрШаблон("%1, HTTP", ПараметрыТестаПрокси["Postfix"]));
-
- МассивВариантов.Добавить(ПараметрыТестаПрокси);
-
- КонецЦикла;
-
- Возврат МассивВариантов;
-
-КонецФункции
-
-Функция ПолучитьВариантыПараметровS3() Экспорт
-
- МассивВариантов = Новый Массив;
-
- ПараметрыТестаОсновные = Новый Структура;
- ПараметрВКоллекцию("S3_AccessKey", ПараметрыТестаОсновные);
- ПараметрВКоллекцию("S3_SecretKey", ПараметрыТестаОсновные);
- ПараметрВКоллекцию("S3_URL" , ПараметрыТестаОсновные);
- ПараметрВКоллекцию("Picture" , ПараметрыТестаОсновные);
- ПараметрВКоллекцию("Audio" , ПараметрыТестаОсновные);
-
- ПараметрыТеста = OPI_Инструменты.КопироватьКоллекцию(ПараметрыТестаОсновные);
- ПараметрыТеста.Вставить("Directory", Ложь);
- МассивВариантов.Добавить(ПараметрыТеста);
-
- ПараметрыТеста = OPI_Инструменты.КопироватьКоллекцию(ПараметрыТестаОсновные);
- ПараметрыТеста.Вставить("Directory", Истина);
- МассивВариантов.Добавить(ПараметрыТеста);
-
- Возврат МассивВариантов;
-
-КонецФункции
-
-Функция ПолучитьВариантыПараметровPostgres() Экспорт
-
- МассивВариантов = Новый Массив;
-
- ПараметрыТестаОсновные = Новый Структура;
- ПараметрВКоллекцию("PG_IP" , ПараметрыТестаОсновные);
- ПараметрВКоллекцию("PG_Password", ПараметрыТестаОсновные);
- ПараметрВКоллекцию("Picture" , ПараметрыТестаОсновные);
- ПараметрВКоллекцию("SQL" , ПараметрыТестаОсновные);
-
- ПараметрыТеста = OPI_Инструменты.КопироватьКоллекцию(ПараметрыТестаОсновные);
-
- ПараметрыТеста.Вставить("TLS" , Ложь);
- ПараметрыТеста.Вставить("Port", 5432);
-
- МассивВариантов.Добавить(ПараметрыТеста);
-
- ПараметрыТеста = OPI_Инструменты.КопироватьКоллекцию(ПараметрыТестаОсновные);
-
- ПараметрыТеста.Вставить("TLS" , Истина);
- ПараметрыТеста.Вставить("Port", 5433);
-
- МассивВариантов.Добавить(ПараметрыТеста);
-
- Возврат МассивВариантов;
-
-КонецФункции
-
-Функция ПолучитьВариантыПараметровMySQL() Экспорт
-
- МассивВариантов = Новый Массив;
-
- ПараметрыТестаОсновные = Новый Структура;
- ПараметрВКоллекцию("PG_IP" , ПараметрыТестаОсновные);
- ПараметрВКоллекцию("PG_Password", ПараметрыТестаОсновные);
- ПараметрВКоллекцию("Picture" , ПараметрыТестаОсновные);
- ПараметрВКоллекцию("SQL2" , ПараметрыТестаОсновные);
-
- ПараметрыТеста = OPI_Инструменты.КопироватьКоллекцию(ПараметрыТестаОсновные);
-
- ПараметрыТеста.Вставить("TLS" , Ложь);
- ПараметрыТеста.Вставить("Port", 3306);
-
- МассивВариантов.Добавить(ПараметрыТеста);
-
- ПараметрыТеста = OPI_Инструменты.КопироватьКоллекцию(ПараметрыТестаОсновные);
-
- ПараметрыТеста.Вставить("TLS" , Истина);
- ПараметрыТеста.Вставить("Port", 3307);
-
- МассивВариантов.Добавить(ПараметрыТеста);
-
- Возврат МассивВариантов;
-
-КонецФункции
-
-#КонецОбласти
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-#Область Проверки
-
-Функция Проверка_BuildCheck_ПроверитьСоответствиеИБПоследнейСборке(Знач Результат, Знач Вариант, Знач СуммаПоследний)
-
- //@skip-check use-non-recommended-method
- Сообщить(СтрШаблон("Current IB build: %1", Результат));
- //@skip-check use-non-recommended-method
- Сообщить(СтрШаблон("Last project build: %1", СуммаПоследний));
-
- ОжидаетЧто(Результат).Равно(СуммаПоследний);
-
- Возврат Неопределено;
-
-КонецФункции
-
-Функция Проверка_Telegram_ПолучитьИнформациюБота(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
- ОжидаетЧто(Результат["result"]["username"]).Заполнено();
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Telegram_ПолучитьОбновления(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
- ОжидаетЧто(Результат["result"]).ИмеетТип("Массив");
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Неопределено;
-
-КонецФункции
-
-Функция Проверка_Telegram_УстановитьWebhook(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
- ОжидаетЧто(Результат["result"]).Равно(Истина);
- ОжидаетЧто(Результат["description"]).Равно("Webhook was set");
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Telegram_УдалитьWebhook(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
- ОжидаетЧто(Результат["result"]).Равно(Истина);
- ОжидаетЧто(Результат["description"]).Заполнено();
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Telegram_ОтправитьТекстовоеСообщение(Знач Результат, Знач Вариант, Параметры = "", Текст = "")
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
-
- Если Не ЗначениеЗаполнено(Вариант) Тогда
-
- ИмяПараметра = "Telegram_MessageID";
- ОжидаетЧто(Результат["result"]["text"]).Равно(Текст);
-
- ИначеЕсли Вариант = "Канал" Тогда
-
- ИмяПараметра = "Telegram_ChannelMessageID";
- ОжидаетЧто(Результат["result"]["text"]).Равно(Текст);
-
- Иначе
- ИмяПараметра = "";
- КонецЕсли;
-
- Если ЗначениеЗаполнено(ИмяПараметра) Тогда
-
- IDСообщения = OPI_Инструменты.ЧислоВСтроку(Результат["result"]["message_id"]);
- ЗаписатьПараметр(ИмяПараметра, IDСообщения);
- OPI_Инструменты.ДобавитьПоле(ИмяПараметра, IDСообщения, "Строка", Параметры);
-
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Telegram_СформироватьКлавиатуруПоМассивуКнопок(Знач Результат, Знач Вариант)
-
- ТипРезультат = ТипЗнч(Результат);
-
- ОжидаетЧто(ТипРезультат = Тип("Строка") Или ТипРезультат = Тип("Соответствие")).Равно(Истина);
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Telegram_ОтправитьКартинку(Знач Результат, Знач Вариант, Параметры = "", Текст = "")
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
- ОжидаетЧто(Результат["result"]["caption"]).Равно(Текст);
- ОжидаетЧто(Результат["result"]["photo"]).ИмеетТип("Массив");
-
- Если Не ЗначениеЗаполнено(Вариант) Тогда
-
- IDСообщения = OPI_Инструменты.ЧислоВСтроку(Результат["result"]["message_id"]);
- ЗаписатьПараметр("Telegram_PicMessageID", IDСообщения);
- OPI_Инструменты.ДобавитьПоле("Telegram_PicMessageID", IDСообщения, "Строка", Параметры);
-
- КонецЕсли;
-
- Если Вариант = "Клавиатура коллекция" Тогда
-
- IDФайла = Результат["result"]["photo"][0]["file_id"];
- ЗаписатьПараметр("Telegram_FileID", IDФайла);
- Параметры.Вставить("Telegram_FileID", IDФайла);
-
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Telegram_ОтправитьВидео(Знач Результат, Знач Вариант, Параметры = "", Текст = "")
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
- ОжидаетЧто(Результат["result"]["caption"]).Равно(Текст);
- ОжидаетЧто(Результат["result"]["video"]["mime_type"]).Равно("video/mp4");
-
- Если Вариант = "Двоичные" Тогда
-
- IDФайла = Результат["result"]["video"]["file_id"];
- ЗаписатьПараметр("Telegram_FileID", IDФайла);
- Параметры.Вставить("Telegram_FileID", IDФайла);
-
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Telegram_ОтправитьАудио(Знач Результат, Знач Вариант, Параметры = "", Текст = "")
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
- ОжидаетЧто(Результат["result"]["caption"]).Равно(Текст);
- ОжидаетЧто(Результат["result"]["audio"]["mime_type"]).Равно("audio/mpeg");
-
- Если Вариант = "Двоичные" Тогда
-
- IDФайла = Результат["result"]["audio"]["file_id"];
- ЗаписатьПараметр("Telegram_FileID", IDФайла);
- Параметры.Вставить("Telegram_FileID", IDФайла);
-
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Telegram_ОтправитьДокумент(Знач Результат, Знач Вариант, Параметры = "", Текст = "")
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
- ОжидаетЧто(Результат["result"]["caption"]).Равно(Текст);
- ОжидаетЧто(Результат["result"]["document"]).ИмеетТип("Соответствие").Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Telegram_ОтправитьГифку(Знач Результат, Знач Вариант, Параметры = "", Текст = "")
-
- Result_ = "result";
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
- ОжидаетЧто(Результат[Result_]["caption"]).Равно(Текст);
- ОжидаетЧто(Результат[Result_]["document"]).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат[Result_]["animation"]["mime_type"]).Равно("video/mp4");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Telegram_ОтправитьМедиагруппу(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
- ОжидаетЧто(Результат["result"]).ИмеетТип("Массив");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Telegram_ОтправитьМестоположение(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
- ОжидаетЧто(Результат["result"]["location"]).ИмеетТип("Соответствие").Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Telegram_ОтправитьКонтакт(Знач Результат, Знач Вариант, Имя = "")
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
- ОжидаетЧто(Результат["result"]["contact"]).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["result"]["contact"]["first_name"]).Равно(Имя);
-
- OPI_Инструменты.Пауза(15);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Telegram_ОтправитьОпрос(Знач Результат, Знач Вариант, Вопрос = "")
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
- ОжидаетЧто(Результат["result"]["poll"]).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["result"]["poll"]["question"]).Равно(Вопрос);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Telegram_СкачатьФайл(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(ТипЗнч(Результат) = Тип("Строка") Или ТипЗнч(Результат) = Тип("ДвоичныеДанные")).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Telegram_ПереслатьСообщение(Знач Результат, Знач Вариант, IDСообщения = "")
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
- ОжидаетЧто(Результат["result"]["forward_origin"]["message_id"]).Равно(Число(IDСообщения));
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Telegram_Бан(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["description"]).Равно("Bad Request: can't remove chat owner");
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Неопределено;
-
-КонецФункции
-
-Функция Проверка_Telegram_Разбан(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["description"]).Равно("Bad Request: can't remove chat owner");
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Неопределено;
-
-КонецФункции
-
-Функция Проверка_Telegram_СоздатьСсылкуПриглашение(Знач Результат, Знач Вариант, Заголовок = "", UnixИстечение = "")
-
- Result_ = "result";
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
- ОжидаетЧто(Результат[Result_]["member_limit"]).Равно(200);
- ОжидаетЧто(Результат[Result_]["name"]).Равно(Заголовок);
- ОжидаетЧто(Результат[Result_]["expire_date"]).Равно(Число(UnixИстечение));
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Telegram_ЗакрепитьСообщение(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Telegram_ОткрепитьСообщение(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Telegram_ПолучитьЧислоУчастников(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
- ОжидаетЧто(Результат["result"]).ИмеетТип("Число");
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Telegram_ПолучитьСписокИконокАватаров(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Telegram_СоздатьТемуФорума(Знач Результат, Знач Вариант, Параметры = "", ИмяИлиТекст = "", Иконка = "")
-
- Если Не ЗначениеЗаполнено(Вариант) Тогда
-
- TTID = "Telegram_TopicID";
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
- ОжидаетЧто(Результат["result"]["name"]).Равно(ИмяИлиТекст);
- ОжидаетЧто(Результат["result"]["icon_custom_emoji_id"]).Равно(Иконка);
-
- Тема = Результат["result"]["message_thread_id"];
-
- OPI_Инструменты.ДобавитьПоле(TTID, Тема, "Строка", Параметры);
- ЗаписатьПараметр(TTID, Параметры[TTID]);
-
- Иначе
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
- ОжидаетЧто(Результат["result"]["text"]).Равно(ИмяИлиТекст);
-
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Telegram_ИзменитьТемуФорума(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Telegram_ЗакрытьТемуФорума(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
-
- OPI_Инструменты.Пауза(10);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Telegram_ОткрытьТемуФорума(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
-
- OPI_Инструменты.Пауза(10);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Telegram_УдалитьТемуФорума(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
-
- OPI_Инструменты.Пауза(10);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Telegram_ОчиститьСписокЗакрепленныхСообщенийТемы(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Telegram_СкрытьГлавнуюТемуФорума(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Telegram_ПоказатьГлавнуюТемуФорума(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Telegram_ИзменитьИмяГлавнойТемыФорума(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Telegram_УдалитьСообщение(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Telegram_ЗаменитьТекстСообщения(Знач Результат, Знач Вариант, Текст = "")
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
- ОжидаетЧто(Результат["result"]["text"]).Равно(Текст);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Telegram_ЗаменитьКлавиатуруСообщения(Знач Результат, Знач Вариант, Клавиатура = "")
-
- КлавиатураСообщения = Результат["result"]["reply_markup"];
-
- Клавиатура_ = OPI_Инструменты.JsonВСтруктуру(Клавиатура);
- Клавиатура_.Удалить("rows");
- Клавиатура_ = OPI_Инструменты.JSONСтрокой(Клавиатура_);
-
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
- ОжидаетЧто(СтрДлина(OPI_Инструменты.JSONСтрокой(КлавиатураСообщения))).Равно(СтрДлина(Клавиатура_));
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Telegram_ЗаменитьОписаниеСообщения(Знач Результат, Знач Вариант, Текст = "")
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
- ОжидаетЧто(Результат["result"]["caption"]).Равно(Текст);
- ОжидаетЧто(Результат["result"]["photo"]).ИмеетТип("Массив");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VK_СоздатьСсылкуПолученияТокена(Знач Результат, Знач Вариант)
-
- Если ТипЗнч(Результат) = Тип("ДвоичныеДанные") Тогда
- Результат = ПолучитьСтрокуИзДвоичныхДанных(Результат);
- КонецЕсли;
-
- ОжидаетЧто(Результат).ИмеетТип("Строка");
- ОжидаетЧто(СтрНачинаетсяС(Результат, "https://oauth.vk.com")).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VK_СоздатьПост(Знач Результат, Знач Вариант, Параметры = "")
-
- ИДПоста = Результат["response"]["post_id"];
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(ИДПоста).ИмеетТип("Число").Заполнено();
-
- Если Вариант = "Путь" Тогда
-
- OPI_Инструменты.ДобавитьПоле("VK_PostID", ИДПоста, "Строка", Параметры);
- ЗаписатьПараметр("VK_PostID", Параметры["VK_PostID"]);
-
- КонецЕсли;
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VK_УдалитьПост(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["response"]).ИмеетТип("Число").Равно(1);
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VK_СоздатьСоставнойПост(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["response"]["post_id"]).ИмеетТип("Число").Заполнено();
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VK_СоздатьОпрос(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["response"]["post_id"]).ИмеетТип("Число").Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VK_СоздатьАльбом(Знач Результат, Знач Вариант, Параметры = "", Описание = "")
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["response"]["description"]).Равно(Описание);
-
- ИДАльбома = Результат["response"]["id"];
- Параметры.Вставить("VK_AlbumID", ИДАльбома);
- ЗаписатьПараметр("VK_AlbumID", ИДАльбома);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VK_СохранитьКартинкуВАльбом(Знач Результат, Знач Вариант, Параметры = "", Описание = "", ИДАльбома = "")
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["response"][0]["text"]).Равно(Описание);
- ОжидаетЧто(Результат["response"][0]["album_id"]).Равно(ИДАльбома);
-
- ИДКартинки = Результат["response"][0]["id"];
- Параметры.Вставить("VK_PictureID", ИДКартинки);
- ЗаписатьПараметр("VK_PictureID", ИДКартинки);
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VK_УдалитьКартинку(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["response"]).ИмеетТип("Число").Равно(1);
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VK_УдалитьАльбом(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["response"]).ИмеетТип("Число").Равно(1);
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VK_СоздатьИсторию(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["response"]["count"]).ИмеетТип("Число").Равно(1);
- ОжидаетЧто(Результат["response"]["items"]).ИмеетТип("Массив").Заполнено();
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VK_СоздатьОбсуждение(Знач Результат, Знач Вариант, Параметры = "")
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["response"]).ИмеетТип("Число").Заполнено();
-
- ИДОбсуждения = Результат["response"];
- Параметры.Вставить("VK_ConvID", ИДОбсуждения);
- ЗаписатьПараметр("VK_ConvID", ИДОбсуждения);
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VK_ЗакрытьОбсуждение(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["response"]).ИмеетТип("Число").Равно(1);
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VK_ОткрытьОбсуждение(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["response"]).ИмеетТип("Число").Равно(1);
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VK_НаписатьВОбсуждение(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["response"]).ИмеетТип("Число").Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VK_ПоставитьЛайк(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["response"]["likes"]).ИмеетТип("Число").Заполнено();
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VK_СделатьРепост(Знач Результат, Знач Вариант, Параметры = "")
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["response"]["success"]).ИмеетТип("Число").Равно(1);
- ОжидаетЧто(Результат["response"]["wall_repost_count"]).ИмеетТип("Число").Равно(1);
-
- Параметры.Вставить("Repost", Результат["response"]["post_id"]);
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VK_НаписатьКомментарий(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["response"]["comment_id"]).ИмеетТип("Число").Заполнено();
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VK_ПолучитьСтатистику(Знач Результат, Знач Вариант)
-
- ТипСоответствие = "Соответствие";
-
- ОжидаетЧто(Результат).ИмеетТип(ТипСоответствие).Заполнено();
- ОжидаетЧто(Результат["response"][0]["visitors"]).ИмеетТип(ТипСоответствие).Заполнено();
- ОжидаетЧто(Результат["response"][0]["reach"]).ИмеетТип(ТипСоответствие).Заполнено();
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VK_ПолучитьСтатистикуПостов(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Массив").ИмеетДлину(2);
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VK_СоздатьРекламнуюКампанию(Знач Результат, Знач Вариант, Параметры = "")
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
-
- ИДКампании = Результат["response"][0]["id"];
- ЗаписатьПараметр("VK_AdsCampaignID", ИДКампании);
- Параметры.Вставить("VK_AdsCampaignID", ИДКампании);
-
- Возврат Неопределено;
-
-КонецФункции
-
-Функция Проверка_VK_СоздатьРекламноеОбъявление(Знач Результат, Знач Вариант, Параметры = "")
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
-
- ИДОбъявления = Результат["response"][0]["id"];
- ЗаписатьПараметр("VK_AdsPostID", ИДОбъявления);
- Параметры.Вставить("VK_AdsPostID", ИДОбъявления);
-
- Возврат Неопределено;
-
-КонецФункции
-
-Функция Проверка_VK_ПриостановитьРекламноеОбъявление(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
-
- Возврат Неопределено;
-
-КонецФункции
-
-Функция Проверка_VK_СформироватьКлавиатуру(Знач Результат, Знач Вариант)
-
- ТипРезультат = ТипЗнч(Результат);
-
- ОжидаетЧто(ТипРезультат = Тип("Строка") Или ТипРезультат = Тип("Соответствие")).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VK_НаписатьСообщение(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие");
- ОжидаетЧто(Результат["response"]).ИмеетТип("Число").Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VK_ПолучитьСписокКатегорийТоваров(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VK_СоздатьПодборкуТоваров(Знач Результат, Знач Вариант, Параметры = "")
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие");
- ОжидаетЧто(Результат["response"]["albums_count"]).ИмеетТип("Число").Заполнено();
- ОжидаетЧто(Результат["response"]["market_album_id"]).ИмеетТип("Число").Заполнено();
-
- ИДПодборки = Результат["response"]["market_album_id"];
- ЗаписатьПараметр("VK_MarketAlbumID", ИДПодборки);
- Параметры.Вставить("VK_MarketAlbumID", ИДПодборки);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VK_ИзменитьПодборкуТоваров(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["response"]).ИмеетТип("Число").Равно(1);
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VK_ПолучитьПодборкиПоИД(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["response"]["items"]).ИмеетТип("Массив").Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VK_ДобавитьТовар(Знач Результат, Знач Вариант, Параметры = "")
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие");
- ОжидаетЧто(Результат["response"]["market_item_id"]).ИмеетТип("Число").Заполнено();
-
- ИДТовара = Результат["response"]["market_item_id"];
- ЗаписатьПараметр("VK_MarketItemID", ИДТовара);
- Параметры.Вставить("VK_MarketItemID", ИДТовара);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VK_ИзменитьТовар(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["response"]).ИмеетТип("Число").Равно(1);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VK_ДобавитьТоварВПодборку(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие");
- ОжидаетЧто(Результат["response"]).ИмеетТип("Число").Заполнено();
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VK_УдалитьТоварИзПодборки(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["response"]).ИмеетТип("Число").Равно(1);
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VK_УдалитьТовар(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["response"]).ИмеетТип("Число").Равно(1);
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VK_УдалитьПодборку(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["response"]).ИмеетТип("Число").Равно(1);
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VK_СоздатьСвойствоТовара(Знач Результат, Знач Вариант, Параметры = "")
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие");
- ОжидаетЧто(Результат["response"]["property_id"]).ИмеетТип("Число").Заполнено();
-
- Свойство = Результат["response"]["property_id"];
- Свойство = OPI_Инструменты.ЧислоВСтроку(Свойство);
-
- ЗаписатьПараметр("VK_PropID", Свойство);
- Параметры.Вставить("VK_PropID", Свойство);
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VK_ИзменитьСвойствоТовара(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["response"]).ИмеетТип("Число").Равно(1);
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VK_ДобавитьВариантСвойстваТовара(Знач Результат, Знач Вариант, Параметры = "", Счетчик = 0)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие");
- ОжидаетЧто(Результат["response"]["variant_id"]).ИмеетТип("Число").Заполнено();
-
- ИДВарианта = Результат["response"]["variant_id"];
- ИмяПараметра = "VK_PropVarID" + Строка(Счетчик);
-
- ЗаписатьПараметр(ИмяПараметра, ИДВарианта);
- Параметры.Вставить(ИмяПараметра, ИДВарианта);
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VK_ИзменитьВариантСвойстваТовара(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["response"]).ИмеетТип("Число").Равно(1);
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VK_СоздатьТоварСоСвойством(Знач Результат, Знач Вариант, Параметры = "", Счетчик = 0)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие");
- ОжидаетЧто(Результат["response"]["market_item_id"]).ИмеетТип("Число").Заполнено();
-
- ИДТовара = Результат["response"]["market_item_id"];
- ИмяПоля = "VK_MarketItemID" + Строка(Счетчик);
-
- ЗаписатьПараметр(ИмяПоля, ИДТовара);
- Параметры.Вставить(ИмяПоля, ИДТовара);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VK_ПолучитьТоварыПоИД(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие");
- ОжидаетЧто(Результат["response"]["items"]).ИмеетТип("Массив").ИмеетДлину(2);
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VK_СгруппироватьТовары(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие");
- ОжидаетЧто(Результат["response"]["item_group_id"]).ИмеетТип("Число").Заполнено();
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VK_УдалитьВариантСвойстваТовара(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["response"]).ИмеетТип("Число").Равно(1);
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VK_УдалитьСвойствоТовара(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["response"]).ИмеетТип("Число").Равно(1);
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VK_ПолучитьСписокТоваров(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Массив");
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VK_ПолучитьСписокПодборок(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Массив");
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VK_ПолучитьСписокСвойств(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Массив");
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VK_ПолучитьСписокЗаказов(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Массив");
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VK_ЗагрузитьВидеоНаСервер(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["video_id"]).Заполнено();
- ОжидаетЧто(Результат["video_hash"]).Заполнено();
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VK_ЗагрузитьФотоНаСервер(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["response"][0]["text"]).Равно("");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VK_СократитьСсылку(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Строка").Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VK_ПолучитьСписокРекламныхКатегорий(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие");
- ОжидаетЧто(Результат["response"]["v2"]).ИмеетТип("Массив").Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VK_ПолучитьОписаниеТовара(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_YandexDisk_ПолучитьИнформациюОДиске(Знач Результат, Знач Вариант)
-
- Соответствие_ = "Соответствие";
-
- ОжидаетЧто(Результат).ИмеетТип(Соответствие_).Заполнено();
- ОжидаетЧто(Результат["system_folders"]).ИмеетТип(Соответствие_);
- ОжидаетЧто(Результат["user"]).ИмеетТип(Соответствие_);
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_YandexDisk_СоздатьПапку(Знач Результат, Знач Вариант, Токен = "", Путь = "")
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["type"]).Равно("dir");
- ОжидаетЧто(Результат["path"]).Равно("disk:" + Путь);
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_YandexDisk_ЗагрузитьФайлПоURL(Знач Результат, Знач Вариант, Параметры = "", Путь = "")
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["href"]).Заполнено();
- ОжидаетЧто(Результат["method"]).Заполнено();
-
- ЗаписатьПараметр("YandexDisk_FileByURLPath", Путь);
- Параметры.Вставить("YandexDisk_FileByURLPath", Путь);
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_YandexDisk_ПолучитьОбъект(Знач Результат, Знач Вариант, Путь = "")
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["type"]).Равно("file");
- ОжидаетЧто(Результат["path"]).Равно("disk:" + Путь);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_YandexDisk_УдалитьОбъект(Знач Результат, Знач Вариант)
-
- Если Не нРег(Строка(Результат)) = "null" Тогда
- ОжидаетЧто(ЗначениеЗаполнено(Результат)).Равно(Ложь);
- КонецЕсли;
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_YandexDisk_ЗагрузитьФайл(Знач Результат, Знач Вариант)
-
- Если Не нРег(Строка(Результат)) = "null" Тогда
- ОжидаетЧто(ЗначениеЗаполнено(Результат)).Равно(Ложь);
- КонецЕсли;
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_YandexDisk_СоздатьКопиюОбъекта(Знач Результат, Знач Вариант, Параметры = "", Путь = "")
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["type"]).Равно("file");
- ОжидаетЧто(Результат["path"]).Равно("disk:" + Путь);
-
- ЗаписатьПараметр("YandexDisk_CopyFilePath", Путь);
- Параметры.Вставить("YandexDisk_CopyFilePath", Путь);
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_YandexDisk_ПолучитьСсылкуДляСкачивания(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["method"]).Равно("GET");
- ОжидаетЧто(Результат["href"]).ИмеетТип("Строка").Заполнено();
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_YandexDisk_СкачатьФайл(Знач Результат, Знач Вариант)
-
- МинимальныйРазмер = 1000;
-
- ОжидаетЧто(Результат).ИмеетТип("ДвоичныеДанные");
- ОжидаетЧто(Результат.Размер() > МинимальныйРазмер).Равно(Истина);
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_YandexDisk_ПолучитьСписокФайлов(Знач Результат, Знач Вариант, Количество = 0, Отступ = 0)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["limit"]).Равно(Количество);
- ОжидаетЧто(Результат["offset"]).Равно(Отступ);
- ОжидаетЧто(Результат["items"]).ИмеетТип("Массив");
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_YandexDisk_ПереместитьОбъект(Знач Результат, Знач Вариант, Параметры = "", Путь = "")
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["type"]).Равно("file");
- ОжидаетЧто(Результат["path"]).Равно("disk:" + Путь);
-
- ЗаписатьПараметр("YandexDisk_NewFilePath", Путь);
- Параметры.Вставить("YandexDisk_NewFilePath", Путь);
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_YandexDisk_ПолучитьСписокОпубликованныхОбъектов(Знач Результат, Знач Вариант, Количество = 0,
- Отступ = 0)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["limit"]).Равно(Количество);
- ОжидаетЧто(Результат["offset"]).Равно(Отступ);
- ОжидаетЧто(Результат["items"]).ИмеетТип("Массив");
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_YandexDisk_ОпубликоватьОбъект(Знач Результат, Знач Вариант, Параметры = "", Путь = "")
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["type"]).Равно("file");
- ОжидаетЧто(Результат["path"]).Равно("disk:" + Путь);
- ОжидаетЧто(Результат["public_url"]).ИмеетТип("Строка").Заполнено();
-
- URL = Результат["public_url"];
- ЗаписатьПараметр("YandexDisk_PublicURL", URL);
- Параметры.Вставить("YandexDisk_PublicURL", URL);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_YandexDisk_ПолучитьСсылкуСкачиванияПубличногоОбъекта(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["method"]).Равно("GET");
- ОжидаетЧто(Результат["href"]).ИмеетТип("Строка").Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_YandexDisk_ПолучитьПубличныйОбъект(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["type"]).Равно("file");
- ОжидаетЧто(Результат["path"]).Заполнено();
- ОжидаетЧто(Результат["public_url"]).ИмеетТип("Строка").Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_YandexDisk_СохранитьПубличныйОбъектНаДиск(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["type"]).Равно("file");
- ОжидаетЧто(Результат["path"]).Заполнено();
- ОжидаетЧто(Результат["public_url"]).ИмеетТип("Неопределено");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_YandexDisk_ОтменитьПубликациюОбъекта(Знач Результат, Знач Вариант, Путь = "")
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["type"]).Равно("file");
- ОжидаетЧто(Результат["path"]).Равно("disk:" + Путь);
- ОжидаетЧто(Результат["public_url"]).ИмеетТип("Неопределено");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Viber_УстановитьWebhook(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Viber_ПолучитьИнформациюОКанале(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["status_message"]).Равно("ok");
- ОжидаетЧто(Результат["status"]).Равно(0);
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Viber_ПолучитьДанныеПользователя(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["chat_hostname"]).Заполнено();
- ОжидаетЧто(Результат["status_message"]).Заполнено();
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Viber_ПолучитьОнлайнПользователей(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["status_message"]).Равно("ok");
- ОжидаетЧто(Результат["status"]).Равно(0);
- ОжидаетЧто(Результат["users"]).ИмеетТип("Массив");
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Viber_СформироватьКлавиатуруИзМассиваКнопок(Знач Результат, Знач Вариант)
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Viber_ОтправитьТекстовоеСообщение(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["message_token"]).Заполнено();
- ОжидаетЧто(Результат["status_message"]).Равно("ok");
- ОжидаетЧто(Результат["status"]).Равно(0);
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Viber_ОтправитьКартинку(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["message_token"]).Заполнено();
- ОжидаетЧто(Результат["status_message"]).Равно("ok");
- ОжидаетЧто(Результат["status"]).Равно(0);
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Viber_ОтправитьФайл(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["message_token"]).Заполнено();
- ОжидаетЧто(Результат["status_message"]).Равно("ok");
- ОжидаетЧто(Результат["status"]).Равно(0);
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Viber_ОтправитьКонтакт(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["message_token"]).Заполнено();
- ОжидаетЧто(Результат["status_message"]).Равно("ok");
- ОжидаетЧто(Результат["status"]).Равно(0);
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Viber_ОтправитьЛокацию(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["message_token"]).Заполнено();
- ОжидаетЧто(Результат["status_message"]).Равно("ok");
- ОжидаетЧто(Результат["status"]).Равно(0);
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Viber_ОтправитьСсылку(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["message_token"]).Заполнено();
- ОжидаетЧто(Результат["status_message"]).Равно("ok");
- ОжидаетЧто(Результат["status"]).Равно(0);
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GoogleWorkspace_СформироватьСсылкуПолученияКода(Знач Результат, Знач Вариант)
-
- Если ТипЗнч(Результат) = Тип("ДвоичныеДанные") Тогда
- Результат = ПолучитьСтрокуИзДвоичныхДанных(Результат);
- КонецЕсли;
-
- ОжидаетЧто(Результат).ИмеетТип("Строка");
- ОжидаетЧто(СтрНачинаетсяС(Результат, "https://accounts.google.com/o/oauth2")).Равно(Истина);
-
- ЗаписатьПараметр("Google_Link", Результат);
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GoogleWorkspace_ПолучитьТокенПоКоду(Знач Результат, Знач Вариант)
-
- Если ЗначениеЗаполнено(Результат["access_token"]) И ЗначениеЗаполнено(Результат["refresh_token"]) Тогда
-
- ЗаписатьПараметр("Google_Token" , Результат["access_token"]);
- ЗаписатьПараметр("Google_Refresh", Результат["refresh_token"]);
-
- КонецЕсли;
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Неопределено;
-
-КонецФункции
-
-Функция Проверка_GoogleWorkspace_ОбновитьТокен(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие");
- ОжидаетЧто(Результат["access_token"]).Заполнено();
- ЗаписатьПараметр("Google_Token", Результат["access_token"]);
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GoogleWorkspace_ПолучитьТокенServiceАккаунта(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие");
- ОжидаетЧто(Результат["access_token"]).Заполнено();
- ЗаписатьПараметр("Google_ServiceToken", Результат["access_token"]);
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GoogleCalendar_ПолучитьСписокКалендарей(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Массив");
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GoogleCalendar_СоздатьКалендарь(Знач Результат, Знач Вариант, Параметры = "", Наименование = "")
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие");
- ОжидаетЧто(Результат["summary"]).Равно(Наименование);
- ОжидаетЧто(Результат["id"]).ИмеетТип("Строка").Заполнено();
-
- Календарь = Результат["id"];
- ЗаписатьПараметр("Google_NewCalendarID", Календарь);
- OPI_Инструменты.ДобавитьПоле("Google_NewCalendarID", Календарь, "Строка", Параметры);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GoogleCalendar_ИзменитьМетаданныеКалендаря(Знач Результат, Знач Вариант, Наименование = "",
- Описание = "")
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие");
- ОжидаетЧто(Результат["summary"]).Равно(Наименование);
- ОжидаетЧто(Результат["description"]).Равно(Описание);
- ОжидаетЧто(Результат["id"]).ИмеетТип("Строка").Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GoogleCalendar_ПолучитьМетаданныеКалендаря(Знач Результат, Знач Вариант, Наименование = "",
- Описание = "")
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие");
- ОжидаетЧто(Результат["summary"]).Равно(Наименование);
- ОжидаетЧто(Результат["description"]).Равно(Описание);
- ОжидаетЧто(Результат["id"]).ИмеетТип("Строка").Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GoogleCalendar_ДобавитьКалендарьВСписок(Знач Результат, Знач Вариант, Наименование = "", Описание = "")
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие");
- ОжидаетЧто(Результат["summary"]).Равно(Наименование);
- ОжидаетЧто(Результат["description"]).Равно(Описание);
- ОжидаетЧто(Результат["id"]).ИмеетТип("Строка").Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GoogleCalendar_ИзменитьКалендарьСписка(Знач Результат, Знач Вариант, ОсновнойЦвет = "",
- ДополнительныйЦвет = "")
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие");
- ОжидаетЧто(Результат["foregroundColor"]).Равно(ОсновнойЦвет);
- ОжидаетЧто(Результат["backgroundColor"]).Равно(ДополнительныйЦвет);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GoogleCalendar_ПолучитьКалендарьСписка(Знач Результат, Знач Вариант, ОсновнойЦвет = "",
- ДополнительныйЦвет = "")
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие");
- ОжидаетЧто(Результат["foregroundColor"]).Равно(ОсновнойЦвет);
- ОжидаетЧто(Результат["backgroundColor"]).Равно(ДополнительныйЦвет);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GoogleCalendar_ОчиститьОсновнойКалендарь(Знач Результат, Знач Вариант)
-
- Если Не нРег(Строка(Результат)) = "null" Тогда
- ОжидаетЧто(ЗначениеЗаполнено(Результат)).Равно(Ложь);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GoogleCalendar_УдалитьКалендарьИзСписка(Знач Результат, Знач Вариант)
-
- Если Не нРег(Строка(Результат)) = "null" Тогда
- ОжидаетЧто(ЗначениеЗаполнено(Результат)).Равно(Ложь);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GoogleCalendar_УдалитьКалендарь(Знач Результат, Знач Вариант)
-
- Если Не нРег(Строка(Результат)) = "null" Тогда
- ОжидаетЧто(ЗначениеЗаполнено(Результат)).Равно(Ложь);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GoogleCalendar_СоздатьСобытие(Знач Результат, Знач Вариант, Параметры = "", Наименование = "",
- Описание = "")
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие");
- ОжидаетЧто(Результат["summary"]).Равно(Наименование);
- ОжидаетЧто(Результат["description"]).Равно(Описание);
- ОжидаетЧто(Результат["id"]).ИмеетТип("Строка").Заполнено();
-
- Событие = Результат["id"];
- ЗаписатьПараметр("Google_EventID", Событие);
- OPI_Инструменты.ДобавитьПоле("Google_EventID", Событие, "Строка", Параметры);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GoogleCalendar_ИзменитьСобытие(Знач Результат, Знач Вариант, Наименование = "", Описание = "")
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие");
- ОжидаетЧто(Результат["summary"]).Равно(Наименование);
- ОжидаетЧто(Результат["description"]).Равно(Описание);
- ОжидаетЧто(Результат["id"]).ИмеетТип("Строка").Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GoogleCalendar_ПолучитьСобытие(Знач Результат, Знач Вариант, Наименование = "", Описание = "")
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие");
- ОжидаетЧто(Результат["summary"]).Равно(Наименование);
- ОжидаетЧто(Результат["description"]).Равно(Описание);
- ОжидаетЧто(Результат["id"]).ИмеетТип("Строка").Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GoogleCalendar_ПереместитьСобытие(Знач Результат, Знач Вариант, Наименование = "", Описание = "")
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие");
- ОжидаетЧто(Результат["summary"]).Равно(Наименование);
- ОжидаетЧто(Результат["description"]).Равно(Описание);
- ОжидаетЧто(Результат["id"]).ИмеетТип("Строка").Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GoogleCalendar_УдалитьСобытие(Знач Результат, Знач Вариант)
-
- Если Не нРег(Строка(Результат)) = "null" Тогда
- ОжидаетЧто(ЗначениеЗаполнено(Результат)).Равно(Ложь);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GoogleCalendar_ПолучитьСписокСобытий(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Массив");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GoogleCalendar_ПолучитьОписаниеСобытия(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GoogleDrive_ПолучитьСписокКаталогов(Знач Результат, Знач Вариант, Параметры = "")
-
- Результат = Результат[0];
-
- ОжидаетЧто(Результат["mimeType"]).Равно("application/vnd.google-apps.folder");
- ОжидаетЧто(Результат["name"]).Заполнено();
-
- Идентификатор = Результат["id"];
- ЗаписатьПараметр("GD_Catalog", Идентификатор);
- OPI_Инструменты.ДобавитьПоле("GD_Catalog", Идентификатор, "Строка", Параметры);
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GoogleDrive_ПолучитьИнформациюОбОбъекте(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["mimeType"]).Равно("application/vnd.google-apps.folder");
- ОжидаетЧто(Результат["name"]).Заполнено();
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GoogleDrive_ЗагрузитьФайл(Знач Результат, Знач Вариант, Параметры = "", Описание = "")
-
- ОжидаетЧто(Результат["mimeType"]).Равно(Описание["MIME"]);
- ОжидаетЧто(Результат["name"]).Равно(Описание["Имя"]);
-
- Идентификатор = Результат["id"];
-
- Если Не ЗначениеЗаполнено(Вариант) Тогда
-
- ЗаписатьПараметр("GD_File", Идентификатор);
- OPI_Инструменты.ДобавитьПоле("GD_File", Идентификатор, "Строка", Параметры);
-
- Иначе
-
- МассивУдаляемых = Параметры["МассивУдаляемых"];
- МассивУдаляемых.Добавить(Идентификатор);
- Параметры.Вставить("МассивУдаляемых", МассивУдаляемых);
-
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GoogleDrive_СкопироватьОбъект(Знач Результат, Знач Вариант, Параметры = "", НовоеИмя = "")
-
- Описание = Новый Структура("Имя,MIME", НовоеИмя, "image/jpeg");
-
- ОжидаетЧто(Результат["mimeType"]).Равно(Описание["MIME"]);
- ОжидаетЧто(Результат["name"]).Равно(Описание["Имя"]);
-
- Идентификатор = Результат["id"];
-
- МассивУдаляемых = Параметры["МассивУдаляемых"];
- МассивУдаляемых.Добавить(Идентификатор);
- Параметры.Вставить("МассивУдаляемых", МассивУдаляемых);
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GoogleDrive_СкачатьФайл(Знач Результат, Знач Вариант, Параметры = "")
-
- Размер = OPI_ЗапросыHTTP.Get(Параметры["Picture"]).Размер();
-
- ОжидаетЧто(Результат).ИмеетТип("ДвоичныеДанные");
- ОжидаетЧто(Результат.Размер() >= Размер).Равно(Истина);
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GoogleDrive_ОбновитьФайл(Знач Результат, Знач Вариант, НовоеИмя = "")
-
- Описание = Новый Структура("Имя,MIME", НовоеИмя, "image/jpeg");
-
- ОжидаетЧто(Результат["mimeType"]).Равно(Описание["MIME"]);
- ОжидаетЧто(Результат["name"]).Равно(Описание["Имя"]);
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GoogleDrive_ПолучитьСписокФайлов(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Массив");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GoogleDrive_УдалитьОбъект(Знач Результат, Знач Вариант)
-
- Если Не нРег(Строка(Результат)) = "null" Тогда
- ОжидаетЧто(ЗначениеЗаполнено(Результат)).Равно(Ложь);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GoogleDrive_ПолучитьОписаниеФайла(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GoogleDrive_СоздатьКомментарий(Знач Результат, Знач Вариант, Параметры = "", Комментарий = "")
-
- ОжидаетЧто(Результат["content"]).Равно(Комментарий);
- ОжидаетЧто(Результат["kind"]).Равно("drive#comment");
-
- Идентификатор = Результат["id"];
-
- ЗаписатьПараметр("GD_Comment", Идентификатор);
- OPI_Инструменты.ДобавитьПоле("GD_Comment", Идентификатор, "Строка", Параметры);
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GoogleDrive_ПолучитьКомментарий(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["content"]).Равно("Текст комментария");
- ОжидаетЧто(Результат["kind"]).Равно("drive#comment");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GoogleDrive_ПолучитьСписокКомментариев(Знач Результат, Знач Вариант)
-
- Комментарии = Результат["comments"];
- ОбъектКомментарий = Комментарии[Комментарии.ВГраница()];
-
- ОжидаетЧто(ОбъектКомментарий["content"]).Равно("Текст комментария");
- ОжидаетЧто(ОбъектКомментарий["kind"]).Равно("drive#comment");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GoogleDrive_УдалитьКомментарий(Знач Результат, Знач Вариант)
-
- Если Не нРег(Строка(Результат)) = "null" Тогда
- ОжидаетЧто(ЗначениеЗаполнено(Результат)).Равно(Ложь);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GoogleDrive_СоздатьПапку(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["mimeType"]).Равно("application/vnd.google-apps.folder");
- ОжидаетЧто(Результат["name"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GoogleSheets_СоздатьКнигу(Знач Результат, Знач Вариант, Параметры = "", Наименование = "",
- МассивЛистов = "")
-
- ОжидаетЧто(Результат["properties"]["title"]).Равно(Наименование);
-
- Если ЗначениеЗаполнено(МассивЛистов) Тогда
-
- Для Н = 0 По МассивЛистов.ВГраница() Цикл
-
- ИмяЛиста = Результат["sheets"][Н]["properties"]["title"];
- ОжидаетЧто(ИмяЛиста).Равно(МассивЛистов[Н]);
-
- КонецЦикла;
-
- КонецЕсли;
-
- Книга = Результат["spreadsheetId"];
-
- Если Не ЗначениеЗаполнено(Вариант) Тогда
-
- Лист = Результат["sheets"][0]["properties"]["sheetId"];
- Лист = OPI_Инструменты.ЧислоВСтроку(Лист);
-
- ЗаписатьПараметр("GS_Spreadsheet", Книга);
- ЗаписатьПараметр("GS_Sheet" , Лист);
-
- OPI_Инструменты.ДобавитьПоле("GS_Spreadsheet", Книга, "Строка", Параметры);
- OPI_Инструменты.ДобавитьПоле("GS_Sheet" , Лист , "Строка", Параметры);
-
- Иначе
-
- ЗаписатьПараметр("GS_Spreadsheet2", Книга);
- OPI_Инструменты.ДобавитьПоле("GS_Spreadsheet2", Книга, "Строка", Параметры);
-
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GoogleSheets_ПолучитьКнигу(Знач Результат, Знач Вариант, Токен = "")
-
- Наименование = "Тестовая таблица";
-
- МассивЛистов = Новый Массив;
- МассивЛистов.Добавить("Лист1");
- МассивЛистов.Добавить("Лист2");
-
- ОжидаетЧто(Результат["properties"]["title"]).Равно(Наименование);
-
- Для Н = 0 По МассивЛистов.ВГраница() Цикл
-
- ИмяЛиста = Результат["sheets"][Н]["properties"]["title"];
- ОжидаетЧто(ИмяЛиста).Равно(МассивЛистов[Н]);
-
- КонецЦикла;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GoogleSheets_КопироватьЛист(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["title"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GoogleSheets_ДобавитьЛист(Знач Результат, Знач Вариант)
-
- НовыйЛист = Результат["replies"][0]["addSheet"]["properties"];
- ОжидаетЧто(НовыйЛист["title"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GoogleSheets_УдалитьЛист(Знач Результат, Знач Вариант, Книга = "")
-
- ОжидаетЧто(Результат["spreadsheetId"]).Равно(Книга);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GoogleSheets_ИзменитьНаименованиеКниги(Знач Результат, Знач Вариант, Книга = "")
-
- ОжидаетЧто(Результат["spreadsheetId"]).Равно(Книга);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GoogleSheets_ПолучитьТаблицу(Знач Результат, Знач Вариант)
-
- Наименование = "Тестовая таблица (изм.)";
- ОжидаетЧто(Результат["properties"]["title"]).Равно(Наименование);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GoogleSheets_УстановитьЗначенияЯчеек(Знач Результат, Знач Вариант, Количество = 0)
-
- ОжидаетЧто(Результат["totalUpdatedCells"]).Равно(Количество);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GoogleSheets_ПолучитьЗначенияЯчеек(Знач Результат, Знач Вариант, КнигаИлиКоличество = 0)
-
- Если Вариант = "Все" Тогда
- ОжидаетЧто(Результат["spreadsheetId"]).Равно(КнигаИлиКоличество);
- Иначе
- ОжидаетЧто(Результат["valueRanges"].Количество()).Равно(КнигаИлиКоличество);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GoogleSheets_ОчиститьЯчейки(Знач Результат, Знач Вариант, Количество = 0)
-
- ОжидаетЧто(Результат["clearedRanges"].Количество()).Равно(Количество);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Slack_ПолучитьИнформациюОБоте(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
- ОжидаетЧто(Результат["bot_id"]).Заполнено();
- ОжидаетЧто(Результат["user_id"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Slack_ПолучитьСписокПользователей(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
- ОжидаетЧто(Результат["members"]).ИмеетТип("Массив");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Slack_ПолучитьСписокРабочихОбластей(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
- ОжидаетЧто(Результат["teams"]).ИмеетТип("Массив");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Slack_ОтправитьСообщение(Знач Результат, Знач Вариант, Параметры = "", Текст = "", Канал = "")
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
- ОжидаетЧто(Результат["channel"]).Равно(Канал);
- ОжидаетЧто(Результат["message"]["text"]).Равно(Текст);
-
- Если Не ЗначениеЗаполнено(Вариант) Тогда
-
- Отметка = Результат["ts"];
- ЗаписатьПараметр("Slack_MessageTS", Отметка);
- OPI_Инструменты.ДобавитьПоле("Slack_MessageTS", Отметка, "Строка", Параметры);
-
- КонецЕсли;
-
- Если Не Вариант = "Отложенное" Тогда
-
- ОжидаетЧто(Результат["ts"]).Заполнено();
-
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Slack_СформироватьБлокКартинку(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Slack_ИзменитьСообщение(Знач Результат, Знач Вариант, Текст = "", Канал = "")
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
- ОжидаетЧто(Результат["channel"]).Равно(Канал);
- ОжидаетЧто(Результат["ts"]).Заполнено();
- ОжидаетЧто(Результат["message"]["text"]).Равно(Текст);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Slack_ПолучитьСписокОтветовНаСообщение(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["messages"]).ИмеетТип("Массив");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Slack_ПолучитьСсылкуНаСообщение(Знач Результат, Знач Вариант, Канал = "")
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
- ОжидаетЧто(Результат["channel"]).Равно(Канал);
- ОжидаетЧто(Результат["permalink"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Slack_УдалитьСообщение(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Slack_ОтправитьЭфемерноеСообщение(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
- ОжидаетЧто(Результат["message_ts"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Slack_ПолучитьСписокОтложенныхСообщений(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
- ОжидаетЧто(Результат["scheduled_messages"]).ИмеетТип("Массив");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Slack_СоздатьКанал(Знач Результат, Знач Вариант, Параметры = "", Имя = "")
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
-
- Данные = Результат["channel"];
- ОжидаетЧто(Данные["name"]).Равно(Имя);
-
- Канал = Результат["channel"]["id"];
- ЗаписатьПараметр("Slack_NewChannel", Канал);
- OPI_Инструменты.ДобавитьПоле("Slack_NewChannel", Канал, "Строка", Параметры);
-
- ЗаписатьПараметр("Slack_NewChannelName", Имя);
- OPI_Инструменты.ДобавитьПоле("Slack_NewChannelName", Имя, "Строка", Параметры);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Slack_УстановитьТемуКанала(Знач Результат, Знач Вариант, Тема = "")
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
-
- Данные = Результат["channel"];
- ОжидаетЧто(Данные["topic"]["value"]).Равно(Тема);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Slack_УстановитьЦельКанала(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Slack_ПолучитьКанал(Знач Результат, Знач Вариант, Имя = "")
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
-
- Данные = Результат["channel"];
- ОжидаетЧто(Данные["name"]).Равно(Имя);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Slack_ПригласитьПользователейВКанал(Знач Результат, Знач Вариант, Имя = "")
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
-
- Данные = Результат["channel"];
- ОжидаетЧто(Данные["name"]).Равно(Имя);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Slack_ВыгнатьПользователяИзКанала(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Slack_ПолучитьИсториюКанала(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
- ОжидаетЧто(Результат["messages"]).ИмеетТип("Массив");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Slack_ПолучитьСписокПользователейКанала(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
- ОжидаетЧто(Результат["members"]).ИмеетТип("Массив");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Slack_ПокинутьКанал(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Slack_ВступитьВКанал(Знач Результат, Знач Вариант, Имя = "")
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
-
- Данные = Результат["channel"];
- ОжидаетЧто(Данные["name"]).Равно(Имя);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Slack_ПереименоватьКанал(Знач Результат, Знач Вариант, Имя = "")
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
-
- Данные = Результат["channel"];
- ОжидаетЧто(Данные["name"]).Равно(Имя);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Slack_АрхивироватьКанал(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Slack_ПолучитьСписокКаналов(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
- ОжидаетЧто(Результат["channels"]).ИмеетТип("Массив");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Slack_ОткрытьДиалог(Знач Результат, Знач Вариант, Параметры = "")
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
-
- Если Не ЗначениеЗаполнено(Вариант) Тогда
-
- Диалог = Результат["channel"]["id"];
-
- ОжидаетЧто(Результат["channel"]).ИмеетТип("Соответствие");
- ОжидаетЧто(Диалог).Заполнено();
-
- ЗаписатьПараметр("Slack_Dialog", Диалог);
- OPI_Инструменты.ДобавитьПоле("Slack_Dialog", Диалог, "Строка", Параметры);
-
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Slack_ЗакрытьДиалог(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Slack_ПолучитьСписокФайлов(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
- ОжидаетЧто(Результат["files"]).ИмеетТип("Массив");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Slack_ЗагрузитьФайл(Знач Результат, Знач Вариант, Параметры = "", ИмяФайла = "")
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
-
- Если ЗначениеЗаполнено(Результат["files"]) Тогда
- ЗагруженныйФайл = Результат["files"][0];
- Иначе
- ЗагруженныйФайл = Результат["file"];
- КонецЕсли;
-
- ОжидаетЧто(ЗагруженныйФайл["name"]).Равно(ИмяФайла);
-
- Если Не ЗначениеЗаполнено(Вариант) Тогда
-
- ЗагруженныйФайл = Результат["files"][0]["id"];
- ЗаписатьПараметр("Slack_FileID", ЗагруженныйФайл);
- OPI_Инструменты.ДобавитьПоле("Slack_FileID", ЗагруженныйФайл, "Строка", Параметры);
-
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Slack_СделатьФайлПубличным(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
-
- Возврат Неопределено;
-
-КонецФункции
-
-Функция Проверка_Slack_СделатьФайлПриватным(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
-
- Возврат Неопределено;
-
-КонецФункции
-
-Функция Проверка_Slack_ПолучитьДанныеФайла(Знач Результат, Знач Вариант, ИмяФайла = "")
-
- Если ЗначениеЗаполнено(Результат["files"]) Тогда
- ЗагруженныйФайл = Результат["files"][0];
- Иначе
- ЗагруженныйФайл = Результат["file"];
- КонецЕсли;
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
- ОжидаетЧто(ЗагруженныйФайл["name"]).Равно(ИмяФайла);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Slack_УдалитьФайл(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Slack_ПолучитьСписокВнешнихФайлов(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
- ОжидаетЧто(Результат["files"]).ИмеетТип("Массив");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Slack_ДобавитьВнешнийФайл(Знач Результат, Знач Вариант, Параметры = "", Заголовок = "")
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
-
- ЗагруженныйФайл = Результат["file"];
- ОжидаетЧто(ЗагруженныйФайл["title"]).Равно(Заголовок);
-
- ЗагруженныйФайл = Результат["file"]["id"];
- ЗаписатьПараметр("Slack_ExtFileID", ЗагруженныйФайл);
- OPI_Инструменты.ДобавитьПоле("Slack_ExtFileID", ЗагруженныйФайл, "Строка", Параметры);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Slack_ПолучитьВнешнийФайл(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
-
- ЗагруженныйФайл = Результат["file"];
- ОжидаетЧто(ЗагруженныйФайл["title"]).Равно("Новый файл");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Slack_ОтправитьВнешнийФайл(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Slack_УдалитьВнешнийФайл(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Airtable_СоздатьБазу(Знач Результат, Знач Вариант, Параметры = "", ИмяТаблицы = "")
-
- ОжидаетЧто(Результат["id"]).Заполнено();
- ОжидаетЧто(Результат["tables"][0]["name"]).Равно(ИмяТаблицы);
-
- База = Результат["id"];
- ЗаписатьПараметр("Airtable_Base", База);
- OPI_Инструменты.ДобавитьПоле("Airtable_Base", База, "Строка", Параметры);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Airtable_ПолучитьТаблицыБазы(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["tables"]).Заполнено();
- ОжидаетЧто(Результат["tables"]).ИмеетТип("Массив");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Airtable_ПолучитьСписокБаз(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["bases"]).Заполнено();
- ОжидаетЧто(Результат["bases"]).ИмеетТип("Массив");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Airtable_ПолучитьПолеНомера(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(OPI_Инструменты.ЭтоКоллекция(Результат, Истина)).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Airtable_ПолучитьПолеСтроковое(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(OPI_Инструменты.ЭтоКоллекция(Результат, Истина)).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Airtable_ПолучитьПолеВложения(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(OPI_Инструменты.ЭтоКоллекция(Результат, Истина)).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Airtable_ПолучитьПолеФлажка(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(OPI_Инструменты.ЭтоКоллекция(Результат, Истина)).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Airtable_ПолучитьПолеДаты(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(OPI_Инструменты.ЭтоКоллекция(Результат, Истина)).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Airtable_ПолучитьПолеТелефона(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(OPI_Инструменты.ЭтоКоллекция(Результат, Истина)).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Airtable_ПолучитьПолеПочты(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(OPI_Инструменты.ЭтоКоллекция(Результат, Истина)).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Airtable_ПолучитьПолеСсылки(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(OPI_Инструменты.ЭтоКоллекция(Результат, Истина)).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Airtable_СоздатьТаблицу(Знач Результат, Знач Вариант, Параметры = "", Наименование = "", Описание = "")
-
- ОжидаетЧто(Результат["name"]).Равно(Наименование);
- ОжидаетЧто(Результат["description"]).Равно(Описание);
-
- Таблица = Результат["id"];
- ЗаписатьПараметр("Airtable_Table", Таблица);
- OPI_Инструменты.ДобавитьПоле("Airtable_Table", Таблица, "Строка", Параметры);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Airtable_ИзменитьТаблицу(Знач Результат, Знач Вариант, Наименование = "", Описание = "")
-
- ОжидаетЧто(Результат["name"]).Равно(Наименование);
- ОжидаетЧто(Результат["description"]).Равно(Описание);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Airtable_СоздатьПоле(Знач Результат, Знач Вариант, Параметры = "", Имя = "")
-
- ОжидаетЧто(Результат["name"]).Равно(Имя);
-
- Поле = Результат["id"];
- ЗаписатьПараметр("Airtable_Field", Поле);
- OPI_Инструменты.ДобавитьПоле("Airtable_Field", Поле, "Строка", Параметры);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Airtable_ИзменитьПоле(Знач Результат, Знач Вариант, Наименование = "", Описание = "")
-
- ОжидаетЧто(Результат["name"]).Равно(Наименование);
- ОжидаетЧто(Результат["description"]).Равно(Описание);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Airtable_СоздатьЗаписи(Знач Результат, Знач Вариант, Параметры = "", Числовой = "", Строчный = "")
-
- Если Не ЗначениеЗаполнено(Вариант) Тогда
-
- ОжидаетЧто(Результат["records"]).ИмеетТип("Массив");
- ОжидаетЧто(Результат["records"]).Заполнено();
-
- Иначе
-
- ОдиночнаяЗапись = Результат["id"];
- ОжидаетЧто(ОдиночнаяЗапись).Заполнено();
- ОжидаетЧто(Результат["createdTime"]).Заполнено();
- ОжидаетЧто(Результат["fields"]["Номер"]).Равно(Числовой);
- ОжидаетЧто(СокрЛП(Результат["fields"]["Строковое"])).Равно(Строчный);
-
- Запись = Результат["id"];
- ЗаписатьПараметр("Airtable_Record", Запись);
- OPI_Инструменты.ДобавитьПоле("Airtable_Record", Запись, "Строка", Параметры);
-
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Airtable_ПолучитьЗапись(Знач Результат, Знач Вариант, Запись = "")
-
- ОжидаетЧто(Результат["id"]).Равно(Запись);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Airtable_СоздатьКомментарий(Знач Результат, Знач Вариант, Параметры = "", Текст = "")
-
- ОжидаетЧто(Результат["text"]).Равно(Текст);
-
- Комментарий = Результат["id"];
- ЗаписатьПараметр("Airtable_Comment", Комментарий);
- OPI_Инструменты.ДобавитьПоле("Airtable_Comment", Комментарий, "Строка", Параметры);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Airtable_ИзменитьКомментарий(Знач Результат, Знач Вариант, Текст = "")
-
- ОжидаетЧто(Результат["text"]).Равно(Текст);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Airtable_ПолучитьКомментарии(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["comments"]).ИмеетТип("Массив");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Airtable_УдалитьКомментарий(Знач Результат, Знач Вариант, Комментарий = "")
-
- ОжидаетЧто(Результат["deleted"]).Равно(Истина);
- ОжидаетЧто(Результат["id"]).Равно(Комментарий);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Airtable_ПолучитьСписокЗаписей(Знач Результат, Знач Вариант, Комментарий = "")
-
- ОжидаетЧто(Результат["records"]).ИмеетТип("Массив");
- ОжидаетЧто(Результат["records"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Airtable_УдалитьЗаписи(Знач Результат, Знач Вариант, Комментарий = "")
-
- ОжидаетЧто(Результат["records"]).ИмеетТип("Массив");
- ОжидаетЧто(Результат["records"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Twitter_ПолучитьТокен(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
-
- Возврат Неопределено;
-
-КонецФункции
-
-Функция Проверка_Twitter_ПолучитьСсылкуАвторизации(Знач Результат, Знач Вариант)
-
- Если ТипЗнч(Результат) = Тип("ДвоичныеДанные") Тогда
- Результат = ПолучитьСтрокуИзДвоичныхДанных(Результат);
- КонецЕсли;
-
- ОжидаетЧто(Результат).ИмеетТип("Строка");
- ОжидаетЧто(СтрНачинаетсяС(Результат, "https://twitter.com/i/oauth2/")).Равно(Истина);
-
- ЗаписатьПараметр("Twitter_URL", Результат);
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Twitter_ОбновитьТокен(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["access_token"]).Заполнено();
- ОжидаетЧто(Результат["refresh_token"]).Заполнено();
-
- Рефреш = Результат["refresh_token"];
- Токен = Результат["access_token"];
-
- Если ЗначениеЗаполнено(Рефреш) И Не Рефреш = "null" Тогда
- ЗаписатьПараметр("Twitter_Refresh", Рефреш);
- КонецЕсли;
-
- Если ЗначениеЗаполнено(Токен) И Не Токен = "null" Тогда
- ЗаписатьПараметр("Twitter_Token", Токен);
- КонецЕсли;
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Неопределено;
-
-КонецФункции
-
-Функция Проверка_Twitter_СоздатьТекстовыйТвит(Знач Результат, Знач Вариант, Текст = "")
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
-
- Данные = Результат["data"];
-
- Если Данные = Неопределено Тогда
-
- Статус = Результат["status"];
- ОжидаетЧто(Статус).Равно(429);
-
- Иначе
-
- ТекстОтвета = Результат["data"]["text"];
- ТекстОтвета = Лев(ТекстОтвета, СтрДлина(Текст));
-
- ОжидаетЧто(ТекстОтвета).Равно(Текст);
-
- КонецЕсли;
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Twitter_СоздатьТвитКартинки(Знач Результат, Знач Вариант, Текст = "")
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
-
- Данные = Результат["data"];
-
- Если Данные = Неопределено Тогда
-
- Статус = Результат["status"];
- ОжидаетЧто(Статус).Равно(429);
-
- Иначе
-
- ТекстОтвета = Результат["data"]["text"];
- ТекстОтвета = Лев(ТекстОтвета, СтрДлина(Текст));
-
- ОжидаетЧто(ТекстОтвета).Равно(Текст);
-
- КонецЕсли;
-
- OPI_Инструменты.Пауза(10);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Twitter_СоздатьТвитВидео(Знач Результат, Знач Вариант, Текст = "")
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
-
- Данные = Результат["data"];
-
- Если Данные = Неопределено Тогда
-
- Статус = Результат["status"];
- ОжидаетЧто(Статус).Равно(429);
-
- Иначе
-
- ТекстОтвета = Результат["data"]["text"];
- ТекстОтвета = Лев(ТекстОтвета, СтрДлина(Текст));
-
- ОжидаетЧто(ТекстОтвета).Равно(Текст);
-
- КонецЕсли;
-
- OPI_Инструменты.Пауза(10);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Twitter_СоздатьТвитГифки(Знач Результат, Знач Вариант, Текст = "")
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
-
- Данные = Результат["data"];
-
- Если Данные = Неопределено Тогда
-
- Статус = Результат["status"];
- ОжидаетЧто(Статус).Равно(429);
-
- Иначе
-
- ТекстОтвета = Результат["data"]["text"];
- ТекстОтвета = Лев(ТекстОтвета, СтрДлина(Текст));
-
- ОжидаетЧто(ТекстОтвета).Равно(Текст);
-
- КонецЕсли;
-
- OPI_Инструменты.Пауза(10);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Twitter_СоздатьТвитОпрос(Знач Результат, Знач Вариант, Текст = "")
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
-
- Данные = Результат["data"];
-
- Если Данные = Неопределено Тогда
-
- Статус = Результат["status"];
- ОжидаетЧто(Статус).Равно(429);
-
- Иначе
-
- ТекстОтвета = Результат["data"]["text"];
- ТекстОтвета = Лев(ТекстОтвета, СтрДлина(Текст));
-
- ОжидаетЧто(ТекстОтвета).Равно(Текст);
-
- КонецЕсли;
-
- OPI_Инструменты.Пауза(10);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Twitter_СоздатьПроизвольныйТвит(Знач Результат, Знач Вариант, Текст = "")
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
-
- Данные = Результат["data"];
-
- Если Данные = Неопределено Тогда
-
- Статус = Результат["status"];
- ОжидаетЧто(Статус).Равно(429);
-
- Иначе
-
- ТекстОтвета = Результат["data"]["text"];
- ТекстОтвета = Лев(ТекстОтвета, СтрДлина(Текст));
-
- ОжидаетЧто(ТекстОтвета).Равно(Текст);
-
- КонецЕсли;
-
- OPI_Инструменты.Пауза(10);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Twitter_ЗагрузитьМассивВложений(Знач Результат, Знач Вариант)
-
- Если Не ТипЗнч(Результат) = Тип("Массив") Тогда
-
- Статус = Результат["status"];
- ОжидаетЧто(Статус).Равно(429);
-
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Notion_СоздатьСтраницу(Знач Результат, Знач Вариант, Параметры = "")
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["object"]).Равно("page");
-
- Страница = Результат["id"];
- ЗаписатьПараметр("Notion_Page", Страница);
- OPI_Инструменты.ДобавитьПоле("Notion_Page", Страница, "Строка", Параметры);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Notion_СоздатьБазуДанных(Знач Результат, Знач Вариант, Параметры = "")
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["object"]).Равно("database");
-
- База = Результат["id"];
- ЗаписатьПараметр("Notion_Base", База);
- OPI_Инструменты.ДобавитьПоле("Notion_Base", База, "Строка", Параметры);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Notion_ИзменитьСвойстваБазы(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["object"]).Равно("database");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Notion_ПолучитьСтраницу(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["object"]).Равно("page");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Notion_ПолучитьБазуДанных(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["object"]).Равно("database");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Notion_СоздатьСтраницуВБазу(Знач Результат, Знач Вариант, База = "")
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["object"]).Равно("page");
-
- Родитель = Результат["parent"]["database_id"];
- ОжидаетЧто(Родитель).Равно(База);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Notion_ИзменитьСвойстваСтраницы(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["object"]).Равно("page");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Notion_ВернутьБлок(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["object"]).Равно("block");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Notion_СоздатьБлок(Знач Результат, Знач Вариант, Параметры = "")
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["object"]).Равно("list");
-
- Блок = Результат["results"][0]["id"];
- ЗаписатьПараметр("Notion_NewBlock", Блок);
- OPI_Инструменты.ДобавитьПоле("Notion_NewBlock", Блок, "Строка", Параметры);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Notion_ВернутьДочерниеБлоки(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["object"]).Равно("list");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Notion_УдалитьБлок(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["object"]).Равно("block");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Notion_СписокПользователей(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["object"]).Равно("list");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Notion_ПолучитьДанныеПользователя(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
- ОжидаетЧто(Результат["object"]).Равно("user");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Dropbox_ПолучитьСсылкуАвторизации(Знач Результат, Знач Вариант)
-
- Если ТипЗнч(Результат) = Тип("ДвоичныеДанные") Тогда
- Результат = ПолучитьСтрокуИзДвоичныхДанных(Результат);
- КонецЕсли;
-
- ОжидаетЧто(Результат).ИмеетТип("Строка");
- ОжидаетЧто(СтрНачинаетсяС(Результат, "https://www.dropbox.com/oauth2")).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Dropbox_ПолучитьТокен(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
-
- Токен = Результат["access_token"];
- Рефреш = Результат["refresh_token"];
-
- Если ЗначениеЗаполнено(Токен) Тогда
- ЗаписатьПараметр("Dropbox_Token", Токен);
- КонецЕсли;
-
- Если ЗначениеЗаполнено(Рефреш) Тогда
- ЗаписатьПараметр("Dropbox_Refresh", Рефреш);
- КонецЕсли;
-
- Возврат Неопределено;
-
-КонецФункции
-
-Функция Проверка_Dropbox_ОбновитьТокен(Знач Результат, Знач Вариант)
-
- Токен = Результат["access_token"];
-
- ОжидаетЧто(Токен).ИмеетТип("Строка").Заполнено();
- ЗаписатьПараметр("Dropbox_Token", Токен);
-
- Возврат Неопределено;
-
-КонецФункции
-
-Функция Проверка_Dropbox_ПолучитьИнформациюОбОбъекте(Знач Результат, Знач Вариант, Путь = "")
-
- ОжидаетЧто(Результат["path_display"]).Равно(Путь);
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Dropbox_ПолучитьПревью(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("ДвоичныеДанные");
- ОжидаетЧто(Результат.Размер() >= 12000).Равно(Истина);
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Dropbox_ЗагрузитьФайл(Знач Результат, Знач Вариант, Путь = "")
-
- ОжидаетЧто(Результат["path_display"]).Равно(Путь);
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Dropbox_ЗагрузитьФайлПоURL(Знач Результат, Знач Вариант, Параметры = "")
-
- ОжидаетЧто(Результат["async_job_id"]).Заполнено();
-
- Работа = Результат["async_job_id"];
- Параметры.Вставить("Dropbox_Job", Работа);
- ЗаписатьПараметр("Dropbox_Job", Работа);
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Dropbox_ПолучитьСтатусЗагрузкиПоURL(Знач Результат, Знач Вариант, Путь = "")
-
- Если Не ЗначениеЗаполнено(Вариант) Тогда
-
- ОжидаетЧто(Результат[".tag"]).Равно("complete");
-
- OPI_Инструменты.Пауза(2);
-
- КонецЕсли;
-
- Если Вариант = "Удаление" Тогда
- ОжидаетЧто(Результат["metadata"]["path_display"]).Равно(Путь);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Dropbox_УдалитьОбъект(Знач Результат, Знач Вариант, Путь = "")
-
- ОжидаетЧто(Результат["metadata"]["path_display"]).Равно(Путь);
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Dropbox_КопироватьОбъект(Знач Результат, Знач Вариант, Путь = "")
-
- ОжидаетЧто(Результат["metadata"]["path_display"]).Равно(Путь);
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Dropbox_ПереместитьОбъект(Знач Результат, Знач Вариант, Путь = "")
-
- ОжидаетЧто(Результат["metadata"]["path_display"]).Равно(Путь);
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Dropbox_СоздатьПапку(Знач Результат, Знач Вариант, Путь = "")
-
- ОжидаетЧто(Результат["metadata"]["path_display"]).Равно(Путь);
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Dropbox_СкачатьФайл(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("ДвоичныеДанные");
- ОжидаетЧто(Результат.Размер() >= 2000000).Равно(Истина);
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Dropbox_СкачатьПапку(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("ДвоичныеДанные");
- ОжидаетЧто(Результат.Размер() >= 200000).Равно(Истина);
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Dropbox_ПолучитьСписокФайловПапки(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["entries"]).ИмеетТип("Массив");
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Dropbox_ПолучитьСписокВерсийОбъекта(Знач Результат, Знач Вариант, Параметры = "")
-
- ОжидаетЧто(Результат["entries"]).ИмеетТип("Массив");
- ОжидаетЧто(Результат["entries"].Количество()).Равно(1);
-
- Ревизия = Результат["entries"][0]["rev"];
-
- Параметры.Вставить("Dropbox_FileRevision", Ревизия);
- ЗаписатьПараметр("Dropbox_FileRevision", Ревизия);
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Dropbox_ВосстановитьОбъектКВерсии(Знач Результат, Знач Вариант, Путь = "")
-
- ОжидаетЧто(Результат["path_display"]).Равно(Путь);
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Dropbox_ПолучитьСписокТегов(Знач Результат, Знач Вариант, Параметры = "", МассивПутей = "")
-
- ОжидаетЧто(Результат["paths_to_tags"]).ИмеетТип("Массив");
- ОжидаетЧто(Результат["paths_to_tags"].Количество()).Равно(МассивПутей.Количество());
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Dropbox_ДобавитьТег(Знач Результат, Знач Вариант)
-
- Если Не нРег(Строка(Результат)) = "null" Тогда
- ОжидаетЧто(ЗначениеЗаполнено(Результат)).Равно(Ложь);
- КонецЕсли;
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Dropbox_УдалитьТег(Знач Результат, Знач Вариант)
-
- Если Не нРег(Строка(Результат)) = "null" Тогда
- ОжидаетЧто(ЗначениеЗаполнено(Результат)).Равно(Ложь);
- КонецЕсли;
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Dropbox_ПолучитьИнформациюОбАккаунте(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["account_id"]).Заполнено();
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Dropbox_ПолучитьДанныеИспользованияПространства(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["used"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Dropbox_ДобавитьПользователейКФайлу(Знач Результат, Знач Вариант, Почта = "", ТолькоПросмотр = "")
-
- ОжидаетЧто(Результат[0]["result"][".tag"]).Равно("success");
- ОжидаетЧто(Результат[0]["member"]["email"]).Равно(Почта);
- ОжидаетЧто(Результат[0]["result"]["success"][".tag"]).Равно(?(ТолькоПросмотр, "viewer", "editor"));
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Dropbox_ОпубликоватьПапку(Знач Результат, Знач Вариант, Параметры = "")
-
- ОжидаетЧто(Результат["shared_folder_id"]).Заполнено();
-
- IDПапки = Результат["shared_folder_id"];
-
- Параметры.Вставить("Dropbox_SharedFolder", IDПапки);
- ЗаписатьПараметр("Dropbox_SharedFolder", IDПапки);
-
- OPI_Инструменты.Пауза(2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Dropbox_ОтменитьПубликациюПапки(Знач Результат, Знач Вариант, Параметры = "", IDРаботы = "")
-
- Если ЗначениеЗаполнено(Вариант) Тогда
-
- ОжидаетЧто(Результат[".tag"]).Равно("complete");
-
- Параметры.Вставить("Dropbox_NewJobID", IDРаботы);
- ЗаписатьПараметр("Dropbox_NewJobID", IDРаботы);
-
- OPI_Инструменты.Пауза(2);
-
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Dropbox_ПолучитьСтатусАсинхронногоИзменения(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Dropbox_ДобавитьПользователейКПапке(Знач Результат, Знач Вариант)
-
- Если Не нРег(Строка(Результат)) = "null" Тогда
- ОжидаетЧто(ЗначениеЗаполнено(Результат)).Равно(Ложь);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Dropbox_ОтменитьПубликациюФайла(Знач Результат, Знач Вариант)
-
- Если Не нРег(Строка(Результат)) = "null" Тогда
- ОжидаетЧто(ЗначениеЗаполнено(Результат)).Равно(Ложь);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПолучитьСсылкуАвторизацииПриложения(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Строка");
-
- ЗаписатьПараметр("Bitrix24_AuthURL", Результат);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПолучитьТокен(Знач Результат, Знач Вариант)
-
- Если ЗначениеЗаполнено(Результат["access_token"]) И ЗначениеЗаполнено(Результат["refresh_token"]) Тогда
-
- ЗаписатьПараметр("Bitrix24_Token" , Результат["access_token"]);
- ЗаписатьПараметр("Bitrix24_Refresh", Результат["refresh_token"]);
-
- КонецЕсли;
-
- Возврат Неопределено;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ОбновитьТокен(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["access_token"]).Заполнено();
- ОжидаетЧто(Результат["refresh_token"]).Заполнено();
-
- Если ЗначениеЗаполнено(Результат["access_token"]) И ЗначениеЗаполнено(Результат["refresh_token"]) Тогда
-
- ЗаписатьПараметр("Bitrix24_Token" , Результат["access_token"]);
- ЗаписатьПараметр("Bitrix24_Refresh", Результат["refresh_token"]);
-
- КонецЕсли;
-
- Возврат Неопределено;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_СерверноеВремя(Знач Результат, Знач Вариант)
-
- Время = Результат["result"];
-
- Если Не ТипЗнч(Время) = Тип("Дата") Тогда
- Время = XMLЗначение(Тип("Дата"), Время);
- КонецЕсли;
-
- ОжидаетЧто(Время).ИмеетТип("Дата").Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_СоздатьНовость(Знач Результат, Знач Вариант, Параметры = "")
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Число").Заполнено();
-
- Если Вариант = "Хук" Тогда
- ИмяПараметра = "Bitrix24_HookPostID";
- Иначе
- ИмяПараметра = "Bitrix24_PostID";
- КонецЕсли;
-
- IDНовости = Результат["result"];
-
- ЗаписатьПараметр(ИмяПараметра, IDНовости);
- Параметры.Вставить(ИмяПараметра, IDНовости);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ИзменитьНовость(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Число").Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_УдалитьНовость(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Булево").Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПолучитьСписокПросмотревшихВажное(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Массив");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПолучитьНовости(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Массив");
- ОжидаетЧто(Результат["result"][0]["ID"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ДобавитьКомментарийНовости(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Число").Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ДобавитьПолучателейКНовости(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Булево").Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПолучитьСтруктуруЗадачи(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]["fields"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_СоздатьЗадачу(Знач Результат, Знач Вариант, Параметры = "")
-
- ОжидаетЧто(Результат["result"]["task"]).Заполнено();
-
- Если Вариант = "Хук" Тогда
- ИмяПараметра = "Bitrix24_HookTaskID";
- Иначе
- ИмяПараметра = "Bitrix24_TaskID";
- КонецЕсли;
-
- IDЗадачи = Результат["result"]["task"]["id"];
-
- ЗаписатьПараметр(ИмяПараметра, IDЗадачи);
- Параметры.Вставить(ИмяПараметра, IDЗадачи);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ИзменитьЗадачу(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]["task"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПолучитьЗадачу(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]["task"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПринятьЗадачу(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]["task"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ОтклонитьЗадачу(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
-
- Возврат Неопределено;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ЗавершитьЗадачу(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]["task"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ВозобновитьЗадачу(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]["task"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ОтложитьЗадачу(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]["task"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_НачатьВыполнениеЗадачи(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]["task"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_НачатьНаблюдатьЗаЗадачей(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]["task"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПрекратитьНаблюдатьЗаЗадачей(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]["task"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПриостановитьЗадачу(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]["task"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_УдалитьЗадачу(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]["task"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ДелегироватьЗадачу(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]["task"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ДобавитьЗадачуВИзбранное(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Булево").Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_УбратьЗадачуИзИзбранного(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Булево").Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПолучитьИсториюЗадачи(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]["list"]).ИмеетТип("Массив");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПолучитьСписокЗадач(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]["tasks"]).ИмеетТип("Массив");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПолучитьСписокХранилищ(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Массив");
- ОжидаетЧто(Результат["total"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПолучитьХранилищеПриложения(Знач Результат, Знач Вариант, Параметры = "")
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Соответствие");
- ОжидаетЧто(Результат["result"]["ID"]).Заполнено();
-
- IDХранилища = Результат["result"]["ID"];
- ЗаписатьПараметр("Bitrix24_StorageID", IDХранилища);
- Параметры.Вставить("Bitrix24_StorageID", IDХранилища);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ЗагрузитьФайлВХранилище(Знач Результат, Знач Вариант, Параметры = "")
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Соответствие");
- ОжидаетЧто(Результат["result"]["ID"]).Заполнено();
-
- Если Вариант = "Хук" Тогда
- ИмяПараметра = "Bitrix24_HookFileID";
- Иначе
- ИмяПараметра = "Bitrix24_FileID";
- КонецЕсли;
-
- IDФайла = Результат["result"]["ID"];
-
- ЗаписатьПараметр(ИмяПараметра, IDФайла);
- Параметры.Вставить(ИмяПараметра, IDФайла);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_УдалитьФайл(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Булево").Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_СоздатьКаталогВХранилище(Знач Результат, Знач Вариант, Параметры = "")
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Соответствие");
- ОжидаетЧто(Результат["result"]["ID"]).Заполнено();
-
- Если Вариант = "Хук" Тогда
- ИмяПараметра = "Bitrix24_HookFolderID";
- Иначе
- ИмяПараметра = "Bitrix24_FolderID";
- КонецЕсли;
-
- IDКаталога = Результат["result"]["ID"];
-
- ЗаписатьПараметр(ИмяПараметра, IDКаталога);
- Параметры.Вставить(ИмяПараметра, IDКаталога);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_УдалитьКаталог(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Булево").Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПолучитьХранилище(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Соответствие");
- ОжидаетЧто(Результат["result"]["ID"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПолучитьСодержимоеХранилища(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Массив");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПереименоватьХранилище(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Соответствие");
- ОжидаетЧто(Результат["result"]["ID"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПолучитьИнформациюОКаталоге(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Соответствие");
- ОжидаетЧто(Результат["result"]["ID"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_СоздатьПодкаталог(Знач Результат, Знач Вариант, Параметры = "")
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Соответствие");
- ОжидаетЧто(Результат["result"]["ID"]).Заполнено();
-
- Если Вариант = "Хук" Тогда
- ИмяПараметра = "Bitrix24_HookSubfolderID";
- Иначе
- ИмяПараметра = "Bitrix24_SubfolderID";
- КонецЕсли;
-
- IDПодкаталога = Результат["result"]["ID"];
-
- ЗаписатьПараметр(ИмяПараметра, IDПодкаталога);
- Параметры.Вставить(ИмяПараметра, IDПодкаталога);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_СкопироватьКаталог(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Соответствие");
- ОжидаетЧто(Результат["result"]["ID"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПолучитьВнешнююСсылкуКаталога(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Строка").Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПолучитьСтруктуруФильтраКаталога(Знач Результат, Знач Вариант)
-
- ТипРезультата = ТипЗнч(Результат);
-
- ОжидаетЧто(ТипРезультата = Тип("Структура") Или ТипРезультата = Тип("Соответствие")).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПолучитьДочерниеЭлементыКаталога(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Массив");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПоместитьКаталогВКорзину(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Соответствие");
- ОжидаетЧто(Результат["result"]["ID"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ВосстановитьКаталог(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Соответствие");
- ОжидаетЧто(Результат["result"]["ID"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПереместитьКаталог(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Соответствие");
- ОжидаетЧто(Результат["result"]["ID"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПереименоватьКаталог(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Соответствие");
- ОжидаетЧто(Результат["result"]["ID"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ЗагрузитьФайлВКаталог(Знач Результат, Знач Вариант, URL = "", Токен = "")
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Соответствие");
- ОжидаетЧто(Результат["result"]["ID"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_СкопироватьФайл(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Соответствие");
- ОжидаетЧто(Результат["result"]["ID"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПолучитьИнформациюОФайле(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Соответствие");
- ОжидаетЧто(Результат["result"]["ID"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПолучитьВнешнююСсылкуФайла(Знач Результат, Знач Вариант)
-
- Возврат Неопределено;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПоместитьФайлВКорзину(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Соответствие");
- ОжидаетЧто(Результат["result"]["ID"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ВосстановитьФайл(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Соответствие");
- ОжидаетЧто(Результат["result"]["ID"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПереименоватьФайл(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Соответствие");
- ОжидаетЧто(Результат["result"]["ID"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПереместитьФайлВКаталог(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Соответствие");
- ОжидаетЧто(Результат["result"]["ID"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ДобавитьФайлВЗадачу(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Соответствие");
- ОжидаетЧто(Результат["result"]["attachmentId"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПроверитьДоступКЗадаче(Знач Результат, Знач Вариант, Количество = "")
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Соответствие");
-
- Действия = Результат["result"]["allowedActions"];
- ОжидаетЧто(Действия).ИмеетТип("Соответствие");
- ОжидаетЧто(Действия.Количество()).Равно(Количество);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ОтключитьЗвукЗадачи(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]["task"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ВключитьЗвукЗадачи(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]["task"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ДобавитьКомментарийЗадачи(Знач Результат, Знач Вариант, Параметры = "")
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Число").Заполнено();
-
- Если Вариант = "Хук" Тогда
- ИмяПараметра = "Bitrix24_HookCommentID";
- Иначе
- ИмяПараметра = "Bitrix24_CommentID";
- КонецЕсли;
-
- IDКомментария = Результат["result"];
-
- ЗаписатьПараметр(ИмяПараметра, IDКомментария);
- Параметры.Вставить(ИмяПараметра, IDКомментария);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_УдалитьКомментарийЗадачи(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Булево").Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_СоздатьРезультатИзКомментария(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Соответствие");
- ОжидаетЧто(Результат["result"]["text"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_УдалитьРезультатИзКомментария(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Неопределено");
- ОжидаетЧто(Результат["time"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПолучитьСписокРезультатов(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Массив");
- ОжидаетЧто(Результат["result"][0]["text"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПолучитьСписокКомментариевЗадачи(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Массив");
- ОжидаетЧто(Результат["result"][0]["POST_MESSAGE"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПолучитьКомменатрийЗадачи(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Соответствие");
- ОжидаетЧто(Результат["result"]["ID"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ИзменитьКомментарийЗадачи(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Булево").Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_СоздатьЗависимостьЗадач(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Массив");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_УдалитьЗависимостьЗадач(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Массив");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ДобавитьСтадиюКанбана(Знач Результат, Знач Вариант, Параметры = "")
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Число").Заполнено();
-
- Если Вариант = "Хук" Тогда
- ИмяПараметра = "Bitrix24_HookStageID";
- Иначе
- ИмяПараметра = "Bitrix24_StageID";
- КонецЕсли;
-
- IDСтадии = Результат["result"];
-
- ЗаписатьПараметр(ИмяПараметра, IDСтадии);
- Параметры.Вставить(ИмяПараметра, IDСтадии);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_УдалитьСтадиюКанбана(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Булево").Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПолучитьСтадииКанбана(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Соответствие");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПеренестиЗадачуВСтадиюКанбана(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Булево").Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ИзменитьСтадиюКанбана(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Булево").Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ДобавитьЭлементЧеклистаЗадачи(Знач Результат, Знач Вариант, Параметры = "")
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Число").Заполнено();
-
- Если Вариант = "Хук" Тогда
- ИмяПараметра = "Bitrix24_HookCheckElementID";
- Иначе
- ИмяПараметра = "Bitrix24_CheckElementID";
- КонецЕсли;
-
- IDЭлемента = Результат["result"];
-
- ЗаписатьПараметр(ИмяПараметра, IDЭлемента);
- Параметры.Вставить(ИмяПараметра, IDЭлемента);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ИзменитьЭлементЧеклистаЗадачи(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Неопределено");
- ОжидаетЧто(Результат["time"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_УдалитьЭлементЧеклистаЗадачи(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Булево").Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПолучитьЧеклистЗадачи(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Массив");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПолучитьЭлементЧеклистаЗадачи(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Соответствие");
- ОжидаетЧто(Результат["result"]["ID"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ВыполнитьЭлементЧеклистаЗадачи(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Булево").Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ВозобновитьЭлементЧеклистаЗадачи(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Булево").Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ДобавитьТрудозатратыЗадачи(Знач Результат, Знач Вариант, Параметры = "")
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Число").Заполнено();
-
- Если Вариант = "Хук" Тогда
- ИмяПараметра = "Bitrix24_HookTimeID";
- Иначе
- ИмяПараметра = "Bitrix24_TimeID";
- КонецЕсли;
-
- IDЗатрат = Результат["result"];
-
- ЗаписатьПараметр(ИмяПараметра, IDЗатрат);
- Параметры.Вставить(ИмяПараметра, IDЗатрат);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ИзменитьТрудозатратыЗадачи(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Неопределено");
- ОжидаетЧто(Результат["time"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_УдалитьТрудозатратыЗадачи(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Неопределено");
- ОжидаетЧто(Результат["time"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПолучитьТрудозатратыЗадачи(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Соответствие");
- ОжидаетЧто(Результат["result"]["ID"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПолучитьСписокТрудозатратЗадачи(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Массив");
- ОжидаетЧто(Результат["result"][0]["ID"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПолучитьПланЗадачНаДень(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Массив");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_СоздатьЧат(Знач Результат, Знач Вариант, Параметры = "")
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Число").Заполнено();
-
- Если Вариант = "Хук" Тогда
- ИмяПараметра = "Bitrix24_HookChatID";
- Иначе
- ИмяПараметра = "Bitrix24_ChatID";
- КонецЕсли;
-
- IDЧата = Результат["result"];
-
- ЗаписатьПараметр(ИмяПараметра, IDЧата);
- Параметры.Вставить(ИмяПараметра, IDЧата);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПолучитьСписокПользователейЧата(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Массив");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПокинутьЧат(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Булево").Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ИсключитьПользователяИзЧата(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Булево").Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ДобавитьПользователейВЧат(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Булево").Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ИзменитьЗаголовокЧата(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Булево").Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ИзменитьЦветЧата(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Булево").Равно(Истина);
-
- OPI_Инструменты.Пауза(10);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ИзменитьКартинкуЧата(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Булево").Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ОтключитьУведомленияЧата(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Булево").Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ВключитьУведомленияЧата(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Булево").Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_СменитьВладельцаЧата(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Булево").Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПолучитьСписокСообщенийЧата(Знач Результат, Знач Вариант, Параметры = "")
-
- ОжидаетЧто(Результат["result"]["messages"]).ИмеетТип("Массив");
-
- Если Вариант = "Хук" Тогда
- ИмяПараметра = "Bitrix24_ChatMessageID";
- Иначе
- ИмяПараметра = "Bitrix24_UserMessageID";
- КонецЕсли;
-
- IDСообщения = Результат["result"]["messages"][0]["id"];
-
- ЗаписатьПараметр(ИмяПараметра, IDСообщения);
- Параметры.Вставить(ИмяПараметра, IDСообщения);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ОтметитьСообщениеКакПрочитанное(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Соответствие");
-
- Возврат Неопределено;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ОтметитьСообщениеКакНепрочитанное(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Булево").Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПолучитьДиалог(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Соответствие");
- ОжидаетЧто(Результат["result"]["id"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПолучитьСписокПользователейДиалога(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Массив");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ОтправитьУведомлениеОВводе(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Булево").Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПрочитатьВсе(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Булево").Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ОтправитьСообщение(Знач Результат, Знач Вариант, Параметры = "")
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Число").Заполнено();
-
- Если Вариант = "Хук" Тогда
- ИмяПараметра = "Bitrix24_ChatMessageID";
- Иначе
- ИмяПараметра = "Bitrix24_UserMessageID";
- КонецЕсли;
-
- IDСообщения = Результат["result"];
-
- ЗаписатьПараметр(ИмяПараметра, IDСообщения);
- Параметры.Вставить(ИмяПараметра, IDСообщения);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ИзменитьСообщение(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Булево").Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_УдалитьСообщение(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Булево").Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_УстановитьРеакциюНаСообщение(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Булево").Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПолучитьКаталогФайловЧата(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Соответствие");
- ОжидаетЧто(Результат["result"]["ID"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ОтправитьФайл(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Соответствие");
- ОжидаетЧто(Результат["result"]["MESSAGE_ID"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПолучитьПользователей(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Соответствие");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПолучитьСтатусПользователя(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Строка").Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_УстановитьСтатусПользователя(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Булево").Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_СоздатьПерсональноеУведомление(Знач Результат, Знач Вариант, Параметры = "")
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Число").Заполнено();
-
- Если Вариант = "Хук" Тогда
- ИмяПараметра = "Bitrix24_PersoalHookNotifyID";
- Иначе
- ИмяПараметра = "Bitrix24_PersoalNotifyID";
- КонецЕсли;
-
- IDСообщения = Результат["result"];
-
- ЗаписатьПараметр(ИмяПараметра, IDСообщения);
- Параметры.Вставить(ИмяПараметра, IDСообщения);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_СоздатьСистемноеУведомление(Знач Результат, Знач Вариант, Параметры = "")
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Число").Заполнено();
-
- Если Вариант = "Хук" Тогда
- ИмяПараметра = "Bitrix24_SystemHookNotifyID";
- Иначе
- ИмяПараметра = "Bitrix24_SystemNotifyID";
- КонецЕсли;
-
- IDСообщения = Результат["result"];
-
- ЗаписатьПараметр(ИмяПараметра, IDСообщения);
- Параметры.Вставить(ИмяПараметра, IDСообщения);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_УдалитьУведомление(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Булево");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_СоздатьПодразделение(Знач Результат, Знач Вариант, Параметры = "")
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Число").Заполнено();
-
- Если Вариант = "Хук" Тогда
- ИмяПараметра = "Bitrix24_HookDepID";
- Иначе
- ИмяПараметра = "Bitrix24_DepID";
- КонецЕсли;
-
- IDПодразделения = Результат["result"];
-
- ЗаписатьПараметр(ИмяПараметра, IDПодразделения);
- Параметры.Вставить(ИмяПараметра, IDПодразделения);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ИзменитьПодразделение(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Булево").Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_УдалитьПодразделение(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Булево").Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПолучитьПодразделения(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Массив");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПолучитьТекущегоПользователя(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Соответствие");
- ОжидаетЧто(Результат["result"]["ID"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПолучитьСтурктуруПользователя(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Соответствие");
- ОжидаетЧто(Результат["result"]["ID"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_СоздатьПользователя(Знач Результат, Знач Вариант, Параметры = "")
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Число").Заполнено();
-
- Если Вариант = "Хук" Тогда
- ИмяПараметра = "Bitrix24_HookUserID";
- Иначе
- ИмяПараметра = "Bitrix24_UserID";
- КонецЕсли;
-
- IDПользователя = Результат["result"];
-
- ЗаписатьПараметр(ИмяПараметра, IDПользователя);
- Параметры.Вставить(ИмяПараметра, IDПользователя);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ИзменитьПользователя(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Булево").Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ИзменитьСтатусПользователя(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Булево").Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПолучитьПользователя(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Массив");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_НайтиПользователей(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Массив");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПолучитьСтруктуруФильтраЛидов(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(OPI_Инструменты.ЭтоКоллекция(Результат, Истина)).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПолучитьСтруктуруЛида(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]["PHONE"]).Заполнено();
- ОжидаетЧто(Результат["result"]["NAME"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_СоздатьЛид(Знач Результат, Знач Вариант, Параметры = "")
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Число").Заполнено();
-
- Если Вариант = "Хук" Тогда
- ИмяПараметра = "Bitrix24_HookLeadID";
- Иначе
- ИмяПараметра = "Bitrix24_LeadID";
- КонецЕсли;
-
- IDЛида = Результат["result"];
-
- ЗаписатьПараметр(ИмяПараметра, IDЛида);
- Параметры.Вставить(ИмяПараметра, IDЛида);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ИзменитьЛид(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Булево").Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_УдалитьЛид(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Булево").Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПолучитьЛид(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]["PHONE"]).Заполнено();
- ОжидаетЧто(Результат["result"]["NAME"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПолучитьСписокЛидов(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Массив");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПолучитьСтруктуруФильтраСделок(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(OPI_Инструменты.ЭтоКоллекция(Результат, Истина)).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПолучитьСтруктуруСделки(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]["ID"]).Заполнено();
- ОжидаетЧто(Результат["result"]["BEGINDATE"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_СоздатьСделку(Знач Результат, Знач Вариант, Параметры = "")
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Число").Заполнено();
-
- Если Вариант = "Хук" Тогда
- ИмяПараметра = "Bitrix24_HookDealID";
- Иначе
- ИмяПараметра = "Bitrix24_DealID";
- КонецЕсли;
-
- IDСделки = Результат["result"];
-
- ЗаписатьПараметр(ИмяПараметра, IDСделки);
- Параметры.Вставить(ИмяПараметра, IDСделки);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ИзменитьСделку(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Булево").Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПолучитьСделку(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]["ID"]).Заполнено();
- ОжидаетЧто(Результат["result"]["BEGINDATE"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_УдалитьСделку(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Булево").Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПолучитьСписокСделок(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Массив");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПолучитьСтруктуруФильтраЗадач(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(OPI_Инструменты.ЭтоКоллекция(Результат, Истина)).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПолучитьСтруктуруКомментария(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(OPI_Инструменты.ЭтоКоллекция(Результат, Истина)).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПолучитьСтруктуруЧата(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(OPI_Инструменты.ЭтоКоллекция(Результат, Истина)).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПолучитьБлокКартинки(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(OPI_Инструменты.ЭтоКоллекция(Результат, Истина)).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПолучитьБлокФайла(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(OPI_Инструменты.ЭтоКоллекция(Результат, Истина)).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПолучитьСтруктуруФильтраПользователей(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(OPI_Инструменты.ЭтоКоллекция(Результат, Истина)).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_СоздатьКалендарь(Знач Результат, Знач Вариант, Параметры = "")
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Число").Заполнено();
-
- Если Вариант = "Хук" Тогда
- ИмяПараметра = "Bitrix24_HookCalendarID";
- Иначе
- ИмяПараметра = "Bitrix24_CalendarID";
- КонецЕсли;
-
- IDКалендаря = Результат["result"];
-
- ЗаписатьПараметр(ИмяПараметра, IDКалендаря);
- Параметры.Вставить(ИмяПараметра, IDКалендаря);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ИзменитьКалендарь(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Число").Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_УдалитьКалендарь(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Булево").Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПолучитьСтруктуруКалендаря(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(OPI_Инструменты.ЭтоКоллекция(Результат, Истина)).Равно(Истина);
-
- Если Вариант = "Пустая" Тогда
-
- Для Каждого Элемент Из Результат Цикл
-
- Если OPI_Инструменты.ЭтоПримитивныйТип(Элемент.Значение) Тогда
- ОжидаетЧто(ЗначениеЗаполнено(Элемент.Значение)).Равно(Ложь);
- КонецЕсли;
-
- КонецЦикла;
-
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПолучитьСписокКалендарей(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Массив");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПолучитьСтруктуруНастроекКалендаря(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Соответствие");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПолучитьСтруктуруПользовательскихНастроекКаледнаря(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(OPI_Инструменты.ЭтоКоллекция(Результат, Истина)).Равно(Истина);
-
- Если Вариант = "Пустая" Тогда
-
- Для Каждого Элемент Из Результат Цикл
-
- Если OPI_Инструменты.ЭтоПримитивныйТип(Элемент.Значение) Тогда
- ОжидаетЧто(ЗначениеЗаполнено(Элемент.Значение)).Равно(Ложь);
- КонецЕсли;
-
- КонецЦикла;
-
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПолучитьПользовательскиеНастройкиКалендаря(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Соответствие");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_УстановитьПользовательскиеНастройкиКалендаря(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Булево").Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПолучитьЗанятостьПользователей(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Соответствие");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_СоздатьСобытиеКалендаря(Знач Результат, Знач Вариант, Параметры = "")
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Число").Заполнено();
-
- Если Вариант = "Хук" Тогда
- ИмяПараметра = "Bitrix24_HookCEventID";
- Иначе
- ИмяПараметра = "Bitrix24_CEventID";
- КонецЕсли;
-
- IDСобытия = Результат["result"];
-
- ЗаписатьПараметр(ИмяПараметра, IDСобытия);
- Параметры.Вставить(ИмяПараметра, IDСобытия);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ИзменитьСобытиеКалендаря(Знач Результат, Знач Вариант, Параметры = "")
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Число").Заполнено();
-
- Если Вариант = "Хук" Тогда
- ИмяПараметра = "Bitrix24_HookCEventID";
- Иначе
- ИмяПараметра = "Bitrix24_CEventID";
- КонецЕсли;
-
- IDСобытия = Результат["result"];
-
- ЗаписатьПараметр(ИмяПараметра, IDСобытия);
- Параметры.Вставить(ИмяПараметра, IDСобытия);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_УдалитьСобытиеКалендаря(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Булево").Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПолучитьСобытиеКалендаря(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Соответствие");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПолучитьСобытияКалендарей(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Массив");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_УстановитьСтатусУчастияПользователя(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Булево").Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПолучитьСтатусУчастияПользователя(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).ИмеетТип("Строка").Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПолучитьСтруктуруСобытияКалендаря(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(OPI_Инструменты.ЭтоКоллекция(Результат, Истина)).Равно(Истина);
-
- Если Вариант = "Пустая" Тогда
-
- Для Каждого Элемент Из Результат Цикл
-
- Если OPI_Инструменты.ЭтоПримитивныйТип(Элемент.Значение) Тогда
- ОжидаетЧто(ЗначениеЗаполнено(Элемент.Значение)).Равно(Ложь);
- КонецЕсли;
-
- КонецЦикла;
-
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Bitrix24_ПолучитьСтруктуруФильтраСобытийКалендарей(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(OPI_Инструменты.ЭтоКоллекция(Результат, Истина)).Равно(Истина);
-
- Если Вариант = "Пустая" Тогда
-
- Для Каждого Элемент Из Результат Цикл
-
- Если OPI_Инструменты.ЭтоПримитивныйТип(Элемент.Значение) Тогда
- ОжидаетЧто(ЗначениеЗаполнено(Элемент.Значение)).Равно(Ложь);
- КонецЕсли;
-
- КонецЦикла;
-
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VKTeams_ПроверитьТокен(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
- ОжидаетЧто(Результат["userId"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VKTeams_ПолучитьСобытия(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
- ОжидаетЧто(Результат["events"]).ИмеетТип("Массив");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VKTeams_ОтправитьТекстовоеСообщение(Знач Результат, Знач Вариант, Параметры = "")
-
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
- ОжидаетЧто(Результат["msgId"]).Заполнено();
-
- Если Не ЗначениеЗаполнено(Вариант) Тогда
-
- IDСообщения = Результат["msgId"];
- ЗаписатьПараметр("VkTeams_MessageID", IDСообщения);
- Параметры.Вставить("VkTeams_MessageID", IDСообщения);
-
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VKTeams_ПереслатьСообщение(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
- ОжидаетЧто(Результат["msgId"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VKTeams_ОтправитьФайл(Знач Результат, Знач Вариант, Параметры = "")
-
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
- ОжидаетЧто(Результат["msgId"]).Заполнено();
-
- Если Не ЗначениеЗаполнено(Вариант) Тогда
-
- IDФайла = Результат["fileId"];
- ЗаписатьПараметр("VkTeams_FileID", IDФайла);
- Параметры.Вставить("VkTeams_FileID", IDФайла);
-
- OPI_Инструменты.Пауза(2);
-
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VKTeams_ПереслатьФайл(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
- ОжидаетЧто(Результат["msgId"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VKTeams_ПолучитьИнформациюОФайле(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
- ОжидаетЧто(Результат["type"]).Заполнено();
- ОжидаетЧто(Результат["size"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VKTeams_ИзменитьТекстСообщения(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VKTeams_УдалитьСообщение(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VKTeams_ОтправитьГолосовоеСообщение(Знач Результат, Знач Вариант, Параметры = "")
-
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
- ОжидаетЧто(Результат["msgId"]).Заполнено();
-
- Если Не ЗначениеЗаполнено(Вариант) Тогда
-
- IDФайла = Результат["fileId"];
- ЗаписатьПараметр("VkTeams_VoiceID", IDФайла);
- Параметры.Вставить("VkTeams_VoiceID", IDФайла);
-
- OPI_Инструменты.Пауза(2);
-
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VKTeams_ПереслатьГолосовоеСообщение(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
- ОжидаетЧто(Результат["msgId"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VKTeams_ИсключитьПользователейЧата(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VKTeams_ИзменитьАватарЧата(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VKTeams_ПолучитьИнформациюОЧате(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["type"]).Заполнено();
- ОжидаетЧто(Результат["inviteLink"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VKTeams_ПолучитьАдминистраторовЧата(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["admins"]).ИмеетТип("Массив");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VKTeams_ПолучитьПользователейЧата(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["members"]).ИмеетТип("Массив");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VKTeams_ПолучитьЗаблокированныхПользователейЧата(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["users"]).ИмеетТип("Массив");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VKTeams_ПолучитьЗапросыВступленияЧата(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["users"]).ИмеетТип("Массив");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VKTeams_ЗаблокироватьПользователяЧата(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VKTeams_РазблокироватьПользователяЧата(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VKTeams_ЗакрепитьСообщение(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VKTeams_ОткрепитьСообщение(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VKTeams_ОдобритьЗаявкуНаВступление(Знач Результат, Знач Вариант)
-
- Если Не Результат["ok"] Тогда
- ОжидаетЧто(Результат["description"]).Равно("User is not pending or nobody in pending list");
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VKTeams_ОтклонитьЗаявкуНаВступление(Знач Результат, Знач Вариант)
-
- Если Не Результат["ok"] Тогда
- ОжидаетЧто(Результат["description"]).Равно("User is not pending or nobody in pending list");
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VKTeams_УстановитьЗаголовокЧата(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VKTeams_УстановитьОписаниеЧата(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VKTeams_УстановитьПравилаЧата(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_VKTeams_ОтветитьНаСобытиеКлавиатуры(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["ok"]).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Neocities_ЗагрузитьФайл(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).Равно("success");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Neocities_ЗагрузитьФайлы(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).Равно("success");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Neocities_УдалитьВыбранныеФайлы(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).Равно("success");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Neocities_ПолучитьСписокФайлов(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).Равно("success");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Neocities_ПолучитьДанныеОСайте(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).Равно("success");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Neocities_ПолучитьТокен(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).Равно("success");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Neocities_СинхронизироватьКаталоги(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["errors"]).Равно(0);
- ОжидаетЧто(Результат["items"].Количество()).Равно(0);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_CDEK_ПолучитьТокен(Знач Результат, Знач Вариант, Параметры = "")
-
- ОжидаетЧто(Результат["access_token"]).Заполнено();
- ОжидаетЧто(Результат["expires_in"]).Заполнено();
- ОжидаетЧто(Результат["token_type"]).Заполнено();
-
- Токен = Результат["access_token"];
- ЗаписатьПараметр("CDEK_Token", Токен);
- OPI_Инструменты.ДобавитьПоле("CDEK_Token", Токен, "Строка", Параметры);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_CDEK_ПолучитьОписаниеЗаказа(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(OPI_Инструменты.ЭтоКоллекция(Результат, Истина)).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_CDEK_СоздатьЗаказ(Знач Результат, Знач Вариант, Параметры = "")
-
- ОжидаетЧто(Результат["entity"]["uuid"]).Заполнено();
- ОжидаетЧто(Результат["requests"]).ИмеетТип("Массив").Заполнено();
-
- Статус = Результат["requests"][0]["state"];
-
- ОжидаетЧто(Статус = "ACCEPTED" Или Статус = "SUCCESSFUL").Равно(Истина);
-
- UUID = Результат["entity"]["uuid"];
- ЗаписатьПараметр("CDEK_OrderUUID", UUID);
- OPI_Инструменты.ДобавитьПоле("CDEK_OrderUUID", UUID, "Строка", Параметры);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_CDEK_ПолучитьЗаказ(Знач Результат, Знач Вариант, Параметры = "")
-
- ОжидаетЧто(Результат["entity"]["uuid"]).Заполнено();
- ОжидаетЧто(Результат["entity"]["number"]).Заполнено();
-
- ВнутреннийНомер = Результат["entity"]["number"];
- ЗаписатьПараметр("CDEK_OrderIMN", ВнутреннийНомер);
- OPI_Инструменты.ДобавитьПоле("CDEK_OrderIMN", ВнутреннийНомер, "Строка", Параметры);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_CDEK_ПолучитьЗаказПоНомеру(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["entity"]["uuid"]).Заполнено();
- ОжидаетЧто(Результат["entity"]["number"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_CDEK_ИзменитьЗаказ(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["entity"]["uuid"]).Заполнено();
- ОжидаетЧто(Результат["requests"]).ИмеетТип("Массив").Заполнено();
-
- Статус = Результат["requests"][0]["state"];
-
- ОжидаетЧто(Статус = "ACCEPTED" Или Статус = "SUCCESSFUL").Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_CDEK_УдалитьЗаказ(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["entity"]["uuid"]).Заполнено();
- ОжидаетЧто(Результат["requests"]).ИмеетТип("Массив").Заполнено();
-
- Статус = Результат["requests"][0]["state"];
-
- ОжидаетЧто(Статус = "ACCEPTED" Или Статус = "SUCCESSFUL").Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_CDEK_ОформитьКлиентскийВозврат(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["entity"]["uuid"]).Заполнено();
- ОжидаетЧто(Результат["requests"]).ИмеетТип("Массив").Заполнено();
-
- Статус = Результат["requests"][0]["state"];
-
- ОжидаетЧто(Статус = "ACCEPTED" Или Статус = "SUCCESSFUL").Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_CDEK_СоздатьОтказ(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["entity"]["uuid"]).Заполнено();
- ОжидаетЧто(Результат["requests"]).ИмеетТип("Массив").Заполнено();
-
- Статус = Результат["requests"][0]["state"];
-
- ОжидаетЧто(Статус = "ACCEPTED" Или Статус = "SUCCESSFUL").Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_CDEK_ПолучитьОписаниеЗаявкиКурьера(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(OPI_Инструменты.ЭтоКоллекция(Результат, Истина)).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_CDEK_СоздатьЗаявкуНаВызовКурьера(Знач Результат, Знач Вариант, Параметры = "")
-
- ОжидаетЧто(Результат["entity"]["uuid"]).Заполнено();
- ОжидаетЧто(Результат["requests"]).ИмеетТип("Массив").Заполнено();
-
- Статус = Результат["requests"][0]["state"];
-
- ОжидаетЧто(Статус = "ACCEPTED" Или Статус = "SUCCESSFUL").Равно(Истина);
-
- UUID = Результат["entity"]["uuid"];
- ЗаписатьПараметр("CDEK_IntakeUUID", UUID);
- OPI_Инструменты.ДобавитьПоле("CDEK_IntakeUUID", UUID, "Строка", Параметры);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_CDEK_ПолучитьЗаявкуНаВызовКурьера(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["entity"]["uuid"]).Заполнено();
- ОжидаетЧто(Результат["requests"]).ИмеетТип("Массив").Заполнено();
-
- Статус = Результат["requests"][0]["state"];
-
- ОжидаетЧто(Статус = "ACCEPTED" Или Статус = "SUCCESSFUL").Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_CDEK_УдалитьЗаявкуНаВызовКурьера(Знач Результат, Знач Вариант)
-
- // ОжидаетЧто(Результат["entity"]["uuid"]).Заполнено();
- // ОжидаетЧто(Результат["requests"]).ИмеетТип("Массив").Заполнено();
-
- // Статус = Результат["requests"][0]["state"];
-
- // ОжидаетЧто(Статус = "ACCEPTED" Или Статус = "SUCCESSFUL").Равно(Истина);
-
- Возврат Неопределено;
-
-КонецФункции
-
-Функция Проверка_CDEK_СформироватьКвитанцию(Знач Результат, Знач Вариант, Параметры = "")
-
- ОжидаетЧто(Результат["entity"]["uuid"]).Заполнено();
- ОжидаетЧто(Результат["requests"]).ИмеетТип("Массив").Заполнено();
-
- Статус = Результат["requests"][0]["state"];
-
- ОжидаетЧто(Статус = "ACCEPTED" Или Статус = "SUCCESSFUL").Равно(Истина);
-
- UUID = Результат["entity"]["uuid"];
- ЗаписатьПараметр("CDEK_PrintUUID", UUID);
- OPI_Инструменты.ДобавитьПоле("CDEK_PrintUUID", UUID, "Строка", Параметры);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_CDEK_ПолучитьКвитанцию(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["entity"]["statuses"][0]["code"]).Равно("ACCEPTED");
- ОжидаетЧто(Результат["entity"]["copy_count"]).Равно(1);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_CDEK_СформироватьШтрихкод(Знач Результат, Знач Вариант, Параметры = "")
-
- ОжидаетЧто(Результат["entity"]["uuid"]).Заполнено();
- ОжидаетЧто(Результат["requests"]).ИмеетТип("Массив").Заполнено();
-
- Статус = Результат["requests"][0]["state"];
-
- ОжидаетЧто(Статус = "ACCEPTED" Или Статус = "SUCCESSFUL").Равно(Истина);
-
- UUID = Результат["entity"]["uuid"];
- ЗаписатьПараметр("CDEK_BarcodeUUID", UUID);
- OPI_Инструменты.ДобавитьПоле("CDEK_BarcodeUUID", UUID, "Строка", Параметры);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_CDEK_ПолучитьШтрихкод(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["entity"]["statuses"][0]["code"]).Равно("ACCEPTED");
- ОжидаетЧто(Результат["entity"]["copy_count"]).Равно(1);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_CDEK_ПолучитьДоступныеИнтервалыДоставки(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["date_intervals"]).ИмеетТип("Массив");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_CDEK_ПолучитьОписаниеДоговоренности(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(OPI_Инструменты.ЭтоКоллекция(Результат, Истина)).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_CDEK_ЗафиксироватьДоговоренностьОДоставке(Знач Результат, Знач Вариант, Параметры = "")
-
- ОжидаетЧто(Результат["entity"]["uuid"]).Заполнено();
- ОжидаетЧто(Результат["requests"]).ИмеетТип("Массив").Заполнено();
-
- Статус = Результат["requests"][0]["state"];
-
- ОжидаетЧто(Статус = "ACCEPTED" Или Статус = "SUCCESSFUL").Равно(Истина);
-
- UUID = Результат["entity"]["uuid"];
- ЗаписатьПараметр("CDEK_ApptUUID", UUID);
- OPI_Инструменты.ДобавитьПоле("CDEK_ApptUUID", UUID, "Строка", Параметры);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_CDEK_ПолучитьДоговоренностьОДоставке(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(OPI_Инструменты.ЭтоКоллекция(Результат, Истина)).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_CDEK_СоздатьПреалерт(Знач Результат, Знач Вариант, Параметры = "")
-
- ОжидаетЧто(Результат["entity"]["uuid"]).Заполнено();
- ОжидаетЧто(Результат["requests"]).ИмеетТип("Массив").Заполнено();
-
- Статус = Результат["requests"][0]["state"];
-
- ОжидаетЧто(Статус = "ACCEPTED" Или Статус = "SUCCESSFUL").Равно(Истина);
-
- UUID = Результат["entity"]["uuid"];
- ЗаписатьПараметр("CDEK_PrealertUUID", UUID);
- OPI_Инструменты.ДобавитьПоле("CDEK_PrealertUUID", UUID, "Строка", Параметры);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_CDEK_ПолучитьПреалерт(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["entity"]["shipment_point"]).Заполнено();
- ОжидаетЧто(Результат["requests"]).ИмеетТип("Массив").Заполнено();
-
- Статус = Результат["requests"][0]["state"];
-
- ОжидаетЧто(Статус = "ACCEPTED" Или Статус = "SUCCESSFUL").Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_CDEK_ПолучитьСтатусПаспортныхДанных(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["orders"][0]["passport"][0]["client"]).Равно("SENDER");
- ОжидаетЧто(Результат["orders"][0]["passport"][1]["client"]).Равно("RECEIVER");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_CDEK_ПолучитьЧекЗаказа(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(OPI_Инструменты.ЭтоКоллекция(Результат, Истина)).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_CDEK_ПолучитьЧекиНаДату(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(OPI_Инструменты.ЭтоКоллекция(Результат, Истина)).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_CDEK_ПолучитьРеестрыПлатежейНаДату(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(OPI_Инструменты.ЭтоКоллекция(Результат, Истина)).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_CDEK_ПолучитьПереводыПлатежейНаДату(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(OPI_Инструменты.ЭтоКоллекция(Результат, Истина)).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_CDEK_ПолучитьОписаниеФильтраОфисов(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(OPI_Инструменты.ЭтоКоллекция(Результат, Истина)).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_CDEK_ПолучитьСписокОфисов(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Массив");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_CDEK_ПолучитьСписокРегионов(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Массив");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_YandexMetrika_ПолучитьСписокМеток(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["labels"]).ИмеетТип("Массив");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_YandexMetrika_СоздатьМетку(Знач Результат, Знач Вариант, Параметры = "", Наименование = "")
-
- ОжидаетЧто(Результат["label"]).ИмеетТип("Соответствие");
- ОжидаетЧто(Результат["label"]["id"]).Заполнено();
-
- Если ЗначениеЗаполнено(Наименование) Тогда
- ОжидаетЧто(Результат["label"]["name"]).Равно(Наименование);
- КонецЕсли;
-
- IDМетки = Результат["label"]["id"];
- ЗаписатьПараметр("Metrika_LabelID", IDМетки);
- OPI_Инструменты.ДобавитьПоле("Metrika_LabelID", IDМетки, "Строка", Параметры);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_YandexMetrika_УдалитьМетку(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["success"]).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_YandexMetrika_ИзменитьМетку(Знач Результат, Знач Вариант, Наименование = "")
-
- ОжидаетЧто(Результат["label"]).ИмеетТип("Соответствие");
- ОжидаетЧто(Результат["label"]["id"]).Заполнено();
-
- Если ЗначениеЗаполнено(Наименование) Тогда
- ОжидаетЧто(Результат["label"]["name"]).Равно(Наименование);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_YandexMetrika_ПолучитьМетку(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["label"]).ИмеетТип("Соответствие");
- ОжидаетЧто(Результат["label"]["id"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_YandexMetrika_ПолучитьСтруктуруСчетчика(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(OPI_Инструменты.ЭтоКоллекция(Результат, Истина)).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_YandexMetrika_СоздатьСчетчик(Знач Результат, Знач Вариант, Параметры = "")
-
- ОжидаетЧто(Результат["counter"]).ИмеетТип("Соответствие").Заполнено();
-
- IDСчетчика = Результат["counter"]["id"];
- ЗаписатьПараметр("Metrika_CounterID", IDСчетчика);
- OPI_Инструменты.ДобавитьПоле("Metrika_CounterID", IDСчетчика, "Строка", Параметры);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_YandexMetrika_УдалитьСчетчик(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["success"]).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_YandexMetrika_ИзменитьСчетчик(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["counter"]).ИмеетТип("Соответствие").Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_YandexMetrika_ПолучитьСчетчик(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["counter"]).ИмеетТип("Соответствие").Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_YandexMetrika_ВосстановитьСчетчик(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["success"]).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_YandexMetrika_ПолучитьСписокСчетчиков(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["counters"]).ИмеетТип("Массив").Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_YandexMetrika_ПолучитьСписокОпераций(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["operations"]).ИмеетТип("Массив");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_S3_ПолучитьСтруктуруДанных(Знач Результат, Знач Вариант)
-
- Результат["SecretKey"] = "***";
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_S3_ОтправитьЗапросБезТела(Знач Результат, Знач Вариант)
-
- Возврат Неопределено;
-
-КонецФункции
-
-Функция Проверка_S3_ОтправитьЗапросСТелом(Знач Результат, Знач Вариант)
-
- Возврат Неопределено;
-
-КонецФункции
-
-Функция Проверка_S3_СоздатьБакет(Знач Результат, Знач Вариант)
-
- Если Не ЗначениеЗаполнено(Вариант) Тогда
- Успех = Результат["status"] >= 200 И Результат["status"] < 300;
- ОжидаетЧто(Успех).Равно(Истина);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_S3_УдалитьБакет(Знач Результат, Знач Вариант)
-
- Успех = Результат["status"] >= 200 И Результат["status"] < 300;
- ОжидаетЧто(Успех).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_S3_ПолучитьСписокБакетов(Знач Результат, Знач Вариант)
-
- Успех = Результат["status"] >= 200 И Результат["status"] < 300;
- ОжидаетЧто(Успех).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_S3_ПроверитьДоступностьБакета(Знач Результат, Знач Вариант)
-
- Успех = Результат["status"] >= 200 И Результат["status"] < 300;
- ОжидаетЧто(Успех).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_S3_ПолучитьШифрованиеБакета(Знач Результат, Знач Вариант)
-
- Возврат Неопределено;
-
-КонецФункции
-
-Функция Проверка_S3_УдалитьШифрованиеБакета(Знач Результат, Знач Вариант)
-
- Успех = Результат["status"] >= 200 И Результат["status"] < 300;
- ОжидаетЧто(Успех).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_S3_УстановитьШифрованиеБакета(Знач Результат, Знач Вариант)
-
- Успех = Результат["status"] = 501;
- ОжидаетЧто(Успех).Равно(Истина);
-
- Возврат Неопределено;
-
-КонецФункции
-
-Функция Проверка_S3_ПолучитьТегиБакета(Знач Результат, Знач Вариант)
-
- Успех = Результат["status"] >= 200 И Результат["status"] < 300;
- ОжидаетЧто(Успех).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_S3_УстановитьТегиБакета(Знач Результат, Знач Вариант)
-
- Успех = Результат["status"] >= 200 И Результат["status"] < 300;
- ОжидаетЧто(Успех).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_S3_УдалитьТегиБакета(Знач Результат, Знач Вариант)
-
- Успех = Результат["status"] >= 200 И Результат["status"] < 300;
- ОжидаетЧто(Успех).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_S3_ПолучитьНастройкийВерсионированияБакета(Знач Результат, Знач Вариант)
-
- Успех = Результат["status"] >= 200 И Результат["status"] < 300;
- ОжидаетЧто(Успех).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_S3_УстановитьНастройкиВерсионированияБакета(Знач Результат, Знач Вариант)
-
- Успех = Результат["status"] >= 200 И Результат["status"] < 300;
- ОжидаетЧто(Успех).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_S3_ЗагрузитьОбъект(Знач Результат, Знач Вариант)
-
- Успех = Результат["status"] >= 200 И Результат["status"] < 300;
- ОжидаетЧто(Успех).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_S3_ЗагрузитьОбъектЦеликом(Знач Результат, Знач Вариант)
-
- Успех = Результат["status"] >= 200 И Результат["status"] < 300;
- ОжидаетЧто(Успех).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_S3_УдалитьОбъект(Знач Результат, Знач Вариант)
-
- Успех = Результат["status"] >= 200 И Результат["status"] < 300;
- ОжидаетЧто(Успех).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_S3_ПолучитьОписаниеОбъекта(Знач Результат, Знач Вариант)
-
- Успех = Результат["status"] >= 200 И Результат["status"] < 300;
- ОжидаетЧто(Успех).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_S3_КопироватьОбъект(Знач Результат, Знач Вариант)
-
- Успех = Результат["status"] >= 200 И Результат["status"] < 300;
- ОжидаетЧто(Успех).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_S3_УстановитьТегиОбъекта(Знач Результат, Знач Вариант)
-
- Успех = Результат["status"] >= 200 И Результат["status"] < 300;
- ОжидаетЧто(Успех).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_S3_ПолучитьТегиОбъекта(Знач Результат, Знач Вариант)
-
- Успех = Результат["status"] >= 200 И Результат["status"] < 300;
- ОжидаетЧто(Успех).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_S3_УдалитьТегиОбъекта(Знач Результат, Знач Вариант)
-
- Успех = Результат["status"] >= 200 И Результат["status"] < 300;
- ОжидаетЧто(Успех).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_S3_ПолучитьСписокОбъектов(Знач Результат, Знач Вариант)
-
- Успех = Результат["status"] >= 200 И Результат["status"] < 300;
- ОжидаетЧто(Успех).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_S3_ПолучитьСписокВерсийОбъектов(Знач Результат, Знач Вариант)
-
- Успех = Результат["status"] >= 200 И Результат["status"] < 300;
- ОжидаетЧто(Успех).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_S3_ПолучитьОбъект(Знач Результат, Знач Вариант, Размер = "")
-
- Если Вариант = "Файл" Или Вариант = "Большой файл" Тогда
-
- Если Не ТипЗнч(Результат) = Тип("ДвоичныеДанные") Тогда
-
- Результат = Новый Файл(Результат);
- ОжидаетЧто(Результат).ИмеетТип("Файл");
- ОжидаетЧто(Результат.Существует()).Равно(Истина);
-
- КонецЕсли;
-
- Иначе
- ОжидаетЧто(Результат).ИмеетТип("ДвоичныеДанные");
- КонецЕсли;
-
- ОжидаетЧто(Результат.Размер() >= Размер).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_S3_ИнициализироватьЗагрузкуЧастями(Знач Результат, Знач Вариант)
-
- Успех = Результат["status"] >= 200 И Результат["status"] < 300;
- ОжидаетЧто(Успех).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_S3_ЗавершитьЗагрузкуЧастями(Знач Результат, Знач Вариант)
-
- Успех = Результат["status"] >= 200 И Результат["status"] < 300;
- ОжидаетЧто(Успех).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_S3_ЗагрузитьЧастьОбъекта(Знач Результат, Знач Вариант)
-
- Успех = Результат["status"] >= 200 И Результат["status"] < 300;
- ОжидаетЧто(Успех).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_S3_ОтменитьЗагрузкуЧастями(Знач Результат, Знач Вариант)
-
- Успех = Результат["status"] >= 200 И Результат["status"] < 300;
- ОжидаетЧто(Успех).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_S3_ПолучитьСсылкуСкачиванияОбъекта(Знач Результат, Знач Вариант, Размер = "")
-
- Если Не ЗначениеЗаполнено(Вариант) Тогда
- ОжидаетЧто(Результат).ИмеетТип("Строка");
- Иначе
- ОжидаетЧто(Результат).ИмеетТип("ДвоичныеДанные");
- ОжидаетЧто(Результат.Размер() >= Размер).Равно(Истина);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_S3_ПолучитьСсылкуЗагрузкиОбъекта(Знач Результат, Знач Вариант, Размер = "")
-
- Если Не ЗначениеЗаполнено(Вариант) Тогда
- ОжидаетЧто(Результат).ИмеетТип("Строка");
- ИначеЕсли Вариант = "Проверка" Тогда
- ОжидаетЧто(Число(Результат["headers"]["Content-Length"])).Равно(Размер);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_ReportPortal_ПолучитьВременныйТокен(Знач Результат, Знач Вариант, Параметры = "")
-
- Токен = Результат["access_token"];
-
- ОжидаетЧто(Токен).Заполнено();
-
- ЗаписатьПараметр("RPortal_TempToken", Токен);
- Параметры.Вставить("RPortal_TempToken", Токен);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_ReportPortal_ПолучитьПостоянныйТокен(Знач Результат, Знач Вариант, Параметры = "")
-
- Токен = Результат["api_key"];
- UID = Результат["id"];
-
- ОжидаетЧто(Токен).Заполнено();
-
- ЗаписатьПараметр("RPortal_TestApiKey", Токен);
- Параметры.Вставить("RPortal_TestApiKey", Токен);
-
- ЗаписатьПараметр("RPortal_TestKeyID", UID);
- Параметры.Вставить("RPortal_TestKeyID", UID);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_ReportPortal_УдалитьПостоянныйТокен(Знач Результат, Знач Вариант)
-
- Ответ = Результат["message"];
- ОжидаетЧто(СтрЗаканчиваетсяНа(Ответ, "was successfully deleted.")).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_TCP_ЗакрытьСоединение(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_TCP_ОткрытьСоединение(Знач Результат, Знач Вариант)
-
- Результат = Строка(ТипЗнч(Результат));
-
- ОжидаетЧто(Результат).Равно("AddIn.OPI_TCPClient.Main");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_TCP_ПрочитатьДвоичныеДанные(Знач Результат, Знач Вариант, Сообщение = "")
-
- Результат = ПолучитьСтрокуИзДвоичныхДанных(Результат);
-
- ОжидаетЧто(Результат).Равно(Сообщение);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_TCP_ОтправитьДвоичныеДанные(Знач Результат, Знач Вариант, Сообщение = "")
-
- Результат = ПолучитьСтрокуИзДвоичныхДанных(Результат);
-
- ОжидаетЧто(Результат).Равно(Сообщение);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_TCP_ОбработатьЗапрос(Знач Результат, Знач Вариант, Сообщение = "")
-
- ОжидаетЧто(Результат).Равно(Сообщение);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_TCP_ПрочитатьСтроку(Знач Результат, Знач Вариант, Сообщение = "")
-
- ОжидаетЧто(Результат).Равно(Сообщение);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_TCP_ОтправитьСтроку(Знач Результат, Знач Вариант, Сообщение = "")
-
- ОжидаетЧто(Результат).Равно(Сообщение);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_TCP_ПолучитьНастройкиTls(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(OPI_Инструменты.ЭтоКоллекция(Результат, Истина)).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_TCP_ПолучитьПоследнююОшибку(Знач Результат, Знач Вариант)
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_SQLite_ОткрытьСоединение(Знач Результат, Знач Вариант)
-
- Если Вариант = "Закрытие" Тогда
- ОжидаетЧто(Результат["result"]).Равно(Истина);
- Иначе
- Результат = Строка(ТипЗнч(Результат));
- ОжидаетЧто(Результат).Равно("AddIn.OPI_SQLite.Main");
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_SQLite_ЗакрытьСоединение(Знач Результат, Знач Вариант)
-
- Если Вариант = "Открытие" Тогда
- Результат = Строка(ТипЗнч(Результат));
- ОжидаетЧто(Результат).Равно("AddIn.OPI_SQLite.Main");
- Иначе
- ОжидаетЧто(Результат["result"]).Равно(Истина);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_SQLite_ВыполнитьЗапросSQL(Знач Результат, Знач Вариант, Картинка = "")
-
- Если Не ЗначениеЗаполнено(Вариант) Тогда
-
- ОжидаетЧто(Результат["result"]).Равно(Истина);
-
- Blob = Результат["data"][0]["data"]["blob"];
- Результат["data"][0]["data"]["blob"] = "Base64";
-
- ОжидаетЧто(Base64Значение(Blob).Размер()).Равно(Картинка.Размер());
-
- ИначеЕсли Вариант = "Открытие" Тогда
-
- Результат = Строка(ТипЗнч(Результат));
- ОжидаетЧто(Результат).Равно("AddIn.OPI_SQLite.Main");
-
- ИначеЕсли Вариант = "Расширение" Тогда
-
- ОжидаетЧто(Результат["result"]).Равно(Истина);
- ОжидаетЧто(Результат["data"]).ИмеетТип("Массив").ИмеетДлину(1);
-
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_SQLite_ЭтоКоннектор(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_SQLite_СоздатьТаблицу(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_SQLite_ДобавитьЗаписи(Знач Результат, Знач Вариант)
-
- Если Вариант = "Ошибка поля" Или Вариант = "Ошибка JSON" Тогда
- ОжидаетЧто(Результат["result"]).Равно(Ложь);
- ИначеЕсли Вариант = "Ошибка без транзакции" Тогда
- ОжидаетЧто(Результат["rows"] = 1 Или Результат["rows"] = 2).Равно(Истина);
- Иначе
- ОжидаетЧто(Результат["result"]).Равно(Истина);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_SQLite_ПолучитьЗаписи(Знач Результат, Знач Вариант)
-
- Если Вариант = "Ошибка" Тогда
- ОжидаетЧто(Результат["result"]).Равно(Ложь);
- Иначе
- ОжидаетЧто(Результат["result"]).Равно(Истина);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_SQLite_ОбновитьЗаписи(Знач Результат, Знач Вариант, СтруктураПолей = "")
-
- ОжидаетЧто(Результат["result"]).Равно(Истина);
-
- Если Вариант = "Проверка" Тогда
-
- Проверка = Результат["data"][0];
-
- Для Каждого Значение Из СтруктураПолей Цикл
- Проверка[Значение.Ключ] = Значение.Значение;
- КонецЦикла;
-
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_SQLite_УдалитьЗаписи(Знач Результат, Знач Вариант)
-
- Если Вариант = "Проверка" Тогда
- ОжидаетЧто(Результат["data"].Количество()).Равно(0);
- Иначе
- ОжидаетЧто(Результат["result"]).Равно(Истина);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_SQLite_ПолучитьИнформациюОТаблице(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_SQLite_ПолучитьСтруктуруФильтраЗаписей(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(OPI_Инструменты.ЭтоКоллекция(Результат, Истина)).Равно(Истина);
-
- Если Вариант = "Пустая" Тогда
-
- Для Каждого Элемент Из Результат Цикл
-
- Если OPI_Инструменты.ЭтоПримитивныйТип(Элемент.Значение) Тогда
- ОжидаетЧто(ЗначениеЗаполнено(Элемент.Значение)).Равно(Ложь);
- КонецЕсли;
-
- КонецЦикла;
-
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_SQLite_УдалитьТаблицу(Знач Результат, Знач Вариант)
-
- Если Вариант = "Проверка" Тогда
- ОжидаетЧто(Результат["data"].Количество()).Равно(0);
- Иначе
- ОжидаетЧто(Результат["result"]).Равно(Истина);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_SQLite_ОчиститьТаблицу(Знач Результат, Знач Вариант)
-
- Если Вариант = "Проверка" Тогда
-
- ОжидаетЧто(Результат["data"].Количество()).Равно(0);
-
- ИначеЕсли Вариант = "Таблица" Тогда
-
- ОжидаетЧто(Результат["data"].Количество()).Равно(5);
-
- Иначе
- ОжидаетЧто(Результат["result"]).Равно(Истина);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_SQLite_ПодключитьРасширение(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).Равно(Истина);
-
- Если Вариант = "Проверка" Тогда
- ОжидаетЧто(Результат["data"].Количество()).Равно(1);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_SQLite_ДобавитьКолонкуТаблицы(Знач Результат, Знач Вариант)
-
- Если Вариант = "Проверка" Тогда
-
- Найдена = Ложь;
-
- Для Каждого Колонка Из Результат["data"] Цикл
-
- Если Колонка["name"] = "new_col" Тогда
-
- ОжидаетЧто(Колонка["type"]).Равно("TEXT");
- Найдена = Истина;
-
- КонецЕсли;
-
- КонецЦикла;
-
- ОжидаетЧто(Найдена).Равно(Истина);
-
- Иначе
- ОжидаетЧто(Результат["result"]).Равно(Истина);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_SQLite_УдалитьКолонкуТаблицы(Знач Результат, Знач Вариант)
-
- Если Вариант = "Проверка" Тогда
-
- Найдена = Ложь;
-
- Для Каждого Колонка Из Результат["data"] Цикл
-
- Если Колонка["name"] = "new_col" Тогда
-
- Найдена = Истина;
-
- КонецЕсли;
-
- КонецЦикла;
-
- ОжидаетЧто(Найдена).Равно(Ложь);
-
- Иначе
- ОжидаетЧто(Результат["result"]).Равно(Истина);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_SQLite_ГарантироватьТаблицу(Знач Результат, Знач Вариант, СтруктураКолонок = "")
-
- ОжидаетЧто(Результат["result"]).Равно(Истина);
-
- Если Не ЗначениеЗаполнено(Вариант) Или Вариант = "Новая" Тогда
-
- ОжидаетЧто(Результат["commit"]["result"]).Равно(Истина);
-
- Иначе
-
- ОжидаетЧто(Результат["data"].Количество()).Равно(СтруктураКолонок.Количество());
-
- Для Каждого Колонка Из Результат["data"] Цикл
- ОжидаетЧто(Колонка["type"]).Равно(СтруктураКолонок[Колонка["name"]]);
- КонецЦикла;
-
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_PostgreSQL_СформироватьСтрокуПодключения(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Строка").Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_PostgreSQL_ОткрытьСоединение(Знач Результат, Знач Вариант)
-
- Результат = Строка(ТипЗнч(Результат));
- ОжидаетЧто(Результат).Равно("AddIn.OPI_PostgreSQL.Main");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_PostgreSQL_ЗакрытьСоединение(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_PostgreSQL_ЭтоКоннектор(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_PostgreSQL_ВыполнитьЗапросSQL(Знач Результат, Знач Вариант, Картинка = "")
-
- Если Вариант = "Соединение" Тогда
-
- Результат = Строка(ТипЗнч(Результат));
- ОжидаетЧто(Результат).Равно("AddIn.OPI_PostgreSQL.Main");
-
- ИначеЕсли ЗначениеЗаполнено(Вариант) Тогда
-
- ОжидаетЧто(Результат["result"]).Равно(Истина);
-
- Иначе
-
- Blob = Результат["data"][0]["data"]["BYTEA"];
-
- Результат["data"][0]["data"]["BYTEA"] = "Base64";
- ОжидаетЧто(Результат["result"]).Равно(Истина);
- ОжидаетЧто(Base64Значение(Blob).Размер()).Равно(Картинка.Размер());
-
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_PostgreSQL_СоздатьБазуДанных(Знач Результат, Знач Вариант)
-
- Если Вариант = "Открытие" Тогда
-
- Результат = Строка(ТипЗнч(Результат));
- ОжидаетЧто(Результат).Равно("AddIn.OPI_PostgreSQL.Main");
-
- ИначеЕсли Вариант = "Существующая" Тогда
- ОжидаетЧто(Результат["result"]).Равно(Ложь);
- Иначе
- ОжидаетЧто(Результат["result"]).Равно(Истина);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_PostgreSQL_СоздатьТаблицу(Знач Результат, Знач Вариант)
-
- Если Не ЗначениеЗаполнено(Вариант) Тогда
- ОжидаетЧто(Результат["result"]).Равно(Истина);
- Иначе
- ОжидаетЧто(Результат["result"]).Равно(Ложь);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_PostgreSQL_ПолучитьИнформациюОТаблице(Знач Результат, Знач Вариант)
-
- Если Не ЗначениеЗаполнено(Вариант) Тогда
- ОжидаетЧто(Результат["data"].Количество()).Равно(25);
- Иначе
- ОжидаетЧто(Результат["data"].Количество()).Равно(0);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_PostgreSQL_ДобавитьЗаписи(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_PostgreSQL_ПолучитьЗаписи(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).Равно(Истина);
-
- Если Не ЗначениеЗаполнено(Вариант) Тогда
-
- Если ЗначениеЗаполнено(Результат["data"]) Тогда
- Результат["data"][0]["bytea_field"]["BYTEA"] = Лев(Результат["data"][0]["bytea_field"]["BYTEA"], 10) + "...";
- КонецЕсли;
-
- Иначе
- ОжидаетЧто(Результат["data"].Количество()).Равно(5);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_PostgreSQL_ОбновитьЗаписи(Знач Результат, Знач Вариант, Количество = "", СтруктураПолей = "")
-
- ОжидаетЧто(Результат["result"]).Равно(Истина);
-
- Если Вариант = "Проверка" Тогда
-
- ОжидаетЧто(Результат["data"].Количество()).Равно(Количество);
-
- Для Н = 0 По Результат["data"].ВГраница() Цикл
-
- Для Каждого Значение Из СтруктураПолей Цикл
- Результат["data"][Н][Значение.Ключ] = Значение.Значение;
- КонецЦикла;
-
- КонецЦикла;
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_PostgreSQL_УдалитьЗаписи(Знач Результат, Знач Вариант, Количество = "")
-
- ОжидаетЧто(Результат["result"]).Равно(Истина);
-
- Если Вариант = "Проверка" Тогда
- ОжидаетЧто(Результат["data"].Количество()).Равно(Количество);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_PostgreSQL_УдалитьТаблицу(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_PostgreSQL_УдалитьБазуДанных(Знач Результат, Знач Вариант)
-
- Если Вариант = "Открытие" Тогда
-
- Результат = Строка(ТипЗнч(Результат));
- ОжидаетЧто(Результат).Равно("AddIn.OPI_PostgreSQL.Main");
-
- ИначеЕсли Вариант = "Ошибка" Или Вариант = "Ошибка подключения" Тогда
- ОжидаетЧто(Результат["result"]).Равно(Ложь);
- Иначе
- ОжидаетЧто(Результат["result"]).Равно(Истина);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_PostgreSQL_ОчиститьТаблицу(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).Равно(Истина);
-
- Если Вариант = "Проверка" Тогда
- ОжидаетЧто(Результат["data"].Количество()).Равно(0);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_PostgreSQL_ОтключитьВсеСоединенияБазыДанных(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_PostgreSQL_ПолучитьСтруктуруФильтраЗаписей(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(OPI_Инструменты.ЭтоКоллекция(Результат, Истина)).Равно(Истина);
-
- Если Вариант = "Пустая" Тогда
-
- Для Каждого Элемент Из Результат Цикл
-
- Если OPI_Инструменты.ЭтоПримитивныйТип(Элемент.Значение) Тогда
- ОжидаетЧто(ЗначениеЗаполнено(Элемент.Значение)).Равно(Ложь);
- КонецЕсли;
-
- КонецЦикла;
-
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_PostgreSQL_ПолучитьНастройкиTLS(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(OPI_Инструменты.ЭтоКоллекция(Результат, Истина)).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_PostgreSQL_ДобавитьКолонкуТаблицы(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).Равно(Истина);
-
- Если Вариант = "Проверка" Тогда
-
- Найдена = Ложь;
-
- Для Каждого Колонка Из Результат["data"] Цикл
-
- Если Колонка["column_name"] = "new_field" Тогда
- ОжидаетЧто(нРег(Колонка["data_type"])).Равно("text");
- Найдена = Истина;
- КонецЕсли;
-
- КонецЦикла;
-
- ОжидаетЧто(Найдена).Равно(Истина);
-
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_PostgreSQL_УдалитьКолонкуТаблицы(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).Равно(Истина);
-
- Если Вариант = "Проверка" Тогда
-
- Найдена = Ложь;
-
- Для Каждого Колонка Из Результат["data"] Цикл
-
- Если Колонка["column_name"] = "new_field" Тогда
- Найдена = Истина;
- КонецЕсли;
-
- КонецЦикла;
-
- ОжидаетЧто(Найдена).Равно(Ложь);
-
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_PostgreSQL_ГарантироватьТаблицу(Знач Результат, Знач Вариант, СтруктураКолонок = "")
-
- ОжидаетЧто(Результат["result"]).Равно(Истина);
-
- Если Вариант = "Проверка" Тогда
-
- ОжидаетЧто(Результат["data"].Количество()).Равно(СтруктураКолонок.Количество());
-
- Для Каждого Колонка Из Результат["data"] Цикл
- ОжидаетЧто(нРег(Колонка["data_type"])).Равно(нРег(СтруктураКолонок[Колонка["column_name"]]));
- КонецЦикла;
-
- Иначе
- ОжидаетЧто(Результат["commit"]["result"]).Равно(Истина);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_MySQL_СформироватьСтрокуПодключения(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Строка").Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_MySQL_ОткрытьСоединение(Знач Результат, Знач Вариант)
-
- Результат = Строка(ТипЗнч(Результат));
- ОжидаетЧто(Результат).Равно("AddIn.OPI_MySQL.Main");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_MySQL_ЗакрытьСоединение(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_MySQL_ЭтоКоннектор(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_MySQL_ВыполнитьЗапросSQL(Знач Результат, Знач Вариант, Картинка = "")
-
- Если Вариант = "Соединение" Тогда
-
- Результат = Строка(ТипЗнч(Результат));
- ОжидаетЧто(Результат).Равно("AddIn.OPI_MySQL.Main");
-
- ИначеЕсли ЗначениеЗаполнено(Вариант) Тогда
-
- ОжидаетЧто(Результат["result"]).Равно(Истина);
-
- Иначе
-
- Blob = Результат["data"][0]["data"]["BYTES"];
-
- Результат["data"][0]["data"]["BYTES"] = "Base64";
- ОжидаетЧто(Результат["result"]).Равно(Истина);
- ОжидаетЧто(Base64Значение(Blob).Размер()).Равно(Картинка.Размер());
-
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_MySQL_СоздатьБазуДанных(Знач Результат, Знач Вариант)
-
- Если Вариант = "Открытие" Тогда
-
- Результат = Строка(ТипЗнч(Результат));
- ОжидаетЧто(Результат).Равно("AddIn.OPI_MySQL.Main");
-
- ИначеЕсли Вариант = "Существующая" Тогда
- ОжидаетЧто(Результат["result"]).Равно(Ложь);
- Иначе
- ОжидаетЧто(Результат["result"]).Равно(Истина);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_MySQL_СоздатьТаблицу(Знач Результат, Знач Вариант)
-
- Если Не ЗначениеЗаполнено(Вариант) Тогда
- ОжидаетЧто(Результат["result"]).Равно(Истина);
- Иначе
- ОжидаетЧто(Результат["result"]).Равно(Ложь);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_MySQL_ДобавитьЗаписи(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_MySQL_ПолучитьЗаписи(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).Равно(Истина);
-
- Если Не ЗначениеЗаполнено(Вариант) Тогда
-
- Если ЗначениеЗаполнено(Результат["data"]) Тогда
-
- Результат["data"][0]["mediumblob_field"]["BYTES"] =
- Лев(Результат["data"][0]["mediumblob_field"]["BYTES"], 10) + "...";
-
- КонецЕсли;
-
- Иначе
- ОжидаетЧто(Результат["data"].Количество()).Равно(5);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_MySQL_ОбновитьЗаписи(Знач Результат, Знач Вариант, Количество = "", СтруктураПолей = "")
-
- ОжидаетЧто(Результат["result"]).Равно(Истина);
-
- Если Вариант = "Проверка" Тогда
-
- ОжидаетЧто(Результат["data"].Количество()).Равно(Количество);
-
- Для Н = 0 По Результат["data"].ВГраница() Цикл
-
- Для Каждого Значение Из СтруктураПолей Цикл
- Результат["data"][Н][Значение.Ключ] = Значение.Значение;
- КонецЦикла;
-
- КонецЦикла;
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_MySQL_УдалитьЗаписи(Знач Результат, Знач Вариант, Количество = "")
-
- ОжидаетЧто(Результат["result"]).Равно(Истина);
-
- Если Вариант = "Проверка" Тогда
- ОжидаетЧто(Результат["data"].Количество()).Равно(Количество);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_MySQL_УдалитьТаблицу(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_MySQL_УдалитьБазуДанных(Знач Результат, Знач Вариант)
-
- Если Вариант = "Открытие" Тогда
-
- Результат = Строка(ТипЗнч(Результат));
- ОжидаетЧто(Результат).Равно("AddIn.OPI_MySQL.Main");
-
- ИначеЕсли Вариант = "Ошибка" Или Вариант = "Ошибка подключения" Тогда
- ОжидаетЧто(Результат["result"]).Равно(Ложь);
- Иначе
- ОжидаетЧто(Результат["result"]).Равно(Истина);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_MySQL_ОчиститьТаблицу(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).Равно(Истина);
-
- Если Вариант = "Проверка" Тогда
- ОжидаетЧто(Результат["data"].Количество()).Равно(0);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_MySQL_ПолучитьСтруктуруФильтраЗаписей(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(OPI_Инструменты.ЭтоКоллекция(Результат, Истина)).Равно(Истина);
-
- Если Вариант = "Пустая" Тогда
-
- Для Каждого Элемент Из Результат Цикл
-
- Если OPI_Инструменты.ЭтоПримитивныйТип(Элемент.Значение) Тогда
- ОжидаетЧто(ЗначениеЗаполнено(Элемент.Значение)).Равно(Ложь);
- КонецЕсли;
-
- КонецЦикла;
-
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_MySQL_ПолучитьНастройкиTLS(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(OPI_Инструменты.ЭтоКоллекция(Результат, Истина)).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_MySQL_ПолучитьИнформациюОТаблице(Знач Результат, Знач Вариант)
-
- Если Не ЗначениеЗаполнено(Вариант) Тогда
- ОжидаетЧто(Результат["data"].Количество()).Равно(20);
- Иначе
- ОжидаетЧто(Результат["data"].Количество()).Равно(0);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_MySQL_ДобавитьКолонкуТаблицы(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).Равно(Истина);
-
- Если Вариант = "Проверка" Тогда
-
- Найдена = Ложь;
-
- Для Каждого Колонка Из Результат["data"] Цикл
-
- Если Колонка["COLUMN_NAME"] = "new_field" Тогда
-
- ТекущийТип = ПолучитьСтрокуИзДвоичныхДанных(Base64Значение(Колонка["DATA_TYPE"]["BYTES"]));
- ОжидаетЧто(нРег(ТекущийТип)).Равно("mediumtext");
- Найдена = Истина;
- КонецЕсли;
-
- КонецЦикла;
-
- ОжидаетЧто(Найдена).Равно(Истина);
-
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_MySQL_УдалитьКолонкуТаблицы(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).Равно(Истина);
-
- Если Вариант = "Проверка" Тогда
-
- Найдена = Ложь;
-
- Для Каждого Колонка Из Результат["data"] Цикл
-
- Если Колонка["COLUMN_NAME"] = "new_field" Тогда
- Найдена = Истина;
- КонецЕсли;
-
- КонецЦикла;
-
- ОжидаетЧто(Найдена).Равно(Ложь);
-
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_MySQL_ГарантироватьТаблицу(Знач Результат, Знач Вариант, СтруктураКолонок = "")
-
- ОжидаетЧто(Результат["result"]).Равно(Истина);
-
- Если Вариант = "Проверка" Тогда
-
- ОжидаетЧто(Результат["data"].Количество()).Равно(СтруктураКолонок.Количество());
-
- Для Каждого Колонка Из Результат["data"] Цикл
- ТекущийТип = ПолучитьСтрокуИзДвоичныхДанных(Base64Значение(Колонка["DATA_TYPE"]["BYTES"]));
- ОжидаетЧто(нРег(ТекущийТип)).Равно(нРег(СтруктураКолонок[Колонка["COLUMN_NAME"]]));
- КонецЦикла;
-
- Иначе
- ОжидаетЧто(Результат["commit"]["result"]).Равно(Истина);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GreenAPI_СформироватьПараметрыДоступа(Знач Результат, Знач Вариант)
-
- Результат.Вставить("apiTokenInstance", "***");
- ОжидаетЧто(OPI_Инструменты.ЭтоКоллекция(Результат, Истина)).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GreenAPI_ПолучитьНастройкиИнстанса(Знач Результат, Знач Вариант, Параметры = "")
-
- Попытка
- JSON = OPI_Инструменты.JSONСтрокой(Результат);
- JSON = СтрЗаменить(JSON, Параметры["GreenAPI_AccountID"], "1234567890@c.us");
-
- Результат = OPI_Инструменты.JsonВСтруктуру(JSON, Истина);
- Исключение
- Сообщить("Ошибка JSON");
- КонецПопытки;
-
- ОжидаетЧто(Результат["proxyInstance"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GreenAPI_ПолучитьИнформациюОбАккаунте(Знач Результат, Знач Вариант)
-
- Попытка
- Результат["deviceId"] = "***";
- Результат["phone"] = "***";
- Исключение
- Сообщить("Не удалось заменить секреты!");
- КонецПопытки;
-
- ОжидаетЧто(Результат["deviceId"]).Заполнено();
- ОжидаетЧто(Результат["phone"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GreenAPI_ПолучитьСтруктуруНастроекИнстанса(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(OPI_Инструменты.ЭтоКоллекция(Результат, Истина)).Равно(Истина);
-
- Если Вариант = "Пустая" Тогда
-
- Для Каждого Элемент Из Результат Цикл
-
- Если OPI_Инструменты.ЭтоПримитивныйТип(Элемент.Значение) Тогда
- ОжидаетЧто(ЗначениеЗаполнено(Элемент.Значение)).Равно(Ложь);
- КонецЕсли;
-
- КонецЦикла;
-
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GreenAPI_УстановитьНастройкиИнстанса(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["saveSettings"]).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GreenAPI_ПолучитьСостояниеИнстанса(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["stateInstance"]).Равно("authorized");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GreenAPI_ПерезапуститьИнстанс(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["isReboot"]).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GreenAPI_ПолучитьQR(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("ДвоичныеДанные");
- ОжидаетЧто(Результат.Размер() >= 0).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GreenAPI_РазлогинитьИнстанс(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["isLogout"]).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GreenAPI_ПолучитьКодАвторизации(Знач Результат, Знач Вариант)
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GreenAPI_УстановитьКартинкуПрофиля(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["setProfilePicture"]).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GreenAPI_СоздатьГруппу(Знач Результат, Знач Вариант, Параметры = "")
-
- ОжидаетЧто(Результат["created"]).Равно(Истина);
- ОжидаетЧто(Результат["chatId"]).Заполнено();
-
- IDГруппы = Результат["chatId"];
- ЗаписатьПараметр("GreenAPI_GroupID", IDГруппы);
- OPI_Инструменты.ДобавитьПоле("GreenAPI_GroupID", IDГруппы, "Строка", Параметры);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GreenAPI_ПокинутьГруппу(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["removeAdmin"]).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GreenAPI_ПолучитьИнформациюОГруппе(Знач Результат, Знач Вариант)
-
- Попытка
- Результат["owner"] = "***";
- Результат["participants"][0]["id"] = "***";
- Исключение
- Сообщить("Не удалось заменить секреты!");
- КонецПопытки;
-
- ОжидаетЧто(Результат["groupId"]).Заполнено();
- ОжидаетЧто(Результат["owner"]).Заполнено();
- ОжидаетЧто(Результат["creation"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GreenAPI_ИзменитьИмяГруппы(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["updateGroupName"]).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GreenAPI_ДобавитьУчастникаВГруппу(Знач Результат, Знач Вариант)
-
- Попытка
- Результат["addParticipant"] = Истина;
- Исключение
- Сообщить("Не удалось заменить секреты!");
- КонецПопытки;
-
- ОжидаетЧто(Результат["addParticipant"]).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GreenAPI_ИсключитьУчастникаГруппы(Знач Результат, Знач Вариант)
-
- Попытка
- Результат["removeParticipant"] = Истина;
- Исключение
- Сообщить("Не удалось заменить секреты!");
- КонецПопытки;
-
- ОжидаетЧто(Результат["removeParticipant"]).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GreenAPI_НазначитьПраваАдминистратора(Знач Результат, Знач Вариант)
-
- Попытка
- Результат["setGroupAdmin"] = Истина;
- Исключение
- Сообщить("Не удалось заменить секреты!");
- КонецПопытки;
-
- ОжидаетЧто(Результат["setGroupAdmin"]).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GreenAPI_ОтозватьПраваАдминистратора(Знач Результат, Знач Вариант)
-
- Попытка
- Результат["removeAdmin"] = Истина;
- Исключение
- Сообщить("Не удалось заменить секреты!");
- КонецПопытки;
-
- ОжидаетЧто(Результат["removeAdmin"]).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GreenAPI_УстановитьКартинкуГруппы(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["setGroupPicture"]).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GreenAPI_ОтправитьТекстовоеСообщение(Знач Результат, Знач Вариант, Параметры = "")
-
- ОжидаетЧто(Результат["idMessage"]).Заполнено();
-
- Если Не ЗначениеЗаполнено(Вариант) Тогда
-
- IDСообщения = Результат["idMessage"];
- ЗаписатьПараметр("GreenAPI_MessageID", IDСообщения);
- OPI_Инструменты.ДобавитьПоле("GreenAPI_MessageID", IDСообщения, "Строка", Параметры);
-
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GreenAPI_УдалитьСообщение(Знач Результат, Знач Вариант)
-
- Если Не нРег(Строка(Результат)) = "null" Тогда
- ОжидаетЧто(ЗначениеЗаполнено(Результат)).Равно(Ложь);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GreenAPI_ИзменитьТекстСообщения(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["idMessage"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GreenAPI_ОтправитьФайл(Знач Результат, Знач Вариант, Параметры = "")
-
- ОжидаетЧто(Результат["idMessage"]).Заполнено();
- ОжидаетЧто(Результат["urlFile"]).Заполнено();
-
- Если Не ЗначениеЗаполнено(Вариант) Тогда
- IDСообщения = Результат["idMessage"];
- ЗаписатьПараметр("GreenAPI_FileMessageID", IDСообщения);
- OPI_Инструменты.ДобавитьПоле("GreenAPI_FileMessageID", IDСообщения, "Строка", Параметры);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GreenAPI_ОтправитьФайлПоURL(Знач Результат, Знач Вариант, Параметры = "")
-
- ОжидаетЧто(Результат["idMessage"]).Заполнено();
-
- Если Не ЗначениеЗаполнено(Вариант) Тогда
- IDСообщения = Результат["idMessage"];
- ЗаписатьПараметр("GreenAPI_FileMessageID", IDСообщения);
- OPI_Инструменты.ДобавитьПоле("GreenAPI_FileMessageID", IDСообщения, "Строка", Параметры);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GreenAPI_ОтправитьОпрос(Знач Результат, Знач Вариант, Параметры = "")
-
- ОжидаетЧто(Результат["idMessage"]).Заполнено();
-
- Если Не ЗначениеЗаполнено(Вариант) Тогда
- IDСообщения = Результат["idMessage"];
- ЗаписатьПараметр("GreenAPI_PollMessageID", IDСообщения);
- OPI_Инструменты.ДобавитьПоле("GreenAPI_PollMessageID", IDСообщения, "Строка", Параметры);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GreenAPI_ПолучитьОписаниеЛокации(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(OPI_Инструменты.ЭтоКоллекция(Результат, Истина)).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GreenAPI_ОтправитьЛокацию(Знач Результат, Знач Вариант, Параметры = "")
-
- ОжидаетЧто(Результат["idMessage"]).Заполнено();
-
- Если Не ЗначениеЗаполнено(Вариант) Тогда
- IDСообщения = Результат["idMessage"];
- ЗаписатьПараметр("GreenAPI_LocMessageID", IDСообщения);
- OPI_Инструменты.ДобавитьПоле("GreenAPI_LocMessageID", IDСообщения, "Строка", Параметры);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GreenAPI_ПолучитьОписаниеКонтакта(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(OPI_Инструменты.ЭтоКоллекция(Результат, Истина)).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GreenAPI_ОтправитьКонтакт(Знач Результат, Знач Вариант, Параметры = "")
-
- ОжидаетЧто(Результат["idMessage"]).Заполнено();
-
- Если Не ЗначениеЗаполнено(Вариант) Тогда
- IDСообщения = Результат["idMessage"];
- ЗаписатьПараметр("GreenAPI_ContactMessageID", IDСообщения);
- OPI_Инструменты.ДобавитьПоле("GreenAPI_ContactMessageID", IDСообщения, "Строка", Параметры);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GreenAPI_ПереслатьСообщения(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["messages"]).ИмеетТип("Массив").Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GreenAPI_ПолучитьУведомление(Знач Результат, Знач Вариант, Параметры = "")
-
- Попытка
- JSON = OPI_Инструменты.JSONСтрокой(Результат);
- JSON = СтрЗаменить(JSON, Параметры["GreenAPI_AccountID"], "1234567890@c.us");
-
- Результат = OPI_Инструменты.JsonВСтруктуру(JSON, Истина);
- Исключение
- Сообщить("Ошибка JSON");
- КонецПопытки;
-
- Результат = OPI_Инструменты.JsonВСтруктуру(JSON, Истина);
-
- ОжидаетЧто(Результат["receiptId"]).Заполнено();
-
- IDУведомления = Результат["receiptId"];
- ЗаписатьПараметр("GreenAPI_ReceiptID", IDУведомления);
- OPI_Инструменты.ДобавитьПоле("GreenAPI_ReceiptID", IDУведомления, "Строка", Параметры);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GreenAPI_УдалитьУведомлениеИзОчереди(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GreenAPI_СкачатьФайлСообщения(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["downloadUrl"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GreenAPI_УстановитьОтметкуПрочтения(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["setRead"]).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GreenAPI_ПолучитьОчередьСообщений(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(OPI_Инструменты.ЭтоКоллекция(Результат)).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GreenAPI_ОчиститьОчередьСообщений(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["isCleared"]).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GreenAPI_ПолучитьИсториюЧата(Знач Результат, Знач Вариант, Параметры = "")
-
- Попытка
- JSON = OPI_Инструменты.JSONСтрокой(Результат);
- JSON = СтрЗаменить(JSON, Параметры["GreenAPI_AccountID"], "1234567890@c.us");
-
- Результат = OPI_Инструменты.JsonВСтруктуру(JSON, Истина);
- Исключение
- Сообщить("Ошибка JSON");
- КонецПопытки;
-
- ОжидаетЧто(Результат).ИмеетТип("Массив");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GreenAPI_ПолучитьСообщение(Знач Результат, Знач Вариант, Параметры = "")
-
- Попытка
- JSON = OPI_Инструменты.JSONСтрокой(Результат);
- JSON = СтрЗаменить(JSON, Параметры["GreenAPI_AccountID"], "1234567890@c.us");
-
- Результат = OPI_Инструменты.JsonВСтруктуру(JSON, Истина);
- Исключение
- Сообщить("Ошибка JSON");
- КонецПопытки;
-
- ОжидаетЧто(Результат["idMessage"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GreenAPI_ПолучитьЖурналВходящихСообщений(Знач Результат, Знач Вариант, Параметры = "")
-
- Попытка
- JSON = OPI_Инструменты.JSONСтрокой(Результат);
- JSON = СтрЗаменить(JSON, Параметры["GreenAPI_AccountID"], "1234567890@c.us");
-
- Результат = OPI_Инструменты.JsonВСтруктуру(JSON, Истина);
- Исключение
- Сообщить("Ошибка JSON");
- КонецПопытки;
-
- ОжидаетЧто(OPI_Инструменты.ЭтоКоллекция(Результат)).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GreenAPI_ПолучитьЖурналИсходящихСообщений(Знач Результат, Знач Вариант, Параметры = "")
-
- Попытка
- JSON = OPI_Инструменты.JSONСтрокой(Результат);
- JSON = СтрЗаменить(JSON, Параметры["GreenAPI_AccountID"], "1234567890@c.us");
-
- Результат = OPI_Инструменты.JsonВСтруктуру(JSON, Истина);
- Исключение
- Сообщить("Ошибка JSON");
- КонецПопытки;
-
- ОжидаетЧто(Результат).ИмеетТип("Массив");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GreenAPI_АрхивироватьЧат(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(OPI_Инструменты.ЭтоКоллекция(Результат, Истина)).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GreenAPI_РазархивироватьЧат(Знач Результат, Знач Вариант)
-
- Если Не ЗначениеЗаполнено(Вариант) Тогда
- ОжидаетЧто(OPI_Инструменты.ЭтоКоллекция(Результат, Истина)).Равно(Истина);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_RCON_СформироватьПараметрыСоединения(Знач Результат, Знач Вариант)
-
- Результат["url"] = "127.0.0.1:25565";
- Результат["password"] = "***";
-
- ОжидаетЧто(OPI_Инструменты.ЭтоКоллекция(Результат, Истина)).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_RCON_ОткрытьСоединение(Знач Результат, Знач Вариант)
-
- Результат = Строка(ТипЗнч(Результат));
- ОжидаетЧто(Результат).Равно("AddIn.OPI_RCON.Main");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_RCON_ВыполнитьКоманду(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_RCON_ЭтоКоннектор(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Ollama_ПолучитьОтвет(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["model"]).Заполнено();
- ОжидаетЧто(Результат["response"]).Заполнено();
- ОжидаетЧто(Результат["done"]).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Ollama_ПолучитьОтветВКонтексте(Знач Результат, Знач Вариант, Сообщение1 = "", Сообщение2 = "",
- Сообщение3 = "")
-
- Если Вариант = "Сравнение" Тогда
-
- ОжидаетЧто(Сообщение1 = Сообщение2).Равно(Истина);
- ОжидаетЧто(Сообщение1 = Сообщение3).Равно(Ложь);
-
- Иначе
- ОжидаетЧто(Результат["model"]).Заполнено();
- ОжидаетЧто(Результат["message"]).Заполнено();
- ОжидаетЧто(Результат["done"]).Равно(Истина);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Ollama_ЗагрузитьМодельВПамять(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["model"]).Заполнено();
- ОжидаетЧто(Результат["done"]).Равно(Истина);
- ОжидаетЧто(Результат["done_reason"]).Равно("load");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Ollama_ВыгрузитьМодельИзПамяти(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["model"]).Заполнено();
- ОжидаетЧто(Результат["done"]).Равно(Истина);
- ОжидаетЧто(Результат["done_reason"]).Равно("unload");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Ollama_ПолучитьСтруктуруПараметровЗапроса(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(OPI_Инструменты.ЭтоКоллекция(Результат, Истина)).Равно(Истина);
-
- Если Вариант = "Пустая" Тогда
-
- Для Каждого Элемент Из Результат Цикл
-
- Если OPI_Инструменты.ЭтоПримитивныйТип(Элемент.Значение) Тогда
- ОжидаетЧто(ЗначениеЗаполнено(Элемент.Значение)).Равно(Ложь);
- КонецЕсли;
-
- КонецЦикла;
-
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Ollama_ПолучитьСтруктуруПараметровВКонтексте(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(OPI_Инструменты.ЭтоКоллекция(Результат, Истина)).Равно(Истина);
-
- Если Вариант = "Пустая" Тогда
-
- Для Каждого Элемент Из Результат Цикл
-
- Если OPI_Инструменты.ЭтоПримитивныйТип(Элемент.Значение) Тогда
- ОжидаетЧто(ЗначениеЗаполнено(Элемент.Значение)).Равно(Ложь);
- КонецЕсли;
-
- КонецЦикла;
-
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Ollama_ПолучитьСтруктуруСообщенияКонтекста(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(OPI_Инструменты.ЭтоКоллекция(Результат, Истина)).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Ollama_ПолучитьСтруктуруНастроекМодели(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(OPI_Инструменты.ЭтоКоллекция(Результат, Истина)).Равно(Истина);
-
- Если Вариант = "Пустая" Тогда
-
- Для Каждого Элемент Из Результат Цикл
-
- Если OPI_Инструменты.ЭтоПримитивныйТип(Элемент.Значение) Тогда
- ОжидаетЧто(ЗначениеЗаполнено(Элемент.Значение)).Равно(Ложь);
- КонецЕсли;
-
- КонецЦикла;
-
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Ollama_СоздатьМодель(Знач Результат, Знач Вариант)
-
- Если Вариант = "Запрос" Тогда
-
- ОжидаетЧто(Результат["model"]).Заполнено();
- ОжидаетЧто(Результат["response"]).Заполнено();
- ОжидаетЧто(Результат["done"]).Равно(Истина);
-
- Иначе
- ОжидаетЧто(Результат["status"]).Равно("success");
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Ollama_УдалитьМодель(Знач Результат, Знач Вариант)
-
- Если Вариант = "Список" Тогда
- ОжидаетЧто(Результат["models"].Количество()).Равно(0);
- ИначеЕсли Не ЗначениеЗаполнено(Вариант) Тогда
- ОжидаетЧто(Результат["status_code"] < 300).Равно(Истина);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Ollama_ПолучитьСписокМоделей(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["models"]).ИмеетТип("Массив");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Ollama_ПолучитьСписокЗапущенныхМоделей(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["models"]).ИмеетТип("Массив");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Ollama_ПолучитьИнформациюОМодели(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["parameters"]).Заполнено();
- ОжидаетЧто(Результат["model_info"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Ollama_КопироватьМодель(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["status_code"] < 300).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Ollama_ПолучитьВерсию(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["version"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Ollama_ПолучитьПредставления(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["embeddings"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Ollama_ПолучитьСтруктуруПараметровПредставлений(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(OPI_Инструменты.ЭтоКоллекция(Результат, Истина)).Равно(Истина);
-
- Если Вариант = "Пустая" Тогда
-
- Для Каждого Элемент Из Результат Цикл
-
- Если OPI_Инструменты.ЭтоПримитивныйТип(Элемент.Значение) Тогда
- ОжидаетЧто(ЗначениеЗаполнено(Элемент.Значение)).Равно(Ложь);
- КонецЕсли;
-
- КонецЦикла;
-
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Ollama_ОтправитьМодель(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["status"]).Равно("success");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Ollama_СкачатьМодель(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["status"]).Равно("success");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Ollama_ОтправитьBlob(Знач Результат, Знач Вариант, Параметры = "")
-
- ОжидаетЧто(Результат["status_code"] < 300).Равно(Истина);
-
- ЗаписатьПараметр("Ollama_Blob", Результат["digest"]);
- Параметры.Вставить("Ollama_Blob", Результат["digest"]);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_Ollama_ПроверитьBlob(Знач Результат, Знач Вариант, Параметры = "")
-
- Если Вариант = "Ошибка" Тогда
- ОжидаетЧто(Результат["status_code"] >= 400).Равно(Истина);
- Иначе
- ОжидаетЧто(Результат["status_code"] < 300).Равно(Истина);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_HTTPКлиент_Инициализировать(Знач Результат, Знач Вариант, Параметры = "")
-
- Если Не ЗначениеЗаполнено(Вариант) Тогда
-
- Попытка
- Результат["origin"] = "***";
- Исключение
- Попытка
- ВызватьИсключение Результат.ПолучитьЛог(Истина);
- Исключение
- ВызватьИсключение ПолучитьСтрокуИзДвоичныхДанных(Результат);
- КонецПопытки;
- КонецПопытки;
-
- ОжидаетЧто(Результат["args"]).ИмеетТип("Соответствие");
- ОжидаетЧто(Результат["args"].Количество()).Равно(0);
-
- ИначеЕсли Вариант = "Проверка 1" Тогда
-
- Попытка
-
- HTTPЗапрос = Результат.ВернутьЗапрос();
- HTTPСоединение = Результат.ВернутьСоединение();
- HTTPОтвет = Результат.ВернутьОтвет();
-
- ОсновнойURL = СтрЗаменить(Параметры["HTTP_URL"], "https://", "");
- ОсновнойURL = СтрЗаменить(ОсновнойURL , "http://" , "");
-
- Если СтрНайти(ОсновнойURL, ":") > 0 Тогда
- ОсновнойURL = СтрРазделить(ОсновнойURL, ":")[0];
- КонецЕсли;
-
- ОжидаетЧто(HTTPЗапрос).ИмеетТип("HTTPЗапрос");
- ОжидаетЧто(HTTPСоединение).ИмеетТип("HTTPСоединение");
-
- ОжидаетЧто(HTTPЗапрос.АдресРесурса).Равно("/get");
- ОжидаетЧто(HTTPСоединение.Сервер).Равно(ОсновнойURL);
-
- ОжидаетЧто(HTTPОтвет).Равно(Неопределено);
-
- Исключение
- ВызватьИсключение ОписаниеОшибки() + Символы.ПС + Символы.ПС + Результат.ПолучитьЛог(Истина);
- КонецПопытки;
-
- Иначе
-
- Попытка
- ОжидаетЧто(Результат).ИмеетТип("HTTPЗапрос");
- ОжидаетЧто(Результат.АдресРесурса).Равно("/post");
- Исключение
- ВызватьИсключение ОписаниеОшибки() + Символы.ПС + Символы.ПС + Результат.ПолучитьЛог(Истина);
- КонецПопытки;
-
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_HTTPКлиент_УстановитьURL(Знач Результат, Знач Вариант, Параметры = "")
-
- Если Не ЗначениеЗаполнено(Вариант) Тогда
-
- Попытка
- Результат["origin"] = "***";
- Исключение
- Попытка
- ВызватьИсключение Результат.ПолучитьЛог(Истина);
- Исключение
- ВызватьИсключение ПолучитьСтрокуИзДвоичныхДанных(Результат);
- КонецПопытки;
- КонецПопытки;
-
- ОжидаетЧто(Результат["args"]).ИмеетТип("Соответствие");
- ОжидаетЧто(Результат["args"].Количество()).Равно(0);
-
- Иначе
-
- Попытка
-
- HTTPЗапрос = Результат.ВернутьЗапрос();
- HTTPСоединение = Результат.ВернутьСоединение();
- HTTPОтвет = Результат.ВернутьОтвет();
- ОсновнойURL = СтрЗаменить(Параметры["HTTP_URL"], "https://", "");
- ОсновнойURL = СтрЗаменить(ОсновнойURL , "http://" , "");
-
- Если СтрНайти(ОсновнойURL, ":") > 0 Тогда
- ОсновнойURL = СтрРазделить(ОсновнойURL, ":")[0];
- КонецЕсли;
-
- ОжидаетЧто(HTTPЗапрос).ИмеетТип("HTTPЗапрос");
- ОжидаетЧто(HTTPСоединение).ИмеетТип("HTTPСоединение");
-
- ОжидаетЧто(HTTPЗапрос.АдресРесурса).Равно("/get");
- ОжидаетЧто(HTTPСоединение.Сервер).Равно(ОсновнойURL);
-
- ОжидаетЧто(HTTPОтвет).Равно(Неопределено);
-
- Исключение
- ВызватьИсключение ОписаниеОшибки() + Символы.ПС + Символы.ПС + Результат.ПолучитьЛог(Истина);
- КонецПопытки;
-
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_HTTPКлиент_УстановитьПараметрыURL(Знач Результат, Знач Вариант, Параметры = "")
-
- Адрес = "/get?param1=text¶m2=10";
-
- СоответствиеОтветов = Новый Соответствие;
- СоответствиеОтветов.Вставить("Вариант 1", "/page?param1=search%3Ftext¶m2=John" + "%20Doe¶m3=value%26another¶m4=%D0%BA%D0%B8%D1%80%D0%B8%D0%BB%D0%BB%"
- + "D0%B8%D1%86%D0%B0¶m5=%3Cscript%3Ealert%28%27XSS%27%29%3C%2Fscript%3E");
-
- СоответствиеОтветов.Вставить("Вариант 2", "/page?existing=value¶m1=search%3Ftext¶m2=John%20Doe");
- СоответствиеОтветов.Вставить("Вариант 3", "/page?param1=search%3Ftext¶m2=John%20Doe");
- СоответствиеОтветов.Вставить("Вариант 4", "/path%20with%20spaces?param1=search%3Ftext¶m2=John%20Doe");
- СоответствиеОтветов.Вставить("Вариант 5", "/page?param1=search%3Ftext¶m2=John%20Doe#section");
- СоответствиеОтветов.Вставить("Вариант 6", "/%D0%BF%D1%83%D1%82%D1%8C?param1=search%3Ftext¶m2=John%20Doe");
- СоответствиеОтветов.Вставить("Вариант 7", "/page?param1=value1¶m2=value%20two¶m3=value%3Cthree%3E");
-
- Если Не ЗначениеЗаполнено(Вариант) Тогда
-
- Попытка
- Результат["origin"] = "***";
- Исключение
- Попытка
- ВызватьИсключение Результат.ПолучитьЛог(Истина);
- Исключение
- ВызватьИсключение ПолучитьСтрокуИзДвоичныхДанных(Результат);
- КонецПопытки;
- КонецПопытки;
-
- ПолныйURL = Параметры["HTTP_URL"] + Адрес;
-
- ОжидаетЧто(Результат["args"]).ИмеетТип("Соответствие");
- ОжидаетЧто(Результат["args"].Количество()).Равно(2);
- ОжидаетЧто(Результат["url"]).Равно(ПолныйURL);
-
- ИначеЕсли Вариант = "Проверка" Тогда
-
- Попытка
-
- ОжидаетЧто(Результат).ИмеетТип("HTTPЗапрос");
- ОжидаетЧто(Результат.АдресРесурса).Равно(Адрес);
-
- Исключение
- ВызватьИсключение ОписаниеОшибки() + Символы.ПС + Символы.ПС + Результат.ПолучитьЛог(Истина);
- КонецПопытки;
-
- Иначе
- ОжидаетЧто(Результат).Равно(СоответствиеОтветов[Вариант]);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_HTTPКлиент_УстановитьФайлОтвета(Знач Результат, Знач Вариант, ИВФ = "")
-
- ФайлТела = Новый Файл(ИВФ);
-
- Если Не ЗначениеЗаполнено(Вариант) Тогда
-
- ФайлТелаВозврат = Новый Файл(Результат);
-
- ОжидаетЧто(ИВФ).Равно(Результат);
- ОжидаетЧто(ФайлТела.Размер()).Равно(ФайлТелаВозврат.Размер());
- ОжидаетЧто(ФайлТела.Размер() > 0).Равно(Истина);
-
- Иначе
-
- ОжидаетЧто(ФайлТела.Размер()).Равно(Результат.Размер());
-
- РезультатПроверкиСтрокой = ПолучитьСтрокуИзДвоичныхДанных(Результат);
-
- ОжидаетЧто(OPI_Инструменты.JsonВСтруктуру(РезультатПроверкиСтрокой)).ИмеетТип("Соответствие");
-
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_HTTPКлиент_УстановитьТипДанных(Знач Результат, Знач Вариант)
-
- Попытка
- Результат["origin"] = "***";
- Исключение
- Попытка
- ВызватьИсключение Результат.ПолучитьЛог(Истина);
- Исключение
- ВызватьИсключение ПолучитьСтрокуИзДвоичныхДанных(Результат);
- КонецПопытки;
- КонецПопытки;
-
- ОжидаетЧто(Результат["headers"]["Content-Type"]).Равно("text/markdown");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_HTTPКлиент_ПолучитьЛог(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Строка");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_HTTPКлиент_УстановитьДвоичноеТело(Знач Результат, Знач Вариант, Картинка = "")
-
- Попытка
- Результат["origin"] = "***";
- Результат["data"] = "...";
- Исключение
- Попытка
- ВызватьИсключение Результат.ПолучитьЛог(Истина);
- Исключение
- ВызватьИсключение ПолучитьСтрокуИзДвоичныхДанных(Результат);
- КонецПопытки;
- КонецПопытки;
-
- ОжидаетЧто(Результат["headers"]["Content-Type"]).Равно("application/octet-stream");
-
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка);
-
- Размер = Картинка.Размер();
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Размер);
- ОжидаетЧто(Результат["headers"]["Content-Length"]).Равно(Размер);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_HTTPКлиент_УстановитьСтроковоеТело(Знач Результат, Знач Вариант)
-
- Попытка
- Результат["origin"] = "***";
- Исключение
- Попытка
- ВызватьИсключение Результат.ПолучитьЛог(Истина);
- Исключение
- ВызватьИсключение ПолучитьСтрокуИзДвоичныхДанных(Результат);
- КонецПопытки;
- КонецПопытки;
-
- Текст = "Привет мир!";
- Кодировка = "Windows-1251";
-
- ОжидаетЧто(Результат["headers"]["Content-Type"]).Равно("text/plain; charset=" + Кодировка);
-
- ТекстДД = ПолучитьДвоичныеДанныеИзСтроки(Текст, Кодировка);
- Размер = ТекстДД.Размер();
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Размер);
-
- ОжидаетЧто(Результат["headers"]["Content-Length"]).Равно(Размер);
-
- ТекстB64 = "data:application/octet-stream;base64," + Base64Строка(ТекстДД);
-
- ОжидаетЧто(Результат["data"] = ТекстB64 Или Результат["data"] = Текст).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_HTTPКлиент_УстановитьJsonТело(Знач Результат, Знач Вариант, JSONОригинал = "")
-
- Попытка
- Результат["origin"] = "***";
- Исключение
- Попытка
- ВызватьИсключение Результат.ПолучитьЛог(Истина);
- Исключение
- ВызватьИсключение ПолучитьСтрокуИзДвоичныхДанных(Результат);
- КонецПопытки;
- КонецПопытки;
-
- ОжидаетЧто(Результат["headers"]["Content-Type"]).Равно("application/json; charset=utf-8");
-
- JSONРезультат = Результат["json"];
-
- ОжидаетЧто(JSONРезультат["Поле1"]).Равно(JSONОригинал["Поле1"]);
- ОжидаетЧто(JSONРезультат["Поле2"]).Равно(JSONОригинал["Поле2"]);
- ОжидаетЧто(JSONРезультат["Поле3"][0]).Равно(JSONОригинал["Поле3"][0]);
- ОжидаетЧто(JSONРезультат["Поле3"][1]).Равно(JSONОригинал["Поле3"][1]);
- ОжидаетЧто(JSONРезультат["Поле3"][2]).Равно(JSONОригинал["Поле3"][2]);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_HTTPКлиент_УстановитьFormТело(Знач Результат, Знач Вариант, Данные = "")
-
- Попытка
- Результат["origin"] = "***";
- Исключение
- Попытка
- ВызватьИсключение Результат.ПолучитьЛог(Истина);
- Исключение
- ВызватьИсключение ПолучитьСтрокуИзДвоичныхДанных(Результат);
- КонецПопытки;
- КонецПопытки;
-
- ОжидаетЧто(Результат["headers"]["Content-Type"]).Равно("application/x-www-form-urlencoded; charset=utf-8");
-
- ОжидаетЧто(Результат["form"]["Поле1"]).Равно(Данные["Поле1"]);
- ОжидаетЧто(Результат["form"]["Поле2"]).Равно(Данные["Поле2"]);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_HTTPКлиент_НачатьЗаписьТелаMultipart(Знач Результат, Знач Вариант, Картинка = "")
-
- Попытка
- Результат["origin"] = "***";
- ФайлОтвета = Результат["files"]["file1"];
- Результат["files"]["file1"] = "...";
- Исключение
- Попытка
- ВызватьИсключение Результат.ПолучитьЛог(Истина);
- Исключение
- ВызватьИсключение ПолучитьСтрокуИзДвоичныхДанных(Результат);
- КонецПопытки;
- КонецПопытки;
-
- ОжидаетЧто(СтрНачинаетсяС(Результат["headers"]["Content-Type"], "multipart/")).Равно(Истина);
-
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка);
- ТекстB64 = "data:image/png;base64," + Base64Строка(Картинка);
- ТекстB64 = СтрЗаменить(ТекстB64, Символы.ВК + Символы.ПС, "");
-
- ОжидаетЧто(Результат["form"]["Поле1"]).Равно("Текст");
- ОжидаетЧто(Результат["form"]["Поле2"]).Равно("10");
- ОжидаетЧто(ФайлОтвета).Равно(ТекстB64);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_HTTPКлиент_ДобавитьФайлMultipartFormData(Знач Результат, Знач Вариант, Картинка = "")
-
- Попытка
- Результат["origin"] = "***";
- ФайлОтвета = Результат["files"]["file1"];
- Результат["files"]["file1"] = "...";
- Исключение
- Попытка
- ВызватьИсключение Результат.ПолучитьЛог(Истина);
- Исключение
- ВызватьИсключение ПолучитьСтрокуИзДвоичныхДанных(Результат);
- КонецПопытки;
- КонецПопытки;
-
- ОжидаетЧто(СтрНачинаетсяС(Результат["headers"]["Content-Type"], "multipart/")).Равно(Истина);
-
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка);
- ТекстB64 = "data:image/png;base64," + Base64Строка(Картинка);
- ТекстB64 = СтрЗаменить(ТекстB64, Символы.ВК + Символы.ПС, "");
-
- ОжидаетЧто(Результат["form"]["Поле1"]).Равно("Текст");
- ОжидаетЧто(Результат["form"]["Поле2"]).Равно("10");
- ОжидаетЧто(ФайлОтвета).Равно(ТекстB64);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_HTTPКлиент_ДобавитьПолеMultipartFormData(Знач Результат, Знач Вариант, Картинка = "")
-
- Попытка
- Результат["origin"] = "***";
- ФайлОтвета = Результат["files"]["file1"];
- Результат["files"]["file1"] = "...";
- Исключение
- Попытка
- ВызватьИсключение Результат.ПолучитьЛог(Истина);
- Исключение
- ВызватьИсключение ПолучитьСтрокуИзДвоичныхДанных(Результат);
- КонецПопытки;
- КонецПопытки;
-
- ОжидаетЧто(СтрНачинаетсяС(Результат["headers"]["Content-Type"], "multipart/")).Равно(Истина);
-
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка);
- ТекстB64 = "data:image/png;base64," + Base64Строка(Картинка);
- ТекстB64 = СтрЗаменить(ТекстB64, Символы.ВК + Символы.ПС, "");
-
- ОжидаетЧто(Результат["form"]["Поле1"]).Равно("Текст");
- ОжидаетЧто(Результат["form"]["Поле2"]).Равно("10");
- ОжидаетЧто(ФайлОтвета).Равно(ТекстB64);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_HTTPКлиент_ДобавитьДанныеRelated(Знач Результат, Знач Вариант)
-
- Попытка
- Результат["origin"] = "***";
- Исключение
- Попытка
- ВызватьИсключение Результат.ПолучитьЛог(Истина);
- Исключение
- ВызватьИсключение ПолучитьСтрокуИзДвоичныхДанных(Результат);
- КонецПопытки;
- КонецПопытки;
-
- ОжидаетЧто(СтрНачинаетсяС(Результат["headers"]["Content-Type"], "multipart/")).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_HTTPКлиент_ИспользоватьКодировку(Знач Результат, Знач Вариант)
-
- Попытка
- Результат["origin"] = "***";
- Исключение
- Попытка
- ВызватьИсключение Результат.ПолучитьЛог(Истина);
- Исключение
- ВызватьИсключение ПолучитьСтрокуИзДвоичныхДанных(Результат);
- КонецПопытки;
- КонецПопытки;
-
- Кодировка = "Windows-1251";
- ОжидаетЧто(Результат["headers"]["Content-Type"]).Равно("text/plain; charset=" + Кодировка);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_HTTPКлиент_ИспользоватьСжатиеGzip(Знач Результат, Знач Вариант)
-
- Если Вариант = "Включено" Тогда
- Сжатие = "gzip";
- Иначе
- Сжатие = Неопределено;
- КонецЕсли;
-
- ОжидаетЧто(Результат.Заголовки["Accept-Encoding"]).Равно(Сжатие);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_HTTPКлиент_ИспользоватьПоляТелаВOAuth(Знач Результат, Знач Вариант, ЛогСтрокой = "")
-
- Если Вариант = "Включено" Тогда
- ОжидаетЧто(СтрНайти(Результат, "добавление полей тела в строку для подписи") <> 0).Равно(Истина);
- Иначе
-
- Попытка
- Результат["origin"] = "***";
- Результат["files"]["file1"] = "...";
- Исключение
- Попытка
- ВызватьИсключение Результат.ПолучитьЛог(Истина);
- Исключение
- ВызватьИсключение ПолучитьСтрокуИзДвоичныхДанных(Результат);
- КонецПопытки;
- КонецПопытки;
-
- ОжидаетЧто(СтрНайти(ЛогСтрокой, "добавление полей тела в строку для подписи")).Равно(0);
-
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_HTTPКлиент_УстановитьЗаголовки(Знач Результат, Знач Вариант)
-
- Попытка
- Результат["origin"] = "***";
- Исключение
- Попытка
- ВызватьИсключение Результат.ПолучитьЛог(Истина);
- Исключение
- ВызватьИсключение ПолучитьСтрокуИзДвоичныхДанных(Результат);
- КонецПопытки;
- КонецПопытки;
-
- Если Вариант = "Перезапись" Тогда
- ОжидаетЧто(Результат["headers"]["X-Header1"]).Равно("Value1");
- ОжидаетЧто(Результат["headers"]["X-Header2"]).Равно("Value2");
- ОжидаетЧто(Результат["headers"]["Authorization"]).Равно("Bearer 1111");
- Иначе
- ОжидаетЧто(Результат["headers"]["X-Header1"]).Равно("Value1");
- ОжидаетЧто(Результат["headers"]["X-Header2"]).Равно("Value2");
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_HTTPКлиент_ДобавитьЗаголовок(Знач Результат, Знач Вариант)
-
- Если Вариант = "Замена" Тогда
-
- ОжидаетЧто(Результат["headers"]["X-Header1"]).Равно("Value1");
- ОжидаетЧто(Результат["headers"]["X-Header2"]).Равно("Value2");
- ОжидаетЧто(Результат["headers"]["X-Header3"]).Равно(Неопределено);
- ОжидаетЧто(Результат["headers"]["X-Header4"]).Равно(Неопределено);
- ОжидаетЧто(Результат["headers"]["Authorization"]).Равно("Bearer 1111");
-
- ИначеЕсли Вариант = "Дополнение" Тогда
-
- ОжидаетЧто(Результат["headers"]["X-Header1"]).Равно("Value1");
- ОжидаетЧто(Результат["headers"]["X-Header2"]).Равно("Value2");
- ОжидаетЧто(Результат["headers"]["X-Header3"]).Равно("BadValue");
- ОжидаетЧто(Результат["headers"]["X-Header4"]).Равно("BadValue");
- ОжидаетЧто(Результат["headers"]["Authorization"]).Равно("Bearer 1111");
-
- Иначе
-
- Попытка
- Результат["origin"] = "***";
- Исключение
- Попытка
- ВызватьИсключение Результат.ПолучитьЛог(Истина);
- Исключение
- ВызватьИсключение ПолучитьСтрокуИзДвоичныхДанных(Результат);
- КонецПопытки;
- КонецПопытки;
-
- ОжидаетЧто(Результат["headers"]["X-Header1"]).Равно("Value1");
- ОжидаетЧто(Результат["headers"]["X-Header2"]).Равно("Value2");
-
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_HTTPКлиент_ДобавитьBasicАвторизацию(Знач Результат, Знач Вариант)
-
- Попытка
- Результат["origin"] = "***";
- Исключение
- Попытка
- ВызватьИсключение Результат.ПолучитьЛог(Истина);
- Исключение
- ВызватьИсключение ПолучитьСтрокуИзДвоичныхДанных(Результат);
- КонецПопытки;
- КонецПопытки;
-
- ОжидаетЧто(Результат["headers"]["Authorization"]).Равно("Basic " + Base64Строка(ПолучитьДвоичныеДанныеИзСтроки(
- "user:password")));
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_HTTPКлиент_ДобавитьBearerАвторизацию(Знач Результат, Знач Вариант)
-
- Попытка
- Результат["origin"] = "***";
- Исключение
- Попытка
- ВызватьИсключение Результат.ПолучитьЛог(Истина);
- Исключение
- ВызватьИсключение ПолучитьСтрокуИзДвоичныхДанных(Результат);
- КонецПопытки;
- КонецПопытки;
-
- ОжидаетЧто(Результат["headers"]["Authorization"]).Равно("Bearer " + "123123");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_HTTPКлиент_ДобавитьAWS4Авторизацию(Знач Результат, Знач Вариант)
-
- Попытка
- Результат["origin"] = "***";
- Исключение
- Попытка
- ВызватьИсключение Результат.ПолучитьЛог(Истина);
- Исключение
- ВызватьИсключение ПолучитьСтрокуИзДвоичныхДанных(Результат);
- КонецПопытки;
- КонецПопытки;
-
- ОжидаетЧто(СтрНачинаетсяС(Результат["headers"]["Authorization"], "AWS4")).Равно(Истина);
- ОжидаетЧто(Результат["headers"]["X-Amz-Content-Sha256"] = Неопределено).Равно(Ложь);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_HTTPКлиент_ДобавитьOAuthV1Авторизацию(Знач Результат, Знач Вариант)
-
- Попытка
- Результат["origin"] = "***";
- Исключение
- Попытка
- ВызватьИсключение Результат.ПолучитьЛог(Истина);
- Исключение
- ВызватьИсключение ПолучитьСтрокуИзДвоичныхДанных(Результат);
- КонецПопытки;
- КонецПопытки;
-
- ОжидаетЧто(СтрНачинаетсяС(Результат["headers"]["Authorization"], "OAuth")).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_HTTPКлиент_УстановитьАлгоритмOAuthV1(Знач Результат, Знач Вариант)
-
- Попытка
- Результат["origin"] = "***";
- Исключение
- Попытка
- ВызватьИсключение Результат.ПолучитьЛог(Истина);
- Исключение
- ВызватьИсключение ПолучитьСтрокуИзДвоичныхДанных(Результат);
- КонецПопытки;
- КонецПопытки;
-
- ОжидаетЧто(СтрНачинаетсяС(Результат["headers"]["Authorization"], "OAuth")).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_HTTPКлиент_ОбработатьЗапрос(Знач Результат, Знач Вариант)
-
- Попытка
- Результат["origin"] = "***";
- Исключение
- Попытка
- ВызватьИсключение Результат.ПолучитьЛог(Истина);
- Исключение
- ВызватьИсключение ПолучитьСтрокуИзДвоичныхДанных(Результат);
- КонецПопытки;
- КонецПопытки;
-
- ОжидаетЧто(Результат["args"]).ИмеетТип("Соответствие");
- ОжидаетЧто(Результат["args"].Количество()).Равно(0);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_HTTPКлиент_ВыполнитьЗапрос(Знач Результат, Знач Вариант)
-
- Если Вариант = "Без выполнения" Тогда
-
- ОжидаетЧто(Результат).Равно(Неопределено);
-
- ИначеЕсли Вариант = "Выполнение" Тогда
-
- ОжидаетЧто(Результат = Неопределено).Равно(Ложь);
-
- Иначе
-
- Попытка
- Результат["origin"] = "***";
- Исключение
- Попытка
- ВызватьИсключение Результат.ПолучитьЛог(Истина);
- Исключение
- ВызватьИсключение ПолучитьСтрокуИзДвоичныхДанных(Результат);
- КонецПопытки;
- КонецПопытки;
-
- ОжидаетЧто(Результат["args"]).ИмеетТип("Соответствие");
- ОжидаетЧто(Результат["args"].Количество()).Равно(0);
-
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_HTTPКлиент_ВернутьЗапрос(Знач Результат, Знач Вариант)
-
- Если Вариант = "Принудительно" Тогда
-
- ОжидаетЧто(Результат).Равно(Неопределено);
-
- Иначе
-
- ОжидаетЧто(Результат).ИмеетТип("HTTPЗапрос");
-
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_HTTPКлиент_ВернутьСоединение(Знач Результат, Знач Вариант)
-
- Если Вариант = "Принудительно" Тогда
-
- ОжидаетЧто(Результат).Равно(Неопределено);
-
- Иначе
-
- ОжидаетЧто(Результат).ИмеетТип("HTTPСоединение");
-
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_HTTPКлиент_ВернутьОтвет(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("HTTPОтвет");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_HTTPКлиент_ВернутьОтветКакJSONКоллекцию(Знач Результат, Знач Вариант)
-
- Попытка
- Результат["origin"] = "***";
- Результат["data"] = "...";
- Исключение
- Попытка
- ВызватьИсключение Результат.ПолучитьЛог(Истина);
- Исключение
- ВызватьИсключение ПолучитьСтрокуИзДвоичныхДанных(Результат);
- КонецПопытки;
- КонецПопытки;
-
- ОжидаетЧто(Результат).ИмеетТип("Соответствие");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_HTTPКлиент_ВернутьОтветКакДвоичныеДанные(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("ДвоичныеДанные");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_HTTPКлиент_ВернутьОтветКакСтроку(Знач Результат, Знач Вариант)
-
- Попытка
-
- РезультатJSON = OPI_Инструменты.JSONВСтруктуру(Результат);
-
- РезультатJSON["origin"] = "***";
- РезультатJSON["data"] = "...";
-
- Результат = OPI_Инструменты.JSONСтрокой(РезультатJSON);
-
- Исключение
- Попытка
- ВызватьИсключение Результат.ПолучитьЛог(Истина);
- Исключение
- ВызватьИсключение ПолучитьСтрокуИзДвоичныхДанных(Результат);
- КонецПопытки;
- КонецПопытки;
-
- ОжидаетЧто(Результат).ИмеетТип("Строка");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_HTTPКлиент_ВернутьИмяФайлаТелаОтвета(Знач Результат, Знач Вариант, ИВФ = "")
-
- ФайлТела = Новый Файл(ИВФ);
- ФайлТелаВозврат = Новый Файл(Результат);
-
- ОжидаетЧто(ИВФ).Равно(Результат);
- ОжидаетЧто(ФайлТела.Размер()).Равно(ФайлТелаВозврат.Размер());
- ОжидаетЧто(ФайлТела.Размер() > 0).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_HTTPКлиент_УстановитьПрокси(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("HTTPСоединение");
- ОжидаетЧто(Результат.Прокси.Пользователь("https")).Равно("user");
- ОжидаетЧто(Результат.Прокси.Пароль("https")).Равно("password");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_HTTPКлиент_УстановитьТаймаут(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("HTTPСоединение");
- ОжидаетЧто(Результат.Таймаут).Равно(60);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_HTTPКлиент_ИспользоватьКодированиеURL(Знач Результат, Знач Вариант)
-
- ПравильныйВариант1 = "/page?param1=search?text¶m2=John Doe¶m3"
- + "=value&another¶m4=кириллица¶m5=";
-
- ОжидаетЧто(Результат["Без кодирования"]).Равно(ПравильныйВариант1);
-
- ПравильныйВариант2 = "/page?param1=search%3Ftext¶m2=John%20Doe&pa" + "ram3=value%26another¶m4=%D0%BA%D0%B8%D1%80%D0%B8%D0%BB%D0%"
- + "BB%D0%B8%D1%86%D0%B0¶m5=%3Cscript%3Ealert%28%27XSS%27%29%3C%2Fscript%3E";
-
- ОжидаетЧто(Результат["С кодированием"]).Равно(ПравильныйВариант2);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_HTTPКлиент_РазделятьМассивыВURL(Знач Результат, Знач Вариант)
-
- Разделение = Результат["Разделение"];
- БезРазделения = Результат["Без разделения"];
- РазделениеPhp = Результат["PHP"];
-
- ПравильныйВариант1 = "/page?arrayfield=val1&arrayfield=val2&arrayfield=val3";
- ОжидаетЧто(Разделение).Равно(ПравильныйВариант1);
-
- ПравильныйВариант2 = "/page?arrayfield=[val1,val2,val3]";
- ОжидаетЧто(БезРазделения).Равно(ПравильныйВариант2);
-
- ПравильныйВариант3 = "/page?arrayfield[]=val1&arrayfield[]=val2&arrayfield[]=val3";
- ОжидаетЧто(РазделениеPhp).Равно(ПравильныйВариант3);
-
- Результат = СтрШаблон("Без разделения: %1;
- |Разделение: %2
- |Разделение (php): %3", БезРазделения, Разделение, РазделениеPhp);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_OpenAI_ПолучитьОтвет(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["id"]).Заполнено();
-
- Если Не Вариант = "Загрузка картинки" Тогда
- ОжидаетЧто(Результат["object"]).Равно("chat.completion");
- ОжидаетЧто(Результат["choices"]).ИмеетТип("Массив").Заполнено();
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_OpenAI_ПолучитьПредставления(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["model"]).Заполнено();
- ОжидаетЧто(Результат["object"]).Равно("list");
- ОжидаетЧто(Результат["data"]).ИмеетТип("Массив").Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_OpenAI_СоздатьАссистента(Знач Результат, Знач Вариант, Параметры = "")
-
- ОжидаетЧто(Результат["model"]).Заполнено();
- ОжидаетЧто(Результат["id"]).Заполнено();
- ОжидаетЧто(Результат["object"]).Равно("assistant");
- ОжидаетЧто(Результат["name"]).Равно("Math tutor");
-
- IDАссистента = Результат["id"];
- ЗаписатьПараметр("OpenAI_Assistant", IDАссистента);
- OPI_Инструменты.ДобавитьПоле("OpenAI_Assistant", IDАссистента, "Строка", Параметры);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_OpenAI_УдалитьАссистента(Знач Результат, Знач Вариант, IDАссистента = "")
-
- ОжидаетЧто(Результат["id"]).Равно(IDАссистента);
- ОжидаетЧто(Результат["object"]).Равно("assistant.deleted");
- ОжидаетЧто(Результат["deleted"]).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_OpenAI_ПолучитьАссистента(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["model"]).Заполнено();
- ОжидаетЧто(Результат["id"]).Заполнено();
- ОжидаетЧто(Результат["object"]).Равно("assistant");
- ОжидаетЧто(Результат["name"]).Равно("Math tutor");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_OpenAI_ПолучитьСписокАссистентов(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["data"]).ИмеетТип("Массив");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_OpenAI_ЗагрузитьФайл(Знач Результат, Знач Вариант, Параметры = "", ИмяФайла = "", Размер = "")
-
- ОжидаетЧто(Результат["id"]).Заполнено();
- ОжидаетЧто(Результат["object"]).Равно("file");
- ОжидаетЧто(Результат["filename"]).Равно(ИмяФайла);
- ОжидаетЧто(Результат["bytes"]).Равно(Размер);
- ОжидаетЧто(Результат["purpose"]).Равно("assistants");
-
- IDФайла = Результат["id"];
- ЗаписатьПараметр("OpenAI_File", IDФайла);
- OPI_Инструменты.ДобавитьПоле("OpenAI_File", IDФайла, "Строка", Параметры);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_OpenAI_УдалитьФайл(Знач Результат, Знач Вариант, IDФайла = "")
-
- ОжидаетЧто(Результат["id"]).Равно(IDФайла);
- ОжидаетЧто(Результат["object"]).Равно("file");
- ОжидаетЧто(Результат["deleted"]).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_OpenAI_ПолучитьИнформациюОФайле(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["id"]).Заполнено();
- ОжидаетЧто(Результат["object"]).Равно("file");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_OpenAI_ПолучитьСписокФайлов(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["data"]).ИмеетТип("Массив");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_OpenAI_СкачатьФайл(Знач Результат, Знач Вариант, Параметры = "")
-
- Файл = Параметры["Picture"];
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Файл);
-
- ОжидаетЧто(Результат).ИмеетТип("ДвоичныеДанные");
- ОжидаетЧто(Результат.Размер() >= Файл.Размер() + 2).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_OpenAI_ПолучитьСтруктуруСообщения(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(OPI_Инструменты.ЭтоКоллекция(Результат, Истина)).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_OpenAI_ПолучитьСтруктуруСообщенияКартинки(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(OPI_Инструменты.ЭтоКоллекция(Результат, Истина)).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_OpenAI_СгенерироватьРечь(Знач Результат, Знач Вариант, Параметры = "")
-
- ОжидаетЧто(Результат).ИмеетТип("ДвоичныеДанные");
- ОжидаетЧто(Результат.Размер() >= 137516).Равно(Истина);
-
- //@skip-check missing-temporary-file-deletion
- ИВФ = ПолучитьИмяВременногоФайла("wav");
- Результат.Записать(ИВФ);
-
- ЗаписатьПараметр("OpenAI_Speech", ИВФ);
- OPI_Инструменты.ДобавитьПоле("OpenAI_Speech", ИВФ, "Строка", Параметры);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_OpenAI_СоздатьТранскрипцию(Знач Результат, Знач Вариант)
-
- Текст = нРег(Результат["text"]);
- ОжидаетЧто(СтрНайти(Текст, "attack") > 0).Равно(Истина);
- ОжидаетЧто(СтрНайти(Текст, "fire") > 0).Равно(Истина);
- ОжидаетЧто(СтрНайти(Текст, "orion") > 0).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_OpenAI_ПолучитьКартинки(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["data"]).Заполнено();
- ОжидаетЧто(Результат["created"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_OpenAI_ПолучитьСписокМоделей(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["object"]).Равно("list");
- ОжидаетЧто(Результат["data"]).ИмеетТип("Массив").Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_OpenAI_ПолучитьСообщениеАссистента(Знач Результат, Знач Вариант, Проверка = "")
-
- ОжидаетЧто(Результат).Равно(Проверка);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_OpenAI_ПолучитьСообщениеПользователя(Знач Результат, Знач Вариант, Проверка = "")
-
- ОжидаетЧто(Результат).Равно(Проверка);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_OpenAI_ПолучитьСообщениеСистемы(Знач Результат, Знач Вариант, Проверка = "")
-
- ОжидаетЧто(Результат).Равно(Проверка);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_MSSQL_СформироватьСтрокуПодключения(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).ИмеетТип("Строка").Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_MSSQL_ОткрытьСоединение(Знач Результат, Знач Вариант)
-
- Результат = Строка(ТипЗнч(Результат));
- ОжидаетЧто(Результат).Равно("AddIn.OPI_MSSQL.Main");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_MSSQL_ЗакрытьСоединение(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_MSSQL_ЭтоКоннектор(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_MSSQL_ВыполнитьЗапросSQL(Знач Результат, Знач Вариант, Картинка = "")
-
- Если Вариант = "Соединение" Тогда
-
- Результат = Строка(ТипЗнч(Результат));
- ОжидаетЧто(Результат).Равно("AddIn.OPI_MSSQL.Main");
-
- ИначеЕсли ЗначениеЗаполнено(Вариант) Тогда
-
- ОжидаетЧто(Результат["result"]).Равно(Истина);
-
- Иначе
-
- Blob = Результат["data"][0]["Data"]["BYTES"];
-
- Результат["data"][0]["Data"]["BYTES"] = "Base64";
- ОжидаетЧто(Результат["result"]).Равно(Истина);
- ОжидаетЧто(Base64Значение(Blob).Размер()).Равно(Картинка.Размер());
-
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_MSSQL_ПолучитьНастройкиTLS(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(OPI_Инструменты.ЭтоКоллекция(Результат, Истина)).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_MSSQL_СоздатьБазуДанных(Знач Результат, Знач Вариант)
-
- Если Вариант = "Открытие" Тогда
-
- Результат = Строка(ТипЗнч(Результат));
- ОжидаетЧто(Результат).Равно("AddIn.OPI_MSSQL.Main");
-
- ИначеЕсли Вариант = "Существующая" Тогда
- ОжидаетЧто(Результат["result"]).Равно(Ложь);
- Иначе
- ОжидаетЧто(Результат["result"]).Равно(Истина);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_MSSQL_СоздатьТаблицу(Знач Результат, Знач Вариант)
-
- Если Не ЗначениеЗаполнено(Вариант) Тогда
- ОжидаетЧто(Результат["result"]).Равно(Истина);
- Иначе
- ОжидаетЧто(Результат["result"]).Равно(Ложь);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_MSSQL_ДобавитьЗаписи(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_MSSQL_ПолучитьЗаписи(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).Равно(Истина);
-
- Если Не ЗначениеЗаполнено(Вариант) Тогда
-
- Если ЗначениеЗаполнено(Результат["data"]) Тогда
-
- Результат["data"][0]["varbinary_field"]["BYTES"] =
- Лев(Результат["data"][0]["varbinary_field"]["BYTES"], 10) + "...";
-
- КонецЕсли;
-
- Иначе
- ОжидаетЧто(Результат["data"].Количество()).Равно(5);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_MSSQL_ОбновитьЗаписи(Знач Результат, Знач Вариант, Количество = "", СтруктураПолей = "")
-
- ОжидаетЧто(Результат["result"]).Равно(Истина);
-
- Если Вариант = "Проверка" Тогда
-
- ОжидаетЧто(Результат["data"].Количество()).Равно(Количество);
-
- Для Н = 0 По Результат["data"].ВГраница() Цикл
-
- Для Каждого Значение Из СтруктураПолей Цикл
- Результат["data"][Н][Значение.Ключ] = Значение.Значение;
- КонецЦикла;
-
- КонецЦикла;
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_MSSQL_УдалитьЗаписи(Знач Результат, Знач Вариант, Количество = "")
-
- ОжидаетЧто(Результат["result"]).Равно(Истина);
-
- Если Вариант = "Проверка" Тогда
- ОжидаетЧто(Результат["data"].Количество()).Равно(Количество);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_MSSQL_УдалитьТаблицу(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_MSSQL_УдалитьБазуДанных(Знач Результат, Знач Вариант)
-
- Если Вариант = "Открытие" Тогда
-
- Результат = Строка(ТипЗнч(Результат));
- ОжидаетЧто(Результат).Равно("AddIn.OPI_MSSQL.Main");
-
- ИначеЕсли Вариант = "Ошибка" Или Вариант = "Ошибка подключения" Тогда
- ОжидаетЧто(Результат["result"]).Равно(Ложь);
- Иначе
- ОжидаетЧто(Результат["result"]).Равно(Истина);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_MSSQL_ОчиститьТаблицу(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).Равно(Истина);
-
- Если Вариант = "Проверка" Тогда
- ОжидаетЧто(Результат["data"].Количество()).Равно(0);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_MSSQL_ПолучитьИнформациюОТаблице(Знач Результат, Знач Вариант)
-
- Если Не ЗначениеЗаполнено(Вариант) Тогда
- ОжидаетЧто(Результат["data"].Количество()).Равно(16);
- Иначе
- ОжидаетЧто(Результат["data"].Количество()).Равно(0);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_MSSQL_ДобавитьКолонкуТаблицы(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).Равно(Истина);
-
- Если Вариант = "Проверка" Тогда
-
- Найдена = Ложь;
-
- Для Каждого Колонка Из Результат["data"] Цикл
-
- Если Колонка["column_name"] = "new_field" Тогда
-
- ОжидаетЧто(нРег(Колонка["data_type"])).Равно("bigint");
- Найдена = Истина;
- КонецЕсли;
-
- КонецЦикла;
-
- ОжидаетЧто(Найдена).Равно(Истина);
-
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_MSSQL_УдалитьКолонкуТаблицы(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).Равно(Истина);
-
- Если Вариант = "Проверка" Тогда
-
- Найдена = Ложь;
-
- Для Каждого Колонка Из Результат["data"] Цикл
-
- Если Колонка["column_name"] = "new_field" Тогда
- Найдена = Истина;
- КонецЕсли;
-
- КонецЦикла;
-
- ОжидаетЧто(Найдена).Равно(Ложь);
-
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_MSSQL_ГарантироватьТаблицу(Знач Результат, Знач Вариант, СтруктураКолонок = "")
-
- ОжидаетЧто(Результат["result"]).Равно(Истина);
-
- Если Вариант = "Проверка" Тогда
-
- ОжидаетЧто(Результат["data"].Количество()).Равно(СтруктураКолонок.Количество());
-
- Для Каждого Колонка Из Результат["data"] Цикл
- ОжидаетЧто(нРег(Колонка["data_type"])).Равно(нРег(СтруктураКолонок[Колонка["column_name"]]));
- КонецЦикла;
-
- Иначе
- ОжидаетЧто(Результат["commit"]["result"]).Равно(Истина);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_MSSQL_ПолучитьСтруктуруФильтраЗаписей(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(OPI_Инструменты.ЭтоКоллекция(Результат, Истина)).Равно(Истина);
-
- Если Вариант = "Пустая" Тогда
-
- Для Каждого Элемент Из Результат Цикл
-
- Если OPI_Инструменты.ЭтоПримитивныйТип(Элемент.Значение) Тогда
- ОжидаетЧто(ЗначениеЗаполнено(Элемент.Значение)).Равно(Ложь);
- КонецЕсли;
-
- КонецЦикла;
-
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_FTP_ОткрытьСоединение(Знач Результат, Знач Вариант)
-
- Результат = Строка(ТипЗнч(Результат));
- ОжидаетЧто(Результат).Равно("AddIn.OPI_FTP.Main");
-
- Если СтрНайти(Вариант, "HTTP") Тогда
- OPI_Инструменты.Пауза(2);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_FTP_ПолучитьПриветственноеСообщение(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).Равно(Истина);
- ОжидаетЧто(Результат["data"]).Заполнено();
-
- Если СтрНайти(Вариант, "HTTP") Тогда
- OPI_Инструменты.Пауза(2);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_FTP_ПолучитьСписокРасширенийПротокола(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).Равно(Истина);
- ОжидаетЧто(Результат["data"]).Заполнено();
-
- Если СтрНайти(Вариант, "HTTP") Тогда
- OPI_Инструменты.Пауза(2);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_FTP_Пинг(Знач Результат, Знач Вариант)
-
- Если ЭтоТестCLI() Тогда
- ОжидаетЧто(нРег(Результат)).Равно("true");
- Иначе
- ОжидаетЧто(Результат).Равно(Истина);
- КонецЕсли;
-
- Если СтрНайти(Вариант, "HTTP") Тогда
- OPI_Инструменты.Пауза(2);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_FTP_ВыполнитьНестандартнуюКоманду(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).Равно(Истина);
- ОжидаетЧто(Результат["status"]).Заполнено();
- ОжидаетЧто(Результат["data"]).Заполнено();
-
- Если СтрНайти(Вариант, "HTTP") Тогда
- OPI_Инструменты.Пауза(2);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_FTP_ВыполнитьПроизвольнуюКоманду(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).Равно(Истина);
- ОжидаетЧто(Результат["status"]).Заполнено();
- ОжидаетЧто(Результат["data"]).Заполнено();
-
- Если СтрНайти(Вариант, "HTTP") Тогда
- OPI_Инструменты.Пауза(2);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_FTP_ПолучитьТекущийКаталог(Знач Результат, Знач Вариант, Параметры = "")
-
- Путь = Результат["path"];
-
- ОжидаетЧто(Результат["result"]).Равно(Истина);
- ОжидаетЧто(Путь).Заполнено();
-
- ЗаписатьПараметр("FTP_RootPath", Путь);
- OPI_Инструменты.ДобавитьПоле("FTP_RootPath", Путь, "Строка", Параметры);
-
- Если СтрНайти(Вариант, "HTTP") Тогда
- OPI_Инструменты.Пауза(2);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_FTP_ИзменитьТекущийКаталог(Знач Результат, Знач Вариант, Путь = "")
-
- ОжидаетЧто(Результат["result"]).Равно(Истина);
-
- Если СтрНайти(Вариант, "Проверка") И Не ЭтоТестCLI() Тогда
- ОжидаетЧто(СтрЗаканчиваетсяНа(Результат["path"], Путь)).Равно(Истина);
- КонецЕсли;
-
- Если СтрНайти(Вариант, "HTTP") Тогда
- OPI_Инструменты.Пауза(2);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_FTP_ПолучитьКонфигурациюСоединения(Знач Результат, Знач Вариант, Параметры = "")
-
- Если СтрНайти(Вариант, "Проверка") > 0 Тогда
-
- ОжидаетЧто(Результат["result"]).Равно(Истина);
- ОжидаетЧто(Результат["data"]).Заполнено();
- ОжидаетЧто(Результат["close_connection"]["result"]).Равно(Истина);
-
- Иначе
-
- ИспользоватьПрокси = Параметры["Proxy"];
- FTPS = Параметры["TLS"];
-
- Если ТипЗнч(Результат) = Тип("Структура") Тогда
-
- ОжидаетЧто(Результат.Свойство("set")).Равно(Истина);
- Результат["set"]["password"] = "***";
-
- Если FTPS Тогда
- ОжидаетЧто(Результат.Свойство("tls")).Равно(Истина);
- КонецЕсли;
-
- Если ИспользоватьПрокси Тогда
- ОжидаетЧто(Результат.Свойство("proxy")).Равно(Истина);
- Результат["proxy"]["password"] = "***";
- КонецЕсли;
-
- Иначе
-
- ОжидаетЧто(Результат["set"] <> Неопределено).Равно(Истина);
- Результат["set"]["password"] = "***";
-
- Если FTPS Тогда
- ОжидаетЧто(Результат["tls"] <> Неопределено).Равно(Истина);
- КонецЕсли;
-
- Если ИспользоватьПрокси Тогда
- ОжидаетЧто(Результат["proxy"] <> Неопределено).Равно(Истина);
- Результат["proxy"]["password"] = "***";
- КонецЕсли;
-
- КонецЕсли;
-
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_FTP_ЗакрытьСоединение(Знач Результат, Знач Вариант)
-
- Если СтрНайти(Вариант, "Открытие") > 0 Тогда
- Результат = Строка(ТипЗнч(Результат));
- ОжидаетЧто(Результат).Равно("AddIn.OPI_FTP.Main");
- Иначе
- ОжидаетЧто(Результат["result"]).Равно(Истина);
- КонецЕсли;
-
- Если СтрНайти(Вариант, "HTTP") Тогда
- OPI_Инструменты.Пауза(2);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_FTP_ЭтоКоннектор(Знач Результат, Знач Вариант)
-
- Если СтрНайти(Вариант, "Открытие") > 0 Тогда
- Результат = Строка(ТипЗнч(Результат));
- ОжидаетЧто(Результат).Равно("AddIn.OPI_FTP.Main");
- Иначе
- ОжидаетЧто(Результат).Равно(Истина);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_FTP_ПолучитьНастройкиСоединения(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(OPI_Инструменты.ЭтоКоллекция(Результат, Истина)).Равно(Истина);
-
- Результат["password"] = "***";
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_FTP_ПолучитьНастройкиПрокси(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(OPI_Инструменты.ЭтоКоллекция(Результат, Истина)).Равно(Истина);
-
- Результат["password"] = "***";
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_FTP_ПолучитьНастройкиTLS(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(OPI_Инструменты.ЭтоКоллекция(Результат, Истина)).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_FTP_СоздатьНовуюДиректорию(Знач Результат, Знач Вариант, Основной = Ложь)
-
- Если СтрНайти(Вариант, "Удаление") > 0 Тогда
- Возврат Результат;
- КонецЕсли;
-
- Если Основной Или СтрНайти(Вариант, "Вложенная") > 0 Тогда
-
- ОжидаетЧто(Результат["result"]).Равно(Истина);
-
- ИначеЕсли СтрНайти(Вариант, "Проверка 1") > 0 Тогда
-
- ОжидаетЧто(Результат["result"]).Равно(Истина);
- ОжидаетЧто(Результат["data"]).ИмеетТип("Массив").ИмеетДлину(1);
- ОжидаетЧто(Результат["data"][0]["name"]).Равно("another_one");
-
- ИначеЕсли СтрНайти(Вариант, "Проверка 2") > 0 Тогда
-
- ОжидаетЧто(Результат["result"]).Равно(Истина);
- ОжидаетЧто(Результат["data"]).ИмеетТип("Массив").ИмеетДлину(1);
- ОжидаетЧто(Результат["data"][0]["objects"]).ИмеетТип("Массив").ИмеетДлину(1);
-
- Иначе
-
- ОжидаетЧто(Результат["result"]).Равно(Ложь);
-
- КонецЕсли;
-
- Если СтрНайти(Вариант, "HTTP") Тогда
- OPI_Инструменты.Пауза(2);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_FTP_ПолучитьСписокОбъектов(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).Равно(Истина);
-
- Если СтрНайти(Вариант, "Файл") > 0 Тогда
- ОжидаетЧто(Результат["data"]).ИмеетТип("Массив").ИмеетДлину(0);
- КонецЕсли;
-
- Если СтрНайти(Вариант, "HTTP") Тогда
- OPI_Инструменты.Пауза(2);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_FTP_ЗагрузитьФайл(Знач Результат, Знач Вариант, Размер = "")
-
- ОжидаетЧто(Результат["bytes"]).Равно(Размер);
-
- Если Не СтрНайти(Вариант, "Размер 1") > 0 Или СтрНайти(Вариант, "Размер 2") > 0 Тогда
-
- ОжидаетЧто(Результат["result"]).Равно(Истина);
-
- КонецЕсли;
-
- Если СтрНайти(Вариант, "HTTP") Тогда
- OPI_Инструменты.Пауза(2);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_FTP_УдалитьФайл(Знач Результат, Знач Вариант)
-
- Если СтрНайти(Вариант, "Несуществующий") > 0 Тогда
-
- ОжидаетЧто(Результат["result"]).Равно(Ложь);
-
- ИначеЕсли СтрНайти(Вариант, "Проверка") > 0 Тогда
-
- ОжидаетЧто(Результат["result"]).Равно(Истина);
- ОжидаетЧто(Результат["data"]).ИмеетТип("Массив").ИмеетДлину(1);
-
- Иначе
-
- ОжидаетЧто(Результат["result"]).Равно(Истина);
-
- КонецЕсли;
-
- Если СтрНайти(Вариант, "HTTP") Тогда
- OPI_Инструменты.Пауза(2);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_FTP_УдалитьДиректорию(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).Равно(Истина);
-
- Если СтрНайти(Вариант, "HTTP") Тогда
- OPI_Инструменты.Пауза(2);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_FTP_ОчиститьДиректорию(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).Равно(Истина);
-
- Если СтрНайти(Вариант, "Проверка") > 0 Тогда
- ОжидаетЧто(Результат["data"]).ИмеетТип("Массив").ИмеетДлину(0);
- КонецЕсли;
-
- Если СтрНайти(Вариант, "HTTP") Тогда
- OPI_Инструменты.Пауза(2);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_FTP_ПолучитьРазмерОбъекта(Знач Результат, Знач Вариант)
-
- Если СтрНайти(Вариант, "Несуществующий") > 0 Тогда
- ОжидаетЧто(Результат["result"]).Равно(Ложь);
- Иначе
- ОжидаетЧто(Результат["result"]).Равно(Истина);
- КонецЕсли;
-
- Если СтрНайти(Вариант, "HTTP") Тогда
- OPI_Инструменты.Пауза(2);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_FTP_ИзменитьПуть(Знач Результат, Знач Вариант)
-
- Если СтрНайти(Вариант, "Список, обратно") > 0 Тогда
-
- ОжидаетЧто(Результат["result"]).Равно(Истина);
- ОжидаетЧто(Результат["data"]).ИмеетТип("Массив").ИмеетДлину(1);
- ОжидаетЧто(Результат["data"][0]["path"]).Равно("new_dir");
- ОжидаетЧто(Результат["data"][0]["objects"][0]["path"]).Равно("new_dir/pic_from_disk.png");
-
- ИначеЕсли СтрНайти(Вариант, "Список") > 0 Тогда
-
- ОжидаетЧто(Результат["result"]).Равно(Истина);
- ОжидаетЧто(Результат["data"]).ИмеетТип("Массив").ИмеетДлину(1);
- ОжидаетЧто(Результат["data"][0]["path"]).Равно("brand_new_dir");
- ОжидаетЧто(Результат["data"][0]["objects"][0]["path"]).Равно("brand_new_dir/pic_copy.png");
-
- ИначеЕсли СтрНайти(Вариант, "Проверка, старый") > 0 Тогда
-
- ОжидаетЧто(Результат["result"]).Равно(Ложь);
-
- Иначе
- ОжидаетЧто(Результат["result"]).Равно(Истина);
- КонецЕсли;
-
- Если СтрНайти(Вариант, "HTTP") Тогда
- OPI_Инструменты.Пауза(2);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_FTP_СохранитьФайл(Знач Результат, Знач Вариант, РазмерРезультата = "", РазмерПроверки = "")
-
- Если СтрНайти(Вариант, "Размер файла") > 0 Тогда
- ОжидаетЧто(Результат).Равно(РазмерРезультата);
- ОжидаетЧто(Результат).Равно(РазмерПроверки);
- Иначе
- ОжидаетЧто(Результат["result"]).Равно(Истина);
- КонецЕсли;
-
- Если СтрНайти(Вариант, "HTTP") Тогда
- OPI_Инструменты.Пауза(2);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_FTP_ПолучитьДанныеФайла(Знач Результат, Знач Вариант, РазмерПроверки = "")
-
- Если СтрНайти(Вариант, "Размер файла") > 0 Тогда
- ОжидаетЧто(Результат).Равно(РазмерПроверки);
- ИначеЕсли СтрНайти(Вариант, "Размер") > 0 Тогда
- ОжидаетЧто(Результат["result"]).Равно(Истина);
- Иначе
- ОжидаетЧто(Результат).ИмеетТип("ДвоичныеДанные");
- КонецЕсли;
-
- Если СтрНайти(Вариант, "HTTP") Тогда
- OPI_Инструменты.Пауза(2);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_SSH_ОткрытьСоединение(Знач Результат, Знач Вариант)
-
- Результат = Строка(ТипЗнч(Результат));
- ОжидаетЧто(Результат).Равно("AddIn.OPI_SSH.Main");
-
- Если СтрНайти(Вариант, "HTTP") Тогда
- OPI_Инструменты.Пауза(2);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_SSH_ВыполнитьКоманду(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).Равно(Истина);
- ОжидаетЧто(Результат["stderr"]).Равно("");
- ОжидаетЧто(Результат["exit_code"]).Равно("0");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_SSH_ПолучитьКонфигурациюСоединения(Знач Результат, Знач Вариант)
-
- Если СтрНайти(Вариант, "Проверка") > 0 Тогда
-
- ОжидаетЧто(Результат["result"]).Равно(Истина);
- ОжидаетЧто(Результат["stderr"]).Равно("");
- ОжидаетЧто(Результат["stdout"]).Заполнено();
- ОжидаетЧто(Результат["exit_code"]).Равно("0");
- ОжидаетЧто(Результат["close_connection"]["result"]).Равно(Истина);
-
- Иначе
-
- ОжидаетЧто(Результат["set"]).Заполнено();
-
- Если OPI_Инструменты.ПолеКоллекцииСуществует(Результат["set"], "password") Тогда
- Результат["set"]["password"] = "***";
- КонецЕсли;
-
- Если OPI_Инструменты.ПолеКоллекцииСуществует(Результат["set"], "key_path") Тогда
- Результат["set"]["key_path"] = "./ssh_key";
- Результат["set"]["pub_path"] = "./ssh_key.pub";
- КонецЕсли;
-
- Если OPI_Инструменты.ПолеКоллекцииСуществует(Результат, "proxy") Тогда
-
- ОжидаетЧто(Результат["proxy"]).Заполнено();
- Результат["proxy"]["password"] = "***";
-
- КонецЕсли;
-
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_SSH_ЗакрытьСоединение(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_SSH_ЭтоКоннектор(Знач Результат, Знач Вариант)
-
- Если СтрНайти(Вариант, "Ошибка") Тогда
- ОжидаетЧто(Результат).Равно(Ложь);
- Иначе
- ОжидаетЧто(Результат).Равно(Истина);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_SSH_ПолучитьНастройкиЛогинПароль(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["auth_type"]).Равно("password");
- ОжидаетЧто(Результат["host"]).Заполнено();
- ОжидаетЧто(Результат["port"]).Заполнено();
- ОжидаетЧто(Результат["username"]).Заполнено();
- ОжидаетЧто(Результат["password"]).Заполнено();
-
- Результат["password"] = "***";
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_SSH_ПолучитьНастройкиПриватныйКлюч(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["auth_type"]).Равно("private_key");
- ОжидаетЧто(Результат["host"]).Заполнено();
- ОжидаетЧто(Результат["port"]).Заполнено();
- ОжидаетЧто(Результат["username"]).Заполнено();
- ОжидаетЧто(Результат["key_path"]).Заполнено();
- ОжидаетЧто(Результат["pub_path"]).Заполнено();
-
- Результат["key_path"] = "./ssh_key";
- Результат["pub_path"] = "./ssh_key.pub";
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_SSH_ПолучитьНастройкиЧерезАгента(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["auth_type"]).Равно("agent");
- ОжидаетЧто(Результат["host"]).Заполнено();
- ОжидаетЧто(Результат["port"]).Заполнено();
- ОжидаетЧто(Результат["username"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_SSH_ПолучитьНастройкиПрокси(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(OPI_Инструменты.ЭтоКоллекция(Результат, Истина)).Равно(Истина);
-
- Результат["password"] = "***";
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_SFTP_ОткрытьСоединение(Знач Результат, Знач Вариант)
-
- Результат = Строка(ТипЗнч(Результат));
- ОжидаетЧто(Результат).Равно("AddIn.OPI_SSH.Main");
-
- Если СтрНайти(Вариант, "HTTP") Тогда
- OPI_Инструменты.Пауза(2);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_SFTP_СоздатьНовуюДиректорию(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_SFTP_УдалитьДиректорию(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_SFTP_ПолучитьТекущийКаталог(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).Равно(Истина);
- ОжидаетЧто(Результат["path"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_SFTP_ПолучитьСписокОбъектов(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).Равно(Истина);
- ОжидаетЧто(Результат["data"]).ИмеетТип("Массив").Заполнено();
- ОжидаетЧто(Результат["data"][0]["uid"]).Заполнено();
- ОжидаетЧто(Результат["data"][0]["is_directory"]).Равно(Истина);
-
- Если СтрНайти(Вариант, "Без рекурсии") = 0 Тогда
-
- ОжидаетЧто(Результат["data"][0]["objects"].Количество()).Равно(3);
- ОжидаетЧто(Результат["data"][0]["objects"][1]["objects"].Количество()).Равно(1);
- ОжидаетЧто(Результат["data"][0]["objects"][2]["objects"].Количество()).Равно(2);
-
- ОжидаетЧто(Результат["data"][0]["objects"][0]["objects"]).Равно(Неопределено);
-
- Иначе
-
- ОжидаетЧто(Результат["data"][0]["objects"]).Равно(Неопределено);
-
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_SFTP_ИзменитьТекущийКаталог(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).Равно(Истина);
-
- Если СтрНайти(Вариант, "Проверка") > 0 Тогда
- ОжидаетЧто(Результат["path"]).Равно("/config/test_folder");
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_SFTP_ЗагрузитьФайл(Знач Результат, Знач Вариант, Размер = "")
-
- Если СтрНайти(Вариант, "Размер файла") > 0 Тогда
-
- ОжидаетЧто(Результат).Равно(Размер);
-
- Иначе
-
- ОжидаетЧто(Результат["bytes"]).Равно(Размер);
- ОжидаетЧто(Результат["result"]).Равно(Истина);
-
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_SFTP_УдалитьФайл(Знач Результат, Знач Вариант)
-
- Если СтрНайти(Вариант, "Несуществующий") > 0 Тогда
-
- ОжидаетЧто(Результат["result"]).Равно(Ложь);
-
- ИначеЕсли СтрНайти(Вариант, "Проверка") > 0 Тогда
-
- ОжидаетЧто(Результат["result"]).Равно(Истина);
- ОжидаетЧто(Результат["data"]).ИмеетТип("Массив").ИмеетДлину(1);
-
- Иначе
-
- ОжидаетЧто(Результат["result"]).Равно(Истина);
-
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_SFTP_ЭтоКоннектор(Знач Результат, Знач Вариант)
-
- Если СтрНайти(Вариант, "Ошибка") Тогда
- ОжидаетЧто(Результат).Равно(Ложь);
- Иначе
- ОжидаетЧто(Результат).Равно(Истина);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_SFTP_ПолучитьНастройкиЛогинПароль(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["auth_type"]).Равно("password");
- ОжидаетЧто(Результат["host"]).Заполнено();
- ОжидаетЧто(Результат["port"]).Заполнено();
- ОжидаетЧто(Результат["username"]).Заполнено();
- ОжидаетЧто(Результат["password"]).Заполнено();
-
- Результат["password"] = "***";
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_SFTP_ПолучитьНастройкиПриватныйКлюч(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["auth_type"]).Равно("private_key");
- ОжидаетЧто(Результат["host"]).Заполнено();
- ОжидаетЧто(Результат["port"]).Заполнено();
- ОжидаетЧто(Результат["username"]).Заполнено();
- ОжидаетЧто(Результат["key_path"]).Заполнено();
- ОжидаетЧто(Результат["pub_path"]).Заполнено();
-
- Результат["key_path"] = "./ssh_key";
- Результат["pub_path"] = "./ssh_key.pub";
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_SFTP_ПолучитьНастройкиЧерезАгента(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["auth_type"]).Равно("agent");
- ОжидаетЧто(Результат["host"]).Заполнено();
- ОжидаетЧто(Результат["port"]).Заполнено();
- ОжидаетЧто(Результат["username"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_SFTP_ПолучитьНастройкиПрокси(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(OPI_Инструменты.ЭтоКоллекция(Результат, Истина)).Равно(Истина);
-
- Результат["password"] = "***";
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_SFTP_ПолучитьКонфигурациюСоединения(Знач Результат, Знач Вариант)
-
- Если СтрНайти(Вариант, "Проверка") > 0 Тогда
-
- ОжидаетЧто(Результат["result"]).Равно(Истина);
- ОжидаетЧто(Результат["stderr"]).Равно("");
- ОжидаетЧто(Результат["stdout"]).Заполнено();
- ОжидаетЧто(Результат["exit_code"]).Равно("0");
- ОжидаетЧто(Результат["close_connection"]["result"]).Равно(Истина);
-
- Иначе
-
- ОжидаетЧто(Результат["set"]).Заполнено();
-
- Если OPI_Инструменты.ПолеКоллекцииСуществует(Результат["set"], "password") Тогда
- Результат["set"]["password"] = "***";
- КонецЕсли;
-
- Если OPI_Инструменты.ПолеКоллекцииСуществует(Результат["set"], "key_path") Тогда
- Результат["set"]["key_path"] = "./ssh_key";
- Результат["set"]["pub_path"] = "./ssh_key.pub";
- КонецЕсли;
-
- Если OPI_Инструменты.ПолеКоллекцииСуществует(Результат, "proxy") Тогда
-
- ОжидаетЧто(Результат["proxy"]).Заполнено();
- Результат["proxy"]["password"] = "***";
-
- КонецЕсли;
-
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_SFTP_ЗакрытьСоединение(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_SFTP_СохранитьФайл(Знач Результат, Знач Вариант, РазмерПроверки = "")
-
- Если СтрНайти(Вариант, "Размер файла") > 0 Тогда
- ОжидаетЧто(Результат).Равно(РазмерПроверки);
- Иначе
- ОжидаетЧто(Результат["result"]).Равно(Истина);
- КонецЕсли;
-
- Если СтрНайти(Вариант, "HTTP") Тогда
- OPI_Инструменты.Пауза(2);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_SFTP_ПолучитьДанныеФайла(Знач Результат, Знач Вариант, РазмерПроверки = "")
-
- Если СтрНайти(Вариант, "Размер файла") > 0 Тогда
- ОжидаетЧто(Результат).Равно(РазмерПроверки);
- ИначеЕсли СтрНайти(Вариант, "Размер") > 0 Тогда
- ОжидаетЧто(Результат["result"]).Равно(Истина);
- Иначе
- ОжидаетЧто(Результат).ИмеетТип("ДвоичныеДанные");
- КонецЕсли;
-
- Если СтрНайти(Вариант, "HTTP") Тогда
- OPI_Инструменты.Пауза(2);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_SFTP_ИзменитьПуть(Знач Результат, Знач Вариант)
-
- Если СтрНайти(Вариант, "Проверка, Старый") Тогда
- ОжидаетЧто(Результат["result"]).Равно(Ложь);
- Иначе
- ОжидаетЧто(Результат["result"]).Равно(Истина);
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_SFTP_ПолучитьИнформациюОФайле(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["result"]).Равно(Истина);
- ОжидаетЧто(Результат["data"]).Заполнено();
- ОжидаетЧто(Результат["data"]["size"]).Заполнено();
- ОжидаетЧто(Результат["data"]["modified"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GreenMax_СформироватьПараметрыДоступа(Знач Результат, Знач Вариант)
-
- Результат.Вставить("apiTokenInstance", "***");
- ОжидаетЧто(OPI_Инструменты.ЭтоКоллекция(Результат, Истина)).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GreenMax_ПолучитьКодАвторизации(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["data"]["reason"]).Равно("already_registered");
- Возврат Неопределено;
-
-КонецФункции
-
-Функция Проверка_GreenMax_РазлогинитьИнстанс(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["isLogout"]).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GreenMax_ОтправитьКодАвторизации(Знач Результат, Знач Вариант)
-
- Возврат Неопределено;
-
-КонецФункции
-
-Функция Проверка_GreenMax_ПолучитьСостояниеИнстанса(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["stateInstance"]).Равно("authorized");
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GreenMax_ПерезапуститьИнстанс(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["isReboot"]).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GreenMax_ПолучитьСтруктуруНастроекИнстанса(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(OPI_Инструменты.ЭтоКоллекция(Результат, Истина)).Равно(Истина);
-
- Если Вариант = "Пустая" Тогда
-
- Для Каждого Элемент Из Результат Цикл
-
- Если OPI_Инструменты.ЭтоПримитивныйТип(Элемент.Значение) Тогда
- ОжидаетЧто(ЗначениеЗаполнено(Элемент.Значение)).Равно(Ложь);
- КонецЕсли;
-
- КонецЦикла;
-
- КонецЕсли;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GreenMax_ПолучитьНастройкиИнстанса(Знач Результат, Знач Вариант, Параметры = "")
-
- Попытка
- JSON = OPI_Инструменты.JSONСтрокой(Результат);
- JSON = СтрЗаменить(JSON, Параметры["GreenMax_AccountID"], "1234567890@c.us");
-
- Результат = OPI_Инструменты.JsonВСтруктуру(JSON, Истина);
- Исключение
- Сообщить("Ошибка JSON");
- КонецПопытки;
-
- ОжидаетЧто(Результат["delaySendMessagesMilliseconds"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GreenMax_УстановитьНастройкиИнстанса(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["saveSettings"]).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GreenMax_УстановитьКартинкуПрофиля(Знач Результат, Знач Вариант)
-
- ОжидаетЧто(Результат["setProfilePicture"]).Равно(Истина);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция Проверка_GreenMax_ПолучитьИнформациюОбАккаунте(Знач Результат, Знач Вариант)
-
- Попытка
- Результат["chatId"] = "***";
- Результат["phone"] = "***";
- Исключение
- Сообщить("Не удалось заменить секреты!");
- КонецПопытки;
-
- ОжидаетЧто(Результат["chatId"]).Заполнено();
- ОжидаетЧто(Результат["phone"]).Заполнено();
-
- Возврат Результат;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область ReportPortal
-
-Процедура ЗаписатьПропущенныйТест(Знач Библиотека, Знач Метод, Знач Вариант)
-
- Данные = ПолучитьСуществующийЗапуск();
-
- Если Данные = Неопределено Тогда
- Возврат;
- КонецЕсли;
-
- IDНабора = СоздатьНаборЗапуска(Библиотека);
- IDЭлемента = СоздатьТестовыйЭлемент(IDНабора, Библиотека, Метод, Вариант);
-
- Токен = ПолучитьПараметр("RPortal_Token");
- Проект = ПолучитьПараметр("RPortal_MainProject");
- URL = ПолучитьПараметр("RPortal_URL");
-
- ТекущаяДата = ПолучитьВремяЗапуска();
-
- СтруктураЭлемента = Новый Структура;
-
- СтруктураЭлемента.Вставить("endTime" , ТекущаяДата);
- СтруктураЭлемента.Вставить("launchUuid", Данные["id"]);
- СтруктураЭлемента.Вставить("status" , "skipped");
-
- ReportPortal().ЗавершитьЭлемент(URL, Токен, Проект, IDЭлемента, СтруктураЭлемента);
-
-КонецПроцедуры
-
-Процедура ЗаписатьЛогТеста(Знач Тест, Знач Текст, Знач Уровень)
-
- Данные = ПолучитьСуществующийЗапуск();
-
- Если Данные = Неопределено Тогда
- Возврат;
- КонецЕсли;
-
- ТекущаяДата = ПолучитьВремяЗапуска();
-
- Токен = ПолучитьПараметр("RPortal_Token");
- Проект = ПолучитьПараметр("RPortal_MainProject");
- URL = ПолучитьПараметр("RPortal_URL");
-
- СтруктураЛога = Новый Структура;
- СтруктураЛога.Вставить("launchUuid", Данные["id"]);
- СтруктураЛога.Вставить("itemUuid" , Тест);
- СтруктураЛога.Вставить("time" , ТекущаяДата);
- СтруктураЛога.Вставить("message" , Текст);
- СтруктураЛога.Вставить("level" , Уровень);
-
- ReportPortal().ЗаписатьЛог(URL, Токен, Проект, СтруктураЛога);
-
-КонецПроцедуры
-
-Процедура ЗавершитьТестовыйЭлемент(Знач UUID, Знач Статус)
-
- Данные = ПолучитьСуществующийЗапуск();
-
- Если Данные = Неопределено Тогда
- Возврат;
- КонецЕсли;
-
- Токен = ПолучитьПараметр("RPortal_Token");
- Проект = ПолучитьПараметр("RPortal_MainProject");
- URL = ПолучитьПараметр("RPortal_URL");
-
- ТекущаяДата = ПолучитьВремяЗапуска();
-
- СтруктураЭлемента = Новый Структура;
-
- СтруктураЭлемента.Вставить("endTime" , ТекущаяДата);
- СтруктураЭлемента.Вставить("launchUuid", Данные["id"]);
- СтруктураЭлемента.Вставить("status" , Статус);
-
- ReportPortal().ЗавершитьЭлемент(URL, Токен, Проект, UUID, СтруктураЭлемента);
-
- НайденныйТест = Данные["items"].Получить(UUID);
-
- Если ЗначениеЗаполнено(НайденныйТест) Тогда
- Данные["tests"].Добавить(НайденныйТест);
- КонецЕсли;
-
- ЗаписатьФайлЗапуска(Данные);
-
-КонецПроцедуры
-
-Процедура ЗаписатьФайлЗапуска(Знач Данные)
-
- ФайлЗапуска = ПолучитьПараметр("RPortal_MainLaunch");
- OPI_Инструменты.ЗаписатьJSONФайл(ФайлЗапуска, Данные);
-
-КонецПроцедуры
-
-Процедура СоздатьФайлЗапуска(Знач UUID)
-
- ИВФ = ПолучитьИмяВременногоФайла();
-
- СтруктураДанных = Новый Структура;
- СтруктураДанных.Вставить("id" , UUID);
- СтруктураДанных.Вставить("ended" , Ложь);
- СтруктураДанных.Вставить("suites", Новый Соответствие);
- СтруктураДанных.Вставить("tests" , Новый Массив);
- СтруктураДанных.Вставить("items" , Новый Соответствие);
-
- OPI_Инструменты.ЗаписатьJSONФайл(ИВФ, СтруктураДанных);
- ЗаписатьПараметр("RPortal_MainLaunch", ИВФ);
-
-КонецПроцедуры
-
-Функция ПолучитьСуществующийЗапуск()
-
- Данные = ПрочитатьФайлЗапуска();
- UID = Данные["id"];
- Завершен = Данные["ended"];
-
- Если Не ЗначениеЗаполнено(UID) Или Завершен Тогда
- Возврат Неопределено;
- Иначе
- Возврат Данные;
- КонецЕсли;
-
-КонецФункции
-
-Функция ПолучитьВремяЗапуска()
-
- Сдвиг = ?(OPI_Инструменты.ЭтоWindows(), 3600 * 3, 0);
- ТекущаяДата = OPI_Инструменты.ПолучитьТекущуюДату() - Сдвиг;
-
- Возврат ТекущаяДата;
-
-КонецФункции
-
-Функция ПрочитатьФайлЗапуска()
-
- ФайлЗапуска = ПолучитьПараметр("RPortal_MainLaunch");
-
- ОбъектЗапуска = Новый Файл(ФайлЗапуска);
-
- Если Не ЗначениеЗаполнено(ФайлЗапуска) Или Не ОбъектЗапуска.Существует() Тогда
- Возврат Новый Соответствие;
- КонецЕсли;
-
- Данные = OPI_Инструменты.ПрочитатьJSONФайл(ФайлЗапуска, Истина);
- Возврат Данные;
-
-КонецФункции
-
-Функция ReportPortal()
-
- Попытка
-
- // BSLLS:CommonModuleAssign-off
-
- //@skip-check property-not-writable
- //@skip-check bsl-legacy-check-static-feature-access
- OPI_ReportPortal = Неопределено;
-
- // BSLLS:CommonModuleAssign-on
-
- // !OInt ТекущийКаталог = СтрЗаменить(ТекущийСценарий().Каталог, "\", "/");
- // !OInt МассивПути = СтрРазделить(ТекущийКаталог, "/");
- // !OInt МассивПути.Удалить(МассивПути.ВГраница());
- // !OInt МассивПути.Удалить(МассивПути.ВГраница());
- // !OInt МассивПути.Добавить("core");
- // !OInt МассивПути.Добавить("Modules");
- // !OInt МассивПути.Добавить("OPI_ReportPortal.os");
- // !OInt ПодключитьСценарий(СтрСоединить(МассивПути, "/"), "ReportPortal");
- // !OInt OPI_ReportPortal = Новый("ReportPortal");
-
- Возврат OPI_ReportPortal;
-
- Исключение
-
- Возврат OPI_ReportPortal;
-
- КонецПопытки;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область Прочее
-
-Функция ПолучитьЗначениеИзФайла(Параметр, Путь)
-
- Значения = OPI_Инструменты.ПрочитатьJSONФайл(Путь);
- Возврат ?(Значения.Свойство(Параметр), Значения[Параметр], "");
-
-КонецФункции
-
-Функция ПутьКФайлуДанных()
-
- Путь = "";
- ВозможныеПути = Новый Массив;
- ВозможныеПути.Добавить("./data.json");
- ВозможныеПути.Добавить("C:\GDrive\Мой диск\data.json");
- ВозможныеПути.Добавить("G:\My Drive\data.json");
-
- Для Каждого ВозможныйПуть Из ВозможныеПути Цикл
-
- ФайлРепозитория = Новый Файл(ВозможныйПуть);
-
- Если ФайлРепозитория.Существует() Тогда
- Путь = ВозможныйПуть;
- Прервать;
- КонецЕсли;
-
- КонецЦикла;
-
- Возврат Путь;
-
-КонецФункции
-
-Функция ПолучитьОбщийМодуль(Знач Имя)
- УстановитьБезопасныйРежим(Истина);
- Модуль = Вычислить(Имя);
- Возврат Модуль;
-КонецФункции
-
-Функция ПолучитьЗначениеДляCLI(Знач Значение, Знач Вложенный = Ложь, ДопОпции = "")
-
- ТекущийТип = ТипЗнч(Значение);
- ТекущийТипСтрокой = Строка(ТекущийТип);
- Обертка = Ложь;
-
- Если ТекущийТип = Тип("Число") Тогда
-
- Если Не Вложенный Тогда
- Значение = OPI_Инструменты.ЧислоВСтроку(Значение);
- КонецЕсли;
-
- ИначеЕсли ТекущийТип = Тип("Строка") Или ТекущийТип = Тип("УникальныйИдентификатор") Тогда
-
- Значение = OPI_Инструменты.ЧислоВСтроку(Значение);
-
- Если Вложенный Тогда
- Значение = СтрЗаменить(Значение, Символы.ПС, " ");
- Иначе
- Значение = СтрЗаменить(Значение, Символы.ПС, "\n");
- Обертка = Истина;
- КонецЕсли;
-
- Если OPI_Инструменты.ЭтоWindows() Тогда
- Значение = СтрЗаменить(Значение, "%", "%%");
- КонецЕсли;
-
- ИначеЕсли ТекущийТип = Тип("Дата") Тогда
-
- Если Не Вложенный Тогда
- Значение = XMLСтрока(Значение);
- Обертка = Истина;
- КонецЕсли;
-
- ИначеЕсли ТекущийТип = Тип("Структура") Или ТекущийТип = Тип("Соответствие") Или ТекущийТип = Тип("Массив") Тогда
-
- Если ТекущийТип = Тип("Структура") Или ТекущийТип = Тип("Соответствие") Тогда
-
- Значение_ = Новый (ТекущийТипСтрокой);
-
- Для Каждого КлючЗначение Из Значение Цикл
- Значение_.Вставить(КлючЗначение.Ключ, ПолучитьЗначениеДляCLI(КлючЗначение.Значение, Истина, ДопОпции));
- КонецЦикла;
-
- Значение = Значение_;
-
- КонецЕсли;
-
- Если ТекущийТип = Тип("Соответствие") Тогда
-
- Значение_ = Новый Соответствие;
-
- Для Каждого КлючЗначение Из Значение Цикл
- Значение_.Вставить(ПолучитьЗначениеДляCLI(КлючЗначение.Ключ, Истина, ДопОпции), КлючЗначение.Значение);
- КонецЦикла;
-
- Значение = Значение_;
-
- КонецЕсли;
-
- ЗаписьJSON = Новый ЗаписьJSON;
-
- Если ТекущийТип = Тип("Массив") Или Вложенный Тогда
-
- Если ТекущийТип = Тип("Массив") Тогда
- Для Н = 0 По Значение.ВГраница() Цикл
- Значение[Н] = ПолучитьЗначениеДляCLI(Значение[Н], Истина, ДопОпции);
- КонецЦикла;
- КонецЕсли;
-
- Если Не Вложенный Тогда
- ПараметрыЗаписи = Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Нет, , Ложь);
- ЗаписьJSON.УстановитьСтроку(ПараметрыЗаписи);
- ЗаписатьJSON(ЗаписьJSON, Значение);
-
- Значение = ЗаписьJSON.Закрыть();
- Обертка = Истина;
- КонецЕсли;
-
- Иначе
-
- // BSLLS:MissingTemporaryFileDeletion-off
-
- //@skip-check missing-temporary-file-deletion
- ИВФ = ПолучитьИмяВременногоФайла("json");
-
- // BSLLS:MissingTemporaryFileDeletion-on
-
- OPI_Инструменты.ЗаписатьJSONФайл(ИВФ, Значение);
-
- Значение = ИВФ;
- Обертка = Истина;
-
- КонецЕсли;
-
- ИначеЕсли ТекущийТип = Тип("Булево") Тогда
-
- Если Не Вложенный Тогда
- Значение = ?(Значение, "true", "false");
- Обертка = Ложь;
- КонецЕсли;
-
- ИначеЕсли ТекущийТип = Тип("ДвоичныеДанные") Тогда
-
- // BSLLS:MissingTemporaryFileDeletion-off
-
- //@skip-check missing-temporary-file-deletion
- ИВФ = ПолучитьИмяВременногоФайла();
- Значение.Записать(ИВФ);
- Значение = ИВФ;
- Обертка = Не Вложенный;
-
- // BSLLS:MissingTemporaryFileDeletion-on
-
- ИначеЕсли СтрНачинаетсяС(ТекущийТипСтрокой, "AddIn") Тогда
-
- Значение = ОбработатьПараметрКомпонентыCLI(Значение, ТекущийТипСтрокой, ДопОпции);
- Обертка = Не Вложенный;
-
- ИначеЕсли ТекущийТип = Тип("Неопределено") И Вложенный Тогда
-
- Значение = Неопределено;
-
- Иначе
-
- ВызватьИсключение "Неподдерживаемый тип " + ТекущийТипСтрокой;
-
- КонецЕсли;
-
- Если Не OPI_Инструменты.ЭтоWindows() И Не Вложенный Тогда
- Значение = СтрЗаменить(Значение, """", """'""");
- КонецЕсли;
-
- Если Обертка Тогда
- Значение = """" + Значение + """";
- КонецЕсли;
-
- Возврат Значение;
-
-КонецФункции
-
-Функция ОбработатьПараметрКомпонентыCLI(Знач Значение, Знач ТипЗначения, ДопОпции)
-
- ИмяКомпоненты = СтрРазделить(ТипЗначения, ".")[1];
-
- Если ИмяКомпоненты = "OPI_PostgreSQL" Или ИмяКомпоненты = "OPI_MySQL" Или ИмяКомпоненты = "OPI_MSSQL" Тогда
-
- Если ИмяКомпоненты = "OPI_MSSQL" Тогда
-
- TLS = Новый Структура("use_tls, accept_invalid_certs, ca_cert_path", Истина, Истина, "");
- ДопОпции.Вставить("tls", TLS);
-
- Иначе
-
- TLS = Значение.GetTLSSettings();
-
- Если ЗначениеЗаполнено(TLS) Тогда
- OPI_ПреобразованиеТипов.ПолучитьКоллекцию(TLS);
- ДопОпции.Вставить("tls", TLS);
- КонецЕсли;
-
- КонецЕсли;
-
- Значение = Значение["ConnectionString"];
-
- ИначеЕсли ИмяКомпоненты = "OPI_SQLite" Тогда
-
- Значение = Значение["Database"];
-
- ИначеЕсли ИмяКомпоненты = "OPI_TCPClient" Тогда
-
- Значение = Значение["Address"];
-
- ИначеЕсли ИмяКомпоненты = "OPI_RCON" Тогда
-
- Значение = Значение.GetSettings();
- OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(Значение);
- ИВФ = ПолучитьИмяВременногоФайла();
- OPI_Инструменты.ЗаписатьJSONФайл(ИВФ, Значение);
-
- Значение = ИВФ;
-
- ИначеЕсли ИмяКомпоненты = "OPI_FTP" Тогда
-
- Значение = Значение.GetConfiguration();
- OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(Значение);
-
- Данные = Значение["data"];
- Конфигурация = Новый Структура;
-
- Конфигурация.Вставить("set", Данные["ftp_settings"]);
-
- Если ЗначениеЗаполнено(Данные["tls_settings"]) Тогда
- Конфигурация.Вставить("tls", Данные["tls_settings"]);
- КонецЕсли;
-
- Если ЗначениеЗаполнено(Данные["proxy_settings"]) Тогда
- Конфигурация.Вставить("proxy", Данные["proxy_settings"]);
- КонецЕсли;
-
- ИВФ = ПолучитьИмяВременногоФайла();
- OPI_Инструменты.ЗаписатьJSONФайл(ИВФ, Конфигурация);
-
- Значение = ИВФ;
-
- ИначеЕсли ИмяКомпоненты = "OPI_SSH" Тогда
-
- Значение = Значение.GetConfiguration();
- OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(Значение);
-
- Значение = Значение["conf"];
-
- ИВФ = ПолучитьИмяВременногоФайла();
- OPI_Инструменты.ЗаписатьJSONФайл(ИВФ, Значение);
-
- Значение = ИВФ;
-
- Иначе
- ВызватьИсключение "Неподдерживаемый тип " + ТипЗначения;
- КонецЕсли;
-
- Возврат Значение;
-
-КонецФункции
-
-Функция ОформитьОпцию(Знач Имя, Знач Значение, Вложенный = Ложь)
-
- МассивСекретов = Новый Массив;
- МассивСекретов.Добавить("token");
- МассивСекретов.Добавить("key");
- МассивСекретов.Добавить("secret");
- МассивСекретов.Добавить("pass");
- МассивСекретов.Добавить("password");
- МассивСекретов.Добавить("client");
- МассивСекретов.Добавить("api");
- МассивСекретов.Добавить("refresh");
- МассивСекретов.Добавить("invite_link");
-
- СписокИсключений = Новый СписокЗначений;
- СписокИсключений.Добавить("passive");
- СписокИсключений.Добавить("keyboard");
-
- СтруктураЗамен = Новый Соответствие;
- СтруктураЗамен.Вставить("host.docker.internal", "127.0.0.1");
-
- Обертка = Ложь;
-
- Если ТипЗнч(Значение) = Тип("Строка") Тогда
-
- Для Каждого СекретныйКлюч Из МассивСекретов Цикл
-
- Если СтрНайти(нРег(Имя), СекретныйКлюч) <> 0 И СписокИсключений.НайтиПоЗначению(нРег(Имя)) = Неопределено Тогда
-
- Значение = "***";
- Обертка = Истина;
-
- КонецЕсли;
-
- КонецЦикла;
-
- Для Каждого ЗначениеЗамены Из СтруктураЗамен Цикл
- Значение = СтрЗаменить(Значение, ЗначениеЗамены.Ключ, ЗначениеЗамены.Значение);
- КонецЦикла;
-
- ЗначениеСтрокой = Значение;
-
- Если Не Вложенный И СтрНачинаетсяС(ЗначениеСтрокой, """") И СтрЗаканчиваетсяНа(ЗначениеСтрокой, """") Тогда
-
- ЗначениеСтрокой = Лев(ЗначениеСтрокой, СтрДлина(ЗначениеСтрокой) - 1);
- ЗначениеСтрокой = Прав(ЗначениеСтрокой, СтрДлина(ЗначениеСтрокой) - 1);
-
- Обертка = Истина;
-
- КонецЕсли;
-
- Значение = ЗначениеСтрокой;
- OPI_ПреобразованиеТипов.ПолучитьКоллекцию(Значение, Ложь);
-
- Иначе
- ЗначениеСтрокой = "-----------!!!!№№№---------------";
- КонецЕсли;
-
- Если ТипЗнч(Значение) = Тип("Массив") Тогда
-
- Если Строка(Значение[0]) = ЗначениеСтрокой Тогда
- Значение = ЗначениеСтрокой;
- Иначе
-
- Для Н = 0 По Значение.ВГраница() Цикл
- Значение[Н] = ОформитьОпцию("", Значение[Н], Истина);
- КонецЦикла;
-
- КонецЕсли;
-
- ИначеЕсли OPI_Инструменты.ЭтоКоллекция(Значение, Истина) Тогда
-
- Значение_ = Новый (ТипЗнч(Значение));
-
- Для Каждого КлючЗначение Из Значение Цикл
- Значение_.Вставить(КлючЗначение.Ключ, ОформитьОпцию(КлючЗначение.Ключ, КлючЗначение.Значение, Истина));
- КонецЦикла;
-
- Значение = Значение_;
-
- Иначе
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Значение);
-
- КонецЕсли;
-
- Если Вложенный Тогда
- Возврат Значение;
- Иначе
-
- Если Не ТипЗнч(Значение) = Тип("Строка") Тогда
- Попытка
- Значение = OPI_Инструменты.JSONСтрокой(Значение, , Ложь, Ложь);
- Исключение
- Значение = Строка(Значение);
- КонецПопытки;
- КонецЕсли;
-
- Значение = ?(Обертка, СтрШаблон("""%1""", Значение), Значение);
- Возврат "--" + Имя + " " + Значение;
-
- КонецЕсли;
-
-КонецФункции
-
-Функция ПрочестьРезультатCLI(Знач ФайлРезультата)
-
- Попытка
-
- // BSLLS:ExternalAppStarting-off
- ЧтениеJSON = Новый ЧтениеJSON;
- ЧтениеJSON.ОткрытьФайл(ФайлРезультата);
- Результат = ПрочитатьJSON(ЧтениеJSON, Истина);
- ЧтениеJSON.Закрыть();
- // BSLLS:ExternalAppStarting-on
-
- Исключение
-
- Сообщить(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
-
- Попытка
- Результат = Новый ДвоичныеДанные(ФайлРезультата);
-
- Если Результат.Размер() < 10000 Тогда
- Результат = ПолучитьСтрокуИзДвоичныхДанных(Результат);
- КонецЕсли;
-
- Исключение
- Результат = Null;
- КонецПопытки;
-
- КонецПопытки;
-
- Возврат Результат;
-
-КонецФункции
-
-Функция ВывестиЛог(Знач Результат, Знач Метод, Знач Библиотека, Знач ОписаниеОшибки = Неопределено)
-
- Шапка = Строка(OPI_Инструменты.ПолучитьТекущуюДату()) + " | " + Метод;
-
- Данные = РезультатТестаКакТекст(Результат);
-
- Текст = Шапка + Символы.ПС + Символы.ПС;
-
- Если ЗначениеЗаполнено(ОписаниеОшибки) Тогда
- Текст = Текст + ОписаниеОшибки + Символы.ПС + Символы.ПС + "---------------------------------" + Символы.ПС
- + Символы.ПС;
- КонецЕсли;
-
- Текст = Текст + Данные + Символы.ПС + Символы.ПС + "---------------------------------" + Символы.ПС;
-
- Сообщить(Текст);
-
- Возврат Текст;
-
-КонецФункции
-
-Функция РезультатТестаКакТекст(Знач Результат)
-
- Попытка
- Данные = OPI_Инструменты.JSONСтрокой(Результат);
- Исключение
- Данные = Строка(Результат);
- КонецПопытки;
-
- Данные = СокрЛП(Данные);
-
- Возврат Данные;
-
-КонецФункции
-
-Процедура НовыйТест(ТаблицаЗначений, Знач Метод, Знач Синоним, Знач Раздел)
-
- НовыйТест = ТаблицаЗначений.Добавить();
- НовыйТест.Метод = Метод;
- НовыйТест.Синоним = Синоним;
- НовыйТест.Раздел = Раздел;
-
-КонецПроцедуры
-
-Процедура ЗаписатьПараметрВФайл(Знач Параметр, Знач Значение, Знач Путь)
-
- Значения = OPI_Инструменты.ПрочитатьJSONФайл(Путь);
- Значения.Вставить(Параметр, Значение);
-
- // BSLLS:ExternalAppStarting-off
- Запись = Новый ЗаписьJSON;
- ПараметрыЗаписиJSON = Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Авто, Символы.Таб);
- Запись.ОткрытьФайл(Путь, , , ПараметрыЗаписиJSON);
- ЗаписатьJSON(Запись, Значения);
- Запись.Закрыть();
- // BSLLS:ExternalAppStarting-on
-
-КонецПроцедуры
-
-Процедура ЗаписатьВызовCLI(Знач Библиотека, Знач Метод, Знач Опции)
-
- Если Не OPI_Инструменты.ЭтоOneScript() Тогда
- Возврат;
- КонецЕсли;
-
- КаталогПримеров = "./docs/ru/cli/" + Библиотека;
- ФайлПримеров = Новый Файл(КаталогПримеров);
-
- Если Не ФайлПримеров.Существует() Тогда
- СоздатьКаталог(КаталогПримеров);
- КонецЕсли;
-
- КаталогМетода = КаталогПримеров + "/" + Метод;
- ФайлМетода = Новый Файл(КаталогМетода);
-
- Если Не ФайлМетода.Существует() Тогда
- СоздатьКаталог(КаталогМетода);
- КонецЕсли;
-
- МассивОпций = Новый Массив;
- ЕстьJSON = Ложь;
-
- Для Каждого Опция Из Опции Цикл
-
- ТекущаяОпция = Опция.Значение;
-
- ОбработатьОсобенныеСекретыОпций(Библиотека, Опция.Ключ, ТекущаяОпция);
-
- ТекущаяОпция = ОформитьОпцию(Опция.Ключ, ТекущаяОпция);
-
- Если Не ЕстьJSON Тогда
- ЕстьJSON = СтрНайти(ТекущаяОпция, "{") > 0 И СтрНайти(ТекущаяОпция, "}") > 0;
- КонецЕсли;
-
- МассивОпций.Добавить(ТекущаяОпция);
-
- КонецЦикла;
-
- Начало = "oint ";
-
- Если ЕстьJSON Тогда
-
- Информация = "JSON данные также могут быть переданы как путь к файлу .json";
-
- НачалоBat = ":: " + Информация + Символы.ПС + Символы.ПС + Начало;
- НачалоBash = "# " + Информация + Символы.ПС + Символы.ПС + Начало;
-
- Иначе
-
- НачалоBat = Начало;
- НачалоBash = Начало;
-
- КонецЕсли;
-
- РазделительBat = " ^" + Символы.ПС + " ";
- РазделительBash = " \" + Символы.ПС + " ";
-
- СтрокаBat = НачалоBat + Библиотека + " " + Метод + РазделительBat + СтрСоединить(МассивОпций, РазделительBat);
- СтрокаBash = НачалоBash + Библиотека + " " + Метод + РазделительBash + СтрСоединить(МассивОпций, РазделительBash);
-
- ПолучитьДвоичныеДанныеИзСтроки(СтрокаBat).Записать(КаталогМетода + "/bat.txt");
- ПолучитьДвоичныеДанныеИзСтроки(СтрокаBash).Записать(КаталогМетода + "/bash.txt");
-
-КонецПроцедуры
-
-Процедура ЗаписатьФайлЛога(Знач Данные, Знач Метод, Знач Библиотека, Знач Перезаписывать = Истина)
-
- Если Не OPI_Инструменты.ЭтоOneScript() Тогда
- Возврат;
- КонецЕсли;
-
- Попытка
-
- ПутьЛогов = "./docs/ru/results";
- ПутьЛоговБиблиотеки = ПутьЛогов + "/" + Библиотека;
- ПутьКФайлу = ПутьЛоговБиблиотеки + "/" + Метод + ".log";
-
- Если Не Перезаписывать Тогда
-
- ОбъектЛога = Новый Файл(ПутьКФайлу);
-
- Если ОбъектЛога.Существует() Тогда
- Возврат;
- КонецЕсли;
-
- КонецЕсли;
-
- КаталогЛогов = Новый Файл(ПутьЛогов);
-
- Если Не КаталогЛогов.Существует() Тогда
- СоздатьКаталог(ПутьЛогов);
- КонецЕсли;
-
- КаталогЛоговБиблиотеки = Новый Файл(ПутьЛоговБиблиотеки);
-
- Если Не КаталогЛоговБиблиотеки.Существует() Тогда
- СоздатьКаталог(ПутьЛоговБиблиотеки);
- КонецЕсли;
-
- ДанныеТекст = РезультатТестаКакТекст(Данные);
-
- ДокументЛога = Новый ТекстовыйДокумент;
- ДокументЛога.УстановитьТекст(ДанныеТекст);
- ДокументЛога.Записать(ПутьКФайлу);
-
- Исключение
- Сообщить("Не удалось записать файл лога!: " + ОписаниеОшибки());
- КонецПопытки;
-
-КонецПроцедуры
-
-Процедура ОбработатьОсобенныеСекретыОпций(Знач Библиотека, Знач Опция, Значение)
-
- Значение_ = Значение;
-
- Если Библиотека = "bitrix24" Тогда
-
- ОбработатьСекретыBitrix24(Опция, Значение);
-
- ИначеЕсли Библиотека = "postgres" Тогда
-
- ОбработатьСекретыPostgreSQL(Опция, Значение);
-
- ИначеЕсли Библиотека = "mysql" Тогда
-
- ОбработатьСекретыMySQL(Опция, Значение);
-
- ИначеЕсли Библиотека = "mssql" Тогда
-
- ОбработатьСекретыMSSQL(Опция, Значение);
-
- ИначеЕсли Библиотека = "ollama" Тогда
-
- ОбработатьСекретыOllama(Опция, Значение);
-
- ИначеЕсли Библиотека = "vk" Тогда
-
- ОбработатьСекретыVK(Опция, Значение);
-
- Иначе
- Возврат;
- КонецЕсли;
-
- Если Не Значение_ = Значение Тогда
- Значение = СтрШаблон("""%1""", Значение);
- КонецЕсли;
-
-КонецПроцедуры
-
-Процедура ОбработатьСекретыBitrix24(Знач Опция, Значение)
-
- Если Опция = "url" Тогда
-
- Значение = ?(СтрНайти(Значение, "rest") > 0, "https://b24-ar17wx.bitrix24.by/rest/1/***", Значение);
-
- КонецЕсли;
-
-КонецПроцедуры
-
-Процедура ОбработатьСекретыPostgreSQL(Знач Опция, Значение)
-
- Если Опция = "dbc" Тогда
-
- Значение = "postgresql://bayselonarrend:***@127.0.0.1:5432/";
-
- ИначеЕсли Опция = "addr" Тогда
-
- Значение = "127.0.0.1";
-
- Иначе
- Возврат;
- КонецЕсли;
-
-КонецПроцедуры
-
-Процедура ОбработатьСекретыMySQL(Знач Опция, Значение)
-
- Если Опция = "dbc" Тогда
-
- Значение = "mysql://bayselonarrend:***@127.0.0.1:3306/";
-
- ИначеЕсли Опция = "addr" Тогда
-
- Значение = "127.0.0.1";
-
- Иначе
- Возврат;
- КонецЕсли;
-
-КонецПроцедуры
-
-Процедура ОбработатьСекретыMSSQL(Знач Опция, Значение)
-
- Если Опция = "dbc" Тогда
-
- Значение = "Server=127.0.0.1;Database=***;User Id=SA;Password=***;";
-
- ИначеЕсли Опция = "addr" Тогда
-
- Значение = "127.0.0.1";
-
- Иначе
- Возврат;
- КонецЕсли;
-
-КонецПроцедуры
-
-Процедура ОбработатьСекретыOllama(Знач Опция, Значение)
-
- Если Опция = "headers" Тогда
-
- Значение = OPI_Инструменты.JSONСтрокой(Новый Структура("Authorization", "***"));
-
- Иначе
- Возврат;
- КонецЕсли;
-
-КонецПроцедуры
-
-Процедура ОбработатьСекретыVK(Знач Опция, Значение)
-
- Если Опция = "ct" Тогда
-
- Значение = "***";
-
- КонецЕсли;
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#КонецОбласти
diff --git a/XML/CommonModules/OPI_ПреобразованиеТипов.xml b/XML/CommonModules/OPI_ПреобразованиеТипов.xml
deleted file mode 100644
index 723ff8b3e4..0000000000
--- a/XML/CommonModules/OPI_ПреобразованиеТипов.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- OPI_ПреобразованиеТипов
-
-
- ru
- Преобразование типов (служебный, ОПИ)
-
-
- Модуль приведения типов набора ОПИ
- false
- false
- true
- true
- true
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git a/XML/CommonModules/OPI_ПреобразованиеТипов/Ext/Module.bsl b/XML/CommonModules/OPI_ПреобразованиеТипов/Ext/Module.bsl
deleted file mode 100644
index d550ac3468..0000000000
--- a/XML/CommonModules/OPI_ПреобразованиеТипов/Ext/Module.bsl
+++ /dev/null
@@ -1,437 +0,0 @@
-// OneScript: ./OInt/tools/Modules/OPI_ПреобразованиеТипов.os
-
-// MIT License
-
-// Copyright (c) 2023-2025 Anton Tsitavets
-
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-
-// The above copyright notice and this permission notice shall be included in all
-// copies or substantial portions of the Software.
-
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-// SOFTWARE.
-
-// https://github.com/Bayselonarrend/OpenIntegrations
-
-// BSLLS:LatinAndCyrillicSymbolInWord-off
-// BSLLS:IncorrectLineBreak-off
-// BSLLS:UnusedLocalVariable-off
-// BSLLS:UsingServiceTag-off
-// BSLLS:UsingSynchronousCalls-off
-
-//@skip-check module-structure-top-region
-//@skip-check module-structure-method-in-regions
-//@skip-check undefined-function-or-procedure
-//@skip-check wrong-string-literal-content
-
-// #Использовать "./internal"
-#Область СлужебныйПрограммныйИнтерфейс
-
-Процедура ПолучитьДвоичныеДанные(Значение, Знач Безусловно = Ложь, Знач ПопыткаB64 = Истина) Экспорт
-
- Если Значение = Неопределено Тогда
- Возврат;
- КонецЕсли;
-
- Попытка
-
- Если ТипЗнч(Значение) = Тип("ДвоичныеДанные") Тогда
-
- Возврат;
-
- ИначеЕсли ЭтоКоллекция(Значение) Тогда
-
- Значение = OPI_Инструменты.JSONСтрокой(Значение);
- Значение = ПолучитьДвоичныеДанныеИзСтроки(Значение);
-
- Иначе
- ПолучитьСтроку(Значение);
- ПреобразоватьИсточникВЗначение(Значение, ПопыткаB64);
- КонецЕсли;
-
- Исключение
-
- Если Безусловно Тогда
- ПолучитьСтроку(Значение);
- Значение = ПолучитьДвоичныеДанныеИзСтроки(Значение);
- Иначе
- ВызватьИсключение "Ошибка получения двоичных данных из параметра: " + ОписаниеОшибки();
- КонецЕсли;
-
- КонецПопытки;
-
-КонецПроцедуры
-
-Процедура ПолучитьДвоичныеИлиПоток(Значение) Экспорт
-
- Если Значение = Неопределено Тогда
- Возврат;
- КонецЕсли;
-
- Если ТипЗнч(Значение) <> Тип("Строка") Тогда
- ПолучитьДвоичныеДанные(Значение);
- Возврат;
- КонецЕсли;
-
- ЗначениеУП = Значение;
- OPI_Инструменты.ВернутьУправляющиеПоследовательности(ЗначениеУП);
-
- Файл = Новый Файл(ЗначениеУП);
-
- Если Файл.Существует() Тогда
- Значение = Новый ФайловыйПоток(ЗначениеУП, РежимОткрытияФайла.Открыть);
- Иначе
- ПолучитьДвоичныеДанные(Значение);
- КонецЕсли;
-
-КонецПроцедуры
-
-Процедура ПолучитьКоллекцию(Значение, ПоСети = Истина) Экспорт
-
- Если Значение = Неопределено Тогда
- Возврат;
- КонецЕсли;
-
- Попытка
-
- // BSLLS:ExternalAppStarting-off
-
- ИсходноеЗначение = Значение;
-
- Если ЭтоКоллекция(Значение) Тогда
- Возврат;
- Иначе
-
- Если ТипЗнч(Значение) = Тип("ДвоичныеДанные") Тогда
- Значение = ПолучитьСтрокуИзДвоичныхДанных(Значение);
- Иначе
- Значение = OPI_Инструменты.ЧислоВСтроку(Значение);
- КонецЕсли;
-
- ЗначениеУП = Значение;
- OPI_Инструменты.ВернутьУправляющиеПоследовательности(ЗначениеУП);
-
- Файл = Новый Файл(ЗначениеУП);
- ЧтениеJSON = Новый ЧтениеJSON;
-
- Если Файл.Существует() Тогда
-
- ЧтениеJSON.ОткрытьФайл(ЗначениеУП);
- Значение = ПрочитатьJSON(ЧтениеJSON, Истина, Неопределено, ФорматДатыJSON.ISO);
- ЧтениеJSON.Закрыть();
-
- ИначеЕсли ПоСети И (СтрНачинаетсяС(СокрЛ(ЗначениеУП), "http://")
- Или СтрНачинаетсяС(СокрЛ(ЗначениеУП), "https://")) Тогда
-
- Значение = OPI_ЗапросыHTTP.Get(ЗначениеУП);
-
- Иначе
-
- ЧтениеJSON.УстановитьСтроку(СокрЛП(Значение));
- Значение = ПрочитатьJSON(ЧтениеJSON, Истина, Неопределено, ФорматДатыJSON.ISO);
- ЧтениеJSON.Закрыть();
-
- КонецЕсли;
-
- Если (Не ЭтоКоллекция(Значение)) Или Не ЗначениеЗаполнено(Значение) Тогда
-
- Значение = ИсходноеЗначение;
- OPI_Инструменты.ЗначениеВМассив(Значение);
-
- КонецЕсли;
-
- КонецЕсли;
-
- // BSLLS:ExternalAppStarting-on
-
- Исключение
-
- Значение = ИсходноеЗначение;
- OPI_Инструменты.ЗначениеВМассив(Значение);
-
- КонецПопытки;
-
-КонецПроцедуры
-
-Процедура ПолучитьКоллекциюКлючИЗначение(Значение
- , Знач СообщениеОшибки = "Указанное значение не является подходящей коллекцией!") Экспорт
-
- ПолучитьКоллекцию(Значение);
-
- Если ТипЗнч(Значение) = Тип("Массив") Тогда
- ВызватьИсключение СообщениеОшибки;
- КонецЕсли;
-
-КонецПроцедуры
-
-Процедура ПолучитьМассив(Значение) Экспорт
-
- Если ТипЗнч(Значение) = Тип("Массив") Тогда
- Возврат;
- КонецЕсли;
-
- ПолучитьКоллекцию(Значение);
-
- Если Не ТипЗнч(Значение) = Тип("Массив") Тогда
- OPI_Инструменты.ЗначениеВМассив(Значение);
- КонецЕсли;
-
-КонецПроцедуры
-
-Процедура ПолучитьБулево(Значение) Экспорт
-
- Если Значение = Неопределено Тогда
- Возврат;
- КонецЕсли;
-
- Попытка
-
- Если ТипЗнч(Значение) = Тип("Булево") Тогда
-
- Возврат;
-
- Иначе
-
- Значение = Булево(Значение);
-
- КонецЕсли;
-
- Исключение
- ВызватьИсключение "Ошибка получения данных булево из параметра";
- КонецПопытки;
-
-КонецПроцедуры
-
-Процедура ПолучитьСтроку(Значение, Знач ИзИсточника = Ложь) Экспорт
-
- Если Значение = Неопределено Тогда
- Возврат;
- КонецЕсли;
-
- Попытка
-
- Если ЭтоСимвольное(Значение) Тогда
-
- Значение = OPI_Инструменты.ЧислоВСтроку(Значение);
-
- Если Не ИзИсточника Тогда
- Возврат;
- КонецЕсли;
-
- ЗначениеУП = Значение;
- OPI_Инструменты.ВернутьУправляющиеПоследовательности(ЗначениеУП);
-
- Файл = Новый Файл(ЗначениеУП);
-
- Если Файл.Существует() Тогда
-
- ЧтениеТекста = Новый ЧтениеТекста(ЗначениеУП);
- Значение = ЧтениеТекста.Прочитать();
- ЧтениеТекста.Закрыть();
-
- ИначеЕсли СтрНачинаетсяС(СокрЛ(ЗначениеУП), "http://")
- Или СтрНачинаетсяС(СокрЛ(ЗначениеУП), "https://") Тогда
-
- Значение = OPI_ЗапросыHTTP.Get(ЗначениеУП);
- ПолучитьСтроку(Значение);
-
- Иначе
-
- Значение = OPI_Инструменты.ЧислоВСтроку(Значение);
-
- КонецЕсли;
-
- ИначеЕсли ТипЗнч(Значение) = Тип("ДвоичныеДанные") Тогда
-
- Значение = ПолучитьСтрокуИзДвоичныхДанных(Значение);
-
- ИначеЕсли ЭтоКоллекция(Значение) Тогда
-
- Значение = OPI_Инструменты.JSONСтрокой(Значение);
-
- ИначеЕсли ТипЗнч(Значение) = Тип("ЗаписьXML") Тогда
-
- Значение = Значение.Закрыть();
-
- Иначе
- Возврат;
- КонецЕсли;
-
- Исключение
- Значение = Строка(Значение);
- Возврат;
- КонецПопытки;
-
-КонецПроцедуры
-
-Процедура ПолучитьДату(Значение) Экспорт
-
- Если Значение = Неопределено Тогда
- Возврат;
- КонецЕсли;
-
- Дата = "Дата";
-
- Попытка
-
- Если ТипЗнч(Значение) = Тип(Дата) Тогда
-
- Возврат;
-
- Иначе
-
- Значение = XMLЗначение(Тип(Дата), Значение);
-
- КонецЕсли;
-
- Исключение
- ООД = Новый ОписаниеТипов(Дата);
- Значение = ООД.ПривестиЗначение(Значение);
- КонецПопытки;
-
-КонецПроцедуры
-
-Процедура ПолучитьЧисло(Значение) Экспорт
-
- Если ТипЗнч(Значение) = Тип("Число") Тогда
-
- Возврат;
-
- ИначеЕсли ТипЗнч(Значение) = Тип("Булево") Тогда
-
- Значение = ?(Значение, 1, 0);
-
- Иначе
-
- ОписаниеТипа = Новый ОписаниеТипов("Число");
- Значение_ = ОписаниеТипа.ПривестиЗначение(Значение);
-
- Если Значение_ = 0 Тогда
-
- Попытка
-
- Значение_ = Строка(Значение);
- Значение_ = СтрЗаменить(Значение, Символы.НПП, "");
- Значение_ = СтрЗаменить(Значение, " " , "");
- Значение_ = СтрЗаменить(Значение, "," , ".");
-
- Если СтрЧислоВхождений(Значение_, ".") > 1 Тогда
-
- МассивЧастей = СтрРазделить(Значение_, ".");
- ПоследняяЧасть = МассивЧастей.ВГраница();
- ДробнаяЧасть = МассивЧастей[ПоследняяЧасть];
-
- МассивЧастей.Удалить(ПоследняяЧасть);
-
- Значение_ = СтрШаблон("%1.%2", СтрСоединить(МассивЧастей), ДробнаяЧасть);
-
- КонецЕсли;
-
- // BSLLS:TryNumber-off
- Значение = Число(Значение_);
- // BSLLS:TryNumber-on
-
- Исключение
- Возврат;
- КонецПопытки;
-
- Иначе
- Значение = Значение_;
- КонецЕсли;
-
- КонецЕсли;
-
-КонецПроцедуры
-
-Процедура ПолучитьФайлНаДиске(Значение, Знач Расширение = "tmp") Экспорт
-
- СтруктураВозврата = Новый Структура("Путь,Временный", "", Ложь);
- ЗначениеСтрокой = OPI_Инструменты.ЧислоВСтроку(Значение);
- ЗначениеФайл = Новый Файл(ЗначениеСтрокой);
-
- Если ЗначениеФайл.Существует() Тогда
-
- СтруктураВозврата.Вставить("Путь", ЗначениеФайл.ПолноеИмя);
-
- Иначе
-
- ПолучитьДвоичныеДанные(Значение, Истина);
-
- // BSLLS:MissingTemporaryFileDeletion-off
-
- //@skip-check missing-temporary-file-deletion
- Путь = ПолучитьИмяВременногоФайла(Расширение);
-
- // BSLLS:MissingTemporaryFileDeletion-on
-
- Значение.Записать(Путь);
-
- СтруктураВозврата.Вставить("Путь" , Путь);
- СтруктураВозврата.Вставить("Временный", Истина);
-
- КонецЕсли;
-
- Значение = СтруктураВозврата;
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-Функция ЭтоКоллекция(Знач Значение)
-
- Возврат ТипЗнч(Значение) = Тип("Массив")
- Или ТипЗнч(Значение) = Тип("Структура")
- Или ТипЗнч(Значение) = Тип("Соответствие");
-
-КонецФункции
-
-Функция ЭтоСимвольное(Знач Значение)
-
- Возврат ТипЗнч(Значение) = Тип("Строка")
- Или ТипЗнч(Значение) = Тип("Число")
- Или ТипЗнч(Значение) = Тип("Дата");
-
-КонецФункции
-
-Процедура ПреобразоватьИсточникВЗначение(Значение, ПопыткаB64)
-
- ЗначениеУП = Значение;
- OPI_Инструменты.ВернутьУправляющиеПоследовательности(ЗначениеУП);
-
- Файл = Новый Файл(ЗначениеУП);
-
- Если Файл.Существует() Тогда
-
- Значение = Новый ДвоичныеДанные(ЗначениеУП);
-
- ИначеЕсли СтрНачинаетсяС(СокрЛ(ЗначениеУП), "http://")
- Или СтрНачинаетсяС(СокрЛ(ЗначениеУП), "https://") Тогда
-
- Значение = OPI_ЗапросыHTTP.Get(ЗначениеУП);
-
- Иначе
-
- Если ПопыткаB64 Тогда
- Значение = Base64Значение(Значение);
- Иначе
- ВызватьИсключение "значение не является путем к файлу или Base64 строкой";
- КонецЕсли;
-
- КонецЕсли;
-
-КонецПроцедуры
-
-#КонецОбласти
diff --git a/XML/CommonModules/OPI_Тесты.xml b/XML/CommonModules/OPI_Тесты.xml
deleted file mode 100644
index f3cb5b14d6..0000000000
--- a/XML/CommonModules/OPI_Тесты.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
- OPI_Тесты
-
-
-
- OPI тесты
-
-
- ru
- Тесты для YaxUnit/1testrunner (служебный, ОПИ)
-
-
- Основной модуль тестов набора ОПИ
- false
- false
- true
- true
- true
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git a/XML/CommonModules/OPI_Тесты/Ext/Module.bsl b/XML/CommonModules/OPI_Тесты/Ext/Module.bsl
deleted file mode 100644
index 8f1a39ce66..0000000000
--- a/XML/CommonModules/OPI_Тесты/Ext/Module.bsl
+++ /dev/null
@@ -1,23492 +0,0 @@
-// OneScript: ./OInt/tests/Modules/internal/OPI_Тесты.os
-
-// MIT License
-
-// Copyright (c) 2023-2025 Anton Tsitavets
-
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-
-// The above copyright notice and this permission notice shall be included in all
-// copies or substantial portions of the Software.
-
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-// SOFTWARE.
-
-// https://github.com/Bayselonarrend/OpenIntegrations
-
-// Набор тестов для YAxUnit
-
-// BSLLS:Typo-off
-// BSLLS:LatinAndCyrillicSymbolInWord-off
-// BSLLS:IncorrectLineBreak-off
-// BSLLS:UsingServiceTag-off
-// BSLLS:UnusedParameters-off
-// BSLLS:DuplicateStringLiteral-off
-// BSLLS:UsingHardcodePath-off
-// BSLLS:UnusedLocalVariable-off
-// BSLLS:DeprecatedMessage-off
-// BSLLS:LineLength-off
-// BSLLS:MagicNumber-off
-// BSLLS:CommentedCode-off
-// BSLLS:AssignAliasFieldsInQuery-off
-// BSLLS:UsingHardcodeNetworkAddress-off
-// BSLLS:UnreachableCode-off
-// BSLLS:UnusedLocalMethod-off
-// BSLLS:NestedFunctionInParameters-off
-// BSLLS:MissingTemporaryFileDeletion-off
-// BSLLS:UsingSynchronousCalls-off
-// BSLLS:MagicNumber-off
-// BSLLS:MagicDate-off
-// BSLLS:MissingParameterDescription-off
-// BSLLS:NumberOfOptionalParams-off
-
-//@skip-check undefined-variable
-//@skip-check wrong-string-literal-content
-//@skip-check module-structure-top-region
-//@skip-check module-structure-method-in-regions
-//@skip-check undefined-function-or-procedure
-//@skip-check wrong-string-literal-content
-//@skip-check module-unused-local-variable
-//@skip-check bsl-legacy-check-string-literal
-//@skip-check bsl-legacy-check-method-for-statements-after-return
-//@skip-check missing-temporary-file-deletion
-//@skip-check module-unused-method
-
-// Раскомментировать, если выполняется OneScript
-// #Использовать oint
-// #Использовать asserts
-
-#Область СлужебныйПрограммныйИнтерфейс
-
-// Для YaxUnit
-
-Процедура ИсполняемыеСценарии() Экспорт
-
- OPI_ПолучениеДанныхТестов.СформироватьТестыЯкс();
-
-КонецПроцедуры
-
-// Для Asserts
-
-Функция ПолучитьСписокТестов(ЮнитТестирование) Экспорт
-
- Возврат OPI_ПолучениеДанныхТестов.СформироватьТестыАссертс();
-
-КонецФункции
-
-#Область ЗапускаемыеТесты
-
-#Область Служебные
-
-Процедура ПроверитьСоответствиеИБПоследнейСборке() Экспорт
-
- Если OPI_ПолучениеДанныхТестов.ЭтоТестCLI() Тогда
-
- //@skip-check use-non-recommended-method
- Сообщить("CLI test check for hash sum");
- СуммаСборки = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("hashsum", "", Новый Структура);
-
- Иначе
-
- СуммаСборки = OPI_Инструменты.ПолучитьХешСуммуПоследнейСборки();
-
- КонецЕсли;
-
- URL = "https://raw.githubusercontent.com/Bayselonarrend/OpenIntegrations/refs/heads/main/service/last_build_hash.txt";
-
- СуммаПоследний = OPI_ЗапросыHTTP
- .НовыйЗапрос()
- .Инициализировать(URL)
- .ОбработатьЗапрос("GET")
- .ВернутьОтветКакСтроку(Ложь, Истина);
-
- Обработать(СуммаСборки, "BuildCheck", "ПроверитьСоответствиеИБПоследнейСборке", , СуммаПоследний);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область Telegram
-
-Процедура Телеграм_ПолучитьИнформациюБота() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_Token", ПараметрыТеста);
-
- Telegram_ПолучитьИнформациюБота(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Телеграм_ПолучитьОбновления() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_Token", ПараметрыТеста);
-
- Telegram_УдалитьWebhook(ПараметрыТеста);
- Telegram_ПолучитьОбновления(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Телеграм_УстановитьWebhook() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_Token", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_URL" , ПараметрыТеста);
-
- Telegram_УстановитьWebhook(ПараметрыТеста);
- Telegram_УдалитьWebhook(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Телеграм_ОтправитьТекстовоеСообщение() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChatID" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChannelID", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("String" , ПараметрыТеста);
-
- Telegram_ОтправитьТекстовоеСообщение(ПараметрыТеста);
- Telegram_ЗаменитьТекстСообщения(ПараметрыТеста);
- Telegram_ЗаменитьКлавиатуруСообщения(ПараметрыТеста);
- Telegram_СформироватьКлавиатуруПоМассивуКнопок(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Телеграм_ОтправитьКартинку() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChatID" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChannelID", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("String" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
-
- Telegram_ОтправитьКартинку(ПараметрыТеста);
- Telegram_ЗаменитьОписаниеСообщения(ПараметрыТеста);
- Telegram_СкачатьФайл(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Телеграм_ОтправитьВидео() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChatID" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChannelID", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("String" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Video" , ПараметрыТеста);
-
- Telegram_ОтправитьВидео(ПараметрыТеста);
- Telegram_СкачатьФайл(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Телеграм_ОтправитьАудио() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChatID" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChannelID", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("String" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Audio" , ПараметрыТеста);
-
- Telegram_ОтправитьАудио(ПараметрыТеста);
- Telegram_СкачатьФайл(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Телеграм_ОтправитьДокумент() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChatID" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChannelID", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("String" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Document" , ПараметрыТеста);
-
- Telegram_ОтправитьДокумент(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Телеграм_ОтправитьГифку() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChatID" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChannelID", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("String" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GIF" , ПараметрыТеста);
-
- Telegram_ОтправитьГифку(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Телеграм_ОтправитьМедиагруппу() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChatID" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChannelID", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("String" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Video" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Document" , ПараметрыТеста);
-
- Telegram_ОтправитьМедиагруппу(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Телеграм_ОтправитьМестоположение() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChatID" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChannelID", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Long" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Lat" , ПараметрыТеста);
-
- Telegram_ОтправитьМестоположение(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Телеграм_ОтправитьКонтакт() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChatID" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChannelID", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Name" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Surname" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Phone" , ПараметрыТеста);
-
- Telegram_ОтправитьКонтакт(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Телеграм_ОтправитьОпрос() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChatID" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChannelID", ПараметрыТеста);
-
- Telegram_ОтправитьОпрос(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Телеграм_ПереслатьСообщение() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChatID" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChannelID" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChannelMessageID", ПараметрыТеста);
-
- Telegram_ПереслатьСообщение(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Телеграм_БанРазбан() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChatID" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChannelID", ПараметрыТеста);
-
- Telegram_Бан(ПараметрыТеста);
- Telegram_Разбан(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Телеграм_СоздатьСсылкуПриглашение() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChannelID", ПараметрыТеста);
-
- Telegram_СоздатьСсылкуПриглашение(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Телеграм_ЗакрепитьОткрепитьСообщение() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChannelID" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChannelMessageID", ПараметрыТеста);
-
- Telegram_ЗакрепитьСообщение(ПараметрыТеста);
- Telegram_ОткрепитьСообщение(ПараметрыТеста);
- Telegram_УдалитьСообщение(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Телеграм_ПолучитьЧислоУчастников() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChannelID", ПараметрыТеста);
-
- Telegram_ПолучитьЧислоУчастников(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Телеграм_ПолучитьСписокАватаровФорума() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_Token", ПараметрыТеста);
-
- Telegram_ПолучитьСписокИконокАватаров(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Телеграм_СоздатьУдалитьТемуФорума() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ForumID", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("String" , ПараметрыТеста);
-
- Telegram_СоздатьТемуФорума(ПараметрыТеста);
- Telegram_ИзменитьТемуФорума(ПараметрыТеста);
- Telegram_ЗакрытьТемуФорума(ПараметрыТеста);
- Telegram_ОткрытьТемуФорума(ПараметрыТеста);
- Telegram_ОчиститьСписокЗакрепленныхСообщенийТемы(ПараметрыТеста);
- Telegram_УдалитьТемуФорума(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Телеграм_СкрытьПоказатьГлавнуюТему() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ForumID", ПараметрыТеста);
-
- Telegram_СкрытьГлавнуюТемуФорума(ПараметрыТеста);
- Telegram_ПоказатьГлавнуюТемуФорума(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Телеграм_ИзменитьИмяГлавнойТемы() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ForumID", ПараметрыТеста);
-
- Telegram_ИзменитьИмяГлавнойТемыФорума(ПараметрыТеста);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область VK
-
-Процедура ВК_СоздатьСсылкуТокена() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("VK_AppID", ПараметрыТеста);
-
- VK_СоздатьСсылкуПолученияТокена(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура ВК_СоздатьУдалитьПост() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture2", ПараметрыТеста);
-
- VK_СоздатьПост(ПараметрыТеста);
- VK_УдалитьПост(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура ВК_СоздатьСоставнойПост() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Video" , ПараметрыТеста);
-
- VK_СоздатьСоставнойПост(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура ВК_СоздатьОпрос() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture", ПараметрыТеста);
-
- VK_СоздатьОпрос(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура ВК_СохранитьУдалитьКартинку() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture", ПараметрыТеста);
-
- VK_СоздатьАльбом(ПараметрыТеста);
- VK_СохранитьКартинкуВАльбом(ПараметрыТеста);
- VK_УдалитьКартинку(ПараметрыТеста);
- VK_УдалитьАльбом(ПараметрыТеста);
- VK_ЗагрузитьФотоНаСервер(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура ВК_СоздатьИсторию() Экспорт
-
- ПараметрыТеста = Новый Соответствие;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture", ПараметрыТеста);
-
- VK_СоздатьИсторию(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура ВК_МетодыОбсуждений() Экспорт
-
- ПараметрыТеста = Новый Структура;
- Параметры = ПолучитьПараметрыВК();
-
- VK_СоздатьОбсуждение(ПараметрыТеста);
- VK_ЗакрытьОбсуждение(ПараметрыТеста);
- VK_ОткрытьОбсуждение(ПараметрыТеста);
- VK_НаписатьВОбсуждение(ПараметрыТеста);
-
- OPI_VK.ЗакрытьОбсуждение(ПараметрыТеста["VK_ConvID"], Истина, Параметры);
-
- OPI_Инструменты.Пауза(5);
-
-КонецПроцедуры
-
-Процедура ВК_ЛайкРепостКоммент() Экспорт
-
- ПараметрыТеста = Новый Структура;
- Параметры = ПолучитьПараметрыВК();
- Текст = "Пост из автотеста";
-
- Результат = OPI_VK.СоздатьПост(Текст, Новый Массив, , , Параметры);
- ИДПоста = Результат["response"]["post_id"];
-
- OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("VK_PostID", ИДПоста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("VK_PostID", ПараметрыТеста);
-
- VK_ПоставитьЛайк(ПараметрыТеста);
- VK_СделатьРепост(ПараметрыТеста);
- VK_НаписатьКомментарий(ПараметрыТеста);
- VK_СократитьСсылку(ПараметрыТеста);
-
- OPI_VK.УдалитьПост(ИДПоста , Параметры);
- OPI_VK.УдалитьПост(ПараметрыТеста["Repost"], Параметры);
-
- OPI_Инструменты.Пауза(5);
-
-КонецПроцедуры
-
-Процедура ВК_ПолучитьСтатистику() Экспорт
-
- ПараметрыТеста = Новый Структура;
-
- VK_ПолучитьСтатистику(ПараметрыТеста);
-
- OPI_Инструменты.Пауза(5);
-
-КонецПроцедуры
-
-Процедура ВК_ПолучитьСтатистикуПостов() Экспорт
-
- ПараметрыТеста = Новый Структура;
-
- VK_ПолучитьСтатистикуПостов(ПараметрыТеста);
-
- OPI_Инструменты.Пауза(5);
-
-КонецПроцедуры
-
-Процедура ВК_СоздатьРекламнуюКампанию() Экспорт
-
- Параметры = ПолучитьПараметрыВК();
- Текст = "Пост из автотеста";
-
- Результат = OPI_VK.СоздатьПост(Текст, Новый Массив, , , Параметры);
- ИДПоста = Результат["response"]["post_id"];
-
- OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("VK_PostID", ИДПоста);
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("VK_AdsCabinetID", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("VK_PostID" , ПараметрыТеста);
-
- VK_СоздатьРекламнуюКампанию(ПараметрыТеста);
- VK_СоздатьРекламноеОбъявление(ПараметрыТеста);
- VK_ПриостановитьРекламноеОбъявление(ПараметрыТеста);
- VK_ПолучитьСписокРекламныхКатегорий(ПараметрыТеста);
-
- OPI_VK.УдалитьПост(ИДПоста, Параметры);
-
- OPI_Инструменты.Пауза(5);
-
-КонецПроцедуры
-
-Процедура ВК_ОтправитьСообщение() Экспорт
-
- ПараметрыТеста = Новый Структура;
-
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("VK_UserID" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("VK_CommunityToken", ПараметрыТеста);
-
- VK_СформироватьКлавиатуру(ПараметрыТеста);
- VK_НаписатьСообщение(ПараметрыТеста);
-
- OPI_Инструменты.Пауза(5);
-
-КонецПроцедуры
-
-Процедура ВК_ПолучитьКатегорииТоваров() Экспорт
-
- ПараметрыТеста = Новый Структура;
-
- VK_ПолучитьСписокКатегорийТоваров(ПараметрыТеста);
-
- OPI_Инструменты.Пауза(5);
-
-КонецПроцедуры
-
-Процедура ВК_СоздатьТоварПодборку() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture2", ПараметрыТеста);
-
- VK_СоздатьПодборкуТоваров(ПараметрыТеста);
- VK_ИзменитьПодборкуТоваров(ПараметрыТеста);
- VK_ПолучитьПодборкиПоИД(ПараметрыТеста);
- VK_ДобавитьТовар(ПараметрыТеста);
- VK_ИзменитьТовар(ПараметрыТеста);
- VK_ДобавитьТоварВПодборку(ПараметрыТеста);
- VK_УдалитьТоварИзПодборки(ПараметрыТеста);
- VK_УдалитьТовар(ПараметрыТеста);
- VK_УдалитьПодборку(ПараметрыТеста);
-
- OPI_Инструменты.Пауза(5);
-
-КонецПроцедуры
-
-Процедура ВК_СоздатьТоварСоСвойствами() Экспорт
-
- Параметры = ПолучитьПараметрыВК();
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture2", ПараметрыТеста);
-
- VK_ПолучитьОписаниеТовара(ПараметрыТеста);
- VK_СоздатьСвойствоТовара(ПараметрыТеста);
- VK_ИзменитьСвойствоТовара(ПараметрыТеста);
- VK_ДобавитьВариантСвойстваТовара(ПараметрыТеста);
- VK_ИзменитьВариантСвойстваТовара(ПараметрыТеста);
- VK_СоздатьТоварСоСвойством(ПараметрыТеста);
- VK_ПолучитьТоварыПоИД(ПараметрыТеста);
- VK_СгруппироватьТовары(ПараметрыТеста);
-
- OPI_VK.УдалитьТовар(ПараметрыТеста["VK_MarketItemID2"], Параметры);
- OPI_VK.УдалитьТовар(ПараметрыТеста["VK_MarketItemID3"], Параметры);
-
- VK_УдалитьВариантСвойстваТовара(ПараметрыТеста);
- VK_УдалитьСвойствоТовара(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура ВК_ПолучитьСписокТоваров() Экспорт
-
- ПараметрыТеста = Новый Структура;
-
- VK_ПолучитьСписокТоваров(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура ВК_ПолучитьСписокПодборок() Экспорт
-
- ПараметрыТеста = Новый Структура;
-
- VK_ПолучитьСписокПодборок(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура ВК_ПолучитьСписокСвойств() Экспорт
-
- ПараметрыТеста = Новый Структура;
-
- VK_ПолучитьСписокСвойств(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура ВК_ПолучитьСписокЗаказов() Экспорт
-
- ПараметрыТеста = Новый Структура;
-
- VK_ПолучитьСписокЗаказов(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура ВК_ЗагрузитьВидео() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Video", ПараметрыТеста);
-
- VK_ЗагрузитьВидеоНаСервер(ПараметрыТеста);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область YandexDisk
-
-Процедура ЯДиск_ПолучитьИнформациюОДиске() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("YandexDisk_Token", ПараметрыТеста);
-
- YandexDisk_ПолучитьИнформациюОДиске(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура ЯДиск_СоздатьПапку() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("YandexDisk_Token", ПараметрыТеста);
-
- YandexDisk_СоздатьПапку(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура ЯДиск_ЗагрузитьПоАдресуПолучитьОбъект() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("YandexDisk_Token", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
-
- YandexDisk_ЗагрузитьФайлПоURL(ПараметрыТеста);
- YandexDisk_ПолучитьОбъект(ПараметрыТеста);
- YandexDisk_УдалитьОбъект(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура ЯДиск_ЗагрузитьУдалитьФайл() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("YandexDisk_Token", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
-
- YandexDisk_ЗагрузитьФайл(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура ЯДиск_СоздатьКопиюОбъекта() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("YandexDisk_Token", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
-
- Токен = ПараметрыТеста["YandexDisk_Token"];
- URL = ПараметрыТеста["Picture"];
-
- ПутьОригинала = "/" + Строка(Новый УникальныйИдентификатор) + ".png";
-
- OPI_YandexDisk.ЗагрузитьФайлПоURL(Токен, ПутьОригинала, URL);
- OPI_Инструменты.Пауза(35);
-
- OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("YandexDisk_OriginalFilePath", ПутьОригинала);
- ПараметрыТеста.Вставить("YandexDisk_OriginalFilePath", ПутьОригинала);
-
- YandexDisk_СоздатьКопиюОбъекта(ПараметрыТеста);
-
- ПутьКопии = ПараметрыТеста["YandexDisk_CopyFilePath"];
-
- OPI_YandexDisk.УдалитьОбъект(Токен, ПутьОригинала, Ложь);
- OPI_YandexDisk.УдалитьОбъект(Токен, ПутьКопии , Ложь);
-
- OPI_Инструменты.Пауза(5);
-
-КонецПроцедуры
-
-Процедура ЯДиск_ПолучитьСсылкуНаСкачивание() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("YandexDisk_Token", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
-
- Токен = ПараметрыТеста["YandexDisk_Token"];
- URL = ПараметрыТеста["Picture"];
-
- Путь = "/" + Строка(Новый УникальныйИдентификатор) + ".png";
-
- OPI_YandexDisk.ЗагрузитьФайлПоURL(Токен, Путь, URL);
- OPI_Инструменты.Пауза(35);
-
- OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("YandexDisk_PathForLink", Путь);
- ПараметрыТеста.Вставить("YandexDisk_PathForLink", Путь);
-
- YandexDisk_ПолучитьСсылкуДляСкачивания(ПараметрыТеста);
- YandexDisk_СкачатьФайл(ПараметрыТеста);
-
- OPI_YandexDisk.УдалитьОбъект(Токен, Путь, Ложь);
-
-КонецПроцедуры
-
-Процедура ЯДиск_ПолучитьСписокФайлов() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("YandexDisk_Token", ПараметрыТеста);
-
- YandexDisk_ПолучитьСписокФайлов(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура ЯДиск_ПереместитьОбъект() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("YandexDisk_Token", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
-
- Токен = ПараметрыТеста["YandexDisk_Token"];
- URL = ПараметрыТеста["Picture"];
-
- ПутьОригинала = "/" + Строка(Новый УникальныйИдентификатор) + ".png";
-
- OPI_YandexDisk.ЗагрузитьФайлПоURL(Токен, ПутьОригинала, URL);
- OPI_Инструменты.Пауза(35);
-
- OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("YandexDisk_OriginalFilePath", ПутьОригинала);
- ПараметрыТеста.Вставить("YandexDisk_OriginalFilePath", ПутьОригинала);
-
- YandexDisk_ПереместитьОбъект(ПараметрыТеста);
-
- ПутьНового = ПараметрыТеста["YandexDisk_NewFilePath"];
-
- OPI_YandexDisk.УдалитьОбъект(Токен, ПутьОригинала, Ложь);
- OPI_YandexDisk.УдалитьОбъект(Токен, ПутьНового , Ложь);
-
- OPI_Инструменты.Пауза(5);
-
-КонецПроцедуры
-
-Процедура ЯДиск_ДействияПубличныхОбъектов() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("YandexDisk_Token", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
-
- Токен = ПараметрыТеста["YandexDisk_Token"];
- URL = ПараметрыТеста["Picture"];
-
- ПутьОригинала = "/" + Строка(Новый УникальныйИдентификатор) + ".png";
-
- OPI_YandexDisk.ЗагрузитьФайлПоURL(Токен, ПутьОригинала, URL);
- OPI_Инструменты.Пауза(35);
-
- OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("YandexDisk_OriginalFilePath", ПутьОригинала);
- ПараметрыТеста.Вставить("YandexDisk_OriginalFilePath", ПутьОригинала);
-
- YandexDisk_ОпубликоватьОбъект(ПараметрыТеста);
- YandexDisk_ПолучитьСсылкуСкачиванияПубличногоОбъекта(ПараметрыТеста);
- YandexDisk_ПолучитьПубличныйОбъект(ПараметрыТеста);
- YandexDisk_СохранитьПубличныйОбъектНаДиск(ПараметрыТеста);
- YandexDisk_ОтменитьПубликациюОбъекта(ПараметрыТеста);
-
- OPI_YandexDisk.УдалитьОбъект(Токен, ПутьОригинала, Ложь);
-
- OPI_Инструменты.Пауза(5);
-
-КонецПроцедуры
-
-Процедура ЯДиск_ПолучитьСписокОпубликованных() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("YandexDisk_Token", ПараметрыТеста);
-
- YandexDisk_ПолучитьСписокОпубликованныхОбъектов(ПараметрыТеста);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область Viber
-
-Процедура Вайбер_ПолучениеИнформации() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Viber_ChannelToken" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Viber_ChannelAdminID", ПараметрыТеста);
-
- Возврат;
-
- //@skip-check unreachable-statements
- // BSLLS:UnreachableCode-off
-
- Viber_ПолучитьИнформациюОКанале(ПараметрыТеста);
- Viber_ПолучитьДанныеПользователя(ПараметрыТеста);
- Viber_ПолучитьОнлайнПользователей(ПараметрыТеста);
- Viber_УстановитьWebhook(ПараметрыТеста);
-
- // BSLLS:UnreachableCode-on
-
-КонецПроцедуры
-
-Процедура Вайбер_ОтправкаСообщений() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Viber_ChannelToken" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Viber_ChannelAdminID", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Viber_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Viber_UserID" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Document" , ПараметрыТеста);
-
- Viber_СформироватьКлавиатуруИзМассиваКнопок(ПараметрыТеста);
-
- Возврат;
-
- //@skip-check unreachable-statement
- // BSLLS:UnreachableCode-off
-
- Viber_ОтправитьТекстовоеСообщение(ПараметрыТеста);
- Viber_ОтправитьКартинку(ПараметрыТеста);
- Viber_ОтправитьФайл(ПараметрыТеста);
- Viber_ОтправитьКонтакт(ПараметрыТеста);
- Viber_ОтправитьЛокацию(ПараметрыТеста);
- Viber_ОтправитьСсылку(ПараметрыТеста);
-
- // BSLLS:UnreachableCode-on
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область GoogleWorkspace
-
-Процедура ГВ_Авторизация() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_ClientID" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_ClientSecret", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_Code" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_Refresh" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_ServiceData" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Access_Token" , ПараметрыТеста);
-
- GoogleWorkspace_СформироватьСсылкуПолученияКода(ПараметрыТеста);
- GoogleWorkspace_ПолучитьТокенПоКоду(ПараметрыТеста);
- GoogleWorkspace_ОбновитьТокен(ПараметрыТеста);
- GoogleWorkspace_ПолучитьТокенServiceАккаунта(ПараметрыТеста);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область GoogleCalendar
-
-Процедура ГК_ПолучитьСписокКалендарей() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_Token", ПараметрыТеста);
-
- GoogleCalendar_ПолучитьСписокКалендарей(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура ГК_СоздатьУдалитьКалендарь() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_Token", ПараметрыТеста);
-
- GoogleCalendar_СоздатьКалендарь(ПараметрыТеста);
- GoogleCalendar_ИзменитьМетаданныеКалендаря(ПараметрыТеста);
- GoogleCalendar_ПолучитьМетаданныеКалендаря(ПараметрыТеста);
- GoogleCalendar_ДобавитьКалендарьВСписок(ПараметрыТеста);
- GoogleCalendar_ИзменитьКалендарьСписка(ПараметрыТеста);
- GoogleCalendar_ПолучитьКалендарьСписка(ПараметрыТеста);
- GoogleCalendar_ОчиститьОсновнойКалендарь(ПараметрыТеста);
- GoogleCalendar_УдалитьКалендарьИзСписка(ПараметрыТеста);
- GoogleCalendar_УдалитьКалендарь(ПараметрыТеста);
-
- OPI_Инструменты.Пауза(5);
-
-КонецПроцедуры
-
-Процедура ГК_СоздатьУдалитьСобытие() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_NewCalendarID", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_CalendarID" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture2" , ПараметрыТеста);
-
- GoogleCalendar_СоздатьКалендарь(ПараметрыТеста);
- GoogleCalendar_СоздатьСобытие(ПараметрыТеста);
- GoogleCalendar_ИзменитьСобытие(ПараметрыТеста);
- GoogleCalendar_ПолучитьСобытие(ПараметрыТеста);
- GoogleCalendar_ПереместитьСобытие(ПараметрыТеста);
- GoogleCalendar_ПолучитьСписокСобытий(ПараметрыТеста);
- GoogleCalendar_ПолучитьОписаниеСобытия(ПараметрыТеста);
- GoogleCalendar_УдалитьСобытие(ПараметрыТеста);
- GoogleCalendar_УдалитьКалендарь(ПараметрыТеста);
-
- OPI_Инструменты.Пауза(5);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область GoogleDrive
-
-Процедура ГД_ПолучитьСписокКаталогов() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_Token", ПараметрыТеста);
-
- GoogleDrive_ПолучитьСписокКаталогов(ПараметрыТеста);
- GoogleDrive_ПолучитьИнформациюОбОбъекте(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура ГД_ЗагрузитьУдалитьФайл() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_Token", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GD_Catalog" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture2" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Big" , ПараметрыТеста);
-
- ПараметрыТеста.Вставить("МассивУдаляемых", Новый Массив);
-
- GoogleDrive_ЗагрузитьФайл(ПараметрыТеста);
- GoogleDrive_СкопироватьОбъект(ПараметрыТеста);
- GoogleDrive_СкачатьФайл(ПараметрыТеста);
- GoogleDrive_ОбновитьФайл(ПараметрыТеста);
- GoogleDrive_ПолучитьСписокФайлов(ПараметрыТеста);
- GoogleDrive_УдалитьОбъект(ПараметрыТеста);
- GoogleDrive_ПолучитьОписаниеФайла(ПараметрыТеста);
-
- OPI_Инструменты.Пауза(5);
-
-КонецПроцедуры
-
-Процедура ГД_СоздатьУдалитьКомментарий() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_Token", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GD_Catalog" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
-
- ПараметрыТеста.Вставить("МассивУдаляемых", Новый Массив);
-
- GoogleDrive_ЗагрузитьФайл(ПараметрыТеста);
-
- GoogleDrive_СоздатьКомментарий(ПараметрыТеста);
- GoogleDrive_ПолучитьКомментарий(ПараметрыТеста);
- GoogleDrive_ПолучитьСписокКомментариев(ПараметрыТеста);
- GoogleDrive_УдалитьКомментарий(ПараметрыТеста);
-
- GoogleDrive_УдалитьОбъект(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура ГД_СоздатьКаталог() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_Token", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GD_Catalog" , ПараметрыТеста);
-
- GoogleDrive_СоздатьПапку(ПараметрыТеста);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область GoogleSheets
-
-Процедура ГТ_СоздатьТаблицу() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_Token", ПараметрыТеста);
-
- GoogleSheets_СоздатьКнигу(ПараметрыТеста);
- GoogleSheets_ПолучитьКнигу(ПараметрыТеста);
- GoogleSheets_КопироватьЛист(ПараметрыТеста);
- GoogleSheets_ДобавитьЛист(ПараметрыТеста);
- GoogleSheets_УдалитьЛист(ПараметрыТеста);
- GoogleSheets_ИзменитьНаименованиеКниги(ПараметрыТеста);
- GoogleSheets_ПолучитьТаблицу(ПараметрыТеста);
-
- OPI_GoogleDrive.УдалитьОбъект(ПараметрыТеста["Google_Token"], ПараметрыТеста["GS_Spreadsheet"]);
- OPI_GoogleDrive.УдалитьОбъект(ПараметрыТеста["Google_Token"], ПараметрыТеста["GS_Spreadsheet2"]);
-
-КонецПроцедуры
-
-Процедура ГТ_ЗаполнитьОчиститьЯчейки() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_Token", ПараметрыТеста);
-
- GoogleSheets_СоздатьКнигу(ПараметрыТеста);
- GoogleSheets_УстановитьЗначенияЯчеек(ПараметрыТеста);
- GoogleSheets_ПолучитьЗначенияЯчеек(ПараметрыТеста);
- GoogleSheets_ОчиститьЯчейки(ПараметрыТеста);
-
- OPI_GoogleDrive.УдалитьОбъект(ПараметрыТеста["Google_Token"], ПараметрыТеста["GS_Spreadsheet"]);
- OPI_GoogleDrive.УдалитьОбъект(ПараметрыТеста["Google_Token"], ПараметрыТеста["GS_Spreadsheet2"]);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область Twitter
-
-Процедура Твиттер_ДанныеАккаунта() Экспорт
-
- ПараметрыТеста = Новый Структура;
-
- Twitter_ПолучитьТокен(ПараметрыТеста);
- Twitter_ПолучитьСсылкуАвторизации(ПараметрыТеста);
- Twitter_ОбновитьТокен(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Твиттер_Твиты() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture2", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GIF" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Video" , ПараметрыТеста);
-
- Twitter_СоздатьТекстовыйТвит(ПараметрыТеста);
- Twitter_ЗагрузитьМассивВложений(ПараметрыТеста);
- Twitter_СоздатьТвитВидео(ПараметрыТеста);
- Twitter_СоздатьТвитКартинки(ПараметрыТеста);
- Twitter_СоздатьТвитГифки(ПараметрыТеста);
- Twitter_СоздатьТвитОпрос(ПараметрыТеста);
- Twitter_СоздатьПроизвольныйТвит(ПараметрыТеста);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область Notion
-
-Процедура НоушнАпи_СоздатьСтраницу() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Notion_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Notion_Parent", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture2" , ПараметрыТеста);
-
- Notion_СоздатьСтраницу(ПараметрыТеста);
- Notion_ПолучитьСтраницу(ПараметрыТеста);
- Notion_ИзменитьСвойстваСтраницы(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура НоушнАпи_СоздатьИзменитьБазу() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Notion_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Notion_Parent", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
-
- Notion_СоздатьБазуДанных(ПараметрыТеста);
- Notion_ИзменитьСвойстваБазы(ПараметрыТеста);
- Notion_ПолучитьБазуДанных(ПараметрыТеста);
- Notion_СоздатьСтраницуВБазу(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура НоушнАпи_СоздатьУдалитьБлок() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Notion_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Notion_Parent", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Notion_Block" , ПараметрыТеста);
-
- Notion_ВернутьБлок(ПараметрыТеста);
- Notion_СоздатьБлок(ПараметрыТеста);
- Notion_ВернутьДочерниеБлоки(ПараметрыТеста);
- Notion_УдалитьБлок(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура НоушнАпи_ПолучитьПользователей() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Notion_Token", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Notion_User" , ПараметрыТеста);
-
- Notion_СписокПользователей(ПараметрыТеста);
- Notion_ПолучитьДанныеПользователя(ПараметрыТеста);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область Slack
-
-Процедура Слак_ПолучитьИнформацию() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Slack_Token", ПараметрыТеста);
-
- Slack_ПолучитьИнформациюОБоте(ПараметрыТеста);
- Slack_ПолучитьСписокПользователей(ПараметрыТеста);
- Slack_ПолучитьСписокРабочихОбластей(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Слак_ОтправитьУдалитьСообщение() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Slack_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Slack_Channel", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Slack_User" , ПараметрыТеста);
-
- Slack_ОтправитьСообщение(ПараметрыТеста);
- Slack_ИзменитьСообщение(ПараметрыТеста);
- Slack_ПолучитьСписокОтветовНаСообщение(ПараметрыТеста);
- Slack_ПолучитьСсылкуНаСообщение(ПараметрыТеста);
- Slack_УдалитьСообщение(ПараметрыТеста);
- Slack_ОтправитьЭфемерноеСообщение(ПараметрыТеста);
- Slack_ПолучитьСписокОтложенныхСообщений(ПараметрыТеста);
- Slack_СформироватьБлокКартинку(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Слак_СоздатьАрхивироватьКанал() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Slack_Token", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Slack_User" , ПараметрыТеста);
-
- Slack_СоздатьКанал(ПараметрыТеста);
- Slack_УстановитьТемуКанала(ПараметрыТеста);
- Slack_УстановитьЦельКанала(ПараметрыТеста);
- Slack_ПолучитьКанал(ПараметрыТеста);
- Slack_ПригласитьПользователейВКанал(ПараметрыТеста);
- Slack_ВыгнатьПользователяИзКанала(ПараметрыТеста);
- Slack_ПолучитьИсториюКанала(ПараметрыТеста);
- Slack_ПолучитьСписокПользователейКанала(ПараметрыТеста);
- Slack_ПокинутьКанал(ПараметрыТеста);
- Slack_ВступитьВКанал(ПараметрыТеста);
- Slack_ПереименоватьКанал(ПараметрыТеста);
- Slack_АрхивироватьКанал(ПараметрыТеста);
- Slack_ПолучитьСписокКаналов(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Слак_ОткрытьЗакрытьДиалог() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Slack_Token", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Slack_User" , ПараметрыТеста);
-
- Slack_ОткрытьДиалог(ПараметрыТеста);
- Slack_ЗакрытьДиалог(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Слак_ЗагрузитьУдалитьФайл() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Slack_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Slack_Channel", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Document" , ПараметрыТеста);
-
- Slack_ПолучитьСписокФайлов(ПараметрыТеста);
- Slack_ЗагрузитьФайл(ПараметрыТеста);
- Slack_СделатьФайлПубличным(ПараметрыТеста);
- Slack_СделатьФайлПриватным(ПараметрыТеста);
- Slack_ПолучитьДанныеФайла(ПараметрыТеста);
- Slack_УдалитьФайл(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Слак_ЗагрузитьУдалитьВФ() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Slack_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Slack_Channel", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Document" , ПараметрыТеста);
-
- Slack_ПолучитьСписокВнешнихФайлов(ПараметрыТеста);
- Slack_ДобавитьВнешнийФайл(ПараметрыТеста);
- Slack_ПолучитьВнешнийФайл(ПараметрыТеста);
- Slack_ОтправитьВнешнийФайл(ПараметрыТеста);
- Slack_УдалитьВнешнийФайл(ПараметрыТеста);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область Airtable
-
-Процедура АТ_СоздатьБазу() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Airtable_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Airtable_Workspace", ПараметрыТеста);
-
- Airtable_СоздатьБазу(ПараметрыТеста);
- Airtable_ПолучитьТаблицыБазы(ПараметрыТеста);
- Airtable_ПолучитьСписокБаз(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура АТ_СоздатьТаблицу() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Airtable_Token", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Airtable_Base" , ПараметрыТеста);
-
- Airtable_ПолучитьПолеНомера(ПараметрыТеста);
- Airtable_ПолучитьПолеСтроковое(ПараметрыТеста);
- Airtable_ПолучитьПолеВложения(ПараметрыТеста);
- Airtable_ПолучитьПолеФлажка(ПараметрыТеста);
- Airtable_ПолучитьПолеДаты(ПараметрыТеста);
- Airtable_ПолучитьПолеТелефона(ПараметрыТеста);
- Airtable_ПолучитьПолеПочты(ПараметрыТеста);
- Airtable_ПолучитьПолеСсылки(ПараметрыТеста);
- Airtable_СоздатьТаблицу(ПараметрыТеста);
- Airtable_ИзменитьТаблицу(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура АТ_СоздатьПоле() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Airtable_Token", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Airtable_Base" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Airtable_Table", ПараметрыТеста);
-
- Airtable_СоздатьПоле(ПараметрыТеста);
- Airtable_ИзменитьПоле(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура АТ_СоздатьУдалитьЗаписи() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Airtable_Token", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Airtable_Base" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Airtable_Table", ПараметрыТеста);
-
- Airtable_СоздатьЗаписи(ПараметрыТеста);
- Airtable_ПолучитьЗапись(ПараметрыТеста);
- Airtable_СоздатьКомментарий(ПараметрыТеста);
- Airtable_ИзменитьКомментарий(ПараметрыТеста);
- Airtable_ПолучитьКомментарии(ПараметрыТеста);
- Airtable_УдалитьКомментарий(ПараметрыТеста);
- Airtable_ПолучитьСписокЗаписей(ПараметрыТеста);
- Airtable_УдалитьЗаписи(ПараметрыТеста);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область Dropbox
-
-Процедура ДропБокс_ПолучитьОбновитьТокен() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Dropbox_Appkey" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Dropbox_Appsecret", ПараметрыТеста);
-
- Dropbox_ПолучитьСсылкуАвторизации(ПараметрыТеста);
-
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Dropbox_Code", ПараметрыТеста);
-
- Dropbox_ПолучитьТокен(ПараметрыТеста);
-
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Dropbox_Refresh", ПараметрыТеста);
-
- Dropbox_ОбновитьТокен(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура ДропБокс_ЗагрузитьФайл() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Dropbox_Token", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Big" , ПараметрыТеста);
-
- Dropbox_ЗагрузитьФайл(ПараметрыТеста);
- Dropbox_ПолучитьИнформациюОбОбъекте(ПараметрыТеста);
- Dropbox_ПолучитьСписокВерсийОбъекта(ПараметрыТеста);
- Dropbox_ВосстановитьОбъектКВерсии(ПараметрыТеста);
- Dropbox_ПолучитьПревью(ПараметрыТеста);
- Dropbox_СкачатьФайл(ПараметрыТеста);
- Dropbox_ПереместитьОбъект(ПараметрыТеста);
- Dropbox_КопироватьОбъект(ПараметрыТеста);
- Dropbox_УдалитьОбъект(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура ДропБокс_СоздатьКаталог() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Dropbox_Token", ПараметрыТеста);
-
- Dropbox_СоздатьПапку(ПараметрыТеста);
- Dropbox_СкачатьПапку(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура ДропБокс_ПолучитьСписокФайловПапки() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Dropbox_Token", ПараметрыТеста);
-
- Dropbox_ПолучитьСписокФайловПапки(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура ДропБокс_ЗагрузитьФайлПоURL() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Dropbox_Token", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Document" , ПараметрыТеста);
-
- Dropbox_ЗагрузитьФайлПоURL(ПараметрыТеста);
- Dropbox_ПолучитьСтатусЗагрузкиПоURL(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура ДропБокс_СоздатьУдалитьТег() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Dropbox_Token", ПараметрыТеста);
-
- Dropbox_ДобавитьТег(ПараметрыТеста);
- Dropbox_ПолучитьСписокТегов(ПараметрыТеста);
- Dropbox_УдалитьТег(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура ДропБокс_ПолучитьАккаунт() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Dropbox_Token", ПараметрыТеста);
-
- Dropbox_ПолучитьИнформациюОбАккаунте(ПараметрыТеста);
- Dropbox_ПолучитьДанныеИспользованияПространства(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура ДропБокс_РаботаСДоступами() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Dropbox_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Dropbox_OtherUser", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Dropbox_FileID" , ПараметрыТеста);
-
- Dropbox_ДобавитьПользователейКФайлу(ПараметрыТеста);
- Dropbox_ОпубликоватьПапку(ПараметрыТеста);
- Dropbox_ДобавитьПользователейКПапке(ПараметрыТеста);
- Dropbox_ОтменитьПубликациюПапки(ПараметрыТеста);
- Dropbox_ПолучитьСтатусАсинхронногоИзменения(ПараметрыТеста);
- Dropbox_ОтменитьПубликациюФайла(ПараметрыТеста);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область Bitrix24
-
-Процедура Б24_РаботаСТокеном() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_Domain" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_ClientID" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_ClientSecret", ПараметрыТеста);
-
- Bitrix24_ПолучитьСсылкуАвторизацииПриложения(ПараметрыТеста);
-
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_Code", ПараметрыТеста);
-
- Bitrix24_ПолучитьТокен(ПараметрыТеста);
-
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_Refresh", ПараметрыТеста);
-
- Bitrix24_ОбновитьТокен(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Б24_СерверноеВремя() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_URL" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_Domain", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_Token" , ПараметрыТеста);
-
- Bitrix24_СерверноеВремя(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Б24_РаботаСНовостями() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_URL" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_Domain", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture2" , ПараметрыТеста);
-
- Bitrix24_СоздатьНовость(ПараметрыТеста);
- Bitrix24_ИзменитьНовость(ПараметрыТеста);
- Bitrix24_ПолучитьСписокПросмотревшихВажное(ПараметрыТеста);
- Bitrix24_ПолучитьНовости(ПараметрыТеста);
- Bitrix24_ДобавитьКомментарийНовости(ПараметрыТеста);
- Bitrix24_ДобавитьПолучателейКНовости(ПараметрыТеста);
- Bitrix24_УдалитьНовость(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Б24_РаботаСЗадачами() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_URL" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_Domain", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_UserID", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
-
- Bitrix24_ПолучитьСтруктуруЗадачи(ПараметрыТеста);
- Bitrix24_СоздатьЗадачу(ПараметрыТеста);
- Bitrix24_СоздатьЗависимостьЗадач(ПараметрыТеста);
- Bitrix24_УдалитьЗависимостьЗадач(ПараметрыТеста);
- Bitrix24_ИзменитьЗадачу(ПараметрыТеста);
- Bitrix24_ПолучитьЗадачу(ПараметрыТеста);
- Bitrix24_ОтключитьЗвукЗадачи(ПараметрыТеста);
- Bitrix24_ВключитьЗвукЗадачи(ПараметрыТеста);
- Bitrix24_ДобавитьЗадачуВИзбранное(ПараметрыТеста);
- Bitrix24_УбратьЗадачуИзИзбранного(ПараметрыТеста);
- Bitrix24_ДелегироватьЗадачу(ПараметрыТеста);
- Bitrix24_ОтложитьЗадачу(ПараметрыТеста);
- Bitrix24_ЗавершитьЗадачу(ПараметрыТеста);
- Bitrix24_ОтклонитьЗадачу(ПараметрыТеста);
- Bitrix24_ПринятьЗадачу(ПараметрыТеста);
- Bitrix24_ВозобновитьЗадачу(ПараметрыТеста);
- Bitrix24_НачатьВыполнениеЗадачи(ПараметрыТеста);
- Bitrix24_НачатьНаблюдатьЗаЗадачей(ПараметрыТеста);
- Bitrix24_ПрекратитьНаблюдатьЗаЗадачей(ПараметрыТеста);
- Bitrix24_ПриостановитьЗадачу(ПараметрыТеста);
- Bitrix24_ПолучитьИсториюЗадачи(ПараметрыТеста);
- Bitrix24_ПолучитьСписокЗадач(ПараметрыТеста);
- Bitrix24_ПроверитьДоступКЗадаче(ПараметрыТеста);
- Bitrix24_ДобавитьЭлементЧеклистаЗадачи(ПараметрыТеста);
- Bitrix24_ИзменитьЭлементЧеклистаЗадачи(ПараметрыТеста);
- Bitrix24_ПолучитьЧеклистЗадачи(ПараметрыТеста);
- Bitrix24_ПолучитьЭлементЧеклистаЗадачи(ПараметрыТеста);
- Bitrix24_ВыполнитьЭлементЧеклистаЗадачи(ПараметрыТеста);
- Bitrix24_ВозобновитьЭлементЧеклистаЗадачи(ПараметрыТеста);
- Bitrix24_УдалитьЭлементЧеклистаЗадачи(ПараметрыТеста);
- Bitrix24_ПолучитьПланЗадачНаДень(ПараметрыТеста);
- Bitrix24_ПолучитьСтруктуруФильтраЗадач(ПараметрыТеста);
-
- Наименование = "Картинка задачи.jpg";
- Картинка = ПараметрыТеста["Picture"];
- IDПриемника = 3;
-
- URL = ПараметрыТеста["Bitrix24_URL"];
-
- Результат = OPI_Bitrix24.ЗагрузитьФайлВХранилище(URL, Наименование, Картинка, IDПриемника);
- IDФайла = Результат["result"]["ID"];
-
- OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("Bitrix24_TaskFileID", IDФайла);
- ПараметрыТеста.Вставить("Bitrix24_TaskFileID", IDФайла);
-
- Bitrix24_ДобавитьФайлВЗадачу(ПараметрыТеста);
-
- OPI_Bitrix24.УдалитьФайл(URL, IDФайла);
-
- Bitrix24_УдалитьЗадачу(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Б24_РаботаСДиском() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_URL" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_Domain", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture2" , ПараметрыТеста);
-
- Bitrix24_ПолучитьСписокХранилищ(ПараметрыТеста);
- Bitrix24_ПолучитьХранилищеПриложения(ПараметрыТеста);
- Bitrix24_ПереименоватьХранилище(ПараметрыТеста);
- Bitrix24_ПолучитьХранилище(ПараметрыТеста);
- Bitrix24_ЗагрузитьФайлВХранилище(ПараметрыТеста);
- Bitrix24_ПолучитьСодержимоеХранилища(ПараметрыТеста);
- Bitrix24_ПолучитьИнформациюОФайле(ПараметрыТеста);
- Bitrix24_ПолучитьВнешнююСсылкуФайла(ПараметрыТеста);
- Bitrix24_ПереименоватьФайл(ПараметрыТеста);
- Bitrix24_ПоместитьФайлВКорзину(ПараметрыТеста);
- Bitrix24_ВосстановитьФайл(ПараметрыТеста);
- Bitrix24_СоздатьКаталогВХранилище(ПараметрыТеста);
- Bitrix24_ПереименоватьКаталог(ПараметрыТеста);
- Bitrix24_ПолучитьИнформациюОКаталоге(ПараметрыТеста);
- Bitrix24_ПолучитьВнешнююСсылкуКаталога(ПараметрыТеста);
- Bitrix24_СоздатьПодкаталог(ПараметрыТеста);
- Bitrix24_ПереместитьФайлВКаталог(ПараметрыТеста);
- Bitrix24_СкопироватьКаталог(ПараметрыТеста);
- Bitrix24_ЗагрузитьФайлВКаталог(ПараметрыТеста);
- Bitrix24_СкопироватьФайл(ПараметрыТеста);
- Bitrix24_УдалитьФайл(ПараметрыТеста);
- Bitrix24_ПолучитьСтруктуруФильтраКаталога(ПараметрыТеста);
- Bitrix24_ПолучитьДочерниеЭлементыКаталога(ПараметрыТеста);
- Bitrix24_ПереместитьКаталог(ПараметрыТеста);
- Bitrix24_ПоместитьКаталогВКорзину(ПараметрыТеста);
- Bitrix24_ВосстановитьКаталог(ПараметрыТеста);
- Bitrix24_УдалитьКаталог(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Б24_РаботаСКомментариями() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_URL" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_Domain", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_Token" , ПараметрыТеста);
-
- ТекущаяДата = OPI_Инструменты.ПолучитьТекущуюДату();
- Час = 3600;
- Сутки = 24;
- Исполнитель = 1;
-
- СтруктураЗадачи = Новый Структура;
- СтруктураЗадачи.Вставить("TITLE" , "Новая задача");
- СтруктураЗадачи.Вставить("DESCRIPTION" , "Новое описание задачи");
- СтруктураЗадачи.Вставить("PRIORITY" , "2");
- СтруктураЗадачи.Вставить("DEADLINE" , ТекущаяДата + Час * Сутки);
- СтруктураЗадачи.Вставить("RESPONSIBLE_ID", Исполнитель);
-
- URL = ПараметрыТеста["Bitrix24_URL"];
-
- Результат = OPI_Bitrix24.СоздатьЗадачу(URL, СтруктураЗадачи);
- IDЗадачи = Результат["result"]["task"]["id"];
-
- OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("Bitrix24_CommentsTaskID", IDЗадачи);
- ПараметрыТеста.Вставить("Bitrix24_CommentsTaskID", IDЗадачи);
-
- Bitrix24_ДобавитьКомментарийЗадачи(ПараметрыТеста);
- Bitrix24_ИзменитьКомментарийЗадачи(ПараметрыТеста);
- Bitrix24_СоздатьРезультатИзКомментария(ПараметрыТеста);
- Bitrix24_ПолучитьСписокРезультатов(ПараметрыТеста);
- Bitrix24_УдалитьРезультатИзКомментария(ПараметрыТеста);
- Bitrix24_ПолучитьСписокКомментариевЗадачи(ПараметрыТеста);
- Bitrix24_ПолучитьКомменатрийЗадачи(ПараметрыТеста);
- Bitrix24_УдалитьКомментарийЗадачи(ПараметрыТеста);
- Bitrix24_ПолучитьСтруктуруКомментария(ПараметрыТеста);
-
- OPI_Bitrix24.УдалитьЗадачу(URL, IDЗадачи);
-
-КонецПроцедуры
-
-Процедура Б24_УчетРабочегоВремени() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_URL" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_Domain", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_Token" , ПараметрыТеста);
-
- ТекущаяДата = OPI_Инструменты.ПолучитьТекущуюДату();
- Час = 3600;
- Сутки = 24;
- Исполнитель = 1;
-
- СтруктураЗадачи = Новый Структура;
- СтруктураЗадачи.Вставить("TITLE" , "Новая задача");
- СтруктураЗадачи.Вставить("DESCRIPTION" , "Новое описание задачи");
- СтруктураЗадачи.Вставить("PRIORITY" , "2");
- СтруктураЗадачи.Вставить("DEADLINE" , ТекущаяДата + Час * Сутки);
- СтруктураЗадачи.Вставить("RESPONSIBLE_ID", Исполнитель);
-
- URL = ПараметрыТеста["Bitrix24_URL"];
-
- Результат = OPI_Bitrix24.СоздатьЗадачу(URL, СтруктураЗадачи);
- IDЗадачи = Результат["result"]["task"]["id"];
-
- OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("Bitrix24_ElapsedTaskID", IDЗадачи);
- ПараметрыТеста.Вставить("Bitrix24_ElapsedTaskID", IDЗадачи);
-
- Bitrix24_ДобавитьТрудозатратыЗадачи(ПараметрыТеста);
- Bitrix24_ПолучитьТрудозатратыЗадачи(ПараметрыТеста);
- Bitrix24_ПолучитьСписокТрудозатратЗадачи(ПараметрыТеста);
- Bitrix24_ИзменитьТрудозатратыЗадачи(ПараметрыТеста);
- Bitrix24_УдалитьТрудозатратыЗадачи(ПараметрыТеста);
- Bitrix24_НачатьУчетВремени(ПараметрыТеста);
- Bitrix24_ПриостановитьУчетВремени(ПараметрыТеста);
- Bitrix24_ПолучитьСтатусУчетаВремени(ПараметрыТеста);
- Bitrix24_ЗавершитьУчетВремени(ПараметрыТеста);
- Bitrix24_ПолучитьНастройкиУчетаВремени(ПараметрыТеста);
-
- OPI_Bitrix24.УдалитьЗадачу(URL, IDЗадачи);
-
-КонецПроцедуры
-
-Процедура Б24_Канбан() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_URL" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_Domain", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_Token" , ПараметрыТеста);
-
- ТекущаяДата = OPI_Инструменты.ПолучитьТекущуюДату();
- Час = 3600;
- Сутки = 24;
- Исполнитель = 1;
-
- СтруктураЗадачи = Новый Структура;
- СтруктураЗадачи.Вставить("TITLE" , "Новая задача");
- СтруктураЗадачи.Вставить("DESCRIPTION" , "Новое описание задачи");
- СтруктураЗадачи.Вставить("PRIORITY" , "2");
- СтруктураЗадачи.Вставить("DEADLINE" , ТекущаяДата + Час * Сутки);
- СтруктураЗадачи.Вставить("RESPONSIBLE_ID", Исполнитель);
-
- URL = ПараметрыТеста["Bitrix24_URL"];
-
- Результат = OPI_Bitrix24.СоздатьЗадачу(URL, СтруктураЗадачи);
- IDЗадачи = Результат["result"]["task"]["id"];
-
- OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("Bitrix24_KanbanTaskID", IDЗадачи);
- ПараметрыТеста.Вставить("Bitrix24_KanbanTaskID", IDЗадачи);
-
- Bitrix24_ДобавитьСтадиюКанбана(ПараметрыТеста);
- Bitrix24_ПолучитьСтадииКанбана(ПараметрыТеста);
- Bitrix24_ПеренестиЗадачуВСтадиюКанбана(ПараметрыТеста);
- Bitrix24_ИзменитьСтадиюКанбана(ПараметрыТеста);
-
- OPI_Bitrix24.УдалитьЗадачу(URL, IDЗадачи);
-
- Bitrix24_УдалитьСтадиюКанбана(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Б24_РаботаСЧатами() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_URL" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_Domain", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture2" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Document" , ПараметрыТеста);
-
- Bitrix24_ПолучитьСтатусПользователя(ПараметрыТеста);
- Bitrix24_УстановитьСтатусПользователя(ПараметрыТеста);
- Bitrix24_ПолучитьПользователей(ПараметрыТеста);
- Bitrix24_СоздатьЧат(ПараметрыТеста);
-
- OPI_Инструменты.Пауза(5);
-
- Bitrix24_ПолучитьСписокПользователейЧата(ПараметрыТеста);
- Bitrix24_ИсключитьПользователяИзЧата(ПараметрыТеста);
- Bitrix24_ДобавитьПользователейВЧат(ПараметрыТеста);
- Bitrix24_ИзменитьЗаголовокЧата(ПараметрыТеста);
-
- OPI_Инструменты.Пауза(5);
-
- Bitrix24_ИзменитьЦветЧата(ПараметрыТеста);
- Bitrix24_ИзменитьКартинкуЧата(ПараметрыТеста);
- Bitrix24_ОтключитьУведомленияЧата(ПараметрыТеста);
- Bitrix24_ВключитьУведомленияЧата(ПараметрыТеста);
-
- OPI_Инструменты.Пауза(5);
-
- Bitrix24_ПолучитьСписокСообщенийЧата(ПараметрыТеста);
- Bitrix24_ОтметитьСообщениеКакПрочитанное(ПараметрыТеста);
- Bitrix24_ОтметитьСообщениеКакНепрочитанное(ПараметрыТеста);
- Bitrix24_ПолучитьДиалог(ПараметрыТеста);
-
- OPI_Инструменты.Пауза(5);
-
- Bitrix24_ПолучитьСписокПользователейДиалога(ПараметрыТеста);
- Bitrix24_ОтправитьУведомлениеОВводе(ПараметрыТеста);
- Bitrix24_ОтправитьСообщение(ПараметрыТеста);
- Bitrix24_ИзменитьСообщение(ПараметрыТеста);
- Bitrix24_ПолучитьБлокКартинки(ПараметрыТеста);
- Bitrix24_ПолучитьБлокФайла(ПараметрыТеста);
-
- OPI_Инструменты.Пауза(5);
-
- Bitrix24_УстановитьРеакциюНаСообщение(ПараметрыТеста);
- Bitrix24_УдалитьСообщение(ПараметрыТеста);
- Bitrix24_ПолучитьКаталогФайловЧата(ПараметрыТеста);
- Bitrix24_ОтправитьФайл(ПараметрыТеста);
-
- OPI_Инструменты.Пауза(5);
-
- Bitrix24_ПрочитатьВсе(ПараметрыТеста);
- Bitrix24_СменитьВладельцаЧата(ПараметрыТеста);
- Bitrix24_ПокинутьЧат(ПараметрыТеста);
-
- Bitrix24_ПолучитьСтруктуруЧата(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Б24_РаботаСУведомлениями() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_URL" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_Domain", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture2" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Document" , ПараметрыТеста);
-
- Bitrix24_СоздатьПерсональноеУведомление(ПараметрыТеста);
- Bitrix24_СоздатьСистемноеУведомление(ПараметрыТеста);
- Bitrix24_УдалитьУведомление(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Б24_РаботаСПолямиЗадач() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_URL" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_Domain" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_HookTaskFieldID", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_TaskFieldID" , ПараметрыТеста);
-
- Bitrix24_ДобавитьПользовательскоеПолеЗадачи(ПараметрыТеста);
- Bitrix24_ИзменитьПользовательскоеПолеЗадачи(ПараметрыТеста);
- Bitrix24_ПолучитьПользовательскоеПолеЗадачи(ПараметрыТеста);
- Bitrix24_ПолучитьСписокПользовательскихПолейЗадачи(ПараметрыТеста);
- Bitrix24_УдалитьПользовательскоеПолеЗадачи(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Б24_УправлениеПодразделениями() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_URL" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_Domain", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_Token" , ПараметрыТеста);
-
- Bitrix24_СоздатьПодразделение(ПараметрыТеста);
- Bitrix24_ПолучитьПодразделения(ПараметрыТеста);
- Bitrix24_ИзменитьПодразделение(ПараметрыТеста);
- Bitrix24_УдалитьПодразделение(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Б24_УправлениеПользователями() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_URL" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_Domain", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_Token" , ПараметрыТеста);
-
- Bitrix24_ПолучитьТекущегоПользователя(ПараметрыТеста);
- Bitrix24_ПолучитьСтурктуруПользователя(ПараметрыТеста);
- Bitrix24_СоздатьПользователя(ПараметрыТеста);
- Bitrix24_НайтиПользователей(ПараметрыТеста);
- Bitrix24_ИзменитьПользователя(ПараметрыТеста);
- Bitrix24_ПолучитьПользователя(ПараметрыТеста);
- Bitrix24_ИзменитьСтатусПользователя(ПараметрыТеста);
- Bitrix24_ПолучитьСтруктуруФильтраПользователей(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Б24_РаботаСЛидами() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_URL" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_Domain", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_Token" , ПараметрыТеста);
-
- Bitrix24_ПолучитьСписокЛидов(ПараметрыТеста);
- Bitrix24_ПолучитьСтруктуруФильтраЛидов(ПараметрыТеста);
- Bitrix24_ПолучитьСтруктуруЛида(ПараметрыТеста);
- Bitrix24_СоздатьЛид(ПараметрыТеста);
- Bitrix24_ПолучитьЛид(ПараметрыТеста);
- Bitrix24_ИзменитьЛид(ПараметрыТеста);
- Bitrix24_УдалитьЛид(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Б24_РаботаСоСделками() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_URL" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_Domain", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_Token" , ПараметрыТеста);
-
- Bitrix24_ПолучитьСтруктуруФильтраСделок(ПараметрыТеста);
- Bitrix24_ПолучитьСтруктуруСделки(ПараметрыТеста);
- Bitrix24_СоздатьСделку(ПараметрыТеста);
- Bitrix24_ПолучитьСделку(ПараметрыТеста);
- Bitrix24_ИзменитьСделку(ПараметрыТеста);
- Bitrix24_УдалитьСделку(ПараметрыТеста);
- Bitrix24_ПолучитьСписокСделок(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Б24_РаботаСКалендарями() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_URL" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_Domain", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_Token" , ПараметрыТеста);
-
- Bitrix24_СоздатьКалендарь(ПараметрыТеста);
- Bitrix24_ИзменитьКалендарь(ПараметрыТеста);
- Bitrix24_ПолучитьСписокКалендарей(ПараметрыТеста);
- Bitrix24_СоздатьСобытиеКалендаря(ПараметрыТеста);
- Bitrix24_УстановитьСтатусУчастияПользователя(ПараметрыТеста);
- Bitrix24_ПолучитьСтатусУчастияПользователя(ПараметрыТеста);
- Bitrix24_ПолучитьСобытиеКалендаря(ПараметрыТеста);
- Bitrix24_ПолучитьСобытияКалендарей(ПараметрыТеста);
- Bitrix24_ИзменитьСобытиеКалендаря(ПараметрыТеста);
- Bitrix24_ПолучитьЗанятостьПользователей(ПараметрыТеста);
- Bitrix24_УдалитьСобытиеКалендаря(ПараметрыТеста);
- Bitrix24_УдалитьКалендарь(ПараметрыТеста);
- Bitrix24_ПолучитьПользовательскиеНастройкиКалендаря(ПараметрыТеста);
- Bitrix24_УстановитьПользовательскиеНастройкиКалендаря(ПараметрыТеста);
- Bitrix24_ПолучитьСтруктуруКалендаря(ПараметрыТеста);
- Bitrix24_ПолучитьСтруктуруНастроекКалендаря(ПараметрыТеста);
- Bitrix24_ПолучитьСтруктуруПользовательскихНастроекКаледнаря(ПараметрыТеста);
- Bitrix24_ПолучитьСтруктуруСобытияКалендаря(ПараметрыТеста);
- Bitrix24_ПолучитьСтруктуруФильтраСобытийКалендарей(ПараметрыТеста);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область VkTeams
-
-Процедура ВКТ_ОбщиеМетоды() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("VkTeams_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("VkTeams_FileID", ПараметрыТеста);
-
- VkTeams_ПроверитьТокен(ПараметрыТеста);
- VkTeams_ПолучитьСобытия(ПараметрыТеста);
- VKTeams_ПолучитьИнформациюОФайле(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура ВКТ_ОтправкаСообщений() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("VkTeams_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("VkTeams_ChatID" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("VkTeams_ChatID2" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("VkTeams_MessageID", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Document" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Audio2" , ПараметрыТеста);
-
- VkTeams_ОтправитьТекстовоеСообщение(ПараметрыТеста);
- OPI_Инструменты.Пауза(60);
-
- VKTeams_ОтветитьНаСобытиеКлавиатуры(ПараметрыТеста);
- VKTeams_ПереслатьСообщение(ПараметрыТеста);
- VKTeams_ОтправитьФайл(ПараметрыТеста);
- VKTeams_ПереслатьФайл(ПараметрыТеста);
- VKTeams_ИзменитьТекстСообщения(ПараметрыТеста);
- VKTeams_ЗакрепитьСообщение(ПараметрыТеста);
- VKTeams_ОткрепитьСообщение(ПараметрыТеста);
- VKTeams_УдалитьСообщение(ПараметрыТеста);
- VKTeams_ОтправитьГолосовоеСообщение(ПараметрыТеста);
- VKTeams_ПереслатьГолосовоеСообщение(ПараметрыТеста);
- VKTeams_СформироватьКнопкуДействия(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура ВКТ_УправлениеЧатами() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("VkTeams_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("VkTeams_ChatID" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("VkTeams_ChatID2", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture3" , ПараметрыТеста);
-
- VKTeams_ИсключитьПользователейЧата(ПараметрыТеста);
- VKTeams_ИзменитьАватарЧата(ПараметрыТеста);
- VKTeams_ПолучитьИнформациюОЧате(ПараметрыТеста);
- VKTeams_ПолучитьАдминистраторовЧата(ПараметрыТеста);
- VKTeams_ПолучитьПользователейЧата(ПараметрыТеста);
- VKTeams_ПолучитьЗаблокированныхПользователейЧата(ПараметрыТеста);
- VKTeams_ПолучитьЗапросыВступленияЧата(ПараметрыТеста);
- VKTeams_ЗаблокироватьПользователяЧата(ПараметрыТеста);
- VKTeams_РазблокироватьПользователяЧата(ПараметрыТеста);
- VKTeams_ОдобритьЗаявкуНаВступление(ПараметрыТеста);
- VKTeams_ОтклонитьЗаявкуНаВступление(ПараметрыТеста);
- VKTeams_УстановитьЗаголовокЧата(ПараметрыТеста);
- VKTeams_УстановитьОписаниеЧата(ПараметрыТеста);
- VKTeams_УстановитьПравилаЧата(ПараметрыТеста);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область Neocities
-
-Процедура НС_РаботаСФайлами() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("NC_Token", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture2", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Gif" , ПараметрыТеста);
-
- Neocities_ЗагрузитьФайл(ПараметрыТеста);
- Neocities_ЗагрузитьФайлы(ПараметрыТеста);
- Neocities_ПолучитьСписокФайлов(ПараметрыТеста);
- Neocities_УдалитьВыбранныеФайлы(ПараметрыТеста);
- Neocities_СинхронизироватьКаталоги(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура НС_ПолучениеДанных() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("NC_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("NC_Login" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("NC_Password", ПараметрыТеста);
-
- Neocities_ПолучитьДанныеОСайте(ПараметрыТеста);
- Neocities_ПолучитьТокен(ПараметрыТеста);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область CDEK
-
-Процедура СдэкАПИ_ОбщиеМетоды() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("CDEK_Account" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("CDEK_Password", ПараметрыТеста);
-
- CDEK_ПолучитьТокен(ПараметрыТеста);
- CDEK_ПолучитьЧекиНаДату(ПараметрыТеста);
- CDEK_ПолучитьРеестрыПлатежейНаДату(ПараметрыТеста);
- CDEK_ПолучитьПереводыПлатежейНаДату(ПараметрыТеста);
- CDEK_ПолучитьОписаниеФильтраОфисов(ПараметрыТеста);
- CDEK_ПолучитьСписокОфисов(ПараметрыТеста);
- CDEK_ПолучитьСписокРегионов(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура СдэкАПИ_РаботаСЗаказами() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("CDEK_Token", ПараметрыТеста);
-
- CDEK_ПолучитьОписаниеЗаказа(ПараметрыТеста);
- CDEK_СоздатьЗаказ(ПараметрыТеста);
-
- OPI_Инструменты.Пауза(25);
-
- CDEK_ПолучитьЗаказ(ПараметрыТеста);
- CDEK_ПолучитьЗаказПоНомеру(ПараметрыТеста);
- CDEK_СформироватьКвитанцию(ПараметрыТеста);
- CDEK_СформироватьШтрихкод(ПараметрыТеста);
- CDEK_СоздатьПреалерт(ПараметрыТеста);
-
- OPI_Инструменты.Пауза(25);
-
- CDEK_ПолучитьКвитанцию(ПараметрыТеста);
- CDEK_ПолучитьШтрихкод(ПараметрыТеста);
- CDEK_ПолучитьПреалерт(ПараметрыТеста);
- CDEK_ПолучитьСтатусПаспортныхДанных(ПараметрыТеста);
- CDEK_ПолучитьЧекЗаказа(ПараметрыТеста);
- CDEK_ИзменитьЗаказ(ПараметрыТеста);
- CDEK_ОформитьКлиентскийВозврат(ПараметрыТеста);
- CDEK_СоздатьОтказ(ПараметрыТеста);
- CDEK_УдалитьЗаказ(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура СдэкАПИ_РаботаСЗаявкамиНаВызовКурьера() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("CDEK_Token", ПараметрыТеста);
-
- CDEK_СоздатьЗаказ(ПараметрыТеста);
-
- OPI_Инструменты.Пауза(25);
-
- CDEK_ПолучитьОписаниеЗаявкиКурьера(ПараметрыТеста);
- CDEK_СоздатьЗаявкуНаВызовКурьера(ПараметрыТеста);
- CDEK_ПолучитьЗаявкуНаВызовКурьера(ПараметрыТеста);
- CDEK_УдалитьЗаявкуНаВызовКурьера(ПараметрыТеста);
- CDEK_ПолучитьОписаниеДоговоренности(ПараметрыТеста);
-
- CDEK_ПолучитьДоступныеИнтервалыДоставки(ПараметрыТеста);
- CDEK_ЗафиксироватьДоговоренностьОДоставке(ПараметрыТеста);
-
- OPI_Инструменты.Пауза(25);
-
- CDEK_ПолучитьДоговоренностьОДоставке(ПараметрыТеста);
- CDEK_УдалитьЗаказ(ПараметрыТеста);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область YandexMetrika
-
-Процедура ЯМетрика_УправлениеМетками() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Metrika_Token", ПараметрыТеста);
-
- YandexMetrika_СоздатьМетку(ПараметрыТеста);
- YandexMetrika_ПолучитьСписокМеток(ПараметрыТеста);
- YandexMetrika_ИзменитьМетку(ПараметрыТеста);
- YandexMetrika_ПолучитьМетку(ПараметрыТеста);
- YandexMetrika_УдалитьМетку(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура ЯМетрика_УправлениеСчетчиками() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Metrika_Token", ПараметрыТеста);
-
- YandexMetrika_ПолучитьСтруктуруСчетчика(ПараметрыТеста);
- YandexMetrika_СоздатьСчетчик(ПараметрыТеста);
- YandexMetrika_ПолучитьСчетчик(ПараметрыТеста);
- YandexMetrika_ИзменитьСчетчик(ПараметрыТеста);
- YandexMetrika_УдалитьСчетчик(ПараметрыТеста);
- YandexMetrika_ВосстановитьСчетчик(ПараметрыТеста);
- YandexMetrika_ПолучитьСписокСчетчиков(ПараметрыТеста);
- YandexMetrika_УдалитьСчетчик(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура ЯМетрика_УправлениеОперациями() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Metrika_Token", ПараметрыТеста);
-
- YandexMetrika_СоздатьСчетчик(ПараметрыТеста);
- YandexMetrika_ПолучитьСписокОпераций(ПараметрыТеста);
- YandexMetrika_УдалитьСчетчик(ПараметрыТеста);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область S3
-
-Процедура AWS_ОбщиеМетоды() Экспорт
-
- МассивВариантов = OPI_ПолучениеДанныхТестов.ПолучитьВариантыПараметровS3();
-
- Для Каждого ПараметрыТеста Из МассивВариантов Цикл
-
- S3_ПолучитьСтруктуруДанных(ПараметрыТеста);
- S3_ОтправитьЗапросБезТела(ПараметрыТеста);
- S3_ОтправитьЗапросСТелом(ПараметрыТеста);
-
- КонецЦикла;
-
-КонецПроцедуры
-
-Процедура AWS_РаботаСБакетами() Экспорт
-
- МассивВариантов = OPI_ПолучениеДанныхТестов.ПолучитьВариантыПараметровS3();
-
- Для Каждого ПараметрыТеста Из МассивВариантов Цикл
-
- S3_СоздатьБакет(ПараметрыТеста);
- S3_ПолучитьСписокБакетов(ПараметрыТеста);
- S3_ПроверитьДоступностьБакета(ПараметрыТеста);
- S3_УстановитьТегиБакета(ПараметрыТеста);
- S3_ПолучитьТегиБакета(ПараметрыТеста);
- S3_УдалитьТегиБакета(ПараметрыТеста);
- S3_УстановитьШифрованиеБакета(ПараметрыТеста);
- S3_ПолучитьШифрованиеБакета(ПараметрыТеста);
- S3_УдалитьШифрованиеБакета(ПараметрыТеста);
- S3_УстановитьНастройкиВерсионированияБакета(ПараметрыТеста);
- S3_ПолучитьНастройкийВерсионированияБакета(ПараметрыТеста);
- S3_УдалитьБакет(ПараметрыТеста);
-
- КонецЦикла;
-
-КонецПроцедуры
-
-Процедура AWS_РаботаСОбъектами() Экспорт
-
- МассивВариантов = OPI_ПолучениеДанныхТестов.ПолучитьВариантыПараметровS3();
-
- Для Каждого ПараметрыТеста Из МассивВариантов Цикл
-
- S3_СоздатьБакет(ПараметрыТеста);
- S3_ЗагрузитьОбъект(ПараметрыТеста);
- S3_ЗагрузитьОбъектЦеликом(ПараметрыТеста);
- S3_ИнициализироватьЗагрузкуЧастями(ПараметрыТеста);
- S3_ЗагрузитьЧастьОбъекта(ПараметрыТеста);
- S3_ЗавершитьЗагрузкуЧастями(ПараметрыТеста);
- S3_ОтменитьЗагрузкуЧастями(ПараметрыТеста);
- S3_ПолучитьОписаниеОбъекта(ПараметрыТеста);
- S3_КопироватьОбъект(ПараметрыТеста);
- S3_УстановитьТегиОбъекта(ПараметрыТеста);
- S3_ПолучитьТегиОбъекта(ПараметрыТеста);
- S3_УдалитьТегиОбъекта(ПараметрыТеста);
- S3_ПолучитьСписокОбъектов(ПараметрыТеста);
- S3_ПолучитьСписокВерсийОбъектов(ПараметрыТеста);
- S3_ПолучитьОбъект(ПараметрыТеста);
- S3_ПолучитьСсылкуСкачиванияОбъекта(ПараметрыТеста);
- S3_УдалитьОбъект(ПараметрыТеста);
- S3_УдалитьБакет(ПараметрыТеста);
- S3_ПолучитьСсылкуЗагрузкиОбъекта(ПараметрыТеста);
-
- КонецЦикла;
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область TCP
-
-Процедура TC_Клиент() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("TCP_Address" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("TCP_AddressTLS", ПараметрыТеста);
-
- TCP_ОткрытьСоединение(ПараметрыТеста);
- TCP_ЗакрытьСоединение(ПараметрыТеста);
- TCP_ПрочитатьДвоичныеДанные(ПараметрыТеста);
- TCP_ОтправитьДвоичныеДанные(ПараметрыТеста);
- TCP_ПрочитатьСтроку(ПараметрыТеста);
- TCP_ОтправитьСтроку(ПараметрыТеста);
- TCP_ОбработатьЗапрос(ПараметрыТеста);
- TCP_ПолучитьНастройкиTLS(ПараметрыТеста);
- TCP_ПолучитьПоследнююОшибку(ПараметрыТеста);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область SQLite
-
-Процедура SQLL_ОсновныеМетоды() Экспорт
-
- ПараметрыТеста = Новый Структура;
-
- База = ПолучитьИмяВременногоФайла("sqlite");
- OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("SQLite_DB", База);
- OPI_Инструменты.ДобавитьПоле("SQLite_DB", База, "Строка", ПараметрыТеста);
-
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("SQLite_Ext" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("SQLite_ExtLinux", ПараметрыТеста);
-
- SQLite_ОткрытьСоединение(ПараметрыТеста);
- SQLite_ЗакрытьСоединение(ПараметрыТеста);
- SQLite_ВыполнитьЗапросSQL(ПараметрыТеста);
- SQLite_ЭтоКоннектор(ПараметрыТеста);
- SQLite_ПодключитьРасширение(ПараметрыТеста);
-
- OPI_Инструменты.УдалитьФайлВПопытке(База, "Ошибка удаления файла базы");
-
-КонецПроцедуры
-
-Процедура SQLL_ORM() Экспорт
-
- ПараметрыТеста = Новый Структура;
-
- База = ПолучитьИмяВременногоФайла("sqlite");
-
- Соединение = OPI_SQLite.ОткрытьСоединение(База);
- ПараметрыТеста.Вставить("SQLite_DB", Соединение);
-
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture", ПараметрыТеста);
-
- SQLite_СоздатьТаблицу(ПараметрыТеста);
- SQLite_ДобавитьЗаписи(ПараметрыТеста);
- SQLite_ПолучитьЗаписи(ПараметрыТеста);
- SQLite_ОбновитьЗаписи(ПараметрыТеста);
- SQLite_УдалитьЗаписи(ПараметрыТеста);
- SQLite_ПолучитьИнформациюОТаблице(ПараметрыТеста);
- SQLite_ДобавитьКолонкуТаблицы(ПараметрыТеста);
- SQLite_УдалитьКолонкуТаблицы(ПараметрыТеста);
- SQLite_ГарантироватьТаблицу(ПараметрыТеста);
- SQLite_ОчиститьТаблицу(ПараметрыТеста);
- SQLite_УдалитьТаблицу(ПараметрыТеста);
- SQLite_ПолучитьСтруктуруФильтраЗаписей(ПараметрыТеста);
-
- OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("SQLite_DB", База);
- OPI_Инструменты.ДобавитьПоле("SQLite_DB", База, "Строка", ПараметрыТеста);
-
- SQLite_СоздатьТаблицу(ПараметрыТеста);
- SQLite_ДобавитьЗаписи(ПараметрыТеста);
- SQLite_ПолучитьЗаписи(ПараметрыТеста);
- SQLite_ОбновитьЗаписи(ПараметрыТеста);
- SQLite_УдалитьЗаписи(ПараметрыТеста);
- SQLite_ПолучитьИнформациюОТаблице(ПараметрыТеста);
- SQLite_ДобавитьКолонкуТаблицы(ПараметрыТеста);
- SQLite_УдалитьКолонкуТаблицы(ПараметрыТеста);
- SQLite_ГарантироватьТаблицу(ПараметрыТеста);
- SQLite_ОчиститьТаблицу(ПараметрыТеста);
- SQLite_УдалитьТаблицу(ПараметрыТеста);
- SQLite_ПолучитьСтруктуруФильтраЗаписей(ПараметрыТеста);
-
- OPI_Инструменты.УдалитьФайлВПопытке(База, "Ошибка удаления файла базы");
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область PostgreSQL
-
-Процедура Postgres_ОсновныеМетоды() Экспорт
-
- МассивВариантов = OPI_ПолучениеДанныхТестов.ПолучитьВариантыПараметровPostgres();
-
- Для Каждого ПараметрыТеста Из МассивВариантов Цикл
-
- PostgreSQL_СформироватьСтрокуПодключения(ПараметрыТеста);
- PostgreSQL_ОткрытьСоединение(ПараметрыТеста);
- PostgreSQL_ЗакрытьСоединение(ПараметрыТеста);
- PostgreSQL_ЭтоКоннектор(ПараметрыТеста);
- PostgreSQL_ВыполнитьЗапросSQL(ПараметрыТеста);
- PostgreSQL_ПолучитьНастройкиTLS(ПараметрыТеста);
-
- КонецЦикла;
-
-КонецПроцедуры
-
-Процедура Postgres_ORM() Экспорт
-
- МассивВариантов = OPI_ПолучениеДанныхТестов.ПолучитьВариантыПараметровPostgres();
-
- Для Каждого ПараметрыТеста Из МассивВариантов Цикл
-
- PostgreSQL_СоздатьБазуДанных(ПараметрыТеста);
- PostgreSQL_СоздатьТаблицу(ПараметрыТеста);
- PostgreSQL_ДобавитьЗаписи(ПараметрыТеста);
- PostgreSQL_ПолучитьЗаписи(ПараметрыТеста);
- PostgreSQL_ОбновитьЗаписи(ПараметрыТеста);
- PostgreSQL_УдалитьЗаписи(ПараметрыТеста);
- PostgreSQL_ОчиститьТаблицу(ПараметрыТеста);
- PostgreSQL_ПолучитьИнформациюОТаблице(ПараметрыТеста);
- PostgreSQL_ДобавитьКолонкуТаблицы(ПараметрыТеста);
- PostgreSQL_УдалитьКолонкуТаблицы(ПараметрыТеста);
- PostgreSQL_ГарантироватьТаблицу(ПараметрыТеста);
- PostgreSQL_УдалитьТаблицу(ПараметрыТеста);
- PostgreSQL_ОтключитьВсеСоединенияБазыДанных(ПараметрыТеста);
- PostgreSQL_УдалитьБазуДанных(ПараметрыТеста);
- PostgreSQL_ПолучитьСтруктуруФильтраЗаписей(ПараметрыТеста);
-
- КонецЦикла;
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область MySQL
-
-Процедура MYS_ОсновныеМетоды() Экспорт
-
- МассивВариантов = OPI_ПолучениеДанныхТестов.ПолучитьВариантыПараметровMySQL();
-
- Для Каждого ПараметрыТеста Из МассивВариантов Цикл
-
- MySQL_СформироватьСтрокуПодключения(ПараметрыТеста);
- MySQL_ОткрытьСоединение(ПараметрыТеста);
- MySQL_ЗакрытьСоединение(ПараметрыТеста);
- MySQL_ЭтоКоннектор(ПараметрыТеста);
- MySQL_ВыполнитьЗапросSQL(ПараметрыТеста);
- MySQL_ПолучитьНастройкиTLS(ПараметрыТеста);
-
- КонецЦикла;
-
-КонецПроцедуры
-
-Процедура MYS_ORM() Экспорт
-
- МассивВариантов = OPI_ПолучениеДанныхТестов.ПолучитьВариантыПараметровMySQL();
-
- Для Каждого ПараметрыТеста Из МассивВариантов Цикл
-
- MySQL_СоздатьБазуДанных(ПараметрыТеста);
- MySQL_СоздатьТаблицу(ПараметрыТеста);
- MySQL_ДобавитьЗаписи(ПараметрыТеста);
- MySQL_ПолучитьЗаписи(ПараметрыТеста);
- MySQL_ОбновитьЗаписи(ПараметрыТеста);
- MySQL_УдалитьЗаписи(ПараметрыТеста);
- MySQL_ОчиститьТаблицу(ПараметрыТеста);
- MySQL_ПолучитьИнформациюОТаблице(ПараметрыТеста);
- MySQL_ДобавитьКолонкуТаблицы(ПараметрыТеста);
- MySQL_УдалитьКолонкуТаблицы(ПараметрыТеста);
- MySQL_ГарантироватьТаблицу(ПараметрыТеста);
- MySQL_УдалитьТаблицу(ПараметрыТеста);
- MySQL_УдалитьБазуДанных(ПараметрыТеста);
- MySQL_ПолучитьСтруктуруФильтраЗаписей(ПараметрыТеста);
-
- КонецЦикла;
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область GreenAPI
-
-Процедура GAPI_Аккаунт() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_ApiURL" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_MediaURL" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_IdInstance" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_AccountID" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_TestGroupID", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
-
- GreenAPI_АрхивироватьЧат(ПараметрыТеста);
- GreenAPI_РазархивироватьЧат(ПараметрыТеста);
- GreenAPI_СформироватьПараметрыДоступа(ПараметрыТеста);
- GreenAPI_ПолучитьНастройкиИнстанса(ПараметрыТеста);
- GreenAPI_ПолучитьИнформациюОбАккаунте(ПараметрыТеста);
- GreenAPI_ПолучитьСтруктуруНастроекИнстанса(ПараметрыТеста);
- GreenAPI_УстановитьНастройкиИнстанса(ПараметрыТеста);
- GreenAPI_ПолучитьСостояниеИнстанса(ПараметрыТеста);
- GreenAPI_УстановитьКартинкуПрофиля(ПараметрыТеста);
- // GreenAPI_ПерезапуститьИнстанс(ПараметрыТеста);
- // GreenAPI_ПолучитьКодАвторизации(ПараметрыТеста);
- // GreenAPI_РазлогинитьИнстанс(ПараметрыТеста);
- // GreenAPI_ПолучитьQR(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура GAPI_УправлениеГруппами() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_ApiURL" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_MediaURL" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_IdInstance", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_AccountID" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
-
- GreenAPI_СоздатьГруппу(ПараметрыТеста);
- GreenAPI_ПолучитьИнформациюОГруппе(ПараметрыТеста);
- GreenAPI_ИзменитьИмяГруппы(ПараметрыТеста);
- GreenAPI_УстановитьКартинкуГруппы(ПараметрыТеста);
- GreenAPI_ДобавитьУчастникаВГруппу(ПараметрыТеста);
- GreenAPI_ИсключитьУчастникаГруппы(ПараметрыТеста);
- GreenAPI_НазначитьПраваАдминистратора(ПараметрыТеста);
- GreenAPI_ОтозватьПраваАдминистратора(ПараметрыТеста);
- GreenAPI_ПокинутьГруппу(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура GAPI_ОтправкаСообщений() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_ApiURL" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_MediaURL" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_IdInstance" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_TestGroupID", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_AccountID" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Video" , ПараметрыТеста);
-
- GreenAPI_ОтправитьТекстовоеСообщение(ПараметрыТеста);
- GreenAPI_ОтправитьФайл(ПараметрыТеста);
- GreenAPI_ОтправитьФайлПоURL(ПараметрыТеста);
- GreenAPI_ОтправитьОпрос(ПараметрыТеста);
- GreenAPI_ОтправитьЛокацию(ПараметрыТеста);
- GreenAPI_ОтправитьКонтакт(ПараметрыТеста);
- GreenAPI_ПереслатьСообщения(ПараметрыТеста);
- GreenAPI_ПолучитьОписаниеЛокации(ПараметрыТеста);
- GreenAPI_ПолучитьОписаниеКонтакта(ПараметрыТеста);
- GreenAPI_ИзменитьТекстСообщения(ПараметрыТеста);
- GreenAPI_УдалитьСообщение(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура GAPI_ПолучениеУведомлений() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_ApiURL" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_MediaURL" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_IdInstance" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_AccountID" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_FileMessageID" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_TestGroupID" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_DownloadMessageID", ПараметрыТеста);
-
- GreenAPI_ПолучитьУведомление(ПараметрыТеста);
- GreenAPI_УстановитьОтметкуПрочтения(ПараметрыТеста);
- //GreenAPI_СкачатьФайлСообщения(ПараметрыТеста);
- GreenAPI_УдалитьУведомлениеИзОчереди(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура GAPI_ОчередьСообщений() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_ApiURL" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_MediaURL" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_IdInstance" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_AccountID" , ПараметрыТеста);
-
- GreenAPI_ПолучитьОчередьСообщений(ПараметрыТеста);
- GreenAPI_ОчиститьОчередьСообщений(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура GAPI_ЖурналыСообщений() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_ApiURL" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_MediaURL" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_IdInstance" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_TestGroupID", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_AccountID" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_MessageID" , ПараметрыТеста);
-
- GreenAPI_ПолучитьИсториюЧата(ПараметрыТеста);
- GreenAPI_ПолучитьСообщение(ПараметрыТеста);
- GreenAPI_ПолучитьЖурналВходящихСообщений(ПараметрыТеста);
- GreenAPI_ПолучитьЖурналИсходящихСообщений(ПараметрыТеста);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область RCON
-
-Процедура RC_ВыполнениеКоманд() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("RCON_URL" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("RCON_Password", ПараметрыТеста);
-
- RCON_СформироватьПараметрыСоединения(ПараметрыТеста);
- RCON_ОткрытьСоединение(ПараметрыТеста);
- RCON_ВыполнитьКоманду(ПараметрыТеста);
- RCON_ЭтоКоннектор(ПараметрыТеста);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область Ollama
-
-Процедура OLLM_ОбработкаЗапросов() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Ollama_URL" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Ollama_Token", ПараметрыТеста);
-
- Ollama_СкачатьМодель(ПараметрыТеста);
- Ollama_ПолучитьВерсию(ПараметрыТеста);
- Ollama_ПолучитьОтвет(ПараметрыТеста);
- Ollama_ПолучитьОтветВКонтексте(ПараметрыТеста);
- Ollama_ПолучитьПредставления(ПараметрыТеста);
- Ollama_ПолучитьСтруктуруПараметровЗапроса(ПараметрыТеста);
- Ollama_ПолучитьСтруктуруПараметровВКонтексте(ПараметрыТеста);
- Ollama_ПолучитьСтруктуруСообщенияКонтекста(ПараметрыТеста);
- Ollama_ПолучитьСтруктуруПараметровПредставлений(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура OLLM_РаботаСМоделями() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Ollama_URL" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Ollama_Token", ПараметрыТеста);
-
- Ollama_СкачатьМодель(ПараметрыТеста);
- Ollama_ЗагрузитьМодельВПамять(ПараметрыТеста);
- Ollama_ВыгрузитьМодельИзПамяти(ПараметрыТеста);
- Ollama_СоздатьМодель(ПараметрыТеста);
- Ollama_ПолучитьИнформациюОМодели(ПараметрыТеста);
- Ollama_ПолучитьСписокМоделей(ПараметрыТеста);
- Ollama_ПолучитьСписокЗапущенныхМоделей(ПараметрыТеста);
- Ollama_КопироватьМодель(ПараметрыТеста);
- Ollama_ОтправитьМодель(ПараметрыТеста);
- Ollama_ПолучитьСтруктуруНастроекМодели(ПараметрыТеста);
- Ollama_УдалитьМодель(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура OLLM_РаботаСBlob() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Ollama_URL" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Ollama_Token", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
-
- Ollama_ОтправитьBlob(ПараметрыТеста);
- Ollama_ПроверитьBlob(ПараметрыТеста);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область HTTP
-
-Процедура HTTP_Инициализация() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("HTTP_URL" , ПараметрыТеста);
-
- HTTPКлиент_Инициализировать(ПараметрыТеста);
- HTTPКлиент_УстановитьURL(ПараметрыТеста);
- HTTPКлиент_УстановитьПараметрыURL(ПараметрыТеста);
- HTTPКлиент_УстановитьФайлОтвета(ПараметрыТеста);
- HTTPКлиент_УстановитьТипДанных(ПараметрыТеста);
- HTTPКлиент_ПолучитьЛог(ПараметрыТеста);
- HTTPКлиент_УстановитьПрокси(ПараметрыТеста);
- HTTPКлиент_УстановитьТаймаут(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура HTTP_УстановкаТела() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("HTTP_URL", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
-
- HTTPКлиент_УстановитьДвоичноеТело(ПараметрыТеста);
- HTTPКлиент_УстановитьСтроковоеТело(ПараметрыТеста);
- HTTPКлиент_УстановитьJsonТело(ПараметрыТеста);
- HTTPКлиент_УстановитьFormТело(ПараметрыТеста);
- HTTPКлиент_НачатьЗаписьТелаMultipart(ПараметрыТеста);
- HTTPКлиент_ДобавитьПолеMultipartFormData(ПараметрыТеста);
- HTTPКлиент_ДобавитьФайлMultipartFormData(ПараметрыТеста);
- HTTPКлиент_ДобавитьДанныеRelated(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура HTTP_Настройки() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("HTTP_URL", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
-
- HTTPКлиент_ИспользоватьКодировку(ПараметрыТеста);
- HTTPКлиент_ИспользоватьСжатиеGzip(ПараметрыТеста);
- HTTPКлиент_ИспользоватьПоляТелаВOAuth(ПараметрыТеста);
- HTTPКлиент_ИспользоватьКодированиеURL(ПараметрыТеста);
- HTTPКлиент_РазделятьМассивыВURL(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура HTTP_УстановкаЗаголовков() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("HTTP_URL", ПараметрыТеста);
-
- HTTPКлиент_УстановитьЗаголовки(ПараметрыТеста);
- HTTPКлиент_ДобавитьЗаголовок(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура HTTP_Авторизация() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("HTTP_URL", ПараметрыТеста);
-
- HTTPКлиент_ДобавитьBasicАвторизацию(ПараметрыТеста);
- HTTPКлиент_ДобавитьBearerАвторизацию(ПараметрыТеста);
- HTTPКлиент_ДобавитьAWS4Авторизацию(ПараметрыТеста);
- HTTPКлиент_ДобавитьOAuthV1Авторизацию(ПараметрыТеста);
- HTTPКлиент_УстановитьАлгоритмOAuthV1(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура HTTP_ОбработкаЗапроса() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("HTTP_URL", ПараметрыТеста);
-
- HTTPКлиент_ОбработатьЗапрос(ПараметрыТеста);
- HTTPКлиент_ВыполнитьЗапрос(ПараметрыТеста);
- HTTPКлиент_ВернутьЗапрос(ПараметрыТеста);
- HTTPКлиент_ВернутьСоединение(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура HTTP_ПолучениеОтвета() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("HTTP_URL", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
-
- HTTPКлиент_ВернутьОтвет(ПараметрыТеста);
- HTTPКлиент_ВернутьОтветКакJSONКоллекцию(ПараметрыТеста);
- HTTPКлиент_ВернутьОтветКакДвоичныеДанные(ПараметрыТеста);
- HTTPКлиент_ВернутьОтветКакСтроку(ПараметрыТеста);
- HTTPКлиент_ВернутьИмяФайлаТелаОтвета(ПараметрыТеста);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область OpenAI
-
-Процедура OAI_ОбработкаЗапросов() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("OpenAI_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("OpenAI_URL" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("OpenAI_Token2" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("OpenAI_URL2" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("OpenAI_File" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
-
- OpenAI_ПолучитьОтвет(ПараметрыТеста);
- OpenAI_ПолучитьПредставления(ПараметрыТеста);
- OpenAI_ПолучитьСтруктуруСообщения(ПараметрыТеста);
- OpenAI_ПолучитьСтруктуруСообщенияКартинки(ПараметрыТеста);
- OpenAI_ПолучитьКартинки(ПараметрыТеста);
- OpenAI_ПолучитьСообщениеАссистента(ПараметрыТеста);
- OpenAI_ПолучитьСообщениеПользователя(ПараметрыТеста);
- OpenAI_ПолучитьСообщениеСистемы(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура OAI_Ассистенты() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("OpenAI_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("OpenAI_URL" , ПараметрыТеста);
-
- OpenAI_СоздатьАссистента(ПараметрыТеста);
- OpenAI_ПолучитьАссистента(ПараметрыТеста);
- OpenAI_ПолучитьСписокАссистентов(ПараметрыТеста);
- OpenAI_УдалитьАссистента(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура OAI_РаботаСФайлами() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("OpenAI_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("OpenAI_URL" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
-
- OpenAI_ЗагрузитьФайл(ПараметрыТеста);
- OpenAI_ПолучитьИнформациюОФайле(ПараметрыТеста);
- OpenAI_ПолучитьСписокФайлов(ПараметрыТеста);
- OpenAI_СкачатьФайл(ПараметрыТеста);
- OpenAI_УдалитьФайл(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура OAI_РаботаСАудио() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("OpenAI_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("OpenAI_URL" , ПараметрыТеста);
-
- OpenAI_СгенерироватьРечь(ПараметрыТеста);
- OpenAI_СоздатьТранскрипцию(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура OAI_РаботаСМоделями() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("OpenAI_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("OpenAI_URL" , ПараметрыТеста);
-
- OpenAI_ПолучитьСписокМоделей(ПараметрыТеста);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область MSSQL
-
-Процедура MSS_ОсновныеМетоды() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("PG_IP" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("PG_Password", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("SQL2" , ПараметрыТеста);
-
- MSSQL_СформироватьСтрокуПодключения(ПараметрыТеста);
- MSSQL_ОткрытьСоединение(ПараметрыТеста);
- MSSQL_ЗакрытьСоединение(ПараметрыТеста);
- MSSQL_ЭтоКоннектор(ПараметрыТеста);
- MSSQL_ВыполнитьЗапросSQL(ПараметрыТеста);
- MSSQL_ПолучитьНастройкиTLS(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура MSS_ORM() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("PG_IP" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("PG_Password", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
-
- MSSQL_СоздатьБазуДанных(ПараметрыТеста);
- MSSQL_СоздатьТаблицу(ПараметрыТеста);
- MSSQL_ДобавитьЗаписи(ПараметрыТеста);
- MSSQL_ПолучитьЗаписи(ПараметрыТеста);
- MSSQL_ОбновитьЗаписи(ПараметрыТеста);
- MSSQL_УдалитьЗаписи(ПараметрыТеста);
- MSSQL_ОчиститьТаблицу(ПараметрыТеста);
- MSSQL_ПолучитьИнформациюОТаблице(ПараметрыТеста);
- MSSQL_ДобавитьКолонкуТаблицы(ПараметрыТеста);
- MSSQL_УдалитьКолонкуТаблицы(ПараметрыТеста);
- MSSQL_ГарантироватьТаблицу(ПараметрыТеста);
- MSSQL_УдалитьТаблицу(ПараметрыТеста);
- MSSQL_УдалитьБазуДанных(ПараметрыТеста);
- MSSQL_ПолучитьСтруктуруФильтраЗаписей(ПараметрыТеста);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область FTP
-
-Процедура FT_РаботаСДиректориями() Экспорт
-
- МассивВариантов = OPI_ПолучениеДанныхТестов.ПолучитьВариантыПараметровFTP();
-
- Для Каждого ПараметрыТеста Из МассивВариантов Цикл
-
- FTP_ОчиститьДиректорию(ПараметрыТеста);
- FTP_СоздатьНовуюДиректорию(ПараметрыТеста);
- FTP_ПолучитьТекущийКаталог(ПараметрыТеста);
- FTP_ИзменитьТекущийКаталог(ПараметрыТеста);
- FTP_ПолучитьСписокОбъектов(ПараметрыТеста);
- FTP_УдалитьДиректорию(ПараметрыТеста);
-
- КонецЦикла;
-
-КонецПроцедуры
-
-Процедура FT_РаботаСФайлами() Экспорт
-
- МассивВариантов = OPI_ПолучениеДанныхТестов.ПолучитьВариантыПараметровFTP();
-
- Для Каждого ПараметрыТеста Из МассивВариантов Цикл
-
- FTP_ЗагрузитьФайл(ПараметрыТеста);
- FTP_СохранитьФайл(ПараметрыТеста);
- FTP_ПолучитьДанныеФайла(ПараметрыТеста);
- FTP_УдалитьФайл(ПараметрыТеста);
-
- КонецЦикла;
-
-КонецПроцедуры
-
-Процедура FT_ОсновныеМетоды() Экспорт
-
- МассивВариантов = OPI_ПолучениеДанныхТестов.ПолучитьВариантыПараметровFTP();
-
- Для Каждого ПараметрыТеста Из МассивВариантов Цикл
-
- FTP_ОткрытьСоединение(ПараметрыТеста);
- FTP_ПолучитьПриветственноеСообщение(ПараметрыТеста);
- FTP_ПолучитьСписокРасширенийПротокола(ПараметрыТеста);
- FTP_ПолучитьКонфигурациюСоединения(ПараметрыТеста);
- FTP_ЗакрытьСоединение(ПараметрыТеста);
- FTP_ЭтоКоннектор(ПараметрыТеста);
- FTP_ПолучитьНастройкиСоединения(ПараметрыТеста);
- FTP_ПолучитьНастройкиПрокси(ПараметрыТеста);
- FTP_ПолучитьНастройкиTLS(ПараметрыТеста);
- FTP_ПолучитьРазмерОбъекта(ПараметрыТеста);
- FTP_ИзменитьПуть(ПараметрыТеста);
- FTP_ВыполнитьНестандартнуюКоманду(ПараметрыТеста);
- FTP_ВыполнитьПроизвольнуюКоманду(ПараметрыТеста);
- FTP_Пинг(ПараметрыТеста);
-
- КонецЦикла;
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область ReportPortal
-
-Процедура RPortal_Авторизация() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("RPortal_URL" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("RPortal_Login" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("RPortal_Password", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("RPortal_UserID" , ПараметрыТеста);
-
- ReportPortal_ПолучитьВременныйТокен(ПараметрыТеста);
- ReportPortal_ПолучитьПостоянныйТокен(ПараметрыТеста);
- ReportPortal_УдалитьПостоянныйТокен(ПараметрыТеста);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область SSH
-
-Процедура SShell_ОсновныеМетоды() Экспорт
-
- МассивВариантов = OPI_ПолучениеДанныхТестов.ПолучитьВариантыПараметровSSH();
-
- Для Каждого ПараметрыТеста Из МассивВариантов Цикл
-
- SSH_ОткрытьСоединение(ПараметрыТеста);
- SSH_ПолучитьКонфигурациюСоединения(ПараметрыТеста);
- SSH_ВыполнитьКоманду(ПараметрыТеста);
- SSH_ЗакрытьСоединение(ПараметрыТеста);
- SSH_ЭтоКоннектор(ПараметрыТеста);
- SSH_ПолучитьНастройкиЛогинПароль(ПараметрыТеста);
- SSH_ПолучитьНастройкиПриватныйКлюч(ПараметрыТеста);
- SSH_ПолучитьНастройкиЧерезАгента(ПараметрыТеста);
- SSH_ПолучитьНастройкиПрокси(ПараметрыТеста);
-
- КонецЦикла;
-
- OPI_Инструменты.УдалитьФайлВПопытке(МассивВариантов[0]["SSH_Key"], "Ошибка удаления файла после теста");
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область SFTP
-
-Процедура SF_ОсновныеМетоды() Экспорт
-
- МассивВариантов = OPI_ПолучениеДанныхТестов.ПолучитьВариантыПараметровSSH();
-
- Для Каждого ПараметрыТеста Из МассивВариантов Цикл
-
- SFTP_ОткрытьСоединение(ПараметрыТеста);
- SFTP_ПолучитьКонфигурациюСоединения(ПараметрыТеста);
- SFTP_ЭтоКоннектор(ПараметрыТеста);
- SFTP_ЗакрытьСоединение(ПараметрыТеста);
- SFTP_ПолучитьНастройкиЛогинПароль(ПараметрыТеста);
- SFTP_ПолучитьНастройкиПриватныйКлюч(ПараметрыТеста);
- SFTP_ПолучитьНастройкиЧерезАгента(ПараметрыТеста);
- SFTP_ПолучитьНастройкиПрокси(ПараметрыТеста);
-
- КонецЦикла;
-
- OPI_Инструменты.УдалитьФайлВПопытке(МассивВариантов[0]["SSH_Key"], "Ошибка удаления файла после теста");
-
-КонецПроцедуры
-
-Процедура SF_РаботаСДиректориями() Экспорт
-
- МассивВариантов = OPI_ПолучениеДанныхТестов.ПолучитьВариантыПараметровSSH();
-
- Для Каждого ПараметрыТеста Из МассивВариантов Цикл
-
- SFTP_ПолучитьТекущийКаталог(ПараметрыТеста);
- SFTP_ПолучитьСписокОбъектов(ПараметрыТеста);
- SFTP_СоздатьНовуюДиректорию(ПараметрыТеста);
- SFTP_УдалитьДиректорию(ПараметрыТеста);
-
- КонецЦикла;
-
- OPI_Инструменты.УдалитьФайлВПопытке(МассивВариантов[0]["SSH_Key"], "Ошибка удаления файла после теста");
-
-КонецПроцедуры
-
-Процедура SF_РаботаСФайлами() Экспорт
-
- МассивВариантов = OPI_ПолучениеДанныхТестов.ПолучитьВариантыПараметровSSH();
-
- Для Каждого ПараметрыТеста Из МассивВариантов Цикл
-
- SFTP_ЗагрузитьФайл(ПараметрыТеста);
- SFTP_ПолучитьИнформациюОФайле(ПараметрыТеста);
- SFTP_ПолучитьДанныеФайла(ПараметрыТеста);
- SFTP_СохранитьФайл(ПараметрыТеста);
- SFTP_ИзменитьПуть(ПараметрыТеста);
- SFTP_УдалитьФайл(ПараметрыТеста);
-
- КонецЦикла;
-
- OPI_Инструменты.УдалитьФайлВПопытке(МассивВариантов[0]["SSH_Key"], "Ошибка удаления файла после теста");
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область GreenMax
-
-Процедура GMax_Аккаунт() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenMax_ApiURL" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenMax_MediaURL" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenMax_IdInstance" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenMax_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenMax_Phone" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenMax_AccountID" , ПараметрыТеста);
- //OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenMax_TestGroupID", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
-
- GreenMax_СформироватьПараметрыДоступа(ПараметрыТеста);
- //GreenMax_РазлогинитьИнстанс(ПараметрыТеста);
- //GreenMax_ПолучитьКодАвторизации(ПараметрыТеста);
- //GreenMax_ОтправитьКодАвторизации(ПараметрыТеста);
- GreenMax_ПолучитьСостояниеИнстанса(ПараметрыТеста);
- GreenMax_ПолучитьНастройкиИнстанса(ПараметрыТеста);
- GreenMax_УстановитьНастройкиИнстанса(ПараметрыТеста);
- GreenMax_ПолучитьСтруктуруНастроекИнстанса(ПараметрыТеста);
- GreenMax_УстановитьКартинкуПрофиля(ПараметрыТеста);
- GreenMax_ПолучитьИнформациюОбАккаунте(ПараметрыТеста);
- GreenMax_ПерезапуститьИнстанс(ПараметрыТеста);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#КонецОбласти
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-Функция ПолучитьПараметрыВК()
-
- Параметры = Новый Структура;
- НомерГруппы = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("VK_GroupID");
-
- Параметры.Вставить("access_token", OPI_ПолучениеДанныхТестов.ПолучитьПараметр("VK_Token"));
- Параметры.Вставить("owner_id" , "-" + НомерГруппы);
- Параметры.Вставить("app_id" , OPI_ПолучениеДанныхТестов.ПолучитьПараметр("VK_AppID"));
- Параметры.Вставить("group_id" , НомерГруппы);
-
- Возврат Параметры;
-
-КонецФункции
-
-Функция ПолучитьПараметрыАвторизацииТвиттер()
-
- Параметры = Новый Соответствие;
-
- Параметры.Вставить("redirect_uri" , OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Twitter_Redirect"));
- Параметры.Вставить("client_id" , OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Twitter_ClinetID"));
- Параметры.Вставить("client_secret" , OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Twitter_ClientSecret"));
- Параметры.Вставить("access_token" , OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Twitter_Token"));
- Параметры.Вставить("refresh_token" , OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Twitter_Refresh"));
- Параметры.Вставить("oauth_token" , OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Twitter_OAuthToken"));
- Параметры.Вставить("oauth_token_secret", OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Twitter_OAuthSecret"));
-
- Параметры.Вставить("oauth_consumer_key" , OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Twitter_OAuthConsumerKey"));
- Параметры.Вставить("oauth_consumer_secret", OPI_ПолучениеДанныхТестов.ПолучитьПараметр(
- "Twitter_OAuthConsumerSecret"));
-
- Возврат Параметры;
-
-КонецФункции
-
-//@skip-check method-too-many-params
-Процедура Обработать(Знач Результат
- , Знач Библиотека
- , Знач Метод
- , Знач Вариант = ""
- , ДопПараметр1 = Неопределено
- , ДопПараметр2 = Неопределено
- , ДопПараметр3 = Неопределено)
-
- CLITestsMark = 0;
-
- Константы.ЭтоТестыCLI.Установить(CLITestsMark); // !OPI
- // !OInt УстановитьПеременнуюСреды("OINT_TESTS_CLI", CLITestsMark);
-
- OPI_ПолучениеДанныхТестов.ОбработатьРезультатТестирования(Результат
- , Метод
- , Библиотека
- , Вариант
- , ДопПараметр1
- , ДопПараметр2
- , ДопПараметр3);
-
-КонецПроцедуры
-
-#Область АтомарныеТесты
-
-#Область Telegram
-
-Процедура Telegram_ПолучитьИнформациюБота(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Telegram_Token"];
- Результат = OPI_Telegram.ПолучитьИнформациюБота(Токен);
-
- // END
-
- Обработать(Результат, "Telegram", "ПолучитьИнформациюБота");
-
-КонецПроцедуры
-
-Процедура Telegram_ПолучитьОбновления(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Telegram_Token"];
- Результат = OPI_Telegram.ПолучитьОбновления(Токен);
-
- // END
-
- Обработать(Результат, "Telegram", "ПолучитьОбновления");
-
-КонецПроцедуры
-
-Процедура Telegram_УстановитьWebhook(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Telegram_Token"];
- URL = ПараметрыФункции["Telegram_URL"];
-
- Результат = OPI_Telegram.УстановитьWebhook(Токен, URL);
-
- // END
-
- Обработать(Результат, "Telegram", "УстановитьWebhook");
-
-КонецПроцедуры
-
-Процедура Telegram_УдалитьWebhook(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Telegram_Token"];
- Результат = OPI_Telegram.УдалитьWebhook(Токен);
-
- // END
-
- Обработать(Результат, "Telegram", "УдалитьWebhook");
-
-КонецПроцедуры
-
-Процедура Telegram_ОтправитьТекстовоеСообщение(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Telegram_Token"];
- IDЧата = ПараметрыФункции["Telegram_ChatID"];
- IDКанала = ПараметрыФункции["Telegram_ChannelID"];
- Текст = ПараметрыФункции["String"];
-
- МассивКнопокКлавиатуры = Новый Массив;
- МассивКнопокКлавиатуры.Добавить("Кнопка1");
- МассивКнопокКлавиатуры.Добавить("Кнопка2");
-
- // С клавиатурой, в чат
- Клавиатура = OPI_Telegram.СформироватьКлавиатуруПоМассивуКнопок(МассивКнопокКлавиатуры, Истина);
- Результат = OPI_Telegram.ОтправитьТекстовоеСообщение(Токен, IDЧата, Текст, Клавиатура);
-
- Обработать(Результат, "Telegram", "ОтправитьТекстовоеСообщение", , ПараметрыФункции, Текст); // SKIP
-
- // Простое, в канал
- Результат = OPI_Telegram.ОтправитьТекстовоеСообщение(Токен, IDКанала, Текст);
-
- // END
-
- Обработать(Результат, "Telegram", "ОтправитьТекстовоеСообщение", "Канал", ПараметрыФункции, Текст);
-
- Текст = "Текст html %F0%9F%93%9E 10%";
- Результат = OPI_Telegram.ОтправитьТекстовоеСообщение(Токен, IDКанала, Текст, , "HTML");
-
- Обработать(Результат, "Telegram", "ОтправитьТекстовоеСообщение", "HTML");
-
- Текст = "%F0%9F%A4%BC";
- Результат = OPI_Telegram.ОтправитьТекстовоеСообщение(Токен, IDЧата, Текст);
-
- Обработать(Результат, "Telegram", "ОтправитьТекстовоеСообщение", "Emoji");
-
- Текст = "Текст %F0%9F%A5%9D и emoji \(10%\)";
- Результат = OPI_Telegram.ОтправитьТекстовоеСообщение(Токен, IDКанала, Текст, , "MarkdownV2");
-
- Обработать(Результат, "Telegram", "ОтправитьТекстовоеСообщение", "Текст + Emoji");
-
- Клавиатура = OPI_Инструменты.JsonВСтруктуру(Клавиатура, Ложь);
- Результат = OPI_Telegram.ОтправитьТекстовоеСообщение(Токен, IDЧата, Текст, Клавиатура);
-
- Обработать(Результат, "Telegram", "ОтправитьТекстовоеСообщение", "Клавиатура структура");
-
-КонецПроцедуры
-
-Процедура Telegram_СформироватьКлавиатуруПоМассивуКнопок(ПараметрыФункции)
-
- МассивКнопок = Новый Массив;
- МассивКнопок.Добавить("Кнопка1");
- МассивКнопок.Добавить("Кнопка2");
- МассивКнопок.Добавить("Кнопка3");
-
- Результат = OPI_Telegram.СформироватьКлавиатуруПоМассивуКнопок(МассивКнопок);
-
- // END
-
- Обработать(Результат, "Telegram", "СформироватьКлавиатуруПоМассивуКнопок");
-
-КонецПроцедуры
-
-Процедура Telegram_ОтправитьКартинку(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Telegram_Token"];
- IDЧата = ПараметрыФункции["Telegram_ChatID"];
- IDКанала = ПараметрыФункции["Telegram_ChannelID"];
- Текст = ПараметрыФункции["String"];
- Картинка = ПараметрыФункции["Picture"];
-
- КартинкаПуть = ПолучитьИмяВременногоФайла("png");
- КопироватьФайл(Картинка, КартинкаПуть);
-
- КартинкаДД = Новый ДвоичныеДанные(КартинкаПуть);
-
- // В чат, по URL
- Результат = OPI_Telegram.ОтправитьКартинку(Токен, IDЧата, Текст, Картинка);
-
- Обработать(Результат, "Telegram", "ОтправитьКартинку", , ПараметрыФункции, Текст); // SKIP
-
- // В канал, на диске
- Результат = OPI_Telegram.ОтправитьКартинку(Токен, IDКанала, Текст, КартинкаПуть);
-
- Обработать(Результат, "Telegram", "ОтправитьКартинку", "Путь", ПараметрыФункции, Текст); // SKIP
-
- // В канал, из двоичных данных
- Результат = OPI_Telegram.ОтправитьКартинку(Токен, IDКанала, Текст, КартинкаДД);
-
- // END
-
- Обработать(Результат, "Telegram", "ОтправитьКартинку", "Двоичные", ПараметрыФункции, Текст);
-
- МассивКнопок = Новый Массив;
- МассивКнопок.Добавить("Кнопка1");
- МассивКнопок.Добавить("Кнопка2");
- МассивКнопок.Добавить("Кнопка3");
-
- Клавиатура = OPI_Telegram.СформироватьКлавиатуруПоМассивуКнопок(МассивКнопок, Истина);
- Результат = OPI_Telegram.ОтправитьКартинку(Токен, IDЧата, Текст, Картинка, Клавиатура);
-
- Обработать(Результат, "Telegram", "ОтправитьКартинку", "Клавиатура", ПараметрыФункции, Текст);
-
- Клавиатура = OPI_Инструменты.JsonВСтруктуру(Клавиатура);
- Результат = OPI_Telegram.ОтправитьКартинку(Токен, IDКанала, Текст, Картинка, Клавиатура);
-
- Обработать(Результат, "Telegram", "ОтправитьКартинку", "Клавиатура коллекция", ПараметрыФункции, Текст);
-
- OPI_Инструменты.УдалитьФайлВПопытке(КартинкаПуть, "Не удалось удалить временный файл после теста!");
-
- OPI_Инструменты.Пауза(5);
-
-КонецПроцедуры
-
-Процедура Telegram_ОтправитьВидео(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Telegram_Token"];
- IDЧата = ПараметрыФункции["Telegram_ChatID"];
- IDКанала = ПараметрыФункции["Telegram_ChannelID"];
- Текст = ПараметрыФункции["String"];
- Видео = ПараметрыФункции["Video"];
-
- ВидеоПуть = ПолучитьИмяВременногоФайла("mp4");
- КопироватьФайл(Видео, ВидеоПуть);
-
- ВидеоДД = Новый ДвоичныеДанные(ВидеоПуть);
-
- // В чат, по URL
- Результат = OPI_Telegram.ОтправитьВидео(Токен, IDЧата, Текст, Видео);
-
- Обработать(Результат, "Telegram", "ОтправитьВидео", , ПараметрыФункции, Текст); // SKIP
-
- // В канал, на диске
- Результат = OPI_Telegram.ОтправитьВидео(Токен, IDКанала, Текст, ВидеоПуть);
-
- Обработать(Результат, "Telegram", "ОтправитьВидео", "Путь", ПараметрыФункции, Текст); // SKIP
-
- // В канал, из двоичных данных
- Результат = OPI_Telegram.ОтправитьВидео(Токен, IDКанала, Текст, ВидеоДД);
-
- // END
-
- OPI_Инструменты.УдалитьФайлВПопытке(ВидеоПуть, "Не удалось удалить временный файл после теста!");
- Обработать(Результат, "Telegram", "ОтправитьВидео", "Двоичные", ПараметрыФункции, Текст);
-
- OPI_Инструменты.Пауза(5);
-
-КонецПроцедуры
-
-Процедура Telegram_ОтправитьАудио(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Telegram_Token"];
- IDЧата = ПараметрыФункции["Telegram_ChatID"];
- IDКанала = ПараметрыФункции["Telegram_ChannelID"];
- Текст = ПараметрыФункции["String"];
- Аудио = ПараметрыФункции["Audio"];
-
- АудиоПуть = ПолучитьИмяВременногоФайла("mp3");
- КопироватьФайл(Аудио, АудиоПуть);
-
- АудиоДД = Новый ДвоичныеДанные(АудиоПуть);
-
- // В чат, по URL
- Результат = OPI_Telegram.ОтправитьАудио(Токен, IDЧата, Текст, Аудио);
-
- Обработать(Результат, "Telegram", "ОтправитьАудио", , ПараметрыФункции, Текст); // SKIP
-
- // В канал, на диске
- Результат = OPI_Telegram.ОтправитьАудио(Токен, IDКанала, Текст, АудиоПуть);
-
- Обработать(Результат, "Telegram", "ОтправитьАудио", "Путь", ПараметрыФункции, Текст); // SKIP
-
- // В канал, из двоичных данных
- Результат = OPI_Telegram.ОтправитьАудио(Токен, IDКанала, Текст, АудиоДД);
-
- // END
-
- OPI_Инструменты.УдалитьФайлВПопытке(АудиоПуть, "Не удалось удалить временный файл после теста!");
- Обработать(Результат, "Telegram", "ОтправитьАудио", "Двоичные", ПараметрыФункции, Текст);
-
- OPI_Инструменты.Пауза(5);
-
-КонецПроцедуры
-
-Процедура Telegram_ОтправитьДокумент(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Telegram_Token"];
- IDЧата = ПараметрыФункции["Telegram_ChatID"];
- IDКанала = ПараметрыФункции["Telegram_ChannelID"];
- Текст = ПараметрыФункции["String"];
- Документ = ПараметрыФункции["Document"];
-
- ДокументПуть = ПолучитьИмяВременногоФайла("docx");
- КопироватьФайл(Документ, ДокументПуть);
-
- ДокументДД = Новый ДвоичныеДанные(ДокументПуть);
-
- // В чат, по URL
- Результат = OPI_Telegram.ОтправитьДокумент(Токен, IDЧата, Текст, Документ);
-
- Обработать(Результат, "Telegram", "ОтправитьДокумент", , ПараметрыФункции, Текст); // SKIP
-
- // В чат, по URL, с указанием имени файла
- Результат = OPI_Telegram.ОтправитьДокумент(Токен, IDЧата, Текст, Документ, , , "customname.docx");
-
- Обработать(Результат, "Telegram", "ОтправитьДокумент", "С именем", ПараметрыФункции, Текст); // SKIP
-
- // В канал, на диске
- Результат = OPI_Telegram.ОтправитьДокумент(Токен, IDКанала, Текст, ДокументПуть);
-
- Обработать(Результат, "Telegram", "ОтправитьДокумент", "Путь", ПараметрыФункции, Текст); // SKIP
-
- // В канал, из двоичных данных, с указанием имени файла
- Результат = OPI_Telegram.ОтправитьДокумент(Токен, IDКанала, Текст, ДокументДД, , , "customname.docx");
-
- // END
-
- OPI_Инструменты.УдалитьФайлВПопытке(ДокументПуть, "Не удалось удалить временный файл после теста!");
- Обработать(Результат, "Telegram", "ОтправитьДокумент", "Двоичные", ПараметрыФункции, Текст);
-
- OPI_Инструменты.Пауза(5);
-
-КонецПроцедуры
-
-Процедура Telegram_ОтправитьГифку(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Telegram_Token"];
- IDЧата = ПараметрыФункции["Telegram_ChatID"];
- IDКанала = ПараметрыФункции["Telegram_ChannelID"];
- Текст = ПараметрыФункции["String"];
- Гифка = ПараметрыФункции["GIF"];
-
- ГифкаПуть = ПолучитьИмяВременногоФайла("gif");
- КопироватьФайл(Гифка, ГифкаПуть);
-
- ГифкаДД = Новый ДвоичныеДанные(ГифкаПуть);
-
- // В чат, по URL
- Результат = OPI_Telegram.ОтправитьГифку(Токен, IDЧата, Текст, Гифка);
-
- Обработать(Результат, "Telegram", "ОтправитьГифку", , ПараметрыФункции, Текст); // SKIP
-
- // В канал, на диске
- Результат = OPI_Telegram.ОтправитьГифку(Токен, IDКанала, Текст, ГифкаПуть);
-
- Обработать(Результат, "Telegram", "ОтправитьГифку", "Путь", ПараметрыФункции, Текст); // SKIP
-
- // В канал, из двоичных данных
- Результат = OPI_Telegram.ОтправитьГифку(Токен, IDКанала, Текст, ГифкаДД);
-
- // END
-
- OPI_Инструменты.УдалитьФайлВПопытке(ГифкаПуть, "Не удалось удалить временный файл после теста!");
- Обработать(Результат, "Telegram", "ОтправитьГифку", "Двоичные", ПараметрыФункции, Текст);
-
- OPI_Инструменты.Пауза(5);
-
-КонецПроцедуры
-
-Процедура Telegram_ОтправитьМедиагруппу(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Telegram_Token"];
- IDЧата = ПараметрыФункции["Telegram_ChatID"];
- Текст = ПараметрыФункции["String"];
- Картинка = ПараметрыФункции["Picture"];
- Видео = ПараметрыФункции["Video"];
-
- КартинкаПуть = ПолучитьИмяВременногоФайла("png");
- КопироватьФайл(Картинка, КартинкаПуть);
-
- ВидеоПуть = ПолучитьИмяВременногоФайла("mp4");
- КопироватьФайл(Видео, ВидеоПуть);
-
- ВидеоДД = Новый ДвоичныеДанные(ВидеоПуть);
-
- Медиагруппа = Новый Соответствие;
- Медиагруппа.Вставить(КартинкаПуть, "photo");
- Медиагруппа.Вставить(ВидеоДД , "video");
-
- Результат = OPI_Telegram.ОтправитьМедиагруппу(Токен, IDЧата, Текст, Медиагруппа);
-
- // END
-
- Обработать(Результат, "Telegram", "ОтправитьМедиагруппу");
-
- ДокументURL = ПараметрыФункции["Document"];
- ДокументПуть = ПолучитьИмяВременногоФайла("docx");
- IDКанала = ПараметрыФункции["Telegram_ChannelID"];
-
- КопироватьФайл(ДокументURL, ДокументПуть);
-
- МедиаГруппа = Новый Соответствие;
- Медиагруппа.Вставить(ДокументURL , "document");
- Медиагруппа.Вставить(ДокументПуть, "document");
-
- Результат = OPI_Telegram.ОтправитьМедиагруппу(Токен, IDКанала, Текст, Медиагруппа);
-
- OPI_Инструменты.УдалитьФайлВПопытке(ВидеоПуть , "Не удалось удалить временный файл после теста!");
- OPI_Инструменты.УдалитьФайлВПопытке(КартинкаПуть, "Не удалось удалить временный файл после теста!");
- OPI_Инструменты.УдалитьФайлВПопытке(ДокументПуть, "Не удалось удалить временный файл после теста!");
-
- Обработать(Результат, "Telegram", "ОтправитьМедиагруппу", "Документы");
-
- OPI_Инструменты.Пауза(5);
-
-КонецПроцедуры
-
-Процедура Telegram_ОтправитьМестоположение(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Telegram_Token"];
- IDЧата = ПараметрыФункции["Telegram_ChatID"];
- IDКанала = ПараметрыФункции["Telegram_ChannelID"];
- Ширина = ПараметрыФункции["Lat"];
- Долгота = ПараметрыФункции["Long"];
-
- Результат = OPI_Telegram.ОтправитьМестоположение(Токен, IDЧата, Ширина, Долгота);
-
- Обработать(Результат, "Telegram", "ОтправитьМестоположение"); // SKIP
-
- Результат = OPI_Telegram.ОтправитьМестоположение(Токен, IDКанала, Ширина, Долгота);
-
- // END
-
- Обработать(Результат, "Telegram", "ОтправитьМестоположение", "Канал");
-
- OPI_Инструменты.Пауза(5);
-
-КонецПроцедуры
-
-Процедура Telegram_ОтправитьКонтакт(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Telegram_Token"];
- IDЧата = ПараметрыФункции["Telegram_ChatID"];
- IDКанала = ПараметрыФункции["Telegram_ChannelID"];
- Имя = ПараметрыФункции["Name"];
- Фамилия = ПараметрыФункции["Surname"];
- Телефон = ПараметрыФункции["Phone"];
-
- Результат = OPI_Telegram.ОтправитьКонтакт(Токен, IDЧата, Имя, Фамилия, Телефон);
-
- Обработать(Результат, "Telegram", "ОтправитьКонтакт", , Имя); // SKIP
-
- Результат = OPI_Telegram.ОтправитьКонтакт(Токен, IDКанала, Имя, Фамилия, Телефон);
-
- // END
-
- Обработать(Результат, "Telegram", "ОтправитьКонтакт", "Канал", Имя);
-
-КонецПроцедуры
-
-Процедура Telegram_ОтправитьОпрос(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Telegram_Token"];
- IDЧата = ПараметрыФункции["Telegram_ChatID"];
- IDКанала = ПараметрыФункции["Telegram_ChannelID"];
- Вопрос = "Какой ваш любимый цвет?";
-
- МассивОтветов = Новый Массив;
- МассивОтветов.Добавить("Красный");
- МассивОтветов.Добавить("Желтый");
- МассивОтветов.Добавить("Зеленый");
- МассивОтветов.Добавить("Синий");
-
- Результат = OPI_Telegram.ОтправитьОпрос(Токен, IDЧата, Вопрос, МассивОтветов, Ложь);
-
- Обработать(Результат, "Telegram", "ОтправитьОпрос", , Вопрос); // SKIP
-
- Результат = OPI_Telegram.ОтправитьОпрос(Токен, IDКанала, Вопрос, МассивОтветов, Истина);
-
- Обработать(Результат, "Telegram", "ОтправитьОпрос", "Канал", Вопрос); // SKIP
-
- // END
-
- СтрочныйМассив = "['Красный', 'Желтый','Зеленый' ,'Синий']";
-
- Результат = OPI_Telegram.ОтправитьОпрос(Токен, IDКанала, Вопрос, СтрочныйМассив, Истина);
-
- Обработать(Результат, "Telegram", "ОтправитьОпрос", "Вопросы строкой", Вопрос);
-
- OPI_Инструменты.Пауза(5);
-
-КонецПроцедуры
-
-Процедура Telegram_СкачатьФайл(ПараметрыФункции)
-
- IDФайла = ПараметрыФункции["Telegram_FileID"];
- Токен = ПараметрыФункции["Telegram_Token"];
-
- Результат = OPI_Telegram.СкачатьФайл(Токен, IDФайла);
-
- // END
-
- Обработать(Результат, "Telegram", "СкачатьФайл");
-
-КонецПроцедуры
-
-Процедура Telegram_ПереслатьСообщение(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Telegram_Token"];
- IDЧата = ПараметрыФункции["Telegram_ChatID"];
- IDКанала = ПараметрыФункции["Telegram_ChannelID"];
- IDСообщения = ПараметрыФункции["Telegram_ChannelMessageID"];
-
- Результат = OPI_Telegram.ПереслатьСообщение(Токен, IDСообщения, IDКанала, IDЧата);
-
- // END
-
- Обработать(Результат, "Telegram", "ПереслатьСообщение", , IDСообщения);
-
-КонецПроцедуры
-
-Процедура Telegram_Бан(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Telegram_Token"];
- IDПользователя = ПараметрыФункции["Telegram_ChatID"];
- IDКанала = ПараметрыФункции["Telegram_ChannelID"];
-
- Результат = OPI_Telegram.Бан(Токен, IDКанала, IDПользователя);
-
- // END
-
- Обработать(Результат, "Telegram", "Бан");
-
-КонецПроцедуры
-
-Процедура Telegram_Разбан(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Telegram_Token"];
- IDПользователя = ПараметрыФункции["Telegram_ChatID"];
- IDКанала = ПараметрыФункции["Telegram_ChannelID"];
-
- Результат = OPI_Telegram.Разбан(Токен, IDКанала, IDПользователя);
-
- // END
-
- Обработать(Результат, "Telegram", "Разбан");
-
-КонецПроцедуры
-
-Процедура Telegram_СоздатьСсылкуПриглашение(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Telegram_Token"];
- IDКанала = ПараметрыФункции["Telegram_ChannelID"];
- Сутки = 86400;
- ТекущаяДата = OPI_Инструменты.ПолучитьТекущуюДату();
-
- Заголовок = "Ссылка " + Строка(ТекущаяДата);
- Истечение = ТекущаяДата + Сутки;
- UnixИстечение = OPI_Инструменты.UNIXTime(Истечение);
-
- Результат = OPI_Telegram.СоздатьСсылкуПриглашение(Токен, IDКанала, Заголовок, Истечение, 200);
-
- // END
-
- Обработать(Результат, "Telegram", "СоздатьСсылкуПриглашение", , Заголовок, UnixИстечение);
-
-КонецПроцедуры
-
-Процедура Telegram_ЗакрепитьСообщение(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Telegram_Token"];
- IDКанала = ПараметрыФункции["Telegram_ChannelID"];
- IDСообщения = ПараметрыФункции["Telegram_ChannelMessageID"];
-
- Результат = OPI_Telegram.ЗакрепитьСообщение(Токен, IDКанала, IDСообщения);
-
- // END
-
- Обработать(Результат, "Telegram", "ЗакрепитьСообщение");
-
-КонецПроцедуры
-
-Процедура Telegram_ОткрепитьСообщение(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Telegram_Token"];
- IDКанала = ПараметрыФункции["Telegram_ChannelID"];
- IDСообщения = ПараметрыФункции["Telegram_ChannelMessageID"];
-
- Результат = OPI_Telegram.ОткрепитьСообщение(Токен, IDКанала, IDСообщения);
-
- // END
-
- Обработать(Результат, "Telegram", "ОткрепитьСообщение");
-
-КонецПроцедуры
-
-Процедура Telegram_ПолучитьЧислоУчастников(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Telegram_Token"];
- IDКанала = ПараметрыФункции["Telegram_ChannelID"];
-
- Результат = OPI_Telegram.ПолучитьЧислоУчастников(Токен, IDКанала);
-
- // END
-
- Обработать(Результат, "Telegram", "ПолучитьЧислоУчастников");
-
-КонецПроцедуры
-
-Процедура Telegram_ПолучитьСписокИконокАватаров(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Telegram_Token"];
- Результат = OPI_Telegram.ПолучитьСписокИконокАватаров(Токен);
-
- // END
-
- Обработать(Результат, "Telegram", "ПолучитьСписокИконокАватаров");
-
-КонецПроцедуры
-
-Процедура Telegram_СоздатьТемуФорума(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Telegram_Token"];
- Чат = ПараметрыФункции["Telegram_ForumID"];
- Иконка = "5357419403325481346";
- Имя = "Тестовая тема " + Строка(Новый УникальныйИдентификатор);
-
- Результат = OPI_Telegram.СоздатьТемуФорума(Токен, Чат, Имя, Иконка);
-
- // END
-
- Обработать(Результат, "Telegram", "СоздатьТемуФорума", , ПараметрыФункции, Имя, Иконка);
-
- ЧатТема = Чат + "*" + ПараметрыФункции["Telegram_TopicID"];
- Текст = ПараметрыФункции["String"];
-
- Результат = OPI_Telegram.ОтправитьТекстовоеСообщение(Токен, ЧатТема, Текст);
-
- Обработать(Результат, "Telegram", "СоздатьТемуФорума", "Сообщение", ПараметрыФункции, Текст);
-
-КонецПроцедуры
-
-Процедура Telegram_ИзменитьТемуФорума(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Telegram_Token"];
- Чат = ПараметрыФункции["Telegram_ForumID"];
- Тема = ПараметрыФункции["Telegram_TopicID"];
- НовоеИмя = "Новый тестовый заголовок";
- НовяИконка = "5310132165583840589";
-
- Результат = OPI_Telegram.ИзменитьТемуФорума(Токен, Чат, Тема, НовоеИмя, НовяИконка);
-
- // END
-
- Обработать(Результат, "Telegram", "ИзменитьТемуФорума");
-
-КонецПроцедуры
-
-Процедура Telegram_ЗакрытьТемуФорума(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Telegram_Token"];
- Чат = ПараметрыФункции["Telegram_ForumID"];
- Тема = ПараметрыФункции["Telegram_TopicID"];
-
- OPI_Telegram.ОткрытьТемуФорума(Токен, Чат); // SKIP
-
- Результат = OPI_Telegram.ЗакрытьТемуФорума(Токен, Чат); // Закрывает главную тему
-
- Обработать(Результат, "Telegram", "ЗакрытьТемуФорума", "Главная"); // SKIP
-
- Результат = OPI_Telegram.ЗакрытьТемуФорума(Токен, Чат, Тема);
-
- // END
-
- Обработать(Результат, "Telegram", "ЗакрытьТемуФорума");
-
-КонецПроцедуры
-
-Процедура Telegram_ОткрытьТемуФорума(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Telegram_Token"];
- Чат = ПараметрыФункции["Telegram_ForumID"];
- Тема = ПараметрыФункции["Telegram_TopicID"];
-
- Результат = OPI_Telegram.ОткрытьТемуФорума(Токен, Чат); // Открывает главную тему
-
- Обработать(Результат, "Telegram", "ОткрытьТемуФорума", "Главная"); // SKIP
-
- Результат = OPI_Telegram.ОткрытьТемуФорума(Токен, Чат, Тема);
-
- // END
-
- Обработать(Результат, "Telegram", "ОткрытьТемуФорума");
-
-КонецПроцедуры
-
-Процедура Telegram_УдалитьТемуФорума(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Telegram_Token"];
- Чат = ПараметрыФункции["Telegram_ForumID"];
- Тема = ПараметрыФункции["Telegram_TopicID"];
-
- Результат = OPI_Telegram.УдалитьТемуФорума(Токен, Чат, Тема);
-
- // END
-
- Обработать(Результат, "Telegram", "УдалитьТемуФорума");
-
-КонецПроцедуры
-
-Процедура Telegram_ОчиститьСписокЗакрепленныхСообщенийТемы(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Telegram_Token"];
- Чат = ПараметрыФункции["Telegram_ForumID"];
- Тема = ПараметрыФункции["Telegram_TopicID"];
-
- Результат = OPI_Telegram.ОчиститьСписокЗакрепленныхСообщенийТемы(Токен, Чат);
-
- Обработать(Результат, "Telegram", "ОчиститьСписокЗакрепленныхСообщенийТемы", "Главная"); // SKIP
-
- // END
-
- Обработать(Результат, "Telegram", "ОчиститьСписокЗакрепленныхСообщенийТемы");
-
-КонецПроцедуры
-
-Процедура Telegram_СкрытьГлавнуюТемуФорума(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Telegram_Token"];
- Чат = ПараметрыФункции["Telegram_ForumID"];
-
- Результат = OPI_Telegram.СкрытьГлавнуюТемуФорума(Токен, Чат);
-
- // END
-
- Обработать(Результат, "Telegram", "СкрытьГлавнуюТемуФорума");
-
-КонецПроцедуры
-
-Процедура Telegram_ПоказатьГлавнуюТемуФорума(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Telegram_Token"];
- Чат = ПараметрыФункции["Telegram_ForumID"];
-
- Результат = OPI_Telegram.ПоказатьГлавнуюТемуФорума(Токен, Чат);
-
- // END
-
- Обработать(Результат, "Telegram", "ПоказатьГлавнуюТемуФорума");
-
-КонецПроцедуры
-
-Процедура Telegram_ИзменитьИмяГлавнойТемыФорума(ПараметрыФункции)
-
- Заголовок = "Новое имя главной темы " + Строка(Новый УникальныйИдентификатор);
- Токен = ПараметрыФункции["Telegram_Token"];
- Чат = ПараметрыФункции["Telegram_ForumID"];
-
- Результат = OPI_Telegram.ИзменитьИмяГлавнойТемыФорума(Токен, Чат, Заголовок);
-
- // END
-
- Обработать(Результат, "Telegram", "ИзменитьИмяГлавнойТемыФорума");
-
-КонецПроцедуры
-
-Процедура Telegram_УдалитьСообщение(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Telegram_Token"];
- IDЧата = ПараметрыФункции["Telegram_ChannelID"];
- IDСообщения = ПараметрыФункции["Telegram_ChannelMessageID"];
-
- Результат = OPI_Telegram.УдалитьСообщение(Токен, IDЧата, IDСообщения);
-
- // END
-
- Обработать(Результат, "Telegram", "УдалитьСообщение");
-
-КонецПроцедуры
-
-Процедура Telegram_ЗаменитьТекстСообщения(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Telegram_Token"];
- IDЧата = ПараметрыФункции["Telegram_ChannelID"];
- IDСообщения = ПараметрыФункции["Telegram_ChannelMessageID"];
- Текст = "Новый текст сообщения";
-
- Результат = OPI_Telegram.ЗаменитьТекстСообщения(Токен, IDЧата, IDСообщения, Текст);
-
- // END
-
- Обработать(Результат, "Telegram", "ЗаменитьТекстСообщения", , Текст);
-
- Результат = OPI_Telegram.ЗаменитьТекстСообщения(Токен, IDЧата, IDСообщения, "Полужирный текст", "HTML");
-
- Обработать(Результат, "Telegram", "ЗаменитьТекстСообщения", "Разметка", "Полужирный текст");
-
-КонецПроцедуры
-
-Процедура Telegram_ЗаменитьКлавиатуруСообщения(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Telegram_Token"];
- IDЧата = ПараметрыФункции["Telegram_ChatID"];
- IDСообщения = ПараметрыФункции["Telegram_MessageID"];
-
- МассивКнопок = Новый Массив;
- МассивКнопок.Добавить("Новая кнопка 1");
- МассивКнопок.Добавить("Новая кнопка 2");
- МассивКнопок.Добавить("Новая кнопка 3");
-
- Клавиатура = OPI_Telegram.СформироватьКлавиатуруПоМассивуКнопок(МассивКнопок, Истина, Ложь);
-
- Результат = OPI_Telegram.ЗаменитьКлавиатуруСообщения(Токен, IDЧата, IDСообщения, Клавиатура);
-
- // END
-
- Обработать(Результат, "Telegram", "ЗаменитьКлавиатуруСообщения", , Клавиатура);
-
-КонецПроцедуры
-
-Процедура Telegram_ЗаменитьОписаниеСообщения(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Telegram_Token"];
- IDЧата = ПараметрыФункции["Telegram_ChatID"];
- IDСообщения = ПараметрыФункции["Telegram_PicMessageID"];
-
- Описание = "Новое описание картинки";
- Результат = OPI_Telegram.ЗаменитьОписаниеСообщения(Токен, IDЧата, IDСообщения, Описание);
-
- // END
-
- Обработать(Результат, "Telegram", "ЗаменитьОписаниеСообщения", , Описание);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область VK
-
-Процедура VK_СоздатьСсылкуПолученияТокена(ПараметрыФункции)
-
- Приложение = ПараметрыФункции["VK_AppID"];
- Результат = OPI_VK.СоздатьСсылкуПолученияТокена(Приложение);
-
- // END
-
- Обработать(Результат, "VK", "СоздатьСсылкуПолученияТокена");
-
-КонецПроцедуры
-
-Процедура VK_СоздатьПост(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
- Текст = "Пост из автотеста";
- URL = "https://github.com/Bayselonarrend/OpenIntegrations";
-
- Картинка = ПараметрыФункции["Picture"]; // URL, Путь или Двоичные данные
- Картинка2 = ПараметрыФункции["Picture2"]; // URL, Путь или Двоичные данные
-
- ИВФ = ПолучитьИмяВременногоФайла("png");
- КопироватьФайл(Картинка2, ИВФ);
-
- МассивКартинок = Новый Массив;
- МассивКартинок.Добавить(Картинка);
- МассивКартинок.Добавить(ИВФ);
-
- Результат = OPI_VK.СоздатьПост(Текст, МассивКартинок, Истина, URL, Параметры);
-
- Обработать(Результат, "VK", "СоздатьПост", , Параметры); // SKIP
-
- ИДПоста = Результат["response"]["post_id"]; // SKIP
- OPI_VK.УдалитьПост(ИДПоста, Параметры); // SKIP
-
- Результат = OPI_VK.СоздатьПост(Текст, Картинка, Ложь, , Параметры);
-
- // END
-
- Обработать(Результат, "VK", "СоздатьПост", "Картинка", Параметры);
-
- ИДПоста = Результат["response"]["post_id"];
- OPI_VK.УдалитьПост(ИДПоста, Параметры);
-
- Результат = OPI_VK.СоздатьПост(Текст, ИВФ, Истина, URL, Параметры);
-
- Обработать(Результат, "VK", "СоздатьПост", "Путь", ПараметрыФункции);
-
- OPI_Инструменты.УдалитьФайлВПопытке(ИВФ, "Не удалось удалить временный файл после теста!");
-
-КонецПроцедуры
-
-Процедура VK_УдалитьПост(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
- ИДПоста = ПараметрыФункции["VK_PostID"];
-
- Результат = OPI_VK.УдалитьПост(ИДПоста, Параметры);
-
- // END
-
- Обработать(Результат, "VK", "УдалитьПост");
-
-КонецПроцедуры
-
-Процедура VK_СоздатьСоставнойПост(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
- Текст = "Пост из автотеста";
- URL = "https://github.com/Bayselonarrend/OpenIntegrations";
-
- Картинка = ПараметрыФункции["Picture"]; // URL, Путь или Двоичные данные
- Видео = ПараметрыФункции["Video"]; // URL, Путь или Двоичные данные
-
- ИВФ = ПолучитьИмяВременногоФайла("png");
- КопироватьФайл(Картинка, ИВФ);
-
- ЗагрузкаКартинки = OPI_VK.ЗагрузитьФотоНаСервер(ИВФ, Параметры)["response"][0];
- ЗагрузкаВидео = OPI_VK.ЗагрузитьВидеоНаСервер(Видео, "Новое видео", , , Параметры);
-
- ВладелецКартинки = OPI_Инструменты.ЧислоВСтроку(ЗагрузкаКартинки["owner_id"]);
- ВладелецВидео = OPI_Инструменты.ЧислоВСтроку(ЗагрузкаВидео["owner_id"]);
-
- IDКартинки = OPI_Инструменты.ЧислоВСтроку(ЗагрузкаКартинки["id"]);
- IDВидео = OPI_Инструменты.ЧислоВСтроку(ЗагрузкаВидео["video_id"]);
-
- МассивВложений = Новый Массив;
- МассивВложений.Добавить("photo" + ВладелецКартинки + "_" + IDКартинки);
- МассивВложений.Добавить("video" + ВладелецВидео + "_" + IDВидео);
-
- Результат = OPI_VK.СоздатьСоставнойПост(Текст, МассивВложений, Ложь, URL, Параметры);
-
- // END
-
- Обработать(Результат, "VK", "СоздатьСоставнойПост");
- OPI_Инструменты.УдалитьФайлВПопытке(ИВФ, "Не удалось удалить временный файл после теста!");
-
-КонецПроцедуры
-
-Процедура VK_СоздатьОпрос(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
- Вопрос = "Какой ваш любимый цвет?";
-
- МассивВариантов = Новый Массив;
- МассивВариантов.Добавить("Красный");
- МассивВариантов.Добавить("Желтый");
- МассивВариантов.Добавить("Зеленый");
-
- Результат = OPI_VK.СоздатьОпрос(Вопрос, МассивВариантов, , "Текст поста", Параметры);
-
- Обработать(Результат, "VK", "СоздатьОпрос", "Текст"); // SKIP
-
- // С картинкой
-
- Картинка = ПараметрыФункции["Picture"]; // URL, Путь к файлу или Двоичные данные
-
- Результат = OPI_VK.СоздатьОпрос(Вопрос, МассивВариантов, Картинка, , Параметры);
-
- // END
-
- Обработать(Результат, "VK", "СоздатьОпрос");
-
- ИДПоста = Результат["response"]["post_id"];
- OPI_VK.УдалитьПост(ИДПоста, Параметры);
-
- OPI_Инструменты.Пауза(5);
-
-КонецПроцедуры
-
-Процедура VK_СоздатьАльбом(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
- Имя = "Альбом из автотеста";
- Описание = "Новый альбом из автотеста";
-
- Результат = OPI_VK.СоздатьАльбом(Имя, Описание, Параметры);
-
- // END
-
- Обработать(Результат, "VK", "СоздатьАльбом", , ПараметрыФункции, Описание);
-
-КонецПроцедуры
-
-Процедура VK_СохранитьКартинкуВАльбом(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
- ОписаниеКартинки = "Картинка автотест";
- ИДАльбома = ПараметрыФункции["VK_AlbumID"];
-
- Картинка = ПараметрыФункции["Picture"]; // URL, Путь к файлу или Двоичные данные
-
- Результат = OPI_VK.СохранитьКартинкуВАльбом(ИДАльбома, Картинка, ОписаниеКартинки, Параметры);
-
- // END
-
- Обработать(Результат, "VK", "СохранитьКартинкуВАльбом", , ПараметрыФункции, ОписаниеКартинки, ИДАльбома);
-
-КонецПроцедуры
-
-Процедура VK_УдалитьКартинку(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
- ИДКартинки = ПараметрыФункции["VK_PictureID"];
-
- Результат = OPI_VK.УдалитьКартинку(ИДКартинки, Параметры);
-
- // END
-
- Обработать(Результат, "VK", "УдалитьКартинку");
-
-КонецПроцедуры
-
-Процедура VK_УдалитьАльбом(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
- ИДАльбома = ПараметрыФункции["VK_AlbumID"];
-
- Результат = OPI_VK.УдалитьАльбом(ИДАльбома, Параметры);
-
- // END
-
- Обработать(Результат, "VK", "УдалитьАльбом");
-
-КонецПроцедуры
-
-Процедура VK_СоздатьИсторию(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
- URL = "https://github.com/Bayselonarrend/OpenIntegrations";
-
- Картинка = ПараметрыФункции["Picture"]; // URL, Путь к файлу или Двоичные данные
- ИВФ = ПолучитьИмяВременногоФайла("png");
- КопироватьФайл(Картинка, ИВФ);
- Картинка = Новый ДвоичныеДанные(ИВФ);
-
- Результат = OPI_VK.СоздатьИсторию(Картинка, URL, Параметры);
-
- Обработать(Результат, "VK", "СоздатьИсторию"); // SKIP
-
- // END
-
- Результат = OPI_VK.СоздатьИсторию(ИВФ, , Параметры);
-
- Обработать(Результат, "VK", "СоздатьИсторию", "Путь");
-
- OPI_Инструменты.УдалитьФайлВПопытке(ИВФ, "Не удалось удалить временный файл после теста!");
-
-КонецПроцедуры
-
-Процедура VK_СоздатьОбсуждение(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
- Название = "Обсуждаем: какой цвет лучше?";
- Сообщение = "Красный, желтый, синий или какой-то другой?";
-
- Результат = OPI_VK.СоздатьОбсуждение(Название, Сообщение, Параметры);
-
- // END
-
- Обработать(Результат, "VK", "СоздатьОбсуждение", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура VK_ЗакрытьОбсуждение(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
- ИДОбсуждения = ПараметрыФункции["VK_ConvID"];
- Результат = OPI_VK.ЗакрытьОбсуждение(ИДОбсуждения, Ложь, Параметры);
-
- // END
-
- Обработать(Результат, "VK", "ЗакрытьОбсуждение");
-
-КонецПроцедуры
-
-Процедура VK_ОткрытьОбсуждение(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
- ИДОбсуждения = ПараметрыФункции["VK_ConvID"];
- Результат = OPI_VK.ОткрытьОбсуждение(ИДОбсуждения, Параметры);
-
- // END
-
- Обработать(Результат, "VK", "ОткрытьОбсуждение");
-
-КонецПроцедуры
-
-Процедура VK_НаписатьВОбсуждение(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
- ИДОбсуждения = ПараметрыФункции["VK_ConvID"];
- Сообщение = "Мне больше нравится желтый";
-
- Результат = OPI_VK.НаписатьВОбсуждение(ИДОбсуждения, Сообщение, Параметры);
-
- // END
-
- Обработать(Результат, "VK", "НаписатьВОбсуждение");
-
-КонецПроцедуры
-
-Процедура VK_ПоставитьЛайк(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
- IDПоста = ПараметрыФункции["VK_PostID"];
-
- Результат = OPI_VK.ПоставитьЛайк(IDПоста, , Параметры);
-
- // END
-
- Обработать(Результат, "VK", "ПоставитьЛайк");
-
-КонецПроцедуры
-
-Процедура VK_СделатьРепост(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
- IDПоста = 2571;
- IDСтены = -218704372;
-
- Результат = OPI_VK.СделатьРепост(IDПоста, IDСтены, , , Параметры);
-
- // END
-
- Обработать(Результат, "VK", "СделатьРепост", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура VK_НаписатьКомментарий(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
- Текст = "Новый комментарий";
- IDПоста = ПараметрыФункции["VK_PostID"];
- IDСтены = Параметры["owner_id"];
-
- Результат = OPI_VK.НаписатьКомментарий(IDПоста, IDСтены, Текст, Параметры);
-
- // END
-
- Обработать(Результат, "VK", "НаписатьКомментарий");
-
-КонецПроцедуры
-
-Процедура VK_ПолучитьСтатистику(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
-
- ТекущаяДата = OPI_Инструменты.ПолучитьТекущуюДату();
- ДатаНачала = НачалоДня(ТекущаяДата);
- ДатаОкончания = КонецДня(ДатаНачала);
-
- Результат = OPI_VK.ПолучитьСтатистику(ДатаНачала, ДатаОкончания, Параметры);
-
- // END
-
- Обработать(Результат, "VK", "ПолучитьСтатистику");
-
-КонецПроцедуры
-
-Процедура VK_ПолучитьСтатистикуПостов(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
-
- МассивПостов = Новый Массив;
- МассивПостов.Добавить(214);
- МассивПостов.Добавить(215);
-
- Результат = OPI_VK.ПолучитьСтатистикуПостов(МассивПостов, Параметры);
-
- // END
-
- Обработать(Результат, "VK", "ПолучитьСтатистикуПостов");
-
-КонецПроцедуры
-
-Процедура VK_СоздатьРекламнуюКампанию(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
-
- IDКабинета = ПараметрыФункции["VK_AdsCabinetID"];
- Наименование = "Новая кампания";
-
- Результат = OPI_VK.СоздатьРекламнуюКампанию(IDКабинета, Наименование, Параметры);
-
- // END
-
- Обработать(Результат, "VK", "СоздатьРекламнуюКампанию", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура VK_СоздатьРекламноеОбъявление(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
-
- НомерКампании = ПараметрыФункции["VK_AdsCampaignID"];
- ДневнойЛимит = 150;
- НомерКатегории = 126;
- IDПоста = ПараметрыФункции["VK_PostID"];
- IDКабинета = ПараметрыФункции["VK_AdsCabinetID"];
-
- Результат = OPI_VK.СоздатьРекламноеОбъявление(НомерКампании
- , ДневнойЛимит
- , НомерКатегории
- , IDПоста
- , IDКабинета
- , Параметры);
-
- // END
-
- Обработать(Результат, "VK", "СоздатьРекламноеОбъявление", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура VK_ПриостановитьРекламноеОбъявление(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
-
- IDКабинета = ПараметрыФункции["VK_AdsCabinetID"];
- IDОбъявления = ПараметрыФункции["VK_AdsPostID"];
-
- Результат = OPI_VK.ПриостановитьРекламноеОбъявление(IDКабинета, IDОбъявления, Параметры);
-
- // END
-
- Обработать(Результат, "VK", "ПриостановитьРекламноеОбъявление");
-
-КонецПроцедуры
-
-Процедура VK_СформироватьКлавиатуру(ПараметрыФункции)
-
- МассивКнопок = Новый Массив;
- МассивКнопок.Добавить("Button 1");
- МассивКнопок.Добавить("Button 2");
-
- Результат = OPI_VK.СформироватьКлавиатуру(МассивКнопок);
-
- // END
-
- Обработать(Результат, "VK", "СформироватьКлавиатуру");
-
-КонецПроцедуры
-
-Процедура VK_НаписатьСообщение(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
-
- Текст = "Сообщение из автотеста";
- IDПользователя = ПараметрыФункции["VK_UserID"];
- Communitytoken = ПараметрыФункции["VK_CommunityToken"];
-
- МассивКнопок = Новый Массив;
- МассивКнопок.Добавить("Button 1");
- МассивКнопок.Добавить("Button 2");
-
- Клавиатура = OPI_VK.СформироватьКлавиатуру(МассивКнопок);
- Результат = OPI_VK.НаписатьСообщение(Текст, IDПользователя, Communitytoken, Клавиатура, Параметры);
-
- // END
-
- Обработать(Результат, "VK", "НаписатьСообщение");
-
-КонецПроцедуры
-
-Процедура VK_ПолучитьСписокКатегорийТоваров(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
-
- Результат = OPI_VK.ПолучитьСписокКатегорийТоваров(Параметры);
-
- // END
-
- Обработать(Результат, "VK", "ПолучитьСписокКатегорийТоваров");
-
-КонецПроцедуры
-
-Процедура VK_СоздатьПодборкуТоваров(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
-
- Название = "Тестовая подборка";
- Картинка = ПараметрыФункции["Picture"];
- Основная = Истина;
- Скрытая = Ложь;
-
- Результат = OPI_VK.СоздатьПодборкуТоваров(Название, Картинка, Основная, Скрытая, Параметры);
-
- // END
-
- Обработать(Результат, "VK", "СоздатьПодборкуТоваров", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура VK_ИзменитьПодборкуТоваров(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
-
- Название = "Измененная подборка";
- Подборка = ПараметрыФункции["VK_MarketAlbumID"];
-
- Результат = OPI_VK.ИзменитьПодборкуТоваров(Название, Подборка, , , , Параметры);
-
- // END
-
- Обработать(Результат, "VK", "ИзменитьПодборкуТоваров");
-
-КонецПроцедуры
-
-Процедура VK_ПолучитьПодборкиПоИД(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
- Подборка = ПараметрыФункции["VK_MarketAlbumID"];
-
- Результат = OPI_VK.ПолучитьПодборкиПоИД(Подборка, Параметры);
-
- // END
-
- Обработать(Результат, "VK", "ПолучитьПодборкиПоИД");
-
-КонецПроцедуры
-
-Процедура VK_ДобавитьТовар(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
-
- Картинка1 = ПараметрыФункции["Picture"]; // URL, Двоичные или Путь к файлу
- Картинка2 = ПараметрыФункции["Picture2"]; // URL, Двоичные или Путь к файлу
- Подборка = ПараметрыФункции["VK_MarketAlbumID"];
-
- МассивКартинок = Новый Массив;
- МассивКартинок.Добавить(Картинка1);
- МассивКартинок.Добавить(Картинка2);
-
- ОписаниеТовара = Новый Соответствие;
- ОписаниеТовара.Вставить("Имя" , "Тестовый товар");
- ОписаниеТовара.Вставить("Описание" , "Описание товара");
- ОписаниеТовара.Вставить("Категория" , "20173");
- ОписаниеТовара.Вставить("Цена" , 1);
- ОписаниеТовара.Вставить("СтараяЦена" , 15);
- ОписаниеТовара.Вставить("ОсновноеФото" , Картинка1);
- ОписаниеТовара.Вставить("URL" , "https://github.com/Bayselonarrend/OpenIntegrations");
- ОписаниеТовара.Вставить("ДополнительныеФото", МассивКартинок);
- ОписаниеТовара.Вставить("ГлавныйВГруппе" , Истина);
- ОписаниеТовара.Вставить("Ширина" , 20);
- ОписаниеТовара.Вставить("Высота" , 30);
- ОписаниеТовара.Вставить("Глубина" , 40);
- ОписаниеТовара.Вставить("Вес" , 100);
- ОписаниеТовара.Вставить("SKU" , "12345");
- ОписаниеТовара.Вставить("ДоступныйОстаток" , "10");
-
- Результат = OPI_VK.ДобавитьТовар(ОписаниеТовара, Подборка, Параметры);
-
- // END
-
- Обработать(Результат, "VK", "ДобавитьТовар", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура VK_ИзменитьТовар(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
-
- Товар = ПараметрыФункции["VK_MarketItemID"];
-
- ОписаниеТовара = Новый Соответствие;
- ОписаниеТовара.Вставить("Имя", "Тестовый товар измененный");
-
- Результат = OPI_VK.ИзменитьТовар(Товар, ОписаниеТовара, , Параметры);
-
- // END
-
- Обработать(Результат, "VK", "ИзменитьТовар");
-
-КонецПроцедуры
-
-Процедура VK_ДобавитьТоварВПодборку(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
-
- Товар = ПараметрыФункции["VK_MarketItemID"];
- Подборка = ПараметрыФункции["VK_MarketAlbumID"];
-
- Результат = OPI_VK.ДобавитьТоварВПодборку(Товар, Подборка, Параметры);
-
- // END
-
- Обработать(Результат, "VK", "ДобавитьТоварВПодборку");
-
-КонецПроцедуры
-
-Процедура VK_УдалитьТоварИзПодборки(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
-
- Товар = ПараметрыФункции["VK_MarketItemID"];
- Подборка = ПараметрыФункции["VK_MarketAlbumID"];
-
- Результат = OPI_VK.УдалитьТоварИзПодборки(Товар, Подборка, Параметры);
-
- // END
-
- Обработать(Результат, "VK", "УдалитьТоварИзПодборки");
-
-КонецПроцедуры
-
-Процедура VK_УдалитьТовар(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
-
- Товар = ПараметрыФункции["VK_MarketItemID"];
-
- Результат = OPI_VK.УдалитьТовар(Товар, Параметры);
-
- // END
-
- Обработать(Результат, "VK", "УдалитьТовар");
-
-КонецПроцедуры
-
-Процедура VK_УдалитьПодборку(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
-
- Подборка = ПараметрыФункции["VK_MarketAlbumID"];
-
- Результат = OPI_VK.УдалитьПодборку(Подборка, Параметры);
-
- // END
-
- Обработать(Результат, "VK", "УдалитьПодборку");
-
-КонецПроцедуры
-
-Процедура VK_СоздатьСвойствоТовара(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
-
- Название = "Цвет";
-
- Результат = OPI_VK.СоздатьСвойствоТовара(Название, Параметры);
-
- // END
-
- Обработать(Результат, "VK", "СоздатьСвойствоТовара", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура VK_ИзменитьСвойствоТовара(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
-
- Название = "Цвет (изм.)";
- Свойство = ПараметрыФункции["VK_PropID"];
-
- Результат = OPI_VK.ИзменитьСвойствоТовара(Название, Свойство, Параметры);
-
- // END
-
- Обработать(Результат, "VK", "ИзменитьСвойствоТовара");
-
-КонецПроцедуры
-
-Процедура VK_ДобавитьВариантСвойстваТовара(ПараметрыФункции)
-
- Счетчик = 1; // SKIP
- Параметры = ПолучитьПараметрыВК();
-
- Свойство = ПараметрыФункции["VK_PropID"];
- МассивВариантов = Новый Массив;
- МассивВариантов.Добавить("Желтый");
- МассивВариантов.Добавить("Синий");
- МассивВариантов.Добавить("Красный");
-
- Для Каждого Значение Из МассивВариантов Цикл
-
- Результат = OPI_VK.ДобавитьВариантСвойстваТовара(Значение, Свойство, Параметры);
-
- Обработать(Результат, "VK", "ДобавитьВариантСвойстваТовара", , ПараметрыФункции, Счетчик); // SKIP
-
- Счетчик = Счетчик + 1; // SKIP
-
- КонецЦикла;
-
- // END
-
-КонецПроцедуры
-
-Процедура VK_ИзменитьВариантСвойстваТовара(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
-
- Свойство = ПараметрыФункции["VK_PropID"];
- Вариант = ПараметрыФункции["VK_PropVarID1"];
- Значение = "Новое имя варианта";
-
- Результат = OPI_VK.ИзменитьВариантСвойстваТовара(Значение, Свойство, Вариант, Параметры);
-
- // END
-
- Обработать(Результат, "VK", "ИзменитьВариантСвойстваТовара");
-
-КонецПроцедуры
-
-Процедура VK_СоздатьТоварСоСвойством(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
-
- Картинка1 = ПараметрыФункции["Picture"];
- Картинка2 = ПараметрыФункции["Picture2"];
- ВариантСвойства1 = ПараметрыФункции["VK_PropVarID1"];
- ВариантСвойства2 = ПараметрыФункции["VK_PropVarID2"];
-
- МассивКартинок = Новый Массив;
- МассивКартинок.Добавить(Картинка1);
- МассивКартинок.Добавить(Картинка2);
-
- Товар = Новый Соответствие;
- Товар.Вставить("Имя" , "Тестовый товар (со свойством)");
- Товар.Вставить("Описание" , "Описание товара");
- Товар.Вставить("Категория" , "20173");
- Товар.Вставить("Цена" , 1);
- Товар.Вставить("СтараяЦена" , 15);
- Товар.Вставить("ОсновноеФото" , Картинка1);
- Товар.Вставить("URL" , "https://github.com/Bayselonarrend/OpenIntegrations");
- Товар.Вставить("ДополнительныеФото", МассивКартинок);
- Товар.Вставить("ГлавныйВГруппе" , Истина);
- Товар.Вставить("Ширина" , 20);
- Товар.Вставить("Высота" , 30);
- Товар.Вставить("Глубина" , 40);
- Товар.Вставить("Вес" , 100);
- Товар.Вставить("SKU" , 12345);
- Товар.Вставить("ДоступныйОстаток" , "10");
- Товар.Вставить("ЗначенияСвойств" , ВариантСвойства1);
-
- Результат = OPI_VK.ДобавитьТовар(Товар, , Параметры);
-
- // END
-
- Обработать(Результат, "VK", "СоздатьТоварСоСвойством", "Первый", ПараметрыФункции, 2);
-
- Товар.Вставить("Имя" , "Тестовый товар (другой)");
- Товар.Вставить("ЗначенияСвойств", ВариантСвойства2);
-
- Результат = OPI_VK.ДобавитьТовар(Товар, , Параметры);
-
- Обработать(Результат, "VK", "СоздатьТоварСоСвойством", "Второй", ПараметрыФункции, 3);
-
- OPI_Инструменты.Пауза(5);
-
-КонецПроцедуры
-
-Процедура VK_ПолучитьТоварыПоИД(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
-
- Товар1 = ПараметрыФункции["VK_MarketItemID2"];
- Товар2 = ПараметрыФункции["VK_MarketItemID3"];
-
- МассивТоваров = Новый Массив;
- МассивТоваров.Добавить(Товар1);
- МассивТоваров.Добавить(Товар2);
-
- Результат = OPI_VK.ПолучитьТоварыПоИД(МассивТоваров, Параметры);
-
- // END
-
- Обработать(Результат, "VK", "ПолучитьТоварыПоИД");
-
-КонецПроцедуры
-
-Процедура VK_СгруппироватьТовары(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
-
- Товар1 = ПараметрыФункции["VK_MarketItemID2"];
- Товар2 = ПараметрыФункции["VK_MarketItemID3"];
-
- МассивТоваров = Новый Массив;
- МассивТоваров.Добавить(Товар1);
- МассивТоваров.Добавить(Товар2);
-
- Результат = OPI_VK.СгруппироватьТовары(МассивТоваров, , Параметры);
-
- // END
-
- Обработать(Результат, "VK", "СгруппироватьТовары");
-
-КонецПроцедуры
-
-Процедура VK_УдалитьВариантСвойстваТовара(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
-
- Вариант = ПараметрыФункции["VK_PropVarID1"];
-
- Результат = OPI_VK.УдалитьВариантСвойстваТовара(Вариант, Параметры);
-
- // END
-
- Обработать(Результат, "VK", "УдалитьВариантСвойстваТовара");
-
-КонецПроцедуры
-
-Процедура VK_УдалитьСвойствоТовара(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
-
- Свойство = ПараметрыФункции["VK_PropID"];
-
- Результат = OPI_VK.УдалитьСвойствоТовара(Свойство, Параметры);
-
- // END
-
- Обработать(Результат, "VK", "УдалитьСвойствоТовара");
-
-КонецПроцедуры
-
-Процедура VK_ПолучитьСписокТоваров(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
- Результат = OPI_VK.ПолучитьСписокТоваров( , Параметры);
-
- // END
-
- Обработать(Результат, "VK", "ПолучитьСписокТоваров");
-
-КонецПроцедуры
-
-Процедура VK_ПолучитьСписокПодборок(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
- Результат = OPI_VK.ПолучитьСписокПодборок(Параметры);
-
- // END
-
- Обработать(Результат, "VK", "ПолучитьСписокПодборок");
-
-КонецПроцедуры
-
-Процедура VK_ПолучитьСписокСвойств(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
- Результат = OPI_VK.ПолучитьСписокСвойств(Параметры);
-
- // END
-
- Обработать(Результат, "VK", "ПолучитьСписокСвойств");
-
-КонецПроцедуры
-
-Процедура VK_ПолучитьСписокЗаказов(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
- Результат = OPI_VK.ПолучитьСписокЗаказов(Параметры);
-
- // END
-
- Обработать(Результат, "VK", "ПолучитьСписокЗаказов");
-
-КонецПроцедуры
-
-Процедура VK_ЗагрузитьВидеоНаСервер(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
-
- Видео = ПараметрыФункции["Video"]; // URL, Двоичные данные или Путь к файлу
- Наименование = "Новое видео";
- Описание = "Описание видео";
-
- Результат = OPI_VK.ЗагрузитьВидеоНаСервер(Видео, Наименование, Описание, , Параметры);
-
- // END
-
- Обработать(Результат, "VK", "ЗагрузитьВидеоНаСервер");
-
-КонецПроцедуры
-
-Процедура VK_ЗагрузитьФотоНаСервер(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
-
- Картинка = ПараметрыФункции["Picture"]; // URL, Двоичные данные или Путь к файлу
- Вид = "Пост";
-
- Результат = OPI_VK.ЗагрузитьФотоНаСервер(Картинка, Параметры, Вид);
-
- // END
-
- Обработать(Результат, "VK", "ЗагрузитьФотоНаСервер");
-
-КонецПроцедуры
-
-Процедура VK_СократитьСсылку(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
-
- Результат = OPI_VK.СократитьСсылку("https://github.com/Bayselonarrend/OpenIntegrations", Параметры);
-
- // END
-
- Обработать(Результат, "VK", "СократитьСсылку");
-
-КонецПроцедуры
-
-Процедура VK_ПолучитьСписокРекламныхКатегорий(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
-
- Результат = OPI_VK.ПолучитьСписокРекламныхКатегорий(Параметры);
-
- // END
-
- Обработать(Результат, "VK", "ПолучитьСписокРекламныхКатегорий");
-
-КонецПроцедуры
-
-Процедура VK_ПолучитьОписаниеТовара(ПараметрыФункции)
-
- Пустая = Ложь;
- Результат = OPI_VK.ПолучитьОписаниеТовара(Пустая);
-
- // END
-
- Обработать(Результат, "VK", "ПолучитьОписаниеТовара");
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область YandexDisk
-
-Процедура YandexDisk_ПолучитьИнформациюОДиске(ПараметрыФункции)
-
- Токен = ПараметрыФункции["YandexDisk_Token"];
- Результат = OPI_YandexDisk.ПолучитьИнформациюОДиске(Токен);
-
- // END
-
- Обработать(Результат, "YandexDisk", "ПолучитьИнформациюОДиске");
-
-КонецПроцедуры
-
-Процедура YandexDisk_СоздатьПапку(ПараметрыФункции)
-
- Токен = ПараметрыФункции["YandexDisk_Token"];
- Путь = "/" + Строка(Новый УникальныйИдентификатор);
-
- Результат = OPI_YandexDisk.СоздатьПапку(Токен, Путь);
-
- // END
-
- Обработать(Результат, "YandexDisk", "СоздатьПапку", , Токен, Путь);
-
- OPI_YandexDisk.УдалитьОбъект(Токен, Путь, Ложь);
-
-КонецПроцедуры
-
-Процедура YandexDisk_ЗагрузитьФайлПоURL(ПараметрыФункции)
-
- Токен = ПараметрыФункции["YandexDisk_Token"];
- Адрес = ПараметрыФункции["Picture"];
- Путь = "/" + Строка(Новый УникальныйИдентификатор) + ".png";
-
- Результат = OPI_YandexDisk.ЗагрузитьФайлПоURL(Токен, Путь, Адрес);
-
- // END
-
- Обработать(Результат, "YandexDisk", "ЗагрузитьФайлПоURL", , ПараметрыФункции, Путь);
-
-КонецПроцедуры
-
-Процедура YandexDisk_ПолучитьОбъект(ПараметрыФункции)
-
- Токен = ПараметрыФункции["YandexDisk_Token"];
- Путь = ПараметрыФункции["YandexDisk_FileByURLPath"];
-
- Результат = OPI_YandexDisk.ПолучитьОбъект(Токен, Путь);
-
- // END
-
- Обработать(Результат, "YandexDisk", "ПолучитьОбъект", , Путь);
-
-КонецПроцедуры
-
-Процедура YandexDisk_УдалитьОбъект(ПараметрыФункции)
-
- Токен = ПараметрыФункции["YandexDisk_Token"];
- Путь = ПараметрыФункции["YandexDisk_FileByURLPath"];
-
- Результат = OPI_YandexDisk.УдалитьОбъект(Токен, Путь, Ложь);
-
- // END
-
- Обработать(Результат, "YandexDisk", "УдалитьОбъект");
-
-КонецПроцедуры
-
-Процедура YandexDisk_ЗагрузитьФайл(ПараметрыФункции)
-
- Путь1 = "/" + Строка(Новый УникальныйИдентификатор) + ".png";
- Путь2 = "/" + Строка(Новый УникальныйИдентификатор) + ".png";
-
- Токен = ПараметрыФункции["YandexDisk_Token"];
- Картинка = ПараметрыФункции["Picture"]; // URL
-
- ИВФ = ПолучитьИмяВременногоФайла("png"); // Путь
- КопироватьФайл(Картинка, ИВФ);
-
- Результат = OPI_YandexDisk.ЗагрузитьФайл(Токен, Путь1, Картинка, Истина);
-
- Обработать(Результат, "YandexDisk", "ЗагрузитьФайл", "URL"); // SKIP
-
- OPI_YandexDisk.УдалитьОбъект(Токен, Путь1, Ложь); // SKIP
-
- Результат = OPI_YandexDisk.ЗагрузитьФайл(Токен, Путь2, ИВФ, Истина);
-
- // END
-
- OPI_Инструменты.УдалитьФайлВПопытке(ИВФ, "Не удалось удалить временный файл после теста!");
-
- Обработать(Результат, "YandexDisk", "ЗагрузитьФайл");
-
- OPI_YandexDisk.УдалитьОбъект(Токен, Путь2, Ложь); // SKIP
-
-КонецПроцедуры
-
-Процедура YandexDisk_СоздатьКопиюОбъекта(ПараметрыФункции)
-
- Токен = ПараметрыФункции["YandexDisk_Token"];
- Оригинал = ПараметрыФункции["YandexDisk_OriginalFilePath"];
- Путь = "/" + Строка(Новый УникальныйИдентификатор) + ".png";
-
- Результат = OPI_YandexDisk.СоздатьКопиюОбъекта(Токен, Оригинал, Путь, Истина);
-
- // END
-
- Обработать(Результат, "YandexDisk", "СоздатьКопиюОбъекта", , ПараметрыФункции, Путь);
-
-КонецПроцедуры
-
-Процедура YandexDisk_ПолучитьСсылкуДляСкачивания(ПараметрыФункции)
-
- Токен = ПараметрыФункции["YandexDisk_Token"];
- Путь = ПараметрыФункции["YandexDisk_PathForLink"];
-
- Результат = OPI_YandexDisk.ПолучитьСсылкуДляСкачивания(Токен, Путь);
-
- // END
-
- Обработать(Результат, "YandexDisk", "ПолучитьСсылкуДляСкачивания");
-
-КонецПроцедуры
-
-Процедура YandexDisk_СкачатьФайл(ПараметрыФункции)
-
- Токен = ПараметрыФункции["YandexDisk_Token"];
- Путь = ПараметрыФункции["YandexDisk_PathForLink"];
-
- Результат = OPI_YandexDisk.СкачатьФайл(Токен, Путь);
-
- // END
-
- Обработать(Результат, "YandexDisk", "СкачатьФайл");
-
-КонецПроцедуры
-
-Процедура YandexDisk_ПолучитьСписокФайлов(ПараметрыФункции)
-
- Токен = ПараметрыФункции["YandexDisk_Token"];
- Количество = 2;
- СмещениеОтНачала = 1;
- ОтборПоТипу = "image";
-
- Результат = OPI_YandexDisk.ПолучитьСписокФайлов(Токен, Количество, СмещениеОтНачала, ОтборПоТипу);
-
- // END
-
- Обработать(Результат, "YandexDisk", "ПолучитьСписокФайлов", , Количество, СмещениеОтНачала);
-
-КонецПроцедуры
-
-Процедура YandexDisk_ПереместитьОбъект(ПараметрыФункции)
-
- Токен = ПараметрыФункции["YandexDisk_Token"];
- Оригинал = ПараметрыФункции["YandexDisk_OriginalFilePath"];
- Путь = "/" + Строка(Новый УникальныйИдентификатор) + ".png";
-
- Результат = OPI_YandexDisk.ПереместитьОбъект(Токен, Оригинал, Путь, Истина);
-
- // END
-
- Обработать(Результат, "YandexDisk", "ПереместитьОбъект", , ПараметрыФункции, Путь);
-
-КонецПроцедуры
-
-Процедура YandexDisk_ПолучитьСписокОпубликованныхОбъектов(ПараметрыФункции)
-
- Токен = ПараметрыФункции["YandexDisk_Token"];
- Количество = 2;
- СмещениеОтНачала = 1;
-
- Результат = OPI_YandexDisk.ПолучитьСписокОпубликованныхОбъектов(Токен, Количество, СмещениеОтНачала);
-
- // END
-
- Обработать(Результат, "YandexDisk", "ПолучитьСписокОпубликованныхОбъектов", , Количество, СмещениеОтНачала);
-
-КонецПроцедуры
-
-Процедура YandexDisk_ОпубликоватьОбъект(ПараметрыФункции)
-
- Токен = ПараметрыФункции["YandexDisk_Token"];
- Путь = ПараметрыФункции["YandexDisk_OriginalFilePath"];
-
- Результат = OPI_YandexDisk.ОпубликоватьОбъект(Токен, Путь);
-
- // END
-
- Обработать(Результат, "YandexDisk", "ОпубликоватьОбъект", , ПараметрыФункции, Путь);
-
-КонецПроцедуры
-
-Процедура YandexDisk_ПолучитьСсылкуСкачиванияПубличногоОбъекта(ПараметрыФункции)
-
- Токен = ПараметрыФункции["YandexDisk_Token"];
- URL = ПараметрыФункции["YandexDisk_PublicURL"];
-
- Результат = OPI_YandexDisk.ПолучитьСсылкуСкачиванияПубличногоОбъекта(Токен, URL);
-
- // END
-
- Обработать(Результат, "YandexDisk", "ПолучитьСсылкуСкачиванияПубличногоОбъекта");
-
-КонецПроцедуры
-
-Процедура YandexDisk_ПолучитьПубличныйОбъект(ПараметрыФункции)
-
- Токен = ПараметрыФункции["YandexDisk_Token"];
- URL = ПараметрыФункции["YandexDisk_PublicURL"];
-
- Результат = OPI_YandexDisk.ПолучитьПубличныйОбъект(Токен, URL);
-
- // END
-
- Обработать(Результат, "YandexDisk", "ПолучитьПубличныйОбъект");
-
-КонецПроцедуры
-
-Процедура YandexDisk_СохранитьПубличныйОбъектНаДиск(ПараметрыФункции)
-
- Токен = ПараметрыФункции["YandexDisk_Token"];
- URL = ПараметрыФункции["YandexDisk_PublicURL"];
-
- Результат = OPI_YandexDisk.СохранитьПубличныйОбъектНаДиск(Токен, URL);
-
- // END
-
- Обработать(Результат, "YandexDisk", "СохранитьПубличныйОбъектНаДиск");
-
-КонецПроцедуры
-
-Процедура YandexDisk_ОтменитьПубликациюОбъекта(ПараметрыФункции)
-
- Токен = ПараметрыФункции["YandexDisk_Token"];
- Путь = ПараметрыФункции["YandexDisk_OriginalFilePath"];
-
- Результат = OPI_YandexDisk.ОтменитьПубликациюОбъекта(Токен, Путь);
-
- // END
-
- Обработать(Результат, "YandexDisk", "ОтменитьПубликациюОбъекта", , Путь);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область Viber
-
-Процедура Viber_УстановитьWebhook(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Viber_ChannelToken"];
- URL = "http://api.athenaeum.digital/hs/viber";
-
- Результат = OPI_Viber.УстановитьWebhook(Токен, URL);
-
- // END
-
- Обработать(Результат, "Viber", "УстановитьWebhook");
-
-КонецПроцедуры
-
-Процедура Viber_ПолучитьИнформациюОКанале(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Viber_ChannelToken"];
- Результат = OPI_Viber.ПолучитьИнформациюОКанале(Токен);
-
- // END
-
- Обработать(Результат, "Viber", "ПолучитьИнформациюОКанале");
-
-КонецПроцедуры
-
-Процедура Viber_ПолучитьДанныеПользователя(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Viber_ChannelToken"];
- IDПользователя = ПараметрыФункции["Viber_ChannelAdminID"];
-
- Результат = OPI_Viber.ПолучитьДанныеПользователя(Токен, IDПользователя);
-
- // END
-
- Обработать(Результат, "Viber", "ПолучитьДанныеПользователя");
-
-КонецПроцедуры
-
-Процедура Viber_ПолучитьОнлайнПользователей(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Viber_ChannelToken"];
- IDПользователя = ПараметрыФункции["Viber_ChannelAdminID"];
-
- Результат = OPI_Viber.ПолучитьОнлайнПользователей(Токен, IDПользователя);
-
- // END
-
- Обработать(Результат, "Viber", "ПолучитьОнлайнПользователей");
-
-КонецПроцедуры
-
-Процедура Viber_СформироватьКлавиатуруИзМассиваКнопок(ПараметрыФункции)
-
- МассивКнопок = Новый Массив;
- МассивКнопок.Добавить("Кнопка 1");
- МассивКнопок.Добавить("Кнопка 2");
- МассивКнопок.Добавить("Кнопка 3");
-
- Результат = OPI_Viber.СформироватьКлавиатуруИзМассиваКнопок(МассивКнопок);
-
- // END
-
- Обработать(Результат, "Viber", "СформироватьКлавиатуруИзМассиваКнопок");
-
-КонецПроцедуры
-
-Процедура Viber_ОтправитьТекстовоеСообщение(ПараметрыФункции)
-
- Текст = "Тестовое сообщение";
-
- IDПользователя = ПараметрыФункции["Viber_UserID"];
- Токен = ПараметрыФункции["Viber_Token"];
- ОтправкаВКанал = Ложь;
-
- МассивКнопок = Новый Массив;
- МассивКнопок.Добавить("Кнопка 1");
- МассивКнопок.Добавить("Кнопка 2");
- МассивКнопок.Добавить("Кнопка 3");
-
- Клавиатура = OPI_Viber.СформироватьКлавиатуруИзМассиваКнопок(МассивКнопок);
-
- Результат = OPI_Viber.ОтправитьТекстовоеСообщение(Токен, Текст, IDПользователя, ОтправкаВКанал, Клавиатура);
-
- Обработать(Результат, "Viber", "ОтправитьТекстовоеСообщение"); // SKIP
-
- IDПользователя = ПараметрыФункции["Viber_ChannelAdminID"];
- Токен = ПараметрыФункции["Viber_ChannelToken"];
- ОтправкаВКанал = Истина;
-
- Результат = OPI_Viber.ОтправитьТекстовоеСообщение(Токен, Текст, IDПользователя, ОтправкаВКанал, Клавиатура);
-
- // END
-
- Обработать(Результат, "Viber", "ОтправитьТекстовоеСообщение", "Канал");
-
-КонецПроцедуры
-
-Процедура Viber_ОтправитьКартинку(ПараметрыФункции)
-
- Описание = "Тестовое сообщение";
- URL = ПараметрыФункции["Picture"];
-
- IDПользователя = ПараметрыФункции["Viber_UserID"];
- Токен = ПараметрыФункции["Viber_Token"];
- ОтправкаВКанал = Ложь;
-
- Результат = OPI_Viber.ОтправитьКартинку(Токен, URL, IDПользователя, ОтправкаВКанал, Описание);
-
- Обработать(Результат, "Viber", "ОтправитьКартинку"); // SKIP
-
- IDПользователя = ПараметрыФункции["Viber_ChannelAdminID"];
- Токен = ПараметрыФункции["Viber_ChannelToken"];
- ОтправкаВКанал = Истина;
-
- Результат = OPI_Viber.ОтправитьКартинку(Токен, URL, IDПользователя, ОтправкаВКанал, Описание);
-
- // END
-
- Обработать(Результат, "Viber", "ОтправитьКартинку", "Канал");
-
-КонецПроцедуры
-
-Процедура Viber_ОтправитьФайл(ПараметрыФункции)
-
- Расширение = "docx";
- URL = ПараметрыФункции["Document"];
-
- IDПользователя = ПараметрыФункции["Viber_UserID"];
- Токен = ПараметрыФункции["Viber_Token"];
- ОтправкаВКанал = Ложь;
-
- Результат = OPI_Viber.ОтправитьФайл(Токен, URL, IDПользователя, ОтправкаВКанал, Расширение);
-
- Обработать(Результат, "Viber", "ОтправитьФайл"); // SKIP
-
- IDПользователя = ПараметрыФункции["Viber_ChannelAdminID"];
- Токен = ПараметрыФункции["Viber_ChannelToken"];
- ОтправкаВКанал = Истина;
-
- Результат = OPI_Viber.ОтправитьФайл(Токен, URL, IDПользователя, ОтправкаВКанал, Расширение);
-
- // END
-
- Обработать(Результат, "Viber", "ОтправитьФайл", "Канал");
-
-КонецПроцедуры
-
-Процедура Viber_ОтправитьКонтакт(ПараметрыФункции)
-
- Имя = "Петр Петров";
- Телефон = "+123456789";
-
- IDПользователя = ПараметрыФункции["Viber_UserID"];
- Токен = ПараметрыФункции["Viber_Token"];
- ОтправкаВКанал = Ложь;
-
- Результат = OPI_Viber.ОтправитьКонтакт(Токен, Имя, Телефон, IDПользователя, ОтправкаВКанал);
-
- Обработать(Результат, "Viber", "ОтправитьКонтакт"); // SKIP
-
- IDПользователя = ПараметрыФункции["Viber_ChannelAdminID"];
- Токен = ПараметрыФункции["Viber_ChannelToken"];
- ОтправкаВКанал = Истина;
-
- Результат = OPI_Viber.ОтправитьКонтакт(Токен, Имя, Телефон, IDПользователя, ОтправкаВКанал);
-
- // END
-
- Обработать(Результат, "Viber", "ОтправитьКонтакт", "Канал");
-
-КонецПроцедуры
-
-Процедура Viber_ОтправитьЛокацию(ПараметрыФункции)
-
- Широта = "48.87373649724122";
- Долгота = "2.2954639195323967";
-
- IDПользователя = ПараметрыФункции["Viber_UserID"];
- Токен = ПараметрыФункции["Viber_Token"];
- ОтправкаВКанал = Ложь;
-
- Результат = OPI_Viber.ОтправитьЛокацию(Токен, Широта, Долгота, IDПользователя, ОтправкаВКанал);
-
- Обработать(Результат, "Viber", "ОтправитьЛокацию"); // SKIP
-
- IDПользователя = ПараметрыФункции["Viber_ChannelAdminID"];
- Токен = ПараметрыФункции["Viber_ChannelToken"];
- ОтправкаВКанал = Истина;
-
- Результат = OPI_Viber.ОтправитьЛокацию(Токен, Широта, Долгота, IDПользователя, ОтправкаВКанал);
-
- // END
-
- Обработать(Результат, "Viber", "ОтправитьЛокацию", "Канал");
-
-КонецПроцедуры
-
-Процедура Viber_ОтправитьСсылку(ПараметрыФункции)
-
- URL = "https://github.com/Bayselonarrend/OpenIntegrations";
-
- IDПользователя = ПараметрыФункции["Viber_UserID"];
- Токен = ПараметрыФункции["Viber_Token"];
- ОтправкаВКанал = Ложь;
-
- Результат = OPI_Viber.ОтправитьСсылку(Токен, URL, IDПользователя, ОтправкаВКанал);
-
- Обработать(Результат, "Viber", "ОтправитьСсылку"); // SKIP
-
- IDПользователя = ПараметрыФункции["Viber_ChannelAdminID"];
- Токен = ПараметрыФункции["Viber_ChannelToken"];
- ОтправкаВКанал = Истина;
-
- Результат = OPI_Viber.ОтправитьСсылку(Токен, URL, IDПользователя, ОтправкаВКанал);
-
- // END
-
- Обработать(Результат, "Viber", "ОтправитьСсылку", "Канал");
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область GoogleWorkspace
-
-Процедура GoogleWorkspace_СформироватьСсылкуПолученияКода(ПараметрыФункции)
-
- ClientID = ПараметрыФункции["Google_ClientID"];
- Результат = OPI_GoogleWorkspace.СформироватьСсылкуПолученияКода(ClientID);
-
- // END
-
- Обработать(Результат, "GoogleWorkspace", "СформироватьСсылкуПолученияКода");
-
-КонецПроцедуры
-
-Процедура GoogleWorkspace_ПолучитьТокенПоКоду(ПараметрыФункции)
-
- ClientID = ПараметрыФункции["Google_ClientID"];
- ClientSecret = ПараметрыФункции["Google_ClientSecret"];
- Code = ПараметрыФункции["Google_Code"];
-
- Результат = OPI_GoogleWorkspace.ПолучитьТокенПоКоду(ClientID, ClientSecret, Code);
-
- // END
-
- Обработать(Результат, "GoogleWorkspace", "ПолучитьТокенПоКоду");
-
-КонецПроцедуры
-
-Процедура GoogleWorkspace_ОбновитьТокен(ПараметрыФункции)
-
- ClientID = ПараметрыФункции["Google_ClientID"];
- ClientSecret = ПараметрыФункции["Google_ClientSecret"];
- RefreshToken = ПараметрыФункции["Google_Refresh"];
-
- Результат = OPI_GoogleWorkspace.ОбновитьТокен(ClientID, ClientSecret, RefreshToken);
-
- // END
-
- Обработать(Результат, "GoogleWorkspace", "ОбновитьТокен");
-
-КонецПроцедуры
-
-Процедура GoogleWorkspace_ПолучитьТокенServiceАккаунта(ПараметрыФункции)
-
- Данные = ПараметрыФункции["Google_ServiceData"]; // URL, двоичные данные, файл или коллекция
-
- Токен = ПараметрыФункции["Access_Token"]; // SKIP
- Данные = OPI_ЗапросыHTTP // SKIP
- .НовыйЗапрос() // SKIP
- .Инициализировать(Данные) // SKIP
- .ДобавитьBearerАвторизацию(Токен) // SKIP
- .ОбработатьЗапрос("GET") // SKIP
- .ВернутьОтветКакДвоичныеДанные(); // SKIP
-
- ОбластиДействия = Новый Массив;
- ОбластиДействия.Добавить("https://www.googleapis.com/auth/calendar");
- ОбластиДействия.Добавить("https://www.googleapis.com/auth/drive");
- ОбластиДействия.Добавить("https://www.googleapis.com/auth/spreadsheets");
-
- Результат = OPI_GoogleWorkspace.ПолучитьТокенServiceАккаунта(Данные, ОбластиДействия);
-
- // END
-
- Обработать(Результат, "GoogleWorkspace", "ПолучитьТокенServiceАккаунта");
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область GoogleCalendar
-
-Процедура GoogleCalendar_ПолучитьСписокКалендарей(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Google_Token"];
- Результат = OPI_GoogleCalendar.ПолучитьСписокКалендарей(Токен);
-
- // END
-
- Обработать(Результат, "GoogleCalendar", "ПолучитьСписокКалендарей");
-
-КонецПроцедуры
-
-Процедура GoogleCalendar_СоздатьКалендарь(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Google_Token"];
- Наименование = "Тестовый календарь";
-
- Результат = OPI_GoogleCalendar.СоздатьКалендарь(Токен, Наименование);
-
- // END
-
- Обработать(Результат, "GoogleCalendar", "СоздатьКалендарь", , ПараметрыФункции, Наименование);
-
-КонецПроцедуры
-
-Процедура GoogleCalendar_ИзменитьМетаданныеКалендаря(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Google_Token"];
- Календарь = ПараметрыФункции["Google_NewCalendarID"];
- Наименование = "Новое наименование";
- Описание = "Новое описание";
-
- Результат = OPI_GoogleCalendar.ИзменитьМетаданныеКалендаря(Токен, Календарь, Наименование, Описание);
-
- // END
-
- Обработать(Результат, "GoogleCalendar", "ИзменитьМетаданныеКалендаря", , Наименование, Описание);
-
-КонецПроцедуры
-
-Процедура GoogleCalendar_ПолучитьМетаданныеКалендаря(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Google_Token"];
- Календарь = ПараметрыФункции["Google_NewCalendarID"];
-
- Результат = OPI_GoogleCalendar.ПолучитьМетаданныеКалендаря(Токен, Календарь);
-
- // END
-
- Наименование = "Новое наименование";
- Описание = "Новое описание";
-
- Обработать(Результат, "GoogleCalendar", "ПолучитьМетаданныеКалендаря", , Наименование, Описание);
-
-КонецПроцедуры
-
-Процедура GoogleCalendar_ДобавитьКалендарьВСписок(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Google_Token"];
- Календарь = ПараметрыФункции["Google_NewCalendarID"];
-
- Результат = OPI_GoogleCalendar.ДобавитьКалендарьВСписок(Токен, Календарь);
-
- // END
-
- Наименование = "Новое наименование";
- Описание = "Новое описание";
-
- Обработать(Результат, "GoogleCalendar", "ДобавитьКалендарьВСписок", , Наименование, Описание);
-
-КонецПроцедуры
-
-Процедура GoogleCalendar_ИзменитьКалендарьСписка(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Google_Token"];
- Календарь = ПараметрыФункции["Google_NewCalendarID"];
- ОсновнойЦвет = "#000000";
- ДополнительныйЦвет = "#ffd800";
- Скрытый = Ложь;
-
- Результат = OPI_GoogleCalendar.ИзменитьКалендарьСписка(Токен, Календарь, ОсновнойЦвет, ДополнительныйЦвет, Скрытый);
-
- // END
-
- Обработать(Результат, "GoogleCalendar", "ИзменитьКалендарьСписка", , ОсновнойЦвет, ДополнительныйЦвет);
-
-КонецПроцедуры
-
-Процедура GoogleCalendar_ПолучитьКалендарьСписка(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Google_Token"];
- Календарь = ПараметрыФункции["Google_NewCalendarID"];
-
- Результат = OPI_GoogleCalendar.ПолучитьКалендарьСписка(Токен, Календарь);
-
- // END
-
- ОсновнойЦвет = "#000000";
- ДополнительныйЦвет = "#ffd800";
-
- Обработать(Результат, "GoogleCalendar", "ПолучитьКалендарьСписка", , ОсновнойЦвет, ДополнительныйЦвет);
-
-КонецПроцедуры
-
-Процедура GoogleCalendar_ОчиститьОсновнойКалендарь(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Google_Token"];
-
- Результат = OPI_GoogleCalendar.ОчиститьОсновнойКалендарь(Токен);
-
- // END
-
- Обработать(Результат, "GoogleCalendar", "ОчиститьОсновнойКалендарь");
-
-КонецПроцедуры
-
-Процедура GoogleCalendar_УдалитьКалендарьИзСписка(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Google_Token"];
- Календарь = ПараметрыФункции["Google_NewCalendarID"];
-
- Результат = OPI_GoogleCalendar.УдалитьКалендарьИзСписка(Токен, Календарь);
-
- // END
-
- Обработать(Результат, "GoogleCalendar", "УдалитьКалендарьИзСписка");
-
-КонецПроцедуры
-
-Процедура GoogleCalendar_УдалитьКалендарь(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Google_Token"];
- Календарь = ПараметрыФункции["Google_NewCalendarID"];
-
- Результат = OPI_GoogleCalendar.УдалитьКалендарь(Токен, Календарь);
-
- // END
-
- Обработать(Результат, "GoogleCalendar", "УдалитьКалендарь");
-
-КонецПроцедуры
-
-Процедура GoogleCalendar_СоздатьСобытие(ПараметрыФункции)
-
- ТекущаяДата = OPI_Инструменты.ПолучитьТекущуюДату();
- Токен = ПараметрыФункции["Google_Token"];
- Календарь = ПараметрыФункции["Google_NewCalendarID"];
- Наименование = "Новое событие";
- Описание = "Описание тестового события";
- Час = 3600;
-
- Картинка1 = ПараметрыФункции["Picture"]; // URL, Двоичные или Путь к файлу
- Картинка2 = ПараметрыФункции["Picture2"]; // URL, Двоичные или Путь к файлу
- Вложения = Новый Соответствие;
-
- Вложения.Вставить("Картинка1", Картинка1);
- Вложения.Вставить("Картинка2", Картинка2);
-
- ОписаниеСобытия = Новый Соответствие;
- ОписаниеСобытия.Вставить("Описание" , Описание);
- ОписаниеСобытия.Вставить("Заголовок" , Наименование);
- ОписаниеСобытия.Вставить("МестоПроведения" , "В офисе");
- ОписаниеСобытия.Вставить("ДатаНачала" , ТекущаяДата);
- ОписаниеСобытия.Вставить("ДатаОкончания" , ОписаниеСобытия["ДатаНачала"] + Час);
- ОписаниеСобытия.Вставить("МассивURLФайловВложений", Вложения);
- ОписаниеСобытия.Вставить("ОтправлятьУведомления" , Истина);
-
- Результат = OPI_GoogleCalendar.СоздатьСобытие(Токен, Календарь, ОписаниеСобытия);
-
- // END
-
- Обработать(Результат, "GoogleCalendar", "СоздатьСобытие", , ПараметрыФункции, Наименование, Описание);
-
-КонецПроцедуры
-
-Процедура GoogleCalendar_ИзменитьСобытие(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Google_Token"];
- Календарь = ПараметрыФункции["Google_NewCalendarID"];
- Событие = ПараметрыФункции["Google_EventID"];
- Описание = "Новое описание события";
-
- ОписаниеСобытия = Новый Соответствие;
- ОписаниеСобытия.Вставить("Описание", Описание);
-
- Результат = OPI_GoogleCalendar.ИзменитьСобытие(Токен, Календарь, ОписаниеСобытия, Событие);
-
- // END
-
- Наименование = "Новое событие";
-
- Обработать(Результат, "GoogleCalendar", "ИзменитьСобытие", , Наименование, Описание);
-
-КонецПроцедуры
-
-Процедура GoogleCalendar_ПолучитьСобытие(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Google_Token"];
- Календарь = ПараметрыФункции["Google_NewCalendarID"];
- Событие = ПараметрыФункции["Google_EventID"];
-
- Результат = OPI_GoogleCalendar.ПолучитьСобытие(Токен, Календарь, Событие);
-
- // END
-
- Наименование = "Новое событие";
- Описание = "Новое описание события";
-
- Обработать(Результат, "GoogleCalendar", "ПолучитьСобытие", , Наименование, Описание);
-
-КонецПроцедуры
-
-Процедура GoogleCalendar_ПереместитьСобытие(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Google_Token"];
- Событие = ПараметрыФункции["Google_EventID"];
-
- КалендарьИсточник = ПараметрыФункции["Google_NewCalendarID"];
- КалендарьПриемник = ПараметрыФункции["Google_CalendarID"];
-
- Результат = OPI_GoogleCalendar.ПереместитьСобытие(Токен, КалендарьИсточник, КалендарьПриемник, Событие);
-
- // END
-
- Наименование = "Новое событие";
- Описание = "Новое описание события";
-
- Обработать(Результат, "GoogleCalendar", "ПереместитьСобытие", , Наименование, Описание);
-
- OPI_GoogleCalendar.ПереместитьСобытие(Токен, КалендарьПриемник, КалендарьИсточник, Событие);
-
-КонецПроцедуры
-
-Процедура GoogleCalendar_УдалитьСобытие(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Google_Token"];
- Календарь = ПараметрыФункции["Google_NewCalendarID"];
- Событие = ПараметрыФункции["Google_EventID"];
-
- Результат = OPI_GoogleCalendar.УдалитьСобытие(Токен, Календарь, Событие);
-
- // END
-
- Обработать(Результат, "GoogleCalendar", "УдалитьСобытие");
-
-КонецПроцедуры
-
-Процедура GoogleCalendar_ПолучитьСписокСобытий(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Google_Token"];
- Календарь = ПараметрыФункции["Google_NewCalendarID"];
-
- Результат = OPI_GoogleCalendar.ПолучитьСписокСобытий(Токен, Календарь);
-
- // END
-
- Обработать(Результат, "GoogleCalendar", "ПолучитьСписокСобытий");
-
-КонецПроцедуры
-
-Процедура GoogleCalendar_ПолучитьОписаниеСобытия(ПараметрыФункции)
-
- Пустая = Ложь;
- Результат = OPI_GoogleCalendar.ПолучитьОписаниеСобытия(Пустая);
-
- // END
-
- Обработать(Результат, "GoogleCalendar", "ПолучитьОписаниеСобытия");
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область GoogleDrive
-
-Процедура GoogleDrive_ПолучитьСписокКаталогов(ПараметрыФункции)
-
- Имя = "Тестовая папка";
- Токен = ПараметрыФункции["Google_Token"];
-
- Результат = OPI_GoogleDrive.ПолучитьСписокКаталогов(Токен, Имя, Истина);
-
- // END
-
- Обработать(Результат, "GoogleDrive", "ПолучитьСписокКаталогов", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура GoogleDrive_ПолучитьИнформациюОбОбъекте(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Google_Token"];
- Идентификатор = ПараметрыФункции["GD_Catalog"];
-
- Результат = OPI_GoogleDrive.ПолучитьИнформациюОбОбъекте(Токен, Идентификатор);
-
- // END
-
- Обработать(Результат, "GoogleDrive", "ПолучитьИнформациюОбОбъекте");
-
-КонецПроцедуры
-
-Процедура GoogleDrive_ЗагрузитьФайл(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Google_Token"];
- Картинка = ПараметрыФункции["Picture"];
- Каталог = ПараметрыФункции["GD_Catalog"];
-
- Пустая = Ложь;
- Описание = OPI_GoogleDrive.ПолучитьОписаниеФайла(Пустая);
-
- Описание.Вставить("Родитель", Каталог);
-
- Результат = OPI_GoogleDrive.ЗагрузитьФайл(Токен, Картинка, Описание);
-
- // END
-
- Обработать(Результат, "GoogleDrive", "ЗагрузитьФайл", , ПараметрыФункции, Описание);
-
- Если Не OPI_Инструменты.ЭтоOneScript() И ПараметрыФункции.Свойство("Big") Тогда
-
- БольшойФайл = ПараметрыФункции["Big"];
- Описание.Вставить("Имя", "big.rar");
-
- Результат = OPI_GoogleDrive.ЗагрузитьФайл(Токен, БольшойФайл, Описание);
-
- Обработать(Результат, "GoogleDrive", "ЗагрузитьФайл", "Большой", ПараметрыФункции, Описание);
-
- КонецЕсли;
-
-КонецПроцедуры
-
-Процедура GoogleDrive_СкопироватьОбъект(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Google_Token"];
- Идентификатор = ПараметрыФункции["GD_File"];
- НовоеИмя = "Скопированный файл.jpeg";
- НовыйРодитель = "root";
-
- Результат = OPI_GoogleDrive.СкопироватьОбъект(Токен, Идентификатор, НовоеИмя, НовыйРодитель);
-
- // END
-
- Обработать(Результат, "GoogleDrive", "СкопироватьОбъект", , ПараметрыФункции, НовоеИмя);
-
-КонецПроцедуры
-
-Процедура GoogleDrive_СкачатьФайл(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Google_Token"];
- Идентификатор = ПараметрыФункции["GD_File"];
-
- Результат = OPI_GoogleDrive.СкачатьФайл(Токен, Идентификатор);
-
- // END
-
- Обработать(Результат, "GoogleDrive", "СкачатьФайл", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура GoogleDrive_ОбновитьФайл(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Google_Token"];
- НовоеИмя = "Обновленный файл.jpg";
- Идентификатор = ПараметрыФункции["GD_File"];
- Файл = ПараметрыФункции["Picture2"]; // URL, Двоичные данные или Путь к файлу
-
- Результат = OPI_GoogleDrive.ОбновитьФайл(Токен, Идентификатор, Файл, НовоеИмя);
-
- // END
-
- Обработать(Результат, "GoogleDrive", "ОбновитьФайл", , НовоеИмя);
-
-КонецПроцедуры
-
-Процедура GoogleDrive_ПолучитьСписокФайлов(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Google_Token"];
- Каталог = "root";
- ИмяСодержит = "data";
-
- Результат = OPI_GoogleDrive.ПолучитьСписокФайлов(Токен, ИмяСодержит, Каталог);
-
- // END
-
- Обработать(Результат, "GoogleDrive", "ПолучитьСписокФайлов");
-
-КонецПроцедуры
-
-Процедура GoogleDrive_УдалитьОбъект(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Google_Token"];
- Идентификатор = ПараметрыФункции["GD_File"];
-
- Результат = OPI_GoogleDrive.УдалитьОбъект(Токен, Идентификатор);
-
- // END
-
- Обработать(Результат, "GoogleDrive", "УдалитьОбъект");
-
- Для Каждого Удаляемый Из ПараметрыФункции["МассивУдаляемых"] Цикл
-
- Результат = OPI_GoogleDrive.УдалитьОбъект(Токен, Удаляемый);
-
- Обработать(Результат, "GoogleDrive", "УдалитьОбъект", "Дополнительный");
-
- OPI_Инструменты.Пауза(2);
-
- КонецЦикла;
-
-КонецПроцедуры
-
-Процедура GoogleDrive_ПолучитьОписаниеФайла(ПараметрыФункции)
-
- Результат = OPI_GoogleDrive.ПолучитьОписаниеФайла();
-
- // END
-
- Обработать(Результат, "GoogleDrive", "ПолучитьОписаниеФайла");
-
-КонецПроцедуры
-
-Процедура GoogleDrive_СоздатьКомментарий(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Google_Token"];
- Идентификатор = ПараметрыФункции["GD_File"];
- Комментарий = "Текст комментария";
-
- Результат = OPI_GoogleDrive.СоздатьКомментарий(Токен, Идентификатор, Комментарий);
-
- // END
-
- Обработать(Результат, "GoogleDrive", "СоздатьКомментарий", , ПараметрыФункции, Комментарий);
-
-КонецПроцедуры
-
-Процедура GoogleDrive_ПолучитьКомментарий(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Google_Token"];
- Идентификатор = ПараметрыФункции["GD_File"];
- ИДКомментария = ПараметрыФункции["GD_Comment"];
-
- Результат = OPI_GoogleDrive.ПолучитьКомментарий(Токен, Идентификатор, ИДКомментария);
-
- // END
-
- Обработать(Результат, "GoogleDrive", "ПолучитьКомментарий");
-
-КонецПроцедуры
-
-Процедура GoogleDrive_ПолучитьСписокКомментариев(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Google_Token"];
- Идентификатор = ПараметрыФункции["GD_File"];
-
- Результат = OPI_GoogleDrive.ПолучитьСписокКомментариев(Токен, Идентификатор);
-
- // END
-
- Обработать(Результат, "GoogleDrive", "ПолучитьСписокКомментариев");
-
-КонецПроцедуры
-
-Процедура GoogleDrive_УдалитьКомментарий(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Google_Token"];
- Идентификатор = ПараметрыФункции["GD_File"];
- ИДКомментария = ПараметрыФункции["GD_Comment"];
-
- Результат = OPI_GoogleDrive.УдалитьКомментарий(Токен, Идентификатор, ИДКомментария);
-
- // END
-
- Обработать(Результат, "GoogleDrive", "УдалитьКомментарий");
-
-КонецПроцедуры
-
-Процедура GoogleDrive_СоздатьПапку(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Google_Token"];
- Каталог = ПараметрыФункции["GD_Catalog"];
- Имя = "Тестовая папка";
-
- Результат = OPI_GoogleDrive.СоздатьПапку(Токен, Имя, Каталог);
-
- // END
-
- Обработать(Результат, "GoogleDrive", "СоздатьПапку");
-
- ИДКаталога = Результат["id"];
- OPI_GoogleDrive.УдалитьОбъект(Токен, ИДКаталога);
-
- Результат = OPI_GoogleDrive.СоздатьПапку(Токен, Имя);
-
- Обработать(Результат, "GoogleDrive", "СоздатьПапку", "Корень");
-
- ИДКаталога = Результат["id"];
- OPI_GoogleDrive.УдалитьОбъект(Токен, ИДКаталога);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область GoogleSheets
-
-Процедура GoogleSheets_СоздатьКнигу(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Google_Token"];
- Наименование = "Тестовая таблица";
-
- МассивЛистов = Новый Массив;
- МассивЛистов.Добавить("Лист1");
- МассивЛистов.Добавить("Лист2");
-
- Результат = OPI_GoogleSheets.СоздатьКнигу(Токен, Наименование, МассивЛистов);
-
- // END
-
- Обработать(Результат, "GoogleSheets", "СоздатьКнигу", , ПараметрыФункции, Наименование, МассивЛистов);
-
- Наименование = "Тестовая таблица (доп.)";
- Результат = OPI_GoogleSheets.СоздатьКнигу(Токен, Наименование, МассивЛистов);
-
- Обработать(Результат, "GoogleSheets", "СоздатьКнигу", "Дополнительно", ПараметрыФункции, Наименование);
-
-КонецПроцедуры
-
-Процедура GoogleSheets_ПолучитьКнигу(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Google_Token"];
- Идентификатор = ПараметрыФункции["GS_Spreadsheet"];
-
- Результат = OPI_GoogleSheets.ПолучитьКнигу(Токен, Идентификатор);
-
- // END
-
- Обработать(Результат, "GoogleSheets", "ПолучитьКнигу");
-
-КонецПроцедуры
-
-Процедура GoogleSheets_КопироватьЛист(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Google_Token"];
- Откуда = ПараметрыФункции["GS_Spreadsheet"];
- Куда = ПараметрыФункции["GS_Spreadsheet2"];
- Лист = ПараметрыФункции["GS_Sheet"];
-
- Результат = OPI_GoogleSheets.КопироватьЛист(Токен, Откуда, Куда, Лист);
-
- // END
-
- Обработать(Результат, "GoogleSheets", "КопироватьЛист");
-
-КонецПроцедуры
-
-Процедура GoogleSheets_ДобавитьЛист(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Google_Token"];
- Книга = ПараметрыФункции["GS_Spreadsheet"];
- Наименование = "Тестовый лист";
-
- Результат = OPI_GoogleSheets.ДобавитьЛист(Токен, Книга, Наименование);
-
- // END
-
- Обработать(Результат, "GoogleSheets", "ДобавитьЛист");
-
-КонецПроцедуры
-
-Процедура GoogleSheets_УдалитьЛист(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Google_Token"];
- Книга = ПараметрыФункции["GS_Spreadsheet"];
- Лист = ПараметрыФункции["GS_Sheet"];
-
- Результат = OPI_GoogleSheets.УдалитьЛист(Токен, Книга, Лист);
-
- // END
-
- Обработать(Результат, "GoogleSheets", "УдалитьЛист", , Книга);
-
-КонецПроцедуры
-
-Процедура GoogleSheets_ИзменитьНаименованиеКниги(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Google_Token"];
- Книга = ПараметрыФункции["GS_Spreadsheet"];
- Наименование = "Тестовая таблица (изм.)";
-
- Результат = OPI_GoogleSheets.ИзменитьНаименованиеКниги(Токен, Книга, Наименование);
-
- // END
-
- Обработать(Результат, "GoogleSheets", "ИзменитьНаименованиеКниги", , Книга);
-
-КонецПроцедуры
-
-Процедура GoogleSheets_ПолучитьТаблицу(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Google_Token"];
- Книга = ПараметрыФункции["GS_Spreadsheet"];
-
- Результат = OPI_GoogleSheets.ПолучитьКнигу(Токен, Книга);
-
- // END
-
- Обработать(Результат, "GoogleSheets", "ПолучитьТаблицу");
-
-КонецПроцедуры
-
-Процедура GoogleSheets_УстановитьЗначенияЯчеек(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Google_Token"];
- Книга = ПараметрыФункции["GS_Spreadsheet"];
- Лист = "Лист2";
-
- СоответствиеЗначений = Новый Соответствие;
- СоответствиеЗначений.Вставить("A1", "Это A1");
- СоответствиеЗначений.Вставить("A2", "Это A2");
- СоответствиеЗначений.Вставить("B2", "Это B2");
- СоответствиеЗначений.Вставить("B3", "Это B3");
- СоответствиеЗначений.Вставить("A3", "Это A3");
- СоответствиеЗначений.Вставить("A4", "Это A4");
- СоответствиеЗначений.Вставить("B1", "Это B1");
- СоответствиеЗначений.Вставить("B4", "Это B4");
-
- Результат = OPI_GoogleSheets.УстановитьЗначенияЯчеек(Токен, Книга, СоответствиеЗначений, Лист);
-
- // END
-
- Обработать(Результат, "GoogleSheets", "УстановитьЗначенияЯчеек", , СоответствиеЗначений.Количество());
-
-КонецПроцедуры
-
-Процедура GoogleSheets_ПолучитьЗначенияЯчеек(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Google_Token"];
- Книга = ПараметрыФункции["GS_Spreadsheet"];
- Лист = "Лист2";
-
- МассивЯчеек = Новый Массив;
- МассивЯчеек.Добавить("B2");
- МассивЯчеек.Добавить("A3");
- МассивЯчеек.Добавить("B4");
-
- Результат = OPI_GoogleSheets.ПолучитьЗначенияЯчеек(Токен, Книга, МассивЯчеек, Лист);
-
- // END
-
- Обработать(Результат, "GoogleSheets", "ПолучитьЗначенияЯчеек", , МассивЯчеек.Количество());
-
- Результат = OPI_GoogleSheets.ПолучитьЗначенияЯчеек(Токен, Книга, , Лист);
-
- Обработать(Результат, "GoogleSheets", "ПолучитьЗначенияЯчеек", "Все", Книга);
-
-КонецПроцедуры
-
-Процедура GoogleSheets_ОчиститьЯчейки(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Google_Token"];
- Книга = ПараметрыФункции["GS_Spreadsheet"];
- Лист = "Лист2";
-
- МассивЯчеек = Новый Массив;
- МассивЯчеек.Добавить("B2");
- МассивЯчеек.Добавить("A3");
- МассивЯчеек.Добавить("B4");
-
- Результат = OPI_GoogleSheets.ОчиститьЯчейки(Токен, Книга, МассивЯчеек, Лист);
-
- // END
-
- Обработать(Результат, "GoogleSheets", "ОчиститьЯчейки", , МассивЯчеек.Количество());
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область Slack
-
-Процедура Slack_ПолучитьИнформациюОБоте(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Slack_Token"];
- Результат = OPI_Slack.ПолучитьИнформациюОБоте(Токен);
-
- // END
-
- Обработать(Результат, "Slack", "ПолучитьИнформациюОБоте");
-
-КонецПроцедуры
-
-Процедура Slack_ПолучитьСписокПользователей(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Slack_Token"];
- Результат = OPI_Slack.ПолучитьСписокПользователей(Токен);
-
- // END
-
- Обработать(Результат, "Slack", "ПолучитьСписокПользователей");
-
-КонецПроцедуры
-
-Процедура Slack_ПолучитьСписокРабочихОбластей(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Slack_Token"];
- Результат = OPI_Slack.ПолучитьСписокРабочихОбластей(Токен);
-
- // END
-
- Обработать(Результат, "Slack", "ПолучитьСписокРабочихОбластей");
-
-КонецПроцедуры
-
-Процедура Slack_ОтправитьСообщение(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Slack_Token"];
- Канал = ПараметрыФункции["Slack_Channel"];
-
- // Текстовое
-
- Текст = "Тестовое сообщение 1";
- Результат = OPI_Slack.ОтправитьСообщение(Токен, Канал, Текст);
-
- Обработать(Результат, "Slack", "ОтправитьСообщение", , ПараметрыФункции, Текст, Канал); // SKIP
-
- // С вложениями (в примере: блок с картинкой)
-
- Текст = "Сообщение с картинкой";
- Картинка = ПараметрыФункции["Picture"];
- МассивБлоков = Новый Массив;
-
- Блок = OPI_Slack.СформироватьБлокКартинку(Картинка, "Картинка");
- МассивБлоков.Добавить(Блок);
-
- Результат = OPI_Slack.ОтправитьСообщение(Токен, Канал, Текст, , МассивБлоков);
-
- Обработать(Результат, "Slack", "ОтправитьСообщение", "Картинка", ПараметрыФункции, Текст, Канал); // SKIP
-
- // Отложенное
-
- Текст = "Отложенное сообщение";
- Час = 3600;
- Сутки = 24;
-
- ДатаОтправки = OPI_Инструменты.ПолучитьТекущуюДату() + (Сутки * Час);
- Результат = OPI_Slack.ОтправитьСообщение(Токен, Канал, Текст, ДатаОтправки);
-
- // END
-
- Обработать(Результат, "Slack", "ОтправитьСообщение", "Отложенное", ПараметрыФункции, Текст, Канал);
-
- Токен = ПараметрыФункции["Slack_Token"];
- Отметка = Результат["scheduled_message_id"];
-
- OPI_Slack.УдалитьСообщение(Токен, Канал, Отметка, Истина);
-
-КонецПроцедуры
-
-Процедура Slack_СформироватьБлокКартинку(ПараметрыФункции)
-
- Картинка = ПараметрыФункции["Picture"];
-
- Результат = OPI_Slack.СформироватьБлокКартинку(Картинка, "Картинка");
-
- // END
-
- Обработать(Результат, "Slack", "СформироватьБлокКартинку");
-
-КонецПроцедуры
-
-Процедура Slack_ИзменитьСообщение(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Slack_Token"];
- Канал = ПараметрыФункции["Slack_Channel"];
- Отметка = ПараметрыФункции["Slack_MessageTS"];
-
- Текст = "Тестовое сообщение 2";
-
- Результат = OPI_Slack.ИзменитьСообщение(Токен, Канал, Отметка, Текст);
-
- // END
-
- Обработать(Результат, "Slack", "ИзменитьСообщение", , Текст, Канал);
-
-КонецПроцедуры
-
-Процедура Slack_ПолучитьСписокОтветовНаСообщение(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Slack_Token"];
- Канал = ПараметрыФункции["Slack_Channel"];
- Отметка = ПараметрыФункции["Slack_MessageTS"];
-
- Результат = OPI_Slack.ПолучитьСписокОтветовНаСообщение(Токен, Канал, Отметка);
-
- // END
-
- Обработать(Результат, "Slack", "ПолучитьСписокОтветовНаСообщение");
-
-КонецПроцедуры
-
-Процедура Slack_ПолучитьСсылкуНаСообщение(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Slack_Token"];
- Канал = ПараметрыФункции["Slack_Channel"];
- Отметка = ПараметрыФункции["Slack_MessageTS"];
-
- Результат = OPI_Slack.ПолучитьСсылкуНаСообщение(Токен, Канал, Отметка);
-
- // END
-
- Обработать(Результат, "Slack", "ПолучитьСсылкуНаСообщение", , Канал);
-
-КонецПроцедуры
-
-Процедура Slack_УдалитьСообщение(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Slack_Token"];
- Канал = ПараметрыФункции["Slack_Channel"];
- Отметка = ПараметрыФункции["Slack_MessageTS"];
-
- Результат = OPI_Slack.УдалитьСообщение(Токен, Канал, Отметка);
-
- // END
-
- Обработать(Результат, "Slack", "УдалитьСообщение");
-
-КонецПроцедуры
-
-Процедура Slack_ОтправитьЭфемерноеСообщение(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Slack_Token"];
- Канал = ПараметрыФункции["Slack_Channel"];
- Пользователь = ПараметрыФункции["Slack_User"];
- Картинка = ПараметрыФункции["Picture"];
- Текст = "Эфимерное сообщение";
-
- Блок = OPI_Slack.СформироватьБлокКартинку(Картинка, "Картинка");
- Результат = OPI_Slack.ОтправитьЭфемерноеСообщение(Токен, Канал, Текст, Пользователь, Блок);
-
- // END
-
- Обработать(Результат, "Slack", "ОтправитьЭфемерноеСообщение");
-
-КонецПроцедуры
-
-Процедура Slack_ПолучитьСписокОтложенныхСообщений(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Slack_Token"];
- Канал = ПараметрыФункции["Slack_Channel"];
-
- Результат = OPI_Slack.ПолучитьСписокОтложенныхСообщений(Токен, Канал);
-
- // END
-
- Обработать(Результат, "Slack", "ПолучитьСписокОтложенныхСообщений");
-
-КонецПроцедуры
-
-Процедура Slack_СоздатьКанал(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Slack_Token"];
- Имя = "testconv" + Строка(Новый УникальныйИдентификатор);
-
- Результат = OPI_Slack.СоздатьКанал(Токен, Имя);
-
- // END
-
- Обработать(Результат, "Slack", "СоздатьКанал", , ПараметрыФункции, Имя);
-
-КонецПроцедуры
-
-Процедура Slack_УстановитьТемуКанала(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Slack_Token"];
- Канал = ПараметрыФункции["Slack_NewChannel"];
- Тема = "Тестовая тема";
-
- Результат = OPI_Slack.УстановитьТемуКанала(Токен, Канал, Тема);
-
- // END
-
- Обработать(Результат, "Slack", "УстановитьТемуКанала", , Тема);
-
-КонецПроцедуры
-
-Процедура Slack_УстановитьЦельКанала(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Slack_Token"];
- Канал = ПараметрыФункции["Slack_NewChannel"];
- Цель = "Тестовая цель";
-
- Результат = OPI_Slack.УстановитьЦельКанала(Токен, Канал, Цель);
-
- // END
-
- Обработать(Результат, "Slack", "УстановитьЦельКанала");
-
-КонецПроцедуры
-
-Процедура Slack_ПолучитьКанал(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Slack_Token"];
- Канал = ПараметрыФункции["Slack_NewChannel"];
-
- Результат = OPI_Slack.ПолучитьКанал(Токен, Канал);
-
- // END
-
- Обработать(Результат, "Slack", "ПолучитьКанал", , ПараметрыФункции["Slack_NewChannelName"]);
-
-КонецПроцедуры
-
-Процедура Slack_ПригласитьПользователейВКанал(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Slack_Token"];
- Канал = ПараметрыФункции["Slack_NewChannel"];
- Пользователь = ПараметрыФункции["Slack_User"];
-
- Результат = OPI_Slack.ПригласитьПользователейВКанал(Токен, Канал, Пользователь);
-
- // END
-
- Обработать(Результат, "Slack", "ПригласитьПользователейВКанал", , ПараметрыФункции["Slack_NewChannelName"]);
-
-КонецПроцедуры
-
-Процедура Slack_ВыгнатьПользователяИзКанала(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Slack_Token"];
- Канал = ПараметрыФункции["Slack_NewChannel"];
- Пользователь = ПараметрыФункции["Slack_User"];
-
- Результат = OPI_Slack.ВыгнатьПользователяИзКанала(Токен, Канал, Пользователь);
-
- // END
-
- Обработать(Результат, "Slack", "ВыгнатьПользователяИзКанала");
-
-КонецПроцедуры
-
-Процедура Slack_ПолучитьИсториюКанала(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Slack_Token"];
- Канал = ПараметрыФункции["Slack_NewChannel"];
-
- Результат = OPI_Slack.ПолучитьИсториюКанала(Токен, Канал);
-
- // END
-
- Обработать(Результат, "Slack", "ПолучитьИсториюКанала");
-
-КонецПроцедуры
-
-Процедура Slack_ПолучитьСписокПользователейКанала(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Slack_Token"];
- Канал = ПараметрыФункции["Slack_NewChannel"];
-
- Результат = OPI_Slack.ПолучитьСписокПользователейКанала(Токен, Канал);
-
- // END
-
- Обработать(Результат, "Slack", "ПолучитьСписокПользователейКанала");
-
-КонецПроцедуры
-
-Процедура Slack_ПокинутьКанал(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Slack_Token"];
- Канал = ПараметрыФункции["Slack_NewChannel"];
-
- Результат = OPI_Slack.ПокинутьКанал(Токен, Канал);
-
- // END
-
- Обработать(Результат, "Slack", "ПокинутьКанал");
-
-КонецПроцедуры
-
-Процедура Slack_ВступитьВКанал(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Slack_Token"];
- Канал = ПараметрыФункции["Slack_NewChannel"];
-
- Результат = OPI_Slack.ВступитьВКанал(Токен, Канал);
-
- // END
-
- Обработать(Результат, "Slack", "ВступитьВКанал", , ПараметрыФункции["Slack_NewChannelName"]);
-
-КонецПроцедуры
-
-Процедура Slack_ПереименоватьКанал(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Slack_Token"];
- Канал = ПараметрыФункции["Slack_NewChannel"];
- Название = "testconv" + Строка(Новый УникальныйИдентификатор);
-
- Результат = OPI_Slack.ПереименоватьКанал(Токен, Канал, Название);
-
- // END
-
- Обработать(Результат, "Slack", "ПереименоватьКанал", , Название);
-
-КонецПроцедуры
-
-Процедура Slack_АрхивироватьКанал(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Slack_Token"];
- Канал = ПараметрыФункции["Slack_NewChannel"];
-
- Результат = OPI_Slack.АрхивироватьКанал(Токен, Канал);
-
- // END
-
- Обработать(Результат, "Slack", "АрхивироватьКанал");
-
-КонецПроцедуры
-
-Процедура Slack_ПолучитьСписокКаналов(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Slack_Token"];
-
- Результат = OPI_Slack.ПолучитьСписокКаналов(Токен);
-
- // END
-
- Обработать(Результат, "Slack", "ПолучитьСписокКаналов");
-
-КонецПроцедуры
-
-Процедура Slack_ОткрытьДиалог(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Slack_Token"];
- Пользователь = ПараметрыФункции["Slack_User"];
-
- Результат = OPI_Slack.ОткрытьДиалог(Токен, Пользователь);
-
- // END
-
- Обработать(Результат, "Slack", "ОткрытьДиалог", , ПараметрыФункции);
-
- Канал = Результат["channel"]["id"];
-
- Результат = OPI_Slack.ОтправитьСообщение(Токен, Канал, "Тест диалог");
-
- Обработать(Результат, "Slack", "ОткрытьДиалог", "Сообщение", ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура Slack_ЗакрытьДиалог(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Slack_Token"];
- Диалог = ПараметрыФункции["Slack_Dialog"];
-
- Результат = OPI_Slack.ЗакрытьДиалог(Токен, Диалог);
-
- // END
-
- Обработать(Результат, "Slack", "ЗакрытьДиалог");
-
-КонецПроцедуры
-
-Процедура Slack_ПолучитьСписокФайлов(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Slack_Token"];
- Канал = ПараметрыФункции["Slack_Channel"];
-
- Результат = OPI_Slack.ПолучитьСписокФайлов(Токен, Канал);
-
- // END
-
- Обработать(Результат, "Slack", "ПолучитьСписокФайлов");
-
- Результат = OPI_Slack.ПолучитьСписокФайлов(Токен);
-
- Обработать(Результат, "Slack", "ПолучитьСписокФайлов", "Все");
-
-КонецПроцедуры
-
-Процедура Slack_ЗагрузитьФайл(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Slack_Token"];
- Канал = ПараметрыФункции["Slack_Channel"];
- Файл = ПараметрыФункции["Document"]; // URL, Двоичные данные или Путь к файлу
-
- ИмяФайла = "megadoc.docx";
- Заголовок = "Новый файл";
-
- Результат = OPI_Slack.ЗагрузитьФайл(Токен, Файл, ИмяФайла, Заголовок);
-
- Обработать(Результат, "Slack", "ЗагрузитьФайл", , ПараметрыФункции, ИмяФайла); // SKIP
- Обработать(Результат, "Slack", "СделатьФайлПубличным"); // SKIP
- Обработать(Результат, "Slack", "СделатьФайлПриватным"); // SKIP
-
- Результат = OPI_Slack.ЗагрузитьФайл(Токен, Файл, ИмяФайла, Заголовок, Канал);
-
- // END
-
- Обработать(Результат, "Slack", "ЗагрузитьФайл", "Канал", ПараметрыФункции, ИмяФайла);
- OPI_Slack.УдалитьФайл(ПараметрыФункции["Slack_Token"], Результат["files"][0]["id"]);
-
-КонецПроцедуры
-
-Процедура Slack_СделатьФайлПубличным(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Slack_Token"];
- ИдентификаторФайла = ПараметрыФункции["Slack_FileID"];
-
- Результат = OPI_Slack.СделатьФайлПубличным(Токен, ИдентификаторФайла);
-
- // END
-
- Обработать(Результат, "Slack", "СделатьФайлПубличным", "Без записи");
-
-КонецПроцедуры
-
-Процедура Slack_СделатьФайлПриватным(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Slack_Token"];
- ИдентификаторФайла = ПараметрыФункции["Slack_FileID"];
-
- Результат = OPI_Slack.СделатьФайлПриватным(Токен, ИдентификаторФайла);
-
- // END
-
- Обработать(Результат, "Slack", "СделатьФайлПриватным", "Без записи");
-
-КонецПроцедуры
-
-Процедура Slack_ПолучитьДанныеФайла(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Slack_Token"];
- ИдентификаторФайла = ПараметрыФункции["Slack_FileID"];
-
- Результат = OPI_Slack.ПолучитьДанныеФайла(Токен, ИдентификаторФайла);
-
- // END
-
- Обработать(Результат, "Slack", "ПолучитьДанныеФайла", , "megadoc.docx");
-
-КонецПроцедуры
-
-Процедура Slack_УдалитьФайл(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Slack_Token"];
- ИдентификаторФайла = ПараметрыФункции["Slack_FileID"];
-
- Результат = OPI_Slack.УдалитьФайл(Токен, ИдентификаторФайла);
-
- // END
-
- Обработать(Результат, "Slack", "УдалитьФайл");
-
-КонецПроцедуры
-
-Процедура Slack_ПолучитьСписокВнешнихФайлов(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Slack_Token"];
- Канал = ПараметрыФункции["Slack_Channel"];
-
- Результат = OPI_Slack.ПолучитьСписокВнешнихФайлов(Токен, Канал);
-
- // END
-
- Обработать(Результат, "Slack", "ПолучитьСписокВнешнихФайлов");
-
- Результат = OPI_Slack.ПолучитьСписокВнешнихФайлов(Токен);
-
- Обработать(Результат, "Slack", "ПолучитьСписокВнешнихФайлов", "Все");
-
-КонецПроцедуры
-
-Процедура Slack_ДобавитьВнешнийФайл(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Slack_Token"];
- Заголовок = "Новый файл";
- Файл = ПараметрыФункции["Document"];
-
- Результат = OPI_Slack.ДобавитьВнешнийФайл(Токен, Файл, Заголовок);
-
- // END
-
- Обработать(Результат, "Slack", "ДобавитьВнешнийФайл", , ПараметрыФункции, Заголовок);
-
-КонецПроцедуры
-
-Процедура Slack_ПолучитьВнешнийФайл(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Slack_Token"];
- ИдентификаторФайла = ПараметрыФункции["Slack_ExtFileID"];
-
- Результат = OPI_Slack.ПолучитьВнешнийФайл(Токен, ИдентификаторФайла);
-
- // END
-
- Обработать(Результат, "Slack", "ПолучитьВнешнийФайл");
-
-КонецПроцедуры
-
-Процедура Slack_ОтправитьВнешнийФайл(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Slack_Token"];
- Канал = ПараметрыФункции["Slack_Channel"];
- ИдентификаторФайла = ПараметрыФункции["Slack_ExtFileID"];
-
- Результат = OPI_Slack.ОтправитьВнешнийФайл(Токен, ИдентификаторФайла, Канал);
-
- // END
-
- Обработать(Результат, "Slack", "ОтправитьВнешнийФайл");
-
-КонецПроцедуры
-
-Процедура Slack_УдалитьВнешнийФайл(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Slack_Token"];
- ИдентификаторФайла = ПараметрыФункции["Slack_ExtFileID"];
-
- Результат = OPI_Slack.УдалитьВнешнийФайл(Токен, ИдентификаторФайла);
-
- // END
-
- Обработать(Результат, "Slack", "УдалитьВнешнийФайл");
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область Airtable
-
-Процедура Airtable_СоздатьБазу(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Airtable_Token"];
- Область = ПараметрыФункции["Airtable_Workspace"];
- Наименование = "Тестовая база";
-
- МассивПолей = Новый Массив;
- МассивПолей.Добавить(OPI_Airtable.ПолучитьПолеНомера("Номер"));
- МассивПолей.Добавить(OPI_Airtable.ПолучитьПолеСтроковое("Строковое"));
-
- ИмяТаблицы = "Тестовая таблица";
-
- СоответствиеТаблиц = Новый Соответствие;
- СоответствиеТаблиц.Вставить(ИмяТаблицы, МассивПолей);
-
- Результат = OPI_Airtable.СоздатьБазу(Токен, Область, Наименование, СоответствиеТаблиц);
-
- // END
-
- Обработать(Результат, "Airtable", "СоздатьБазу", , ПараметрыФункции, ИмяТаблицы);
-
-КонецПроцедуры
-
-Процедура Airtable_ПолучитьТаблицыБазы(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Airtable_Token"];
- База = ПараметрыФункции["Airtable_Base"];
-
- Результат = OPI_Airtable.ПолучитьТаблицыБазы(Токен, База);
-
- // END
-
- Обработать(Результат, "Airtable", "ПолучитьТаблицыБазы");
-
-КонецПроцедуры
-
-Процедура Airtable_ПолучитьСписокБаз(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Airtable_Token"];
-
- Результат = OPI_Airtable.ПолучитьСписокБаз(Токен);
-
- // END
-
- Обработать(Результат, "Airtable", "ПолучитьСписокБаз");
-
-КонецПроцедуры
-
-Процедура Airtable_ПолучитьПолеНомера(ПараметрыФункции)
-
- Результат = OPI_Airtable.ПолучитьПолеНомера("Номер");
-
- // END
-
- Обработать(Результат, "Airtable", "ПолучитьПолеНомера");
-
-КонецПроцедуры
-
-Процедура Airtable_ПолучитьПолеСтроковое(ПараметрыФункции)
-
- Результат = OPI_Airtable.ПолучитьПолеСтроковое("Строковое");
-
- // END
-
- Обработать(Результат, "Airtable", "ПолучитьПолеСтроковое");
-
-КонецПроцедуры
-
-Процедура Airtable_ПолучитьПолеВложения(ПараметрыФункции)
-
- Результат = OPI_Airtable.ПолучитьПолеВложения("Вложение");
-
- // END
-
- Обработать(Результат, "Airtable", "ПолучитьПолеВложения");
-
-КонецПроцедуры
-
-Процедура Airtable_ПолучитьПолеФлажка(ПараметрыФункции)
-
- Результат = OPI_Airtable.ПолучитьПолеФлажка("Флажок");
-
- // END
-
- Обработать(Результат, "Airtable", "ПолучитьПолеФлажка");
-
-КонецПроцедуры
-
-Процедура Airtable_ПолучитьПолеДаты(ПараметрыФункции)
-
- Результат = OPI_Airtable.ПолучитьПолеДаты("Дата");
-
- // END
-
- Обработать(Результат, "Airtable", "ПолучитьПолеДаты");
-
-КонецПроцедуры
-
-Процедура Airtable_ПолучитьПолеТелефона(ПараметрыФункции)
-
- Результат = OPI_Airtable.ПолучитьПолеТелефона("Телефон");
-
- // END
-
- Обработать(Результат, "Airtable", "ПолучитьПолеТелефона");
-
-КонецПроцедуры
-
-Процедура Airtable_ПолучитьПолеПочты(ПараметрыФункции)
-
- Результат = OPI_Airtable.ПолучитьПолеПочты("Почта");
-
- // END
-
- Обработать(Результат, "Airtable", "ПолучитьПолеПочты");
-
-КонецПроцедуры
-
-Процедура Airtable_ПолучитьПолеСсылки(ПараметрыФункции)
-
- Результат = OPI_Airtable.ПолучитьПолеСсылки("Ссылка");
-
- // END
-
- Обработать(Результат, "Airtable", "ПолучитьПолеСсылки");
-
-КонецПроцедуры
-
-Процедура Airtable_СоздатьТаблицу(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Airtable_Token"];
- База = ПараметрыФункции["Airtable_Base"];
-
- МассивПолей = Новый Массив;
- МассивПолей.Добавить(OPI_Airtable.ПолучитьПолеНомера("Номер"));
- МассивПолей.Добавить(OPI_Airtable.ПолучитьПолеСтроковое("Строковое"));
- МассивПолей.Добавить(OPI_Airtable.ПолучитьПолеВложения("Вложение"));
- МассивПолей.Добавить(OPI_Airtable.ПолучитьПолеФлажка("Флажок"));
- МассивПолей.Добавить(OPI_Airtable.ПолучитьПолеДаты("Дата"));
- МассивПолей.Добавить(OPI_Airtable.ПолучитьПолеТелефона("Телефон"));
- МассивПолей.Добавить(OPI_Airtable.ПолучитьПолеПочты("Почта"));
- МассивПолей.Добавить(OPI_Airtable.ПолучитьПолеСсылки("Ссылка"));
-
- Наименование = "Тестовая таблица 2";
- Описание = "Новая таблица";
-
- Результат = OPI_Airtable.СоздатьТаблицу(Токен, База, Наименование, МассивПолей, Описание);
-
- // END
-
- Обработать(Результат, "Airtable", "СоздатьТаблицу", , ПараметрыФункции, Наименование, Описание);
-
-КонецПроцедуры
-
-Процедура Airtable_ИзменитьТаблицу(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Airtable_Token"];
- База = ПараметрыФункции["Airtable_Base"];
- Таблица = ПараметрыФункции["Airtable_Table"];
- Наименование = "Тестовая таблица 2 (изм.)";
- Описание = "Новая таблица (изм.)";
-
- Результат = OPI_Airtable.ИзменитьТаблицу(Токен, База, Таблица, Наименование, Описание);
-
- // END
-
- Обработать(Результат, "Airtable", "ИзменитьТаблицу", , Наименование, Описание);
-
-КонецПроцедуры
-
-Процедура Airtable_СоздатьПоле(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Airtable_Token"];
- База = ПараметрыФункции["Airtable_Base"];
- Таблица = ПараметрыФункции["Airtable_Table"];
- Имя = Строка(Новый УникальныйИдентификатор);
-
- Поле = OPI_Airtable.ПолучитьПолеНомера(Имя);
- Результат = OPI_Airtable.СоздатьПоле(Токен, База, Таблица, Поле);
-
- // END
-
- Обработать(Результат, "Airtable", "СоздатьПоле", , ПараметрыФункции, Имя);
-
-КонецПроцедуры
-
-Процедура Airtable_ИзменитьПоле(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Airtable_Token"];
- База = ПараметрыФункции["Airtable_Base"];
- Таблица = ПараметрыФункции["Airtable_Table"];
- Поле = ПараметрыФункции["Airtable_Field"];
-
- Имя = Строка(Новый УникальныйИдентификатор) + "(изм.)";
- Описание = "Новое описание";
-
- Результат = OPI_Airtable.ИзменитьПоле(Токен, База, Таблица, Поле, Имя, Описание);
-
- // END
-
- Обработать(Результат, "Airtable", "ИзменитьПоле", , Имя, Описание);
-
-КонецПроцедуры
-
-Процедура Airtable_СоздатьЗаписи(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Airtable_Token"];
- База = ПараметрыФункции["Airtable_Base"];
- Таблица = ПараметрыФункции["Airtable_Table"];
-
- Номер = 10;
- Строковое = "Привет";
-
- ОписаниеСтроки1 = Новый Структура("Номер,Строковое", Номер, Строковое);
- ОписаниеСтроки2 = Новый Структура("Номер,Строковое", Номер, Строковое);
-
- МассивОписаний = Новый Массив;
- МассивОписаний.Добавить(ОписаниеСтроки1);
- МассивОписаний.Добавить(ОписаниеСтроки2);
-
- Результат = OPI_Airtable.СоздатьЗаписи(Токен, База, Таблица, МассивОписаний);
-
- // END
-
- Обработать(Результат, "Airtable", "СоздатьЗаписи", , ПараметрыФункции);
-
- МассивУдаляемых = Новый Массив;
-
- Для Каждого Запись Из Результат["records"] Цикл
-
- ТекущаяЗапись = Запись["id"];
- МассивУдаляемых.Добавить(ТекущаяЗапись);
-
- КонецЦикла;
-
- OPI_Airtable.УдалитьЗаписи(Токен, База, Таблица, МассивУдаляемых);
-
- // Одиночное
-
- Результат = OPI_Airtable.СоздатьЗаписи(Токен, База, Таблица, ОписаниеСтроки1);
-
- Обработать(Результат, "Airtable", "СоздатьЗаписи", "Одиночная", ПараметрыФункции, Номер, Строковое);
-
-КонецПроцедуры
-
-Процедура Airtable_ПолучитьЗапись(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Airtable_Token"];
- База = ПараметрыФункции["Airtable_Base"];
- Таблица = ПараметрыФункции["Airtable_Table"];
- Запись = ПараметрыФункции["Airtable_Record"];
-
- Результат = OPI_Airtable.ПолучитьЗапись(Токен, База, Таблица, Запись);
-
- // END
-
- Обработать(Результат, "Airtable", "ПолучитьЗапись", , Запись);
-
-КонецПроцедуры
-
-Процедура Airtable_СоздатьКомментарий(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Airtable_Token"];
- База = ПараметрыФункции["Airtable_Base"];
- Таблица = ПараметрыФункции["Airtable_Table"];
- Запись = ПараметрыФункции["Airtable_Record"];
- Текст = "Тестовый комментарий";
-
- Результат = OPI_Airtable.СоздатьКомментарий(Токен, База, Таблица, Запись, Текст);
-
- // END
-
- Обработать(Результат, "Airtable", "СоздатьКомментарий", , ПараметрыФункции, Текст);
-
-КонецПроцедуры
-
-Процедура Airtable_ИзменитьКомментарий(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Airtable_Token"];
- База = ПараметрыФункции["Airtable_Base"];
- Таблица = ПараметрыФункции["Airtable_Table"];
- Запись = ПараметрыФункции["Airtable_Record"];
- Комментарий = ПараметрыФункции["Airtable_Comment"];
-
- Текст = "Тестовый комментарий (изм.)";
- Результат = OPI_Airtable.ИзменитьКомментарий(Токен, База, Таблица, Запись, Комментарий, Текст);
-
- // END
-
- Обработать(Результат, "Airtable", "ИзменитьКомментарий", , Текст);
-
-КонецПроцедуры
-
-Процедура Airtable_ПолучитьКомментарии(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Airtable_Token"];
- База = ПараметрыФункции["Airtable_Base"];
- Таблица = ПараметрыФункции["Airtable_Table"];
- Запись = ПараметрыФункции["Airtable_Record"];
-
- Результат = OPI_Airtable.ПолучитьКомментарии(Токен, База, Таблица, Запись);
-
- // END
-
- Обработать(Результат, "Airtable", "ПолучитьКомментарии");
-
-КонецПроцедуры
-
-Процедура Airtable_УдалитьКомментарий(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Airtable_Token"];
- База = ПараметрыФункции["Airtable_Base"];
- Таблица = ПараметрыФункции["Airtable_Table"];
- Запись = ПараметрыФункции["Airtable_Record"];
- Комментарий = ПараметрыФункции["Airtable_Comment"];
-
- Результат = OPI_Airtable.УдалитьКомментарий(Токен, База, Таблица, Запись, Комментарий);
-
- // END
-
- Обработать(Результат, "Airtable", "УдалитьКомментарий", , Комментарий);
-
-КонецПроцедуры
-
-Процедура Airtable_ПолучитьСписокЗаписей(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Airtable_Token"];
- База = ПараметрыФункции["Airtable_Base"];
- Таблица = ПараметрыФункции["Airtable_Table"];
-
- Результат = OPI_Airtable.ПолучитьСписокЗаписей(Токен, База, Таблица);
-
- // END
-
- Обработать(Результат, "Airtable", "ПолучитьСписокЗаписей");
-
-КонецПроцедуры
-
-Процедура Airtable_УдалитьЗаписи(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Airtable_Token"];
- База = ПараметрыФункции["Airtable_Base"];
- Таблица = ПараметрыФункции["Airtable_Table"];
- Запись = ПараметрыФункции["Airtable_Record"];
-
- Результат = OPI_Airtable.УдалитьЗаписи(Токен, База, Таблица, Запись);
-
- // END
-
- Обработать(Результат, "Airtable", "УдалитьЗаписи");
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область Twitter
-
-Процедура Twitter_ПолучитьТокен(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыАвторизацииТвиттер();
- Код = "123456";
-
- Результат = OPI_Twitter.ПолучитьТокен(Код, Параметры);
-
- // END
-
- Обработать(Результат, "Twitter", "ПолучитьТокен");
-
-КонецПроцедуры
-
-Процедура Twitter_ПолучитьСсылкуАвторизации(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыАвторизацииТвиттер();
- Результат = OPI_Twitter.ПолучитьСсылкуАвторизации(Параметры);
-
- // END
-
- Обработать(Результат, "Twitter", "ПолучитьСсылкуАвторизации");
-
-КонецПроцедуры
-
-Процедура Twitter_ОбновитьТокен(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыАвторизацииТвиттер();
- Результат = OPI_Twitter.ОбновитьТокен(Параметры);
-
- // END
-
- Обработать(Результат, "Twitter", "ОбновитьТокен");
-
-КонецПроцедуры
-
-Процедура Twitter_СоздатьТекстовыйТвит(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыАвторизацииТвиттер();
- Текст = "Тестовый твитт" + Строка(Новый УникальныйИдентификатор);
-
- Результат = OPI_Twitter.СоздатьТекстовыйТвит(Текст, Параметры);
-
- // END
-
- Обработать(Результат, "Twitter", "СоздатьТекстовыйТвит", , Текст);
-
-КонецПроцедуры
-
-Процедура Twitter_СоздатьТвитКартинки(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыАвторизацииТвиттер();
- Текст = "Тестовый твитт" + Строка(Новый УникальныйИдентификатор);
-
- Картинка = ПараметрыФункции["Picture"]; // URL, Двоичные или Путь к файлу
- Картинка2 = ПараметрыФункции["Picture2"]; // URL, Двоичные или Путь к файлу
-
- МассивКартинок = Новый Массив;
- МассивКартинок.Добавить(Картинка);
- МассивКартинок.Добавить(Картинка2);
-
- Результат = OPI_Twitter.СоздатьТвитКартинки(Текст, МассивКартинок, Параметры);
-
- Обработать(Результат, "Twitter", "СоздатьТвитКартинки", , Текст); // SKIP
-
- Текст = "Тестовый твитт" + Строка(Новый УникальныйИдентификатор);
- Результат = OPI_Twitter.СоздатьТвитКартинки(Текст, Картинка, Параметры);
-
- // END
-
- Обработать(Результат, "Twitter", "СоздатьТвитКартинки", "Одиночная", Текст);
-
- Картинка = OPI_ЗапросыHTTP.Get(Картинка);
-
- Текст = "Тестовый твитт" + Строка(Новый УникальныйИдентификатор);
- Результат = OPI_Twitter.СоздатьТвитКартинки(Текст, Картинка, Параметры);
-
- Обработать(Результат, "Twitter", "СоздатьТвитКартинки", "Двоичные", Текст);
-
-КонецПроцедуры
-
-Процедура Twitter_СоздатьТвитВидео(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыАвторизацииТвиттер();
- Текст = "Тестовый твитт" + Строка(Новый УникальныйИдентификатор);
-
- Видео = ПараметрыФункции["Video"]; // URL, Двоичные или Путь к файлу
- Видео2 = ПараметрыФункции["Video"]; // URL, Двоичные или Путь к файлу
-
- МассивВидео = Новый Массив;
- МассивВидео.Добавить(Видео);
- МассивВидео.Добавить(Видео2);
-
- Результат = OPI_Twitter.СоздатьТвитВидео(Текст, МассивВидео, Параметры);
-
- Обработать(Результат, "Twitter", "СоздатьТвитВидео", , Текст); // SKIP
-
- Текст = "Тестовый твитт" + Строка(Новый УникальныйИдентификатор);
- Результат = OPI_Twitter.СоздатьТвитВидео(Текст, Видео, Параметры);
-
- // END
-
- Обработать(Результат, "Twitter", "СоздатьТвитВидео", "Одиночная", Текст);
-
- Видео = OPI_ЗапросыHTTP.Get(Видео);
-
- Текст = "Тестовый твитт" + Строка(Новый УникальныйИдентификатор);
- Результат = OPI_Twitter.СоздатьТвитВидео(Текст, Видео, Параметры);
-
- Обработать(Результат, "Twitter", "СоздатьТвитВидео", "Двоичные", Текст);
-
-КонецПроцедуры
-
-Процедура Twitter_СоздатьТвитГифки(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыАвторизацииТвиттер();
- Текст = "Тестовый твитт" + Строка(Новый УникальныйИдентификатор);
-
- Гифка = ПараметрыФункции["GIF"]; // URL, Двоичные или Путь к файлу
- Гифка2 = ПараметрыФункции["GIF"]; // URL, Двоичные или Путь к файлу
-
- МассивГифок = Новый Массив;
- МассивГифок.Добавить(Гифка);
- МассивГифок.Добавить(Гифка2);
-
- Результат = OPI_Twitter.СоздатьТвитГифки(Текст, МассивГифок, Параметры);
-
- Обработать(Результат, "Twitter", "СоздатьТвитГифки", , Текст); // SKIP
-
- Текст = "Тестовый твитт" + Строка(Новый УникальныйИдентификатор);
- Результат = OPI_Twitter.СоздатьТвитГифки(Текст, Гифка, Параметры);
-
- // END
-
- Обработать(Результат, "Twitter", "СоздатьТвитГифки", "Одиночная", Текст);
-
- Гифка = OPI_ЗапросыHTTP.Get(Гифка);
-
- Текст = "Тестовый твитт" + Строка(Новый УникальныйИдентификатор);
- Результат = OPI_Twitter.СоздатьТвитГифки(Текст, Гифка, Параметры);
-
- Обработать(Результат, "Twitter", "СоздатьТвитГифки", "Двоичные", Текст);
-
-КонецПроцедуры
-
-Процедура Twitter_СоздатьТвитОпрос(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыАвторизацииТвиттер();
- Текст = "Тестовый твитт" + Строка(Новый УникальныйИдентификатор);
-
- МассивОтветов = Новый Массив;
- МассивОтветов.Добавить("Вариант 1");
- МассивОтветов.Добавить("Вариант 2");
-
- Результат = OPI_Twitter.СоздатьТвитОпрос(Текст, МассивОтветов, 60, Параметры);
-
- // END
-
- Обработать(Результат, "Twitter", "СоздатьТвитОпрос", , Текст);
-
-КонецПроцедуры
-
-Процедура Twitter_СоздатьПроизвольныйТвит(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыАвторизацииТвиттер();
- Текст = "Тестовый твитт" + Строка(Новый УникальныйИдентификатор);
-
- Картинка1 = ПараметрыФункции["Picture"]; // URL, Двоичные данные или Путь к файлу
- Картинка2 = ПараметрыФункции["Picture2"]; // URL, Двоичные данные или Путь к файлу
-
- МассивКартинок = Новый Массив;
- МассивКартинок.Добавить(Картинка1);
- МассивКартинок.Добавить(Картинка2);
-
- МассивМедиа = OPI_Twitter.ЗагрузитьМассивВложений(МассивКартинок, "tweet_image", Параметры);
- Результат = OPI_Twitter.СоздатьПроизвольныйТвит(Текст, МассивМедиа, , , Параметры);
-
- // END
-
- Обработать(Результат, "Twitter", "СоздатьПроизвольныйТвит", , Текст);
-
-КонецПроцедуры
-
-Процедура Twitter_ЗагрузитьМассивВложений(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыАвторизацииТвиттер();
-
- Картинка1 = ПараметрыФункции["Picture"]; // URL, Двоичные данные или Путь к файлу
- Картинка2 = ПараметрыФункции["Picture2"]; // URL, Двоичные данные или Путь к файлу
-
- МассивКартинок = Новый Массив;
- МассивКартинок.Добавить(Картинка1);
- МассивКартинок.Добавить(Картинка2);
-
- Результат = OPI_Twitter.ЗагрузитьМассивВложений(МассивКартинок, "tweet_image", Параметры);
-
- // END
-
- Обработать(Результат, "Twitter", "ЗагрузитьМассивВложений");
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область Notion
-
-Процедура Notion_СоздатьСтраницу(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Notion_Token"];
- Родитель = ПараметрыФункции["Notion_Parent"];
- Заголовок = "Тестовый заголовок";
-
- Результат = OPI_Notion.СоздатьСтраницу(Токен, Родитель, Заголовок);
-
- // END
-
- Обработать(Результат, "Notion", "СоздатьСтраницу", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура Notion_СоздатьБазуДанных(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Notion_Token"];
- Родитель = ПараметрыФункции["Notion_Parent"];
- Заголовок = "Тестовый заголовок";
-
- Свойства = Новый Соответствие;
- Свойства.Вставить("Имя" , "title");
- Свойства.Вставить("Описание" , "rich_text");
- Свойства.Вставить("Номер" , "number");
- Свойства.Вставить("Дата создания", "date");
- Свойства.Вставить("Картинка" , "files");
- Свойства.Вставить("Активен" , "checkbox");
- Свойства.Вставить("Сайт" , "url");
- Свойства.Вставить("Почта" , "email");
- Свойства.Вставить("Телефон" , "phone_number");
- Свойства.Вставить("Пользователь" , "people");
-
- ВыборЗначения = Новый Соответствие;
- ВыборЗначения.Вставить("Новый" , "green");
- ВыборЗначения.Вставить("В работе" , "yellow");
- ВыборЗначения.Вставить("Удаленный", "red");
-
- Свойства.Вставить("Статус", ВыборЗначения);
-
- Результат = OPI_Notion.СоздатьБазуДанных(Токен, Родитель, Заголовок, Свойства);
-
- // END
-
- Обработать(Результат, "Notion", "СоздатьБазуДанных", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура Notion_ИзменитьСвойстваБазы(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Notion_Token"];
- База = ПараметрыФункции["Notion_Base"];
-
- Заголовок = "Тестовый заголовок";
- Описание = "Тестовое описание";
-
- Свойства = Новый Соответствие;
- Свойства.Вставить("Почта", "rich_text"); // Тип поля "Почта" будет изменен с email на текст
- Свойства.Вставить("Сайт"); // Поле "Сайт" будет удалено
-
- Результат = OPI_Notion.ИзменитьСвойстваБазы(Токен, База, Свойства, Заголовок, Описание);
-
- // END
-
- Обработать(Результат, "Notion", "ИзменитьСвойстваБазы");
-
-КонецПроцедуры
-
-Процедура Notion_ПолучитьСтраницу(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Notion_Token"];
- Страница = ПараметрыФункции["Notion_Page"];
-
- Результат = OPI_Notion.ПолучитьСтраницу(Токен, Страница);
-
- // END
-
- Обработать(Результат, "Notion", "ПолучитьСтраницу");
-
-КонецПроцедуры
-
-Процедура Notion_ПолучитьБазуДанных(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Notion_Token"];
- База = ПараметрыФункции["Notion_Base"];
-
- Результат = OPI_Notion.ПолучитьБазуДанных(Токен, База);
-
- // END
-
- Обработать(Результат, "Notion", "ПолучитьБазуДанных");
-
-КонецПроцедуры
-
-Процедура Notion_СоздатьСтраницуВБазу(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Notion_Token"];
- База = ПараметрыФункции["Notion_Base"];
- Картинка_ = ПараметрыФункции["Picture"]; // URL, Двоичные данные или Путь к файлу
-
- Картинка = Новый Соответствие;
- Картинка.Вставить("Лого", Картинка_);
-
- Свойства = Новый Соответствие;
- Свойства.Вставить("Имя" , "ООО Вектор");
- Свойства.Вставить("Описание" , "Наш первый клиент");
- Свойства.Вставить("Номер" , 1);
- Свойства.Вставить("Дата создания", OPI_Инструменты.ПолучитьТекущуюДату());
- Свойства.Вставить("Картинка" , Картинка);
- Свойства.Вставить("Активен" , Истина);
- Свойства.Вставить("Сайт" , "https://vector.ru");
- Свойства.Вставить("Почта" , "mail@vector.ru");
- Свойства.Вставить("Телефон" , "88005553535");
- Свойства.Вставить("Статус" , "Новый");
-
- Результат = OPI_Notion.СоздатьСтраницуВБазу(Токен, База, Свойства);
-
- // END
-
- Обработать(Результат, "Notion", "СоздатьСтраницуВБазу", , База);
-
-КонецПроцедуры
-
-Процедура Notion_ИзменитьСвойстваСтраницы(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Notion_Token"];
- Страница = ПараметрыФункции["Notion_Page"];
- Иконка = ПараметрыФункции["Picture"];
- Обложка = ПараметрыФункции["Picture2"];
- Архивировать = Ложь;
-
- Свойства = Новый Соответствие;
- Свойства.Вставить("Активен", Ложь);
- Свойства.Вставить("Почта" , "vector@mail.ru");
-
- Результат = OPI_Notion.ИзменитьСвойстваСтраницы(Токен, Страница, Свойства, Иконка, Обложка, Архивировать);
-
- // END
-
- Обработать(Результат, "Notion", "ИзменитьСвойстваСтраницы");
-
-КонецПроцедуры
-
-Процедура Notion_ВернутьБлок(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Notion_Token"];
- Блок = ПараметрыФункции["Notion_Block"];
-
- Результат = OPI_Notion.ВернутьБлок(Токен, Блок);
-
- // END
-
- Обработать(Результат, "Notion", "ВернутьБлок");
-
-КонецПроцедуры
-
-Процедура Notion_СоздатьБлок(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Notion_Token"];
- Родитель = ПараметрыФункции["Notion_Parent"];
- Блок = ПараметрыФункции["Notion_Block"];
-
- ДанныеБлока = OPI_Notion.ВернутьБлок(Токен, Блок);
- Результат = OPI_Notion.СоздатьБлок(Токен, Родитель, ДанныеБлока);
-
- // END
-
- Обработать(Результат, "Notion", "СоздатьБлок", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура Notion_ВернутьДочерниеБлоки(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Notion_Token"];
- Блок = ПараметрыФункции["Notion_NewBlock"];
-
- Результат = OPI_Notion.ВернутьДочерниеБлоки(Токен, Блок);
-
- // END
-
- Обработать(Результат, "Notion", "ВернутьДочерниеБлоки");
-
-КонецПроцедуры
-
-Процедура Notion_УдалитьБлок(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Notion_Token"];
- Блок = ПараметрыФункции["Notion_NewBlock"];
-
- Результат = OPI_Notion.УдалитьБлок(Токен, Блок);
-
- // END
-
- Обработать(Результат, "Notion", "УдалитьБлок");
-
-КонецПроцедуры
-
-Процедура Notion_СписокПользователей(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Notion_Token"];
-
- Результат = OPI_Notion.СписокПользователей(Токен);
-
- // END
-
- Обработать(Результат, "Notion", "СписокПользователей");
-
-КонецПроцедуры
-
-Процедура Notion_ПолучитьДанныеПользователя(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Notion_Token"];
- Пользователь = ПараметрыФункции["Notion_User"];
-
- Результат = OPI_Notion.ПолучитьДанныеПользователя(Токен, Пользователь);
-
- // END
-
- Обработать(Результат, "Notion", "ПолучитьДанныеПользователя");
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область Dropbox
-
-Процедура Dropbox_ПолучитьСсылкуАвторизации(ПараметрыФункции)
-
- КлючПриложения = ПараметрыФункции["Dropbox_Appkey"];
- Результат = OPI_Dropbox.ПолучитьСсылкуАвторизации(КлючПриложения);
-
- // END
-
- Обработать(Результат, "Dropbox", "ПолучитьСсылкуАвторизации");
-
-КонецПроцедуры
-
-Процедура Dropbox_ПолучитьТокен(ПараметрыФункции)
-
- КлючПриложения = ПараметрыФункции["Dropbox_Appkey"];
- СекретПриложения = ПараметрыФункции["Dropbox_Appsecret"];
- Код = ПараметрыФункции["Dropbox_Code"];
-
- Результат = OPI_Dropbox.ПолучитьТокен(КлючПриложения, СекретПриложения, Код);
-
- // END
-
- Обработать(Результат, "Dropbox", "ПолучитьТокен");
-
-КонецПроцедуры
-
-Процедура Dropbox_ОбновитьТокен(ПараметрыФункции)
-
- КлючПриложения = ПараметрыФункции["Dropbox_Appkey"];
- СекретПриложения = ПараметрыФункции["Dropbox_Appsecret"];
- РефрешТокен = ПараметрыФункции["Dropbox_Refresh"];
-
- Результат = OPI_Dropbox.ОбновитьТокен(КлючПриложения, СекретПриложения, РефрешТокен);
-
- // END
-
- Обработать(Результат, "Dropbox", "ОбновитьТокен");
-
-КонецПроцедуры
-
-Процедура Dropbox_ПолучитьИнформациюОбОбъекте(ПараметрыФункции)
-
- Путь = "/New/pic.png";
- Токен = ПараметрыФункции["Dropbox_Token"];
-
- Результат = OPI_Dropbox.ПолучитьИнформациюОбОбъекте(Токен, Путь, Истина);
-
- // END
-
- Обработать(Результат, "Dropbox", "ПолучитьИнформациюОбОбъекте", , Путь);
-
-КонецПроцедуры
-
-Процедура Dropbox_ПолучитьПревью(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Dropbox_Token"];
- Путь = "/New/mydoc.docx";
-
- Результат = OPI_Dropbox.ПолучитьПревью(Токен, Путь);
-
- // END
-
- Обработать(Результат, "Dropbox", "ПолучитьПревью");
-
-КонецПроцедуры
-
-Процедура Dropbox_ЗагрузитьФайл(ПараметрыФункции)
-
- Путь = "/New/pic.png";
- Токен = ПараметрыФункции["Dropbox_Token"];
- Картинка = ПараметрыФункции["Picture"];
-
- КартинкаПуть = ПолучитьИмяВременногоФайла("png");
- КопироватьФайл(Картинка, КартинкаПуть);
-
- Результат = OPI_Dropbox.ЗагрузитьФайл(Токен, КартинкаПуть, Путь, Истина);
-
- // END
-
- Обработать(Результат, "Dropbox", "ЗагрузитьФайл", , Путь);
-
- OPI_Инструменты.УдалитьФайлВПопытке(КартинкаПуть, "Не удалось удалить временный файл после теста!");
-
- Если Не OPI_Инструменты.ЭтоOneScript() И ПараметрыФункции.Свойство("Big") Тогда
-
- БольшойФайл = ПараметрыФункции["Big"];
-
- Путь = "/giant.tmp";
- Результат = OPI_Dropbox.ЗагрузитьФайл(Токен, БольшойФайл, Путь, Истина);
-
- Обработать(Результат, "Dropbox", "ЗагрузитьФайл", "Большой", Путь);
-
- КонецЕсли;
-
-КонецПроцедуры
-
-Процедура Dropbox_ЗагрузитьФайлПоURL(ПараметрыФункции)
-
- Путь = "/New/url_doc.docx";
- Токен = ПараметрыФункции["Dropbox_Token"];
- URL = ПараметрыФункции["Document"];
-
- Результат = OPI_Dropbox.ЗагрузитьФайлПоURL(Токен, URL, Путь);
-
- // END
-
- Обработать(Результат, "Dropbox", "ЗагрузитьФайлПоURL", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура Dropbox_ПолучитьСтатусЗагрузкиПоURL(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Dropbox_Token"];
- ИДРаботы = ПараметрыФункции["Dropbox_Job"];
- Статус = "in_progress";
-
- Пока Статус = "in_progress" Цикл
-
- Результат = OPI_Dropbox.ПолучитьСтатусЗагрузкиПоURL(Токен, ИДРаботы);
- Статус = Результат[".tag"];
-
- OPI_Инструменты.Пауза(5);
-
- Обработать(Результат, "Dropbox", "ПолучитьСтатусЗагрузкиПоURL", "Прогресс"); // SKIP
-
- КонецЦикла;
-
- // END
-
- Обработать(Результат, "Dropbox", "ПолучитьСтатусЗагрузкиПоURL");
-
- Токен = ПараметрыФункции["Dropbox_Token"];
- Путь = "/New/url_doc.docx";
- Результат = OPI_Dropbox.УдалитьОбъект(Токен, Путь);
-
- Обработать(Результат, "Dropbox", "ПолучитьСтатусЗагрузкиПоURL", "Удаление", Путь);
-
-КонецПроцедуры
-
-Процедура Dropbox_УдалитьОбъект(ПараметрыФункции)
-
- Путь = "/New/pic.png";
- Токен = ПараметрыФункции["Dropbox_Token"];
-
- Результат = OPI_Dropbox.УдалитьОбъект(Токен, Путь);
-
- // END
-
- Обработать(Результат, "Dropbox", "УдалитьОбъект", , Путь);
-
-КонецПроцедуры
-
-Процедура Dropbox_КопироватьОбъект(ПараметрыФункции)
-
- Оригинал = "/New/pic.png";
- Копия = "/New/pic_copy.png";
- Токен = ПараметрыФункции["Dropbox_Token"];
-
- Результат = OPI_Dropbox.КопироватьОбъект(Токен, Оригинал, Копия);
-
- // END
-
- Обработать(Результат, "Dropbox", "КопироватьОбъект", , Копия);
-
- Результат = OPI_Dropbox.УдалитьОбъект(Токен, Копия);
-
- Обработать(Результат, "Dropbox", "КопироватьОбъект", "Удаление", Копия);
-
-КонецПроцедуры
-
-Процедура Dropbox_ПереместитьОбъект(ПараметрыФункции)
-
- ОригиналныйПуть = "/New/pic.png";
- ЦелевойПуть = "/pic.png";
- Токен = ПараметрыФункции["Dropbox_Token"];
-
- Результат = OPI_Dropbox.ПереместитьОбъект(Токен, ОригиналныйПуть, ЦелевойПуть);
-
- // END
-
- Обработать(Результат, "Dropbox", "ПереместитьОбъект", , ЦелевойПуть);
-
- Результат = OPI_Dropbox.ПереместитьОбъект(Токен, ЦелевойПуть, ОригиналныйПуть);
-
- Обработать(Результат, "Dropbox", "ПереместитьОбъект", "Удаление", ОригиналныйПуть);
-
-КонецПроцедуры
-
-Процедура Dropbox_СоздатьПапку(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Dropbox_Token"];
- Путь = "/Новый каталог";
-
- Результат = OPI_Dropbox.СоздатьПапку(Токен, Путь);
-
- // END
-
- Обработать(Результат, "Dropbox", "СоздатьПапку", , Путь);
-
- OPI_Dropbox.УдалитьОбъект(Токен, Путь);
-
-КонецПроцедуры
-
-Процедура Dropbox_СкачатьФайл(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Dropbox_Token"];
- Путь = "/New/pic.png";
-
- Результат = OPI_Dropbox.СкачатьФайл(Токен, Путь);
-
- // END
-
- Обработать(Результат, "Dropbox", "СкачатьФайл");
-
-КонецПроцедуры
-
-Процедура Dropbox_СкачатьПапку(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Dropbox_Token"];
- Путь = "/New";
-
- Результат = OPI_Dropbox.СкачатьПапку(Токен, Путь);
-
- // END
-
- Обработать(Результат, "Dropbox", "СкачатьПапку");
-
-КонецПроцедуры
-
-Процедура Dropbox_ПолучитьСписокФайловПапки(ПараметрыФункции)
-
- Путь = "/New";
- Токен = ПараметрыФункции["Dropbox_Token"];
-
- Результат = OPI_Dropbox.ПолучитьСписокФайловПапки(Токен, Путь, Истина);
-
- // END
-
- Обработать(Результат, "Dropbox", "ПолучитьСписокФайловПапки");
-
-КонецПроцедуры
-
-Процедура Dropbox_ПолучитьСписокВерсийОбъекта(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Dropbox_Token"];
- Путь = "/New/pic.png";
-
- Результат = OPI_Dropbox.ПолучитьСписокВерсийОбъекта(Токен, Путь, 1);
-
- // END
-
- Обработать(Результат, "Dropbox", "ПолучитьСписокВерсийОбъекта", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура Dropbox_ВосстановитьОбъектКВерсии(ПараметрыФункции)
-
- Версия = ПараметрыФункции["Dropbox_FileRevision"];
- Токен = ПараметрыФункции["Dropbox_Token"];
- Путь = "/New/pic.png";
-
- Результат = OPI_Dropbox.ВосстановитьОбъектКВерсии(Токен, Путь, Версия);
-
- // END
-
- Обработать(Результат, "Dropbox", "ВосстановитьОбъектКВерсии", , Путь);
-
-КонецПроцедуры
-
-Процедура Dropbox_ПолучитьСписокТегов(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Dropbox_Token"];
-
- МассивПутей = Новый Массив;
- МассивПутей.Добавить("/New/Dogs.mp3");
- МассивПутей.Добавить("/New/mydoc.docx");
-
- Результат = OPI_Dropbox.ПолучитьСписокТегов(Токен, МассивПутей);
-
- // END
-
- Обработать(Результат, "Dropbox", "ПолучитьСписокТегов", , ПараметрыФункции, МассивПутей);
-
-КонецПроцедуры
-
-Процедура Dropbox_ДобавитьТег(ПараметрыФункции)
-
- Тег = "Важное";
- Токен = ПараметрыФункции["Dropbox_Token"];
- Путь = "/New/mydoc.docx";
-
- Результат = OPI_Dropbox.ДобавитьТег(Токен, Путь, Тег);
-
- // END
-
- Обработать(Результат, "Dropbox", "ДобавитьТег");
-
-КонецПроцедуры
-
-Процедура Dropbox_УдалитьТег(ПараметрыФункции)
-
- Тег = "Важное";
- Токен = ПараметрыФункции["Dropbox_Token"];
- Путь = "/New/mydoc.docx";
-
- Результат = OPI_Dropbox.УдалитьТег(Токен, Путь, Тег);
-
- // END
-
- Обработать(Результат, "Dropbox", "УдалитьТег");
-
-КонецПроцедуры
-
-Процедура Dropbox_ПолучитьИнформациюОбАккаунте(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Dropbox_Token"];
-
- Результат = OPI_Dropbox.ПолучитьИнформациюОбАккаунте(Токен);
-
- // END
-
- Обработать(Результат, "Dropbox", "ПолучитьИнформациюОбАккаунте");
-
- IDАккаунта = Результат["account_id"];
- Результат = OPI_Dropbox.ПолучитьИнформациюОбАккаунте(Токен, IDАккаунта);
-
- Обработать(Результат, "Dropbox", "ПолучитьИнформациюОбАккаунте", "По ID");
-
-КонецПроцедуры
-
-Процедура Dropbox_ПолучитьДанныеИспользованияПространства(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Dropbox_Token"];
-
- Результат = OPI_Dropbox.ПолучитьДанныеИспользованияПространства(Токен);
-
- // END
-
- Обработать(Результат, "Dropbox", "ПолучитьДанныеИспользованияПространства");
-
-КонецПроцедуры
-
-Процедура Dropbox_ДобавитьПользователейКФайлу(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Dropbox_Token"];
- Почта = ПараметрыФункции["Dropbox_OtherUser"];
- Файл = ПараметрыФункции["Dropbox_FileID"];
-
- Результат = OPI_Dropbox.ДобавитьПользователейКФайлу(Токен, Файл, Почта, Ложь);
-
- // END
-
- Обработать(Результат, "Dropbox", "ДобавитьПользователейКФайлу", , Почта, Ложь);
-
- Почты = Новый Массив;
- Почты.Добавить(Почта);
-
- Результат = OPI_Dropbox.ДобавитьПользователейКФайлу(Токен, Файл, Почты, Истина);
-
- Обработать(Результат, "Dropbox", "ДобавитьПользователейКФайлу", , Почта, Истина);
-
-КонецПроцедуры
-
-Процедура Dropbox_ОпубликоватьПапку(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Dropbox_Token"];
- Путь = "/New";
-
- Результат = OPI_Dropbox.ОпубликоватьПапку(Токен, Путь);
-
- // END
-
- Обработать(Результат, "Dropbox", "ОпубликоватьПапку", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура Dropbox_ОтменитьПубликациюПапки(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Dropbox_Token"];
- Папка = ПараметрыФункции["Dropbox_SharedFolder"];
-
- Результат = OPI_Dropbox.ОтменитьПубликациюПапки(Токен, Папка);
-
- Обработать(Результат, "Dropbox", "ОтменитьПубликациюПапки"); // SKIP
-
- ТекущийСтатус = "in_progress";
- IDРаботы = Результат["async_job_id"];
-
- Пока ТекущийСтатус = "in_progress" Цикл
- Результат = OPI_Dropbox.ПолучитьСтатусАсинхронногоИзменения(Токен, IDРаботы);
- ТекущийСтатус = Результат[".tag"];
- OPI_Инструменты.Пауза(3);
- КонецЦикла;
-
- // END
-
- Обработать(Результат, "Dropbox", "ОтменитьПубликациюПапки", "Окончание", ПараметрыФункции, IDРаботы);
-
-КонецПроцедуры
-
-Процедура Dropbox_ПолучитьСтатусАсинхронногоИзменения(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Dropbox_Token"];
- IDРаботы = ПараметрыФункции["Dropbox_NewJobID"];
-
- Результат = OPI_Dropbox.ПолучитьСтатусАсинхронногоИзменения(Токен, IDРаботы);
-
- // END
-
- Обработать(Результат, "Dropbox", "ПолучитьСтатусАсинхронногоИзменения");
-
-КонецПроцедуры
-
-Процедура Dropbox_ДобавитьПользователейКПапке(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Dropbox_Token"];
- Почта = ПараметрыФункции["Dropbox_OtherUser"];
- Папка = ПараметрыФункции["Dropbox_SharedFolder"]; // shared_folder_id
-
- Результат = OPI_Dropbox.ДобавитьПользователейКПапке(Токен, Папка, Почта, Ложь);
-
- // END
-
- Обработать(Результат, "Dropbox", "ДобавитьПользователейКПапке");
-
- Почты = Новый Массив;
- Почты.Добавить(Почта);
-
- Результат = OPI_Dropbox.ДобавитьПользователейКПапке(Токен, Папка, Почты, Истина);
-
- Обработать(Результат, "Dropbox", "ДобавитьПользователейКПапке", "Дополнительный");
-
-КонецПроцедуры
-
-Процедура Dropbox_ОтменитьПубликациюФайла(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Dropbox_Token"];
- Файл = ПараметрыФункции["Dropbox_FileID"];
-
- Результат = OPI_Dropbox.ОтменитьПубликациюФайла(Токен, Файл);
-
- // END
-
- Обработать(Результат, "Dropbox", "ОтменитьПубликациюФайла");
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область Bitrix24
-
-Процедура Bitrix24_ПолучитьСсылкуАвторизацииПриложения(ПараметрыФункции)
-
- Домен = ПараметрыФункции["Bitrix24_Domain"];
- ClientID = ПараметрыФункции["Bitrix24_ClientID"];
-
- Результат = OPI_Bitrix24.ПолучитьСсылкуАвторизацииПриложения(Домен, ClientID);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьСсылкуАвторизацииПриложения");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьТокен(ПараметрыФункции)
-
- ClientID = ПараметрыФункции["Bitrix24_ClientID"];
- ClientSecret = ПараметрыФункции["Bitrix24_ClientSecret"];
- Code = ПараметрыФункции["Bitrix24_Code"];
-
- Результат = OPI_Bitrix24.ПолучитьТокен(ClientID, ClientSecret, Code);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьТокен");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ОбновитьТокен(ПараметрыФункции)
-
- ClientID = ПараметрыФункции["Bitrix24_ClientID"];
- ClientSecret = ПараметрыФункции["Bitrix24_ClientSecret"];
- Refresh = ПараметрыФункции["Bitrix24_Refresh"];
-
- Результат = OPI_Bitrix24.ОбновитьТокен(ClientID, ClientSecret, Refresh);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ОбновитьТокен");
-
-КонецПроцедуры
-
-Процедура Bitrix24_СерверноеВремя(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Результат = OPI_Bitrix24.СерверноеВремя(URL);
-
- Обработать(Результат, "Bitrix24", "СерверноеВремя", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Результат = OPI_Bitrix24.СерверноеВремя(URL, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "СерверноеВремя");
-
-КонецПроцедуры
-
-Процедура Bitrix24_СоздатьНовость(ПараметрыФункции)
-
- Текст = "Текст новости";
- Заголовок = "Заголовок новости";
- Картинка1 = ПараметрыФункции["Picture"]; // URL, Путь или Двоичные данные
- Картинка2 = ПараметрыФункции["Picture2"]; // URL, Путь или Двоичные данные
-
- Файлы = Новый Соответствие;
- Файлы.Вставить("1.png", Картинка1);
- Файлы.Вставить("2.png", Картинка2);
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Результат = OPI_Bitrix24.СоздатьНовость(URL, Текст, , Файлы, Заголовок, Истина);
-
- Обработать(Результат, "Bitrix24", "СоздатьНовость", "Хук", ПараметрыФункции); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Результат = OPI_Bitrix24.СоздатьНовость(URL, Текст, , Файлы, Заголовок, , Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "СоздатьНовость", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура Bitrix24_ИзменитьНовость(ПараметрыФункции)
-
- Текст = "Новый текст новости";
- Заголовок = "Новый заголовок новости";
- Картинка1 = ПараметрыФункции["Picture"]; // URL, Путь или Двоичные данные
- IDНовости = ПараметрыФункции["Bitrix24_PostID"];
-
- Файлы = Новый Соответствие;
- Файлы.Вставить("1.png", Картинка1);
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Результат = OPI_Bitrix24.ИзменитьНовость(URL, IDНовости, Текст, , Файлы, Заголовок);
-
- Обработать(Результат, "Bitrix24", "ИзменитьНовость", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDНовости = ПараметрыФункции["Bitrix24_HookPostID"];
-
- Результат = OPI_Bitrix24.ИзменитьНовость(URL, IDНовости, Текст, , Файлы, Заголовок, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ИзменитьНовость");
-
-КонецПроцедуры
-
-Процедура Bitrix24_УдалитьНовость(ПараметрыФункции)
-
- IDНовости = ПараметрыФункции["Bitrix24_HookPostID"];
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Результат = OPI_Bitrix24.УдалитьНовость(URL, IDНовости);
-
- Обработать(Результат, "Bitrix24", "УдалитьНовость", "Хук"); // SKIP
-
- IDНовости = ПараметрыФункции["Bitrix24_PostID"];
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Результат = OPI_Bitrix24.УдалитьНовость(URL, IDНовости, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "УдалитьНовость");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьСписокПросмотревшихВажное(ПараметрыФункции)
-
- IDНовости = ПараметрыФункции["Bitrix24_HookPostID"];
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Результат = OPI_Bitrix24.ПолучитьСписокПросмотревшихВажное(URL, IDНовости);
-
- Обработать(Результат, "Bitrix24", "ПолучитьСписокПросмотревшихВажное", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Результат = OPI_Bitrix24.ПолучитьСписокПросмотревшихВажное(URL, IDНовости, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьСписокПросмотревшихВажное");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьНовости(ПараметрыФункции)
-
- IDНовости = ПараметрыФункции["Bitrix24_PostID"];
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Результат = OPI_Bitrix24.ПолучитьНовости(URL, IDНовости);
-
- Обработать(Результат, "Bitrix24", "ПолучитьНовости", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Результат = OPI_Bitrix24.ПолучитьНовости(URL, IDНовости, , Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьНовости");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ДобавитьКомментарийНовости(ПараметрыФункции)
-
- Текст = "Комментарий к новости";
- IDНовости = ПараметрыФункции["Bitrix24_PostID"];
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Результат = OPI_Bitrix24.ДобавитьКомментарийНовости(URL, IDНовости, Текст);
-
- Обработать(Результат, "Bitrix24", "ДобавитьКомментарийНовости", "Хук"); // SKIP
-
- Текст = "Другой комментарий к новости";
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Результат = OPI_Bitrix24.ДобавитьКомментарийНовости(URL, IDНовости, Текст, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ДобавитьКомментарийНовости");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ДобавитьПолучателейКНовости(ПараметрыФункции)
-
- Видимость = "UA";
- IDНовости = ПараметрыФункции["Bitrix24_PostID"];
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Результат = OPI_Bitrix24.ДобавитьПолучателейКНовости(URL, IDНовости, Видимость);
-
- Обработать(Результат, "Bitrix24", "ДобавитьПолучателейКНовости", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Результат = OPI_Bitrix24.ДобавитьПолучателейКНовости(URL, IDНовости, Видимость, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ДобавитьПолучателейКНовости");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьСтруктуруЗадачи(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Результат = OPI_Bitrix24.ПолучитьСтруктуруЗадачи(URL);
-
- Обработать(Результат, "Bitrix24", "ПолучитьСтруктуруЗадачи", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Результат = OPI_Bitrix24.ПолучитьСтруктуруЗадачи(URL, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьСтруктуруЗадачи");
-
-КонецПроцедуры
-
-Процедура Bitrix24_СоздатьЗадачу(ПараметрыФункции)
-
- // Полную структуру полей можно получить функцией ПолучитьСтруктуруЗадачи()
-
- ТекущаяДата = OPI_Инструменты.ПолучитьТекущуюДату();
- Час = 3600;
- Сутки = 24;
- Исполнитель = 1;
-
- СтруктураЗадачи = Новый Структура;
- СтруктураЗадачи.Вставить("TITLE" , "Новая задача");
- СтруктураЗадачи.Вставить("DESCRIPTION" , "Новое описание задачи");
- СтруктураЗадачи.Вставить("PRIORITY" , "2");
- СтруктураЗадачи.Вставить("DEADLINE" , ТекущаяДата + Час * Сутки);
- СтруктураЗадачи.Вставить("RESPONSIBLE_ID", Исполнитель);
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Результат = OPI_Bitrix24.СоздатьЗадачу(URL, СтруктураЗадачи);
-
- Обработать(Результат, "Bitrix24", "СоздатьЗадачу", "Хук", ПараметрыФункции); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Результат = OPI_Bitrix24.СоздатьЗадачу(URL, СтруктураЗадачи, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "СоздатьЗадачу", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура Bitrix24_ИзменитьЗадачу(ПараметрыФункции)
-
- // Полную структуру полей можно получить функцией ПолучитьСтруктуруЗадачи()
-
- СтруктураЗадачи = Новый Структура;
- СтруктураЗадачи.Вставить("TITLE" , "Другой заголовок задачи");
- СтруктураЗадачи.Вставить("DESCRIPTION", "Другое описание задачи");
- СтруктураЗадачи.Вставить("PRIORITY" , "1");
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЗадачи = ПараметрыФункции["Bitrix24_HookTaskID"];
-
- Результат = OPI_Bitrix24.ИзменитьЗадачу(URL, IDЗадачи, СтруктураЗадачи);
-
- Обработать(Результат, "Bitrix24", "ИзменитьЗадачу", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЗадачи = ПараметрыФункции["Bitrix24_TaskID"];
-
- Результат = OPI_Bitrix24.ИзменитьЗадачу(URL, IDЗадачи, СтруктураЗадачи, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ИзменитьЗадачу");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьЗадачу(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЗадачи = ПараметрыФункции["Bitrix24_HookTaskID"];
-
- Результат = OPI_Bitrix24.ПолучитьЗадачу(URL, IDЗадачи);
-
- Обработать(Результат, "Bitrix24", "ПолучитьЗадачу", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЗадачи = ПараметрыФункции["Bitrix24_TaskID"];
-
- Результат = OPI_Bitrix24.ПолучитьЗадачу(URL, IDЗадачи, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьЗадачу");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПринятьЗадачу(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЗадачи = ПараметрыФункции["Bitrix24_HookTaskID"];
-
- Результат = OPI_Bitrix24.ПринятьЗадачу(URL, IDЗадачи);
-
- Обработать(Результат, "Bitrix24", "ПринятьЗадачу", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЗадачи = ПараметрыФункции["Bitrix24_TaskID"];
-
- Результат = OPI_Bitrix24.ПринятьЗадачу(URL, IDЗадачи, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПринятьЗадачу");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ОтклонитьЗадачу(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЗадачи = ПараметрыФункции["Bitrix24_HookTaskID"];
-
- Результат = OPI_Bitrix24.ОтклонитьЗадачу(URL, IDЗадачи);
-
- Обработать(Результат, "Bitrix24", "ОтклонитьЗадачу", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЗадачи = ПараметрыФункции["Bitrix24_TaskID"];
-
- Результат = OPI_Bitrix24.ОтклонитьЗадачу(URL, IDЗадачи, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ОтклонитьЗадачу");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ЗавершитьЗадачу(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЗадачи = ПараметрыФункции["Bitrix24_HookTaskID"];
-
- Результат = OPI_Bitrix24.ЗавершитьЗадачу(URL, IDЗадачи);
-
- Обработать(Результат, "Bitrix24", "ЗавершитьЗадачу", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЗадачи = ПараметрыФункции["Bitrix24_TaskID"];
-
- Результат = OPI_Bitrix24.ЗавершитьЗадачу(URL, IDЗадачи, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ЗавершитьЗадачу");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ВозобновитьЗадачу(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЗадачи = ПараметрыФункции["Bitrix24_HookTaskID"];
-
- Результат = OPI_Bitrix24.ВозобновитьЗадачу(URL, IDЗадачи);
-
- Обработать(Результат, "Bitrix24", "ВозобновитьЗадачу", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЗадачи = ПараметрыФункции["Bitrix24_TaskID"];
-
- Результат = OPI_Bitrix24.ВозобновитьЗадачу(URL, IDЗадачи, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ВозобновитьЗадачу");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ОтложитьЗадачу(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЗадачи = ПараметрыФункции["Bitrix24_HookTaskID"];
-
- Результат = OPI_Bitrix24.ОтложитьЗадачу(URL, IDЗадачи);
-
- Обработать(Результат, "Bitrix24", "ОтложитьЗадачу", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЗадачи = ПараметрыФункции["Bitrix24_TaskID"];
-
- Результат = OPI_Bitrix24.ОтложитьЗадачу(URL, IDЗадачи, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ОтложитьЗадачу");
-
-КонецПроцедуры
-
-Процедура Bitrix24_НачатьВыполнениеЗадачи(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЗадачи = ПараметрыФункции["Bitrix24_HookTaskID"];
-
- Результат = OPI_Bitrix24.НачатьВыполнениеЗадачи(URL, IDЗадачи);
-
- Обработать(Результат, "Bitrix24", "НачатьВыполнениеЗадачи", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЗадачи = ПараметрыФункции["Bitrix24_TaskID"];
-
- Результат = OPI_Bitrix24.НачатьВыполнениеЗадачи(URL, IDЗадачи, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "НачатьВыполнениеЗадачи");
-
-КонецПроцедуры
-
-Процедура Bitrix24_НачатьНаблюдатьЗаЗадачей(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЗадачи = ПараметрыФункции["Bitrix24_HookTaskID"];
-
- Результат = OPI_Bitrix24.НачатьНаблюдатьЗаЗадачей(URL, IDЗадачи);
-
- Обработать(Результат, "Bitrix24", "НачатьНаблюдатьЗаЗадачей", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЗадачи = ПараметрыФункции["Bitrix24_TaskID"];
-
- Результат = OPI_Bitrix24.НачатьНаблюдатьЗаЗадачей(URL, IDЗадачи, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "НачатьНаблюдатьЗаЗадачей");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПрекратитьНаблюдатьЗаЗадачей(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЗадачи = ПараметрыФункции["Bitrix24_HookTaskID"];
-
- Результат = OPI_Bitrix24.ПрекратитьНаблюдатьЗаЗадачей(URL, IDЗадачи);
-
- Обработать(Результат, "Bitrix24", "ПрекратитьНаблюдатьЗаЗадачей", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЗадачи = ПараметрыФункции["Bitrix24_TaskID"];
-
- Результат = OPI_Bitrix24.ПрекратитьНаблюдатьЗаЗадачей(URL, IDЗадачи, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПрекратитьНаблюдатьЗаЗадачей");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПриостановитьЗадачу(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЗадачи = ПараметрыФункции["Bitrix24_HookTaskID"];
-
- Результат = OPI_Bitrix24.ПриостановитьЗадачу(URL, IDЗадачи);
-
- Обработать(Результат, "Bitrix24", "ПриостановитьЗадачу", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЗадачи = ПараметрыФункции["Bitrix24_TaskID"];
-
- Результат = OPI_Bitrix24.ПриостановитьЗадачу(URL, IDЗадачи, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПриостановитьЗадачу");
-
-КонецПроцедуры
-
-Процедура Bitrix24_УдалитьЗадачу(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЗадачи = ПараметрыФункции["Bitrix24_HookTaskID"];
-
- Результат = OPI_Bitrix24.УдалитьЗадачу(URL, IDЗадачи);
-
- Обработать(Результат, "Bitrix24", "УдалитьЗадачу", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЗадачи = ПараметрыФункции["Bitrix24_TaskID"];
-
- Результат = OPI_Bitrix24.УдалитьЗадачу(URL, IDЗадачи, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "УдалитьЗадачу");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ДелегироватьЗадачу(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЗадачи = ПараметрыФункции["Bitrix24_HookTaskID"];
- IDПользователя = ПараметрыФункции["Bitrix24_UserID"];
-
- Результат = OPI_Bitrix24.ДелегироватьЗадачу(URL, IDЗадачи, IDПользователя);
-
- Обработать(Результат, "Bitrix24", "ДелегироватьЗадачу", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЗадачи = ПараметрыФункции["Bitrix24_TaskID"];
-
- Результат = OPI_Bitrix24.ДелегироватьЗадачу(URL, IDЗадачи, IDПользователя, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ДелегироватьЗадачу");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ДобавитьЗадачуВИзбранное(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЗадачи = ПараметрыФункции["Bitrix24_HookTaskID"];
-
- Результат = OPI_Bitrix24.ДобавитьЗадачуВИзбранное(URL, IDЗадачи);
-
- Обработать(Результат, "Bitrix24", "ДобавитьЗадачуВИзбранное", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЗадачи = ПараметрыФункции["Bitrix24_TaskID"];
-
- Результат = OPI_Bitrix24.ДобавитьЗадачуВИзбранное(URL, IDЗадачи, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ДобавитьЗадачуВИзбранное");
-
-КонецПроцедуры
-
-Процедура Bitrix24_УбратьЗадачуИзИзбранного(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЗадачи = ПараметрыФункции["Bitrix24_HookTaskID"];
-
- Результат = OPI_Bitrix24.УбратьЗадачуИзИзбранного(URL, IDЗадачи);
-
- Обработать(Результат, "Bitrix24", "УбратьЗадачуИзИзбранного", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЗадачи = ПараметрыФункции["Bitrix24_TaskID"];
-
- Результат = OPI_Bitrix24.УбратьЗадачуИзИзбранного(URL, IDЗадачи, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "УбратьЗадачуИзИзбранного");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьИсториюЗадачи(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЗадачи = ПараметрыФункции["Bitrix24_HookTaskID"];
-
- Результат = OPI_Bitrix24.ПолучитьИсториюЗадачи(URL, IDЗадачи);
-
- Обработать(Результат, "Bitrix24", "ПолучитьИсториюЗадачи", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЗадачи = ПараметрыФункции["Bitrix24_TaskID"];
-
- Результат = OPI_Bitrix24.ПолучитьИсториюЗадачи(URL, IDЗадачи, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьИсториюЗадачи");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьСписокЗадач(ПараметрыФункции)
-
- ТекущаяДата = OPI_Инструменты.ПолучитьТекущуюДату();
-
- // Полную структуру фильтра можно найти в функции ПолучитьСтруктуруФильтраЗадач
- Фильтр = Новый Соответствие;
- Фильтр.Вставить("CREATED_BY", 1); // Постановщик с ID 1
- Фильтр.Вставить("!RESPONSIBLE_ID", 10); // Исполнители с ID не равным 10
- Фильтр.Вставить(">=CREATED_DATE ", ТекущаяДата - 60 * 60 * 24); // Дата создания >= вчера
-
- Поля = Новый Массив;
- Поля.Добавить("UF_CRM_TASK");
- Поля.Добавить("CREATED_BY");
-
- Отступ = 1;
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Результат = OPI_Bitrix24.ПолучитьСписокЗадач(URL, Фильтр, , , Поля);
-
- Обработать(Результат, "Bitrix24", "ПолучитьСписокЗадач", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Результат = OPI_Bitrix24.ПолучитьСписокЗадач(URL, , Отступ, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьСписокЗадач");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьСписокХранилищ(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- Результат = OPI_Bitrix24.ПолучитьСписокХранилищ(URL);
-
- Обработать(Результат, "Bitrix24", "ПолучитьСписокХранилищ", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Результат = OPI_Bitrix24.ПолучитьСписокХранилищ(URL, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьСписокХранилищ");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьХранилищеПриложения(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Результат = OPI_Bitrix24.ПолучитьХранилищеПриложения(URL, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьХранилищеПриложения", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура Bitrix24_ЗагрузитьФайлВХранилище(ПараметрыФункции)
-
- Наименование2 = "Картинка2.jpg";
- Наименование = "Картинка1.jpg";
-
- Картинка2 = ПараметрыФункции["Picture"]; // Локальный путь, URL или Двоичные данные
- Картинка = ПараметрыФункции["Picture2"]; // Локальный путь, URL или Двоичные данные
-
- IDПриемника = 3;
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Результат = OPI_Bitrix24.ЗагрузитьФайлВХранилище(URL, Наименование2, Картинка2, IDПриемника);
-
- Обработать(Результат, "Bitrix24", "ЗагрузитьФайлВХранилище", "Хук", ПараметрыФункции); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Результат = OPI_Bitrix24.ЗагрузитьФайлВХранилище(URL, Наименование, Картинка, IDПриемника, , Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ЗагрузитьФайлВХранилище", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура Bitrix24_УдалитьФайл(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDФайла = ПараметрыФункции["Bitrix24_HookFileID"];
-
- Результат = OPI_Bitrix24.УдалитьФайл(URL, IDФайла);
-
- Обработать(Результат, "Bitrix24", "УдалитьФайл", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDФайла = ПараметрыФункции["Bitrix24_FileID"];
-
- Результат = OPI_Bitrix24.УдалитьФайл(URL, IDФайла, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "УдалитьФайл");
-
-КонецПроцедуры
-
-Процедура Bitrix24_СоздатьКаталогВХранилище(ПараметрыФункции)
-
- IDХранилища = 3;
- Наименование = "Новый каталог";
- Наименование2 = "Новый каталог 2";
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Результат = OPI_Bitrix24.СоздатьКаталогВХранилище(URL, IDХранилища, Наименование2);
-
- Обработать(Результат, "Bitrix24", "СоздатьКаталогВХранилище", "Хук", ПараметрыФункции); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Результат = OPI_Bitrix24.СоздатьКаталогВХранилище(URL, IDХранилища, Наименование, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "СоздатьКаталогВХранилище", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура Bitrix24_УдалитьКаталог(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDКаталога = ПараметрыФункции["Bitrix24_HookFolderID"];
-
- Результат = OPI_Bitrix24.УдалитьКаталог(URL, IDКаталога);
-
- Обработать(Результат, "Bitrix24", "УдалитьКаталог", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDКаталога = ПараметрыФункции["Bitrix24_FolderID"];
-
- Результат = OPI_Bitrix24.УдалитьКаталог(URL, IDКаталога, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "УдалитьКаталог");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьХранилище(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDХранилища = 3;
-
- Результат = OPI_Bitrix24.ПолучитьХранилище(URL, IDХранилища);
-
- Обработать(Результат, "Bitrix24", "ПолучитьХранилище", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Результат = OPI_Bitrix24.ПолучитьХранилище(URL, IDХранилища, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьХранилище");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьСодержимоеХранилища(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDХранилища = 3;
-
- Результат = OPI_Bitrix24.ПолучитьСодержимоеХранилища(URL, IDХранилища);
-
- Обработать(Результат, "Bitrix24", "ПолучитьСодержимоеХранилища", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Результат = OPI_Bitrix24.ПолучитьСодержимоеХранилища(URL, IDХранилища, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьСодержимоеХранилища");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПереименоватьХранилище(ПараметрыФункции)
-
- Наименование = "Новое имя хранилища";
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDХранилища = ПараметрыФункции["Bitrix24_StorageID"];
-
- Результат = OPI_Bitrix24.ПереименоватьХранилище(URL, IDХранилища, Наименование, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПереименоватьХранилище");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьИнформациюОКаталоге(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDКаталога = ПараметрыФункции["Bitrix24_FolderID"];
-
- Результат = OPI_Bitrix24.ПолучитьИнформациюОКаталоге(URL, IDКаталога);
-
- Обработать(Результат, "Bitrix24", "ПолучитьИнформациюОКаталоге", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Результат = OPI_Bitrix24.ПолучитьИнформациюОКаталоге(URL, IDКаталога, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьИнформациюОКаталоге");
-
-КонецПроцедуры
-
-Процедура Bitrix24_СоздатьПодкаталог(ПараметрыФункции)
-
- IDКаталога = ПараметрыФункции["Bitrix24_FolderID"];
- Наименование = "Новый подкаталог";
- Наименование2 = "Новый подкаталог 2";
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Результат = OPI_Bitrix24.СоздатьПодкаталог(URL, IDКаталога, Наименование2);
-
- Обработать(Результат, "Bitrix24", "СоздатьПодкаталог", "Хук", ПараметрыФункции); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Результат = OPI_Bitrix24.СоздатьПодкаталог(URL, IDКаталога, Наименование, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "СоздатьПодкаталог", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура Bitrix24_СкопироватьКаталог(ПараметрыФункции)
-
- IDПриемника = ПараметрыФункции["Bitrix24_HookSubfolderID"];
- IDКаталога = ПараметрыФункции["Bitrix24_SubfolderID"];
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Результат = OPI_Bitrix24.СкопироватьКаталог(URL, IDКаталога, IDПриемника);
-
- Обработать(Результат, "Bitrix24", "СкопироватьКаталог", "Хук"); // SKIP
-
- IDПриемника = ПараметрыФункции["Bitrix24_SubfolderID"];
- IDКаталога = ПараметрыФункции["Bitrix24_HookSubfolderID"];
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- // END
-
- Обработать(Результат, "Bitrix24", "СкопироватьКаталог");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьВнешнююСсылкуКаталога(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDКаталога = ПараметрыФункции["Bitrix24_FolderID"];
-
- Результат = OPI_Bitrix24.ПолучитьВнешнююСсылкуКаталога(URL, IDКаталога);
-
- Обработать(Результат, "Bitrix24", "ПолучитьВнешнююСсылкуКаталога", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Результат = OPI_Bitrix24.ПолучитьВнешнююСсылкуКаталога(URL, IDКаталога, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьВнешнююСсылкуКаталога");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьСтруктуруФильтраКаталога(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Результат = OPI_Bitrix24.ПолучитьСтруктуруФильтраКаталога(URL);
-
- Обработать(Результат, "Bitrix24", "ПолучитьСтруктуруФильтраКаталога", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Результат = OPI_Bitrix24.ПолучитьСтруктуруФильтраКаталога(URL, Истина, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьСтруктуруФильтраКаталога");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьДочерниеЭлементыКаталога(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDКаталога = ПараметрыФункции["Bitrix24_FolderID"];
-
- Результат = OPI_Bitrix24.ПолучитьДочерниеЭлементыКаталога(URL, IDКаталога);
-
- Обработать(Результат, "Bitrix24", "ПолучитьДочерниеЭлементыКаталога", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Результат = OPI_Bitrix24.ПолучитьДочерниеЭлементыКаталога(URL, IDКаталога, , Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьДочерниеЭлементыКаталога");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПоместитьКаталогВКорзину(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDКаталога = ПараметрыФункции["Bitrix24_FolderID"];
-
- Результат = OPI_Bitrix24.ПоместитьКаталогВКорзину(URL, IDКаталога);
-
- Обработать(Результат, "Bitrix24", "ПоместитьКаталогВКорзину", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Результат = OPI_Bitrix24.ПоместитьКаталогВКорзину(URL, IDКаталога, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПоместитьКаталогВКорзину");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ВосстановитьКаталог(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDКаталога = ПараметрыФункции["Bitrix24_FolderID"];
-
- Результат = OPI_Bitrix24.ВосстановитьКаталог(URL, IDКаталога);
-
- Обработать(Результат, "Bitrix24", "ВосстановитьКаталог", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Результат = OPI_Bitrix24.ВосстановитьКаталог(URL, IDКаталога, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ВосстановитьКаталог");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПереместитьКаталог(ПараметрыФункции)
-
- IDПриемника = ПараметрыФункции["Bitrix24_HookfolderID"];
- IDКаталога = ПараметрыФункции["Bitrix24_SubfolderID"];
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Результат = OPI_Bitrix24.ПереместитьКаталог(URL, IDКаталога, IDПриемника);
-
- Обработать(Результат, "Bitrix24", "ПереместитьКаталог", "Хук"); // SKIP
-
- IDКаталога = ПараметрыФункции["Bitrix24_HookSubfolderID"];
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Результат = OPI_Bitrix24.ПереместитьКаталог(URL, IDКаталога, IDПриемника, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПереместитьКаталог");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПереименоватьКаталог(ПараметрыФункции)
-
- Наименование = "Новый каталог";
- Наименование2 = "Новый каталог 2";
-
- IDКаталога2 = ПараметрыФункции["Bitrix24_HookFolderID"];
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Результат = OPI_Bitrix24.ПереименоватьКаталог(URL, IDКаталога2, Наименование2);
-
- Обработать(Результат, "Bitrix24", "ПереименоватьКаталог", "Хук"); // SKIP
-
- IDКаталога = ПараметрыФункции["Bitrix24_FolderID"];
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Результат = OPI_Bitrix24.ПереименоватьКаталог(URL, IDКаталога, Наименование, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПереименоватьКаталог");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ЗагрузитьФайлВКаталог(ПараметрыФункции)
-
- Наименование2 = "Картинка2.jpg";
- Наименование = "Картинка1.jpg";
-
- Картинка2 = ПараметрыФункции["Picture"]; // Локальный путь, URL или Двоичные данные
- Картинка = ПараметрыФункции["Picture2"]; // Локальный путь, URL или Двоичные данные
-
- IDПриемника = ПараметрыФункции["Bitrix24_FolderID"];
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Результат = OPI_Bitrix24.ЗагрузитьФайлВКаталог(URL, Наименование2, Картинка2, IDПриемника);
-
- Обработать(Результат, "Bitrix24", "ЗагрузитьФайлВКаталог", "Хук", URL); // SKIP
-
- IDФайла = Результат["result"]["ID"]; // SKIP
- OPI_Bitrix24.УдалитьФайл(URL, IDФайла); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Результат = OPI_Bitrix24.ЗагрузитьФайлВКаталог(URL, Наименование, Картинка, IDПриемника, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ЗагрузитьФайлВКаталог", , URL, Токен);
-
- IDФайла = Результат["result"]["ID"];
-
- OPI_Bitrix24.УдалитьФайл(URL, IDФайла, Токен);
-
-КонецПроцедуры
-
-Процедура Bitrix24_СкопироватьФайл(ПараметрыФункции)
-
- IDКаталога = ПараметрыФункции["Bitrix24_HookFolderID"];
- IDФайла = ПараметрыФункции["Bitrix24_FileID"];
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Результат = OPI_Bitrix24.СкопироватьФайл(URL, IDФайла, IDКаталога);
-
- Обработать(Результат, "Bitrix24", "СкопироватьФайл", "Хук"); // SKIP
-
- IDКаталога = ПараметрыФункции["Bitrix24_FolderID"];
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Результат = OPI_Bitrix24.СкопироватьФайл(URL, IDФайла, IDКаталога, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "СкопироватьФайл");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьИнформациюОФайле(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDФайла = ПараметрыФункции["Bitrix24_FileID"];
-
- Результат = OPI_Bitrix24.ПолучитьИнформациюОФайле(URL, IDФайла);
-
- Обработать(Результат, "Bitrix24", "ПолучитьИнформациюОФайле", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Результат = OPI_Bitrix24.ПолучитьИнформациюОФайле(URL, IDФайла, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьИнформациюОФайле");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьВнешнююСсылкуФайла(ПараметрыФункции)
-
- OPI_Инструменты.Пауза(20); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDФайла = ПараметрыФункции["Bitrix24_FileID"];
-
- Результат = OPI_Bitrix24.ПолучитьВнешнююСсылкуФайла(URL, IDФайла);
-
- Обработать(Результат, "Bitrix24", "ПолучитьВнешнююСсылкуФайла", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Результат = OPI_Bitrix24.ПолучитьВнешнююСсылкуФайла(URL, IDФайла, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьВнешнююСсылкуФайла");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПоместитьФайлВКорзину(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDФайла = ПараметрыФункции["Bitrix24_FileID"];
-
- Результат = OPI_Bitrix24.ПоместитьФайлВКорзину(URL, IDФайла);
-
- Обработать(Результат, "Bitrix24", "ПоместитьФайлВКорзину", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Результат = OPI_Bitrix24.ПоместитьФайлВКорзину(URL, IDФайла, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПоместитьФайлВКорзину");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ВосстановитьФайл(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDФайла = ПараметрыФункции["Bitrix24_FileID"];
-
- Результат = OPI_Bitrix24.ВосстановитьФайл(URL, IDФайла);
-
- Обработать(Результат, "Bitrix24", "ВосстановитьФайл", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Результат = OPI_Bitrix24.ВосстановитьФайл(URL, IDФайла, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ВосстановитьФайл");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПереименоватьФайл(ПараметрыФункции)
-
- Наименование = "Новое имя файла.jpg";
- Наименование2 = "Новое имя файла 2.jpg";
-
- IDФайла2 = ПараметрыФункции["Bitrix24_HookFileID"];
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Результат = OPI_Bitrix24.ПереименоватьФайл(URL, IDФайла2, Наименование2);
-
- Обработать(Результат, "Bitrix24", "ПереименоватьФайл", "Хук"); // SKIP
-
- IDФайла = ПараметрыФункции["Bitrix24_FileID"];
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Результат = OPI_Bitrix24.ПереименоватьФайл(URL, IDФайла, Наименование, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПереименоватьФайл");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПереместитьФайлВКаталог(ПараметрыФункции)
-
- IDКаталога = ПараметрыФункции["Bitrix24_HookSubFolderID"];
- IDФайла = ПараметрыФункции["Bitrix24_FileID"];
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Результат = OPI_Bitrix24.ПереместитьФайлВКаталог(URL, IDФайла, IDКаталога);
-
- Обработать(Результат, "Bitrix24", "ПереместитьФайлВКаталог", "Хук"); // SKIP
-
- IDКаталога = ПараметрыФункции["Bitrix24_SubFolderID"];
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Результат = OPI_Bitrix24.ПереместитьФайлВКаталог(URL, IDФайла, IDКаталога, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПереместитьФайлВКаталог");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ДобавитьФайлВЗадачу(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЗадачи = ПараметрыФункции["Bitrix24_HookTaskID"];
- IDФайла = ПараметрыФункции["Bitrix24_TaskFileID"];
-
- Результат = OPI_Bitrix24.ДобавитьФайлВЗадачу(URL, IDЗадачи, IDФайла);
-
- Обработать(Результат, "Bitrix24", "ДобавитьФайлВЗадачу", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЗадачи = ПараметрыФункции["Bitrix24_TaskID"];
-
- Результат = OPI_Bitrix24.ДобавитьФайлВЗадачу(URL, IDЗадачи, IDФайла, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ДобавитьФайлВЗадачу");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПроверитьДоступКЗадаче(ПараметрыФункции)
-
- МассивПользователей = Новый Массив;
- МассивПользователей.Добавить("1");
- МассивПользователей.Добавить("10");
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЗадачи = ПараметрыФункции["Bitrix24_HookTaskID"];
-
- Результат = OPI_Bitrix24.ПроверитьДоступКЗадаче(URL, IDЗадачи, МассивПользователей);
-
- Обработать(Результат, "Bitrix24", "ПроверитьДоступКЗадаче", "Хук", МассивПользователей.Количество()); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЗадачи = ПараметрыФункции["Bitrix24_TaskID"];
-
- Результат = OPI_Bitrix24.ПроверитьДоступКЗадаче(URL, IDЗадачи, МассивПользователей, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПроверитьДоступКЗадаче", , МассивПользователей.Количество());
-
-КонецПроцедуры
-
-Процедура Bitrix24_ОтключитьЗвукЗадачи(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЗадачи = ПараметрыФункции["Bitrix24_HookTaskID"];
-
- Результат = OPI_Bitrix24.ОтключитьЗвукЗадачи(URL, IDЗадачи);
-
- Обработать(Результат, "Bitrix24", "ОтключитьЗвукЗадачи", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЗадачи = ПараметрыФункции["Bitrix24_TaskID"];
-
- Результат = OPI_Bitrix24.ОтключитьЗвукЗадачи(URL, IDЗадачи, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ОтключитьЗвукЗадачи");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ВключитьЗвукЗадачи(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЗадачи = ПараметрыФункции["Bitrix24_HookTaskID"];
-
- Результат = OPI_Bitrix24.ВключитьЗвукЗадачи(URL, IDЗадачи);
-
- Обработать(Результат, "Bitrix24", "ВключитьЗвукЗадачи", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЗадачи = ПараметрыФункции["Bitrix24_TaskID"];
-
- Результат = OPI_Bitrix24.ВключитьЗвукЗадачи(URL, IDЗадачи, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ВключитьЗвукЗадачи");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ДобавитьКомментарийЗадачи(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЗадачи = ПараметрыФункции["Bitrix24_CommentsTaskID"];
-
- Текст = "Задача невыполнима, расходимся";
-
- Результат = OPI_Bitrix24.ДобавитьКомментарийЗадачи(URL, IDЗадачи, Текст);
-
- Обработать(Результат, "Bitrix24", "ДобавитьКомментарийЗадачи", "Хук", ПараметрыФункции); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Текст = "Задача выполнима, не расходимся";
-
- Результат = OPI_Bitrix24.ДобавитьКомментарийЗадачи(URL, IDЗадачи, Текст, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ДобавитьКомментарийЗадачи", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура Bitrix24_УдалитьКомментарийЗадачи(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЗадачи = ПараметрыФункции["Bitrix24_CommentsTaskID"];
- IDКомментария = ПараметрыФункции["Bitrix24_HookCommentID"];
-
- Результат = OPI_Bitrix24.УдалитьКомментарийЗадачи(URL, IDЗадачи, IDКомментария);
-
- Обработать(Результат, "Bitrix24", "УдалитьКомментарийЗадачи", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDКомментария = ПараметрыФункции["Bitrix24_CommentID"];
-
- Результат = OPI_Bitrix24.УдалитьКомментарийЗадачи(URL, IDЗадачи, IDКомментария, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "УдалитьКомментарийЗадачи");
-
-КонецПроцедуры
-
-Процедура Bitrix24_СоздатьРезультатИзКомментария(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDКомментария = ПараметрыФункции["Bitrix24_HookCommentID"];
-
- Результат = OPI_Bitrix24.СоздатьРезультатИзКомментария(URL, IDКомментария);
-
- Обработать(Результат, "Bitrix24", "СоздатьРезультатИзКомментария", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDКомментария = ПараметрыФункции["Bitrix24_CommentID"];
-
- Результат = OPI_Bitrix24.СоздатьРезультатИзКомментария(URL, IDКомментария, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "СоздатьРезультатИзКомментария");
-
-КонецПроцедуры
-
-Процедура Bitrix24_УдалитьРезультатИзКомментария(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDКомментария = ПараметрыФункции["Bitrix24_HookCommentID"];
-
- Результат = OPI_Bitrix24.УдалитьРезультатИзКомментария(URL, IDКомментария);
-
- Обработать(Результат, "Bitrix24", "УдалитьРезультатИзКомментария", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDКомментария = ПараметрыФункции["Bitrix24_CommentID"];
-
- Результат = OPI_Bitrix24.УдалитьРезультатИзКомментария(URL, IDКомментария, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "УдалитьРезультатИзКомментария");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьСписокРезультатов(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЗадачи = ПараметрыФункции["Bitrix24_CommentsTaskID"];
-
- Результат = OPI_Bitrix24.ПолучитьСписокРезультатов(URL, IDЗадачи);
-
- Обработать(Результат, "Bitrix24", "ПолучитьСписокРезультатов", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Результат = OPI_Bitrix24.ПолучитьСписокРезультатов(URL, IDЗадачи, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьСписокРезультатов");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьСписокКомментариевЗадачи(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЗадачи = ПараметрыФункции["Bitrix24_CommentsTaskID"];
-
- Результат = OPI_Bitrix24.ПолучитьСписокКомментариевЗадачи(URL, IDЗадачи);
-
- Обработать(Результат, "Bitrix24", "ПолучитьСписокКомментариевЗадачи", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Результат = OPI_Bitrix24.ПолучитьСписокКомментариевЗадачи(URL, IDЗадачи, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьСписокКомментариевЗадачи");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьКомменатрийЗадачи(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDКомментария = ПараметрыФункции["Bitrix24_HookCommentID"];
- IDЗадачи = ПараметрыФункции["Bitrix24_CommentsTaskID"];
-
- Результат = OPI_Bitrix24.ПолучитьКомменатрийЗадачи(URL, IDЗадачи, IDКомментария);
-
- Обработать(Результат, "Bitrix24", "ПолучитьКомменатрийЗадачи", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDКомментария = ПараметрыФункции["Bitrix24_CommentID"];
-
- Результат = OPI_Bitrix24.ПолучитьКомменатрийЗадачи(URL, IDЗадачи, IDКомментария, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьКомменатрийЗадачи");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ИзменитьКомментарийЗадачи(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЗадачи = ПараметрыФункции["Bitrix24_CommentsTaskID"];
- IDКомментария = ПараметрыФункции["Bitrix24_HookCommentID"];
-
- Текст = "Задача изменена, не расходимся";
-
- Результат = OPI_Bitrix24.ИзменитьКомментарийЗадачи(URL, IDЗадачи, IDКомментария, Текст);
-
- Обработать(Результат, "Bitrix24", "ИзменитьКомментарийЗадачи", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDКомментария = ПараметрыФункции["Bitrix24_CommentID"];
-
- Текст = "Задача изменена, расходимся";
-
- Результат = OPI_Bitrix24.ИзменитьКомментарийЗадачи(URL, IDЗадачи, IDКомментария, Текст, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ИзменитьКомментарийЗадачи");
-
-КонецПроцедуры
-
-Процедура Bitrix24_СоздатьЗависимостьЗадач(ПараметрыФункции)
-
- IDИсточника = ПараметрыФункции["Bitrix24_HookTaskID"];
- IDПриемника = ПараметрыФункции["Bitrix24_TaskID"];
- ТипСвязи = 0;
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Результат = OPI_Bitrix24.СоздатьЗависимостьЗадач(URL, IDИсточника, IDПриемника, ТипСвязи);
-
- Обработать(Результат, "Bitrix24", "СоздатьЗависимостьЗадач", "Хук"); // SKIP
-
- OPI_Bitrix24.УдалитьЗависимостьЗадач(URL, IDИсточника, IDПриемника, ТипСвязи); // SKIP
-
- IDИсточника = ПараметрыФункции["Bitrix24_TaskID"];
- IDПриемника = ПараметрыФункции["Bitrix24_HookTaskID"];
- ТипСвязи = 2;
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Результат = OPI_Bitrix24.СоздатьЗависимостьЗадач(URL, IDИсточника, IDПриемника, ТипСвязи, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "СоздатьЗависимостьЗадач");
-
- OPI_Bitrix24.УдалитьЗависимостьЗадач(URL, IDИсточника, IDПриемника, ТипСвязи, Токен);
-
-КонецПроцедуры
-
-Процедура Bitrix24_УдалитьЗависимостьЗадач(ПараметрыФункции)
-
- IDИсточника = ПараметрыФункции["Bitrix24_HookTaskID"];
- IDПриемника = ПараметрыФункции["Bitrix24_TaskID"];
- ТипСвязи = 0;
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Результат = OPI_Bitrix24.СоздатьЗависимостьЗадач(URL, IDИсточника, IDПриемника, ТипСвязи); // SKIP
- Результат = OPI_Bitrix24.УдалитьЗависимостьЗадач(URL, IDИсточника, IDПриемника, ТипСвязи);
-
- Обработать(Результат, "Bitrix24", "УдалитьЗависимостьЗадач", "Хук"); // SKIP
-
- IDИсточника = ПараметрыФункции["Bitrix24_TaskID"];
- IDПриемника = ПараметрыФункции["Bitrix24_HookTaskID"];
- ТипСвязи = 2;
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Результат = OPI_Bitrix24.СоздатьЗависимостьЗадач(URL, IDИсточника, IDПриемника, ТипСвязи, Токен); // SKIP
- Результат = OPI_Bitrix24.УдалитьЗависимостьЗадач(URL, IDИсточника, IDПриемника, ТипСвязи, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "УдалитьЗависимостьЗадач");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ДобавитьСтадиюКанбана(ПараметрыФункции)
-
- Наименование = "Новая стадия";
- Цвет = "0026FF";
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Результат = OPI_Bitrix24.ДобавитьСтадиюКанбана(URL, Наименование, Цвет, 6);
-
- Обработать(Результат, "Bitrix24", "ДобавитьСтадиюКанбана", "Хук", ПараметрыФункции); // SKIP
-
- Наименование = "Новая стадия 2";
- Цвет = "0026FF";
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDПредыдущей = Результат["result"];
-
- Результат = OPI_Bitrix24.ДобавитьСтадиюКанбана(URL, Наименование, Цвет, IDПредыдущей, , Истина, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ДобавитьСтадиюКанбана", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура Bitrix24_УдалитьСтадиюКанбана(ПараметрыФункции)
-
- IDСтадии = ПараметрыФункции["Bitrix24_HookStageID"];
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Результат = OPI_Bitrix24.УдалитьСтадиюКанбана(URL, IDСтадии, Истина);
-
- Обработать(Результат, "Bitrix24", "УдалитьСтадиюКанбана", "Хук"); // SKIP
-
- IDСтадии = ПараметрыФункции["Bitrix24_StageID"];
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Результат = OPI_Bitrix24.УдалитьСтадиюКанбана(URL, IDСтадии, , Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "УдалитьСтадиюКанбана");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьСтадииКанбана(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Результат = OPI_Bitrix24.ПолучитьСтадииКанбана(URL, , Истина);
-
- Обработать(Результат, "Bitrix24", "ПолучитьСтадииКанбана", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Результат = OPI_Bitrix24.ПолучитьСтадииКанбана(URL, , , Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьСтадииКанбана");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПеренестиЗадачуВСтадиюКанбана(ПараметрыФункции)
-
- IDЗадачи = ПараметрыФункции["Bitrix24_KanbanTaskID"];
- IDСтадии = ПараметрыФункции["Bitrix24_HookStageID"];
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Результат = OPI_Bitrix24.ПеренестиЗадачуВСтадиюКанбана(URL, IDЗадачи, IDСтадии);
-
- Обработать(Результат, "Bitrix24", "ПеренестиЗадачуВСтадиюКанбана", "Хук"); // SKIP
-
- IDСтадии = ПараметрыФункции["Bitrix24_StageID"];
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Результат = OPI_Bitrix24.ПеренестиЗадачуВСтадиюКанбана(URL, IDЗадачи, IDСтадии, , , Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПеренестиЗадачуВСтадиюКанбана");
-
- OPI_Bitrix24.ПеренестиЗадачуВСтадиюКанбана(URL, IDЗадачи, 2, , , Токен);
-
-КонецПроцедуры
-
-Процедура Bitrix24_ИзменитьСтадиюКанбана(ПараметрыФункции)
-
- Наименование = "Новое имя стадии стадии";
- Цвет = "000000";
- IDСтадии = ПараметрыФункции["Bitrix24_HookStageID"];
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Результат = OPI_Bitrix24.ИзменитьСтадиюКанбана(URL, Наименование, IDСтадии, Цвет);
-
- Обработать(Результат, "Bitrix24", "ИзменитьСтадиюКанбана", "Хук"); // SKIP
-
- Наименование = "Новое имя стадии стадии 2";
- Цвет = "000000";
- IDСтадии = ПараметрыФункции["Bitrix24_StageID"];
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Результат = OPI_Bitrix24.ИзменитьСтадиюКанбана(URL, Наименование, IDСтадии, Цвет, 6, Истина, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ИзменитьСтадиюКанбана");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ДобавитьЭлементЧеклистаЗадачи(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЗадачи = ПараметрыФункции["Bitrix24_HookTaskID"];
-
- Текст = "Пункт чек-листа";
-
- Результат = OPI_Bitrix24.ДобавитьЭлементЧеклистаЗадачи(URL, IDЗадачи, Текст, Истина);
-
- Обработать(Результат, "Bitrix24", "ДобавитьЭлементЧеклистаЗадачи", "Хук", ПараметрыФункции); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЗадачи = ПараметрыФункции["Bitrix24_TaskID"];
-
- Результат = OPI_Bitrix24.ДобавитьЭлементЧеклистаЗадачи(URL, IDЗадачи, Текст, , Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ДобавитьЭлементЧеклистаЗадачи", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура Bitrix24_ИзменитьЭлементЧеклистаЗадачи(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЗадачи = ПараметрыФункции["Bitrix24_HookTaskID"];
- IDЭлемента = ПараметрыФункции["Bitrix24_HookCheckElementID"];
-
- Текст = "Новый текст пункта чек-листа";
-
- Результат = OPI_Bitrix24.ИзменитьЭлементЧеклистаЗадачи(URL, IDЗадачи, IDЭлемента, Текст);
-
- Обработать(Результат, "Bitrix24", "ИзменитьЭлементЧеклистаЗадачи", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЗадачи = ПараметрыФункции["Bitrix24_TaskID"];
- IDЭлемента = ПараметрыФункции["Bitrix24_CheckElementID"];
-
- Результат = OPI_Bitrix24.ИзменитьЭлементЧеклистаЗадачи(URL, IDЗадачи, IDЭлемента, Текст, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ИзменитьЭлементЧеклистаЗадачи");
-
-КонецПроцедуры
-
-Процедура Bitrix24_УдалитьЭлементЧеклистаЗадачи(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЗадачи = ПараметрыФункции["Bitrix24_HookTaskID"];
- IDЭлемента = ПараметрыФункции["Bitrix24_HookCheckElementID"];
-
- Результат = OPI_Bitrix24.УдалитьЭлементЧеклистаЗадачи(URL, IDЗадачи, IDЭлемента);
-
- Обработать(Результат, "Bitrix24", "УдалитьЭлементЧеклистаЗадачи", "Хук"); // SKIP
-
- IDЗадачи = ПараметрыФункции["Bitrix24_TaskID"];
- IDЭлемента = ПараметрыФункции["Bitrix24_CheckElementID"];
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Результат = OPI_Bitrix24.УдалитьЭлементЧеклистаЗадачи(URL, IDЗадачи, IDЭлемента, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "УдалитьЭлементЧеклистаЗадачи");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьЧеклистЗадачи(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЗадачи = ПараметрыФункции["Bitrix24_HookTaskID"];
-
- Результат = OPI_Bitrix24.ПолучитьЧеклистЗадачи(URL, IDЗадачи);
-
- Обработать(Результат, "Bitrix24", "ПолучитьЧеклистЗадачи", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЗадачи = ПараметрыФункции["Bitrix24_TaskID"];
-
- Результат = OPI_Bitrix24.ПолучитьЧеклистЗадачи(URL, IDЗадачи, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьЧеклистЗадачи");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьЭлементЧеклистаЗадачи(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЗадачи = ПараметрыФункции["Bitrix24_HookTaskID"];
- IDЭлемента = ПараметрыФункции["Bitrix24_HookCheckElementID"];
-
- Результат = OPI_Bitrix24.ПолучитьЭлементЧеклистаЗадачи(URL, IDЗадачи, IDЭлемента);
-
- Обработать(Результат, "Bitrix24", "ПолучитьЭлементЧеклистаЗадачи", "Хук"); // SKIP
-
- IDЗадачи = ПараметрыФункции["Bitrix24_TaskID"];
- IDЭлемента = ПараметрыФункции["Bitrix24_CheckElementID"];
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Результат = OPI_Bitrix24.ПолучитьЭлементЧеклистаЗадачи(URL, IDЗадачи, IDЭлемента, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьЭлементЧеклистаЗадачи");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ВыполнитьЭлементЧеклистаЗадачи(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЗадачи = ПараметрыФункции["Bitrix24_HookTaskID"];
- IDЭлемента = ПараметрыФункции["Bitrix24_HookCheckElementID"];
-
- Результат = OPI_Bitrix24.ВыполнитьЭлементЧеклистаЗадачи(URL, IDЗадачи, IDЭлемента);
-
- Обработать(Результат, "Bitrix24", "ВыполнитьЭлементЧеклистаЗадачи", "Хук"); // SKIP
-
- IDЗадачи = ПараметрыФункции["Bitrix24_TaskID"];
- IDЭлемента = ПараметрыФункции["Bitrix24_CheckElementID"];
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Результат = OPI_Bitrix24.ВыполнитьЭлементЧеклистаЗадачи(URL, IDЗадачи, IDЭлемента, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ВыполнитьЭлементЧеклистаЗадачи");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ВозобновитьЭлементЧеклистаЗадачи(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЗадачи = ПараметрыФункции["Bitrix24_HookTaskID"];
- IDЭлемента = ПараметрыФункции["Bitrix24_HookCheckElementID"];
-
- Результат = OPI_Bitrix24.ВозобновитьЭлементЧеклистаЗадачи(URL, IDЗадачи, IDЭлемента);
-
- Обработать(Результат, "Bitrix24", "ВозобновитьЭлементЧеклистаЗадачи", "Хук"); // SKIP
-
- IDЗадачи = ПараметрыФункции["Bitrix24_TaskID"];
- IDЭлемента = ПараметрыФункции["Bitrix24_CheckElementID"];
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Результат = OPI_Bitrix24.ВозобновитьЭлементЧеклистаЗадачи(URL, IDЗадачи, IDЭлемента, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ВозобновитьЭлементЧеклистаЗадачи");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ДобавитьТрудозатратыЗадачи(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЗадачи = ПараметрыФункции["Bitrix24_ElapsedTaskID"];
-
- Время = 3600;
-
- Результат = OPI_Bitrix24.ДобавитьТрудозатратыЗадачи(URL, IDЗадачи, Время);
-
- Обработать(Результат, "Bitrix24", "ДобавитьТрудозатратыЗадачи", "Хук", ПараметрыФункции); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Текст = "Трудозатраты по обработке";
- IDПользователя = 10;
- Время = 7200;
- ДатаУстановки = ДобавитьМесяц(OPI_Инструменты.ПолучитьТекущуюДату(), -1);
-
- Результат = OPI_Bitrix24.ДобавитьТрудозатратыЗадачи(URL
- , IDЗадачи
- , Время
- , IDПользователя
- , Текст
- , ДатаУстановки
- , Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ДобавитьТрудозатратыЗадачи", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура Bitrix24_ИзменитьТрудозатратыЗадачи(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЗадачи = ПараметрыФункции["Bitrix24_ElapsedTaskID"];
- IDЗаписи = ПараметрыФункции["Bitrix24_HookTimeID"];
-
- Текст = "Забытый в прошлый раз текст";
- Время = 4800;
-
- Результат = OPI_Bitrix24.ИзменитьТрудозатратыЗадачи(URL, IDЗадачи, IDЗаписи, Время, Текст);
-
- Обработать(Результат, "Bitrix24", "ИзменитьТрудозатратыЗадачи", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЗаписи = ПараметрыФункции["Bitrix24_TimeID"];
-
- Текст = "Новые трудозатраты по обработке";
- Время = 4800;
- ДатаУстановки = ДобавитьМесяц(OPI_Инструменты.ПолучитьТекущуюДату(), -1);
-
- Результат = OPI_Bitrix24.ИзменитьТрудозатратыЗадачи(URL, IDЗадачи, IDЗаписи, Время, Текст, ДатаУстановки, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ИзменитьТрудозатратыЗадачи");
-
-КонецПроцедуры
-
-Процедура Bitrix24_УдалитьТрудозатратыЗадачи(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЗадачи = ПараметрыФункции["Bitrix24_ElapsedTaskID"];
- IDЗаписи = ПараметрыФункции["Bitrix24_HookTimeID"];
-
- Результат = OPI_Bitrix24.УдалитьТрудозатратыЗадачи(URL, IDЗадачи, IDЗаписи);
-
- Обработать(Результат, "Bitrix24", "УдалитьТрудозатратыЗадачи", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЗаписи = ПараметрыФункции["Bitrix24_TimeID"];
-
- Результат = OPI_Bitrix24.УдалитьТрудозатратыЗадачи(URL, IDЗадачи, IDЗаписи, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "УдалитьТрудозатратыЗадачи");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьТрудозатратыЗадачи(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЗадачи = ПараметрыФункции["Bitrix24_ElapsedTaskID"];
- IDЗаписи = ПараметрыФункции["Bitrix24_HookTimeID"];
-
- Результат = OPI_Bitrix24.ПолучитьТрудозатратыЗадачи(URL, IDЗадачи, IDЗаписи);
-
- Обработать(Результат, "Bitrix24", "ПолучитьТрудозатратыЗадачи", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЗаписи = ПараметрыФункции["Bitrix24_TimeID"];
-
- Результат = OPI_Bitrix24.ПолучитьТрудозатратыЗадачи(URL, IDЗадачи, IDЗаписи, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьТрудозатратыЗадачи");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьСписокТрудозатратЗадачи(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЗадачи = ПараметрыФункции["Bitrix24_ElapsedTaskID"];
-
- Результат = OPI_Bitrix24.ПолучитьСписокТрудозатратЗадачи(URL, IDЗадачи);
-
- Обработать(Результат, "Bitrix24", "ПолучитьСписокТрудозатратЗадачи", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Результат = OPI_Bitrix24.ПолучитьСписокТрудозатратЗадачи(URL, IDЗадачи, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьСписокТрудозатратЗадачи");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьПланЗадачНаДень(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Результат = OPI_Bitrix24.ПолучитьПланЗадачНаДень(URL);
-
- Обработать(Результат, "Bitrix24", "ПолучитьПланЗадачНаДень", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Результат = OPI_Bitrix24.ПолучитьПланЗадачНаДень(URL, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьПланЗадачНаДень");
-
-КонецПроцедуры
-
-Процедура Bitrix24_СоздатьЧат(ПараметрыФункции)
-
- Картинка = ПараметрыФункции["Picture"];
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка);
-
- B64Картинка = ПолучитьBase64СтрокуИзДвоичныхДанных(Картинка);
-
- МассивУчастников = Новый Массив;
- МассивУчастников.Добавить(10);
- МассивУчастников.Добавить(1);
-
- СтруктураЧата = Новый Структура;
- СтруктураЧата.Вставить("TYPE" , "OPEN");
- СтруктураЧата.Вставить("TITLE" , "Новый чат");
- СтруктураЧата.Вставить("DESCRIPTION", "Это новый чат");
- СтруктураЧата.Вставить("COLOR" , "GREEN");
- СтруктураЧата.Вставить("MESSAGE" , "Добро пожаловать в новый чат");
- СтруктураЧата.Вставить("USERS" , МассивУчастников);
- СтруктураЧата.Вставить("AVATAR" , B64Картинка);
- СтруктураЧата.Вставить("OWNER_ID" , 1);
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Результат = OPI_Bitrix24.СоздатьЧат(URL, СтруктураЧата);
-
- Обработать(Результат, "Bitrix24", "СоздатьЧат", "Хук", ПараметрыФункции); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- СтруктураЧата = Новый Структура;
- СтруктураЧата.Вставить("TYPE" , "CHAT");
- СтруктураЧата.Вставить("TITLE", "Закрытый чат");
- СтруктураЧата.Вставить("USERS", МассивУчастников);
-
- Результат = OPI_Bitrix24.СоздатьЧат(URL, СтруктураЧата, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "СоздатьЧат", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьСписокПользователейЧата(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЧата = ПараметрыФункции["Bitrix24_HookChatID"];
-
- Результат = OPI_Bitrix24.ПолучитьСписокПользователейЧата(URL, IDЧата);
-
- Обработать(Результат, "Bitrix24", "ПолучитьСписокПользователейЧата", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЧата = ПараметрыФункции["Bitrix24_ChatID"];
-
- Результат = OPI_Bitrix24.ПолучитьСписокПользователейЧата(URL, IDЧата, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьСписокПользователейЧата");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПокинутьЧат(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЧата = ПараметрыФункции["Bitrix24_HookChatID"];
-
- Результат = OPI_Bitrix24.ПокинутьЧат(URL, IDЧата);
-
- Обработать(Результат, "Bitrix24", "ПокинутьЧат", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЧата = ПараметрыФункции["Bitrix24_ChatID"];
-
- Результат = OPI_Bitrix24.ПокинутьЧат(URL, IDЧата, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПокинутьЧат");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ИсключитьПользователяИзЧата(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЧата = ПараметрыФункции["Bitrix24_HookChatID"];
-
- IDПользователя = 10;
-
- Результат = OPI_Bitrix24.ИсключитьПользователяИзЧата(URL, IDЧата, IDПользователя);
-
- Обработать(Результат, "Bitrix24", "ИсключитьПользователяИзЧата", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЧата = ПараметрыФункции["Bitrix24_ChatID"];
-
- Результат = OPI_Bitrix24.ИсключитьПользователяИзЧата(URL, IDЧата, IDПользователя, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ИсключитьПользователяИзЧата");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ДобавитьПользователейВЧат(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЧата = ПараметрыФункции["Bitrix24_HookChatID"];
-
- IDПользователей = Новый Массив;
- IDПользователей.Добавить(10);
- IDПользователей.Добавить(12);
-
- Результат = OPI_Bitrix24.ДобавитьПользователейВЧат(URL, IDЧата, IDПользователей);
-
- Обработать(Результат, "Bitrix24", "ДобавитьПользователейВЧат", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЧата = ПараметрыФункции["Bitrix24_ChatID"];
- IDПользователя = 10;
-
- Результат = OPI_Bitrix24.ДобавитьПользователейВЧат(URL, IDЧата, IDПользователя, Истина, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ДобавитьПользователейВЧат");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ИзменитьЗаголовокЧата(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЧата = ПараметрыФункции["Bitrix24_HookChatID"];
-
- Заголовок = "Новый заголовок чата";
-
- Результат = OPI_Bitrix24.ИзменитьЗаголовокЧата(URL, IDЧата, Заголовок);
-
- Обработать(Результат, "Bitrix24", "ИзменитьЗаголовокЧата", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЧата = ПараметрыФункции["Bitrix24_ChatID"];
-
- Заголовок = "Другой заголовок чата";
-
- Результат = OPI_Bitrix24.ИзменитьЗаголовокЧата(URL, IDЧата, Заголовок, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ИзменитьЗаголовокЧата");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ИзменитьЦветЧата(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЧата = ПараметрыФункции["Bitrix24_HookChatID"];
-
- Цвет = "AZURE";
-
- Результат = OPI_Bitrix24.ИзменитьЦветЧата(URL, IDЧата, Цвет);
-
- Обработать(Результат, "Bitrix24", "ИзменитьЦветЧата", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Цвет = "PURPLE";
-
- Результат = OPI_Bitrix24.ИзменитьЦветЧата(URL, IDЧата, Цвет, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ИзменитьЦветЧата");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ИзменитьКартинкуЧата(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЧата = ПараметрыФункции["Bitrix24_HookChatID"];
-
- Картинка = ПараметрыФункции["Picture2"];
-
- Результат = OPI_Bitrix24.ИзменитьКартинкуЧата(URL, IDЧата, Картинка);
-
- Обработать(Результат, "Bitrix24", "ИзменитьКартинкуЧата", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЧата = ПараметрыФункции["Bitrix24_ChatID"];
-
- Результат = OPI_Bitrix24.ИзменитьКартинкуЧата(URL, IDЧата, Картинка, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ИзменитьКартинкуЧата");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ОтключитьУведомленияЧата(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЧата = ПараметрыФункции["Bitrix24_HookChatID"];
-
- Результат = OPI_Bitrix24.ОтключитьУведомленияЧата(URL, IDЧата);
-
- Обработать(Результат, "Bitrix24", "ОтключитьУведомленияЧата", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЧата = ПараметрыФункции["Bitrix24_ChatID"];
-
- Результат = OPI_Bitrix24.ОтключитьУведомленияЧата(URL, IDЧата, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ОтключитьУведомленияЧата");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ВключитьУведомленияЧата(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЧата = ПараметрыФункции["Bitrix24_HookChatID"];
-
- Результат = OPI_Bitrix24.ВключитьУведомленияЧата(URL, IDЧата);
-
- Обработать(Результат, "Bitrix24", "ВключитьУведомленияЧата", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЧата = ПараметрыФункции["Bitrix24_ChatID"];
-
- Результат = OPI_Bitrix24.ВключитьУведомленияЧата(URL, IDЧата, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ВключитьУведомленияЧата");
-
-КонецПроцедуры
-
-Процедура Bitrix24_СменитьВладельцаЧата(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЧата = ПараметрыФункции["Bitrix24_HookChatID"];
-
- IDПользователя = 10;
-
- Результат = OPI_Bitrix24.СменитьВладельцаЧата(URL, IDЧата, IDПользователя);
-
- Обработать(Результат, "Bitrix24", "СменитьВладельцаЧата", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЧата = ПараметрыФункции["Bitrix24_ChatID"];
-
- Результат = OPI_Bitrix24.СменитьВладельцаЧата(URL, IDЧата, IDПользователя, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "СменитьВладельцаЧата");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьСписокСообщенийЧата(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЧата = "chat4";
-
- Результат = OPI_Bitrix24.ПолучитьСписокСообщенийЧата(URL, IDЧата);
-
- Обработать(Результат, "Bitrix24", "ПолучитьСписокСообщенийЧата", "Хук", ПараметрыФункции); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDПользователя = 10;
-
- Результат = OPI_Bitrix24.ПолучитьСписокСообщенийЧата(URL, IDПользователя, , 0, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьСписокСообщенийЧата", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура Bitrix24_ОтметитьСообщениеКакПрочитанное(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЧата = ПараметрыФункции["Bitrix24_HookChatID"];
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата);
- СтрокаЧата = "chat" + IDЧата;
-
- IDСообщения = ПараметрыФункции["Bitrix24_ChatMessageID"];
-
- Результат = OPI_Bitrix24.ОтметитьСообщениеКакПрочитанное(URL, СтрокаЧата, IDСообщения);
-
- Обработать(Результат, "Bitrix24", "ОтметитьСообщениеКакПрочитанное", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDПользователя = 10;
- IDСообщения = ПараметрыФункции["Bitrix24_UserMessageID"];
-
- Результат = OPI_Bitrix24.ОтметитьСообщениеКакПрочитанное(URL, IDПользователя, IDСообщения, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ОтметитьСообщениеКакПрочитанное");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ОтметитьСообщениеКакНепрочитанное(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЧата = ПараметрыФункции["Bitrix24_HookChatID"];
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата);
-
- СтрокаЧата = "chat" + IDЧата;
- IDСообщения = ПараметрыФункции["Bitrix24_ChatMessageID"];
-
- Результат = OPI_Bitrix24.ОтметитьСообщениеКакНепрочитанное(URL, СтрокаЧата, IDСообщения);
-
- Обработать(Результат, "Bitrix24", "ОтметитьСообщениеКакНепрочитанное", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDПользователя = 10;
- IDСообщения = ПараметрыФункции["Bitrix24_UserMessageID"];
-
- Результат = OPI_Bitrix24.ОтметитьСообщениеКакНепрочитанное(URL, IDПользователя, IDСообщения, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ОтметитьСообщениеКакНепрочитанное");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьДиалог(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЧата = ПараметрыФункции["Bitrix24_HookChatID"];
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата);
-
- СтрокаЧата = "chat" + IDЧата;
-
- Результат = OPI_Bitrix24.ПолучитьДиалог(URL, СтрокаЧата);
-
- Обработать(Результат, "Bitrix24", "ПолучитьДиалог", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDПользователя = 10;
-
- Результат = OPI_Bitrix24.ПолучитьДиалог(URL, IDПользователя, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьДиалог");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьСписокПользователейДиалога(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЧата = ПараметрыФункции["Bitrix24_HookChatID"];
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата);
-
- СтрокаЧата = "chat" + IDЧата;
-
- Результат = OPI_Bitrix24.ПолучитьСписокПользователейДиалога(URL, СтрокаЧата);
-
- Обработать(Результат, "Bitrix24", "ПолучитьСписокПользователейДиалога", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDПользователя = 10;
-
- Результат = OPI_Bitrix24.ПолучитьСписокПользователейДиалога(URL, IDПользователя, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьСписокПользователейДиалога");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ОтправитьУведомлениеОВводе(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЧата = ПараметрыФункции["Bitrix24_HookChatID"];
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата);
-
- СтрокаЧата = "chat" + IDЧата;
-
- Результат = OPI_Bitrix24.ОтправитьУведомлениеОВводе(URL, СтрокаЧата);
-
- Обработать(Результат, "Bitrix24", "ОтправитьУведомлениеОВводе", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDПользователя = 10;
-
- Результат = OPI_Bitrix24.ОтправитьУведомлениеОВводе(URL, IDПользователя, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ОтправитьУведомлениеОВводе");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПрочитатьВсе(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Результат = OPI_Bitrix24.ПрочитатьВсе(URL);
-
- Обработать(Результат, "Bitrix24", "ПрочитатьВсе", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Результат = OPI_Bitrix24.ПрочитатьВсе(URL, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПрочитатьВсе");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ОтправитьСообщение(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЧата = ПараметрыФункции["Bitrix24_HookChatID"];
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата);
-
- СтрокаЧата = "chat" + IDЧата;
- Текст = "Текст сообщения";
- Картинка = "https://raw.githubusercontent.com/Bayselonarrend/OpenIntegrations/main/service/test_data/picture.jpg";
- Файл = "https://github.com/Bayselonarrend/OpenIntegrations/raw/main/service/test_data/document.docx";
-
- Вложения = Новый Массив;
- Вложения.Добавить(OPI_Bitrix24.ПолучитьБлокКартинки("Картинка1", Картинка));
- Вложения.Добавить(OPI_Bitrix24.ПолучитьБлокФайла("Файл1.docx" , Файл));
-
- Результат = OPI_Bitrix24.ОтправитьСообщение(URL, СтрокаЧата, Текст, Вложения);
-
- Обработать(Результат, "Bitrix24", "ОтправитьСообщение", "Хук", ПараметрыФункции); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDПользователя = 10;
-
- Результат = OPI_Bitrix24.ОтправитьСообщение(URL, IDПользователя, Текст, , Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ОтправитьСообщение", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура Bitrix24_ИзменитьСообщение(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDСообщения = ПараметрыФункции["Bitrix24_ChatMessageID"];
-
- Текст = "Новый текст сообщения";
-
- Результат = OPI_Bitrix24.ИзменитьСообщение(URL, IDСообщения, Текст);
-
- Обработать(Результат, "Bitrix24", "ИзменитьСообщение", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDСообщения = ПараметрыФункции["Bitrix24_UserMessageID"];
-
- Картинка = "https://raw.githubusercontent.com/Bayselonarrend/OpenIntegrations/main/service/test_data/picture.jpg";
- Файл = "https://github.com/Bayselonarrend/OpenIntegrations/raw/main/service/test_data/document.docx";
-
- Вложения = Новый Массив;
- Вложения.Добавить(OPI_Bitrix24.ПолучитьБлокКартинки("Картинка1", Картинка));
- Вложения.Добавить(OPI_Bitrix24.ПолучитьБлокФайла("Файл1.docx" , Файл));
-
- Результат = OPI_Bitrix24.ИзменитьСообщение(URL, IDСообщения, Текст, Вложения, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ИзменитьСообщение");
-
-КонецПроцедуры
-
-Процедура Bitrix24_УдалитьСообщение(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDСообщения = ПараметрыФункции["Bitrix24_ChatMessageID"];
-
- Результат = OPI_Bitrix24.УдалитьСообщение(URL, IDСообщения);
-
- Обработать(Результат, "Bitrix24", "УдалитьСообщение", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDСообщения = ПараметрыФункции["Bitrix24_UserMessageID"];
-
- Результат = OPI_Bitrix24.УдалитьСообщение(URL, IDСообщения, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "УдалитьСообщение");
-
-КонецПроцедуры
-
-Процедура Bitrix24_УстановитьРеакциюНаСообщение(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDСообщения = ПараметрыФункции["Bitrix24_ChatMessageID"];
-
- Результат = OPI_Bitrix24.УстановитьРеакциюНаСообщение(URL, IDСообщения);
-
- Обработать(Результат, "Bitrix24", "УстановитьРеакциюНаСообщение", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDСообщения = ПараметрыФункции["Bitrix24_UserMessageID"];
-
- Результат = OPI_Bitrix24.УстановитьРеакциюНаСообщение(URL, IDСообщения, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "УстановитьРеакциюНаСообщение");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьКаталогФайловЧата(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЧата = ПараметрыФункции["Bitrix24_HookChatID"];
-
- Результат = OPI_Bitrix24.ПолучитьКаталогФайловЧата(URL, IDЧата);
-
- Обработать(Результат, "Bitrix24", "ПолучитьКаталогФайловЧата", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЧата = ПараметрыФункции["Bitrix24_ChatID"];
-
- Результат = OPI_Bitrix24.ПолучитьКаталогФайловЧата(URL, IDЧата, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьКаталогФайловЧата");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ОтправитьФайл(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЧата = ПараметрыФункции["Bitrix24_HookChatID"];
- Файл = ПараметрыФункции["Document"]; // Двоичные данные, URL или путь к файлу
- Описание = "Очень важный файл";
-
- Каталог = OPI_Bitrix24.ПолучитьКаталогФайловЧата(URL, IDЧата);
- IDКаталога = Каталог["result"]["ID"];
-
- ЗагруженныйФайл = OPI_Bitrix24.ЗагрузитьФайлВКаталог(URL, "Важный документ.docx", Файл, IDКаталога);
- IDФайла = ЗагруженныйФайл["result"]["ID"];
-
- Результат = OPI_Bitrix24.ОтправитьФайл(URL, IDЧата, IDФайла, Описание);
-
- Обработать(Результат, "Bitrix24", "ОтправитьФайл", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЧата = ПараметрыФункции["Bitrix24_ChatID"];
-
- Каталог = OPI_Bitrix24.ПолучитьКаталогФайловЧата(URL, IDЧата, Токен);
- IDКаталога = Каталог["result"]["ID"];
-
- ЗагруженныйФайл = OPI_Bitrix24.ЗагрузитьФайлВКаталог(URL, "Важный документ.docx", Файл, IDКаталога, Токен);
- IDФайла = ЗагруженныйФайл["result"]["ID"];
-
- Результат = OPI_Bitrix24.ОтправитьФайл(URL, IDЧата, IDФайла, Описание, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ОтправитьФайл");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьПользователей(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- МассивПользователей = Новый Массив;
-
- МассивПользователей.Добавить(1);
- МассивПользователей.Добавить(10);
-
- Результат = OPI_Bitrix24.ПолучитьПользователей(URL, МассивПользователей);
-
- Обработать(Результат, "Bitrix24", "ПолучитьПользователей", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDПользователей = 10;
-
- Результат = OPI_Bitrix24.ПолучитьПользователей(URL, IDПользователей, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьПользователей");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьСтатусПользователя(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Результат = OPI_Bitrix24.ПолучитьСтатусПользователя(URL);
-
- Обработать(Результат, "Bitrix24", "ПолучитьСтатусПользователя", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Результат = OPI_Bitrix24.ПолучитьСтатусПользователя(URL, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьСтатусПользователя");
-
-КонецПроцедуры
-
-Процедура Bitrix24_УстановитьСтатусПользователя(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- Статус = "dnd";
-
- Результат = OPI_Bitrix24.УстановитьСтатусПользователя(URL, Статус);
-
- Обработать(Результат, "Bitrix24", "УстановитьСтатусПользователя", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- Статус = "away";
-
- Результат = OPI_Bitrix24.УстановитьСтатусПользователя(URL, Статус, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "УстановитьСтатусПользователя");
-
-КонецПроцедуры
-
-Процедура Bitrix24_СоздатьПерсональноеУведомление(ПараметрыФункции)
-
- IDПользователя = 1;
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- Текст = "Текст сообщения";
- Картинка = "https://raw.githubusercontent.com/Bayselonarrend/OpenIntegrations/main/service/test_data/picture.jpg";
- Файл = "https://github.com/Bayselonarrend/OpenIntegrations/raw/main/service/test_data/document.docx";
-
- Вложения = Новый Массив;
- Вложения.Добавить(OPI_Bitrix24.ПолучитьБлокКартинки("Картинка1", Картинка));
- Вложения.Добавить(OPI_Bitrix24.ПолучитьБлокФайла("Файл1.docx" , Файл));
-
- Результат = OPI_Bitrix24.СоздатьПерсональноеУведомление(URL, IDПользователя, Текст, , Вложения);
-
- Обработать(Результат, "Bitrix24", "СоздатьПерсональноеУведомление", "Хук", ПараметрыФункции); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- Тег = "Новый";
- IDПользователя = 10;
-
- Результат = OPI_Bitrix24.СоздатьПерсональноеУведомление(URL, IDПользователя, Текст, Тег, , Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "СоздатьПерсональноеУведомление", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура Bitrix24_СоздатьСистемноеУведомление(ПараметрыФункции)
-
- IDПользователя = 1;
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- Текст = "Текст сообщения";
- Картинка = "https://raw.githubusercontent.com/Bayselonarrend/OpenIntegrations/main/service/test_data/picture.jpg";
- Файл = "https://github.com/Bayselonarrend/OpenIntegrations/raw/main/service/test_data/document.docx";
-
- Вложения = Новый Массив;
- Вложения.Добавить(OPI_Bitrix24.ПолучитьБлокКартинки("Картинка1", Картинка));
- Вложения.Добавить(OPI_Bitrix24.ПолучитьБлокФайла("Файл1.docx" , Файл));
-
- Результат = OPI_Bitrix24.СоздатьСистемноеУведомление(URL, IDПользователя, Текст, , Вложения);
-
- Обработать(Результат, "Bitrix24", "СоздатьСистемноеУведомление", "Хук", ПараметрыФункции); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- Тег = "Новый";
- IDПользователя = 10;
-
- Результат = OPI_Bitrix24.СоздатьСистемноеУведомление(URL, IDПользователя, Текст, Тег, , Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "СоздатьСистемноеУведомление", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура Bitrix24_УдалитьУведомление(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDУведомления = ПараметрыФункции["Bitrix24_PersoalHookNotifyID"];
-
- Результат = OPI_Bitrix24.УдалитьУведомление(URL, IDУведомления);
-
- Обработать(Результат, "Bitrix24", "УдалитьУведомление", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDУведомления = ПараметрыФункции["Bitrix24_PersoalNotifyID"];
-
- Результат = OPI_Bitrix24.УдалитьУведомление(URL, IDУведомления, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "УдалитьУведомление");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ДобавитьПользовательскоеПолеЗадачи(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Тип = "date";
- Имя = "BIRTHDAY_FIELD";
-
- Результат = OPI_Bitrix24.ДобавитьПользовательскоеПолеЗадачи(URL, Тип, Имя);
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Тип = "string";
- Имя = "TEXT_FIELD";
- ВнешнийКод = "BITRIX_TEXT_FIELD";
- Заголовок = "Поле для текста";
- Подпись = Новый Структура("en,ru", "Some field", "Некоторое поле");
-
- Результат = OPI_Bitrix24.ДобавитьПользовательскоеПолеЗадачи(URL, Тип, Имя, ВнешнийКод, Заголовок, Подпись, Токен);
-
- // END
-
-КонецПроцедуры
-
-Процедура Bitrix24_ИзменитьПользовательскоеПолеЗадачи(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- IDПоля = ПараметрыФункции["Bitrix24_HookTaskFieldID"];
- Заголовок = "Новый заголовок";
-
- Результат = OPI_Bitrix24.ИзменитьПользовательскоеПолеЗадачи(URL, IDПоля, , Заголовок);
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- IDПоля = ПараметрыФункции["Bitrix24_TaskFieldID"];
- ВнешнийКод = "NEW_TEXT_FIELD";
- Подпись = Новый Структура("en,ru", "Updated field", "Измененное поле");
-
- Результат = OPI_Bitrix24.ИзменитьПользовательскоеПолеЗадачи(URL, IDПоля, ВнешнийКод, , Подпись, Токен);
-
- // END
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьПользовательскоеПолеЗадачи(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDПоля = ПараметрыФункции["Bitrix24_HookTaskFieldID"];
-
- Результат = OPI_Bitrix24.ПолучитьПользовательскоеПолеЗадачи(URL, IDПоля);
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDПоля = ПараметрыФункции["Bitrix24_TaskFieldID"];
-
- Результат = OPI_Bitrix24.ПолучитьПользовательскоеПолеЗадачи(URL, IDПоля, Токен);
-
- // END
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьСписокПользовательскихПолейЗадачи(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Результат = OPI_Bitrix24.ПолучитьСписокПользовательскихПолейЗадачи(URL);
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Результат = OPI_Bitrix24.ПолучитьСписокПользовательскихПолейЗадачи(URL, Токен);
-
- // END
-
-КонецПроцедуры
-
-Процедура Bitrix24_УдалитьПользовательскоеПолеЗадачи(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDПоля = ПараметрыФункции["Bitrix24_HookTaskFieldID"];
-
- Результат = OPI_Bitrix24.УдалитьПользовательскоеПолеЗадачи(URL, IDПоля);
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDПоля = ПараметрыФункции["Bitrix24_TaskFieldID"];
-
- Результат = OPI_Bitrix24.УдалитьПользовательскоеПолеЗадачи(URL, IDПоля, Токен);
-
- // END
-
-КонецПроцедуры
-
-Процедура Bitrix24_СоздатьПодразделение(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Наименование = "Главное подразделение";
- IDРодителя = 1;
-
- Результат = OPI_Bitrix24.СоздатьПодразделение(URL, Наименование, IDРодителя);
-
- Обработать(Результат, "Bitrix24", "СоздатьПодразделение", "Хук", ПараметрыФункции); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Наименование = "Подчиненное подразделение";
- IDРодителя = ПараметрыФункции["Bitrix24_HookDepID"];
- IDРуководителя = 1;
-
- Результат = OPI_Bitrix24.СоздатьПодразделение(URL, Наименование, IDРодителя, IDРуководителя, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "СоздатьПодразделение", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура Bitrix24_ИзменитьПодразделение(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- IDПодразделения = ПараметрыФункции["Bitrix24_HookDepID"];
- IDРодителя = 7;
-
- Результат = OPI_Bitrix24.ИзменитьПодразделение(URL, IDПодразделения, , IDРодителя);
-
- Обработать(Результат, "Bitrix24", "ИзменитьПодразделение", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- IDПодразделения = ПараметрыФункции["Bitrix24_DepID"];
- Наименование = "Новое подразделение";
- IDРодителя = 1;
- IDРуководителя = 10;
-
- Результат = OPI_Bitrix24.ИзменитьПодразделение(URL
- , IDПодразделения
- , Наименование
- , IDРодителя
- , IDРуководителя
- , Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ИзменитьПодразделение");
-
-КонецПроцедуры
-
-Процедура Bitrix24_УдалитьПодразделение(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDПодразделения = ПараметрыФункции["Bitrix24_DepID"];
-
- Результат = OPI_Bitrix24.УдалитьПодразделение(URL, IDПодразделения);
-
- Обработать(Результат, "Bitrix24", "УдалитьПодразделение", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDПодразделения = ПараметрыФункции["Bitrix24_HookDepID"];
-
- Результат = OPI_Bitrix24.УдалитьПодразделение(URL, IDПодразделения, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "УдалитьПодразделение");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьПодразделения(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDПодразделения = ПараметрыФункции["Bitrix24_DepID"];
-
- Результат = OPI_Bitrix24.ПолучитьПодразделения(URL, IDПодразделения);
-
- Обработать(Результат, "Bitrix24", "ПолучитьПодразделения", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDРуководителя = 1;
-
- Результат = OPI_Bitrix24.ПолучитьПодразделения(URL, , , , IDРуководителя, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьПодразделения");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьТекущегоПользователя(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Результат = OPI_Bitrix24.ПолучитьТекущегоПользователя(URL);
-
- Обработать(Результат, "Bitrix24", "ПолучитьТекущегоПользователя", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Результат = OPI_Bitrix24.ПолучитьТекущегоПользователя(URL, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьТекущегоПользователя");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьСтурктуруПользователя(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Результат = OPI_Bitrix24.ПолучитьСтурктуруПользователя(URL);
-
- Обработать(Результат, "Bitrix24", "ПолучитьСтурктуруПользователя", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Результат = OPI_Bitrix24.ПолучитьСтурктуруПользователя(URL, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьСтурктуруПользователя");
-
-КонецПроцедуры
-
-Процедура Bitrix24_СоздатьПользователя(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- Почта = Строка(Новый УникальныйИдентификатор) + "@exepmple.org";
-
- // Полную структуру можно получить функцией ПолучитьСтурктуруПользователя
-
- СтруктураПользователя = Новый Структура;
- СтруктураПользователя.Вставить("EMAIL" , Почта);
- СтруктураПользователя.Вставить("UF_DEPARTMENT", 7);
-
- Результат = OPI_Bitrix24.СоздатьПользователя(URL, СтруктураПользователя);
-
- Обработать(Результат, "Bitrix24", "СоздатьПользователя", "Хук", ПараметрыФункции); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- Почта = Строка(Новый УникальныйИдентификатор) + "@exepmple.org";
-
- СтруктураПользователя = Новый Структура;
- СтруктураПользователя.Вставить("EMAIL" , Почта);
- СтруктураПользователя.Вставить("NAME" , "Виталий");
- СтруктураПользователя.Вставить("LAST_NAME" , "Альпака");
- СтруктураПользователя.Вставить("PERSONAL_MOBILE", "88003553535");
- СтруктураПользователя.Вставить("UF_DEPARTMENT" , 1);
-
- Результат = OPI_Bitrix24.СоздатьПользователя(URL, СтруктураПользователя, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "СоздатьПользователя", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура Bitrix24_ИзменитьПользователя(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDПользователя = ПараметрыФункции["Bitrix24_HookUserID"];
- Почта = Строка(Новый УникальныйИдентификатор) + "@exepmple.org";
-
- // Полную структуру можно получить функцией ПолучитьСтурктуруПользователя
-
- СтруктураПользователя = Новый Структура;
- СтруктураПользователя.Вставить("EMAIL" , Почта);
- СтруктураПользователя.Вставить("UF_DEPARTMENT", 1);
-
- Результат = OPI_Bitrix24.ИзменитьПользователя(URL, IDПользователя, СтруктураПользователя);
-
- Обработать(Результат, "Bitrix24", "ИзменитьПользователя", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDПользователя = ПараметрыФункции["Bitrix24_UserID"];
- Почта = Строка(Новый УникальныйИдентификатор) + "@exepmple.org";
-
- СтруктураПользователя = Новый Структура;
- СтруктураПользователя.Вставить("EMAIL" , Почта);
- СтруктураПользователя.Вставить("NAME" , "Олег");
- СтруктураПользователя.Вставить("LAST_NAME" , "Лама");
- СтруктураПользователя.Вставить("UF_DEPARTMENT", 7);
-
- Результат = OPI_Bitrix24.ИзменитьПользователя(URL, IDПользователя, СтруктураПользователя, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ИзменитьПользователя");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ИзменитьСтатусПользователя(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDПользователя = ПараметрыФункции["Bitrix24_HookUserID"];
-
- Результат = OPI_Bitrix24.ИзменитьСтатусПользователя(URL, IDПользователя, Истина);
-
- Обработать(Результат, "Bitrix24", "ИзменитьСтатусПользователя", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDПользователя = ПараметрыФункции["Bitrix24_UserID"];
-
- Результат = OPI_Bitrix24.ИзменитьСтатусПользователя(URL, IDПользователя, Истина, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ИзменитьСтатусПользователя");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьПользователя(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDПользователя = ПараметрыФункции["Bitrix24_HookUserID"];
-
- Результат = OPI_Bitrix24.ПолучитьПользователя(URL, IDПользователя);
-
- Обработать(Результат, "Bitrix24", "ПолучитьПользователя", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDПользователя = ПараметрыФункции["Bitrix24_UserID"];
-
- Результат = OPI_Bitrix24.ПолучитьПользователя(URL, IDПользователя, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьПользователя");
-
-КонецПроцедуры
-
-Процедура Bitrix24_НайтиПользователей(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- СтруктураФильтра = Новый Структура;
- СтруктураФильтра.Вставить("NAME" , "Виталий");
- СтруктураФильтра.Вставить("LAST_NAME" , "Альпака");
- СтруктураФильтра.Вставить("WORK_POSITION" , "DevOps инженер");
- СтруктураФильтра.Вставить("UF_DEPARTMENT_NAME", "Отдел маркетинга");
- СтруктураФильтра.Вставить("USER_TYPE" , "employee");
-
- Результат = OPI_Bitrix24.НайтиПользователей(URL, СтруктураФильтра);
-
- Обработать(Результат, "Bitrix24", "НайтиПользователей", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- СтруктураФильтра = Новый Структура;
- СтруктураФильтра.Вставить("UF_DEPARTMENT_NAME", "Битрикс");
-
- Результат = OPI_Bitrix24.НайтиПользователей(URL, СтруктураФильтра, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "НайтиПользователей");
-
-КонецПроцедуры
-
-Процедура Bitrix24_НачатьУчетВремени(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Результат = OPI_Bitrix24.НачатьУчетВремени(URL);
-
- Час = 3600;
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDПользователя = 1;
- Время = OPI_Инструменты.ПолучитьТекущуюДату() - Час;
- Отчет = "Опоздание";
-
- Результат = OPI_Bitrix24.НачатьУчетВремени(URL, IDПользователя, Время, Отчет, Токен);
-
- // END
-
-КонецПроцедуры
-
-Процедура Bitrix24_ЗавершитьУчетВремени(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Результат = OPI_Bitrix24.ЗавершитьУчетВремени(URL);
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDПользователя = 1;
- Время = OPI_Инструменты.ПолучитьТекущуюДату();
- Отчет = "Отгул";
-
- Результат = OPI_Bitrix24.ЗавершитьУчетВремени(URL, IDПользователя, Время, Отчет, Токен);
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПриостановитьУчетВремени(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Результат = OPI_Bitrix24.ПриостановитьУчетВремени(URL);
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDПользователя = 1;
-
- Результат = OPI_Bitrix24.ПриостановитьУчетВремени(URL, IDПользователя, Токен);
-
- // END
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьСтатусУчетаВремени(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Результат = OPI_Bitrix24.ПолучитьСтатусУчетаВремени(URL);
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDПользователя = 1;
-
- Результат = OPI_Bitrix24.ПолучитьСтатусУчетаВремени(URL, IDПользователя, Токен);
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьНастройкиУчетаВремени(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Результат = OPI_Bitrix24.ПолучитьНастройкиУчетаВремени(URL);
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDПользователя = 1;
-
- Результат = OPI_Bitrix24.ПолучитьНастройкиУчетаВремени(URL, IDПользователя, Токен);
-
- // END
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьСтруктуруФильтраЛидов(ПараметрыФункции)
-
- Пустая = Ложь;
- Результат = OPI_Bitrix24.ПолучитьСтруктуруФильтраЛидов(Пустая);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьСтруктуруФильтраЛидов");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьСтруктуруЛида(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Результат = OPI_Bitrix24.ПолучитьСтруктуруЛида(URL);
-
- Обработать(Результат, "Bitrix24", "ПолучитьСтруктуруЛида", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Результат = OPI_Bitrix24.ПолучитьСтруктуруЛида(URL, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьСтруктуруЛида");
-
-КонецПроцедуры
-
-Процедура Bitrix24_СоздатьЛид(ПараметрыФункции)
-
- МассивПочт = Новый Массив;
- МассивПочт.Добавить(Новый Структура("VALUE,VALUE_TYPE", "yo@example.com", "HOME"));
- МассивПочт.Добавить(Новый Структура("VALUE,VALUE_TYPE", "hi@example.com", "WORK"));
-
- МассивНомеров = Новый Массив;
- МассивНомеров.Добавить(Новый Структура("VALUE,VALUE_TYPE", "88005553535", "WORK"));
-
- СтруктураПолей = Новый Структура;
- СтруктураПолей.Вставить("ADDRESS" , "ул. Пушкина, д. 10");
- СтруктураПолей.Вставить("ADDRESS_COUNTRY", "Россия");
- СтруктураПолей.Вставить("EMAIL" , МассивПочт);
- СтруктураПолей.Вставить("NAME" , "Петр");
- СтруктураПолей.Вставить("LAST_NAME" , "Петров");
- СтруктураПолей.Вставить("PHONE" , МассивНомеров);
- СтруктураПолей.Вставить("TITLE" , "Мегаклиент");
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Результат = OPI_Bitrix24.СоздатьЛид(URL, СтруктураПолей);
-
- Обработать(Результат, "Bitrix24", "СоздатьЛид", "Хук", ПараметрыФункции); // SKIP
-
- СтруктураПолей.Вставить("NAME" , "Иван");
- СтруктураПолей.Вставить("LAST_NAME", "Иванов");
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Результат = OPI_Bitrix24.СоздатьЛид(URL, СтруктураПолей, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "СоздатьЛид", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура Bitrix24_ИзменитьЛид(ПараметрыФункции)
-
- СтруктураПолей = Новый Структура;
- СтруктураПолей.Вставить("ADDRESS" , "ул. Лермонтова, д. 20");
- СтруктураПолей.Вставить("ADDRESS_COUNTRY", "Беларусь");
- СтруктураПолей.Вставить("TITLE" , "Суперклиент");
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЛида = ПараметрыФункции["Bitrix24_HookLeadID"];
-
- Результат = OPI_Bitrix24.ИзменитьЛид(URL, IDЛида, СтруктураПолей);
-
- Обработать(Результат, "Bitrix24", "ИзменитьЛид", "Хук"); // SKIP
-
- СтруктураПолей.Вставить("NAME" , "Евгений");
- СтруктураПолей.Вставить("LAST_NAME", "Евгеньев");
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЛида = ПараметрыФункции["Bitrix24_LeadID"];
-
- Результат = OPI_Bitrix24.ИзменитьЛид(URL, IDЛида, СтруктураПолей, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ИзменитьЛид");
-
-КонецПроцедуры
-
-Процедура Bitrix24_УдалитьЛид(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЛида = ПараметрыФункции["Bitrix24_HookLeadID"];
-
- Результат = OPI_Bitrix24.УдалитьЛид(URL, IDЛида);
-
- Обработать(Результат, "Bitrix24", "УдалитьЛид", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЛида = ПараметрыФункции["Bitrix24_LeadID"];
-
- Результат = OPI_Bitrix24.УдалитьЛид(URL, IDЛида, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "УдалитьЛид");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьЛид(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЛида = ПараметрыФункции["Bitrix24_HookLeadID"];
-
- Результат = OPI_Bitrix24.ПолучитьЛид(URL, IDЛида);
-
- Обработать(Результат, "Bitrix24", "ПолучитьЛид", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЛида = ПараметрыФункции["Bitrix24_LeadID"];
-
- Результат = OPI_Bitrix24.ПолучитьЛид(URL, IDЛида, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьЛид");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьСписокЛидов(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Результат = OPI_Bitrix24.ПолучитьСписокЛидов(URL);
-
- Обработать(Результат, "Bitrix24", "ПолучитьСписокЛидов", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Фильтр = Новый Структура;
- Фильтр.Вставить("TITLE" , "Мегаклиент");
- Фильтр.Вставить("HAS_EMAIL", "Y");
-
- Результат = OPI_Bitrix24.ПолучитьСписокЛидов(URL, Фильтр, , Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьСписокЛидов");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьСтруктуруФильтраСделок(ПараметрыФункции)
-
- Пустая = Ложь;
- Результат = OPI_Bitrix24.ПолучитьСтруктуруФильтраСделок(Пустая);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьСтруктуруФильтраСделок");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьСтруктуруСделки(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Результат = OPI_Bitrix24.ПолучитьСтруктуруСделки(URL);
-
- Обработать(Результат, "Bitrix24", "ПолучитьСтруктуруСделки", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Результат = OPI_Bitrix24.ПолучитьСтруктуруСделки(URL, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьСтруктуруСделки");
-
-КонецПроцедуры
-
-Процедура Bitrix24_СоздатьСделку(ПараметрыФункции)
-
- СтруктураПолей = Новый Структура;
- СтруктураПолей.Вставить("TITLE" , "Плановая продажа");
- СтруктураПолей.Вставить("TYPE_ID" , "GOODS");
- СтруктураПолей.Вставить("STAGE_ID" , "NEW");
- СтруктураПолей.Вставить("COMPANY_ID" , 1);
- СтруктураПолей.Вставить("CONTACT_ID" , 3);
- СтруктураПолей.Вставить("OPENED" , "Y");
- СтруктураПолей.Вставить("ASSIGNED_BY_ID", 1);
- СтруктураПолей.Вставить("PROBABILITY" , 30);
- СтруктураПолей.Вставить("CURRENCY_ID" , "USD");
- СтруктураПолей.Вставить("OPPORTUNITY" , 5000);
- СтруктураПолей.Вставить("CATEGORY_ID" , 5);
- СтруктураПолей.Вставить("BEGINDATE" , "2024-01-01");
- СтруктураПолей.Вставить("CLOSEDATE" , "2030-01-01");
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Результат = OPI_Bitrix24.СоздатьСделку(URL, СтруктураПолей);
-
- Обработать(Результат, "Bitrix24", "СоздатьСделку", "Хук", ПараметрыФункции); // SKIP
-
- СтруктураПолей.Вставить("TITLE" , "Другая сделка");
- СтруктураПолей.Вставить("CLOSEDATE", "2031-01-01");
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Результат = OPI_Bitrix24.СоздатьСделку(URL, СтруктураПолей, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "СоздатьСделку", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура Bitrix24_ИзменитьСделку(ПараметрыФункции)
-
- СтруктураПолей = Новый Структура;
- СтруктураПолей.Вставить("TITLE" , "Продажа в RUB");
- СтруктураПолей.Вставить("CURRENCY_ID", "RUB");
- СтруктураПолей.Вставить("OPPORTUNITY", 50000);
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDСделки = ПараметрыФункции["Bitrix24_HookDealID"];
-
- Результат = OPI_Bitrix24.ИзменитьСделку(URL, IDСделки, СтруктураПолей);
-
- Обработать(Результат, "Bitrix24", "ИзменитьСделку", "Хук"); // SKIP
-
- СтруктураПолей.Вставить("TITLE" , "Будущая сделка в RUB");
- СтруктураПолей.Вставить("BEGINDATE", "2025-01-01");
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDСделки = ПараметрыФункции["Bitrix24_DealID"];
-
- Результат = OPI_Bitrix24.ИзменитьСделку(URL, IDСделки, СтруктураПолей, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ИзменитьСделку");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьСделку(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDСделки = ПараметрыФункции["Bitrix24_HookDealID"];
-
- Результат = OPI_Bitrix24.ПолучитьСделку(URL, IDСделки);
-
- Обработать(Результат, "Bitrix24", "ПолучитьСделку", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDСделки = ПараметрыФункции["Bitrix24_HookDealID"];
-
- Результат = OPI_Bitrix24.ПолучитьСделку(URL, IDСделки, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьСделку");
-
-КонецПроцедуры
-
-Процедура Bitrix24_УдалитьСделку(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDСделки = ПараметрыФункции["Bitrix24_HookDealID"];
-
- Результат = OPI_Bitrix24.УдалитьСделку(URL, IDСделки);
-
- Обработать(Результат, "Bitrix24", "УдалитьСделку", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDСделки = ПараметрыФункции["Bitrix24_DealID"];
-
- Результат = OPI_Bitrix24.УдалитьСделку(URL, IDСделки, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "УдалитьСделку");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьСписокСделок(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Результат = OPI_Bitrix24.ПолучитьСписокСделок(URL);
-
- Обработать(Результат, "Bitrix24", "ПолучитьСписокСделок", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Фильтр = Новый Структура;
- Фильтр.Вставить("TITLE" , "Продажа в RUB");
- Фильтр.Вставить("CURRENCY_ID", "RUB");
-
- Результат = OPI_Bitrix24.ПолучитьСписокСделок(URL, Фильтр, , Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьСписокСделок");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьСтруктуруФильтраЗадач(ПараметрыФункции)
-
- Пустая = Ложь;
- Результат = OPI_Bitrix24.ПолучитьСтруктуруФильтраЗадач(Пустая);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьСтруктуруФильтраЗадач");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьСтруктуруКомментария(ПараметрыФункции)
-
- Пустая = Ложь;
- Результат = OPI_Bitrix24.ПолучитьСтруктуруКомментария(Пустая);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьСтруктуруКомментария");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьСтруктуруЧата(ПараметрыФункции)
-
- Пустая = Ложь;
- Результат = OPI_Bitrix24.ПолучитьСтруктуруЧата(Пустая);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьСтруктуруЧата");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьБлокКартинки(ПараметрыФункции)
-
- Наименование = "Картинка";
- URL = ПараметрыФункции["Picture"];
-
- Результат = OPI_Bitrix24.ПолучитьБлокКартинки(Наименование, URL);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьБлокКартинки");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьБлокФайла(ПараметрыФункции)
-
- Наименование = "Картинка";
- URL = ПараметрыФункции["Document"];
-
- Результат = OPI_Bitrix24.ПолучитьБлокФайла(Наименование, URL);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьБлокФайла");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьСтруктуруФильтраПользователей(ПараметрыФункции)
-
- Пустая = Ложь;
- Результат = OPI_Bitrix24.ПолучитьСтруктуруФильтраПользователей(Пустая);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьСтруктуруФильтраПользователей");
-
-КонецПроцедуры
-
-Процедура Bitrix24_СоздатьКалендарь(ПараметрыФункции)
-
- IDПользователя = 1;
-
- СтруктураКалендаря = Новый Структура;
- СтруктураКалендаря.Вставить("type" , "user");
- СтруктураКалендаря.Вставить("ownerId" , IDПользователя);
- СтруктураКалендаря.Вставить("name" , "Новый календарь");
- СтруктураКалендаря.Вставить("description", "Мой новый календарь");
- СтруктураКалендаря.Вставить("color" , "#FFFFFF");
- СтруктураКалендаря.Вставить("text_color" , "#000000");
-
- СтруктураЭкспорта = Новый Структура;
- СтруктураЭкспорта.Вставить("ALLOW", "Истина");
- СтруктураЭкспорта.Вставить("SET" , "all");
-
- СтруктураКалендаря.Вставить("export", СтруктураЭкспорта);
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Результат = OPI_Bitrix24.СоздатьКалендарь(URL, СтруктураКалендаря);
-
- Обработать(Результат, "Bitrix24", "СоздатьКалендарь", "Хук", ПараметрыФункции); // SKIP
-
- СтруктураКалендаря.Вставить("name" , "Другой календарь");
- СтруктураКалендаря.Вставить("description", "Мой другой новый календарь");
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Результат = OPI_Bitrix24.СоздатьКалендарь(URL, СтруктураКалендаря, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "СоздатьКалендарь", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура Bitrix24_ИзменитьКалендарь(ПараметрыФункции)
-
- IDПользователя = 1;
-
- СтруктураКалендаря = Новый Структура;
- СтруктураКалендаря.Вставить("type" , "user");
- СтруктураКалендаря.Вставить("ownerId" , IDПользователя);
- СтруктураКалендаря.Вставить("name" , "Новое имя календаря");
- СтруктураКалендаря.Вставить("description", "Этот календарь был изменен");
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDКалендаря = ПараметрыФункции["Bitrix24_HookCalendarID"];
-
- Результат = OPI_Bitrix24.ИзменитьКалендарь(URL, IDКалендаря, СтруктураКалендаря);
-
- Обработать(Результат, "Bitrix24", "ИзменитьКалендарь", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDКалендаря = ПараметрыФункции["Bitrix24_CalendarID"];
-
- Результат = OPI_Bitrix24.ИзменитьКалендарь(URL, IDКалендаря, СтруктураКалендаря, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ИзменитьКалендарь");
-
-КонецПроцедуры
-
-Процедура Bitrix24_УдалитьКалендарь(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDКалендаря = ПараметрыФункции["Bitrix24_HookCalendarID"];
- IDВладельца = 1;
- Тип = "user";
-
- Результат = OPI_Bitrix24.УдалитьКалендарь(URL, IDКалендаря, IDВладельца, Тип);
-
- Обработать(Результат, "Bitrix24", "УдалитьКалендарь", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDКалендаря = ПараметрыФункции["Bitrix24_CalendarID"];
-
- Результат = OPI_Bitrix24.УдалитьКалендарь(URL, IDКалендаря, IDВладельца, Тип, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "УдалитьКалендарь");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьСтруктуруКалендаря(ПараметрыФункции)
-
- Результат = OPI_Bitrix24.ПолучитьСтруктуруКалендаря();
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьСтруктуруКалендаря");
-
- Результат = OPI_Bitrix24.ПолучитьСтруктуруКалендаря(Истина);
-
- Обработать(Результат, "Bitrix24", "ПолучитьСтруктуруКалендаря", "Пустая");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьСписокКалендарей(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDВладельца = 1;
- Тип = "user";
-
- Результат = OPI_Bitrix24.ПолучитьСписокКалендарей(URL, IDВладельца, Тип);
-
- Обработать(Результат, "Bitrix24", "ПолучитьСписокКалендарей", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Результат = OPI_Bitrix24.ПолучитьСписокКалендарей(URL, IDВладельца, Тип, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьСписокКалендарей");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьСтруктуруНастроекКалендаря(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Результат = OPI_Bitrix24.ПолучитьСтруктуруНастроекКалендаря(URL);
-
- Обработать(Результат, "Bitrix24", "ПолучитьСтруктуруНастроекКалендаря", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Результат = OPI_Bitrix24.ПолучитьСтруктуруНастроекКалендаря(URL, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьСтруктуруНастроекКалендаря");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьСтруктуруПользовательскихНастроекКаледнаря(ПараметрыФункции)
-
- Результат = OPI_Bitrix24.ПолучитьСтруктуруПользовательскихНастроекКаледнаря();
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьСтруктуруПользовательскихНастроекКаледнаря");
-
- Результат = OPI_Bitrix24.ПолучитьСтруктуруПользовательскихНастроекКаледнаря(Истина);
-
- Обработать(Результат, "Bitrix24", "ПолучитьСтруктуруПользовательскихНастроекКаледнаря", "Пустая");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьПользовательскиеНастройкиКалендаря(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Результат = OPI_Bitrix24.ПолучитьПользовательскиеНастройкиКалендаря(URL);
-
- Обработать(Результат, "Bitrix24", "ПолучитьПользовательскиеНастройкиКалендаря", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Результат = OPI_Bitrix24.ПолучитьПользовательскиеНастройкиКалендаря(URL, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьПользовательскиеНастройкиКалендаря");
-
-КонецПроцедуры
-
-Процедура Bitrix24_УстановитьПользовательскиеНастройкиКалендаря(ПараметрыФункции)
-
- СтруктураКалендаря = Новый Структура;
- СтруктураКалендаря.Вставить("view" , "month");
- СтруктураКалендаря.Вставить("showDeclined" , "Y");
- СтруктураКалендаря.Вставить("collapseOffHours" , "N");
- СтруктураКалендаря.Вставить("showCompletedTasks", "N");
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Результат = OPI_Bitrix24.УстановитьПользовательскиеНастройкиКалендаря(URL, СтруктураКалендаря);
-
- Обработать(Результат, "Bitrix24", "УстановитьПользовательскиеНастройкиКалендаря", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Результат = OPI_Bitrix24.УстановитьПользовательскиеНастройкиКалендаря(URL, СтруктураКалендаря, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "УстановитьПользовательскиеНастройкиКалендаря");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьЗанятостьПользователей(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDКалендаря = ПараметрыФункции["Bitrix24_HookCalendarID"];
-
- Пользователь = 1;
-
- Неделя = 604800;
- ТекущаяДата = OPI_Инструменты.ПолучитьТекущуюДату();
-
- ДатаНачала = ТекущаяДата;
- ДатаОкончания = ТекущаяДата + Неделя;
-
- Результат = OPI_Bitrix24.ПолучитьЗанятостьПользователей(URL, Пользователь, ДатаНачала, ДатаОкончания);
-
- Обработать(Результат, "Bitrix24", "ПолучитьЗанятостьПользователей", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDКалендаря = ПараметрыФункции["Bitrix24_CalendarID"];
-
- Результат = OPI_Bitrix24.ПолучитьЗанятостьПользователей(URL, Пользователь, ДатаНачала, ДатаОкончания, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьЗанятостьПользователей");
-
-КонецПроцедуры
-
-Процедура Bitrix24_СоздатьСобытиеКалендаря(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDКалендаря = ПараметрыФункции["Bitrix24_HookCalendarID"];
-
- Завтра = OPI_Инструменты.ПолучитьТекущуюДату() + 86400;
- Час = 3600;
-
- СтруктураСобытия = Новый Структура;
-
- СтруктураСобытия.Вставить("type" , "user");
- СтруктураСобытия.Вставить("ownerId" , 1);
- СтруктураСобытия.Вставить("from" , XMLСтрока(Завтра));
- СтруктураСобытия.Вставить("to" , XMLСтрока(Завтра + Час));
- СтруктураСобытия.Вставить("section" , IDКалендаря);
- СтруктураСобытия.Вставить("name" , "Новое событие");
- СтруктураСобытия.Вставить("skip_time" , "N");
- СтруктураСобытия.Вставить("timezone_from", "Europe/Minsk");
- СтруктураСобытия.Вставить("timezone_to" , "Europe/Minsk");
- СтруктураСобытия.Вставить("description" , "Описание события");
- СтруктураСобытия.Вставить("color" , "%23000000>");
- СтруктураСобытия.Вставить("text_color" , "%23FFFFFF");
- СтруктураСобытия.Вставить("accessibility", "quest");
- СтруктураСобытия.Вставить("importance" , "normal");
- СтруктураСобытия.Вставить("private_event", "Y");
-
- СтруктураПовторяемости = Новый Структура;
- СтруктураПовторяемости.Вставить("FREQ" , "DAILY");
- СтруктураПовторяемости.Вставить("COUNT" , 3);
- СтруктураПовторяемости.Вставить("INTERVAL", 10);
-
- МассивДней = Новый Массив;
- МассивДней.Добавить("SA");
- МассивДней.Добавить("MO");
-
- СтруктураПовторяемости.Вставить("BYDAY", МассивДней);
- СтруктураПовторяемости.Вставить("UNTIL", XMLСтрока(Завтра + Час * 24 * 10));
-
- СтруктураСобытия.Вставить("rrule" , СтруктураПовторяемости);
- СтруктураСобытия.Вставить("is_meeting", "Y");
- СтруктураСобытия.Вставить("location" , "Офис");
-
- МассивНапоминаний = Новый Массив;
-
- СтруктураНапоминания = Новый Структура;
- СтруктураНапоминания.Вставить("type" , "day");
- СтруктураНапоминания.Вставить("count", 1);
-
- МассивНапоминаний.Добавить(СтруктураНапоминания);
-
- СтруктураСобытия.Вставить("remind" , МассивНапоминаний);
- СтруктураСобытия.Вставить("attendees", СтрРазделить("1,10", ","));
- СтруктураСобытия.Вставить("host" , 1);
-
- СтруктураВстречи = Новый Структура;
- СтруктураВстречи.Вставить("notify" , "Y");
- СтруктураВстречи.Вставить("reinvite" , "Y");
- СтруктураВстречи.Вставить("allow_invite", "N");
- СтруктураВстречи.Вставить("hide_guests" , "N");
-
- СтруктураСобытия.Вставить("meeting", СтруктураВстречи);
-
- Результат = OPI_Bitrix24.СоздатьСобытиеКалендаря(URL, СтруктураСобытия);
-
- Обработать(Результат, "Bitrix24", "СоздатьСобытиеКалендаря", "Хук", ПараметрыФункции); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDКалендаря = ПараметрыФункции["Bitrix24_CalendarID"];
-
- СтруктураСобытия.Вставить("section", IDКалендаря);
-
- Результат = OPI_Bitrix24.СоздатьСобытиеКалендаря(URL, СтруктураСобытия, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "СоздатьСобытиеКалендаря", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура Bitrix24_ИзменитьСобытиеКалендаря(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDСобытия = ПараметрыФункции["Bitrix24_HookCEventID"];
-
- СтруктураСобытия = Новый Структура;
-
- СтруктураСобытия.Вставить("ownerId" , 1);
- СтруктураСобытия.Вставить("type" , "user");
- СтруктураСобытия.Вставить("name" , "Измененное событие");
- СтруктураСобытия.Вставить("description" , "Новое описание события");
- СтруктураСобытия.Вставить("importance" , "low");
- СтруктураСобытия.Вставить("private_event", "Y");
-
- Результат = OPI_Bitrix24.ИзменитьСобытиеКалендаря(URL, IDСобытия, СтруктураСобытия);
-
- Обработать(Результат, "Bitrix24", "ИзменитьСобытиеКалендаря", "Хук", ПараметрыФункции); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDСобытия = ПараметрыФункции["Bitrix24_CEventID"];
- IDКалендаря = ПараметрыФункции["Bitrix24_CalendarID"];
-
- Результат = OPI_Bitrix24.ИзменитьСобытиеКалендаря(URL, IDСобытия, СтруктураСобытия, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ИзменитьСобытиеКалендаря", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура Bitrix24_УдалитьСобытиеКалендаря(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDСобытия = ПараметрыФункции["Bitrix24_HookCEventID"];
-
- Результат = OPI_Bitrix24.УдалитьСобытиеКалендаря(URL, IDСобытия);
-
- Обработать(Результат, "Bitrix24", "УдалитьСобытиеКалендаря", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDСобытия = ПараметрыФункции["Bitrix24_CEventID"];
-
- Результат = OPI_Bitrix24.УдалитьСобытиеКалендаря(URL, IDСобытия, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "УдалитьСобытиеКалендаря");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьСобытиеКалендаря(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDСобытия = ПараметрыФункции["Bitrix24_HookCEventID"];
-
- Результат = OPI_Bitrix24.ПолучитьСобытиеКалендаря(URL, IDСобытия);
-
- Обработать(Результат, "Bitrix24", "ПолучитьСобытиеКалендаря", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDСобытия = ПараметрыФункции["Bitrix24_CEventID"];
-
- Результат = OPI_Bitrix24.ПолучитьСобытиеКалендаря(URL, IDСобытия, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьСобытиеКалендаря");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьСобытияКалендарей(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDВладельца = 1;
- Тип = "user";
-
- Результат = OPI_Bitrix24.ПолучитьСобытияКалендарей(URL, IDВладельца, Тип);
-
- Обработать(Результат, "Bitrix24", "ПолучитьСобытияКалендарей", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDСобытия = ПараметрыФункции["Bitrix24_CEventID"];
- IDКалендаря1 = ПараметрыФункции["Bitrix24_HookCalendarID"];
- IDКалендаря2 = ПараметрыФункции["Bitrix24_CalendarID"];
-
- Завтра = OPI_Инструменты.ПолучитьТекущуюДату() + 86400;
- Послезавтра = Завтра + 86400;
-
- МассивКалендарей = Новый Массив;
- МассивКалендарей.Добавить(IDКалендаря1);
- МассивКалендарей.Добавить(IDКалендаря2);
-
- Фильтр = Новый Структура;
- Фильтр.Вставить("from" , Завтра);
- Фильтр.Вставить("to" , Послезавтра);
- Фильтр.Вставить("section", МассивКалендарей);
-
- Результат = OPI_Bitrix24.ПолучитьСобытияКалендарей(URL, IDВладельца, Тип, Фильтр, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьСобытияКалендарей");
-
-КонецПроцедуры
-
-Процедура Bitrix24_УстановитьСтатусУчастияПользователя(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDСобытия = ПараметрыФункции["Bitrix24_HookCEventID"];
- Статус = "Y";
-
- Результат = OPI_Bitrix24.УстановитьСтатусУчастияПользователя(URL, IDСобытия, Статус);
-
- Обработать(Результат, "Bitrix24", "УстановитьСтатусУчастияПользователя", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDСобытия = ПараметрыФункции["Bitrix24_CEventID"];
-
- Результат = OPI_Bitrix24.УстановитьСтатусУчастияПользователя(URL, IDСобытия, Статус, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "УстановитьСтатусУчастияПользователя");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьСтатусУчастияПользователя(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDСобытия = ПараметрыФункции["Bitrix24_HookCEventID"];
-
- Результат = OPI_Bitrix24.ПолучитьСтатусУчастияПользователя(URL, IDСобытия);
-
- Обработать(Результат, "Bitrix24", "ПолучитьСтатусУчастияПользователя", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDСобытия = ПараметрыФункции["Bitrix24_CEventID"];
-
- Результат = OPI_Bitrix24.ПолучитьСтатусУчастияПользователя(URL, IDСобытия, Токен);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьСтатусУчастияПользователя");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьСтруктуруСобытияКалендаря(ПараметрыФункции)
-
- Результат = OPI_Bitrix24.ПолучитьСтруктуруСобытияКалендаря();
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьСтруктуруСобытияКалендаря");
-
- Результат = OPI_Bitrix24.ПолучитьСтруктуруСобытияКалендаря(Истина);
-
- Обработать(Результат, "Bitrix24", "ПолучитьСтруктуруСобытияКалендаря", "Пустая");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьСтруктуруФильтраСобытийКалендарей(ПараметрыФункции)
-
- Результат = OPI_Bitrix24.ПолучитьСтруктуруФильтраСобытийКалендарей();
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьСтруктуруФильтраСобытийКалендарей");
-
- Результат = OPI_Bitrix24.ПолучитьСтруктуруФильтраСобытийКалендарей(Истина);
-
- Обработать(Результат, "Bitrix24", "ПолучитьСтруктуруФильтраСобытийКалендарей", "Пустая");
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область VKTeams
-
-Процедура VKTeams_ПроверитьТокен(ПараметрыФункции)
-
- Токен = ПараметрыФункции["VkTeams_Token"];
- Результат = OPI_VKTeams.ПроверитьТокен(Токен);
-
- // END
-
- Обработать(Результат, "VKTeams", "ПроверитьТокен");
-
-КонецПроцедуры
-
-Процедура VKTeams_ПолучитьСобытия(ПараметрыФункции)
-
- Токен = ПараметрыФункции["VkTeams_Token"];
- IDПоследнего = 0;
-
- Для Н = 1 По 5 Цикл // В реальной работе - бесконечный цикл
-
- Результат = OPI_VKTeams.ПолучитьСобытия(Токен, IDПоследнего, 3);
-
- Обработать(Результат, "VKTeams", "ПолучитьСобытия"); // SKIP
-
- События = Результат["events"];
-
- // Обработка событий...
-
- Если Не События.Количество() = 0 Тогда
-
- IDПоследнего = События[События.ВГраница()]["eventId"];
-
- КонецЕсли;
-
- КонецЦикла;
-
- // END
-
- OPI_Инструменты.Пауза(3);
-
-КонецПроцедуры
-
-Процедура VKTeams_ОтправитьТекстовоеСообщение(ПараметрыФункции)
-
- Токен = ПараметрыФункции["VkTeams_Token"];
- IDЧата = ПараметрыФункции["VkTeams_ChatID"];
- Текст = "Текст сообщения";
-
- Результат = OPI_VKTeams.ОтправитьТекстовоеСообщение(Токен, IDЧата, Текст);
-
- Обработать(Результат, "VKTeams", "ОтправитьТекстовоеСообщение", "Простое", ПараметрыФункции); // SKIP
-
- IDЧата = ПараметрыФункции["VkTeams_ChatID2"];
- IDЦитируемого = ПараметрыФункции["VkTeams_MessageID"];
- Текст = "Полужирный текст сообщения";
- Разметка = "HTML";
-
- Клавиатура = Новый Массив;
- МассивСтрокиКнопок = Новый Массив;
-
- МассивСтрокиКнопок.Добавить(OPI_VKTeams.СформироватьКнопкуДействия("Кнопка1", "НажатиеКнопки1", , "attention"));
-
- МассивСтрокиКнопок.Добавить(OPI_VKTeams.СформироватьКнопкуДействия("Кнопка2", , "https://openintegrations.dev"));
-
- // BSLLS:DuplicatedInsertionIntoCollection-off // SKIP
- Клавиатура.Добавить(МассивСтрокиКнопок);
- Клавиатура.Добавить(МассивСтрокиКнопок);
- // BSLLS:DuplicatedInsertionIntoCollection-on // SKIP
-
- Результат = OPI_VKTeams.ОтправитьТекстовоеСообщение(Токен, IDЧата, Текст, IDЦитируемого, Клавиатура, Разметка);
-
- // END
-
- Обработать(Результат, "VKTeams", "ОтправитьТекстовоеСообщение", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура VKTeams_ПереслатьСообщение(ПараметрыФункции)
-
- Токен = ПараметрыФункции["VkTeams_Token"];
- IDЧата = ПараметрыФункции["VkTeams_ChatID"];
- IDЧатаИсточника = ПараметрыФункции["VkTeams_ChatID2"];
- IDСообщения = ПараметрыФункции["VkTeams_MessageID"];
-
- Результат = OPI_VKTeams.ПереслатьСообщение(Токен, IDСообщения, IDЧатаИсточника, IDЧата);
-
- Обработать(Результат, "VKTeams", "ПереслатьСообщение", "Простое"); // SKIP
-
- Текст = "Дополнительный текст";
-
- Результат = OPI_VKTeams.ПереслатьСообщение(Токен, IDСообщения, IDЧатаИсточника, IDЧата, Текст);
-
- // END
-
- Обработать(Результат, "VKTeams", "ПереслатьСообщение");
-
-КонецПроцедуры
-
-Процедура VKTeams_ОтправитьФайл(ПараметрыФункции)
-
- Токен = ПараметрыФункции["VkTeams_Token"];
- IDЧата = ПараметрыФункции["VkTeams_ChatID"];
- Текст = "Подпись к файлу";
-
- Файл = ПараметрыФункции["Document"]; // URL
- ФайлПуть = ПолучитьИмяВременногоФайла("docx"); // Путь
-
- КопироватьФайл(Файл, ФайлПуть);
-
- ФайлДД = Новый ДвоичныеДанные(ФайлПуть); // Двоичные
-
- Результат = OPI_VKTeams.ОтправитьФайл(Токен, IDЧата, Файл);
-
- Обработать(Результат, "VKTeams", "ОтправитьФайл", "URL", ПараметрыФункции); // SKIP
-
- Результат = OPI_VKTeams.ОтправитьФайл(Токен, IDЧата, ФайлПуть, Текст);
-
- Обработать(Результат, "VKTeams", "ОтправитьФайл", "Путь", ПараметрыФункции); // SKIP
-
- Результат = OPI_VKTeams.ОтправитьФайл(Токен, IDЧата, ФайлДД, Текст, "ВажныйДокумент.docx");
-
- // END
-
- Обработать(Результат, "VKTeams", "ОтправитьФайл", , ПараметрыФункции);
-
- OPI_Инструменты.УдалитьФайлВПопытке(ФайлПуть, "Не удалось удалить временный файл после теста!");
-
-КонецПроцедуры
-
-Процедура VKTeams_ПереслатьФайл(ПараметрыФункции)
-
- Токен = ПараметрыФункции["VkTeams_Token"];
- IDЧата = ПараметрыФункции["VkTeams_ChatID"];
- IDФайла = ПараметрыФункции["VkTeams_FileID"];
- Текст = "Подпись к файлу";
-
- Результат = OPI_VKTeams.ПереслатьФайл(Токен, IDЧата, IDФайла, Текст);
-
- // END
-
- Обработать(Результат, "VKTeams", "ПереслатьФайл");
-
-КонецПроцедуры
-
-Процедура VKTeams_ПолучитьИнформациюОФайле(ПараметрыФункции)
-
- Токен = ПараметрыФункции["VkTeams_Token"];
- IDФайла = ПараметрыФункции["VkTeams_FileID"];
-
- Результат = OPI_VKTeams.ПолучитьИнформациюОФайле(Токен, IDФайла);
-
- // END
-
- Обработать(Результат, "VKTeams", "ПолучитьИнформациюОФайле");
-
-КонецПроцедуры
-
-Процедура VKTeams_ИзменитьТекстСообщения(ПараметрыФункции)
-
- Токен = ПараметрыФункции["VkTeams_Token"];
- IDЧата = ПараметрыФункции["VkTeams_ChatID2"];
- IDСообщения = ПараметрыФункции["VkTeams_MessageID"];
- Текст = "Новый текст сообщения";
-
- Результат = OPI_VKTeams.ИзменитьТекстСообщения(Токен, IDЧата, IDСообщения, Текст);
-
- Обработать(Результат, "VKTeams", "ИзменитьТекстСообщения", "Путь"); // SKIP
-
- Текст = "Новый полужирный текст сообщения";
- Разметка = "HTML";
-
- Результат = OPI_VKTeams.ИзменитьТекстСообщения(Токен, IDЧата, IDСообщения, Текст, Разметка);
-
- // END
-
- Обработать(Результат, "VKTeams", "ИзменитьТекстСообщения");
-
-КонецПроцедуры
-
-Процедура VKTeams_УдалитьСообщение(ПараметрыФункции)
-
- Токен = ПараметрыФункции["VkTeams_Token"];
- IDЧата = ПараметрыФункции["VkTeams_ChatID2"];
- IDСообщения = ПараметрыФункции["VkTeams_MessageID"];
-
- Результат = OPI_VKTeams.УдалитьСообщение(Токен, IDЧата, IDСообщения);
-
- // END
-
- Обработать(Результат, "VKTeams", "УдалитьСообщение");
-
-КонецПроцедуры
-
-Процедура VKTeams_ОтправитьГолосовоеСообщение(ПараметрыФункции)
-
- Токен = ПараметрыФункции["VkTeams_Token"];
- IDЧата = ПараметрыФункции["VkTeams_ChatID2"];
- IDЦитируемого = ПараметрыФункции["VkTeams_MessageID"];
-
- Файл = ПараметрыФункции["Audio2"]; // URL
- ФайлПуть = ПолучитьИмяВременногоФайла("m4a"); // Путь
-
- КопироватьФайл(Файл, ФайлПуть);
-
- ФайлДД = Новый ДвоичныеДанные(ФайлПуть); // Двоичные
-
- Результат = OPI_VKTeams.ОтправитьГолосовоеСообщение(Токен, IDЧата, Файл);
-
- Обработать(Результат, "VKTeams", "ОтправитьГолосовоеСообщение", "URL", ПараметрыФункции); // SKIP
-
- Результат = OPI_VKTeams.ОтправитьГолосовоеСообщение(Токен, IDЧата, ФайлПуть, , IDЦитируемого);
-
- Обработать(Результат, "VKTeams", "ОтправитьГолосовоеСообщение", "Путь", ПараметрыФункции); // SKIP
-
- Результат = OPI_VKTeams.ОтправитьГолосовоеСообщение(Токен, IDЧата, ФайлДД);
-
- // END
-
- Обработать(Результат, "VKTeams", "ОтправитьГолосовоеСообщение", , ПараметрыФункции);
-
- OPI_Инструменты.УдалитьФайлВПопытке(ФайлПуть, "Не удалось удалить временный файл после теста!");
-
-КонецПроцедуры
-
-Процедура VKTeams_ПереслатьГолосовоеСообщение(ПараметрыФункции)
-
- Токен = ПараметрыФункции["VkTeams_Token"];
- IDЧата = ПараметрыФункции["VkTeams_ChatID"];
- IDФайла = ПараметрыФункции["VkTeams_VoiceID"];
-
- Результат = OPI_VKTeams.ПереслатьГолосовоеСообщение(Токен, IDЧата, IDФайла);
-
- // END
-
- Обработать(Результат, "VKTeams", "ПереслатьГолосовоеСообщение");
-
-КонецПроцедуры
-
-Процедура VKTeams_ИсключитьПользователейЧата(ПараметрыФункции)
-
- Токен = ПараметрыФункции["VkTeams_Token"];
- IDЧата = ПараметрыФункции["VkTeams_ChatID2"];
- Пользователь = 1011987091;
-
- Результат = OPI_VKTeams.ИсключитьПользователейЧата(Токен, IDЧата, Пользователь);
-
- // END
-
- Обработать(Результат, "VKTeams", "ИсключитьПользователейЧата");
-
-КонецПроцедуры
-
-Процедура VKTeams_ИзменитьАватарЧата(ПараметрыФункции)
-
- Токен = ПараметрыФункции["VkTeams_Token"];
- IDЧата = ПараметрыФункции["VkTeams_ChatID"];
-
- Файл = ПараметрыФункции["Picture3"]; // URL
- ФайлПуть = ПолучитьИмяВременногоФайла("png"); // Путь
-
- КопироватьФайл(Файл, ФайлПуть);
-
- ФайлДД = Новый ДвоичныеДанные(ФайлПуть); // Двоичные
-
- Результат = OPI_VKTeams.ИзменитьАватарЧата(Токен, IDЧата, Файл);
-
- Обработать(Результат, "VKTeams", "ИзменитьАватарЧата", "URL");
-
- Результат = OPI_VKTeams.ИзменитьАватарЧата(Токен, IDЧата, ФайлПуть);
-
- Обработать(Результат, "VKTeams", "ИзменитьАватарЧата", "Путь");
-
- Результат = OPI_VKTeams.ИзменитьАватарЧата(Токен, IDЧата, ФайлДД);
-
- // END
-
- Обработать(Результат, "VKTeams", "ИзменитьАватарЧата");
-
- OPI_Инструменты.УдалитьФайлВПопытке(ФайлПуть, "Не удалось удалить временный файл после теста!");
-
-КонецПроцедуры
-
-Процедура VKTeams_ПолучитьИнформациюОЧате(ПараметрыФункции)
-
- Токен = ПараметрыФункции["VkTeams_Token"];
- IDЧата = ПараметрыФункции["VkTeams_ChatID"];
-
- Результат = OPI_VKTeams.ПолучитьИнформациюОЧате(Токен, IDЧата);
-
- // END
-
- Обработать(Результат, "VKTeams", "ПолучитьИнформациюОЧате");
-
-КонецПроцедуры
-
-Процедура VKTeams_ПолучитьАдминистраторовЧата(ПараметрыФункции)
-
- Токен = ПараметрыФункции["VkTeams_Token"];
- IDЧата = ПараметрыФункции["VkTeams_ChatID"];
-
- Результат = OPI_VKTeams.ПолучитьАдминистраторовЧата(Токен, IDЧата);
-
- // END
-
- Обработать(Результат, "VKTeams", "ПолучитьАдминистраторовЧата");
-
-КонецПроцедуры
-
-Процедура VKTeams_ПолучитьПользователейЧата(ПараметрыФункции)
-
- Токен = ПараметрыФункции["VkTeams_Token"];
- IDЧата = ПараметрыФункции["VkTeams_ChatID"];
-
- Результат = OPI_VKTeams.ПолучитьПользователейЧата(Токен, IDЧата);
-
- // END
-
- Обработать(Результат, "VKTeams", "ПолучитьПользователейЧата");
-
-КонецПроцедуры
-
-Процедура VKTeams_ПолучитьЗаблокированныхПользователейЧата(ПараметрыФункции)
-
- Токен = ПараметрыФункции["VkTeams_Token"];
- IDЧата = ПараметрыФункции["VkTeams_ChatID"];
-
- Результат = OPI_VKTeams.ПолучитьЗаблокированныхПользователейЧата(Токен, IDЧата);
-
- // END
-
- Обработать(Результат, "VKTeams", "ПолучитьЗаблокированныхПользователейЧата");
-
-КонецПроцедуры
-
-Процедура VKTeams_ПолучитьЗапросыВступленияЧата(ПараметрыФункции)
-
- Токен = ПараметрыФункции["VkTeams_Token"];
- IDЧата = ПараметрыФункции["VkTeams_ChatID"];
-
- Результат = OPI_VKTeams.ПолучитьЗапросыВступленияЧата(Токен, IDЧата);
-
- // END
-
- Обработать(Результат, "VKTeams", "ПолучитьЗапросыВступленияЧата");
-
-КонецПроцедуры
-
-Процедура VKTeams_ЗаблокироватьПользователяЧата(ПараметрыФункции)
-
- Токен = ПараметрыФункции["VkTeams_Token"];
- IDЧата = ПараметрыФункции["VkTeams_ChatID2"];
- Пользователь = 1011987091;
-
- Результат = OPI_VKTeams.ЗаблокироватьПользователяЧата(Токен, IDЧата, Пользователь, Истина);
-
- // END
-
- Обработать(Результат, "VKTeams", "ЗаблокироватьПользователяЧата");
-
-КонецПроцедуры
-
-Процедура VKTeams_РазблокироватьПользователяЧата(ПараметрыФункции)
-
- Токен = ПараметрыФункции["VkTeams_Token"];
- IDЧата = ПараметрыФункции["VkTeams_ChatID2"];
- Пользователь = 1011987091;
-
- Результат = OPI_VKTeams.РазблокироватьПользователяЧата(Токен, IDЧата, Пользователь);
-
- // END
-
- Обработать(Результат, "VKTeams", "РазблокироватьПользователяЧата");
-
-КонецПроцедуры
-
-Процедура VKTeams_ЗакрепитьСообщение(ПараметрыФункции)
-
- Токен = ПараметрыФункции["VkTeams_Token"];
- IDЧата = ПараметрыФункции["VkTeams_ChatID2"];
- IDСообщения = ПараметрыФункции["VkTeams_MessageID"];
-
- Результат = OPI_VKTeams.ЗакрепитьСообщение(Токен, IDЧата, IDСообщения);
-
- // END
-
- Обработать(Результат, "VKTeams", "ЗакрепитьСообщение");
-
-КонецПроцедуры
-
-Процедура VKTeams_ОткрепитьСообщение(ПараметрыФункции)
-
- Токен = ПараметрыФункции["VkTeams_Token"];
- IDЧата = ПараметрыФункции["VkTeams_ChatID2"];
- IDСообщения = ПараметрыФункции["VkTeams_MessageID"];
-
- Результат = OPI_VKTeams.ОткрепитьСообщение(Токен, IDЧата, IDСообщения);
-
- // END
-
- Обработать(Результат, "VKTeams", "ОткрепитьСообщение");
-
-КонецПроцедуры
-
-Процедура VKTeams_ОдобритьЗаявкуНаВступление(ПараметрыФункции)
-
- Токен = ПараметрыФункции["VkTeams_Token"];
- IDЧата = ПараметрыФункции["VkTeams_ChatID2"];
- Пользователь = 1011987091;
-
- Результат = OPI_VKTeams.ОдобритьЗаявкуНаВступление(Токен, IDЧата, Пользователь);
-
- Обработать(Результат, "VKTeams", "ОдобритьЗаявкуНаВступление", "Один"); // SKIP
-
- Результат = OPI_VKTeams.ОдобритьЗаявкуНаВступление(Токен, IDЧата);
-
- // END
-
- Обработать(Результат, "VKTeams", "ОдобритьЗаявкуНаВступление");
-
-КонецПроцедуры
-
-Процедура VKTeams_ОтклонитьЗаявкуНаВступление(ПараметрыФункции)
-
- Токен = ПараметрыФункции["VkTeams_Token"];
- IDЧата = ПараметрыФункции["VkTeams_ChatID2"];
- Пользователь = 1011987091;
-
- Результат = OPI_VKTeams.ОтклонитьЗаявкуНаВступление(Токен, IDЧата, Пользователь);
-
- Обработать(Результат, "VKTeams", "ОтклонитьЗаявкуНаВступление", "Один"); // SKIP
-
- Результат = OPI_VKTeams.ОтклонитьЗаявкуНаВступление(Токен, IDЧата);
-
- // END
-
- Обработать(Результат, "VKTeams", "ОтклонитьЗаявкуНаВступление");
-
-КонецПроцедуры
-
-Процедура VKTeams_УстановитьЗаголовокЧата(ПараметрыФункции)
-
- Токен = ПараметрыФункции["VkTeams_Token"];
- IDЧата = ПараметрыФункции["VkTeams_ChatID2"];
- Текст = "Новый заголовок";
-
- Результат = OPI_VKTeams.УстановитьЗаголовокЧата(Токен, IDЧата, Текст);
-
- // END
-
- Обработать(Результат, "VKTeams", "УстановитьЗаголовокЧата");
-
-КонецПроцедуры
-
-Процедура VKTeams_УстановитьОписаниеЧата(ПараметрыФункции)
-
- Токен = ПараметрыФункции["VkTeams_Token"];
- IDЧата = ПараметрыФункции["VkTeams_ChatID2"];
- Текст = "Новое описание";
-
- Результат = OPI_VKTeams.УстановитьОписаниеЧата(Токен, IDЧата, Текст);
-
- // END
-
- Обработать(Результат, "VKTeams", "УстановитьОписаниеЧата");
-
-КонецПроцедуры
-
-Процедура VKTeams_УстановитьПравилаЧата(ПараметрыФункции)
-
- Токен = ПараметрыФункции["VkTeams_Token"];
- IDЧата = ПараметрыФункции["VkTeams_ChatID2"];
- Текст = "Текст новых правил";
-
- Результат = OPI_VKTeams.УстановитьПравилаЧата(Токен, IDЧата, Текст);
-
- // END
-
- Обработать(Результат, "VKTeams", "УстановитьПравилаЧата");
-
-КонецПроцедуры
-
-Процедура VKTeams_ОтветитьНаСобытиеКлавиатуры(ПараметрыФункции)
-
- Токен = ПараметрыФункции["VkTeams_Token"];
- IDПоследнего = 0;
-
- Для Н = 1 По 5 Цикл
-
- Результат = OPI_VKTeams.ПолучитьСобытия(Токен, IDПоследнего, 3);
- События = Результат["events"];
-
- Если Не События.Количество() = 0 Тогда
-
- Для Каждого Событие Из События Цикл
-
- ДанныеСобытия = Событие["payload"];
-
- Если ДанныеСобытия["callbackData"] = "НажатиеКнопки1" Тогда
-
- IDСобытия = ДанныеСобытия["queryId"];
- Результат = OPI_VKTeams.ОтветитьНаСобытиеКлавиатуры(Токен, IDСобытия, "Получено!");
-
- Обработать(Результат, "VKTeams", "ОтветитьНаСобытиеКлавиатуры"); // SKIP
-
- КонецЕсли;
-
- КонецЦикла;
-
- IDПоследнего = События[События.ВГраница()]["eventId"];
-
- КонецЕсли;
-
- КонецЦикла;
-
- // END
-
- OPI_Инструменты.Пауза(3);
-
-КонецПроцедуры
-
-Процедура VKTeams_СформироватьКнопкуДействия(ПараметрыФункции)
-
- Клавиатура = Новый Массив;
- МассивСтрокиКнопок = Новый Массив;
-
- МассивСтрокиКнопок.Добавить(OPI_VKTeams.СформироватьКнопкуДействия("Кнопка1", "НажатиеКнопки1", , "attention"));
-
- МассивСтрокиКнопок.Добавить(OPI_VKTeams.СформироватьКнопкуДействия("Кнопка2", , "https://openintegrations.dev"));
-
- // BSLLS:DuplicatedInsertionIntoCollection-off // SKIP
- Клавиатура.Добавить(МассивСтрокиКнопок);
- Клавиатура.Добавить(МассивСтрокиКнопок);
- // BSLLS:DuplicatedInsertionIntoCollection-on // SKIP
-
- // END
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область Neocities
-
-Процедура Neocities_ЗагрузитьФайл(ПараметрыФункции)
-
- Токен = ПараметрыФункции["NC_Token"];
- Данные = ПараметрыФункции["Picture"]; // URL, Путь или Двоичные данные
- Путь = "testfolder/test_pic.png";
-
- Результат = OPI_Neocities.ЗагрузитьФайл(Токен, Путь, Данные);
-
- // END
-
- Обработать(Результат, "Neocities", "ЗагрузитьФайл");
-
-КонецПроцедуры
-
-Процедура Neocities_ЗагрузитьФайлы(ПараметрыФункции)
-
- Токен = ПараметрыФункции["NC_Token"];
-
- Картинка1 = ПараметрыФункции["Picture"]; // URL, Путь или Двоичные данные
- Картинка2 = ПараметрыФункции["Picture2"]; // URL, Путь или Двоичные данные
- Гифка = ПараметрыФункции["Gif"]; // URL, Путь или Двоичные данные
-
- СоответствиеФайлов = Новый Соответствие;
- СоответствиеФайлов.Вставить("test/pic1.png", Картинка1);
- СоответствиеФайлов.Вставить("test/gif.gif" , Картинка2);
- СоответствиеФайлов.Вставить("pic2.png" , Гифка);
-
- Результат = OPI_Neocities.ЗагрузитьФайлы(Токен, СоответствиеФайлов);
-
- // END
-
- Обработать(Результат, "Neocities", "ЗагрузитьФайлы");
-
-КонецПроцедуры
-
-Процедура Neocities_УдалитьВыбранныеФайлы(ПараметрыФункции)
-
- Токен = ПараметрыФункции["NC_Token"];
-
- Пути = Новый Массив;
- Пути.Добавить("/test/pic1.png");
- Пути.Добавить("/test/gif.gif");
- Пути.Добавить("/pic2.png");
-
- Результат = OPI_Neocities.УдалитьВыбранныеФайлы(Токен, Пути);
-
- // END
-
- Обработать(Результат, "Neocities", "УдалитьВыбранныеФайлы");
-
- Результат = OPI_Neocities.УдалитьВыбранныеФайлы(Токен, "/testfolder");
-
- Обработать(Результат, "Neocities", "УдалитьВыбранныеФайлы", "Каталог 1");
-
- Результат = OPI_Neocities.УдалитьВыбранныеФайлы(Токен, "/test");
-
- Обработать(Результат, "Neocities", "УдалитьВыбранныеФайлы", "Каталог 2");
-
-КонецПроцедуры
-
-Процедура Neocities_ПолучитьСписокФайлов(ПараметрыФункции)
-
- Токен = ПараметрыФункции["NC_Token"];
- Путь = "test";
-
- Результат = OPI_Neocities.ПолучитьСписокФайлов(Токен, Путь);
-
- // END
-
- Обработать(Результат, "Neocities", "ПолучитьСписокФайлов");
-
- Результат = OPI_Neocities.ПолучитьСписокФайлов(Токен);
-
- Обработать(Результат, "Neocities", "ПолучитьСписокФайлов", "Все");
-
-КонецПроцедуры
-
-Процедура Neocities_ПолучитьДанныеОСайте(ПараметрыФункции)
-
- Токен = ПараметрыФункции["NC_Token"];
- Сайт = "2athenaeum";
-
- Результат = OPI_Neocities.ПолучитьДанныеОСайте(Токен);
-
- Обработать(Результат, "Neocities", "ПолучитьДанныеОСайте"); // SKIP
-
- Результат = OPI_Neocities.ПолучитьДанныеОСайте(Токен, Сайт);
-
- // END
-
- Обработать(Результат, "Neocities", "ПолучитьДанныеОСайте", "Сайт");
-
-КонецПроцедуры
-
-Процедура Neocities_ПолучитьТокен(ПараметрыФункции)
-
- Логин = ПараметрыФункции["NC_Login"];
- Пароль = ПараметрыФункции["NC_Password"];
-
- Результат = OPI_Neocities.ПолучитьТокен(Логин, Пароль);
-
- // END
-
- Результат["api_key"] = "***";
-
- Обработать(Результат, "Neocities", "ПолучитьТокен");
-
-КонецПроцедуры
-
-Процедура Neocities_СинхронизироватьКаталоги(ПараметрыФункции)
-
- Токен = ПараметрыФункции["NC_Token"];
-
- ЛокальныйКаталог = "C:\test_site";
- УдаленныйКаталог = "test_sync";
-
- Результат = OPI_Neocities.СинхронизироватьКаталоги(Токен, ЛокальныйКаталог, УдаленныйКаталог);
-
- // END
-
- Обработать(Результат, "Neocities", "СинхронизироватьКаталоги");
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область CDEK
-
-Процедура CDEK_ПолучитьТокен(ПараметрыФункции)
-
- Аккаунт = ПараметрыФункции["CDEK_Account"];
- Пароль = ПараметрыФункции["CDEK_Password"];
-
- Результат = OPI_CDEK.ПолучитьТокен(Аккаунт, Пароль, Истина);
-
- // END
-
- Обработать(Результат, "CDEK", "ПолучитьТокен", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура CDEK_ПолучитьОписаниеЗаказа(ПараметрыФункции)
-
- Результат = OPI_CDEK.ПолучитьОписаниеЗаказа();
-
- // END
-
- Обработать(Результат, "CDEK", "ПолучитьОписаниеЗаказа");
-
- Результат = OPI_CDEK.ПолучитьОписаниеЗаказа(Истина);
-
- Обработать(Результат, "CDEK", "ПолучитьОписаниеЗаказа", "Пустая");
-
-КонецПроцедуры
-
-Процедура CDEK_СоздатьЗаказ(ПараметрыФункции)
-
- Токен = ПараметрыФункции["CDEK_Token"];
-
- ОписаниеЗаказа = Новый Структура;
-
- ЛокацияОтправления = Новый Структура;
- ЛокацияОтправления.Вставить("code" , "44");
- ЛокацияОтправления.Вставить("city" , "Москва");
- ЛокацияОтправления.Вставить("address", "пр. Ленинградский, д.4");
-
- ЛокацияНазначения = Новый Структура;
- ЛокацияНазначения.Вставить("code" , "270");
- ЛокацияНазначения.Вставить("city" , "Новосибирск");
- ЛокацияНазначения.Вставить("address", "ул. Блюхера, 32");
-
- Получатель = Новый Структура;
-
- Телефоны = Новый Массив;
- Телефоны.Добавить(Новый Структура("number", "+79134637228"));
-
- Получатель.Вставить("phones", Телефоны);
- Получатель.Вставить("name" , "Иванов Иван");
-
- Отправитель = Новый Структура("name", "Петров Петр");
-
- Услуги = Новый Массив;
-
- Услуга = Новый Структура;
- Услуга.Вставить("code" , "SECURE_PACKAGE_A2");
- Услуга.Вставить("parameter", 10);
-
- Услуги.Добавить(Услуга);
-
- Пакеты = Новый Массив;
-
- Пакет = Новый Структура;
-
- Позиции = Новый Массив;
-
- Позиция = Новый Структура;
-
- Оплата = Новый Структура;
- Оплата.Вставить("value", 3000);
-
- Позиция.Вставить("payment" , Оплата);
- Позиция.Вставить("ware_key", "00055");
- Позиция.Вставить("name" , "Товар");
- Позиция.Вставить("cost" , 300);
- Позиция.Вставить("amount" , 2);
- Позиция.Вставить("weight" , 700);
- Позиция.Вставить("url" , "www.item.ru");
-
- Позиции.Добавить(Позиция);
-
- Пакет.Вставить("items" , Позиции);
- Пакет.Вставить("number" , "bar-001");
- Пакет.Вставить("comment", "Упаковка");
- Пакет.Вставить("height" , 10);
- Пакет.Вставить("length" , 10);
- Пакет.Вставить("weight" , "4000");
- Пакет.Вставить("width" , 10);
-
- Пакеты.Добавить(Пакет);
-
- ОписаниеЗаказа.Вставить("from_location", ЛокацияОтправления);
- ОписаниеЗаказа.Вставить("to_location" , ЛокацияНазначения);
- ОписаниеЗаказа.Вставить("packages" , Пакеты);
- ОписаниеЗаказа.Вставить("recipient" , Получатель);
- ОписаниеЗаказа.Вставить("sender" , Отправитель);
- ОписаниеЗаказа.Вставить("services" , Услуги);
-
- ОписаниеЗаказа.Вставить("number" , Строка(Новый УникальныйИдентификатор));
- ОписаниеЗаказа.Вставить("comment" , "Новый заказ");
- ОписаниеЗаказа.Вставить("tariff_code", 139);
-
- ОписаниеЗаказа.Вставить("delivery_recipient_cost" , Новый Структура("value" , 50));
- ОписаниеЗаказа.Вставить("delivery_recipient_cost_adv", Новый Структура("sum,threshold", 3000, 200));
-
- Результат = OPI_CDEK.СоздатьЗаказ(Токен, ОписаниеЗаказа, Истина, Истина);
-
- // END
-
- Обработать(Результат, "CDEK", "СоздатьЗаказ", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура CDEK_ПолучитьЗаказ(ПараметрыФункции)
-
- Токен = ПараметрыФункции["CDEK_Token"];
- UUID = ПараметрыФункции["CDEK_OrderUUID"];
-
- Результат = OPI_CDEK.ПолучитьЗаказ(Токен, UUID, Истина);
-
- // END
-
- Обработать(Результат, "CDEK", "ПолучитьЗаказ", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура CDEK_ПолучитьЗаказПоНомеру(ПараметрыФункции)
-
- Токен = ПараметрыФункции["CDEK_Token"];
-
- НомерЗаказа = ПараметрыФункции["CDEK_OrderIMN"];
- Результат = OPI_CDEK.ПолучитьЗаказПоНомеру(Токен, НомерЗаказа, Истина, Истина);
-
- // END
-
- Обработать(Результат, "CDEK", "ПолучитьЗаказПоНомеру");
-
-КонецПроцедуры
-
-Процедура CDEK_ИзменитьЗаказ(ПараметрыФункции)
-
- Токен = ПараметрыФункции["CDEK_Token"];
- UUID = ПараметрыФункции["CDEK_OrderUUID"];
-
- ОписаниеЗаказа = Новый Структура("comment", "Новый комментарий");
-
- Результат = OPI_CDEK.ИзменитьЗаказ(Токен, UUID, ОписаниеЗаказа, Истина);
-
- // END
-
- Обработать(Результат, "CDEK", "ИзменитьЗаказ");
-
-КонецПроцедуры
-
-Процедура CDEK_УдалитьЗаказ(ПараметрыФункции)
-
- Токен = ПараметрыФункции["CDEK_Token"];
- UUID = ПараметрыФункции["CDEK_OrderUUID"];
-
- Результат = OPI_CDEK.УдалитьЗаказ(Токен, UUID, Истина);
-
- // END
-
- Обработать(Результат, "CDEK", "УдалитьЗаказ");
-
-КонецПроцедуры
-
-Процедура CDEK_ОформитьКлиентскийВозврат(ПараметрыФункции)
-
- Токен = ПараметрыФункции["CDEK_Token"];
- UUID = ПараметрыФункции["CDEK_OrderUUID"];
- Тариф = 139;
-
- Результат = OPI_CDEK.ОформитьКлиентскийВозврат(Токен, UUID, Тариф, Истина);
-
- // END
-
- Обработать(Результат, "CDEK", "ОформитьКлиентскийВозврат");
-
-КонецПроцедуры
-
-Процедура CDEK_СоздатьОтказ(ПараметрыФункции)
-
- Токен = ПараметрыФункции["CDEK_Token"];
- UUID = ПараметрыФункции["CDEK_OrderUUID"];
-
- Результат = OPI_CDEK.СоздатьОтказ(Токен, UUID, Истина);
-
- // END
-
- Обработать(Результат, "CDEK", "СоздатьОтказ");
-
-КонецПроцедуры
-
-Процедура CDEK_ПолучитьОписаниеЗаявкиКурьера(ПараметрыФункции)
-
- Результат = OPI_CDEK.ПолучитьОписаниеЗаявкиКурьера();
-
- // END
-
- Обработать(Результат, "CDEK", "ПолучитьОписаниеЗаявкиКурьера");
-
- Результат = OPI_CDEK.ПолучитьОписаниеЗаявкиКурьера(Истина);
-
- Обработать(Результат, "CDEK", "ПолучитьОписаниеЗаявкиКурьера", "Пустая");
-
-КонецПроцедуры
-
-Процедура CDEK_СоздатьЗаявкуНаВызовКурьера(ПараметрыФункции)
-
- Токен = ПараметрыФункции["CDEK_Token"];
- ТекущаяДата = OPI_Инструменты.ПолучитьТекущуюДату();
-
- ОписаниеЗаявки = Новый Структура;
- ОписаниеЗаявки.Вставить("intake_date" , Формат(ТекущаяДата + 60 * 60 * 24, "ДФ=yyyy-MM-dd"));
- ОписаниеЗаявки.Вставить("intake_time_from", "10:00");
- ОписаниеЗаявки.Вставить("intake_time_to" , "17:00");
- ОписаниеЗаявки.Вставить("name" , "Консолидированный груз");
- ОписаниеЗаявки.Вставить("weight" , 1000);
- ОписаниеЗаявки.Вставить("length" , 10);
- ОписаниеЗаявки.Вставить("width" , 10);
- ОписаниеЗаявки.Вставить("height" , 10);
- ОписаниеЗаявки.Вставить("comment" , "Комментарий курьеру");
- ОписаниеЗаявки.Вставить("need_call" , Ложь);
-
- Отправитель = Новый Структура;
- Отправитель.Вставить("company", "Компания");
- Отправитель.Вставить("name" , "Иванов Иван");
-
- Телефоны = Новый Массив;
- Телефон = Новый Структура("number", "+79589441654");
- Телефоны.Добавить(Телефон);
-
- Отправитель.Вставить("phones", Телефоны);
-
- ОписаниеЗаявки.Вставить("sender", Отправитель);
-
- ТочкаОтправления = Новый Структура;
- ТочкаОтправления.Вставить("code" , "44");
- ТочкаОтправления.Вставить("fias_guid" , "0c5b2444-70a0-4932-980c-b4dc0d3f02b5");
- ТочкаОтправления.Вставить("postal_code" , "109004");
- ТочкаОтправления.Вставить("longitude" , 37.6204);
- ТочкаОтправления.Вставить("latitude" , 55.754);
- ТочкаОтправления.Вставить("country_code", "RU");
- ТочкаОтправления.Вставить("region" , "Москва");
- ТочкаОтправления.Вставить("sub_region" , "Москва");
- ТочкаОтправления.Вставить("city" , "Москва");
- ТочкаОтправления.Вставить("kladr_code" , "7700000000000");
- ТочкаОтправления.Вставить("address" , "ул. Блюхера, 32");
-
- ОписаниеЗаявки.Вставить("from_location", ТочкаОтправления);
-
- Результат = OPI_CDEK.СоздатьЗаявкуНаВызовКурьера(Токен, ОписаниеЗаявки, Истина);
-
- // END
-
- Обработать(Результат, "CDEK", "СоздатьЗаявкуНаВызовКурьера", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура CDEK_ПолучитьЗаявкуНаВызовКурьера(ПараметрыФункции)
-
- Токен = ПараметрыФункции["CDEK_Token"];
- UUID = ПараметрыФункции["CDEK_IntakeUUID"];
-
- Результат = OPI_CDEK.ПолучитьЗаявкуНаВызовКурьера(Токен, UUID, Истина);
-
- // END
-
- Обработать(Результат, "CDEK", "ПолучитьЗаявкуНаВызовКурьера");
-
-КонецПроцедуры
-
-Процедура CDEK_УдалитьЗаявкуНаВызовКурьера(ПараметрыФункции)
-
- Токен = ПараметрыФункции["CDEK_Token"];
- UUID = ПараметрыФункции["CDEK_IntakeUUID"];
-
- Результат = OPI_CDEK.УдалитьЗаявкуНаВызовКурьера(Токен, UUID, Истина);
-
- // END
-
- Обработать(Результат, "CDEK", "УдалитьЗаявкуНаВызовКурьера");
-
-КонецПроцедуры
-
-Процедура CDEK_СформироватьКвитанцию(ПараметрыФункции)
-
- Токен = ПараметрыФункции["CDEK_Token"];
- UUID = ПараметрыФункции["CDEK_OrderUUID"];
- Тип = "tpl_russia";
- Копий = 1;
-
- Результат = OPI_CDEK.СформироватьКвитанцию(Токен, UUID, Тип, Копий, Истина);
-
- // END
-
- Обработать(Результат, "CDEK", "СформироватьКвитанцию", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура CDEK_ПолучитьКвитанцию(ПараметрыФункции)
-
- Токен = ПараметрыФункции["CDEK_Token"];
- UUID = ПараметрыФункции["CDEK_PrintUUID"];
-
- Результат = OPI_CDEK.ПолучитьКвитанцию(Токен, UUID, , Истина); // Ответ сервера с ссылкой
-
- // END
-
- Обработать(Результат, "CDEK", "ПолучитьКвитанцию");
-
-КонецПроцедуры
-
-Процедура CDEK_СформироватьШтрихкод(ПараметрыФункции)
-
- Токен = ПараметрыФункции["CDEK_Token"];
- UUID = ПараметрыФункции["CDEK_OrderUUID"];
- Формат = "A5";
- Копий = 1;
-
- Результат = OPI_CDEK.СформироватьШтрихкод(Токен, UUID, Копий, Формат, , Истина);
-
- // END
-
- Обработать(Результат, "CDEK", "СформироватьШтрихкод", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура CDEK_ПолучитьШтрихкод(ПараметрыФункции)
-
- Токен = ПараметрыФункции["CDEK_Token"];
- UUID = ПараметрыФункции["CDEK_BarcodeUUID"];
-
- Результат = OPI_CDEK.ПолучитьШтрихкод(Токен, UUID, , Истина); // Ответ сервера с ссылкой
-
- // END
-
- Обработать(Результат, "CDEK", "ПолучитьШтрихкод");
-
-КонецПроцедуры
-
-Процедура CDEK_ПолучитьДоступныеИнтервалыДоставки(ПараметрыФункции)
-
- Токен = ПараметрыФункции["CDEK_Token"];
- UUID = ПараметрыФункции["CDEK_OrderUUID"];
-
- Результат = OPI_CDEK.ПолучитьДоступныеИнтервалыДоставки(Токен, UUID, Истина);
-
- // END
-
- Обработать(Результат, "CDEK", "ПолучитьДоступныеИнтервалыДоставки");
-
-КонецПроцедуры
-
-Процедура CDEK_ПолучитьОписаниеДоговоренности(ПараметрыФункции)
-
- Результат = OPI_CDEK.ПолучитьОписаниеДоговоренности();
-
- // END
-
- Обработать(Результат, "CDEK", "ПолучитьОписаниеДоговоренности");
-
- Результат = OPI_CDEK.ПолучитьОписаниеДоговоренности(Истина);
-
- Обработать(Результат, "CDEK", "ПолучитьОписаниеДоговоренности", "Пустая");
-
-КонецПроцедуры
-
-Процедура CDEK_ЗафиксироватьДоговоренностьОДоставке(ПараметрыФункции)
-
- Токен = ПараметрыФункции["CDEK_Token"];
- UUIDЗаказа = ПараметрыФункции["CDEK_OrderUUID"];
-
- Сутки = 60 * 60 * 24;
- ТекущаяДата = НачалоДня(OPI_Инструменты.ПолучитьТекущуюДату());
- ДатаДоставки = ТекущаяДата + Сутки * 14;
-
- Пока ДеньНедели(ДатаДоставки) > 5 Цикл
- ДатаДоставки = ДатаДоставки + Сутки;
- КонецЦикла;
-
- Договоренность = Новый Структура;
-
- Договоренность.Вставить("cdek_number", "1106207236");
- Договоренность.Вставить("order_uuid" , UUIDЗаказа);
- Договоренность.Вставить("date" , Формат(ДатаДоставки, "ДФ=yyyy-MM-dd"));
- Договоренность.Вставить("time_from" , "10:00");
- Договоренность.Вставить("time_to" , "17:00");
- Договоренность.Вставить("comment" , "Офис группы компаний");
-
- МестоДоставки = Новый Структура;
- МестоДоставки.Вставить("code" , "270");
- МестоДоставки.Вставить("fias_guid" , "0c5b2444-70a0-4932-980c-b4dc0d3f02b5");
- МестоДоставки.Вставить("postal_code" , "109004");
- МестоДоставки.Вставить("longitude" , 37.6204);
- МестоДоставки.Вставить("latitude" , 55.754);
- МестоДоставки.Вставить("country_code", "RU");
- МестоДоставки.Вставить("region" , "Новосибирск");
- МестоДоставки.Вставить("sub_region" , "Новосибирск");
- МестоДоставки.Вставить("city" , "Новосибирск");
- МестоДоставки.Вставить("kladr_code" , "7700000000000");
- МестоДоставки.Вставить("address" , "ул. Блюхера, 33");
-
- Договоренность.Вставить("to_location", МестоДоставки);
-
- Результат = OPI_CDEK.ЗафиксироватьДоговоренностьОДоставке(Токен, Договоренность, Истина);
-
- // END
-
- Обработать(Результат, "CDEK", "ЗафиксироватьДоговоренностьОДоставке", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура CDEK_ПолучитьДоговоренностьОДоставке(ПараметрыФункции)
-
- Токен = ПараметрыФункции["CDEK_Token"];
- UUID = ПараметрыФункции["CDEK_ApptUUID"];
-
- Результат = OPI_CDEK.ПолучитьДоговоренностьОДоставке(Токен, UUID, Истина);
-
- // END
-
- Обработать(Результат, "CDEK", "ПолучитьДоговоренностьОДоставке");
-
-КонецПроцедуры
-
-Процедура CDEK_СоздатьПреалерт(ПараметрыФункции)
-
- Токен = ПараметрыФункции["CDEK_Token"];
- UUID = ПараметрыФункции["CDEK_OrderUUID"];
- ПВЗ = "NSK27";
- ДатаПередачи = OPI_Инструменты.ПолучитьТекущуюДату() + 60 * 60 * 24;
-
- Результат = OPI_CDEK.СоздатьПреалерт(Токен, UUID, ДатаПередачи, ПВЗ, Истина);
-
- // END
-
- Обработать(Результат, "CDEK", "СоздатьПреалерт", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура CDEK_ПолучитьПреалерт(ПараметрыФункции)
-
- Токен = ПараметрыФункции["CDEK_Token"];
- UUID = ПараметрыФункции["CDEK_PrealertUUID"];
-
- Результат = OPI_CDEK.ПолучитьПреалерт(Токен, UUID, Истина);
-
- // END
-
- Обработать(Результат, "CDEK", "ПолучитьПреалерт");
-
-КонецПроцедуры
-
-Процедура CDEK_ПолучитьСтатусПаспортныхДанных(ПараметрыФункции)
-
- Токен = ПараметрыФункции["CDEK_Token"];
- UUID = ПараметрыФункции["CDEK_OrderUUID"];
-
- Результат = OPI_CDEK.ПолучитьСтатусПаспортныхДанных(Токен, UUID, Истина);
-
- // END
-
- Обработать(Результат, "CDEK", "ПолучитьСтатусПаспортныхДанных");
-
-КонецПроцедуры
-
-Процедура CDEK_ПолучитьЧекЗаказа(ПараметрыФункции)
-
- Токен = ПараметрыФункции["CDEK_Token"];
- UUID = ПараметрыФункции["CDEK_OrderUUID"];
-
- Результат = OPI_CDEK.ПолучитьЧекЗаказа(Токен, UUID, Истина);
-
- // END
-
- Обработать(Результат, "CDEK", "ПолучитьЧекЗаказа");
-
-КонецПроцедуры
-
-Процедура CDEK_ПолучитьЧекиНаДату(ПараметрыФункции)
-
- Токен = ПараметрыФункции["CDEK_Token"];
- ДатаПолучения = OPI_Инструменты.ПолучитьТекущуюДату();
-
- Результат = OPI_CDEK.ПолучитьЧекиНаДату(Токен, ДатаПолучения, Истина);
-
- // END
-
- Обработать(Результат, "CDEK", "ПолучитьЧекиНаДату");
-
-КонецПроцедуры
-
-Процедура CDEK_ПолучитьРеестрыПлатежейНаДату(ПараметрыФункции)
-
- Токен = ПараметрыФункции["CDEK_Token"];
- ДатаПолучения = OPI_Инструменты.ПолучитьТекущуюДату();
-
- Результат = OPI_CDEK.ПолучитьРеестрыПлатежейНаДату(Токен, ДатаПолучения, Истина);
-
- // END
-
- Обработать(Результат, "CDEK", "ПолучитьРеестрыПлатежейНаДату");
-
-КонецПроцедуры
-
-Процедура CDEK_ПолучитьПереводыПлатежейНаДату(ПараметрыФункции)
-
- Токен = ПараметрыФункции["CDEK_Token"];
- ДатаПолучения = OPI_Инструменты.ПолучитьТекущуюДату();
-
- Результат = OPI_CDEK.ПолучитьПереводыПлатежейНаДату(Токен, ДатаПолучения, Истина);
-
- // END
-
- Обработать(Результат, "CDEK", "ПолучитьПереводыПлатежейНаДату");
-
-КонецПроцедуры
-
-Процедура CDEK_ПолучитьОписаниеФильтраОфисов(ПараметрыФункции)
-
- Результат = OPI_CDEK.ПолучитьОписаниеФильтраОфисов();
-
- // END
-
- Обработать(Результат, "CDEK", "ПолучитьОписаниеФильтраОфисов");
-
- Результат = OPI_CDEK.ПолучитьОписаниеФильтраОфисов(Истина);
-
- Обработать(Результат, "CDEK", "ПолучитьОписаниеФильтраОфисов", "Пустая");
-
-КонецПроцедуры
-
-Процедура CDEK_ПолучитьСписокОфисов(ПараметрыФункции)
-
- Токен = ПараметрыФункции["CDEK_Token"];
- Фильтр = Новый Структура;
- Фильтр.Вставить("weight_max" , 50);
- Фильтр.Вставить("city_code" , 270);
- Фильтр.Вставить("allowed_cod", Истина);
-
- Результат = OPI_CDEK.ПолучитьСписокОфисов(Токен, Фильтр, Истина);
-
- // END
-
- Обработать(Результат, "CDEK", "ПолучитьСписокОфисов");
-
-КонецПроцедуры
-
-Процедура CDEK_ПолучитьСписокРегионов(ПараметрыФункции)
-
- Токен = ПараметрыФункции["CDEK_Token"];
-
- Результат = OPI_CDEK.ПолучитьСписокРегионов(Токен, , , , Истина);
-
- // END
-
- Обработать(Результат, "CDEK", "ПолучитьСписокРегионов");
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область YandexMetrika
-
-Процедура YandexMetrika_ПолучитьСписокМеток(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Metrika_Token"];
-
- Результат = OPI_YandexMetrika.ПолучитьСписокМеток(Токен);
-
- // END
-
- Обработать(Результат, "YandexMetrika", "ПолучитьСписокМеток");
-
-КонецПроцедуры
-
-Процедура YandexMetrika_СоздатьМетку(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Metrika_Token"];
- Наименование = "Новая метка";
-
- Результат = OPI_YandexMetrika.СоздатьМетку(Токен, Наименование);
-
- // END
-
- Обработать(Результат, "YandexMetrika", "СоздатьМетку", , ПараметрыФункции, Наименование);
-
-КонецПроцедуры
-
-Процедура YandexMetrika_УдалитьМетку(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Metrika_Token"];
- IDМетки = ПараметрыФункции["Metrika_LabelID"];
-
- Результат = OPI_YandexMetrika.УдалитьМетку(Токен, IDМетки);
-
- // END
-
- Обработать(Результат, "YandexMetrika", "УдалитьМетку");
-
-КонецПроцедуры
-
-Процедура YandexMetrika_ИзменитьМетку(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Metrika_Token"];
- IDМетки = ПараметрыФункции["Metrika_LabelID"];
- Наименование = "Новое имя метки";
-
- Результат = OPI_YandexMetrika.ИзменитьМетку(Токен, IDМетки, Наименование);
-
- // END
-
- Обработать(Результат, "YandexMetrika", "ИзменитьМетку", , Наименование);
-
-КонецПроцедуры
-
-Процедура YandexMetrika_ПолучитьМетку(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Metrika_Token"];
- IDМетки = ПараметрыФункции["Metrika_LabelID"];
-
- Результат = OPI_YandexMetrika.ПолучитьМетку(Токен, IDМетки);
-
- // END
-
- Обработать(Результат, "YandexMetrika", "ПолучитьМетку");
-
-КонецПроцедуры
-
-Процедура YandexMetrika_ПолучитьСтруктуруСчетчика(ПараметрыФункции)
-
- Пустая = Ложь;
- Результат = OPI_YandexMetrika.ПолучитьСтруктуруСчетчика(Пустая);
-
- // END
-
- Обработать(Результат, "YandexMetrika", "ПолучитьСтруктуруСчетчика");
-
-КонецПроцедуры
-
-Процедура YandexMetrika_СоздатьСчетчик(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Metrika_Token"];
-
- СтруктураСчетчика = Новый Структура;
- СтруктураСчетчика.Вставить("autogoals_enabled", Истина);
-
- СтруктураНастроекКода = Новый Структура;
- СтруктураНастроекКода.Вставить("async" , 0);
- СтруктураНастроекКода.Вставить("clickmap" , 1);
- СтруктураНастроекКода.Вставить("ecommerce" , 1);
- СтруктураНастроекКода.Вставить("in_one_line" , 0);
- СтруктураНастроекКода.Вставить("track_hash" , 1);
- СтруктураНастроекКода.Вставить("visor" , 1);
- СтруктураНастроекКода.Вставить("xml_site" , 0);
- СтруктураНастроекКода.Вставить("ytm" , 0);
- СтруктураНастроекКода.Вставить("alternative_cdn", 1);
-
- СтруктураИнформера = Новый Структура;
- СтруктураИнформера.Вставить("color_arrow", 1);
- СтруктураИнформера.Вставить("color_end" , "EFEFEFFE");
- СтруктураИнформера.Вставить("color_start", "EEEEEEEE");
- СтруктураИнформера.Вставить("color_text" , 0);
- СтруктураИнформера.Вставить("enabled" , 1);
- СтруктураИнформера.Вставить("indicator" , "uniques");
- СтруктураИнформера.Вставить("size" , 2);
- СтруктураИнформера.Вставить("type" , "ext");
-
- СтруктураНастроекКода.Вставить("informer", СтруктураИнформера);
-
- СтруктураСчетчика.Вставить("code_options", СтруктураНастроекКода);
-
- СтруктураФлагов = Новый Структура;
- СтруктураФлагов.Вставить("collect_first_party_data" , Истина);
- СтруктураФлагов.Вставить("measurement_enabled" , Истина);
- СтруктураФлагов.Вставить("use_in_benchmarks" , Истина);
- СтруктураФлагов.Вставить("direct_allow_use_goals_without_access", Истина);
-
- СтруктураСчетчика.Вставить("counter_flags" , СтруктураФлагов);
- СтруктураСчетчика.Вставить("favorite" , 1);
- СтруктураСчетчика.Вставить("filter_robots" , 2);
- СтруктураСчетчика.Вставить("gdpr_agreement_accepted", 1);
-
- СтруктураДомена = Новый Структура("site", "openintegrations.dev");
-
- СтруктураСчетчика.Вставить("site2", СтруктураДомена);
-
- Результат = OPI_YandexMetrika.СоздатьСчетчик(Токен, СтруктураСчетчика);
-
- // END
-
- Обработать(Результат, "YandexMetrika", "СоздатьСчетчик", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура YandexMetrika_УдалитьСчетчик(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Metrika_Token"];
- IDСчетчика = ПараметрыФункции["Metrika_CounterID"];
-
- Результат = OPI_YandexMetrika.УдалитьСчетчик(Токен, IDСчетчика);
-
- // END
-
- Обработать(Результат, "YandexMetrika", "УдалитьСчетчик");
-
-КонецПроцедуры
-
-Процедура YandexMetrika_ИзменитьСчетчик(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Metrika_Token"];
- IDСчетчика = ПараметрыФункции["Metrika_CounterID"];
-
- СтруктураСчетчика = Новый Структура;
- СтруктураСчетчика.Вставить("autogoals_enabled", Истина);
-
- СтруктураФлагов = Новый Структура;
- СтруктураФлагов.Вставить("collect_first_party_data" , Ложь);
- СтруктураФлагов.Вставить("measurement_enabled" , Ложь);
- СтруктураФлагов.Вставить("use_in_benchmarks" , Ложь);
- СтруктураФлагов.Вставить("direct_allow_use_goals_without_access", Ложь);
-
- СтруктураСчетчика.Вставить("counter_flags", СтруктураФлагов);
- СтруктураСчетчика.Вставить("favorite" , 0);
- СтруктураСчетчика.Вставить("filter_robots", 1);
-
- Результат = OPI_YandexMetrika.ИзменитьСчетчик(Токен, IDСчетчика, СтруктураСчетчика);
-
- // END
-
- Обработать(Результат, "YandexMetrika", "ИзменитьСчетчик");
-
-КонецПроцедуры
-
-Процедура YandexMetrika_ПолучитьСчетчик(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Metrika_Token"];
- IDСчетчика = ПараметрыФункции["Metrika_CounterID"];
-
- Результат = OPI_YandexMetrika.ПолучитьСчетчик(Токен, IDСчетчика);
-
- // END
-
- Обработать(Результат, "YandexMetrika", "ПолучитьСчетчик");
-
-КонецПроцедуры
-
-Процедура YandexMetrika_ВосстановитьСчетчик(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Metrika_Token"];
- IDСчетчика = ПараметрыФункции["Metrika_CounterID"];
-
- Результат = OPI_YandexMetrika.ВосстановитьСчетчик(Токен, IDСчетчика);
-
- // END
-
- Обработать(Результат, "YandexMetrika", "ВосстановитьСчетчик");
-
-КонецПроцедуры
-
-Процедура YandexMetrika_ПолучитьСписокСчетчиков(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Metrika_Token"];
- IDСчетчика = ПараметрыФункции["Metrika_CounterID"];
-
- Результат = OPI_YandexMetrika.ПолучитьСписокСчетчиков(Токен);
-
- Обработать(Результат, "YandexMetrika", "ПолучитьСписокСчетчиков"); // SKIP
-
- // Фильтр по списку ID
-
- Фильтр = Новый Структура;
-
- МассивСчетчиков = Новый Массив;
- МассивСчетчиков.Добавить(IDСчетчика);
-
- Фильтр.Вставить("counter_ids", МассивСчетчиков);
-
- Результат = OPI_YandexMetrika.ПолучитьСписокСчетчиков(Токен, Фильтр);
-
- // END
-
- Обработать(Результат, "YandexMetrika", "ПолучитьСписокСчетчиков", "Фильтр");
-
-КонецПроцедуры
-
-Процедура YandexMetrika_ПолучитьСписокОпераций(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Metrika_Token"];
- IDСчетчика = ПараметрыФункции["Metrika_CounterID"];
-
- Результат = OPI_YandexMetrika.ПолучитьСписокОпераций(Токен, IDСчетчика);
-
- // END
-
- Обработать(Результат, "YandexMetrika", "ПолучитьСписокОпераций");
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область S3
-
-Процедура S3_ПолучитьСтруктуруДанных(ПараметрыФункции)
-
- URL = ПараметрыФункции["S3_URL"];
- AccessKey = ПараметрыФункции["S3_AccessKey"];
- SecretKey = ПараметрыФункции["S3_SecretKey"];
- Region = "BTC";
-
- Результат = OPI_S3.ПолучитьСтруктуруДанных(URL, AccessKey, SecretKey, Region);
-
- // END
-
- Обработать(Результат, "S3", "ПолучитьСтруктуруДанных");
-
-КонецПроцедуры
-
-Процедура S3_ОтправитьЗапросБезТела(ПараметрыФункции)
-
- URL = ПараметрыФункции["S3_URL"] + "/opi-newbucket2";
- AccessKey = ПараметрыФункции["S3_AccessKey"];
- SecretKey = ПараметрыФункции["S3_SecretKey"];
- Region = "BTC";
-
- ОсновныеДанные = OPI_S3.ПолучитьСтруктуруДанных(URL, AccessKey, SecretKey, Region);
- Метод = "GET";
-
- Результат = OPI_S3.ОтправитьЗапросБезТела(Метод, ОсновныеДанные);
-
- // END
-
- Обработать(Результат, "S3", "ОтправитьЗапросБезТела");
-
-КонецПроцедуры
-
-Процедура S3_ОтправитьЗапросСТелом(ПараметрыФункции)
-
- URL = ПараметрыФункции["S3_URL"];
- AccessKey = ПараметрыФункции["S3_AccessKey"];
- SecretKey = ПараметрыФункции["S3_SecretKey"];
- Region = "BTC";
-
- ОсновныеДанные = OPI_S3.ПолучитьСтруктуруДанных(URL, AccessKey, SecretKey, Region);
-
- Метод = "PUT";
- Тело = "C:\test_data\document.docx"; // URL, Путь или Двоичные данные
-
- Результат = OPI_S3.ОтправитьЗапросСТелом(Метод, ОсновныеДанные, Тело);
-
- // END
-
- Обработать(Результат, "S3", "ОтправитьЗапросСТелом");
-
-КонецПроцедуры
-
-Процедура S3_СоздатьБакет(ПараметрыФункции)
-
- URL = ПараметрыФункции["S3_URL"];
- AccessKey = ПараметрыФункции["S3_AccessKey"];
- SecretKey = ПараметрыФункции["S3_SecretKey"];
- Region = "BTC";
-
- ОсновныеДанные = OPI_S3.ПолучитьСтруктуруДанных(URL, AccessKey, SecretKey, Region);
-
- Каталог = Истина; // Формирование URL в path-style
- Каталог = ПараметрыФункции["Directory"]; // SKIP
-
- Наименование = "opi-dirbucket3";
- Наименование = ?(Каталог, "opi-dirbucket3", "opi-gpbucket3"); // SKIP
-
- Результат = OPI_S3.УдалитьБакет(Наименование, ОсновныеДанные, Каталог); // SKIP
- Обработать(Результат, "S3", "СоздатьБакет", "Удаление"); // SKIP
-
- Результат = OPI_S3.СоздатьБакет(Наименование, ОсновныеДанные, Каталог);
-
- // END
-
- Обработать(Результат, "S3", "СоздатьБакет");
-
-КонецПроцедуры
-
-Процедура S3_УдалитьБакет(ПараметрыФункции)
-
- URL = ПараметрыФункции["S3_URL"];
- AccessKey = ПараметрыФункции["S3_AccessKey"];
- SecretKey = ПараметрыФункции["S3_SecretKey"];
- Region = "BTC";
-
- ОсновныеДанные = OPI_S3.ПолучитьСтруктуруДанных(URL, AccessKey, SecretKey, Region);
-
- Каталог = Истина; // Формирование URL в path-style
- Каталог = ПараметрыФункции["Directory"]; // SKIP
-
- Наименование = "opi-dirbucket3";
- Наименование = ?(Каталог, "opi-dirbucket3", "opi-gpbucket3"); // SKIP
-
- Результат = OPI_S3.УдалитьБакет(Наименование, ОсновныеДанные, Каталог);
-
- // END
-
- Обработать(Результат, "S3", "УдалитьБакет");
-
-КонецПроцедуры
-
-Процедура S3_ПолучитьСписокБакетов(ПараметрыФункции)
-
- URL = ПараметрыФункции["S3_URL"];
- AccessKey = ПараметрыФункции["S3_AccessKey"];
- SecretKey = ПараметрыФункции["S3_SecretKey"];
- Region = "BTC";
-
- ОсновныеДанные = OPI_S3.ПолучитьСтруктуруДанных(URL, AccessKey, SecretKey, Region);
- Результат = OPI_S3.ПолучитьСписокБакетов(ОсновныеДанные);
-
- // END
-
- Обработать(Результат, "S3", "ПолучитьСписокБакетов");
-
-КонецПроцедуры
-
-Процедура S3_ПроверитьДоступностьБакета(ПараметрыФункции)
-
- URL = ПараметрыФункции["S3_URL"];
- AccessKey = ПараметрыФункции["S3_AccessKey"];
- SecretKey = ПараметрыФункции["S3_SecretKey"];
- Region = "BTC";
-
- ОсновныеДанные = OPI_S3.ПолучитьСтруктуруДанных(URL, AccessKey, SecretKey, Region);
-
- Каталог = Истина; // Формирование URL в path-style
- Каталог = ПараметрыФункции["Directory"]; // SKIP
-
- Наименование = "opi-dirbucket3";
- Наименование = ?(Каталог, "opi-dirbucket3", "opi-gpbucket3"); // SKIP
-
- Результат = OPI_S3.ПроверитьДоступностьБакета(Наименование, ОсновныеДанные, Каталог);
-
- Обработать(Результат, "S3", "ПроверитьДоступностьБакета"); // SKIP
-
- Результат = OPI_S3.ПроверитьДоступностьБакета(Наименование, ОсновныеДанные, Каталог, "1234");
-
- // END
-
- Обработать(Результат, "S3", "ПроверитьДоступностьБакета", "Аккаунт");
-
-КонецПроцедуры
-
-Процедура S3_ПолучитьШифрованиеБакета(ПараметрыФункции)
-
- URL = ПараметрыФункции["S3_URL"];
- AccessKey = ПараметрыФункции["S3_AccessKey"];
- SecretKey = ПараметрыФункции["S3_SecretKey"];
- Region = "BTC";
-
- ОсновныеДанные = OPI_S3.ПолучитьСтруктуруДанных(URL, AccessKey, SecretKey, Region);
-
- Каталог = Истина; // Формирование URL в path-style
- Каталог = ПараметрыФункции["Directory"]; // SKIP
-
- Наименование = "opi-dirbucket3";
- Наименование = ?(Каталог, "opi-dirbucket3", "opi-gpbucket3"); // SKIP
-
- Результат = OPI_S3.ПолучитьШифрованиеБакета(Наименование, ОсновныеДанные, Каталог);
-
- // END
-
- Обработать(Результат, "S3", "ПолучитьШифрованиеБакета");
-
-КонецПроцедуры
-
-Процедура S3_УдалитьШифрованиеБакета(ПараметрыФункции)
-
- URL = ПараметрыФункции["S3_URL"];
- AccessKey = ПараметрыФункции["S3_AccessKey"];
- SecretKey = ПараметрыФункции["S3_SecretKey"];
- Region = "BTC";
-
- ОсновныеДанные = OPI_S3.ПолучитьСтруктуруДанных(URL, AccessKey, SecretKey, Region);
-
- Каталог = Истина; // Формирование URL в path-style
- Каталог = ПараметрыФункции["Directory"]; // SKIP
-
- Наименование = "opi-dirbucket3";
- Наименование = ?(Каталог, "opi-dirbucket3", "opi-gpbucket3"); // SKIP
-
- Результат = OPI_S3.УдалитьШифрованиеБакета(Наименование, ОсновныеДанные, Каталог);
-
- // END
-
- Обработать(Результат, "S3", "УдалитьШифрованиеБакета");
-
-КонецПроцедуры
-
-Процедура S3_УстановитьШифрованиеБакета(ПараметрыФункции)
-
- URL = ПараметрыФункции["S3_URL"];
- AccessKey = ПараметрыФункции["S3_AccessKey"];
- SecretKey = ПараметрыФункции["S3_SecretKey"];
- Region = "BTC";
-
- ОсновныеДанные = OPI_S3.ПолучитьСтруктуруДанных(URL, AccessKey, SecretKey, Region);
-
- Каталог = Истина; // Формирование URL в path-style
- Каталог = ПараметрыФункции["Directory"]; // SKIP
-
- Наименование = "opi-dirbucket3";
- Наименование = ?(Каталог, "opi-dirbucket3", "opi-gpbucket3"); // SKIP
-
- XMLКонфигурация = "
- |
- |
- | AES256
- |
- |
- |";
-
- ИВФ = ПолучитьИмяВременногоФайла("xml"); // SKIP
- ПолучитьДвоичныеДанныеИзСтроки(XMLКонфигурация).Записать(ИВФ); // SKIP
- XMLКонфигурация = ИВФ; // SKIP
-
- Результат = OPI_S3.УстановитьШифрованиеБакета(Наименование, ОсновныеДанные, XMLКонфигурация, Каталог);
-
- // END
-
- OPI_Инструменты.УдалитьФайлВПопытке(XMLКонфигурация, "Ошибка удаления файла после теста");
-
- Обработать(Результат, "S3", "УстановитьШифрованиеБакета");
-
-КонецПроцедуры
-
-Процедура S3_ПолучитьТегиБакета(ПараметрыФункции)
-
- URL = ПараметрыФункции["S3_URL"];
- AccessKey = ПараметрыФункции["S3_AccessKey"];
- SecretKey = ПараметрыФункции["S3_SecretKey"];
- Region = "BTC";
-
- ОсновныеДанные = OPI_S3.ПолучитьСтруктуруДанных(URL, AccessKey, SecretKey, Region);
-
- Каталог = Истина; // Формирование URL в path-style
- Каталог = ПараметрыФункции["Directory"]; // SKIP
-
- Наименование = "opi-dirbucket3";
- Наименование = ?(Каталог, "opi-dirbucket3", "opi-gpbucket3"); // SKIP
-
- Результат = OPI_S3.ПолучитьТегиБакета(Наименование, ОсновныеДанные, Каталог);
-
- // END
-
- Обработать(Результат, "S3", "ПолучитьТегиБакета");
-
-КонецПроцедуры
-
-Процедура S3_УстановитьТегиБакета(ПараметрыФункции)
-
- URL = ПараметрыФункции["S3_URL"];
- AccessKey = ПараметрыФункции["S3_AccessKey"];
- SecretKey = ПараметрыФункции["S3_SecretKey"];
- Region = "BTC";
-
- ОсновныеДанные = OPI_S3.ПолучитьСтруктуруДанных(URL, AccessKey, SecretKey, Region);
-
- СтруктураТегов = Новый Структура;
- СтруктураТегов.Вставить("MyTag1", "SomeValue");
- СтруктураТегов.Вставить("MyTag2", "AnotherOne");
-
- Каталог = Истина; // Формирование URL в path-style
- Каталог = ПараметрыФункции["Directory"]; // SKIP
-
- Наименование = "opi-dirbucket3";
- Наименование = ?(Каталог, "opi-dirbucket3", "opi-gpbucket3"); // SKIP
-
- Результат = OPI_S3.УстановитьТегиБакета(Наименование, ОсновныеДанные, СтруктураТегов);
-
- // END
-
- Обработать(Результат, "S3", "УстановитьТегиБакета");
-
-КонецПроцедуры
-
-Процедура S3_УдалитьТегиБакета(ПараметрыФункции)
-
- URL = ПараметрыФункции["S3_URL"];
- AccessKey = ПараметрыФункции["S3_AccessKey"];
- SecretKey = ПараметрыФункции["S3_SecretKey"];
- Region = "BTC";
-
- ОсновныеДанные = OPI_S3.ПолучитьСтруктуруДанных(URL, AccessKey, SecretKey, Region);
-
- Каталог = Истина; // Формирование URL в path-style
- Каталог = ПараметрыФункции["Directory"]; // SKIP
-
- Наименование = "opi-dirbucket3";
- Наименование = ?(Каталог, "opi-dirbucket3", "opi-gpbucket3"); // SKIP
-
- Результат = OPI_S3.УдалитьТегиБакета(Наименование, ОсновныеДанные);
-
- // END
-
- Обработать(Результат, "S3", "УдалитьТегиБакета");
-
-КонецПроцедуры
-
-Процедура S3_ПолучитьНастройкийВерсионированияБакета(ПараметрыФункции)
-
- URL = ПараметрыФункции["S3_URL"];
- AccessKey = ПараметрыФункции["S3_AccessKey"];
- SecretKey = ПараметрыФункции["S3_SecretKey"];
- Region = "BTC";
-
- ОсновныеДанные = OPI_S3.ПолучитьСтруктуруДанных(URL, AccessKey, SecretKey, Region);
-
- Каталог = Истина; // Формирование URL в path-style
- Каталог = ПараметрыФункции["Directory"]; // SKIP
-
- Наименование = "opi-dirbucket3";
- Наименование = ?(Каталог, "opi-dirbucket3", "opi-gpbucket3"); // SKIP
-
- Результат = OPI_S3.ПолучитьНастройкийВерсионированияБакета(Наименование, ОсновныеДанные);
-
- // END
-
- Обработать(Результат, "S3", "ПолучитьНастройкийВерсионированияБакета");
-
-КонецПроцедуры
-
-Процедура S3_УстановитьНастройкиВерсионированияБакета(ПараметрыФункции)
-
- URL = ПараметрыФункции["S3_URL"];
- AccessKey = ПараметрыФункции["S3_AccessKey"];
- SecretKey = ПараметрыФункции["S3_SecretKey"];
- Region = "BTC";
-
- ОсновныеДанные = OPI_S3.ПолучитьСтруктуруДанных(URL, AccessKey, SecretKey, Region);
- Статус = Истина;
-
- Каталог = Истина; // Формирование URL в path-style
- Каталог = ПараметрыФункции["Directory"]; // SKIP
-
- Наименование = "opi-dirbucket3";
- Наименование = ?(Каталог, "opi-dirbucket3", "opi-gpbucket3"); // SKIP
-
- Результат = OPI_S3.УстановитьНастройкиВерсионированияБакета(Наименование, ОсновныеДанные, Статус);
-
- // END
-
- Обработать(Результат, "S3", "УстановитьНастройкиВерсионированияБакета");
-
-КонецПроцедуры
-
-Процедура S3_ЗагрузитьОбъект(ПараметрыФункции)
-
- URL = ПараметрыФункции["S3_URL"];
- AccessKey = ПараметрыФункции["S3_AccessKey"];
- SecretKey = ПараметрыФункции["S3_SecretKey"];
- Region = "BTC";
-
- ОсновныеДанные = OPI_S3.ПолучитьСтруктуруДанных(URL, AccessKey, SecretKey, Region);
-
- Каталог = Истина; // Формирование URL в path-style
- Каталог = ПараметрыФункции["Directory"]; // SKIP
-
- Бакет = "opi-dirbucket3";
- Бакет = ?(Каталог, "opi-dirbucket3", "opi-gpbucket3"); // SKIP
-
- Наименование = "picture.jpg";
- Содержимое = ПараметрыФункции["Picture"]; // URL, Путь или Двоичные данные
-
- Результат = OPI_S3.ЗагрузитьОбъект(Наименование, Бакет, Содержимое, ОсновныеДанные, , Каталог);
-
- Обработать(Результат, "S3", "ЗагрузитьОбъект"); // SKIP
-
- Наименование = "fileChunked.mp3";
- Содержимое = ПараметрыФункции["Audio"]; // URL, Путь или Двоичные данные
-
- ОсновныеДанные.Вставить("ChunkSize", 5242880); // Размер части для загрузки в несколько запросов
-
- Результат = OPI_S3.ЗагрузитьОбъект(Наименование, Бакет, Содержимое, ОсновныеДанные, , Каталог);
-
- // END
-
- Обработать(Результат, "S3", "ЗагрузитьОбъект", "Частями");
-
- OPI_S3.УдалитьОбъект(Наименование, Бакет, ОсновныеДанные, , , Каталог);
-
-КонецПроцедуры
-
-Процедура S3_ЗагрузитьОбъектЦеликом(ПараметрыФункции)
-
- URL = ПараметрыФункции["S3_URL"];
- AccessKey = ПараметрыФункции["S3_AccessKey"];
- SecretKey = ПараметрыФункции["S3_SecretKey"];
- Region = "BTC";
-
- ОсновныеДанные = OPI_S3.ПолучитьСтруктуруДанных(URL, AccessKey, SecretKey, Region);
-
- Наименование = "pictureSmall.jpg";
- Содержимое = ПараметрыФункции["Picture"]; // URL, Путь или Двоичные данные
-
- Каталог = Истина; // Формирование URL в path-style
- Каталог = ПараметрыФункции["Directory"]; // SKIP
-
- Бакет = "opi-dirbucket3";
- Бакет = ?(Каталог, "opi-dirbucket3", "opi-gpbucket3"); // SKIP
-
- Результат = OPI_S3.ЗагрузитьОбъектЦеликом(Наименование, Бакет, Содержимое, ОсновныеДанные, , Каталог);
-
- // END
-
- Обработать(Результат, "S3", "ЗагрузитьОбъектЦеликом");
-
- OPI_S3.УдалитьОбъект(Наименование, Бакет, ОсновныеДанные, , , Каталог);
-
-КонецПроцедуры
-
-Процедура S3_УдалитьОбъект(ПараметрыФункции)
-
- URL = ПараметрыФункции["S3_URL"];
- AccessKey = ПараметрыФункции["S3_AccessKey"];
- SecretKey = ПараметрыФункции["S3_SecretKey"];
- Region = "BTC";
-
- ОсновныеДанные = OPI_S3.ПолучитьСтруктуруДанных(URL, AccessKey, SecretKey, Region);
-
- Наименование = "picture.jpg";
-
- Каталог = Истина; // Формирование URL в path-style
- Каталог = ПараметрыФункции["Directory"]; // SKIP
-
- Бакет = "opi-dirbucket3";
- Бакет = ?(Каталог, "opi-dirbucket3", "opi-gpbucket3"); // SKIP
-
- Результат = OPI_S3.УдалитьОбъект(Наименование, Бакет, ОсновныеДанные, , , Каталог);
-
- // END
-
- Обработать(Результат, "S3", "УдалитьОбъект");
-
-КонецПроцедуры
-
-Процедура S3_ПолучитьОписаниеОбъекта(ПараметрыФункции)
-
- URL = ПараметрыФункции["S3_URL"];
- AccessKey = ПараметрыФункции["S3_AccessKey"];
- SecretKey = ПараметрыФункции["S3_SecretKey"];
- Region = "BTC";
-
- ОсновныеДанные = OPI_S3.ПолучитьСтруктуруДанных(URL, AccessKey, SecretKey, Region);
-
- Наименование = "picture.jpg";
-
- Каталог = Истина; // Формирование URL в path-style
- Каталог = ПараметрыФункции["Directory"]; // SKIP
-
- Бакет = "opi-dirbucket3";
- Бакет = ?(Каталог, "opi-dirbucket3", "opi-gpbucket3"); // SKIP
-
- Результат = OPI_S3.ПолучитьОписаниеОбъекта(Наименование, Бакет, ОсновныеДанные, , , Каталог);
-
- // END
-
- Обработать(Результат, "S3", "ПолучитьОписаниеОбъекта");
-
-КонецПроцедуры
-
-Процедура S3_КопироватьОбъект(ПараметрыФункции)
-
- URL = ПараметрыФункции["S3_URL"];
- AccessKey = ПараметрыФункции["S3_AccessKey"];
- SecretKey = ПараметрыФункции["S3_SecretKey"];
- Region = "BTC";
-
- ОсновныеДанные = OPI_S3.ПолучитьСтруктуруДанных(URL, AccessKey, SecretKey, Region);
-
- Каталог = Истина; // Формирование URL в path-style
- Каталог = ПараметрыФункции["Directory"]; // SKIP
-
- ПутьИсточник = "picture.jpg";
- БакетИсточник = "newbucket2";
-
- ПутьПриемник = "new_picture.jpg";
- БакетПриемник = "opi-dirbucket3";
- БакетПриемник = ?(Каталог, "opi-dirbucket3", "opi-gpbucket3"); // SKIP
-
- Результат = OPI_S3.КопироватьОбъект(ПутьИсточник, БакетИсточник, ПутьПриемник, БакетПриемник, ОсновныеДанные, , Каталог);
-
- // END
-
- Обработать(Результат, "S3", "КопироватьОбъект");
-
- OPI_S3.УдалитьОбъект(ПутьПриемник, БакетПриемник, ОсновныеДанные, , , Каталог);
-
-КонецПроцедуры
-
-Процедура S3_УстановитьТегиОбъекта(ПараметрыФункции)
-
- URL = ПараметрыФункции["S3_URL"];
- AccessKey = ПараметрыФункции["S3_AccessKey"];
- SecretKey = ПараметрыФункции["S3_SecretKey"];
- Region = "BTC";
-
- ОсновныеДанные = OPI_S3.ПолучитьСтруктуруДанных(URL, AccessKey, SecretKey, Region);
-
- Наименование = "picture.jpg";
-
- Каталог = Истина; // Формирование URL в path-style
- Каталог = ПараметрыФункции["Directory"]; // SKIP
-
- Бакет = "opi-dirbucket3";
- Бакет = ?(Каталог, "opi-dirbucket3", "opi-gpbucket3"); // SKIP
-
- СтруктураТегов = Новый Структура;
-
- СтруктураТегов.Вставить("MyTag1", "SomeValue");
- СтруктураТегов.Вставить("MyTag2", "AnotherOne");
-
- Результат = OPI_S3.УстановитьТегиОбъекта(Наименование, Бакет, ОсновныеДанные, СтруктураТегов, , Каталог);
-
- // END
-
- Обработать(Результат, "S3", "УстановитьТегиОбъекта");
-
-КонецПроцедуры
-
-Процедура S3_ПолучитьТегиОбъекта(ПараметрыФункции)
-
- URL = ПараметрыФункции["S3_URL"];
- AccessKey = ПараметрыФункции["S3_AccessKey"];
- SecretKey = ПараметрыФункции["S3_SecretKey"];
- Region = "BTC";
-
- ОсновныеДанные = OPI_S3.ПолучитьСтруктуруДанных(URL, AccessKey, SecretKey, Region);
-
- Наименование = "picture.jpg";
-
- Каталог = Истина; // Формирование URL в path-style
- Каталог = ПараметрыФункции["Directory"]; // SKIP
-
- Бакет = "opi-dirbucket3";
- Бакет = ?(Каталог, "opi-dirbucket3", "opi-gpbucket3"); // SKIP
-
- Результат = OPI_S3.ПолучитьТегиОбъекта(Наименование, Бакет, ОсновныеДанные, , , Каталог);
-
- // END
-
- Обработать(Результат, "S3", "ПолучитьТегиОбъекта");
-
-КонецПроцедуры
-
-Процедура S3_УдалитьТегиОбъекта(ПараметрыФункции)
-
- URL = ПараметрыФункции["S3_URL"];
- AccessKey = ПараметрыФункции["S3_AccessKey"];
- SecretKey = ПараметрыФункции["S3_SecretKey"];
- Region = "BTC";
-
- ОсновныеДанные = OPI_S3.ПолучитьСтруктуруДанных(URL, AccessKey, SecretKey, Region);
-
- Наименование = "picture.jpg";
-
- Каталог = Истина; // Формирование URL в path-style
- Каталог = ПараметрыФункции["Directory"]; // SKIP
-
- Бакет = "opi-dirbucket3";
- Бакет = ?(Каталог, "opi-dirbucket3", "opi-gpbucket3"); // SKIP
-
- Результат = OPI_S3.УдалитьТегиОбъекта(Наименование, Бакет, ОсновныеДанные, , , Каталог);
-
- // END
-
- Обработать(Результат, "S3", "УдалитьТегиОбъекта");
-
-КонецПроцедуры
-
-Процедура S3_ПолучитьСписокОбъектов(ПараметрыФункции)
-
- URL = ПараметрыФункции["S3_URL"];
- AccessKey = ПараметрыФункции["S3_AccessKey"];
- SecretKey = ПараметрыФункции["S3_SecretKey"];
- Region = "BTC";
-
- ОсновныеДанные = OPI_S3.ПолучитьСтруктуруДанных(URL, AccessKey, SecretKey, Region);
-
- Каталог = Истина; // Формирование URL в path-style
- Каталог = ПараметрыФункции["Directory"]; // SKIP
-
- Бакет = "opi-dirbucket3";
- Бакет = ?(Каталог, "opi-dirbucket3", "opi-gpbucket3"); // SKIP
-
- Результат = OPI_S3.ПолучитьСписокОбъектов(Бакет, ОсновныеДанные, , , , Каталог);
-
- // END
-
- Обработать(Результат, "S3", "ПолучитьСписокОбъектов");
-
-КонецПроцедуры
-
-Процедура S3_ПолучитьСписокВерсийОбъектов(ПараметрыФункции)
-
- URL = ПараметрыФункции["S3_URL"];
- AccessKey = ПараметрыФункции["S3_AccessKey"];
- SecretKey = ПараметрыФункции["S3_SecretKey"];
- Region = "BTC";
-
- ОсновныеДанные = OPI_S3.ПолучитьСтруктуруДанных(URL, AccessKey, SecretKey, Region);
-
- Каталог = Истина; // Формирование URL в path-style
- Каталог = ПараметрыФункции["Directory"]; // SKIP
-
- Бакет = "opi-dirbucket3";
- Бакет = ?(Каталог, "opi-dirbucket3", "opi-gpbucket3"); // SKIP
-
- Префикс = "pic";
- Результат = OPI_S3.ПолучитьСписокВерсийОбъектов(Бакет, ОсновныеДанные, Префикс, , , Каталог);
-
- // END
-
- Обработать(Результат, "S3", "ПолучитьСписокВерсийОбъектов");
-
-КонецПроцедуры
-
-Процедура S3_ПолучитьОбъект(ПараметрыФункции)
-
- Картинка = ПараметрыФункции["Picture"]; // SKIP
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка); // SKIP
- НеобходимыйРазмер = Картинка.Размер(); // SKIP
-
- URL = ПараметрыФункции["S3_URL"];
- AccessKey = ПараметрыФункции["S3_AccessKey"];
- SecretKey = ПараметрыФункции["S3_SecretKey"];
- Region = "BTC";
-
- ОсновныеДанные = OPI_S3.ПолучитьСтруктуруДанных(URL, AccessKey, SecretKey, Region);
-
- Наименование = "picture.jpg";
-
- Каталог = Истина; // Формирование URL в path-style
- Каталог = ПараметрыФункции["Directory"]; // SKIP
-
- Бакет = "opi-dirbucket3";
- Бакет = ?(Каталог, "opi-dirbucket3", "opi-gpbucket3"); // SKIP
-
- Результат = OPI_S3.ПолучитьОбъект(Наименование, Бакет, ОсновныеДанные, , , , Каталог);
-
- Обработать(Результат, "S3", "ПолучитьОбъект", , НеобходимыйРазмер); // SKIP
-
- ВременныйФайл = ПолучитьИмяВременногоФайла();
- ОсновныеДанные.Вставить("ChunkSize", 200000);
-
- Результат = OPI_S3.ПолучитьОбъект(Наименование, Бакет, ОсновныеДанные, , , ВременныйФайл);
-
- // END
-
- Обработать(Результат, "S3", "ПолучитьОбъект", "Файл", НеобходимыйРазмер);
-
- Наименование = "bigfile.exe";
- Бакет = "newbucket2";
-
- ВременныйФайлБольшой = ПолучитьИмяВременногоФайла();
- Результат = OPI_S3.ПолучитьОбъект(Наименование, Бакет, ОсновныеДанные, , , ВременныйФайлБольшой);
-
- Обработать(Результат, "S3", "ПолучитьОбъект", "Большой файл", 34432400);
-
- Результат = OPI_S3.ПолучитьОбъект(Наименование, Бакет, ОсновныеДанные);
-
- Обработать(Результат, "S3", "ПолучитьОбъект", "Большой ДД", 34432400);
-
- OPI_Инструменты.УдалитьФайлВПопытке(ВременныйФайлБольшой, "Не удалось удалить временный файл после теста!");
- OPI_Инструменты.УдалитьФайлВПопытке(ВременныйФайл , "Не удалось удалить временный файл после теста!");
-
-КонецПроцедуры
-
-Процедура S3_ИнициализироватьЗагрузкуЧастями(ПараметрыФункции)
-
- URL = ПараметрыФункции["S3_URL"];
- AccessKey = ПараметрыФункции["S3_AccessKey"];
- SecretKey = ПараметрыФункции["S3_SecretKey"];
- Region = "BTC";
-
- ОсновныеДанные = OPI_S3.ПолучитьСтруктуруДанных(URL, AccessKey, SecretKey, Region);
-
- Наименование = "fileChunked.mp3";
-
- Каталог = Истина; // Формирование URL в path-style
- Каталог = ПараметрыФункции["Directory"]; // SKIP
-
- Бакет = "opi-dirbucket3";
- Бакет = ?(Каталог, "opi-dirbucket3", "opi-gpbucket3"); // SKIP
-
- Содержимое = ПараметрыФункции["Audio"]; // URL, Путь или Двоичные данные
- Содержимое = OPI_ЗапросыHTTP.Get(Содержимое);
-
- Результат = OPI_S3.ИнициализироватьЗагрузкуЧастями(Наименование, Бакет, ОсновныеДанные, , Каталог);
- // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
- Обработать(Результат, "S3", "ИнициализироватьЗагрузкуЧастями"); // SKIP
-
- IDЗагрузки = Результат["response"]["InitiateMultipartUploadResult"]["UploadId"];
- ОбщийРазмер = Содержимое.Размер();
- РазмерУчастка = 5242880;
- ПрочитаноБайт = 0;
- НомерЧасти = 1;
-
- ЧтениеДанных = Новый ЧтениеДанных(Содержимое);
- ИсходныйПоток = ЧтениеДанных.ИсходныйПоток();
- МассивТегов = Новый Массив;
-
- Пока ПрочитаноБайт < ОбщийРазмер Цикл
-
- ТекущееЧтение = ЧтениеДанных.Прочитать(РазмерУчастка);
- ТекущиеДанные = ТекущееЧтение.ПолучитьДвоичныеДанные();
-
- Если ТекущиеДанные.Размер() = 0 Тогда
- Прервать;
- КонецЕсли;
-
- Результат = OPI_S3.ЗагрузитьЧастьОбъекта(Наименование
- , Бакет
- , ОсновныеДанные
- , IDЗагрузки
- , НомерЧасти
- , ТекущиеДанные
- , Каталог);
-
- Обработать(Результат, "S3", "ИнициализироватьЗагрузкуЧастями", "Часть"); // SKIP
-
- ПрочитаноБайт = ИсходныйПоток.ТекущаяПозиция();
-
- ETag = Результат["headers"]["Etag"];
- ETag = ?(ETag = Неопределено, Результат["headers"]["ETag"], ETag);
-
- МассивТегов.Добавить(ETag);
-
- НомерЧасти = НомерЧасти + 1;
-
- КонецЦикла;
-
- Результат = OPI_S3.ЗавершитьЗагрузкуЧастями(Наименование, Бакет, ОсновныеДанные, IDЗагрузки, МассивТегов, , Каталог);
-
- // END
-
- Обработать(Результат, "S3", "ИнициализироватьЗагрузкуЧастями", "Завершение");
-
- OPI_S3.УдалитьОбъект(Наименование, Бакет, ОсновныеДанные);
-
-КонецПроцедуры
-
-Процедура S3_ЗавершитьЗагрузкуЧастями(ПараметрыФункции)
-
- URL = ПараметрыФункции["S3_URL"];
- AccessKey = ПараметрыФункции["S3_AccessKey"];
- SecretKey = ПараметрыФункции["S3_SecretKey"];
- Region = "BTC";
-
- ОсновныеДанные = OPI_S3.ПолучитьСтруктуруДанных(URL, AccessKey, SecretKey, Region);
-
- Наименование = "fileChunked.mp3";
-
- Каталог = Истина; // Формирование URL в path-style
- Каталог = ПараметрыФункции["Directory"]; // SKIP
-
- Бакет = "opi-dirbucket3";
- Бакет = ?(Каталог, "opi-dirbucket3", "opi-gpbucket3"); // SKIP
-
- Содержимое = ПараметрыФункции["Audio"]; // URL, Путь или Двоичные данные
- Содержимое = OPI_ЗапросыHTTP.Get(Содержимое);
-
- Результат = OPI_S3.ИнициализироватьЗагрузкуЧастями(Наименование, Бакет, ОсновныеДанные, , Каталог);
-
- Обработать(Результат, "S3", "ЗавершитьЗагрузкуЧастями", "Начало"); // SKIP
-
- IDЗагрузки = Результат["response"]["InitiateMultipartUploadResult"]["UploadId"];
- ОбщийРазмер = Содержимое.Размер();
- РазмерУчастка = 5242880;
- ПрочитаноБайт = 0;
- НомерЧасти = 1;
-
- ЧтениеДанных = Новый ЧтениеДанных(Содержимое);
- ИсходныйПоток = ЧтениеДанных.ИсходныйПоток();
- МассивТегов = Новый Массив;
-
- Пока ПрочитаноБайт < ОбщийРазмер Цикл
-
- ТекущееЧтение = ЧтениеДанных.Прочитать(РазмерУчастка);
- ТекущиеДанные = ТекущееЧтение.ПолучитьДвоичныеДанные();
-
- Если ТекущиеДанные.Размер() = 0 Тогда
- Прервать;
- КонецЕсли;
-
- Результат = OPI_S3.ЗагрузитьЧастьОбъекта(Наименование
- , Бакет
- , ОсновныеДанные
- , IDЗагрузки
- , НомерЧасти
- , ТекущиеДанные
- , Каталог);
-
- Обработать(Результат, "S3", "ЗавершитьЗагрузкуЧастями", "Часть"); // SKIP
-
- ПрочитаноБайт = ИсходныйПоток.ТекущаяПозиция();
-
- ETag = Результат["headers"]["Etag"];
- ETag = ?(ETag = Неопределено, Результат["headers"]["ETag"], ETag);
-
- МассивТегов.Добавить(ETag);
-
- НомерЧасти = НомерЧасти + 1;
-
- КонецЦикла;
-
- Результат = OPI_S3.ЗавершитьЗагрузкуЧастями(Наименование, Бакет, ОсновныеДанные, IDЗагрузки, МассивТегов, , Каталог);
- // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
- // END
-
- Обработать(Результат, "S3", "ЗавершитьЗагрузкуЧастями");
-
- OPI_S3.УдалитьОбъект(Наименование, Бакет, ОсновныеДанные);
-
-КонецПроцедуры
-
-Процедура S3_ЗагрузитьЧастьОбъекта(ПараметрыФункции)
-
- URL = ПараметрыФункции["S3_URL"];
- AccessKey = ПараметрыФункции["S3_AccessKey"];
- SecretKey = ПараметрыФункции["S3_SecretKey"];
- Region = "BTC";
-
- ОсновныеДанные = OPI_S3.ПолучитьСтруктуруДанных(URL, AccessKey, SecretKey, Region);
-
- Наименование = "fileChunked.mp3";
-
- Каталог = Истина; // Формирование URL в path-style
- Каталог = ПараметрыФункции["Directory"]; // SKIP
-
- Бакет = "opi-dirbucket3";
- Бакет = ?(Каталог, "opi-dirbucket3", "opi-gpbucket3"); // SKIP
-
- Содержимое = ПараметрыФункции["Audio"]; // URL, Путь или Двоичные данные
- Содержимое = OPI_ЗапросыHTTP.Get(Содержимое);
-
- Результат = OPI_S3.ИнициализироватьЗагрузкуЧастями(Наименование, Бакет, ОсновныеДанные, , Каталог);
-
- Обработать(Результат, "S3", "ЗагрузитьЧастьОбъекта", "Начало"); // SKIP
-
- IDЗагрузки = Результат["response"]["InitiateMultipartUploadResult"]["UploadId"];
- ОбщийРазмер = Содержимое.Размер();
- РазмерУчастка = 5242880;
- ПрочитаноБайт = 0;
- НомерЧасти = 1;
-
- ЧтениеДанных = Новый ЧтениеДанных(Содержимое);
- ИсходныйПоток = ЧтениеДанных.ИсходныйПоток();
- МассивТегов = Новый Массив;
-
- Пока ПрочитаноБайт < ОбщийРазмер Цикл
-
- ТекущееЧтение = ЧтениеДанных.Прочитать(РазмерУчастка);
- ТекущиеДанные = ТекущееЧтение.ПолучитьДвоичныеДанные();
-
- Если ТекущиеДанные.Размер() = 0 Тогда
- Прервать;
- КонецЕсли;
-
- Результат = OPI_S3.ЗагрузитьЧастьОбъекта(Наименование
- , Бакет
- , ОсновныеДанные
- , IDЗагрузки
- , НомерЧасти
- , ТекущиеДанные
- , Каталог);
-
- // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
- Обработать(Результат, "S3", "ЗагрузитьЧастьОбъекта"); // SKIP
-
- ПрочитаноБайт = ИсходныйПоток.ТекущаяПозиция();
-
- ETag = Результат["headers"]["Etag"];
- ETag = ?(ETag = Неопределено, Результат["headers"]["ETag"], ETag);
-
- МассивТегов.Добавить(ETag);
-
- НомерЧасти = НомерЧасти + 1;
-
- КонецЦикла;
-
- Результат = OPI_S3.ЗавершитьЗагрузкуЧастями(Наименование, Бакет, ОсновныеДанные, IDЗагрузки, МассивТегов, , Каталог);
-
- // END
-
- Обработать(Результат, "S3", "ЗагрузитьЧастьОбъекта", "Завершение"); // SKIP
-
- OPI_S3.УдалитьОбъект(Наименование, Бакет, ОсновныеДанные);
-
-КонецПроцедуры
-
-Процедура S3_ОтменитьЗагрузкуЧастями(ПараметрыФункции)
-
- URL = ПараметрыФункции["S3_URL"];
- AccessKey = ПараметрыФункции["S3_AccessKey"];
- SecretKey = ПараметрыФункции["S3_SecretKey"];
- Region = "BTC";
-
- ОсновныеДанные = OPI_S3.ПолучитьСтруктуруДанных(URL, AccessKey, SecretKey, Region);
-
- Наименование = "fileChunked.mp3";
-
- Каталог = Истина; // Формирование URL в path-style
- Каталог = ПараметрыФункции["Directory"]; // SKIP
-
- Бакет = "opi-dirbucket3";
- Бакет = ?(Каталог, "opi-dirbucket3", "opi-gpbucket3"); // SKIP
-
- Начало = OPI_S3.ИнициализироватьЗагрузкуЧастями(Наименование, Бакет, ОсновныеДанные, , Каталог);
- IDЗагрузки = Начало["response"]["InitiateMultipartUploadResult"]["UploadId"];
-
- Результат = OPI_S3.ОтменитьЗагрузкуЧастями(Наименование, Бакет, ОсновныеДанные, IDЗагрузки, , Каталог);
-
- // END
-
- Обработать(Результат, "S3", "ОтменитьЗагрузкуЧастями");
-
-КонецПроцедуры
-
-Процедура S3_ПолучитьСсылкуСкачиванияОбъекта(ПараметрыФункции)
-
- Картинка = ПараметрыФункции["Picture"]; // SKIP
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка); // SKIP
- НеобходимыйРазмер = Картинка.Размер(); // SKIP
-
- URL = ПараметрыФункции["S3_URL"];
- AccessKey = ПараметрыФункции["S3_AccessKey"];
- SecretKey = ПараметрыФункции["S3_SecretKey"];
- Region = "BTC";
-
- ОсновныеДанные = OPI_S3.ПолучитьСтруктуруДанных(URL, AccessKey, SecretKey, Region);
-
- Наименование = "picture.jpg";
-
- Каталог = Истина; // Формирование URL в path-style
- Каталог = ПараметрыФункции["Directory"]; // SKIP
-
- Бакет = "opi-dirbucket3";
- Бакет = ?(Каталог, "opi-dirbucket3", "opi-gpbucket3"); // SKIP
-
- Результат = OPI_S3.ПолучитьСсылкуСкачиванияОбъекта(Наименование, Бакет, ОсновныеДанные, 7200, , Каталог);
-
- // END
-
- Обработать(Результат, "S3", "ПолучитьСсылкуСкачиванияОбъекта");
-
- Результат = OPI_ЗапросыHTTP.Get(Результат);
-
- Обработать(Результат, "S3", "ПолучитьСсылкуСкачиванияОбъекта", "Проверка", НеобходимыйРазмер);
-
-КонецПроцедуры
-
-Процедура S3_ПолучитьСсылкуЗагрузкиОбъекта(ПараметрыФункции)
-
- Картинка = ПараметрыФункции["Picture"]; // SKIP
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка); // SKIP
- НеобходимыйРазмер = Картинка.Размер(); // SKIP
-
- URL = ПараметрыФункции["S3_URL"];
- AccessKey = ПараметрыФункции["S3_AccessKey"];
- SecretKey = ПараметрыФункции["S3_SecretKey"];
- Region = "BTC";
-
- ОсновныеДанные = OPI_S3.ПолучитьСтруктуруДанных(URL, AccessKey, SecretKey, Region);
-
- Наименование = "pictureU.jpg";
-
- Каталог = Истина; // Формирование URL в path-style
- Каталог = ПараметрыФункции["Directory"]; // SKIP
-
- Бакет = "newbucket2";
-
- Результат = OPI_S3.ПолучитьСсылкуЗагрузкиОбъекта(Наименование, Бакет, ОсновныеДанные, 7200, , Каталог);
-
- // END
-
- Обработать(Результат, "S3", "ПолучитьСсылкуЗагрузкиОбъекта");
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать(Результат)
- .УстановитьДвоичноеТело(Картинка)
- .ОбработатьЗапрос("PUT");
-
- Обработать(Результат, "S3", "ПолучитьСсылкуЗагрузкиОбъекта", "Загрузка");
-
- Проверка = OPI_S3.ПолучитьОписаниеОбъекта(Наименование, Бакет, ОсновныеДанные);
-
- Обработать(Проверка, "S3", "ПолучитьСсылкуЗагрузкиОбъекта", "Проверка", НеобходимыйРазмер);
-
- OPI_S3.УдалитьОбъект(Наименование, Бакет, ОсновныеДанные);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область TCP
-
-Процедура TCP_ОткрытьСоединение(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["TCP_Address"];
- Соединение = OPI_TCP.ОткрытьСоединение(Адрес);
-
- Обработать(Соединение, "TCP", "ОткрытьСоединение"); // SKIP
-
- OPI_TCP.ЗакрытьСоединение(Соединение);
-
- Адрес = "tcpbin.com:4243";
- Tls = OPI_TCP.ПолучитьНастройкиTLS(Истина);
- Соединение = OPI_TCP.ОткрытьСоединение(Адрес, TLS);
-
- // END
-
- Обработать(Соединение, "TCP", "ОткрытьСоединение", "TLS");
-
-КонецПроцедуры
-
-Процедура TCP_ЗакрытьСоединение(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["TCP_Address"];
- Соединение = OPI_TCP.ОткрытьСоединение(Адрес);
-
- Результат = OPI_TCP.ЗакрытьСоединение(Соединение);
-
- // END
-
- Обработать(Результат, "TCP", "ЗакрытьСоединение");
-
-КонецПроцедуры
-
-Процедура TCP_ПрочитатьДвоичныеДанные(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["TCP_Address"];
- Соединение = OPI_TCP.ОткрытьСоединение(Адрес);
- Сообщение = "Hello server!" + Символы.ПС;
- Данные = ПолучитьДвоичныеДанныеИзСтроки(Сообщение);
-
- OPI_TCP.ОтправитьДвоичныеДанные(Соединение, Данные);
-
- // Маркер конца сообщения для исключения ожидания конца таймаута
- Маркер = Символы.ПС;
- Результат = OPI_TCP.ПрочитатьДвоичныеДанные(Соединение, , Маркер);
- // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
- OPI_TCP.ЗакрытьСоединение(Соединение);
-
- // END
-
- Обработать(Результат, "TCP", "ПрочитатьДвоичныеДанные", , Сообщение);
-
- Соединение = OPI_TCP.ОткрытьСоединение(Адрес);
-
- OPI_TCP.ОтправитьДвоичныеДанные(Соединение, Данные);
- Результат = OPI_TCP.ПрочитатьДвоичныеДанные(Соединение, , , 50000);
-
- OPI_TCP.ЗакрытьСоединение(Соединение);
-
- Обработать(Результат, "TCP", "ПрочитатьДвоичныеДанные", "Таймаут", Сообщение);
-
-КонецПроцедуры
-
-Процедура TCP_ОтправитьДвоичныеДанные(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["TCP_Address"];
- Соединение = OPI_TCP.ОткрытьСоединение(Адрес);
- Сообщение = "Hello server!" + Символы.ПС;
- Данные = ПолучитьДвоичныеДанныеИзСтроки(Сообщение);
-
- Результат = OPI_TCP.ОтправитьДвоичныеДанные(Соединение, Данные);
- // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
- // Маркер конца сообщения для исключения ожидания конца таймаута
- Маркер = Символы.ПС;
- Ответ = OPI_TCP.ПрочитатьДвоичныеДанные(Соединение, , Маркер);
-
- OPI_TCP.ЗакрытьСоединение(Соединение);
-
- // END
-
- Обработать(Ответ, "TCP", "ОтправитьДвоичныеДанные", , Сообщение);
-
- Соединение = OPI_TCP.ОткрытьСоединение(Адрес);
-
- OPI_TCP.ОтправитьДвоичныеДанные(Соединение, Данные);
- Результат = OPI_TCP.ПрочитатьДвоичныеДанные(Соединение, , , 50000);
-
- OPI_TCP.ЗакрытьСоединение(Соединение);
-
- Обработать(Результат, "TCP", "ОтправитьДвоичныеДанные", "Таймаут", Сообщение);
-
-КонецПроцедуры
-
-Процедура TCP_ОбработатьЗапрос(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["TCP_Address"];
- Данные = "Echo this!" + Символы.ПС;
-
- Результат = OPI_TCP.ОбработатьЗапрос(Адрес, Данные);
-
- Обработать(Результат, "TCP", "ОбработатьЗапрос", , "Echo this!" + Символы.ПС); // SKIP
-
- Адрес = ПараметрыФункции["TCP_AddressTLS"];
- Tls = OPI_TCP.ПолучитьНастройкиTLS(Истина);
-
- Результат = OPI_TCP.ОбработатьЗапрос(Адрес, Данные, , Tls);
-
- // END
-
- Обработать(Результат, "TCP", "ОбработатьЗапрос", "TLS", "Echo this!" + Символы.ПС);
-
-КонецПроцедуры
-
-Процедура TCP_ПрочитатьСтроку(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["TCP_Address"];
- Соединение = OPI_TCP.ОткрытьСоединение(Адрес);
- Данные = "Hello server!" + Символы.ПС;
-
- OPI_TCP.ОтправитьСтроку(Соединение, Данные);
-
- // Маркер конца сообщения для исключения ожидания конца таймаута
- Маркер = Символы.ПС;
- Результат = OPI_TCP.ПрочитатьСтроку(Соединение, , Маркер);
- // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
- OPI_TCP.ЗакрытьСоединение(Соединение);
-
- // END
-
- Обработать(Результат, "TCP", "ПрочитатьСтроку", , Данные);
-
- Соединение = OPI_TCP.ОткрытьСоединение(Адрес);
-
- OPI_TCP.ОтправитьСтроку(Соединение, Данные);
- Результат = OPI_TCP.ПрочитатьСтроку(Соединение, , , 50000);
-
- OPI_TCP.ЗакрытьСоединение(Соединение);
-
- Обработать(Результат, "TCP", "ПрочитатьСтроку", "Таймаут", Данные);
-
-КонецПроцедуры
-
-Процедура TCP_ОтправитьСтроку(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["TCP_Address"];
- Соединение = OPI_TCP.ОткрытьСоединение(Адрес);
- Данные = "Hello server!" + Символы.ПС;
-
- Результат = OPI_TCP.ОтправитьСтроку(Соединение, Данные);
- // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
- // Маркер конца сообщения для исключения ожидания конца таймаута
- Маркер = Символы.ПС;
- Ответ = OPI_TCP.ПрочитатьСтроку(Соединение, , Маркер);
-
- OPI_TCP.ЗакрытьСоединение(Соединение);
-
- // END
-
- Обработать(Ответ, "TCP", "ОтправитьСтроку", , Данные);
-
- Соединение = OPI_TCP.ОткрытьСоединение(Адрес);
-
- OPI_TCP.ОтправитьСтроку(Соединение, Данные);
- Результат = OPI_TCP.ПрочитатьСтроку(Соединение, , , 50000);
-
- OPI_TCP.ЗакрытьСоединение(Соединение);
-
- Обработать(Результат, "TCP", "ОтправитьСтроку", "Таймаут", Данные);
-
-КонецПроцедуры
-
-Процедура TCP_ПолучитьНастройкиTLS(ПараметрыФункции)
-
- Результат = OPI_TCP.ПолучитьНастройкиTLS(Истина);
-
- // END
-
- Обработать(Результат, "TCP", "ПолучитьНастройкиTLS");
-
-КонецПроцедуры
-
-Процедура TCP_ПолучитьПоследнююОшибку(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["TCP_Address"];
- Соединение = OPI_TCP.ОткрытьСоединение(Адрес);
- Данные = "Hello server!" + Символы.ПС;
-
- Отправка = OPI_TCP.ОтправитьСтроку(Соединение, Данные);
- Результат = OPI_TCP.ПолучитьПоследнююОшибку(Соединение); // SKIP
-
- // END
-
- Обработать(Результат, "TCP", "ПолучитьПоследнююОшибку");
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область SQLite
-
-Процедура SQLite_ОткрытьСоединение(ПараметрыФункции)
-
- ИВФ = ПолучитьИмяВременногоФайла("sqlite");
-
- БазаНаДиске = OPI_SQLite.ОткрытьСоединение(ИВФ);
- БазаВПамяти = OPI_SQLite.ОткрытьСоединение();
-
- // END
-
- Обработать(БазаНаДиске, "SQLite", "ОткрытьСоединение");
- Обработать(БазаВПамяти, "SQLite", "ОткрытьСоединение", "IM");
-
- Закрытие = OPI_SQLite.ЗакрытьСоединение(БазаНаДиске);
-
- Обработать(Закрытие, "SQLite", "ОткрытьСоединение", "Закрытие");
-
- OPI_Инструменты.УдалитьФайлВПопытке(ИВФ, "Ошибка удаления файла базы");
-
-КонецПроцедуры
-
-Процедура SQLite_ЗакрытьСоединение(ПараметрыФункции)
-
- ИВФ = ПолучитьИмяВременногоФайла("sqlite");
-
- Соединение = OPI_SQLite.ОткрытьСоединение(ИВФ);
-
- Обработать(Соединение, "SQLite", "ЗакрытьСоединение", "Открытие"); // SKIP
-
- Закрытие = OPI_SQLite.ЗакрытьСоединение(Соединение);
-
- // END
-
- Обработать(Закрытие, "SQLite", "ЗакрытьСоединение");
-
- OPI_Инструменты.УдалитьФайлВПопытке(ИВФ, "Ошибка удаления файла базы");
-
-КонецПроцедуры
-
-Процедура SQLite_ВыполнитьЗапросSQL(ПараметрыФункции)
-
- ИВФ = ПолучитьИмяВременногоФайла("sqlite");
-
- Картинка = ПараметрыФункции["Picture"];
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка); // Картинка - Тип: ДвоичныеДанные
-
- Соединение = OPI_SQLite.ОткрытьСоединение(ИВФ);
-
- Обработать(Соединение, "SQLite", "ВыполнитьЗапросSQL", "Открытие"); // SKIP
-
- // CREATE
-
- ТекстЗапроса = "
- |CREATE TABLE test_table (
- |id INTEGER PRIMARY KEY,
- |name TEXT,
- |age INTEGER,
- |salary REAL,
- |is_active BOOLEAN,
- |created_at DATETIME,
- |data BLOB
- |);";
-
- Результат = OPI_SQLite.ВыполнитьЗапросSQL(ТекстЗапроса, , , Соединение);
-
- Обработать(Результат, "SQLite", "ВыполнитьЗапросSQL", "Create"); // SKIP
-
- // INSERT с параметрами
-
- ТекстЗапроса = "
- |INSERT INTO test_table (name, age, salary, is_active, created_at, data)
- |VALUES (?1, ?2, ?3, ?4, ?5, ?6);";
-
- МассивПараметров = Новый Массив;
- МассивПараметров.Добавить("Vitaly"); // TEXT
- МассивПараметров.Добавить(25); // INTEGER
- МассивПараметров.Добавить(1000.12); // REAL
- МассивПараметров.Добавить(Истина); // BOOL
- МассивПараметров.Добавить(OPI_Инструменты.ПолучитьТекущуюДату()); // DATETIME
- МассивПараметров.Добавить(Новый Структура("blob", Картинка)); // BLOB
-
- Результат = OPI_SQLite.ВыполнитьЗапросSQL(ТекстЗапроса, МассивПараметров, , Соединение);
-
- Обработать(Результат, "SQLite", "ВыполнитьЗапросSQL", "Insert"); // SKIP
-
- // SELECT (Результат этого запроса приведен в следующем блоке)
-
- ТекстЗапроса = "SELECT id, name, age, salary, is_active, created_at, data FROM test_table;";
-
- Результат = OPI_SQLite.ВыполнитьЗапросSQL(ТекстЗапроса, , , Соединение);
-
- Обработать(Результат, "SQLite", "ВыполнитьЗапросSQL", , Картинка); // SKIP
-
- // Транзакция
-
- ТекстЗапроса = "BEGIN TRANSACTION;
- | CREATE TABLE IF NOT EXISTS users (
- | id INTEGER PRIMARY KEY AUTOINCREMENT,
- | name TEXT NOT NULL,
- | age INTEGER NOT NULL
- | );
- | INSERT INTO users (name, age) VALUES ('Alice', 30);
- | INSERT INTO users (name, age) VALUES ('Bob', 25);
- | INSERT INTO users (name, age) VALUES ('Charlie', 35);
- | COMMIT;";
-
- Результат = OPI_SQLite.ВыполнитьЗапросSQL(ТекстЗапроса, , , Соединение);
-
- Обработать(Результат, "SQLite", "ВыполнитьЗапросSQL", "Transaction"); // SKIP
-
- // С расширением
-
- Если OPI_Инструменты.ЭтоWindows() Тогда
- Расширение = ПараметрыФункции["SQLite_Ext"]; // URL, Путь или Двоичные данные
- Иначе
- Расширение = ПараметрыФункции["SQLite_ExtLinux"]; // URL, Путь или Двоичные данные
- КонецЕсли;
-
- ТочкаВхода = "sqlite3_uuid_init";
-
- СоответствиеРасширений = Новый Соответствие;
- СоответствиеРасширений.Вставить(Расширение, ТочкаВхода);
-
- ТекстЗапроса = "SELECT uuid4();";
-
- Результат = OPI_SQLite.ВыполнитьЗапросSQL(ТекстЗапроса, , , Соединение, СоответствиеРасширений);
-
- Обработать(Результат, "SQLite", "ВыполнитьЗапросSQL", "Расширение"); // SKIP
-
- Закрытие = OPI_SQLite.ЗакрытьСоединение(Соединение);
-
- // END
-
- Обработать(Результат, "SQLite", "ВыполнитьЗапросSQL", "Закрытие");
-
- OPI_Инструменты.УдалитьФайлВПопытке(ИВФ, "Ошибка удаления файла базы");
-
-КонецПроцедуры
-
-Процедура SQLite_ЭтоКоннектор(ПараметрыФункции)
-
- Соединение = OPI_SQLite.ОткрытьСоединение();
- Результат = OPI_SQLite.ЭтоКоннектор(Соединение);
-
- // END
-
- Обработать(Результат, "SQLite", "ЭтоКоннектор");
-
-КонецПроцедуры
-
-Процедура SQLite_СоздатьТаблицу(ПараметрыФункции)
-
- База = ПараметрыФункции["SQLite_DB"];
- Таблица = "test";
-
- СтруктураКолонок = Новый Структура;
- СтруктураКолонок.Вставить("id" , "INTEGER PRIMARY KEY");
- СтруктураКолонок.Вставить("name" , "TEXT");
- СтруктураКолонок.Вставить("age" , "INTEGER");
- СтруктураКолонок.Вставить("salary" , "REAL");
- СтруктураКолонок.Вставить("is_active" , "BOOLEAN");
- СтруктураКолонок.Вставить("created_at", "DATETIME");
- СтруктураКолонок.Вставить("data" , "BLOB");
-
- Результат = OPI_SQLite.СоздатьТаблицу(Таблица, СтруктураКолонок, База);
-
- // END
-
- Обработать(Результат, "SQLite", "СоздатьТаблицу");
-
- СоответствиеКолонок = Новый Соответствие;
- СоответствиеКолонок.Вставить("id" , "INTEGER PRIMARY KEY");
- СоответствиеКолонок.Вставить("[Непонятная колонка]", "TEXT");
-
- Результат = OPI_SQLite.СоздатьТаблицу("test1", СоответствиеКолонок, База);
-
- Обработать(Результат, "SQLite", "СоздатьТаблицу", "Непонятная колонка");
-
-КонецПроцедуры
-
-Процедура SQLite_ДобавитьЗаписи(ПараметрыФункции)
-
- Картинка = ПараметрыФункции["Picture"];
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка); // Картинка - Тип: ДвоичныеДанные
-
- ФайлКартинки = ПолучитьИмяВременногоФайла("png");
- Картинка.Записать(ФайлКартинки); // ФайлКартинки - Файл на диске
-
- База = ПараметрыФункции["SQLite_DB"];
- Таблица = "test";
-
- МассивДанных = Новый Массив;
-
- СтруктураСтроки1 = Новый Структура;
- СтруктураСтроки1.Вставить("name" , "Vitaly"); // TEXT
- СтруктураСтроки1.Вставить("age" , 25); // INTEGER
- СтруктураСтроки1.Вставить("salary" , 1000.12); // REAL
- СтруктураСтроки1.Вставить("is_active" , Истина); // BOOL
- СтруктураСтроки1.Вставить("created_at", OPI_Инструменты.ПолучитьТекущуюДату()); // DATETIME
- СтруктураСтроки1.Вставить("data" , Новый Структура("blob", Картинка)); // BLOB
-
- СтруктураСтроки2 = Новый Структура;
- СтруктураСтроки2.Вставить("name" , "Lesha"); // TEXT
- СтруктураСтроки2.Вставить("age" , 20); // INTEGER
- СтруктураСтроки2.Вставить("salary" , 200.20); // REAL
- СтруктураСтроки2.Вставить("is_active" , Ложь); // BOOL
- СтруктураСтроки2.Вставить("created_at", OPI_Инструменты.ПолучитьТекущуюДату()); // DATETIME
- СтруктураСтроки2.Вставить("data" , Новый Структура("blob", ФайлКартинки)); // BLOB
-
- МассивДанных.Добавить(СтруктураСтроки1);
- МассивДанных.Добавить(СтруктураСтроки2);
-
- Результат = OPI_SQLite.ДобавитьЗаписи(Таблица, МассивДанных, , База);
-
- // END
-
- Обработать(Результат, "SQLite", "ДобавитьЗаписи");
-
- Результат = OPI_SQLite.ДобавитьЗаписи(Таблица, МассивДанных, Ложь, База);
-
- Обработать(Результат, "SQLite", "ДобавитьЗаписи", "Без транзакции");
-
- СтруктураСтроки2.Вставить("error", "Lesha");
- МассивДанных.Добавить(СтруктураСтроки2);
-
- Результат = OPI_SQLite.ДобавитьЗаписи(Таблица, МассивДанных, , База);
- Обработать(Результат, "SQLite", "ДобавитьЗаписи", "Ошибка поля");
-
- Результат = OPI_SQLite.ДобавитьЗаписи(Таблица, МассивДанных, Ложь, База);
- Обработать(Результат, "SQLite", "ДобавитьЗаписи", "Ошибка без транзакции");
-
- Результат = OPI_SQLite.ДобавитьЗаписи(Таблица, "not valid json", , База);
- Обработать(Результат, "SQLite", "ДобавитьЗаписи", "Ошибка JSON");
-
- СоответствиеСтроки = Новый Соответствие;
- СоответствиеСтроки.Вставить("[Непонятная колонка]", "yo");
-
- Результат = OPI_SQLite.ДобавитьЗаписи("test1", СоответствиеСтроки, , База);
- Обработать(Результат, "SQLite", "ДобавитьЗаписи", "Непонятная колонка");
-
- OPI_Инструменты.УдалитьФайлВПопытке(ФайлКартинки, "Не удалось удалить временный файл после теста!");
-
-КонецПроцедуры
-
-Процедура SQLite_ПолучитьЗаписи(ПараметрыФункции)
-
- База = ПараметрыФункции["SQLite_DB"];
- Таблица = "test";
-
- Поля = Новый Массив;
- Поля.Добавить("name");
- Поля.Добавить("salary");
-
- Фильтры = Новый Массив;
-
- СтруктураФильтра1 = Новый Структура;
-
- СтруктураФильтра1.Вставить("field", "name");
- СтруктураФильтра1.Вставить("type" , "=");
- СтруктураФильтра1.Вставить("value", "Vitaly");
- СтруктураФильтра1.Вставить("union", "AND");
- СтруктураФильтра1.Вставить("raw" , Ложь);
-
- СтруктураФильтра2 = Новый Структура;
-
- СтруктураФильтра2.Вставить("field", "age");
- СтруктураФильтра2.Вставить("type" , "BETWEEN");
- СтруктураФильтра2.Вставить("value", "20 AND 30");
- СтруктураФильтра2.Вставить("raw" , Истина);
-
- Фильтры.Добавить(СтруктураФильтра1);
- Фильтры.Добавить(СтруктураФильтра2);
-
- Сортировка = Новый Структура("created_at", "DESC");
- Количество = 1;
-
- Результат = OPI_SQLite.ПолучитьЗаписи(Таблица, Поля, Фильтры, Сортировка, Количество, База);
-
- // END
-
- Обработать(Результат, "SQLite", "ПолучитьЗаписи");
-
- Результат = OPI_SQLite.ПолучитьЗаписи(Таблица, "['name','age','salary','is_active','created_at']", , , , База);
-
- Обработать(Результат, "SQLite", "ПолучитьЗаписи", "Без параметров");
-
- СтруктураФильтра2.Вставить("type", "BEETWEEN");
- Фильтры.Добавить(СтруктураФильтра2);
-
- Результат = OPI_SQLite.ПолучитьЗаписи(Таблица
- , "['name','age','salary','is_active','created_at']"
- , Фильтры
- ,
- ,
- , База);
-
- Обработать(Результат, "SQLite", "ПолучитьЗаписи", "Ошибка");
-
- Результат = OPI_SQLite.ПолучитьЗаписи("test1", , , , , База);
-
- Обработать(Результат, "SQLite", "ПолучитьЗаписи", "Непонятная колонка");
-
-КонецПроцедуры
-
-Процедура SQLite_ОбновитьЗаписи(ПараметрыФункции)
-
- База = ПараметрыФункции["SQLite_DB"];
- Таблица = "test";
-
- СтруктураПолей = Новый Структура;
- СтруктураПолей.Вставить("name" , "Vitaly A.");
- СтруктураПолей.Вставить("salary", "999999");
-
- Фильтры = Новый Массив;
-
- СтруктураФильтра = Новый Структура;
-
- СтруктураФильтра.Вставить("field", "name");
- СтруктураФильтра.Вставить("type" , "=");
- СтруктураФильтра.Вставить("value", "Vitaly");
- СтруктураФильтра.Вставить("union", "AND");
- СтруктураФильтра.Вставить("raw" , Ложь);
-
- Фильтры.Добавить(СтруктураФильтра);
-
- Результат = OPI_SQLite.ОбновитьЗаписи(Таблица, СтруктураПолей, СтруктураФильтра, База);
-
- // END
-
- Обработать(Результат, "SQLite", "ОбновитьЗаписи");
-
- СтруктураФильтра.Вставить("value", "Vitaly A.");
-
- Фильтры = Новый Массив;
- Фильтры.Добавить(СтруктураФильтра);
-
- Проверка = OPI_SQLite.ПолучитьЗаписи(Таблица, "['name','salary']", Фильтры, , , База);
-
- Обработать(Проверка, "SQLite", "ОбновитьЗаписи", "Проверка", СтруктураПолей);
-
-КонецПроцедуры
-
-Процедура SQLite_УдалитьЗаписи(ПараметрыФункции)
-
- База = ПараметрыФункции["SQLite_DB"];
- Таблица = "test";
-
- Фильтры = Новый Массив;
-
- СтруктураФильтра = Новый Структура;
-
- СтруктураФильтра.Вставить("field", "name");
- СтруктураФильтра.Вставить("type" , "=");
- СтруктураФильтра.Вставить("value", "Vitaly A.");
- СтруктураФильтра.Вставить("union", "AND");
- СтруктураФильтра.Вставить("raw" , Ложь);
-
- Фильтры.Добавить(СтруктураФильтра);
-
- Результат = OPI_SQLite.УдалитьЗаписи(Таблица, СтруктураФильтра, База);
-
- // END
-
- Обработать(Результат, "SQLite", "УдалитьЗаписи");
-
- Проверка = OPI_SQLite.ПолучитьЗаписи(Таблица, "['name','salary']", Фильтры, , , База);
-
- Обработать(Проверка, "SQLite", "УдалитьЗаписи", "Проверка");
-
-КонецПроцедуры
-
-Процедура SQLite_ПолучитьИнформациюОТаблице(ПараметрыФункции)
-
- База = ПараметрыФункции["SQLite_DB"];
- Таблица = "test";
-
- Результат = OPI_SQLite.ПолучитьИнформациюОТаблице(Таблица, База);
-
- // END
-
- Обработать(Результат, "SQLite", "ПолучитьИнформациюОТаблице");
-
-КонецПроцедуры
-
-Процедура SQLite_ПолучитьСтруктуруФильтраЗаписей(ПараметрыФункции)
-
- Результат = OPI_SQLite.ПолучитьСтруктуруФильтраЗаписей();
-
- // END
-
- Обработать(Результат, "SQLite", "ПолучитьСтруктуруФильтраЗаписей");
-
- Результат = OPI_SQLite.ПолучитьСтруктуруФильтраЗаписей(Истина);
-
- Обработать(Результат, "SQLite", "ПолучитьСтруктуруФильтраЗаписей", "Пустая");
-
-КонецПроцедуры
-
-Процедура SQLite_УдалитьТаблицу(ПараметрыФункции)
-
- База = ПараметрыФункции["SQLite_DB"];
- Таблица = "test";
-
- Результат = OPI_SQLite.УдалитьТаблицу(Таблица, База);
-
- // END
-
- Обработать(Результат, "SQLite", "УдалитьТаблицу");
-
- Проверка = OPI_SQLite.ПолучитьИнформациюОТаблице(Таблица, База);
-
- Обработать(Проверка, "SQLite", "УдалитьТаблицу", "Проверка");
-
- OPI_SQLite.УдалитьТаблицу("test1", База);
-
-КонецПроцедуры
-
-Процедура SQLite_ОчиститьТаблицу(ПараметрыФункции)
-
- База = ПараметрыФункции["SQLite_DB"];
- Таблица = "test";
-
- Результат = OPI_SQLite.ОчиститьТаблицу(Таблица, База);
-
- // END
-
- Обработать(Результат, "SQLite", "ОчиститьТаблицу");
-
- Проверка = OPI_SQLite.ПолучитьИнформациюОТаблице(Таблица, База);
-
- Обработать(Проверка, "SQLite", "ОчиститьТаблицу", "Таблица");
-
- Проверка = OPI_SQLite.ПолучитьЗаписи(Таблица, , , , , База);
-
- Обработать(Проверка, "SQLite", "ОчиститьТаблицу", "Проверка");
-
-КонецПроцедуры
-
-Процедура SQLite_ПодключитьРасширение(ПараметрыФункции)
-
- Если OPI_Инструменты.ЭтоWindows() Тогда
- Расширение = ПараметрыФункции["SQLite_Ext"]; // URL, Путь или Двоичные данные
- Иначе
- Расширение = ПараметрыФункции["SQLite_ExtLinux"]; // URL, Путь или Двоичные данные
- КонецЕсли;
-
- База = ПараметрыФункции["SQLite_DB"];
- ТочкаВхода = "sqlite3_uuid_init";
-
- Соединение = OPI_SQLite.ОткрытьСоединение(База);
- Результат = OPI_SQLite.ПодключитьРасширение(Расширение, ТочкаВхода, Соединение);
-
- // END
-
- Обработать(Результат, "SQLite", "ПодключитьРасширение");
-
- ИВФ = ПолучитьИмяВременногоФайла("dll");
- КопироватьФайл(Расширение, ИВФ);
-
- Результат = OPI_SQLite.ПодключитьРасширение(ИВФ, ТочкаВхода, Соединение);
-
- Обработать(Результат, "SQLite", "ПодключитьРасширение", "Путь");
-
- Результат = OPI_SQLite.ПодключитьРасширение(Новый ДвоичныеДанные(ИВФ), ТочкаВхода, Соединение);
-
- Обработать(Результат, "SQLite", "ПодключитьРасширение", "Двоичные");
-
- Результат = OPI_SQLite.ЗакрытьСоединение(Соединение);
-
- OPI_Инструменты.УдалитьФайлВПопытке(ИВФ, "Ошибка удаления файла расширение");
-
-КонецПроцедуры
-
-Процедура SQLite_ДобавитьКолонкуТаблицы(ПараметрыФункции)
-
- База = ПараметрыФункции["SQLite_DB"];
- Таблица = "test";
- Имя = "new_col";
- ТипДанных = "TEXT";
-
- Результат = OPI_SQLite.ДобавитьКолонкуТаблицы(Таблица, Имя, ТипДанных, База);
-
- // END
-
- Обработать(Результат, "SQLite", "ДобавитьКолонкуТаблицы");
-
- Результат = OPI_SQLite.ПолучитьИнформациюОТаблице(Таблица, База);
-
- Обработать(Результат, "SQLite", "ДобавитьКолонкуТаблицы", "Проверка");
-
-КонецПроцедуры
-
-Процедура SQLite_УдалитьКолонкуТаблицы(ПараметрыФункции)
-
- База = ПараметрыФункции["SQLite_DB"];
- Таблица = "test";
- Имя = "new_col";
-
- Результат = OPI_SQLite.УдалитьКолонкуТаблицы(Таблица, Имя, База);
-
- // END
-
- Обработать(Результат, "SQLite", "УдалитьКолонкуТаблицы");
-
- Результат = OPI_SQLite.ПолучитьИнформациюОТаблице(Таблица, База);
-
- Обработать(Результат, "SQLite", "УдалитьКолонкуТаблицы", "Проверка");
-
-КонецПроцедуры
-
-Процедура SQLite_ГарантироватьТаблицу(ПараметрыФункции)
-
- База = ПараметрыФункции["SQLite_DB"];
-
- Таблица = "test";
-
- СтруктураКолонок = Новый Структура;
- СтруктураКолонок.Вставить("id" , "INTEGER");
- СтруктураКолонок.Вставить("code" , "INTEGER");
- СтруктураКолонок.Вставить("name" , "TEXT");
- СтруктураКолонок.Вставить("age" , "INTEGER");
- СтруктураКолонок.Вставить("info" , "TEXT");
-
- Результат = OPI_SQLite.ГарантироватьТаблицу(Таблица, СтруктураКолонок, База);
-
- // END
-
- Обработать(Результат, "SQLite", "ГарантироватьТаблицу");
-
- Проверка = OPI_SQLite.ПолучитьИнформациюОТаблице(Таблица, База);
-
- Обработать(Проверка, "SQLite", "ГарантироватьТаблицу", "Проверка", СтруктураКолонок);
-
- Таблица = "test_new";
-
- Результат = OPI_SQLite.ГарантироватьТаблицу(Таблица, СтруктураКолонок, База);
-
- Обработать(Результат, "SQLite", "ГарантироватьТаблицу", "Новая");
-
- Проверка = OPI_SQLite.ПолучитьИнформациюОТаблице(Таблица, База);
-
- Обработать(Проверка, "SQLite", "ГарантироватьТаблицу", "Проверка 2", СтруктураКолонок);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область PostgreSQL
-
-Процедура PostgreSQL_СформироватьСтрокуПодключения(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "postgres";
-
- Результат = OPI_PostgreSQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль);
-
- // END
-
- Результат = СтрЗаменить(Результат, Пароль, "***");
- Результат = СтрЗаменить(Результат, Адрес , "127.0.0.1");
-
- Обработать(Результат, "PostgreSQL", "СформироватьСтрокуПодключения");
-
-КонецПроцедуры
-
-Процедура PostgreSQL_ОткрытьСоединение(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "postgres";
-
- TLS = Истина;
- TLS = ПараметрыФункции["TLS"]; // SKIP
-
- Порт = 5432;
- Порт = ?(TLS, 5433, 5432); // SKIP
-
- СтрокаПодключения = OPI_PostgreSQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль, Порт);
-
- Если TLS Тогда
- НастройкиTLS = OPI_PostgreSQL.ПолучитьНастройкиTLS(Истина);
- Иначе
- НастройкиTLS = Неопределено;
- КонецЕсли;
-
- Результат = OPI_PostgreSQL.ОткрытьСоединение(СтрокаПодключения, НастройкиTLS);
-
- // END
-
- OPI_PostgreSQL.ЗакрытьСоединение(Результат);
-
- Обработать(Результат, "PostgreSQL", "ОткрытьСоединение");
-
-КонецПроцедуры
-
-Процедура PostgreSQL_ЗакрытьСоединение(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "postgres";
-
- TLS = Истина;
- TLS = ПараметрыФункции["TLS"]; // SKIP
-
- Порт = 5432;
- Порт = ?(TLS, 5433, 5432); // SKIP
-
- СтрокаПодключения = OPI_PostgreSQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль, Порт);
-
- Если TLS Тогда
- НастройкиTLS = OPI_PostgreSQL.ПолучитьНастройкиTLS(Истина);
- Иначе
- НастройкиTLS = Неопределено;
- КонецЕсли;
-
- Соединение = OPI_PostgreSQL.ОткрытьСоединение(СтрокаПодключения, НастройкиTLS);
- Результат = OPI_PostgreSQL.ЗакрытьСоединение(Соединение);
-
- // END
-
- Обработать(Результат, "PostgreSQL", "ЗакрытьСоединение");
-
-КонецПроцедуры
-
-Процедура PostgreSQL_ЭтоКоннектор(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "postgres";
-
- TLS = Истина;
- TLS = ПараметрыФункции["TLS"]; // SKIP
-
- Порт = 5432;
- Порт = ?(TLS, 5433, 5432); // SKIP
-
- СтрокаПодключения = OPI_PostgreSQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль, Порт);
-
- Если TLS Тогда
- НастройкиTLS = OPI_PostgreSQL.ПолучитьНастройкиTLS(Истина);
- Иначе
- НастройкиTLS = Неопределено;
- КонецЕсли;
-
- Соединение = OPI_PostgreSQL.ОткрытьСоединение(СтрокаПодключения, НастройкиTLS);
- Результат = OPI_PostgreSQL.ЭтоКоннектор(Соединение);
-
- OPI_PostgreSQL.ЗакрытьСоединение(Результат);
-
- // END
-
- Обработать(Результат, "PostgreSQL", "ЭтоКоннектор");
-
-КонецПроцедуры
-
-Процедура PostgreSQL_ВыполнитьЗапросSQL(ПараметрыФункции)
-
- Картинка = ПараметрыФункции["Picture"];
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка); // Картинка - Тип: ДвоичныеДанные
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "test_data";
-
- TLS = Истина;
- TLS = ПараметрыФункции["TLS"]; // SKIP
-
- Порт = 5432;
- Порт = ?(TLS, 5433, 5432); // SKIP
-
- СтрокаПодключения = OPI_PostgreSQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль, Порт);
-
- Если TLS Тогда
- НастройкиTLS = OPI_PostgreSQL.ПолучитьНастройкиTLS(Истина);
- Иначе
- НастройкиTLS = Неопределено;
- КонецЕсли;
-
- Соединение = OPI_PostgreSQL.ОткрытьСоединение(СтрокаПодключения, НастройкиTLS);
-
- OPI_PostgreSQL.УдалитьТаблицу("users" , Соединение); // SKIP
- OPI_PostgreSQL.УдалитьТаблицу("test_data" , Соединение); // SKIP
- OPI_PostgreSQL.УдалитьТаблицу("test_table", Соединение); // SKIP
-
- Обработать(Соединение, "PostgreSQL", "ВыполнитьЗапросSQL", "Соединение"); // SKIP
-
- // CREATE
-
- ТекстЗапроса = "
- |CREATE TABLE test_table (
- |id SERIAL PRIMARY KEY,
- |name NAME,
- |age INT,
- |salary REAL,
- |is_active BOOL,
- |created_at DATE,
- |data BYTEA
- |);";
-
- Результат = OPI_PostgreSQL.ВыполнитьЗапросSQL(ТекстЗапроса, , , Соединение);
-
- Обработать(Результат, "PostgreSQL", "ВыполнитьЗапросSQL", "Create"); // SKIP
-
- // INSERT с параметрами
-
- ТекстЗапроса = "
- |INSERT INTO test_table (name, age, salary, is_active, created_at, data)
- |VALUES ($1, $2, $3, $4, $5, $6);";
-
- МассивПараметров = Новый Массив;
- МассивПараметров.Добавить(Новый Структура("NAME" , "Vitaly"));
- МассивПараметров.Добавить(Новый Структура("INT" , 25));
- МассивПараметров.Добавить(Новый Структура("REAL" , 1000.12));
- МассивПараметров.Добавить(Новый Структура("BOOL" , Истина));
- МассивПараметров.Добавить(Новый Структура("DATE" , OPI_Инструменты.ПолучитьТекущуюДату()));
- МассивПараметров.Добавить(Новый Структура("BYTEA", Картинка));
-
- Результат = OPI_PostgreSQL.ВыполнитьЗапросSQL(ТекстЗапроса, МассивПараметров, , Соединение);
-
- Обработать(Результат, "PostgreSQL", "ВыполнитьЗапросSQL", "Insert"); // SKIP
-
- // SELECT (Результат этого запроса приведен в следующем блоке)
-
- ТекстЗапроса = "SELECT id, name, age, salary, is_active, created_at, data FROM test_table;";
-
- Результат = OPI_PostgreSQL.ВыполнитьЗапросSQL(ТекстЗапроса, , , Соединение);
-
- Обработать(Результат, "PostgreSQL", "ВыполнитьЗапросSQL", , Картинка); // SKIP
-
- // DO + Транзакция
-
- ТекстЗапроса = "DO $$
- |BEGIN
- | CREATE TABLE users (
- | id SMALLSERIAL,
- | name TEXT NOT NULL,
- | age INT NOT NULL
- | );
- | INSERT INTO users (name, age) VALUES ('Alice', 30);
- | INSERT INTO users (name, age) VALUES ('Bob', 25);
- | INSERT INTO users (name, age) VALUES ('Charlie', 35);
- |END $$ LANGUAGE plpgsql;";
-
- Результат = OPI_PostgreSQL.ВыполнитьЗапросSQL(ТекстЗапроса, , , Соединение);
-
- Обработать(Результат, "PostgreSQL", "ВыполнитьЗапросSQL", "Transaction"); // SKIP
-
- // SQL запрос из файла
-
- ФайлSQL = ПараметрыФункции["SQL"]; // Двоичные данные, URL или путь к файлу
-
- Результат = OPI_PostgreSQL.ВыполнитьЗапросSQL(ФайлSQL, , , Соединение);
-
- Обработать(Результат, "PostgreSQL", "ВыполнитьЗапросSQL", "Файл"); // SKIP
-
- Закрытие = OPI_PostgreSQL.ЗакрытьСоединение(Соединение);
-
- // END
-
- Обработать(Результат, "PostgreSQL", "ВыполнитьЗапросSQL", "Закрытие");
-
-КонецПроцедуры
-
-Процедура PostgreSQL_СоздатьБазуДанных(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "postgres";
-
- TLS = Истина;
- TLS = ПараметрыФункции["TLS"]; // SKIP
-
- Порт = 5432;
- Порт = ?(TLS, 5433, 5432); // SKIP
-
- СтрокаПодключения = OPI_PostgreSQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль, Порт);
-
- Если TLS Тогда
- НастройкиTLS = OPI_PostgreSQL.ПолучитьНастройкиTLS(Истина);
- Иначе
- НастройкиTLS = Неопределено;
- КонецЕсли;
-
- База = "testbase1";
-
- Удаление = OPI_PostgreSQL.УдалитьБазуДанных(База, СтрокаПодключения, НастройкиTLS); // SKIP
- OPI_ПолучениеДанныхТестов.ВывестиСлужебнуюИнформацию(Удаление, "СоздатьБазуДанных (удаление)", "PostgreSQL"); // SKIP
-
- // При использовании строки подключения инициализируется новое соединение,
- // которое будет закрыто после выполнения функции.
- // В случае выполнения нескольких операций желательно использовать одно соединение,
- // заранее созданное функцией ОткрытьСоединение()
- Результат = OPI_PostgreSQL.СоздатьБазуДанных(База, СтрокаПодключения, НастройкиTLS);
-
- // END
-
- Обработать(Результат, "PostgreSQL", "СоздатьБазуДанных");
-
- Подключение = OPI_PostgreSQL.ОткрытьСоединение(СтрокаПодключения, НастройкиTLS);
-
- Обработать(Подключение, "PostgreSQL", "СоздатьБазуДанных", "Открытие");
-
- Результат = OPI_PostgreSQL.СоздатьБазуДанных(База, Подключение);
-
- Обработать(Результат, "PostgreSQL", "СоздатьБазуДанных", "Существующая");
-
- База = "testbase2";
-
- OPI_PostgreSQL.УдалитьБазуДанных(База, СтрокаПодключения, НастройкиTLS);
- Результат = OPI_PostgreSQL.СоздатьБазуДанных(База, Подключение);
-
- Обработать(Результат, "PostgreSQL", "СоздатьБазуДанных", "Новая");
-
- OPI_PostgreSQL.ЗакрытьСоединение(Подключение);
-
-КонецПроцедуры
-
-Процедура PostgreSQL_СоздатьТаблицу(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "testbase1";
-
- TLS = Истина;
- TLS = ПараметрыФункции["TLS"]; // SKIP
-
- Порт = 5432;
- Порт = ?(TLS, 5433, 5432); // SKIP
-
- СтрокаПодключения = OPI_PostgreSQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль, Порт);
-
- Если TLS Тогда
- НастройкиTLS = OPI_PostgreSQL.ПолучитьНастройкиTLS(Истина);
- Иначе
- НастройкиTLS = Неопределено;
- КонецЕсли;
-
- Таблица = "testtable";
-
- СтруктураКолонок = Новый Структура;
- СтруктураКолонок.Вставить("bool_field" , "BOOL");
- СтруктураКолонок.Вставить("oldchar_field" , """char""");
- СтруктураКолонок.Вставить("smallint_field" , "SMALLINT");
- СтруктураКолонок.Вставить("smallserial_field", "SMALLSERIAL");
- СтруктураКолонок.Вставить("int_field" , "INT");
- СтруктураКолонок.Вставить("serial_field" , "SERIAL");
- СтруктураКолонок.Вставить("oid_field" , "OID");
- СтруктураКолонок.Вставить("bigint_field" , "BIGINT");
- СтруктураКолонок.Вставить("bigserial_field" , "BIGSERIAL");
- СтруктураКолонок.Вставить("real_field" , "REAL");
- СтруктураКолонок.Вставить("dp_field" , "DOUBLE PRECISION");
- СтруктураКолонок.Вставить("text_field" , "TEXT");
- СтруктураКолонок.Вставить("varchar_field" , "VARCHAR");
- СтруктураКолонок.Вставить("charn_field" , "CHAR(3)");
- СтруктураКолонок.Вставить("char_field" , "CHAR");
- СтруктураКолонок.Вставить("name_field" , "NAME");
- СтруктураКолонок.Вставить("bytea_field" , "BYTEA");
- СтруктураКолонок.Вставить("ts_field" , "TIMESTAMP");
- СтруктураКолонок.Вставить("tswtz_field" , "TIMESTAMP WITH TIME ZONE");
- СтруктураКолонок.Вставить("ip_field" , "INET");
- СтруктураКолонок.Вставить("json_field" , "JSON");
- СтруктураКолонок.Вставить("jsonb_field" , "JSONB");
- СтруктураКолонок.Вставить("date_field" , "DATE");
- СтруктураКолонок.Вставить("time_field" , "TIME");
- СтруктураКолонок.Вставить("uuid_field" , "UUID");
-
- OPI_PostgreSQL.УдалитьТаблицу(Таблица, СтрокаПодключения, НастройкиTLS); // SKIP
-
- // При использовании строки подключения инициализируется новое соединение,
- // которое будет закрыто после выполнения функции.
- // В случае выполнения нескольких операций желательно использовать одно соединение,
- // заранее созданное функцией ОткрытьСоединение()
- Результат = OPI_PostgreSQL.СоздатьТаблицу(Таблица, СтруктураКолонок, СтрокаПодключения, НастройкиTLS);
-
- // END
-
- Обработать(Результат, "PostgreSQL", "СоздатьТаблицу");
-
- Таблица = "АБВ ГДЕ";
-
- Результат = OPI_PostgreSQL.СоздатьТаблицу(Таблица, СтруктураКолонок, СтрокаПодключения, НастройкиTLS);
-
- Обработать(Результат, "PostgreSQL", "СоздатьТаблицу", "Ошибка имени");
-
- Таблица = "somename";
- СтруктураКолонок.Вставить("wtf_field", "WTF");
-
- Результат = OPI_PostgreSQL.СоздатьТаблицу(Таблица, СтруктураКолонок, СтрокаПодключения, НастройкиTLS);
-
- Обработать(Результат, "PostgreSQL", "СоздатьТаблицу", "Ошибка типа");
-
-КонецПроцедуры
-
-Процедура PostgreSQL_ПолучитьИнформациюОТаблице(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "testbase1";
-
- TLS = Истина;
- TLS = ПараметрыФункции["TLS"]; // SKIP
-
- Порт = 5432;
- Порт = ?(TLS, 5433, 5432); // SKIP
-
- СтрокаПодключения = OPI_PostgreSQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль, Порт);
-
- Если TLS Тогда
- НастройкиTLS = OPI_PostgreSQL.ПолучитьНастройкиTLS(Истина);
- Иначе
- НастройкиTLS = Неопределено;
- КонецЕсли;
-
- Таблица = "testtable";
-
- // При использовании строки подключения инициализируется новое соединение,
- // которое будет закрыто после выполнения функции.
- // В случае выполнения нескольких операций желательно использовать одно соединение,
- // заранее созданное функцией ОткрытьСоединение()
- Результат = OPI_PostgreSQL.ПолучитьИнформациюОТаблице(Таблица, СтрокаПодключения, НастройкиTLS);
-
- // END
-
- Обработать(Результат, "PostgreSQL", "ПолучитьИнформациюОТаблице");
-
- Таблица = "heyho";
-
- Результат = OPI_PostgreSQL.ПолучитьИнформациюОТаблице(Таблица, СтрокаПодключения, НастройкиTLS);
-
- Обработать(Результат, "PostgreSQL", "ПолучитьИнформациюОТаблице", "Ошибка");
-
-КонецПроцедуры
-
-Процедура PostgreSQL_ДобавитьЗаписи(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "testbase1";
-
- TLS = Истина;
- TLS = ПараметрыФункции["TLS"]; // SKIP
-
- Порт = 5432;
- Порт = ?(TLS, 5433, 5432); // SKIP
-
- СтрокаПодключения = OPI_PostgreSQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль, Порт);
-
- Если TLS Тогда
- НастройкиTLS = OPI_PostgreSQL.ПолучитьНастройкиTLS(Истина);
- Иначе
- НастройкиTLS = Неопределено;
- КонецЕсли;
-
- Таблица = "testtable";
- МассивЗаписей = Новый Массив;
-
- Картинка = ПараметрыФункции["Picture"];
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка); // Картинка - Тип: ДвоичныеДанные
-
- СлучайнаяСтруктура = Новый Структура("key,value", "ItsKey", 10);
-
- ТекущаяДата = OPI_Инструменты.ПолучитьТекущуюДату();
- ТекущаяДатаЧП = OPI_Инструменты.ДатаRFC3339(ТекущаяДата, "+05:00");
-
- СтруктураЗаписи = Новый Структура;
- СтруктураЗаписи.Вставить("bool_field" , Новый Структура("BOOL" , Истина));
- СтруктураЗаписи.Вставить("oldchar_field" , Новый Структура("OLDCHAR" , 1)); // или "char"
- СтруктураЗаписи.Вставить("smallint_field" , Новый Структура("SMALLINT" , 5));
- СтруктураЗаписи.Вставить("smallserial_field", Новый Структура("SMALLSERIAL" , 6));
- СтруктураЗаписи.Вставить("int_field" , Новый Структура("INT" , 100));
- СтруктураЗаписи.Вставить("serial_field" , Новый Структура("SERIAL" , 100));
- СтруктураЗаписи.Вставить("oid_field" , Новый Структура("OID" , 24576));
- СтруктураЗаписи.Вставить("bigint_field" , Новый Структура("BIGINT" , 9999999));
- СтруктураЗаписи.Вставить("bigserial_field" , Новый Структура("BIGSERIAL" , 9999999));
- СтруктураЗаписи.Вставить("real_field" , Новый Структура("REAL" , 15.2));
- СтруктураЗаписи.Вставить("dp_field" , Новый Структура("DOUBLE_PRECISION" , 1.0002)); // или DOUBLE PRECISION
- СтруктураЗаписи.Вставить("text_field" , Новый Структура("TEXT" , "Some text"));
- СтруктураЗаписи.Вставить("varchar_field" , Новый Структура("VARCHAR" , "Some varchar"));
- СтруктураЗаписи.Вставить("charn_field" , Новый Структура("CHAR" , "AAA"));
- СтруктураЗаписи.Вставить("char_field" , Новый Структура("CHAR" , "A"));
- СтруктураЗаписи.Вставить("name_field" , Новый Структура("NAME" , "Vitaly"));
- СтруктураЗаписи.Вставить("bytea_field" , Новый Структура("BYTEA" , Картинка));
- СтруктураЗаписи.Вставить("ts_field" , Новый Структура("TIMESTAMP" , ТекущаяДата));
- СтруктураЗаписи.Вставить("tswtz_field" , Новый Структура("TIMESTAMP_WITH_TIME_ZONE", ТекущаяДатаЧП)); // или TIMESTAMP WITH TIME ZONE
- СтруктураЗаписи.Вставить("ip_field" , Новый Структура("INET" , "127.0.0.1"));
- СтруктураЗаписи.Вставить("json_field" , Новый Структура("JSON" , СлучайнаяСтруктура));
- СтруктураЗаписи.Вставить("jsonb_field" , Новый Структура("JSONB" , СлучайнаяСтруктура));
- СтруктураЗаписи.Вставить("date_field" , Новый Структура("DATE" , ТекущаяДата));
- СтруктураЗаписи.Вставить("time_field" , Новый Структура("TIME" , ТекущаяДата));
- СтруктураЗаписи.Вставить("uuid_field" , Новый Структура("UUID" , Новый УникальныйИдентификатор));
-
- МассивЗаписей.Добавить(СтруктураЗаписи);
-
- // При использовании строки подключения инициализируется новое соединение,
- // которое будет закрыто после выполнения функции.
- // В случае выполнения нескольких операций желательно использовать одно соединение,
- // заранее созданное функцией ОткрытьСоединение()
- Результат = OPI_PostgreSQL.ДобавитьЗаписи(Таблица, МассивЗаписей, Истина, СтрокаПодключения, НастройкиTLS);
-
- // END
-
- Обработать(Результат, "PostgreSQL", "ДобавитьЗаписи");
-
-КонецПроцедуры
-
-Процедура PostgreSQL_ПолучитьЗаписи(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "testbase1";
-
- TLS = Истина;
- TLS = ПараметрыФункции["TLS"]; // SKIP
-
- Порт = 5432;
- Порт = ?(TLS, 5433, 5432); // SKIP
-
- СтрокаПодключения = OPI_PostgreSQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль, Порт);
-
- Если TLS Тогда
- НастройкиTLS = OPI_PostgreSQL.ПолучитьНастройкиTLS(Истина);
- Иначе
- НастройкиTLS = Неопределено;
- КонецЕсли;
-
- // Все записи без отборов
-
- Таблица = "testtable";
-
- // При использовании строки подключения инициализируется новое соединение,
- // которое будет закрыто после выполнения функции.
- // В случае выполнения нескольких операций желательно использовать одно соединение,
- // заранее созданное функцией ОткрытьСоединение()
- Результат = OPI_PostgreSQL.ПолучитьЗаписи(Таблица, , , , , СтрокаПодключения, НастройкиTLS);
-
- Обработать(Результат, "PostgreSQL", "ПолучитьЗаписи"); // SKIP
-
- // Отборы, выбранные поля, количество и сортировка
-
- СтрокаПодключения = OPI_PostgreSQL.СформироватьСтрокуПодключения(Адрес, "test_data", Логин, Пароль, Порт);
-
- Таблица = "test_data";
-
- Поля = Новый Массив;
- Поля.Добавить("first_name");
- Поля.Добавить("last_name");
- Поля.Добавить("email");
-
- Фильтры = Новый Массив;
-
- СтруктураФильтра1 = Новый Структура;
-
- СтруктураФильтра1.Вставить("field", "gender");
- СтруктураФильтра1.Вставить("type" , "=");
- СтруктураФильтра1.Вставить("value", "Male");
- СтруктураФильтра1.Вставить("union", "AND");
- СтруктураФильтра1.Вставить("raw" , Ложь);
-
- СтруктураФильтра2 = Новый Структура;
-
- СтруктураФильтра2.Вставить("field", "id");
- СтруктураФильтра2.Вставить("type" , "BETWEEN");
- СтруктураФильтра2.Вставить("value", "20 AND 50");
- СтруктураФильтра2.Вставить("raw" , Истина);
-
- Фильтры.Добавить(СтруктураФильтра1);
- Фильтры.Добавить(СтруктураФильтра2);
-
- Сортировка = Новый Структура("ip_address", "DESC");
- Количество = 5;
-
- Результат = OPI_PostgreSQL.ПолучитьЗаписи(Таблица
- , Поля
- , Фильтры
- , Сортировка
- , Количество
- , СтрокаПодключения
- , НастройкиTLS);
-
- // END
-
- Обработать(Результат, "PostgreSQL", "ПолучитьЗаписи", "Отборы");
-
-КонецПроцедуры
-
-Процедура PostgreSQL_ОбновитьЗаписи(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "test_data";
-
- TLS = Истина;
- TLS = ПараметрыФункции["TLS"]; // SKIP
-
- Порт = 5432;
- Порт = ?(TLS, 5433, 5432); // SKIP
-
- СтрокаПодключения = OPI_PostgreSQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль, Порт);
-
- Если TLS Тогда
- НастройкиTLS = OPI_PostgreSQL.ПолучитьНастройкиTLS(Истина);
- Иначе
- НастройкиTLS = Неопределено;
- КонецЕсли;
-
- Таблица = "test_data";
-
- СтруктураПолей = Новый Структура;
- СтруктураПолей.Вставить("ip_address", Новый Структура("VARCHAR", "127.0.0.1"));
-
- Фильтры = Новый Массив;
-
- СтруктураФильтра = Новый Структура;
-
- СтруктураФильтра.Вставить("field", "gender");
- СтруктураФильтра.Вставить("type" , "=");
- СтруктураФильтра.Вставить("value", Новый Структура("VARCHAR", "Male"));
- СтруктураФильтра.Вставить("raw" , Ложь);
-
- Фильтры.Добавить(СтруктураФильтра);
-
- Количество = OPI_PostgreSQl.ПолучитьЗаписи(Таблица, , Фильтры, , , СтрокаПодключения); // SKIP
- Обработать(Количество, "PostgreSQL", "ОбновитьЗаписи", "Количество"); // SKIP
- Количество = Количество["data"].Количество(); // SKIP
-
- // При использовании строки подключения инициализируется новое соединение,
- // которое будет закрыто после выполнения функции.
- // В случае выполнения нескольких операций желательно использовать одно соединение,
- // заранее созданное функцией ОткрытьСоединение()
- Результат = OPI_PostgreSQl.ОбновитьЗаписи(Таблица
- , СтруктураПолей
- , СтруктураФильтра
- , СтрокаПодключения
- , НастройкиTLS);
-
- // END
-
- Обработать(Результат, "PostgreSQL", "ОбновитьЗаписи");
-
- Проверка = OPI_PostgreSQl.ПолучитьЗаписи(Таблица, "['ip_address']", Фильтры, , , СтрокаПодключения);
-
- Обработать(Проверка, "PostgreSQL", "ОбновитьЗаписи", "Проверка", Количество, СтруктураПолей);
-
-КонецПроцедуры
-
-Процедура PostgreSQL_УдалитьЗаписи(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "test_data";
-
- TLS = Истина;
- TLS = ПараметрыФункции["TLS"]; // SKIP
-
- Порт = 5432;
- Порт = ?(TLS, 5433, 5432); // SKIP
-
- СтрокаПодключения = OPI_PostgreSQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль, Порт);
-
- Если TLS Тогда
- НастройкиTLS = OPI_PostgreSQL.ПолучитьНастройкиTLS(Истина);
- Иначе
- НастройкиTLS = Неопределено;
- КонецЕсли;
-
- Таблица = "test_data";
-
- Фильтры = Новый Массив;
-
- СтруктураФильтра = Новый Структура;
-
- СтруктураФильтра.Вставить("field", "gender");
- СтруктураФильтра.Вставить("type" , "=");
- СтруктураФильтра.Вставить("value", Новый Структура("VARCHAR", "Male"));
- СтруктураФильтра.Вставить("raw" , Ложь);
- СтруктураФильтра.Вставить("union", "AND");
-
- Фильтры.Добавить(СтруктураФильтра);
-
- СтруктураФильтра = Новый Структура;
-
- СтруктураФильтра.Вставить("field", "ip_address");
- СтруктураФильтра.Вставить("type" , "=");
- СтруктураФильтра.Вставить("value", Новый Структура("VARCHAR", "127.0.0.1"));
- СтруктураФильтра.Вставить("raw" , Ложь);
-
- Получение = OPI_PostgreSQL.ПолучитьЗаписи(Таблица, , Фильтры, , , СтрокаПодключения, НастройкиTLS); // SKIP
-
- // При использовании строки подключения инициализируется новое соединение,
- // которое будет закрыто после выполнения функции.
- // В случае выполнения нескольких операций желательно использовать одно соединение,
- // заранее созданное функцией ОткрытьСоединение()
- Результат = OPI_PostgreSQL.УдалитьЗаписи(Таблица, Фильтры, СтрокаПодключения, НастройкиTLS);
-
- // END
-
- Обработать(Получение, "PostgreSQL", "УдалитьЗаписи", "Получение");
-
- Количество = Получение["data"].Количество();
- Остаток = 100 - Количество;
-
- Обработать(Результат, "PostgreSQL", "УдалитьЗаписи");
-
- Результат = OPI_PostgreSQL.ПолучитьЗаписи(Таблица, , , , , СтрокаПодключения, НастройкиTLS);
-
- Обработать(Результат, "PostgreSQL", "УдалитьЗаписи", "Проверка", Остаток);
-
-КонецПроцедуры
-
-Процедура PostgreSQL_УдалитьТаблицу(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "testbase1";
-
- TLS = Истина;
- TLS = ПараметрыФункции["TLS"]; // SKIP
-
- Порт = 5432;
- Порт = ?(TLS, 5433, 5432); // SKIP
-
- СтрокаПодключения = OPI_PostgreSQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль, Порт);
-
- Если TLS Тогда
- НастройкиTLS = OPI_PostgreSQL.ПолучитьНастройкиTLS(Истина);
- Иначе
- НастройкиTLS = Неопределено;
- КонецЕсли;
-
- Таблица = "testtable";
-
- // При использовании строки подключения инициализируется новое соединение,
- // которое будет закрыто после выполнения функции.
- // В случае выполнения нескольких операций желательно использовать одно соединение,
- // заранее созданное функцией ОткрытьСоединение()
- Результат = OPI_PostgreSQL.УдалитьТаблицу(Таблица, СтрокаПодключения, НастройкиTLS);
-
- // END
-
- Обработать(Результат, "PostgreSQL", "УдалитьТаблицу");
-
- База = "test_data";
- Таблица = "test_data";
-
- СтрокаПодключения = OPI_PostgreSQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль, Порт);
- Результат = OPI_PostgreSQL.УдалитьТаблицу(Таблица, СтрокаПодключения, НастройкиTLS);
-
- Обработать(Результат, "PostgreSQL", "УдалитьТаблицу", "Тест");
-
-КонецПроцедуры
-
-Процедура PostgreSQL_УдалитьБазуДанных(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "postgres";
-
- TLS = Истина;
- TLS = ПараметрыФункции["TLS"]; // SKIP
-
- Порт = 5432;
- Порт = ?(TLS, 5433, 5432); // SKIP
-
- СтрокаПодключения = OPI_PostgreSQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль, Порт);
-
- Если TLS Тогда
- НастройкиTLS = OPI_PostgreSQL.ПолучитьНастройкиTLS(Истина);
- Иначе
- НастройкиTLS = Неопределено;
- КонецЕсли;
-
- База = "testbase1";
-
- // При использовании строки подключения инициализируется новое соединение,
- // которое будет закрыто после выполнения функции.
- // В случае выполнения нескольких операций желательно использовать одно соединение,
- // заранее созданное функцией ОткрытьСоединение()
- Результат = OPI_PostgreSQL.УдалитьБазуДанных(База, СтрокаПодключения, НастройкиTLS);
-
- // END
-
- Обработать(Результат, "PostgreSQL", "УдалитьБазуДанных");
-
- База = "testbase2";
-
- Подключение = OPI_PostgreSQL.ОткрытьСоединение(СтрокаПодключения, НастройкиTLS);
-
- Обработать(Подключение, "PostgreSQL", "УдалитьБазуДанных", "Открытие");
-
- Результат = OPI_PostgreSQL.ОтключитьВсеСоединенияБазыДанных(База, Подключение);
-
- Обработать(Результат, "PostgreSQL", "УдалитьБазуДанных", "Отключение");
-
- Результат = OPI_PostgreSQL.УдалитьБазуДанных(База, Подключение);
-
- Обработать(Результат, "PostgreSQL", "УдалитьБазуДанных", "Удаление");
-
- Результат = OPI_PostgreSQL.УдалитьБазуДанных(База, Подключение);
-
- Обработать(Результат, "PostgreSQL", "УдалитьБазуДанных", "Ошибка");
-
- Закрытие = OPI_PostgreSQL.ЗакрытьСоединение(Подключение);
-
- Обработать(Закрытие, "PostgreSQL", "УдалитьБазуДанных", "Закрытие");
-
- Результат = OPI_PostgreSQL.УдалитьБазуДанных(База, Подключение);
-
- Обработать(Результат, "PostgreSQL", "УдалитьБазуДанных", "Ошибка подключения");
-
-КонецПроцедуры
-
-Процедура PostgreSQL_ОчиститьТаблицу(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "testbase1";
-
- TLS = Истина;
- TLS = ПараметрыФункции["TLS"]; // SKIP
-
- Порт = 5432;
- Порт = ?(TLS, 5433, 5432); // SKIP
-
- СтрокаПодключения = OPI_PostgreSQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль, Порт);
-
- Если TLS Тогда
- НастройкиTLS = OPI_PostgreSQL.ПолучитьНастройкиTLS(Истина);
- Иначе
- НастройкиTLS = Неопределено;
- КонецЕсли;
-
- Таблица = "testtable";
-
- // При использовании строки подключения инициализируется новое соединение,
- // которое будет закрыто после выполнения функции.
- // В случае выполнения нескольких операций желательно использовать одно соединение,
- // заранее созданное функцией ОткрытьСоединение()
- Результат = OPI_PostgreSQL.ОчиститьТаблицу(Таблица, СтрокаПодключения, НастройкиTLS);
-
- // END
-
- Обработать(Результат, "PostgreSQL", "ОчиститьТаблицу");
-
- Результат = OPI_PostgreSQL.ПолучитьЗаписи(Таблица, , , , , СтрокаПодключения, НастройкиTLS);
-
- Обработать(Результат, "PostgreSQL", "ОчиститьТаблицу", "Проверка");
-
-КонецПроцедуры
-
-Процедура PostgreSQL_ОтключитьВсеСоединенияБазыДанных(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "testbase1";
-
- TLS = Истина;
- TLS = ПараметрыФункции["TLS"]; // SKIP
-
- Порт = 5432;
- Порт = ?(TLS, 5433, 5432); // SKIP
-
- СтрокаПодключения = OPI_PostgreSQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль, Порт);
-
- Если TLS Тогда
- НастройкиTLS = OPI_PostgreSQL.ПолучитьНастройкиTLS(Истина);
- Иначе
- НастройкиTLS = Неопределено;
- КонецЕсли;
-
- // При использовании строки подключения инициализируется новое соединение,
- // которое будет закрыто после выполнения функции.
- // В случае выполнения нескольких операций желательно использовать одно соединение,
- // заранее созданное функцией ОткрытьСоединение()
- Результат = OPI_PostgreSQL.ОтключитьВсеСоединенияБазыДанных(База, СтрокаПодключения, НастройкиTLS);
-
- // END
-
- Обработать(Результат, "PostgreSQL", "ОтключитьВсеСоединенияБазыДанных");
-
-КонецПроцедуры
-
-Процедура PostgreSQL_ПолучитьСтруктуруФильтраЗаписей(ПараметрыФункции)
-
- Результат = OPI_PostgreSQL.ПолучитьСтруктуруФильтраЗаписей();
-
- // END
-
- Обработать(Результат, "PostgreSQL", "ПолучитьСтруктуруФильтраЗаписей");
-
- Результат = OPI_PostgreSQL.ПолучитьСтруктуруФильтраЗаписей(Истина);
-
- Обработать(Результат, "PostgreSQL", "ПолучитьСтруктуруФильтраЗаписей", "Пустая");
-
-КонецПроцедуры
-
-Процедура PostgreSQL_ПолучитьНастройкиTLS(ПараметрыФункции)
-
- Результат = OPI_PostgreSQL.ПолучитьНастройкиTLS(Истина);
-
- // END
-
- Обработать(Результат, "PostgreSQL", "ПолучитьНастройкиTLS");
-
-КонецПроцедуры
-
-Процедура PostgreSQL_ДобавитьКолонкуТаблицы(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "testbase1";
-
- TLS = Истина;
- TLS = ПараметрыФункции["TLS"]; // SKIP
-
- Порт = 5432;
- Порт = ?(TLS, 5433, 5432); // SKIP
-
- СтрокаПодключения = OPI_PostgreSQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль, Порт);
-
- Если TLS Тогда
- НастройкиTLS = OPI_PostgreSQL.ПолучитьНастройкиTLS(Истина);
- Иначе
- НастройкиTLS = Неопределено;
- КонецЕсли;
-
- Таблица = "testtable";
- Имя = "new_field";
- ТипДанных = "TEXT";
-
- Результат = OPI_PostgreSQL.ДобавитьКолонкуТаблицы(Таблица, Имя, ТипДанных, СтрокаПодключения, НастройкиTLS);
-
- // END
-
- Обработать(Результат, "PostgreSQL", "ДобавитьКолонкуТаблицы");
-
- Результат = OPI_PostgreSQL.ПолучитьИнформациюОТаблице(Таблица, СтрокаПодключения, НастройкиTLS);
-
- Обработать(Результат, "PostgreSQL", "ДобавитьКолонкуТаблицы", "Проверка");
-
-КонецПроцедуры
-
-Процедура PostgreSQL_УдалитьКолонкуТаблицы(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "testbase1";
-
- TLS = Истина;
- TLS = ПараметрыФункции["TLS"]; // SKIP
-
- Порт = 5432;
- Порт = ?(TLS, 5433, 5432); // SKIP
-
- СтрокаПодключения = OPI_PostgreSQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль, Порт);
-
- Если TLS Тогда
- НастройкиTLS = OPI_PostgreSQL.ПолучитьНастройкиTLS(Истина);
- Иначе
- НастройкиTLS = Неопределено;
- КонецЕсли;
-
- Таблица = "testtable";
- Имя = "new_field";
-
- Результат = OPI_PostgreSQL.УдалитьКолонкуТаблицы(Таблица, Имя, СтрокаПодключения, НастройкиTLS);
-
- // END
-
- Обработать(Результат, "PostgreSQL", "УдалитьКолонкуТаблицы");
-
- Результат = OPI_PostgreSQL.ПолучитьИнформациюОТаблице(Таблица, СтрокаПодключения, НастройкиTLS);
-
- Обработать(Результат, "PostgreSQL", "УдалитьКолонкуТаблицы", "Проверка");
-
-КонецПроцедуры
-
-Процедура PostgreSQL_ГарантироватьТаблицу(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "testbase1";
-
- TLS = Истина;
- TLS = ПараметрыФункции["TLS"]; // SKIP
-
- Порт = 5432;
- Порт = ?(TLS, 5433, 5432); // SKIP
-
- СтрокаПодключения = OPI_PostgreSQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль, Порт);
-
- Если TLS Тогда
- НастройкиTLS = OPI_PostgreSQL.ПолучитьНастройкиTLS(Истина);
- Иначе
- НастройкиTLS = Неопределено;
- КонецЕсли;
-
- Таблица = "testtable";
-
- СтруктураКолонок = Новый Структура;
- СтруктураКолонок.Вставить("smallint_field" , "SMALLINT");
- СтруктураКолонок.Вставить("uuid_field" , "uuid");
- СтруктураКолонок.Вставить("bigint_field" , "BIGINT");
- СтруктураКолонок.Вставить("custom_field" , "TEXT");
-
- Результат = OPI_PostgreSQL.ГарантироватьТаблицу(Таблица, СтруктураКолонок, СтрокаПодключения, НастройкиTLS);
-
- // END
-
- Обработать(Результат, "PostgreSQL", "ГарантироватьТаблицу");
-
- Проверка = OPI_PostgreSQL.ПолучитьИнформациюОТаблице(Таблица, СтрокаПодключения, НастройкиTLS);
-
- Обработать(Проверка, "PostgreSQL", "ГарантироватьТаблицу", "Проверка", СтруктураКолонок);
-
- Таблица = "test_new";
-
- Результат = OPI_PostgreSQL.ГарантироватьТаблицу(Таблица, СтруктураКолонок, СтрокаПодключения, НастройкиTLS);
-
- Обработать(Результат, "PostgreSQL", "ГарантироватьТаблицу", "Новая");
-
- Проверка = OPI_PostgreSQL.ПолучитьИнформациюОТаблице(Таблица, СтрокаПодключения, НастройкиTLS);
-
- Обработать(Проверка, "PostgreSQL", "ГарантироватьТаблицу", "Проверка", СтруктураКолонок);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область MySQL
-
-Процедура MySQL_СформироватьСтрокуПодключения(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "";
-
- Результат = OPI_MySQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль);
-
- // END
-
- Результат = СтрЗаменить(Результат, Пароль, "***");
- Результат = СтрЗаменить(Результат, Адрес , "127.0.0.1");
-
- Обработать(Результат, "MySQL", "СформироватьСтрокуПодключения");
-
-КонецПроцедуры
-
-Процедура MySQL_ОткрытьСоединение(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "";
-
- TLS = Истина;
- TLS = ПараметрыФункции["TLS"]; // SKIP
-
- Порт = 3306;
- Порт = ?(TLS, 3307, 3306); // SKIP
-
- СтрокаПодключения = OPI_MySQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль, Порт);
-
- Если TLS Тогда
- НастройкиTLS = OPI_MySQL.ПолучитьНастройкиTLS(Истина);
- Иначе
- НастройкиTLS = Неопределено;
- КонецЕсли;
-
- Результат = OPI_MySQL.ОткрытьСоединение(СтрокаПодключения, НастройкиTLS);
-
- // END
-
- OPI_MySQL.ЗакрытьСоединение(Результат);
- Обработать(Результат, "MySQL", "ОткрытьСоединение");
-
-КонецПроцедуры
-
-Процедура MySQL_ЗакрытьСоединение(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "";
-
- TLS = Истина;
- TLS = ПараметрыФункции["TLS"]; // SKIP
-
- Порт = 3306;
- Порт = ?(TLS, 3307, 3306); // SKIP
-
- СтрокаПодключения = OPI_MySQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль, Порт);
-
- Если TLS Тогда
- НастройкиTLS = OPI_MySQL.ПолучитьНастройкиTLS(Истина);
- Иначе
- НастройкиTLS = Неопределено;
- КонецЕсли;
-
- Соединение = OPI_MySQL.ОткрытьСоединение(СтрокаПодключения, НастройкиTLS);
- Результат = OPI_MySQL.ЗакрытьСоединение(Соединение);
-
- // END
-
- Обработать(Результат, "MySQL", "ЗакрытьСоединение");
-
-КонецПроцедуры
-
-Процедура MySQL_ЭтоКоннектор(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "";
-
- TLS = Истина;
- TLS = ПараметрыФункции["TLS"]; // SKIP
-
- Порт = 3306;
- Порт = ?(TLS, 3307, 3306); // SKIP
-
- СтрокаПодключения = OPI_MySQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль, Порт);
-
- Если TLS Тогда
- НастройкиTLS = OPI_MySQL.ПолучитьНастройкиTLS(Истина);
- Иначе
- НастройкиTLS = Неопределено;
- КонецЕсли;
-
- Соединение = OPI_MySQL.ОткрытьСоединение(СтрокаПодключения, НастройкиTLS);
- Результат = OPI_MySQL.ЭтоКоннектор(Соединение);
-
- OPI_MySQL.ЗакрытьСоединение(Результат);
-
- // END
-
- Обработать(Результат, "MySQL", "ЭтоКоннектор");
-
-КонецПроцедуры
-
-Процедура MySQL_ВыполнитьЗапросSQL(ПараметрыФункции)
-
- Картинка = ПараметрыФункции["Picture"];
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка); // Картинка - Тип: ДвоичныеДанные
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "test_data";
-
- TLS = Истина;
- TLS = ПараметрыФункции["TLS"]; // SKIP
-
- Порт = 3306;
- Порт = ?(TLS, 3307, 3306); // SKIP
-
- СтрокаПодключения = OPI_MySQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль, Порт);
-
- Если TLS Тогда
- НастройкиTLS = OPI_MySQL.ПолучитьНастройкиTLS(Истина);
- Иначе
- НастройкиTLS = Неопределено;
- КонецЕсли;
-
- Соединение = OPI_MySQL.ОткрытьСоединение(СтрокаПодключения, НастройкиTLS);
-
- OPI_MySQL.УдалитьТаблицу("users" , Соединение); // SKIP
- OPI_MySQL.УдалитьТаблицу("test_data" , Соединение); // SKIP
- OPI_MySQL.УдалитьТаблицу("test_table", Соединение); // SKIP
-
- Обработать(Соединение, "MySQL", "ВыполнитьЗапросSQL", "Соединение"); // SKIP
-
- // CREATE
-
- ТекстЗапроса = "
- |CREATE TABLE test_table (
- |id INT AUTO_INCREMENT PRIMARY KEY,
- |name VARCHAR(255),
- |age INT,
- |salary DOUBLE,
- |amount FLOAT,
- |type TINYINT UNSIGNED,
- |date DATE,
- |time TIME,
- |data MEDIUMBLOB
- |);";
-
- Результат = OPI_MySQL.ВыполнитьЗапросSQL(ТекстЗапроса, , , Соединение);
-
- Обработать(Результат, "MySQL", "ВыполнитьЗапросSQL", "Create"); // SKIP
-
- // INSERT с параметрами
-
- ТекстЗапроса = "
- |INSERT INTO test_table (name, age, salary, amount, type, date, time, data)
- |VALUES (?, ?, ?, ?, ?, ?, ?, ?);";
-
- МассивПараметров = Новый Массив;
- МассивПараметров.Добавить(Новый Структура("TEXT" , "Vitaly"));
- МассивПараметров.Добавить(Новый Структура("INT" , 25));
- МассивПараметров.Добавить(Новый Структура("DOUBLE", 1000.12));
- МассивПараметров.Добавить(Новый Структура("FLOAT" , 1000.12));
- МассивПараметров.Добавить(Новый Структура("UINT" , 1));
- МассивПараметров.Добавить(Новый Структура("DATE" , OPI_Инструменты.ПолучитьТекущуюДату()));
- МассивПараметров.Добавить(Новый Структура("TIME" , OPI_Инструменты.ПолучитьТекущуюДату()));
- МассивПараметров.Добавить(Новый Структура("BYTES" , Картинка));
-
- Результат = OPI_MySQL.ВыполнитьЗапросSQL(ТекстЗапроса, МассивПараметров, , Соединение);
-
- Обработать(Результат, "MySQL", "ВыполнитьЗапросSQL", "Insert"); // SKIP
-
- // SELECT (Результат этого запроса приведен в следующем блоке)
-
- ТекстЗапроса = "SELECT name, age, salary, amount, type, date, time, data FROM test_table;";
-
- Результат = OPI_MySQL.ВыполнитьЗапросSQL(ТекстЗапроса, , , Соединение);
-
- Обработать(Результат, "MySQL", "ВыполнитьЗапросSQL", , Картинка); // SKIP
-
- Результат = OPI_MySQL.ВыполнитьЗапросSQL("create table test_data (id INT,first_name VARCHAR(50),last_name VARCHAR(50),email VARCHAR(50),gender VARCHAR(50),ip_address VARCHAR(20));", , , Соединение); // SKIP
- Обработать(Результат, "MySQL", "ВыполнитьЗапросSQL", "Test data"); // SKIP
-
- // SQL запрос из файла
-
- ФайлSQL = ПараметрыФункции["SQL2"]; // Двоичные данные, URL или путь к файлу
-
- Результат = OPI_MySQL.ВыполнитьЗапросSQL(ФайлSQL, , , Соединение);
-
- Обработать(Результат, "MySQL", "ВыполнитьЗапросSQL", "Файл"); // SKIP
-
- Закрытие = OPI_MySQL.ЗакрытьСоединение(Соединение);
-
- // END
-
- Обработать(Закрытие, "MySQL", "ВыполнитьЗапросSQL", "Закрытие"); // SKIP
-
-КонецПроцедуры
-
-Процедура MySQL_СоздатьБазуДанных(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "";
-
- TLS = Истина;
- TLS = ПараметрыФункции["TLS"]; // SKIP
-
- Порт = 3306;
- Порт = ?(TLS, 3307, 3306); // SKIP
-
- СтрокаПодключения = OPI_MySQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль, Порт);
-
- Если TLS Тогда
- НастройкиTLS = OPI_MySQL.ПолучитьНастройкиTLS(Истина);
- Иначе
- НастройкиTLS = Неопределено;
- КонецЕсли;
-
- База = "testbase1";
-
- OPI_MySQL.УдалитьБазуДанных(База, СтрокаПодключения, НастройкиTLS); // SKIP
-
- // При использовании строки подключения инициализируется новое соединение,
- // которое будет закрыто после выполнения функции.
- // В случае выполнения нескольких операций желательно использовать одно соединение,
- // заранее созданное функцией ОткрытьСоединение()
- Результат = OPI_MySQL.СоздатьБазуДанных(База, СтрокаПодключения, НастройкиTLS);
-
- // END
-
- Обработать(Результат, "MySQL", "СоздатьБазуДанных");
-
- База = "testbase2";
- OPI_MySQL.УдалитьБазуДанных(База, СтрокаПодключения, НастройкиTLS);
-
- Подключение = OPI_MySQL.ОткрытьСоединение(СтрокаПодключения, НастройкиTLS);
-
- Обработать(Подключение, "MySQL", "СоздатьБазуДанных", "Открытие");
-
- Результат = OPI_MySQL.СоздатьБазуДанных(База, Подключение, НастройкиTLS);
-
- Обработать(Результат, "MySQL", "СоздатьБазуДанных", "Создание");
-
- Результат = OPI_MySQL.СоздатьБазуДанных(База, Подключение, НастройкиTLS);
-
- Обработать(Результат, "MySQL", "СоздатьБазуДанных", "Существующая");
-
- OPI_MySQL.ЗакрытьСоединение(Подключение);
-
-КонецПроцедуры
-
-Процедура MySQL_СоздатьТаблицу(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "testbase1";
-
- TLS = Истина;
- TLS = ПараметрыФункции["TLS"]; // SKIP
-
- Порт = 3306;
- Порт = ?(TLS, 3307, 3306); // SKIP
-
- СтрокаПодключения = OPI_MySQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль, Порт);
-
- Если TLS Тогда
- НастройкиTLS = OPI_MySQL.ПолучитьНастройкиTLS(Истина);
- Иначе
- НастройкиTLS = Неопределено;
- КонецЕсли;
-
- Таблица = "testtable";
-
- СтруктураКолонок = Новый Структура;
- СтруктураКолонок.Вставить("char_field" , "CHAR(5)");
- СтруктураКолонок.Вставить("varchar_field" , "VARCHAR(255)");
- СтруктураКолонок.Вставить("tinytext_field" , "TINYTEXT");
- СтруктураКолонок.Вставить("text_field" , "TEXT");
- СтруктураКолонок.Вставить("mediumtext_field", "MEDIUMTEXT");
- СтруктураКолонок.Вставить("longtext_field" , "LONGTEXT");
- СтруктураКолонок.Вставить("tinyint_field" , "TINYINT");
- СтруктураКолонок.Вставить("smallint_field" , "SMALLINT");
- СтруктураКолонок.Вставить("mediumint_field" , "MEDIUMINT");
- СтруктураКолонок.Вставить("int_field" , "INT");
- СтруктураКолонок.Вставить("uint_field" , "INT UNSIGNED");
- СтруктураКолонок.Вставить("bigint_field" , "BIGINT");
- СтруктураКолонок.Вставить("float_field" , "FLOAT");
- СтруктураКолонок.Вставить("double_field" , "DOUBLE");
- СтруктураКолонок.Вставить("date_field" , "DATE");
- СтруктураКолонок.Вставить("time_field" , "TIME");
- СтруктураКолонок.Вставить("datetime_field" , "DATETIME");
- СтруктураКолонок.Вставить("timestamp_field" , "TIMESTAMP");
- СтруктураКолонок.Вставить("mediumblob_field", "MEDIUMBLOB");
- СтруктураКолонок.Вставить("set_field" , "SET('one','two','three')");
-
- // При использовании строки подключения инициализируется новое соединение,
- // которое будет закрыто после выполнения функции.
- // В случае выполнения нескольких операций желательно использовать одно соединение,
- // заранее созданное функцией ОткрытьСоединение()
- Результат = OPI_MySQL.СоздатьТаблицу(Таблица, СтруктураКолонок, СтрокаПодключения, НастройкиTLS);
-
- // END
-
- Обработать(Результат, "MySQL", "СоздатьТаблицу");
-
- Таблица = "АБВ ГДЕ";
-
- Результат = OPI_MySQL.СоздатьТаблицу(Таблица, СтруктураКолонок, СтрокаПодключения, НастройкиTLS);
-
- Обработать(Результат, "MySQL", "СоздатьТаблицу", "Ошибка имени");
-
- Таблица = "somename";
- СтруктураКолонок.Вставить("wtf_field", "WTF");
-
- Результат = OPI_MySQL.СоздатьТаблицу(Таблица, СтруктураКолонок, СтрокаПодключения, НастройкиTLS);
-
- Обработать(Результат, "MySQL", "СоздатьТаблицу", "Ошибка типа");
-
-КонецПроцедуры
-
-Процедура MySQL_ДобавитьЗаписи(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "testbase1";
-
- TLS = Истина;
- TLS = ПараметрыФункции["TLS"]; // SKIP
-
- Порт = 3306;
- Порт = ?(TLS, 3307, 3306); // SKIP
-
- СтрокаПодключения = OPI_MySQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль, Порт);
-
- Если TLS Тогда
- НастройкиTLS = OPI_MySQL.ПолучитьНастройкиTLS(Истина);
- Иначе
- НастройкиTLS = Неопределено;
- КонецЕсли;
-
- Таблица = "testtable";
- МассивЗаписей = Новый Массив;
-
- Картинка = ПараметрыФункции["Picture"];
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка); // Картинка - Тип: ДвоичныеДанные
-
- ТекущаяДата = OPI_Инструменты.ПолучитьТекущуюДату();
-
- СтруктураЗаписи = Новый Структура;
- СтруктураЗаписи.Вставить("char_field" , Новый Структура("TEXT" , "AAAAA"));
- СтруктураЗаписи.Вставить("varchar_field" , Новый Структура("TEXT" , "Some varchar"));
- СтруктураЗаписи.Вставить("tinytext_field" , Новый Структура("TEXT" , "Some tiny text"));
- СтруктураЗаписи.Вставить("text_field" , Новый Структура("TEXT" , "Some text"));
- СтруктураЗаписи.Вставить("mediumtext_field", Новый Структура("TEXT" , "Some medium text"));
- СтруктураЗаписи.Вставить("longtext_field" , Новый Структура("TEXT" , "Some looooooong text"));
- СтруктураЗаписи.Вставить("tinyint_field" , Новый Структура("INT" , 127));
- СтруктураЗаписи.Вставить("smallint_field" , Новый Структура("INT" , -32767));
- СтруктураЗаписи.Вставить("mediumint_field" , Новый Структура("INT" , 8388607));
- СтруктураЗаписи.Вставить("int_field" , Новый Структура("INT" , -2147483647));
- СтруктураЗаписи.Вставить("uint_field" , Новый Структура("UINT" , 4294967295));
- СтруктураЗаписи.Вставить("bigint_field" , Новый Структура("INT" , 9223372036854775807));
- СтруктураЗаписи.Вставить("float_field" , Новый Структура("FLOAT" , 100.50));
- СтруктураЗаписи.Вставить("double_field" , Новый Структура("FLOAT" , 100.512123));
- СтруктураЗаписи.Вставить("date_field" , Новый Структура("DATE" , ТекущаяДата));
- СтруктураЗаписи.Вставить("time_field" , Новый Структура("TIME" , ТекущаяДата));
- СтруктураЗаписи.Вставить("datetime_field" , Новый Структура("DATE" , ТекущаяДата));
- СтруктураЗаписи.Вставить("timestamp_field" , Новый Структура("DATE" , ТекущаяДата));
- СтруктураЗаписи.Вставить("mediumblob_field", Новый Структура("BYTES" , Картинка));
- СтруктураЗаписи.Вставить("set_field" , Новый Структура("TEXT" , "one"));
-
- МассивЗаписей.Добавить(СтруктураЗаписи);
-
- // При использовании строки подключения инициализируется новое соединение,
- // которое будет закрыто после выполнения функции.
- // В случае выполнения нескольких операций желательно использовать одно соединение,
- // заранее созданное функцией ОткрытьСоединение()
- Результат = OPI_MySQL.ДобавитьЗаписи(Таблица, МассивЗаписей, Истина, СтрокаПодключения, НастройкиTLS);
-
- // END
-
- Обработать(Результат, "MySQL", "ДобавитьЗаписи");
-
-КонецПроцедуры
-
-Процедура MySQL_ПолучитьЗаписи(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "testbase1";
-
- TLS = Истина;
- TLS = ПараметрыФункции["TLS"]; // SKIP
-
- Порт = 3306;
- Порт = ?(TLS, 3307, 3306); // SKIP
-
- СтрокаПодключения = OPI_MySQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль, Порт);
-
- Если TLS Тогда
- НастройкиTLS = OPI_MySQL.ПолучитьНастройкиTLS(Истина);
- Иначе
- НастройкиTLS = Неопределено;
- КонецЕсли;
-
- // Все записи без отборов
-
- Таблица = "testtable";
-
- // При использовании строки подключения инициализируется новое соединение,
- // которое будет закрыто после выполнения функции.
- // В случае выполнения нескольких операций желательно использовать одно соединение,
- // заранее созданное функцией ОткрытьСоединение()
- Результат = OPI_MySQL.ПолучитьЗаписи(Таблица, , , , , СтрокаПодключения, НастройкиTLS);
-
- Обработать(Результат, "MySQL", "ПолучитьЗаписи"); // SKIP
-
- // Отборы, выбранные поля, количество и сортировка
-
- СтрокаПодключения = OPI_MySQL.СформироватьСтрокуПодключения(Адрес, "test_data", Логин, Пароль, Порт);
-
- Таблица = "test_data";
-
- Поля = Новый Массив;
- Поля.Добавить("first_name");
- Поля.Добавить("last_name");
- Поля.Добавить("email");
-
- Фильтры = Новый Массив;
-
- СтруктураФильтра1 = Новый Структура;
-
- СтруктураФильтра1.Вставить("field", "gender");
- СтруктураФильтра1.Вставить("type" , "=");
- СтруктураФильтра1.Вставить("value", "Male");
- СтруктураФильтра1.Вставить("union", "AND");
- СтруктураФильтра1.Вставить("raw" , Ложь);
-
- СтруктураФильтра2 = Новый Структура;
-
- СтруктураФильтра2.Вставить("field", "id");
- СтруктураФильтра2.Вставить("type" , "BETWEEN");
- СтруктураФильтра2.Вставить("value", "20 AND 50");
- СтруктураФильтра2.Вставить("raw" , Истина);
-
- Фильтры.Добавить(СтруктураФильтра1);
- Фильтры.Добавить(СтруктураФильтра2);
-
- Сортировка = Новый Структура("ip_address", "DESC");
- Количество = 5;
-
- Результат = OPI_MySQL.ПолучитьЗаписи(Таблица, Поля, Фильтры, Сортировка, Количество, СтрокаПодключения, НастройкиTLS);
-
- // END
-
- Обработать(Результат, "MySQL", "ПолучитьЗаписи", "Отборы");
-
-КонецПроцедуры
-
-Процедура MySQL_ОбновитьЗаписи(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "test_data";
-
- TLS = Истина;
- TLS = ПараметрыФункции["TLS"]; // SKIP
-
- Порт = 3306;
- Порт = ?(TLS, 3307, 3306); // SKIP
-
- СтрокаПодключения = OPI_MySQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль, Порт);
-
- Если TLS Тогда
- НастройкиTLS = OPI_MySQL.ПолучитьНастройкиTLS(Истина);
- Иначе
- НастройкиTLS = Неопределено;
- КонецЕсли;
-
- Таблица = "test_data";
-
- СтруктураПолей = Новый Структура;
- СтруктураПолей.Вставить("ip_address", Новый Структура("VARCHAR", "127.0.0.1"));
-
- Фильтры = Новый Массив;
-
- СтруктураФильтра = Новый Структура;
-
- СтруктураФильтра.Вставить("field", "gender");
- СтруктураФильтра.Вставить("type" , "=");
- СтруктураФильтра.Вставить("value", Новый Структура("VARCHAR", "Male"));
- СтруктураФильтра.Вставить("raw" , Ложь);
-
- Фильтры.Добавить(СтруктураФильтра);
-
- Количество = OPI_MySQL.ПолучитьЗаписи(Таблица, , Фильтры, , , СтрокаПодключения, НастройкиTLS); // SKIP
- Обработать(Количество, "MySQL", "ОбновитьЗаписи", "Количество"); // SKIP
- Количество = Количество["data"].Количество(); // SKIP
-
- // При использовании строки подключения инициализируется новое соединение,
- // которое будет закрыто после выполнения функции.
- // В случае выполнения нескольких операций желательно использовать одно соединение,
- // заранее созданное функцией ОткрытьСоединение()
- Результат = OPI_MySQL.ОбновитьЗаписи(Таблица, СтруктураПолей, СтруктураФильтра, СтрокаПодключения, НастройкиTLS);
-
- // END
-
- Обработать(Результат, "MySQL", "ОбновитьЗаписи");
-
- Проверка = OPI_MySQL.ПолучитьЗаписи(Таблица, "['ip_address']", Фильтры, , , СтрокаПодключения, НастройкиTLS);
-
- Обработать(Проверка, "MySQL", "ОбновитьЗаписи", "Проверка", Количество, СтруктураПолей);
-
-КонецПроцедуры
-
-Процедура MySQL_УдалитьЗаписи(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "test_data";
-
- TLS = Истина;
- TLS = ПараметрыФункции["TLS"]; // SKIP
-
- Порт = 3306;
- Порт = ?(TLS, 3307, 3306); // SKIP
-
- СтрокаПодключения = OPI_MySQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль, Порт);
-
- Если TLS Тогда
- НастройкиTLS = OPI_MySQL.ПолучитьНастройкиTLS(Истина);
- Иначе
- НастройкиTLS = Неопределено;
- КонецЕсли;
-
- Таблица = "test_data";
-
- Фильтры = Новый Массив;
-
- СтруктураФильтра = Новый Структура;
-
- СтруктураФильтра.Вставить("field", "gender");
- СтруктураФильтра.Вставить("type" , "=");
- СтруктураФильтра.Вставить("value", Новый Структура("VARCHAR", "Male"));
- СтруктураФильтра.Вставить("raw" , Ложь);
- СтруктураФильтра.Вставить("union", "AND");
-
- Фильтры.Добавить(СтруктураФильтра);
-
- СтруктураФильтра = Новый Структура;
-
- СтруктураФильтра.Вставить("field", "ip_address");
- СтруктураФильтра.Вставить("type" , "=");
- СтруктураФильтра.Вставить("value", Новый Структура("VARCHAR", "127.0.0.1"));
- СтруктураФильтра.Вставить("raw" , Ложь);
-
- Получение = OPI_MySQL.ПолучитьЗаписи(Таблица, , Фильтры, , , СтрокаПодключения, НастройкиTLS); // SKIP
-
- // При использовании строки подключения инициализируется новое соединение,
- // которое будет закрыто после выполнения функции.
- // В случае выполнения нескольких операций желательно использовать одно соединение,
- // заранее созданное функцией ОткрытьСоединение()
- Результат = OPI_MySQL.УдалитьЗаписи(Таблица, Фильтры, СтрокаПодключения, НастройкиTLS);
-
- // END
-
- Обработать(Получение, "MySQL", "УдалитьЗаписи", "Получение");
-
- Количество = Получение["data"].Количество();
- Остаток = 100 - Количество;
-
- Обработать(Результат, "MySQL", "УдалитьЗаписи");
-
- Результат = OPI_MySQL.ПолучитьЗаписи(Таблица, , , , , СтрокаПодключения, НастройкиTLS);
-
- Обработать(Результат, "MySQL", "УдалитьЗаписи", "Проверка", Остаток);
-
-КонецПроцедуры
-
-Процедура MySQL_УдалитьТаблицу(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "testbase1";
-
- TLS = Истина;
- TLS = ПараметрыФункции["TLS"]; // SKIP
-
- Порт = 3306;
- Порт = ?(TLS, 3307, 3306); // SKIP
-
- СтрокаПодключения = OPI_MySQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль, Порт);
-
- Если TLS Тогда
- НастройкиTLS = OPI_MySQL.ПолучитьНастройкиTLS(Истина);
- Иначе
- НастройкиTLS = Неопределено;
- КонецЕсли;
-
- Таблица = "testtable";
-
- // При использовании строки подключения инициализируется новое соединение,
- // которое будет закрыто после выполнения функции.
- // В случае выполнения нескольких операций желательно использовать одно соединение,
- // заранее созданное функцией ОткрытьСоединение()
- Результат = OPI_MySQL.УдалитьТаблицу(Таблица, СтрокаПодключения, НастройкиTLS);
-
- // END
-
- Обработать(Результат, "MySQL", "УдалитьТаблицу");
-
- База = "test_data";
- Таблица = "test_data";
-
- СтрокаПодключения = OPI_MySQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль, Порт);
- Результат = OPI_MySQL.УдалитьТаблицу(Таблица, СтрокаПодключения, НастройкиTLS);
-
- Обработать(Результат, "MySQL", "УдалитьТаблицу", "Тест");
-
-КонецПроцедуры
-
-Процедура MySQL_УдалитьБазуДанных(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "";
-
- TLS = Истина;
- TLS = ПараметрыФункции["TLS"]; // SKIP
-
- Порт = 3306;
- Порт = ?(TLS, 3307, 3306); // SKIP
-
- СтрокаПодключения = OPI_MySQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль, Порт);
-
- Если TLS Тогда
- НастройкиTLS = OPI_MySQL.ПолучитьНастройкиTLS(Истина);
- Иначе
- НастройкиTLS = Неопределено;
- КонецЕсли;
-
- База = "testbase1";
-
- // При использовании строки подключения инициализируется новое соединение,
- // которое будет закрыто после выполнения функции.
- // В случае выполнения нескольких операций желательно использовать одно соединение,
- // заранее созданное функцией ОткрытьСоединение()
- Результат = OPI_MySQL.УдалитьБазуДанных(База, СтрокаПодключения, НастройкиTLS);
-
- // END
-
- Обработать(Результат, "MySQL", "УдалитьБазуДанных");
-
- База = "testbase2";
-
- Подключение = OPI_MySQL.ОткрытьСоединение(СтрокаПодключения, НастройкиTLS);
-
- Обработать(Подключение, "MySQL", "УдалитьБазуДанных", "Открытие");
-
- Результат = OPI_MySQL.УдалитьБазуДанных(База, Подключение);
-
- Обработать(Результат, "MySQL", "УдалитьБазуДанных", "Удаление");
-
- Результат = OPI_MySQL.УдалитьБазуДанных(База, Подключение);
-
- Обработать(Результат, "MySQL", "УдалитьБазуДанных", "Ошибка");
-
- Закрытие = OPI_MySQL.ЗакрытьСоединение(Подключение);
-
- Обработать(Закрытие, "MySQL", "УдалитьБазуДанных", "Закрытие");
-
- Результат = OPI_MySQL.УдалитьБазуДанных(База, Подключение);
-
- Обработать(Результат, "MySQL", "УдалитьБазуДанных", "Ошибка подключения");
-
-КонецПроцедуры
-
-Процедура MySQL_ОчиститьТаблицу(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "testbase1";
-
- TLS = Истина;
- TLS = ПараметрыФункции["TLS"]; // SKIP
-
- Порт = 3306;
- Порт = ?(TLS, 3307, 3306); // SKIP
-
- СтрокаПодключения = OPI_MySQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль, Порт);
-
- Если TLS Тогда
- НастройкиTLS = OPI_MySQL.ПолучитьНастройкиTLS(Истина);
- Иначе
- НастройкиTLS = Неопределено;
- КонецЕсли;
-
- Таблица = "testtable";
-
- // При использовании строки подключения инициализируется новое соединение,
- // которое будет закрыто после выполнения функции.
- // В случае выполнения нескольких операций желательно использовать одно соединение,
- // заранее созданное функцией ОткрытьСоединение()
- Результат = OPI_MySQL.ОчиститьТаблицу(Таблица, СтрокаПодключения, НастройкиTLS);
-
- // END
-
- Обработать(Результат, "MySQL", "ОчиститьТаблицу");
-
- Результат = OPI_MySQL.ПолучитьЗаписи(Таблица, , , , , СтрокаПодключения, НастройкиTLS);
-
- Обработать(Результат, "MySQL", "ОчиститьТаблицу", "Проверка");
-
-КонецПроцедуры
-
-Процедура MySQL_ПолучитьСтруктуруФильтраЗаписей(ПараметрыФункции)
-
- Результат = OPI_MySQL.ПолучитьСтруктуруФильтраЗаписей();
-
- // END
-
- Обработать(Результат, "MySQL", "ПолучитьСтруктуруФильтраЗаписей");
-
- Результат = OPI_MySQL.ПолучитьСтруктуруФильтраЗаписей(Истина);
-
- Обработать(Результат, "MySQL", "ПолучитьСтруктуруФильтраЗаписей", "Пустая");
-
-КонецПроцедуры
-
-Процедура MySQL_ПолучитьНастройкиTLS(ПараметрыФункции)
-
- Результат = OPI_MySQL.ПолучитьНастройкиTLS(Истина);
-
- // END
-
- Обработать(Результат, "MySQL", "ПолучитьНастройкиTLS");
-
-КонецПроцедуры
-
-Процедура MySQL_ПолучитьИнформациюОТаблице(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "testbase1";
-
- TLS = Истина;
- TLS = ПараметрыФункции["TLS"]; // SKIP
-
- Порт = 3306;
- Порт = ?(TLS, 3307, 3306); // SKIP
-
- СтрокаПодключения = OPI_MySQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль, Порт);
-
- Если TLS Тогда
- НастройкиTLS = OPI_MySQL.ПолучитьНастройкиTLS(Истина);
- Иначе
- НастройкиTLS = Неопределено;
- КонецЕсли;
-
- Таблица = "testtable";
-
- // При использовании строки подключения инициализируется новое соединение,
- // которое будет закрыто после выполнения функции.
- // В случае выполнения нескольких операций желательно использовать одно соединение,
- // заранее созданное функцией ОткрытьСоединение()
- Результат = OPI_MySQL.ПолучитьИнформациюОТаблице(Таблица, СтрокаПодключения, НастройкиTLS);
-
- // END
-
- Обработать(Результат, "MySQL", "ПолучитьИнформациюОТаблице");
-
- Таблица = "heyho";
-
- Результат = OPI_MySQL.ПолучитьИнформациюОТаблице(Таблица, СтрокаПодключения, НастройкиTLS);
-
- Обработать(Результат, "MySQL", "ПолучитьИнформациюОТаблице", "Ошибка");
-
-КонецПроцедуры
-
-Процедура MySQL_ДобавитьКолонкуТаблицы(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "testbase1";
-
- TLS = Истина;
- TLS = ПараметрыФункции["TLS"]; // SKIP
-
- Порт = 3306;
- Порт = ?(TLS, 3307, 3306); // SKIP
-
- СтрокаПодключения = OPI_MySQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль, Порт);
-
- Если TLS Тогда
- НастройкиTLS = OPI_MySQL.ПолучитьНастройкиTLS(Истина);
- Иначе
- НастройкиTLS = Неопределено;
- КонецЕсли;
-
- Таблица = "testtable";
- Имя = "new_field";
- ТипДанных = "MEDIUMTEXT";
-
- // При использовании строки подключения инициализируется новое соединение,
- // которое будет закрыто после выполнения функции.
- // В случае выполнения нескольких операций желательно использовать одно соединение,
- // заранее созданное функцией ОткрытьСоединение()
- Результат = OPI_MySQL.ДобавитьКолонкуТаблицы(Таблица, Имя, ТипДанных, СтрокаПодключения, НастройкиTLS);
-
- // END
-
- Обработать(Результат, "MySQL", "ДобавитьКолонкуТаблицы");
-
- Результат = OPI_MySQL.ПолучитьИнформациюОТаблице(Таблица, СтрокаПодключения, НастройкиTLS);
-
- Обработать(Результат, "MySQL", "ДобавитьКолонкуТаблицы", "Проверка");
-
-КонецПроцедуры
-
-Процедура MySQL_УдалитьКолонкуТаблицы(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "testbase1";
-
- TLS = Истина;
- TLS = ПараметрыФункции["TLS"]; // SKIP
-
- Порт = 3306;
- Порт = ?(TLS, 3307, 3306); // SKIP
-
- СтрокаПодключения = OPI_MySQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль, Порт);
-
- Если TLS Тогда
- НастройкиTLS = OPI_MySQL.ПолучитьНастройкиTLS(Истина);
- Иначе
- НастройкиTLS = Неопределено;
- КонецЕсли;
-
- Таблица = "testtable";
- Имя = "new_field";
-
- // При использовании строки подключения инициализируется новое соединение,
- // которое будет закрыто после выполнения функции.
- // В случае выполнения нескольких операций желательно использовать одно соединение,
- // заранее созданное функцией ОткрытьСоединение()
- Результат = OPI_MySQL.УдалитьКолонкуТаблицы(Таблица, Имя, СтрокаПодключения, НастройкиTLS);
-
- // END
-
- Обработать(Результат, "MySQL", "УдалитьКолонкуТаблицы");
-
- Результат = OPI_MySQL.ПолучитьИнформациюОТаблице(Таблица, СтрокаПодключения, НастройкиTLS);
-
- Обработать(Результат, "MySQL", "УдалитьКолонкуТаблицы", "Проверка");
-
-КонецПроцедуры
-
-Процедура MySQL_ГарантироватьТаблицу(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "testbase1";
-
- TLS = Истина;
- TLS = ПараметрыФункции["TLS"]; // SKIP
-
- Порт = 3306;
- Порт = ?(TLS, 3307, 3306); // SKIP
-
- СтрокаПодключения = OPI_MySQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль, Порт);
-
- Если TLS Тогда
- НастройкиTLS = OPI_MySQL.ПолучитьНастройкиTLS(Истина);
- Иначе
- НастройкиTLS = Неопределено;
- КонецЕсли;
-
- Таблица = "testtable";
-
- СтруктураКолонок = Новый Структура;
- СтруктураКолонок.Вставить("smallint_field" , "SMALLINT");
- СтруктураКолонок.Вставить("double_field" , "DOUBLE");
- СтруктураКолонок.Вставить("bigint_field" , "BIGINT");
- СтруктураКолонок.Вставить("custom_field" , "TEXT");
-
- // При использовании строки подключения инициализируется новое соединение,
- // которое будет закрыто после выполнения функции.
- // В случае выполнения нескольких операций желательно использовать одно соединение,
- // заранее созданное функцией ОткрытьСоединение()
- Результат = OPI_MySQL.ГарантироватьТаблицу(Таблица, СтруктураКолонок, СтрокаПодключения, НастройкиTLS);
-
- // END
-
- Обработать(Результат, "MySQL", "ГарантироватьТаблицу");
-
- Проверка = OPI_MySQL.ПолучитьИнформациюОТаблице(Таблица, СтрокаПодключения, НастройкиTLS);
-
- Обработать(Проверка, "MySQL", "ГарантироватьТаблицу", "Проверка", СтруктураКолонок);
-
- Таблица = "test_new";
-
- Результат = OPI_MySQL.ГарантироватьТаблицу(Таблица, СтруктураКолонок, СтрокаПодключения, НастройкиTLS);
-
- Обработать(Результат, "MySQL", "ГарантироватьТаблицу", "Новая");
-
- Проверка = OPI_MySQL.ПолучитьИнформациюОТаблице(Таблица, СтрокаПодключения, НастройкиTLS);
-
- Обработать(Проверка, "MySQL", "ГарантироватьТаблицу", "Проверка", СтруктураКолонок);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область GreenAPI
-
-Процедура GreenAPI_СформироватьПараметрыДоступа(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- Результат = OPI_GreenAPI.СформироватьПараметрыДоступа(ApiUrl, MediaUrl, IdInstance, ApiTokenInstance);
-
- // END
-
- Обработать(Результат, "GreenAPI", "СформироватьПараметрыДоступа");
-
-КонецПроцедуры
-
-Процедура GreenAPI_ПолучитьНастройкиИнстанса(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- ПараметрыДоступа = OPI_GreenAPI.СформироватьПараметрыДоступа(ApiUrl, MediaUrl, IdInstance, ApiTokenInstance);
- Результат = OPI_GreenAPI.ПолучитьНастройкиИнстанса(ПараметрыДоступа);
-
- // END
-
- Обработать(Результат, "GreenAPI", "ПолучитьНастройкиИнстанса", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура GreenAPI_ПолучитьИнформациюОбАккаунте(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- ПараметрыДоступа = OPI_GreenAPI.СформироватьПараметрыДоступа(ApiUrl, MediaUrl, IdInstance, ApiTokenInstance);
- Результат = OPI_GreenAPI.ПолучитьИнформациюОбАккаунте(ПараметрыДоступа);
-
- // END
-
- Обработать(Результат, "GreenAPI", "ПолучитьИнформациюОбАккаунте");
-
-КонецПроцедуры
-
-Процедура GreenAPI_ПолучитьСтруктуруНастроекИнстанса(ПараметрыФункции)
-
- Результат = OPI_GreenAPI.ПолучитьСтруктуруНастроекИнстанса();
-
- // END
-
- Обработать(Результат, "GreenAPI", "ПолучитьСтруктуруНастроекИнстанса");
-
- Результат = OPI_GreenAPI.ПолучитьСтруктуруНастроекИнстанса(Истина);
-
- Обработать(Результат, "GreenAPI", "ПолучитьСтруктуруНастроекИнстанса", "Пустая");
-
-КонецПроцедуры
-
-Процедура GreenAPI_УстановитьНастройкиИнстанса(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- ПараметрыДоступа = OPI_GreenAPI.СформироватьПараметрыДоступа(ApiUrl, MediaUrl, IdInstance, ApiTokenInstance);
-
- СтруктураНастроек = Новый Структура;
- СтруктураНастроек.Вставить("pollMessageWebhook" , "yes");
- СтруктураНастроек.Вставить("incomingBlockWebhook" , "no");
- СтруктураНастроек.Вставить("incomingCallWebhook" , "no");
- СтруктураНастроек.Вставить("editedMessageWebhook" , "yes");
- СтруктураНастроек.Вставить("deletedMessageWebhook" , "yes");
- СтруктураНастроек.Вставить("outgoingAPIMessageWebhook", "yes");
-
- Результат = OPI_GreenAPI.УстановитьНастройкиИнстанса(СтруктураНастроек, ПараметрыДоступа);
-
- // END
-
- Обработать(Результат, "GreenAPI", "УстановитьНастройкиИнстанса");
-
-КонецПроцедуры
-
-Процедура GreenAPI_ПолучитьСостояниеИнстанса(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- ПараметрыДоступа = OPI_GreenAPI.СформироватьПараметрыДоступа(ApiUrl, MediaUrl, IdInstance, ApiTokenInstance);
- Результат = OPI_GreenAPI.ПолучитьСостояниеИнстанса(ПараметрыДоступа);
-
- // END
-
- Обработать(Результат, "GreenAPI", "ПолучитьСостояниеИнстанса");
-
-КонецПроцедуры
-
-Процедура GreenAPI_ПерезапуститьИнстанс(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- ПараметрыДоступа = OPI_GreenAPI.СформироватьПараметрыДоступа(ApiUrl, MediaUrl, IdInstance, ApiTokenInstance);
- Результат = OPI_GreenAPI.ПерезапуститьИнстанс(ПараметрыДоступа);
-
- // END
-
- Обработать(Результат, "GreenAPI", "ПерезапуститьИнстанс");
-
-КонецПроцедуры
-
-Процедура GreenAPI_ПолучитьQR(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- ПараметрыДоступа = OPI_GreenAPI.СформироватьПараметрыДоступа(ApiUrl, MediaUrl, IdInstance, ApiTokenInstance);
- Результат = OPI_GreenAPI.ПолучитьQR(ПараметрыДоступа);
-
- // END
-
- Обработать(Результат, "GreenAPI", "ПолучитьQR");
-
-КонецПроцедуры
-
-Процедура GreenAPI_РазлогинитьИнстанс(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- ПараметрыДоступа = OPI_GreenAPI.СформироватьПараметрыДоступа(ApiUrl, MediaUrl, IdInstance, ApiTokenInstance);
- Результат = OPI_GreenAPI.РазлогинитьИнстанс(ПараметрыДоступа);
-
- // END
-
- Обработать(Результат, "GreenAPI", "РазлогинитьИнстанс");
-
-КонецПроцедуры
-
-Процедура GreenAPI_ПолучитьКодАвторизации(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- НомерТелефона = 441234567890;
-
- ПараметрыДоступа = OPI_GreenAPI.СформироватьПараметрыДоступа(ApiUrl, MediaUrl, IdInstance, ApiTokenInstance);
- Результат = OPI_GreenAPI.ПолучитьКодАвторизации(ПараметрыДоступа, НомерТелефона);
-
- // END
-
- Обработать(Результат, "GreenAPI", "ПолучитьКодАвторизации");
-
-КонецПроцедуры
-
-Процедура GreenAPI_УстановитьКартинкуПрофиля(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- Картинка = ПараметрыФункции["Picture"]; // URL, Путь или Двоичные данные
-
- ПараметрыДоступа = OPI_GreenAPI.СформироватьПараметрыДоступа(ApiUrl, MediaUrl, IdInstance, ApiTokenInstance);
- Результат = OPI_GreenAPI.УстановитьКартинкуПрофиля(ПараметрыДоступа, Картинка);
-
- // END
-
- Обработать(Результат, "GreenAPI", "УстановитьКартинкуПрофиля");
-
-КонецПроцедуры
-
-Процедура GreenAPI_СоздатьГруппу(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- Имя = "New group";
-
- ПараметрыДоступа = OPI_GreenAPI.СформироватьПараметрыДоступа(ApiUrl, MediaUrl, IdInstance, ApiTokenInstance);
- Результат = OPI_GreenAPI.СоздатьГруппу(ПараметрыДоступа, Имя);
-
- // END
-
- Обработать(Результат, "GreenAPI", "СоздатьГруппу", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура GreenAPI_ПокинутьГруппу(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- IDГруппы = ПараметрыФункции["GreenAPI_GroupID"];
-
- ПараметрыДоступа = OPI_GreenAPI.СформироватьПараметрыДоступа(ApiUrl, MediaUrl, IdInstance, ApiTokenInstance);
- Результат = OPI_GreenAPI.ПокинутьГруппу(ПараметрыДоступа, IDГруппы);
-
- // END
-
- Обработать(Результат, "GreenAPI", "ПокинутьГруппу");
-
-КонецПроцедуры
-
-Процедура GreenAPI_ПолучитьИнформациюОГруппе(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- IDГруппы = ПараметрыФункции["GreenAPI_GroupID"];
-
- ПараметрыДоступа = OPI_GreenAPI.СформироватьПараметрыДоступа(ApiUrl, MediaUrl, IdInstance, ApiTokenInstance);
- Результат = OPI_GreenAPI.ПолучитьИнформациюОГруппе(ПараметрыДоступа, IDГруппы);
-
- // END
-
- Обработать(Результат, "GreenAPI", "ПолучитьИнформациюОГруппе");
-
-КонецПроцедуры
-
-Процедура GreenAPI_ИзменитьИмяГруппы(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- IDГруппы = ПараметрыФункции["GreenAPI_GroupID"];
- Имя = "New name";
-
- ПараметрыДоступа = OPI_GreenAPI.СформироватьПараметрыДоступа(ApiUrl, MediaUrl, IdInstance, ApiTokenInstance);
- Результат = OPI_GreenAPI.ИзменитьИмяГруппы(ПараметрыДоступа, IDГруппы, Имя);
-
- // END
-
- Обработать(Результат, "GreenAPI", "ИзменитьИмяГруппы");
-
-КонецПроцедуры
-
-Процедура GreenAPI_ДобавитьУчастникаВГруппу(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- IDГруппы = ПараметрыФункции["GreenAPI_GroupID"];
- IDПользователя = "123123123@c.us";
-
- ПараметрыДоступа = OPI_GreenAPI.СформироватьПараметрыДоступа(ApiUrl, MediaUrl, IdInstance, ApiTokenInstance);
- Результат = OPI_GreenAPI.ДобавитьУчастникаВГруппу(ПараметрыДоступа, IDГруппы, IDПользователя);
-
- // END
-
- Обработать(Результат, "GreenAPI", "ДобавитьУчастникаВГруппу");
-
-КонецПроцедуры
-
-Процедура GreenAPI_ИсключитьУчастникаГруппы(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- IDГруппы = ПараметрыФункции["GreenAPI_GroupID"];
- IDПользователя = "123123123@c.us";
-
- ПараметрыДоступа = OPI_GreenAPI.СформироватьПараметрыДоступа(ApiUrl, MediaUrl, IdInstance, ApiTokenInstance);
- Результат = OPI_GreenAPI.ИсключитьУчастникаГруппы(ПараметрыДоступа, IDГруппы, IDПользователя);
-
- // END
-
- Обработать(Результат, "GreenAPI", "ИсключитьУчастникаГруппы");
-
-КонецПроцедуры
-
-Процедура GreenAPI_НазначитьПраваАдминистратора(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- IDГруппы = ПараметрыФункции["GreenAPI_GroupID"];
- IDПользователя = "123123123@c.us";
-
- ПараметрыДоступа = OPI_GreenAPI.СформироватьПараметрыДоступа(ApiUrl, MediaUrl, IdInstance, ApiTokenInstance);
- Результат = OPI_GreenAPI.НазначитьПраваАдминистратора(ПараметрыДоступа, IDГруппы, IDПользователя);
-
- // END
-
- Обработать(Результат, "GreenAPI", "НазначитьПраваАдминистратора");
-
-КонецПроцедуры
-
-Процедура GreenAPI_ОтозватьПраваАдминистратора(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- IDГруппы = ПараметрыФункции["GreenAPI_GroupID"];
- IDПользователя = "123123123@c.us";
-
- ПараметрыДоступа = OPI_GreenAPI.СформироватьПараметрыДоступа(ApiUrl, MediaUrl, IdInstance, ApiTokenInstance);
- Результат = OPI_GreenAPI.ОтозватьПраваАдминистратора(ПараметрыДоступа, IDГруппы, IDПользователя);
-
- // END
-
- Обработать(Результат, "GreenAPI", "ОтозватьПраваАдминистратора");
-
-КонецПроцедуры
-
-Процедура GreenAPI_УстановитьКартинкуГруппы(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- Картинка = ПараметрыФункции["Picture"]; // URL, Путь или Двоичные данные
- IDГруппы = ПараметрыФункции["GreenAPI_GroupID"];
-
- ПараметрыДоступа = OPI_GreenAPI.СформироватьПараметрыДоступа(ApiUrl, MediaUrl, IdInstance, ApiTokenInstance);
- Результат = OPI_GreenAPI.УстановитьКартинкуГруппы(ПараметрыДоступа, IDГруппы, Картинка);
-
- // END
-
- Обработать(Результат, "GreenAPI", "УстановитьКартинкуГруппы");
-
-КонецПроцедуры
-
-Процедура GreenAPI_ОтправитьТекстовоеСообщение(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- IDЧата = ПараметрыФункции["GreenAPI_TestGroupID"];
- Текст = "Новое сообщение";
-
- ПараметрыДоступа = OPI_GreenAPI.СформироватьПараметрыДоступа(ApiUrl, MediaUrl, IdInstance, ApiTokenInstance);
- Результат = OPI_GreenAPI.ОтправитьТекстовоеСообщение(ПараметрыДоступа, IDЧата, Текст);
-
- // END
-
- Обработать(Результат, "GreenAPI", "ОтправитьТекстовоеСообщение", , ПараметрыФункции);
-
- IDСообщения = Результат["idMessage"];
- Результат = OPI_GreenAPI.ОтправитьТекстовоеСообщение(ПараметрыДоступа, IDЧата, Текст, IDСообщения);
-
- Обработать(Результат, "GreenAPI", "ОтправитьТекстовоеСообщение", "Цитата");
-
-КонецПроцедуры
-
-Процедура GreenAPI_УдалитьСообщение(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- IDЧата = ПараметрыФункции["GreenAPI_TestGroupID"];
- IDСообщения = ПараметрыФункции["GreenAPI_MessageID"];
-
- ПараметрыДоступа = OPI_GreenAPI.СформироватьПараметрыДоступа(ApiUrl, MediaUrl, IdInstance, ApiTokenInstance);
- Результат = OPI_GreenAPI.УдалитьСообщение(ПараметрыДоступа, IDЧата, IDСообщения);
-
- // END
-
- Обработать(Результат, "GreenAPI", "УдалитьСообщение");
-
-КонецПроцедуры
-
-Процедура GreenAPI_ИзменитьТекстСообщения(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- IDЧата = ПараметрыФункции["GreenAPI_TestGroupID"];
- IDСообщения = ПараметрыФункции["GreenAPI_MessageID"];
- Текст = "Новый текст сообщения";
-
- ПараметрыДоступа = OPI_GreenAPI.СформироватьПараметрыДоступа(ApiUrl, MediaUrl, IdInstance, ApiTokenInstance);
- Результат = OPI_GreenAPI.ИзменитьТекстСообщения(ПараметрыДоступа, IDЧата, IDСообщения, Текст);
-
- // END
-
- Обработать(Результат, "GreenAPI", "ИзменитьТекстСообщения");
-
-КонецПроцедуры
-
-Процедура GreenAPI_ОтправитьФайл(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- Файл = ПараметрыФункции["Picture"]; // URL, Путь или Двоичные данные
- ИмяФайла = "photo.jpg";
- IDЧата = ПараметрыФункции["GreenAPI_TestGroupID"];
- Описание = "Описание файла";
-
- ПараметрыДоступа = OPI_GreenAPI.СформироватьПараметрыДоступа(ApiUrl, MediaUrl, IdInstance, ApiTokenInstance);
- Результат = OPI_GreenAPI.ОтправитьФайл(ПараметрыДоступа, IDЧата, Файл, ИмяФайла, Описание);
-
- // END
-
- Обработать(Результат, "GreenAPI", "ОтправитьФайл", , ПараметрыФункции);
-
- Файл = ПараметрыФункции["Video"];
- ИмяФайла = "vid.mp4";
-
- IDСообщения = Результат["idMessage"];
- Результат = OPI_GreenAPI.ОтправитьФайл(ПараметрыДоступа, IDЧата, Файл, ИмяФайла, Описание, IDСообщения);
-
- Обработать(Результат, "GreenAPI", "ОтправитьФайл", "Цитата");
-
-КонецПроцедуры
-
-Процедура GreenAPI_ОтправитьФайлПоURL(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- Файл = ПараметрыФункции["Picture"];
- ИмяФайла = "photo.jpg";
- IDЧата = ПараметрыФункции["GreenAPI_TestGroupID"];
- Описание = "Описание файла";
-
- ПараметрыДоступа = OPI_GreenAPI.СформироватьПараметрыДоступа(ApiUrl, MediaUrl, IdInstance, ApiTokenInstance);
- Результат = OPI_GreenAPI.ОтправитьФайлПоURL(ПараметрыДоступа, IDЧата, Файл, ИмяФайла, Описание);
-
- // END
-
- Обработать(Результат, "GreenAPI", "ОтправитьФайлПоURL", , ПараметрыФункции);
-
- Файл = ПараметрыФункции["Video"];
- ИмяФайла = "vid.mp4";
-
- IDСообщения = Результат["idMessage"];
- Результат = OPI_GreenAPI.ОтправитьФайлПоURL(ПараметрыДоступа, IDЧата, Файл, ИмяФайла, Описание, IDСообщения);
-
- Обработать(Результат, "GreenAPI", "ОтправитьФайлПоURL", "Цитата");
-
-КонецПроцедуры
-
-Процедура GreenAPI_ОтправитьОпрос(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- IDЧата = ПараметрыФункции["GreenAPI_TestGroupID"];
- Текст = "Какой ваш любимый цвет?";
-
- Варианты = Новый Массив;
- Варианты.Добавить("Красный");
- Варианты.Добавить("Желтый");
- Варианты.Добавить("Зеленый");
-
- ПараметрыДоступа = OPI_GreenAPI.СформироватьПараметрыДоступа(ApiUrl, MediaUrl, IdInstance, ApiTokenInstance);
- Результат = OPI_GreenAPI.ОтправитьОпрос(ПараметрыДоступа, IDЧата, Текст, Варианты);
-
- // END
-
- Обработать(Результат, "GreenAPI", "ОтправитьОпрос", , ПараметрыФункции);
-
- IDСообщения = Результат["idMessage"];
- Результат = OPI_GreenAPI.ОтправитьОпрос(ПараметрыДоступа, IDЧата, Текст, Варианты, Истина, IDСообщения);
-
- Обработать(Результат, "GreenAPI", "ОтправитьОпрос", "Цитата");
-
-КонецПроцедуры
-
-Процедура GreenAPI_ПолучитьОписаниеЛокации(ПараметрыФункции)
-
- Широта = 53.908522;
- Долгота = 27.574821;
- Адрес = "Площадь Победы, Минск";
- Название = "пл. Победы";
-
- Результат = OPI_GreenAPI.ПолучитьОписаниеЛокации(Широта, Долгота, Адрес, Название);
-
- // END
-
- Обработать(Результат, "GreenAPI", "ПолучитьОписаниеЛокации");
-
-КонецПроцедуры
-
-Процедура GreenAPI_ОтправитьЛокацию(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- IDЧата = ПараметрыФункции["GreenAPI_TestGroupID"];
-
- Широта = 53.908522;
- Долгота = 27.574821;
- Адрес = "Площадь Победы, Минск";
- Название = "пл. Победы";
-
- Локация = OPI_GreenAPI.ПолучитьОписаниеЛокации(Широта, Долгота, Адрес, Название);
-
- ПараметрыДоступа = OPI_GreenAPI.СформироватьПараметрыДоступа(ApiUrl, MediaUrl, IdInstance, ApiTokenInstance);
- Результат = OPI_GreenAPI.ОтправитьЛокацию(ПараметрыДоступа, IDЧата, Локация);
-
- // END
-
- Обработать(Результат, "GreenAPI", "ОтправитьЛокацию", , ПараметрыФункции);
-
- IDСообщения = Результат["idMessage"];
- Локация = OPI_GreenAPI.ПолучитьОписаниеЛокации(Широта, Долгота);
- Результат = OPI_GreenAPI.ОтправитьЛокацию(ПараметрыДоступа, IDЧата, Локация, IDСообщения);
-
- Обработать(Результат, "GreenAPI", "ОтправитьЛокацию", "Цитата");
-
-КонецПроцедуры
-
-Процедура GreenAPI_ПолучитьОписаниеКонтакта(ПараметрыФункции)
-
- Телефон = 79001234568;
- Имя = "Артем";
- Фамилия = "Евпаторийский";
- Отчество = "Петрович";
- Компания = "Велосипед";
-
- Результат = OPI_GreenAPI.ПолучитьОписаниеКонтакта(Телефон, Имя, Фамилия, Отчество, Компания);
-
- // END
-
- Обработать(Результат, "GreenAPI", "ПолучитьОписаниеКонтакта");
-
-КонецПроцедуры
-
-Процедура GreenAPI_ОтправитьКонтакт(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- IDЧата = ПараметрыФункции["GreenAPI_TestGroupID"];
-
- Телефон = 79001234568;
- Имя = "Артем";
- Фамилия = "Евпаторийский";
- Отчество = "Петрович";
- Компания = "Велосипед";
-
- Контакт = OPI_GreenAPI.ПолучитьОписаниеКонтакта(Телефон, Имя, Фамилия, Отчество, Компания);
-
- ПараметрыДоступа = OPI_GreenAPI.СформироватьПараметрыДоступа(ApiUrl, MediaUrl, IdInstance, ApiTokenInstance);
- Результат = OPI_GreenAPI.ОтправитьКонтакт(ПараметрыДоступа, IDЧата, Контакт);
-
- // END
-
- Обработать(Результат, "GreenAPI", "ОтправитьКонтакт", , ПараметрыФункции);
-
- IDСообщения = Результат["idMessage"];
- Контакт = OPI_GreenAPI.ПолучитьОписаниеКонтакта(Телефон, , , , Компания);
- Результат = OPI_GreenAPI.ОтправитьКонтакт(ПараметрыДоступа, IDЧата, Контакт, IDСообщения);
-
- Обработать(Результат, "GreenAPI", "ОтправитьКонтакт", "Цитата");
-
-КонецПроцедуры
-
-Процедура GreenAPI_ПереслатьСообщения(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- Откуда = "11001234567@c.us";
- Откуда = ПараметрыФункции["GreenAPI_TestGroupID"]; // SKIP
- Куда = ПараметрыФункции["GreenAPI_TestGroupID"];
-
- Сообщение = ПараметрыФункции["GreenAPI_MessageID"];
-
- ПараметрыДоступа = OPI_GreenAPI.СформироватьПараметрыДоступа(ApiUrl, MediaUrl, IdInstance, ApiTokenInstance);
- Результат = OPI_GreenAPI.ПереслатьСообщения(ПараметрыДоступа, Откуда, Куда, Сообщение);
-
- // END
-
- Обработать(Результат, "GreenAPI", "ПереслатьСообщения");
-
-КонецПроцедуры
-
-Процедура GreenAPI_ПолучитьУведомление(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- ПараметрыДоступа = OPI_GreenAPI.СформироватьПараметрыДоступа(ApiUrl, MediaUrl, IdInstance, ApiTokenInstance);
- Результат = OPI_GreenAPI.ПолучитьУведомление(ПараметрыДоступа);
-
- // END
-
- Обработать(Результат, "GreenAPI", "ПолучитьУведомление", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура GreenAPI_УдалитьУведомлениеИзОчереди(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- IDДоставки = ПараметрыФункции["GreenAPI_ReceiptID"];
-
- ПараметрыДоступа = OPI_GreenAPI.СформироватьПараметрыДоступа(ApiUrl, MediaUrl, IdInstance, ApiTokenInstance);
- Результат = OPI_GreenAPI.УдалитьУведомлениеИзОчереди(ПараметрыДоступа, IDДоставки);
-
- // END
-
- Обработать(Результат, "GreenAPI", "УдалитьУведомлениеИзОчереди");
-
-КонецПроцедуры
-
-Процедура GreenAPI_СкачатьФайлСообщения(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- IDЧата = ПараметрыФункции["GreenAPI_TestGroupID"];
- IDСообщения = ПараметрыФункции["GreenAPI_FileMessageID"];
-
- ПараметрыДоступа = OPI_GreenAPI.СформироватьПараметрыДоступа(ApiUrl, MediaUrl, IdInstance, ApiTokenInstance);
- Результат = OPI_GreenAPI.СкачатьФайлСообщения(ПараметрыДоступа, IDЧата, IDСообщения);
-
- // END
-
- Обработать(Результат, "GreenAPI", "СкачатьФайлСообщения");
-
-КонецПроцедуры
-
-Процедура GreenAPI_УстановитьОтметкуПрочтения(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- IDЧата = ПараметрыФункции["GreenAPI_TestGroupID"];
- IDСообщения = ПараметрыФункции["GreenAPI_FileMessageID"];
-
- ПараметрыДоступа = OPI_GreenAPI.СформироватьПараметрыДоступа(ApiUrl, MediaUrl, IdInstance, ApiTokenInstance);
- Результат = OPI_GreenAPI.УстановитьОтметкуПрочтения(ПараметрыДоступа, IDЧата, IDСообщения);
-
- // END
-
- Обработать(Результат, "GreenAPI", "УстановитьОтметкуПрочтения");
-
-КонецПроцедуры
-
-Процедура GreenAPI_ПолучитьОчередьСообщений(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- ПараметрыДоступа = OPI_GreenAPI.СформироватьПараметрыДоступа(ApiUrl, MediaUrl, IdInstance, ApiTokenInstance);
- Результат = OPI_GreenAPI.ПолучитьОчередьСообщений(ПараметрыДоступа);
-
- // END
-
- Обработать(Результат, "GreenAPI", "ПолучитьОчередьСообщений");
-
-КонецПроцедуры
-
-Процедура GreenAPI_ОчиститьОчередьСообщений(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- ПараметрыДоступа = OPI_GreenAPI.СформироватьПараметрыДоступа(ApiUrl, MediaUrl, IdInstance, ApiTokenInstance);
- Результат = OPI_GreenAPI.ОчиститьОчередьСообщений(ПараметрыДоступа);
-
- // END
-
- Обработать(Результат, "GreenAPI", "ОчиститьОчередьСообщений");
-
-КонецПроцедуры
-
-Процедура GreenAPI_ПолучитьИсториюЧата(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- IDЧата = ПараметрыФункции["GreenAPI_TestGroupID"];
-
- ПараметрыДоступа = OPI_GreenAPI.СформироватьПараметрыДоступа(ApiUrl, MediaUrl, IdInstance, ApiTokenInstance);
- Результат = OPI_GreenAPI.ПолучитьИсториюЧата(ПараметрыДоступа, IDЧата);
-
- // END
-
- Обработать(Результат, "GreenAPI", "ПолучитьИсториюЧата", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура GreenAPI_ПолучитьСообщение(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- IDЧата = ПараметрыФункции["GreenAPI_TestGroupID"];
- IDСообщения = ПараметрыФункции["GreenAPI_MessageID"];
-
- ПараметрыДоступа = OPI_GreenAPI.СформироватьПараметрыДоступа(ApiUrl, MediaUrl, IdInstance, ApiTokenInstance);
- Результат = OPI_GreenAPI.ПолучитьСообщение(ПараметрыДоступа, IDЧата, IDСообщения);
-
- // END
-
- Обработать(Результат, "GreenAPI", "ПолучитьСообщение", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура GreenAPI_ПолучитьЖурналВходящихСообщений(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- ПараметрыДоступа = OPI_GreenAPI.СформироватьПараметрыДоступа(ApiUrl, MediaUrl, IdInstance, ApiTokenInstance);
- Результат = OPI_GreenAPI.ПолучитьЖурналВходящихСообщений(ПараметрыДоступа);
-
- // END
-
- Обработать(Результат, "GreenAPI", "ПолучитьЖурналВходящихСообщений", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура GreenAPI_ПолучитьЖурналИсходящихСообщений(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- ПараметрыДоступа = OPI_GreenAPI.СформироватьПараметрыДоступа(ApiUrl, MediaUrl, IdInstance, ApiTokenInstance);
- Результат = OPI_GreenAPI.ПолучитьЖурналИсходящихСообщений(ПараметрыДоступа);
-
- // END
-
- Обработать(Результат, "GreenAPI", "ПолучитьЖурналИсходящихСообщений", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура GreenAPI_АрхивироватьЧат(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- IDЧата = ПараметрыФункции["GreenAPI_TestGroupID"];
-
- ПараметрыДоступа = OPI_GreenAPI.СформироватьПараметрыДоступа(ApiUrl, MediaUrl, IdInstance, ApiTokenInstance);
-
- OPI_GreenAPI.РазархивироватьЧат(ПараметрыДоступа, IDЧата); // SKIP
-
- Результат = OPI_GreenAPI.АрхивироватьЧат(ПараметрыДоступа, IDЧата);
-
- // END
-
- Обработать(Результат, "GreenAPI", "АрхивироватьЧат");
-
-КонецПроцедуры
-
-Процедура GreenAPI_РазархивироватьЧат(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- IDЧата = ПараметрыФункции["GreenAPI_TestGroupID"];
-
- ПараметрыДоступа = OPI_GreenAPI.СформироватьПараметрыДоступа(ApiUrl, MediaUrl, IdInstance, ApiTokenInstance);
- Результат = OPI_GreenAPI.РазархивироватьЧат(ПараметрыДоступа, IDЧата);
-
- // END
-
- Обработать(Результат, "GreenAPI", "РазархивироватьЧат");
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область RCON
-
-Процедура RCON_СформироватьПараметрыСоединения(ПараметрыФункции)
-
- URL = ПараметрыФункции["RCON_URL"];
- Пароль = ПараметрыФункции["RCON_Password"];
- ТаймаутЗаписи = 20;
- ТаймаутЧтения = 20;
-
- Результат = OPI_RCON.СформироватьПараметрыСоединения(URL, Пароль, ТаймаутЧтения, ТаймаутЗаписи);
-
- // END
-
- Обработать(Результат, "RCON", "СформироватьПараметрыСоединения");
-
-КонецПроцедуры
-
-Процедура RCON_ОткрытьСоединение(ПараметрыФункции)
-
- URL = ПараметрыФункции["RCON_URL"];
- Пароль = ПараметрыФункции["RCON_Password"];
- ТаймаутЗаписи = 20;
- ТаймаутЧтения = 20;
-
- ПараметрыСоединения = OPI_RCON.СформироватьПараметрыСоединения(URL, Пароль, ТаймаутЧтения, ТаймаутЗаписи);
- Результат = OPI_RCON.ОткрытьСоединение(ПараметрыСоединения);
-
- // END
-
- Обработать(Результат, "RCON", "ОткрытьСоединение");
-
-КонецПроцедуры
-
-Процедура RCON_ВыполнитьКоманду(ПараметрыФункции)
-
- URL = ПараметрыФункции["RCON_URL"];
- Пароль = ПараметрыФункции["RCON_Password"];
- ТаймаутЗаписи = 20;
- ТаймаутЧтения = 20;
-
- ПараметрыСоединения = OPI_RCON.СформироватьПараметрыСоединения(URL, Пароль, ТаймаутЧтения, ТаймаутЗаписи);
- Соединение = OPI_RCON.ОткрытьСоединение(ПараметрыСоединения);
-
- Команда = "list";
- Результат = OPI_RCON.ВыполнитьКоманду(Команда, Соединение);
-
- // END
-
- Обработать(Результат, "RCON", "ВыполнитьКоманду");
-
- Команда = "list";
- Результат = OPI_RCON.ВыполнитьКоманду(Команда, ПараметрыСоединения);
-
- Обработать(Результат, "RCON", "ВыполнитьКоманду", "Без соединения");
-
-КонецПроцедуры
-
-Процедура RCON_ЭтоКоннектор(ПараметрыФункции)
-
- URL = ПараметрыФункции["RCON_URL"];
- Пароль = ПараметрыФункции["RCON_Password"];
- ТаймаутЗаписи = 20;
- ТаймаутЧтения = 20;
-
- ПараметрыСоединения = OPI_RCON.СформироватьПараметрыСоединения(URL, Пароль, ТаймаутЧтения, ТаймаутЗаписи);
- Соединение = OPI_RCON.ОткрытьСоединение(ПараметрыСоединения);
- Результат = OPI_RCON.ЭтоКоннектор(Соединение);
-
- // END
-
- Обработать(Результат, "RCON", "ЭтоКоннектор");
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область Ollama
-
-Процедура Ollama_ПолучитьОтвет(ПараметрыФункции)
-
- URL = ПараметрыФункции["Ollama_URL"];
- Токен = ПараметрыФункции["Ollama_Token"]; // Авторизация - не часть API Ollama
-
- Промпт = "What is 1C:Enterprise?";
- Модель = "tinyllama";
-
- ДопЗаголовки = Новый Соответствие;
- ДопЗаголовки.Вставить("Authorization", СтрШаблон("Bearer %1", Токен));
-
- Результат = OPI_Ollama.ПолучитьОтвет(URL, Модель, Промпт, , ДопЗаголовки);
-
- Обработать(Результат, "Ollama", "ПолучитьОтвет"); // SKIP
-
- // С параметрами
-
- Промпт = "Ollama is 22 years old and is busy saving the world. Respond using JSON";
-
- Формат = OPI_Инструменты.JSONВСтруктуру("
- |{
- |""type"": ""object"",
- |""properties"": {
- | ""age"": {
- | ""type"": ""integer""
- | },
- | ""available"": {
- | ""type"": ""boolean""
- | }
- |},
- |""required"": [
- | ""age"",
- | ""available""
- |]
- |}");
-
- ДопПараметры = Новый Структура("format", Формат);
-
- Результат = OPI_Ollama.ПолучитьОтвет(URL, Модель, Промпт, ДопПараметры, ДопЗаголовки);
-
- // END
-
- Обработать(Результат, "Ollama", "ПолучитьОтвет", "Параметры");
-
-КонецПроцедуры
-
-Процедура Ollama_ПолучитьОтветВКонтексте(ПараметрыФункции)
-
- URL = ПараметрыФункции["Ollama_URL"];
- Токен = ПараметрыФункции["Ollama_Token"]; // Авторизация - не часть API Ollama
-
- ДопЗаголовки = Новый Соответствие;
- ДопЗаголовки.Вставить("Authorization", СтрШаблон("Bearer %1", Токен));
-
- Модель = "tinyllama";
-
- МассивСообщений = Новый Массив;
-
- Вопрос1 = OPI_Ollama.ПолучитьСтруктуруСообщенияКонтекста("user", "What is 1C:Enterprise?");
- Вопрос2 = OPI_Ollama.ПолучитьСтруктуруСообщенияКонтекста("user", "When the first version was released?"); // Вопрос без конкретики
-
- // Добавляем первый вопрос в контекст
- МассивСообщений.Добавить(Вопрос1);
-
- Ответ1 = OPI_Ollama.ПолучитьОтветВКонтексте(URL, Модель, МассивСообщений, , ДопЗаголовки);
-
- Обработать(Ответ1, "Ollama", "ПолучитьОтветВКонтексте", "Предварительный"); // SKIP
-
- МассивСообщений.Добавить(Ответ1["message"]); // Добавляем ответ на первый вопрос в контекст
- МассивСообщений.Добавить(Вопрос2); // Добавляем второй вопрос в контекст
-
- Ответ2 = OPI_Ollama.ПолучитьОтветВКонтексте(URL, Модель, МассивСообщений, , ДопЗаголовки);
-
- МассивСообщений.Добавить(Ответ2["message"]);
-
- // ...
-
- // END
-
- Обработать(Ответ2, "Ollama", "ПолучитьОтветВКонтексте");
-
- МассивСообщений = Новый Массив;
-
- Вопрос = Новый Структура("role,content", "user", "Hello!");
- МассивСообщений.Добавить(Вопрос);
-
- Опции = Новый Структура("seed,temperature", 101, 0);
- ДопПараметры = Новый Структура("options", Опции);
-
- Результат = OPI_Ollama.ПолучитьОтветВКонтексте(URL, Модель, МассивСообщений, ДопПараметры, ДопЗаголовки);
-
- Обработать(Результат, "Ollama", "ПолучитьОтветВКонтексте", "Сид 1");
-
- Сообщение1 = Результат["message"]["content"];
-
- Результат = OPI_Ollama.ПолучитьОтветВКонтексте(URL, Модель, МассивСообщений, ДопПараметры, ДопЗаголовки);
-
- Обработать(Результат, "Ollama", "ПолучитьОтветВКонтексте", "Сид 2");
-
- Сообщение2 = Результат["message"]["content"];
-
- Опции = Новый Структура("seed,temperature", 555, 10);
- ДопПараметры = Новый Структура("options", Опции);
-
- Результат = OPI_Ollama.ПолучитьОтветВКонтексте(URL, Модель, МассивСообщений, ДопПараметры, ДопЗаголовки);
-
- Обработать(Результат, "Ollama", "ПолучитьОтветВКонтексте", "Сид 3");
-
- Сообщение3 = Результат["message"]["content"];
-
- Обработать(Сообщение3, "Ollama", "ПолучитьОтветВКонтексте", "Сравнение", Сообщение1, Сообщение2, Сообщение3);
-
-КонецПроцедуры
-
-Процедура Ollama_ЗагрузитьМодельВПамять(ПараметрыФункции)
-
- URL = ПараметрыФункции["Ollama_URL"];
- Токен = ПараметрыФункции["Ollama_Token"]; // Авторизация - не часть API Ollama
-
- Модель = "tinyllama";
- Период = 500;
-
- ДопЗаголовки = Новый Соответствие;
- ДопЗаголовки.Вставить("Authorization", СтрШаблон("Bearer %1", Токен));
-
- Результат = OPI_Ollama.ЗагрузитьМодельВПамять(URL, Модель, Период, ДопЗаголовки);
-
- // END
-
- Обработать(Результат, "Ollama", "ЗагрузитьМодельВПамять");
-
-КонецПроцедуры
-
-Процедура Ollama_ВыгрузитьМодельИзПамяти(ПараметрыФункции)
-
- URL = ПараметрыФункции["Ollama_URL"];
- Токен = ПараметрыФункции["Ollama_Token"]; // Авторизация - не часть API Ollama
-
- Модель = "tinyllama";
-
- ДопЗаголовки = Новый Соответствие;
- ДопЗаголовки.Вставить("Authorization", СтрШаблон("Bearer %1", Токен));
-
- Результат = OPI_Ollama.ВыгрузитьМодельИзПамяти(URL, Модель, ДопЗаголовки);
-
- // END
-
- Обработать(Результат, "Ollama", "ВыгрузитьМодельИзПамяти");
-
-КонецПроцедуры
-
-Процедура Ollama_ПолучитьСтруктуруПараметровЗапроса(ПараметрыФункции)
-
- Результат = OPI_Ollama.ПолучитьСтруктуруПараметровЗапроса();
-
- // END
-
- Обработать(Результат, "Ollama", "ПолучитьСтруктуруПараметровЗапроса");
-
- Результат = OPI_Ollama.ПолучитьСтруктуруПараметровЗапроса(Истина);
-
- Обработать(Результат, "Ollama", "ПолучитьСтруктуруПараметровЗапроса", "Пустая");
-
-КонецПроцедуры
-
-Процедура Ollama_ПолучитьСтруктуруПараметровВКонтексте(ПараметрыФункции)
-
- Результат = OPI_Ollama.ПолучитьСтруктуруПараметровВКонтексте();
-
- // END
-
- Обработать(Результат, "Ollama", "ПолучитьСтруктуруПараметровВКонтексте");
-
- Результат = OPI_Ollama.ПолучитьСтруктуруПараметровВКонтексте(Истина);
-
- Обработать(Результат, "Ollama", "ПолучитьСтруктуруПараметровВКонтексте", "Пустая");
-
-КонецПроцедуры
-
-Процедура Ollama_ПолучитьСтруктуруСообщенияКонтекста(ПараметрыФункции)
-
- Результат = OPI_Ollama.ПолучитьСтруктуруСообщенияКонтекста("user", "Hello!");
-
- // END
-
- Обработать(Результат, "Ollama", "ПолучитьСтруктуруСообщенияКонтекста");
-
-КонецПроцедуры
-
-Процедура Ollama_ПолучитьСтруктуруНастроекМодели(ПараметрыФункции)
-
- Результат = OPI_Ollama.ПолучитьСтруктуруНастроекМодели();
-
- // END
-
- Обработать(Результат, "Ollama", "ПолучитьСтруктуруНастроекМодели");
-
- Результат = OPI_Ollama.ПолучитьСтруктуруНастроекМодели(Истина);
-
- Обработать(Результат, "Ollama", "ПолучитьСтруктуруНастроекМодели", "Пустая");
-
-КонецПроцедуры
-
-Процедура Ollama_СоздатьМодель(ПараметрыФункции)
-
- URL = ПараметрыФункции["Ollama_URL"];
- Токен = ПараметрыФункции["Ollama_Token"]; // Авторизация - не часть API Ollama
-
- Модель = "mario";
-
- ДопЗаголовки = Новый Соответствие;
- ДопЗаголовки.Вставить("Authorization", СтрШаблон("Bearer %1", Токен));
-
- Настройки = Новый Структура("from,system", "tinyllama", "You are Mario from Super Mario Bros.");
-
- Результат = OPI_Ollama.СоздатьМодель(URL, Модель, Настройки, ДопЗаголовки);
-
- // END
-
- Обработать(Результат, "Ollama", "СоздатьМодель");
-
- Результат = OPI_Ollama.ПолучитьОтвет(URL, Модель, "How are you?", , ДопЗаголовки);
-
- Обработать(Результат, "Ollama", "СоздатьМодель", "Запрос");
-
-КонецПроцедуры
-
-Процедура Ollama_УдалитьМодель(ПараметрыФункции)
-
- URL = ПараметрыФункции["Ollama_URL"];
- Токен = ПараметрыФункции["Ollama_Token"]; // Авторизация - не часть API Ollama
-
- Модель = "mario";
-
- ДопЗаголовки = Новый Соответствие;
- ДопЗаголовки.Вставить("Authorization", СтрШаблон("Bearer %1", Токен));
-
- Результат = OPI_Ollama.УдалитьМодель(URL, Модель, ДопЗаголовки);
-
- // END
-
- Обработать(Результат, "Ollama", "УдалитьМодель");
-
- Результат = OPI_Ollama.УдалитьМодель(URL, "library/tinyllama:latest", ДопЗаголовки);
- Обработать(Результат, "Ollama", "УдалитьМодель", "Tiny");
-
- Результат = OPI_Ollama.УдалитьМодель(URL, "bayselonarrend/tinyllama:latest", ДопЗаголовки);
- Обработать(Результат, "Ollama", "УдалитьМодель", "Tiny, аккаунт");
-
- Результат = OPI_Ollama.ПолучитьСписокМоделей(URL, ДопЗаголовки);
-
- Обработать(Результат, "Ollama", "УдалитьМодель", "Список");
-
-КонецПроцедуры
-
-Процедура Ollama_ПолучитьСписокМоделей(ПараметрыФункции)
-
- URL = ПараметрыФункции["Ollama_URL"];
- Токен = ПараметрыФункции["Ollama_Token"]; // Авторизация - не часть API Ollama
-
- ДопЗаголовки = Новый Соответствие;
- ДопЗаголовки.Вставить("Authorization", СтрШаблон("Bearer %1", Токен));
-
- Результат = OPI_Ollama.ПолучитьСписокМоделей(URL, ДопЗаголовки);
-
- // END
-
- Обработать(Результат, "Ollama", "ПолучитьСписокМоделей");
-
-КонецПроцедуры
-
-Процедура Ollama_ПолучитьСписокЗапущенныхМоделей(ПараметрыФункции)
-
- URL = ПараметрыФункции["Ollama_URL"];
- Токен = ПараметрыФункции["Ollama_Token"]; // Авторизация - не часть API Ollama
-
- ДопЗаголовки = Новый Соответствие;
- ДопЗаголовки.Вставить("Authorization", СтрШаблон("Bearer %1", Токен));
-
- Результат = OPI_Ollama.ПолучитьСписокЗапущенныхМоделей(URL, ДопЗаголовки);
-
- // END
-
- Обработать(Результат, "Ollama", "ПолучитьСписокЗапущенныхМоделей");
-
-КонецПроцедуры
-
-Процедура Ollama_ПолучитьИнформациюОМодели(ПараметрыФункции)
-
- URL = ПараметрыФункции["Ollama_URL"];
- Токен = ПараметрыФункции["Ollama_Token"]; // Авторизация - не часть API Ollama
-
- Модель = "mario";
-
- ДопЗаголовки = Новый Соответствие;
- ДопЗаголовки.Вставить("Authorization", СтрШаблон("Bearer %1", Токен));
-
- Результат = OPI_Ollama.ПолучитьИнформациюОМодели(URL, Модель, Ложь, ДопЗаголовки);
-
- // END
-
- Обработать(Результат, "Ollama", "ПолучитьИнформациюОМодели");
-
-КонецПроцедуры
-
-Процедура Ollama_КопироватьМодель(ПараметрыФункции)
-
- URL = ПараметрыФункции["Ollama_URL"];
- Токен = ПараметрыФункции["Ollama_Token"]; // Авторизация - не часть API Ollama
-
- Модель = "mario";
- Имя = "mario2";
-
- ДопЗаголовки = Новый Соответствие;
- ДопЗаголовки.Вставить("Authorization", СтрШаблон("Bearer %1", Токен));
-
- Результат = OPI_Ollama.КопироватьМодель(URL, Модель, Имя, ДопЗаголовки);
-
- // END
-
- Обработать(Результат, "Ollama", "КопироватьМодель");
-
- OPI_Ollama.УдалитьМодель(URL, Имя, ДопЗаголовки);
-
-КонецПроцедуры
-
-Процедура Ollama_ПолучитьВерсию(ПараметрыФункции)
-
- URL = ПараметрыФункции["Ollama_URL"];
- Токен = ПараметрыФункции["Ollama_Token"]; // Авторизация - не часть API Ollama
-
- ДопЗаголовки = Новый Соответствие;
- ДопЗаголовки.Вставить("Authorization", СтрШаблон("Bearer %1", Токен));
-
- Результат = OPI_Ollama.ПолучитьВерсию(URL, ДопЗаголовки);
-
- // END
-
- Обработать(Результат, "Ollama", "ПолучитьВерсию");
-
-КонецПроцедуры
-
-Процедура Ollama_ПолучитьПредставления(ПараметрыФункции)
-
- URL = ПараметрыФункции["Ollama_URL"];
- Токен = ПараметрыФункции["Ollama_Token"]; // Авторизация - не часть API Ollama
-
- МассивСтрок = Новый Массив;
- МассивСтрок.Добавить("Why is the sky blue?");
- МассивСтрок.Добавить("Why is the grass green?");
-
- Модель = "tinyllama";
-
- ДопЗаголовки = Новый Соответствие;
- ДопЗаголовки.Вставить("Authorization", СтрШаблон("Bearer %1", Токен));
-
- Результат = OPI_Ollama.ПолучитьПредставления(URL, Модель, МассивСтрок, , ДопЗаголовки);
-
- // END
-
- Обработать(Результат, "Ollama", "ПолучитьПредставления");
-
-КонецПроцедуры
-
-Процедура Ollama_ПолучитьСтруктуруПараметровПредставлений(ПараметрыФункции)
-
- Результат = OPI_Ollama.ПолучитьСтруктуруПараметровПредставлений();
-
- // END
-
- Обработать(Результат, "Ollama", "ПолучитьСтруктуруПараметровПредставлений");
-
- Результат = OPI_Ollama.ПолучитьСтруктуруПараметровПредставлений(Истина);
-
- Обработать(Результат, "Ollama", "ПолучитьСтруктуруПараметровПредставлений", "Пустая");
-
-КонецПроцедуры
-
-Процедура Ollama_ОтправитьМодель(ПараметрыФункции)
-
- URL = ПараметрыФункции["Ollama_URL"];
- Токен = ПараметрыФункции["Ollama_Token"]; // Авторизация - не часть API Ollama
-
- Модель = "bayselonarrend/tinyllama:latest";
-
- ДопЗаголовки = Новый Соответствие;
- ДопЗаголовки.Вставить("Authorization", СтрШаблон("Bearer %1", Токен));
-
- Результат = OPI_Ollama.ОтправитьМодель(URL, Модель, , ДопЗаголовки);
-
- // END
-
- Обработать(Результат, "Ollama", "ОтправитьМодель");
-
-КонецПроцедуры
-
-Процедура Ollama_СкачатьМодель(ПараметрыФункции)
-
- URL = ПараметрыФункции["Ollama_URL"];
- Токен = ПараметрыФункции["Ollama_Token"]; // Авторизация - не часть API Ollama
-
- Модель = "tinyllama";
-
- ДопЗаголовки = Новый Соответствие;
- ДопЗаголовки.Вставить("Authorization", СтрШаблон("Bearer %1", Токен));
-
- Результат = OPI_Ollama.СкачатьМодель(URL, Модель, , ДопЗаголовки);
-
- // END
-
- Обработать(Результат, "Ollama", "СкачатьМодель");
-
- Результат = OPI_Ollama.СкачатьМодель(URL, "bayselonarrend/tinyllama:latest", , ДопЗаголовки);
-
- Обработать(Результат, "Ollama", "СкачатьМодель", "Аккаунт");
-
-КонецПроцедуры
-
-Процедура Ollama_ОтправитьBlob(ПараметрыФункции)
-
- URL = ПараметрыФункции["Ollama_URL"];
- Токен = ПараметрыФункции["Ollama_Token"]; // Авторизация - не часть API Ollama
-
- Картинка = ПараметрыФункции["Picture"]; // URL, Путь или Двоичные данные
-
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка, Истина); // SKIP
- Рандом = ПолучитьДвоичныеДанныеИзСтроки(Строка(Новый УникальныйИдентификатор)); // SKIP
- Картинка = OPI_Инструменты.СклеитьДанные(Картинка, Рандом); // SKIP
-
- ДопЗаголовки = Новый Соответствие;
- ДопЗаголовки.Вставить("Authorization", СтрШаблон("Bearer %1", Токен));
-
- Результат = OPI_Ollama.ОтправитьBlob(URL, Картинка, ДопЗаголовки);
-
- // END
-
- Обработать(Результат, "Ollama", "ОтправитьBlob", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура Ollama_ПроверитьBlob(ПараметрыФункции)
-
- URL = ПараметрыФункции["Ollama_URL"];
- Токен = ПараметрыФункции["Ollama_Token"]; // Авторизация - не часть API Ollama
- SHA256 = ПараметрыФункции["Ollama_Blob"];
-
- ДопЗаголовки = Новый Соответствие;
- ДопЗаголовки.Вставить("Authorization", СтрШаблон("Bearer %1", Токен));
-
- Результат = OPI_Ollama.ПроверитьBlob(URL, SHA256, ДопЗаголовки);
-
- // END
-
- Обработать(Результат, "Ollama", "ПроверитьBlob");
-
- Результат = OPI_Ollama.ПроверитьBlob(URL, "yoyoyo", ДопЗаголовки);
-
- Обработать(Результат, "Ollama", "ПроверитьBlob", "Ошибка");
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область HTTP
-
-Процедура HTTPКлиент_Инициализировать(ПараметрыФункции)
-
- URL = ПараметрыФункции["HTTP_URL"];
- URL = URL + "/get";
-
- Результат = OPI_ЗапросыHTTP
- .НовыйЗапрос()
- .Инициализировать(URL) // <---
- .ОбработатьЗапрос("GET")
- .ВернутьОтветКакJSONКоллекцию();
-
- // END
-
- Обработать(Результат, "HTTPКлиент", "Инициализировать");
-
- HTTPКлиент = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать(URL)
- .ОбработатьЗапрос("POST", Ложь);
-
- Обработать(HTTPКлиент, "HTTPКлиент", "Инициализировать", "Проверка 1", ПараметрыФункции);
-
- ДругойЗапрос = HTTPКлиент.УстановитьURL(ПараметрыФункции["HTTP_URL"] + "/post")
- .ОбработатьЗапрос("POST", Ложь)
- .ВернутьЗапрос();
-
- Обработать(ДругойЗапрос, "HTTPКлиент", "Инициализировать", "Проверка 2");
-
-КонецПроцедуры
-
-Процедура HTTPКлиент_УстановитьURL(ПараметрыФункции)
-
- URL = ПараметрыФункции["HTTP_URL"];
- URL = URL + "/get";
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать()
- .УстановитьURL(URL) // <---
- .ОбработатьЗапрос("GET")
- .ВернутьОтветКакJSONКоллекцию();
-
- // END
-
- Обработать(Результат, "HTTPКлиент", "УстановитьURL");
-
- HTTPКлиент = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать()
- .УстановитьURL(URL)
- .ОбработатьЗапрос("POST", Ложь);
-
- Обработать(HTTPКлиент, "HTTPКлиент", "УстановитьURL", "Проверка", ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура HTTPКлиент_УстановитьПараметрыURL(ПараметрыФункции)
-
- URL = ПараметрыФункции["HTTP_URL"];
- URL = URL + "/get";
-
- СтруктураПараметров = Новый Структура("param1,param2", "text", 10);
-
- Результат = OPI_ЗапросыHTTP
- .НовыйЗапрос()
- .Инициализировать(URL)
- .УстановитьПараметрыURL(СтруктураПараметров) // <---
- .ОбработатьЗапрос("GET")
- .ВернутьОтветКакJSONКоллекцию();
-
- // END
-
- Обработать(Результат, "HTTPКлиент", "УстановитьПараметрыURL", , ПараметрыФункции);
-
- HTTPКлиент = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать(URL)
- .УстановитьПараметрыURL(СтруктураПараметров)
- .ОбработатьЗапрос("POST", Ложь);
-
- HTTPЗапрос = HTTPКлиент.ВернутьЗапрос();
-
- Обработать(HTTPЗапрос, "HTTPКлиент", "УстановитьПараметрыURL", "Проверка");
-
- // Проверка кодировки
-
- // Комплексная
-
- СтруктураПараметров1 = Новый Структура;
- СтруктураПараметров1.Вставить("param1", "search?text");
- СтруктураПараметров1.Вставить("param2", "John Doe");
- СтруктураПараметров1.Вставить("param3", "value&another");
- СтруктураПараметров1.Вставить("param4", "кириллица");
- СтруктураПараметров1.Вставить("param5", "");
-
- АдресРесурса1 = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать("https://example.com/page")
- .УстановитьПараметрыURL(СтруктураПараметров1)
- .ОбработатьЗапрос("GET", Ложь)
- .ВернутьЗапрос()
- .АдресРесурса;
-
- Обработать(АдресРесурса1, "HTTPКлиент", "УстановитьПараметрыURL", "Вариант 1");
-
- СтруктураПараметров2 = Новый Структура;
- СтруктураПараметров2.Вставить("param1", "search?text");
- СтруктураПараметров2.Вставить("param2", "John Doe");
-
- // Параметры в оригинальном URL
-
- АдресРесурса2 = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать("https://example.com/page?existing=value")
- .УстановитьПараметрыURL(СтруктураПараметров2)
- .ОбработатьЗапрос("GET", Ложь)
- .ВернутьЗапрос()
- .АдресРесурса;
-
- Обработать(АдресРесурса2, "HTTPКлиент", "УстановитьПараметрыURL", "Вариант 2");
-
- // Пустая строка параметров
-
- СтруктураПараметров3 = Новый Структура;
- СтруктураПараметров3.Вставить("param1", "search?text");
- СтруктураПараметров3.Вставить("param2", "John Doe");
-
- АдресРесурса3 = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать("https://example.com/page?")
- .УстановитьПараметрыURL(Структурапараметров3)
- .ОбработатьЗапрос("GET", Ложь)
- .ВернутьЗапрос()
- .АдресРесурса;
-
- Обработать(АдресРесурса3, "HTTPКлиент", "УстановитьПараметрыURL", "Вариант 3");
-
- // Спец. символы в пути
-
- СтруктураПараметров4 = Новый Структура;
- СтруктураПараметров4.Вставить("param1", "search?text");
- СтруктураПараметров4.Вставить("param2", "John Doe");
-
- АдресРесурса4 = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать("https://example.com/path with spaces")
- .УстановитьПараметрыURL(СтруктураПараметров4)
- .ОбработатьЗапрос("GET", Ложь)
- .ВернутьЗапрос()
- .АдресРесурса;
-
- Обработать(АдресРесурса4, "HTTPКлиент", "УстановитьПараметрыURL", "Вариант 4");
-
- // URL с фрагментом
-
- СтруктураПараметров5 = Новый Структура;
- СтруктураПараметров5.Вставить("param1", "search?text");
- СтруктураПараметров5.Вставить("param2", "John Doe");
-
- АдресРесурса5 = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать("https://example.com/page#section")
- .УстановитьПараметрыURL(СтруктураПараметров5)
- .ОбработатьЗапрос("GET", Ложь)
- .ВернутьЗапрос()
- .АдресРесурса;
-
- Обработать(АдресРесурса5, "HTTPКлиент", "УстановитьПараметрыURL", "Вариант 5");
-
- // Кирилица в пути
-
- СтруктураПараметров6 = Новый Структура;
- СтруктураПараметров6.Вставить("param1", "search?text");
- СтруктураПараметров6.Вставить("param2", "John Doe");
-
- АдресРесурса6 = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать("https://example.com/путь")
- .УстановитьПараметрыURL(СтруктураПараметров6)
- .ОбработатьЗапрос("GET", Ложь)
- .ВернутьЗапрос()
- .АдресРесурса;
-
- Обработать(АдресРесурса6, "HTTPКлиент", "УстановитьПараметрыURL", "Вариант 6");
-
- // Несколько параметров и кодировка
-
- СтруктураПараметров7 = Новый Структура;
- СтруктураПараметров7.Вставить("param1", "value1");
- СтруктураПараметров7.Вставить("param2", "value two");
- Структурапараметров7.Вставить("param3", "value");
-
- АдресРесурса7 = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать("https://example.com/page")
- .УстановитьПараметрыURL(СтруктураПараметров7)
- .ОбработатьЗапрос("GET", Ложь)
- .ВернутьЗапрос()
- .АдресРесурса;
-
- Обработать(АдресРесурса7, "HTTPКлиент", "УстановитьПараметрыURL", "Вариант 7");
-
-КонецПроцедуры
-
-Процедура HTTPКлиент_УстановитьФайлОтвета(ПараметрыФункции)
-
- URL = ПараметрыФункции["HTTP_URL"];
- URL = URL + "/get";
-
- ИВФ = ПолучитьИмяВременногоФайла();
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать(URL)
- .УстановитьФайлОтвета(ИВФ) // <---
- .ОбработатьЗапрос("GET")
- .ВернутьИмяФайлаТелаОтвета();
-
- // END
-
- Обработать(Результат, "HTTPКлиент", "УстановитьФайлОтвета", , ИВФ);
-
- РезультатПроверки = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать()
- .УстановитьURL(URL)
- .УстановитьФайлОтвета(ИВФ) // <---
- .ОбработатьЗапрос("GET")
- .ВернутьОтветКакДвоичныеДанные();
-
- Обработать(РезультатПроверки, "HTTPКлиент", "УстановитьФайлОтвета", "Тело", ИВФ);
-
- OPI_Инструменты.УдалитьФайлВПопытке(ИВФ, "Не удалось удалить временный файл после теста!");
-
-КонецПроцедуры
-
-Процедура HTTPКлиент_УстановитьТипДанных(ПараметрыФункции)
-
- URL = ПараметрыФункции["HTTP_URL"];
- URL = URL + "/post";
-
- ТипMIME = "text/markdown";
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать(URL)
- .УстановитьСтроковоеТело("# Привет мир!")
- .УстановитьТипДанных(ТипMIME) // <---
- .ОбработатьЗапрос("POST")
- .ВернутьОтветКакJSONКоллекцию();
-
- // END
-
- Обработать(Результат, "HTTPКлиент", "УстановитьТипДанных");
-
-КонецПроцедуры
-
-Процедура HTTPКлиент_ПолучитьЛог(ПараметрыФункции)
-
- URL = ПараметрыФункции["HTTP_URL"];
- URL = URL + "/get";
-
- СтруктураПараметров = Новый Структура("param1,param2", "text", 10);
-
- HTTPКлиент = OPI_ЗапросыHTTP
- .НовыйЗапрос()
- .Инициализировать(URL)
- .УстановитьПараметрыURL(СтруктураПараметров)
- .ОбработатьЗапрос("GET");
-
- Ответ = HTTPКлиент.ВернутьОтветКакJSONКоллекцию();
- Лог = HTTPКлиент.ПолучитьЛог(Истина);
-
- // END
-
- Обработать(Лог, "HTTPКлиент", "ПолучитьЛог");
-
-КонецПроцедуры
-
-Процедура HTTPКлиент_УстановитьДвоичноеТело(ПараметрыФункции)
-
- URL = ПараметрыФункции["HTTP_URL"];
- URL = URL + "/post";
-
- Картинка = ПараметрыФункции["Picture"]; // URL, Путь или Двоичные данные
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать(URL)
- .УстановитьДвоичноеТело(Картинка) // <---
- .ОбработатьЗапрос("POST")
- .ВернутьОтветКакJSONКоллекцию();
-
- // END
-
- Обработать(Результат, "HTTPКлиент", "УстановитьДвоичноеТело", , Картинка);
-
-КонецПроцедуры
-
-Процедура HTTPКлиент_УстановитьСтроковоеТело(ПараметрыФункции)
-
- URL = ПараметрыФункции["HTTP_URL"];
- URL = URL + "/post";
-
- Текст = "Привет мир!";
- Кодировка = "Windows-1251";
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать(URL)
- .ИспользоватьКодировку(Кодировка)
- .УстановитьСтроковоеТело(Текст) // <---
- .ОбработатьЗапрос("POST")
- .ВернутьОтветКакJSONКоллекцию();
-
- // END
-
- Обработать(Результат, "HTTPКлиент", "УстановитьСтроковоеТело");
-
-КонецПроцедуры
-
-Процедура HTTPКлиент_УстановитьJsonТело(ПараметрыФункции)
-
- URL = ПараметрыФункции["HTTP_URL"];
- URL = URL + "/post";
-
- СлучайныйМассив = Новый Массив;
- СлучайныйМассив.Добавить("A");
- СлучайныйМассив.Добавить("B");
- СлучайныйМассив.Добавить("C");
-
- Данные = Новый Структура("Поле1,Поле2,Поле3", 10, "Текст", СлучайныйМассив);
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать(URL)
- .УстановитьJsonТело(Данные) // <---
- .ОбработатьЗапрос("POST")
- .ВернутьОтветКакJSONКоллекцию();
-
- // END
-
- Обработать(Результат, "HTTPКлиент", "УстановитьJsonТело", , Данные);
-
-КонецПроцедуры
-
-Процедура HTTPКлиент_УстановитьFormТело(ПараметрыФункции)
-
- URL = ПараметрыФункции["HTTP_URL"];
- URL = URL + "/post";
-
- Данные = Новый Структура("Поле1,Поле2", "10", "Текст");
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать(URL)
- .УстановитьFormТело(Данные) // <---
- .ОбработатьЗапрос("POST")
- .ВернутьОтветКакJSONКоллекцию();
-
- // END
-
- Обработать(Результат, "HTTPКлиент", "УстановитьFormТело", , Данные);
-
-КонецПроцедуры
-
-Процедура HTTPКлиент_НачатьЗаписьТелаMultipart(ПараметрыФункции)
-
- URL = ПараметрыФункции["HTTP_URL"];
- URL = URL + "/post";
-
- Картинка = ПараметрыФункции["Picture"]; // URL, Путь или Двоичные данные
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать(URL)
- .НачатьЗаписьТелаMultipart() // <---
- .ДобавитьФайлMultipartFormData("file1", "pic.png", Картинка, "image/png")
- .ДобавитьПолеMultipartFormData("Поле1", "Текст")
- .ДобавитьПолеMultipartFormData("Поле2", "10")
- .ОбработатьЗапрос("POST")
- .ВернутьОтветКакJSONКоллекцию();
-
- // END
-
- Обработать(Результат, "HTTPКлиент", "НачатьЗаписьТелаMultipart", , Картинка);
-
-КонецПроцедуры
-
-Процедура HTTPКлиент_ДобавитьФайлMultipartFormData(ПараметрыФункции)
-
- URL = ПараметрыФункции["HTTP_URL"];
- URL = URL + "/post";
-
- Картинка = ПараметрыФункции["Picture"]; // URL, Путь или Двоичные данные
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать(URL)
- .НачатьЗаписьТелаMultipart()
- .ДобавитьФайлMultipartFormData("file1", "pic.png", Картинка, "image/png") // <---
- .ДобавитьПолеMultipartFormData("Поле1", "Текст")
- .ДобавитьПолеMultipartFormData("Поле2", "10")
- .ОбработатьЗапрос("POST")
- .ВернутьОтветКакJSONКоллекцию();
-
- // END
-
- Обработать(Результат, "HTTPКлиент", "ДобавитьФайлMultipartFormData", , Картинка);
-
-КонецПроцедуры
-
-Процедура HTTPКлиент_ДобавитьПолеMultipartFormData(ПараметрыФункции)
-
- URL = ПараметрыФункции["HTTP_URL"];
- URL = URL + "/post";
-
- Картинка = ПараметрыФункции["Picture"]; // URL, Путь или Двоичные данные
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать(URL)
- .НачатьЗаписьТелаMultipart()
- .ДобавитьФайлMultipartFormData("file1", "pic.png", Картинка, "image/png")
- .ДобавитьПолеMultipartFormData("Поле1", "Текст") // <---
- .ДобавитьПолеMultipartFormData("Поле2", "10") // <---
- .ОбработатьЗапрос("POST")
- .ВернутьОтветКакJSONКоллекцию();
-
- // END
-
- Обработать(Результат, "HTTPКлиент", "ДобавитьПолеMultipartFormData", , Картинка);
-
-КонецПроцедуры
-
-Процедура HTTPКлиент_ДобавитьДанныеRelated(ПараметрыФункции)
-
- URL = ПараметрыФункции["HTTP_URL"];
- URL = URL + "/post";
-
- СлучайныйМассив = Новый Массив;
- СлучайныйМассив.Добавить("A");
- СлучайныйМассив.Добавить("B");
- СлучайныйМассив.Добавить("C");
-
- Данные = Новый Структура("Поле1,Поле2,Поле3", 10, "Текст", СлучайныйМассив);
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать(URL)
- .НачатьЗаписьТелаMultipart(Истина, "related")
- .ДобавитьДанныеRelated(Данные, "application/json; charset=UTF-8") // <---
- .ОбработатьЗапрос("POST")
- .ВернутьОтветКакJSONКоллекцию();
-
- // END
-
- Обработать(Результат, "HTTPКлиент", "ДобавитьДанныеRelated");
-
-КонецПроцедуры
-
-Процедура HTTPКлиент_ИспользоватьКодировку(ПараметрыФункции)
-
- URL = ПараметрыФункции["HTTP_URL"];
- URL = URL + "/post";
-
- Текст = "Привет мир!";
- Кодировка = "Windows-1251";
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать(URL)
- .ИспользоватьКодировку(Кодировка) // <---
- .УстановитьСтроковоеТело(Текст)
- .ОбработатьЗапрос("POST")
- .ВернутьОтветКакJSONКоллекцию();
-
- // END
-
- Обработать(Результат, "HTTPКлиент", "ИспользоватьКодировку");
-
-КонецПроцедуры
-
-Процедура HTTPКлиент_ИспользоватьСжатиеGzip(ПараметрыФункции)
-
- URL = ПараметрыФункции["HTTP_URL"];
- URL = URL + "/post";
-
- Картинка = ПараметрыФункции["Picture"]; // URL, Путь или Двоичные данные
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать(URL)
- .УстановитьДвоичноеТело(Картинка)
- .ИспользоватьСжатиеGzip(Ложь) // <---
- .ОбработатьЗапрос("POST", Ложь)
- .ВернутьЗапрос();
-
- // END
-
- Обработать(Результат, "HTTPКлиент", "ИспользоватьСжатиеGzip");
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать(URL)
- .УстановитьДвоичноеТело(Картинка)
- .ИспользоватьСжатиеGzip(Истина) // <---
- .ОбработатьЗапрос("POST", Ложь)
- .ВернутьЗапрос();
-
- Обработать(Результат, "HTTPКлиент", "ИспользоватьСжатиеGzip", "Включено");
-
-КонецПроцедуры
-
-Процедура HTTPКлиент_ИспользоватьПоляТелаВOAuth(ПараметрыФункции)
-
- URL = ПараметрыФункции["HTTP_URL"];
- URL = URL + "/post";
-
- Картинка = ПараметрыФункции["Picture"]; // URL, Путь или Двоичные данные
-
- Токен = "***";
- Секрет = "***";
- КлючПользователя = "***";
- СекретПользователя = "***";
- Версия = "1.0";
-
- НовыйЗапрос = OPI_ЗапросыHTTP.НовыйЗапрос().Инициализировать(URL);
-
- Результат = НовыйЗапрос
- .НачатьЗаписьТелаMultipart()
- .ДобавитьФайлMultipartFormData("file1", "pic.png", Картинка, "image/png")
- .ДобавитьПолеMultipartFormData("field1", "Текст")
- .ДобавитьПолеMultipartFormData("field2", "10")
- .ИспользоватьПоляТелаВOAuth(Ложь) // <---
- .ДобавитьOauthV1Авторизацию(Токен, Секрет, КлючПользователя, СекретПользователя, Версия)
- .ОбработатьЗапрос("POST")
- .ВернутьОтветКакJSONКоллекцию();
-
- // END
-
- ЛогСтрокой = НовыйЗапрос.ПолучитьЛог(Истина);
- Обработать(Результат, "HTTPКлиент", "ИспользоватьПоляТелаВOAuth", , ЛогСтрокой);
-
- Результат = OPI_ЗапросыHTTP
- .НовыйЗапрос()
- .Инициализировать(URL)
- .НачатьЗаписьТелаMultipart()
- .ДобавитьФайлMultipartFormData("file1", "pic.png", Картинка, "image/png")
- .ДобавитьПолеMultipartFormData("field1", "Текст")
- .ДобавитьПолеMultipartFormData("field2", "10")
- .ИспользоватьПоляТелаВOAuth(Истина) // <---
- .ДобавитьOauthV1Авторизацию(Токен, Секрет, КлючПользователя, СекретПользователя, Версия)
- .ОбработатьЗапрос("POST", Ложь)
- .ПолучитьЛог(Истина);
-
- Обработать(Результат, "HTTPКлиент", "ИспользоватьПоляТелаВOAuth", "Включено");
-
-КонецПроцедуры
-
-Процедура HTTPКлиент_УстановитьЗаголовки(ПараметрыФункции)
-
- URL = ПараметрыФункции["HTTP_URL"];
- URL = URL + "/get";
-
- Заголовки = Новый Соответствие;
- Заголовки.Вставить("X-Header1", "Value1");
- Заголовки.Вставить("X-Header2", "Value2");
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать()
- .УстановитьURL(URL)
- .УстановитьЗаголовки(Заголовки) // <---
- .ОбработатьЗапрос("GET")
- .ВернутьОтветКакJSONКоллекцию();
-
- // END
-
- Обработать(Результат, "HTTPКлиент", "УстановитьЗаголовки");
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать()
- .УстановитьURL(URL)
- .ДобавитьBearerАвторизацию("1111")
- .УстановитьЗаголовки(Заголовки, Истина) // <---
- .ОбработатьЗапрос("GET")
- .ВернутьОтветКакJSONКоллекцию();
-
- Обработать(Результат, "HTTPКлиент", "УстановитьЗаголовки", "Перезапись");
-
-КонецПроцедуры
-
-Процедура HTTPКлиент_ДобавитьЗаголовок(ПараметрыФункции)
-
- URL = ПараметрыФункции["HTTP_URL"];
- URL = URL + "/get";
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать()
- .УстановитьURL(URL)
- .ДобавитьЗаголовок("X-Header1", "Value1") // <---
- .ДобавитьЗаголовок("X-Header2", "Value2") // <---
- .ОбработатьЗапрос("GET")
- .ВернутьОтветКакJSONКоллекцию();
-
- // END
-
- Обработать(Результат, "HTTPКлиент", "ДобавитьЗаголовок");
-
- Заголовки = Новый Соответствие;
- Заголовки.Вставить("X-Header1", "Value1");
- Заголовки.Вставить("X-Header2", "Value2");
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать()
- .УстановитьURL(URL)
- .ДобавитьBearerАвторизацию("1111")
- .ДобавитьЗаголовок("X-Header3", "BadValue") // <---
- .ДобавитьЗаголовок("X-Header4", "BadValue")
- .УстановитьЗаголовки(Заголовки, Истина) // <---
- .ОбработатьЗапрос("GET")
- .ВернутьОтветКакJSONКоллекцию();
-
- Обработать(Результат, "HTTPКлиент", "ДобавитьЗаголовок", "Замена");
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать()
- .УстановитьURL(URL)
- .ДобавитьBearerАвторизацию("1111")
- .ДобавитьЗаголовок("X-Header3", "BadValue") // <---
- .ДобавитьЗаголовок("X-Header4", "BadValue")
- .УстановитьЗаголовки(Заголовки) // <---
- .ОбработатьЗапрос("GET")
- .ВернутьОтветКакJSONКоллекцию();
-
- Обработать(Результат, "HTTPКлиент", "ДобавитьЗаголовок", "Дополнение");
-
-КонецПроцедуры
-
-Процедура HTTPКлиент_ДобавитьBasicАвторизацию(ПараметрыФункции)
-
- URL = ПараметрыФункции["HTTP_URL"];
- URL = URL + "/get";
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать()
- .УстановитьURL(URL)
- .ДобавитьBasicАвторизацию("user", "password") // <---
- .ОбработатьЗапрос("GET")
- .ВернутьОтветКакJSONКоллекцию();
-
- // END
-
- Обработать(Результат, "HTTPКлиент", "ДобавитьBasicАвторизацию");
-
-КонецПроцедуры
-
-Процедура HTTPКлиент_ДобавитьBearerАвторизацию(ПараметрыФункции)
-
- URL = ПараметрыФункции["HTTP_URL"];
- URL = URL + "/get";
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать()
- .УстановитьURL(URL)
- .ДобавитьBearerАвторизацию("123123") // <---
- .ОбработатьЗапрос("GET")
- .ВернутьОтветКакJSONКоллекцию();
-
- // END
-
- Обработать(Результат, "HTTPКлиент", "ДобавитьBearerАвторизацию");
-
-КонецПроцедуры
-
-Процедура HTTPКлиент_ДобавитьAWS4Авторизацию(ПараметрыФункции)
-
- URL = ПараметрыФункции["HTTP_URL"];
- URL = URL + "/get";
-
- AccessKey = "AccessKey";
- SecretKey = "SecretKey";
- Region = "Region";
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать()
- .УстановитьURL(URL)
- .ДобавитьAWS4Авторизацию(AccessKey, SecretKey, Region) // <---
- .ОбработатьЗапрос("GET")
- .ВернутьОтветКакJSONКоллекцию();
-
- // END
-
- Обработать(Результат, "HTTPКлиент", "ДобавитьAWS4Авторизацию");
-
-КонецПроцедуры
-
-Процедура HTTPКлиент_ДобавитьOAuthV1Авторизацию(ПараметрыФункции)
-
- URL = ПараметрыФункции["HTTP_URL"];
- URL = URL + "/get";
-
- Токен = "***";
- Секрет = "***";
- КлючПользователя = "***";
- СекретПользователя = "***";
- Версия = "1.0";
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать(URL)
- .ДобавитьOAuthV1Авторизацию(Токен, Секрет, КлючПользователя, СекретПользователя, Версия) // <---
- .ОбработатьЗапрос("GET")
- .ВернутьОтветКакJSONКоллекцию();
-
- // END
-
- Обработать(Результат, "HTTPКлиент", "ДобавитьOAuthV1Авторизацию");
-
-КонецПроцедуры
-
-Процедура HTTPКлиент_УстановитьАлгоритмOAuthV1(ПараметрыФункции)
-
- URL = ПараметрыФункции["HTTP_URL"];
- URL = URL + "/get";
-
- Токен = "***";
- Секрет = "***";
- КлючПользователя = "***";
- СекретПользователя = "***";
- Версия = "1.0";
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать(URL)
- .ДобавитьOAuthV1Авторизацию(Токен, Секрет, КлючПользователя, СекретПользователя, Версия)
- .УстановитьАлгоритмOAuthV1("HMAC", "SHA1") // <---
- .ОбработатьЗапрос("GET")
- .ВернутьОтветКакJSONКоллекцию();
-
- // END
-
- Обработать(Результат, "HTTPКлиент", "УстановитьАлгоритмOAuthV1");
-
-КонецПроцедуры
-
-Процедура HTTPКлиент_ОбработатьЗапрос(ПараметрыФункции)
-
- URL = ПараметрыФункции["HTTP_URL"];
- URL = URL + "/get";
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать()
- .УстановитьURL(URL)
- .ОбработатьЗапрос("GET") // <---
- .ВернутьОтветКакJSONКоллекцию();
-
- // END
-
- Обработать(Результат, "HTTPКлиент", "ОбработатьЗапрос");
-
-КонецПроцедуры
-
-Процедура HTTPКлиент_ВыполнитьЗапрос(ПараметрыФункции)
-
- URL = ПараметрыФункции["HTTP_URL"];
- URL = URL + "/get";
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать()
- .УстановитьURL(URL)
- .ОбработатьЗапрос("GET", Ложь)
- .ВыполнитьЗапрос() // <---
- .ВернутьОтветКакJSONКоллекцию();
-
- // END
-
- Обработать(Результат, "HTTPКлиент", "ВыполнитьЗапрос");
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать()
- .УстановитьURL(URL)
- .ОбработатьЗапрос("GET", Ложь)
- .ВернутьОтвет(Истина);
-
- Обработать(Результат, "HTTPКлиент", "ВыполнитьЗапрос", "Без выполнения");
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать()
- .УстановитьURL(URL)
- .ОбработатьЗапрос("GET", Ложь)
- .ВыполнитьЗапрос()
- .ВернутьОтвет(Истина);
-
- Обработать(Результат, "HTTPКлиент", "ВыполнитьЗапрос", "Выполнение");
-
-КонецПроцедуры
-
-Процедура HTTPКлиент_ВернутьЗапрос(ПараметрыФункции)
-
- URL = ПараметрыФункции["HTTP_URL"];
- URL = URL + "/get";
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать()
- .УстановитьURL(URL)
- .ОбработатьЗапрос("GET", Ложь)
- .ВернутьЗапрос(); // <---
-
- // END
-
- Обработать(Результат, "HTTPКлиент", "ВернутьЗапрос");
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать()
- .УстановитьURL(URL)
- .ВернутьЗапрос(Истина);
-
- Обработать(Результат, "HTTPКлиент", "ВернутьЗапрос", "Принудительно");
-
-КонецПроцедуры
-
-Процедура HTTPКлиент_ВернутьСоединение(ПараметрыФункции)
-
- URL = ПараметрыФункции["HTTP_URL"];
- URL = URL + "/get";
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать()
- .УстановитьURL(URL)
- .ОбработатьЗапрос("GET", Ложь)
- .ВернутьСоединение(); // <---
-
- // END
-
- Обработать(Результат, "HTTPКлиент", "ВернутьСоединение");
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать()
- .УстановитьURL(URL)
- .ВернутьСоединение(Истина);
-
- Обработать(Результат, "HTTPКлиент", "ВернутьСоединение", "Принудительно");
-
-КонецПроцедуры
-
-Процедура HTTPКлиент_ВернутьОтвет(ПараметрыФункции)
-
- URL = ПараметрыФункции["HTTP_URL"];
- URL = URL + "/post";
-
- Картинка = ПараметрыФункции["Picture"]; // URL, Путь или Двоичные данные
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать(URL)
- .УстановитьДвоичноеТело(Картинка)
- .ОбработатьЗапрос("POST")
- .ВернутьОтвет(); // <---
-
- // END
-
- Обработать(Результат, "HTTPКлиент", "ВернутьОтвет");
-
-КонецПроцедуры
-
-Процедура HTTPКлиент_ВернутьОтветКакJSONКоллекцию(ПараметрыФункции)
-
- URL = ПараметрыФункции["HTTP_URL"];
- URL = URL + "/post";
-
- Картинка = ПараметрыФункции["Picture"]; // URL, Путь или Двоичные данные
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать(URL)
- .УстановитьДвоичноеТело(Картинка)
- .ОбработатьЗапрос("POST")
- .ВернутьОтветКакJSONКоллекцию(); // <---
-
- // END
-
- Обработать(Результат, "HTTPКлиент", "ВернутьОтветКакJSONКоллекцию");
-
-КонецПроцедуры
-
-Процедура HTTPКлиент_ВернутьОтветКакДвоичныеДанные(ПараметрыФункции)
-
- URL = ПараметрыФункции["HTTP_URL"];
- URL = URL + "/post";
-
- Картинка = ПараметрыФункции["Picture"]; // URL, Путь или Двоичные данные
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать(URL)
- .УстановитьДвоичноеТело(Картинка)
- .ОбработатьЗапрос("POST")
- .ВернутьОтветКакДвоичныеДанные(); // <---
-
- // END
-
- Обработать(Результат, "HTTPКлиент", "ВернутьОтветКакДвоичныеДанные");
-
-КонецПроцедуры
-
-Процедура HTTPКлиент_ВернутьОтветКакСтроку(ПараметрыФункции)
-
- URL = ПараметрыФункции["HTTP_URL"];
- URL = URL + "/post";
-
- Картинка = ПараметрыФункции["Picture"]; // URL, Путь или Двоичные данные
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать(URL)
- .УстановитьДвоичноеТело(Картинка)
- .ОбработатьЗапрос("POST")
- .ВернутьОтветКакСтроку(); // <---
-
- // END
-
- Обработать(Результат, "HTTPКлиент", "ВернутьОтветКакСтроку");
-
-КонецПроцедуры
-
-Процедура HTTPКлиент_ВернутьИмяФайлаТелаОтвета(ПараметрыФункции)
-
- URL = ПараметрыФункции["HTTP_URL"];
- URL = URL + "/get";
-
- ИВФ = ПолучитьИмяВременногоФайла();
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать(URL)
- .УстановитьФайлОтвета(ИВФ) // <---
- .ОбработатьЗапрос("GET")
- .ВернутьИмяФайлаТелаОтвета();
-
- // END
-
- Обработать(Результат, "HTTPКлиент", "ВернутьИмяФайлаТелаОтвета", , ИВФ);
-
- OPI_Инструменты.УдалитьФайлВПопытке(ИВФ, "Не удалось удалить временный файл после теста!");
-
-КонецПроцедуры
-
-Процедура HTTPКлиент_УстановитьПрокси(ПараметрыФункции)
-
- URL = ПараметрыФункции["HTTP_URL"];
- URL = URL + "/get";
-
- НастройкиПрокси = Новый ИнтернетПрокси;
- НастройкиПрокси.Установить("https", "proxy.com", 443, "user", "password", Ложь);
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать()
- .УстановитьURL(URL)
- .УстановитьПрокси(НастройкиПрокси) // <---
- .ОбработатьЗапрос("GET", Ложь)
- .ВернутьСоединение();
-
- // END
-
- Обработать(Результат, "HTTPКлиент", "УстановитьПрокси");
-
-КонецПроцедуры
-
-Процедура HTTPКлиент_УстановитьТаймаут(ПараметрыФункции)
-
- URL = ПараметрыФункции["HTTP_URL"];
- URL = URL + "/get";
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать()
- .УстановитьURL(URL)
- .УстановитьТаймаут(60) // <---
- .ОбработатьЗапрос("GET", Ложь)
- .ВернутьСоединение();
-
- // END
-
- Обработать(Результат, "HTTPКлиент", "УстановитьТаймаут");
-
-КонецПроцедуры
-
-Процедура HTTPКлиент_ИспользоватьКодированиеURL(ПараметрыФункции)
-
- URL = ПараметрыФункции["HTTP_URL"];
- URL = URL + "/get";
-
- СтруктураПараметров = Новый Структура;
- СтруктураПараметров.Вставить("param1", "search?text");
- СтруктураПараметров.Вставить("param2", "John Doe");
- СтруктураПараметров.Вставить("param3", "value&another");
- СтруктураПараметров.Вставить("param4", "кириллица");
- СтруктураПараметров.Вставить("param5", "");
-
- БезКодирования = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать("https://example.com/page")
- .УстановитьПараметрыURL(СтруктураПараметров)
- .ИспользоватьКодированиеURL(Ложь) // <---
- .ОбработатьЗапрос("GET", Ложь)
- .ВернутьЗапрос()
- .АдресРесурса;
-
- СКодированием = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать("https://example.com/page")
- .УстановитьПараметрыURL(СтруктураПараметров)
- .ОбработатьЗапрос("GET", Ложь)
- .ВернутьЗапрос()
- .АдресРесурса;
-
- // END
-
- Результат = Новый Соответствие;
- Результат.Вставить("Без кодирования", БезКодирования);
- Результат.Вставить("С кодированием" , СКодированием);
-
- Обработать(Результат, "HTTPКлиент", "ИспользоватьКодированиеURL");
-
-КонецПроцедуры
-
-Процедура HTTPКлиент_РазделятьМассивыВURL(ПараметрыФункции)
-
- URL = ПараметрыФункции["HTTP_URL"];
- URL = URL + "/get";
-
- ПараметрМассив = Новый Массив;
- ПараметрМассив.Добавить("val1");
- ПараметрМассив.Добавить("val2");
- ПараметрМассив.Добавить("val3");
-
- СтруктураПараметров = Новый Структура("arrayfield", ПараметрМассив);
-
- Разделение = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать("https://example.com/page")
- .УстановитьПараметрыURL(СтруктураПараметров)
- .РазделятьМассивыВURL(Истина) // <---
- .ОбработатьЗапрос("GET", Ложь)
- .ВернутьЗапрос()
- .АдресРесурса;
-
- РазделениеPhp = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать("https://example.com/page")
- .УстановитьПараметрыURL(СтруктураПараметров)
- .РазделятьМассивыВURL(Истина, Истина) // <---
- .ОбработатьЗапрос("GET", Ложь)
- .ВернутьЗапрос()
- .АдресРесурса;
-
- БезРазделения = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать("https://example.com/page")
- .УстановитьПараметрыURL(СтруктураПараметров)
- .ОбработатьЗапрос("GET", Ложь)
- .ВернутьЗапрос()
- .АдресРесурса;
-
- // END
-
- Результат = Новый Соответствие;
- Результат.Вставить("Без разделения", БезРазделения);
- Результат.Вставить("Разделение" , Разделение);
- Результат.Вставить("PHP" , РазделениеPhp);
-
- Обработать(Результат, "HTTPКлиент", "РазделятьМассивыВURL");
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область OpenAI
-
-Процедура OpenAI_ПолучитьОтвет(ПараметрыФункции)
-
- URL = ПараметрыФункции["OpenAI_URL"];
- Токен = ПараметрыФункции["OpenAI_Token"];
-
- // Текстовые сообщения
-
- Сообщения = Новый Массив;
- Сообщения.Добавить(OPI_OpenAI.ПолучитьСтруктуруСообщения("user" , "What is 1C:Enterprise?"));
- Сообщения.Добавить(OPI_OpenAI.ПолучитьСтруктуруСообщения("assistant", "1C:Enterprise is a full-stack, low-code platform"));
- Сообщения.Добавить(OPI_OpenAI.ПолучитьСтруктуруСообщения("user" , "When the first version was released?"));
-
- Модель = "smolvlm-256m-instruct";
-
- Результат = OPI_OpenAI.ПолучитьОтвет(URL, Токен, Модель, Сообщения);
-
- Обработать(Результат, "OpenAI", "ПолучитьОтвет"); // SKIP
-
- // Картинки
-
- Модель = "moondream2-20250414";
- Файл = ПараметрыФункции["Picture"]; // URL, Путь или Двоичные данные
- ИмяФайла = СтрШаблон("%1.png", Строка(Новый УникальныйИдентификатор()));
- Назначение = "user_data";
-
- Сообщения = Новый Массив;
-
- ЗагрузкаКартинки = OPI_OpenAI.ЗагрузитьФайл(URL, Токен, ИмяФайла, Файл, Назначение);
-
- Обработать(ЗагрузкаКартинки, "OpenAI", "ПолучитьОтвет", "Загрузка картинки"); // SKIP
-
- IDКартинки = ЗагрузкаКартинки["id"];
-
- Описание = OPI_OpenAI.ПолучитьСтруктуруСообщенияКартинки("user", IDКартинки, "What is in this image?");
-
- Сообщения.Добавить(Описание);
-
- Результат = OPI_OpenAI.ПолучитьОтвет(URL, Токен, Модель, Сообщения);
-
- OPI_OpenAI.УдалитьФайл(URL, Токен, IDКартинки);
-
- // END
-
- Обработать(Результат, "OpenAI", "ПолучитьОтвет", "Картинка");
-
-КонецПроцедуры
-
-Процедура OpenAI_ПолучитьПредставления(ПараметрыФункции)
-
- URL = ПараметрыФункции["OpenAI_URL"];
- Токен = ПараметрыФункции["OpenAI_Token"];
-
- Текст = "What is 1C:Enterprise?";
- Модель = "arcee-ai_afm-4.5b";
-
- Результат = OPI_OpenAI.ПолучитьПредставления(URL, Токен, Модель, Текст);
-
- // END
-
- Обработать(Результат, "OpenAI", "ПолучитьПредставления");
-
-КонецПроцедуры
-
-Процедура OpenAI_СоздатьАссистента(ПараметрыФункции)
-
- URL = ПараметрыФункции["OpenAI_URL"];
- Токен = ПараметрыФункции["OpenAI_Token"];
-
- Инструкция = "You are a personal math tutor. When asked a question, write and run Python code to answer the question.";
- Модель = "smolvlm-256m-instruct";
- Имя = "Math tutor";
-
- Результат = OPI_OpenAI.СоздатьАссистента(URL, Токен, Модель, Имя, Инструкция);
-
- // END
-
- Обработать(Результат, "OpenAI", "СоздатьАссистента", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура OpenAI_УдалитьАссистента(ПараметрыФункции)
-
- URL = ПараметрыФункции["OpenAI_URL"];
- Токен = ПараметрыФункции["OpenAI_Token"];
-
- IDАссистента = ПараметрыФункции["OpenAI_Assistant"];
-
- Результат = OPI_OpenAI.УдалитьАссистента(URL, Токен, IDАссистента);
-
- // END
-
- Обработать(Результат, "OpenAI", "УдалитьАссистента", , IDАссистента);
-
-КонецПроцедуры
-
-Процедура OpenAI_ПолучитьАссистента(ПараметрыФункции)
-
- URL = ПараметрыФункции["OpenAI_URL"];
- Токен = ПараметрыФункции["OpenAI_Token"];
-
- IDАссистента = ПараметрыФункции["OpenAI_Assistant"];
-
- Результат = OPI_OpenAI.ПолучитьАссистента(URL, Токен, IDАссистента);
-
- // END
-
- Обработать(Результат, "OpenAI", "ПолучитьАссистента");
-
-КонецПроцедуры
-
-Процедура OpenAI_ПолучитьСписокАссистентов(ПараметрыФункции)
-
- URL = ПараметрыФункции["OpenAI_URL"];
- Токен = ПараметрыФункции["OpenAI_Token"];
-
- Количество = 2;
- ДопПараметры = Новый Структура("after,order", "asst_2", "desc");
-
- Результат = OPI_OpenAI.ПолучитьСписокАссистентов(URL, Токен, Количество, ДопПараметры);
-
- // END
-
- Обработать(Результат, "OpenAI", "ПолучитьСписокАссистентов");
-
-КонецПроцедуры
-
-Процедура OpenAI_ЗагрузитьФайл(ПараметрыФункции)
-
- URL = ПараметрыФункции["OpenAI_URL"];
- Токен = ПараметрыФункции["OpenAI_Token"];
-
- Файл = ПараметрыФункции["Picture"]; // URL, Путь или Двоичные данные
-
- ИмяФайла = СтрШаблон("%1.png", Строка(Новый УникальныйИдентификатор()));
- Назначение = "assistants";
-
- Результат = OPI_OpenAI.ЗагрузитьФайл(URL, Токен, ИмяФайла, Файл, Назначение);
-
- // END
-
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Файл);
- Обработать(Результат, "OpenAI", "ЗагрузитьФайл", , ПараметрыФункции, ИмяФайла, Файл.Размер() + 2);
-
-КонецПроцедуры
-
-Процедура OpenAI_УдалитьФайл(ПараметрыФункции)
-
- URL = ПараметрыФункции["OpenAI_URL"];
- Токен = ПараметрыФункции["OpenAI_Token"];
-
- IDФайла = ПараметрыФункции["OpenAI_File"];
-
- Результат = OPI_OpenAI.УдалитьФайл(URL, Токен, IDФайла);
-
- // END
-
- Обработать(Результат, "OpenAI", "УдалитьФайл", , IDФайла);
-
-КонецПроцедуры
-
-Процедура OpenAI_ПолучитьИнформациюОФайле(ПараметрыФункции)
-
- URL = ПараметрыФункции["OpenAI_URL"];
- Токен = ПараметрыФункции["OpenAI_Token"];
-
- IDФайла = ПараметрыФункции["OpenAI_File"];
-
- Результат = OPI_OpenAI.ПолучитьИнформациюОФайле(URL, Токен, IDФайла);
-
- // END
-
- Обработать(Результат, "OpenAI", "ПолучитьИнформациюОФайле");
-
-КонецПроцедуры
-
-Процедура OpenAI_ПолучитьСписокФайлов(ПараметрыФункции)
-
- URL = ПараметрыФункции["OpenAI_URL"];
- Токен = ПараметрыФункции["OpenAI_Token"];
-
- Результат = OPI_OpenAI.ПолучитьСписокФайлов(URL, Токен);
-
- // END
-
- Обработать(Результат, "OpenAI", "ПолучитьСписокФайлов");
-
-КонецПроцедуры
-
-Процедура OpenAI_СкачатьФайл(ПараметрыФункции)
-
- URL = ПараметрыФункции["OpenAI_URL"];
- Токен = ПараметрыФункции["OpenAI_Token"];
-
- IDФайла = ПараметрыФункции["OpenAI_File"];
-
- Результат = OPI_OpenAI.СкачатьФайл(URL, Токен, IDФайла);
-
- // END
-
- Обработать(Результат, "OpenAI", "СкачатьФайл", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура OpenAI_ПолучитьСтруктуруСообщения(ПараметрыФункции)
-
- Результат = OPI_OpenAI.ПолучитьСтруктуруСообщения("user", "What is 1C:Enterprise?");
-
- // END
-
- Обработать(Результат, "OpenAI", "ПолучитьСтруктуруСообщения");
-
-КонецПроцедуры
-
-Процедура OpenAI_ПолучитьСтруктуруСообщенияКартинки(ПараметрыФункции)
-
- URL = ПараметрыФункции["OpenAI_URL"];
- Токен = ПараметрыФункции["OpenAI_Token"];
- Картинка = ПараметрыФункции["OpenAI_File"];
-
- Результат = OPI_OpenAI.ПолучитьСтруктуруСообщенияКартинки("user", Картинка, "What is in this image?");
-
- // END
-
- Обработать(Результат, "OpenAI", "ПолучитьСтруктуруСообщенияКартинки");
-
-КонецПроцедуры
-
-Процедура OpenAI_СгенерироватьРечь(ПараметрыФункции)
-
- URL = ПараметрыФункции["OpenAI_URL"];
- Токен = ПараметрыФункции["OpenAI_Token"];
-
- Текст = "Attack ships on fire off the shoulder of Orion bright as magnesium";
- Модель = "bark-cpp-small";
-
- ДопПараметры = Новый Структура("response_format", "wav");
-
- Результат = OPI_OpenAI.СгенерироватьРечь(URL, Токен, Модель, Текст, , ДопПараметры);
-
- // END
-
- Обработать(Результат, "OpenAI", "СгенерироватьРечь", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура OpenAI_СоздатьТранскрипцию(ПараметрыФункции)
-
- URL = ПараметрыФункции["OpenAI_URL"];
- Токен = ПараметрыФункции["OpenAI_Token"];
-
- Аудио = ПараметрыФункции["OpenAI_Speech"];
- Модель = "whisper-1";
-
- Результат = OPI_OpenAI.СоздатьТранскрипцию(URL, Токен, Модель, Аудио, "audio/wav");
-
- // END
-
- OPI_Инструменты.УдалитьФайлВПопытке(Аудио, "Не удалось удалить временный файл после теста!");
-
- Обработать(Результат, "OpenAI", "СоздатьТранскрипцию");
-
-КонецПроцедуры
-
-Процедура OpenAI_ПолучитьКартинки(ПараметрыФункции)
-
- URL = ПараметрыФункции["OpenAI_URL"];
- Токен = ПараметрыФункции["OpenAI_Token"];
-
- Модель = "sd-1.5-ggml";
- Описание = OPI_OpenAI.ПолучитьСтруктуруОписанияКартинок("Yellow alpaca", 1, , "64x64");
- Результат = OPI_OpenAI.ПолучитьКартинки(URL, Токен, Модель, Описание);
-
- // END
-
- Обработать(Результат, "OpenAI", "ПолучитьКартинки");
-
-КонецПроцедуры
-
-Процедура OpenAI_ПолучитьСписокМоделей(ПараметрыФункции)
-
- URL = ПараметрыФункции["OpenAI_URL"];
- Токен = ПараметрыФункции["OpenAI_Token"];
-
- Результат = OPI_OpenAI.ПолучитьСписокМоделей(URL, Токен);
-
- // END
-
- Обработать(Результат, "OpenAI", "ПолучитьСписокМоделей");
-
-КонецПроцедуры
-
-Процедура OpenAI_ПолучитьСообщениеАссистента(ПараметрыФункции)
-
- Результат = OPI_OpenAI.ПолучитьСообщениеАссистента("What is 1C:Enterprise?");
-
- // END
-
- Проверка = OPI_OpenAI.ПолучитьСтруктуруСообщения("assistant", "What is 1C:Enterprise?");
- Проверка = OPI_Инструменты.JSONСтрокой(Проверка);
- Результат = OPI_Инструменты.JSONСтрокой(Результат);
-
- Обработать(Результат, "OpenAI", "ПолучитьСообщениеАссистента", , Проверка);
-
-КонецПроцедуры
-
-Процедура OpenAI_ПолучитьСообщениеПользователя(ПараметрыФункции)
-
- Результат = OPI_OpenAI.ПолучитьСообщениеПользователя("What is 1C:Enterprise?", "Vitaly");
-
- // END
-
- Проверка = OPI_OpenAI.ПолучитьСтруктуруСообщения("user", "What is 1C:Enterprise?", "Vitaly");
- Проверка = OPI_Инструменты.JSONСтрокой(Проверка);
- Результат = OPI_Инструменты.JSONСтрокой(Результат);
-
- Обработать(Результат, "OpenAI", "ПолучитьСообщениеПользователя", , Проверка);
-
-КонецПроцедуры
-
-Процедура OpenAI_ПолучитьСообщениеСистемы(ПараметрыФункции)
-
- Результат = OPI_OpenAI.ПолучитьСообщениеСистемы("What is 1C:Enterprise?");
-
- // END
-
- Проверка = OPI_OpenAI.ПолучитьСтруктуруСообщения("system", "What is 1C:Enterprise?");
- Проверка = OPI_Инструменты.JSONСтрокой(Проверка);
- Результат = OPI_Инструменты.JSONСтрокой(Результат);
-
- Обработать(Результат, "OpenAI", "ПолучитьСообщениеСистемы", , Проверка);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область MSSQL
-
-Процедура MSSQL_СформироватьСтрокуПодключения(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
-
- Результат = OPI_MSSQL.СформироватьСтрокуПодключения(Адрес, , Логин, Пароль);
-
- // END
-
- Результат = СтрЗаменить(Результат, Пароль, "***");
- Результат = СтрЗаменить(Результат, Адрес , "127.0.0.1");
-
- Обработать(Результат, "MSSQL", "СформироватьСтрокуПодключения");
-
-КонецПроцедуры
-
-Процедура MSSQL_ОткрытьСоединение(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "SA";
- Пароль = ПараметрыФункции["PG_Password"];
-
- СтрокаПодключения = OPI_MSSQL.СформироватьСтрокуПодключения(Адрес, , Логин, Пароль);
- НастройкиTLS = OPI_MSSQL.ПолучитьНастройкиTLS(Истина);
-
- Результат = OPI_MSSQL.ОткрытьСоединение(СтрокаПодключения, НастройкиTLS);
-
- // END
-
- Обработать(Результат, "MSSQL", "ОткрытьСоединение");
-
-КонецПроцедуры
-
-Процедура MSSQL_ЗакрытьСоединение(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "SA";
- Пароль = ПараметрыФункции["PG_Password"];
-
- СтрокаПодключения = OPI_MSSQL.СформироватьСтрокуПодключения(Адрес, , Логин, Пароль);
- НастройкиTLS = OPI_MSSQL.ПолучитьНастройкиTLS(Истина);
-
- Соединение = OPI_MSSQL.ОткрытьСоединение(СтрокаПодключения, НастройкиTLS);
- Результат = OPI_MSSQL.ЗакрытьСоединение(Соединение);
-
- // END
-
- OPI_MSSQL.ЗакрытьСоединение(Результат);
-
- Обработать(Результат, "MSSQL", "ЗакрытьСоединение");
-
-КонецПроцедуры
-
-Процедура MSSQL_ЭтоКоннектор(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "SA";
- Пароль = ПараметрыФункции["PG_Password"];
-
- СтрокаПодключения = OPI_MSSQL.СформироватьСтрокуПодключения(Адрес, , Логин, Пароль);
- НастройкиTLS = OPI_MSSQL.ПолучитьНастройкиTLS(Истина);
-
- Соединение = OPI_MSSQL.ОткрытьСоединение(СтрокаПодключения, НастройкиTLS);
- Результат = OPI_MSSQL.ЭтоКоннектор(Соединение);
-
- // END
-
- OPI_MSSQL.ЗакрытьСоединение(Результат);
-
- Обработать(Результат, "MSSQL", "ЭтоКоннектор");
-
-КонецПроцедуры
-
-Процедура MSSQL_ВыполнитьЗапросSQL(ПараметрыФункции)
-
- ТекущаяДата = OPI_Инструменты.ПолучитьТекущуюДату();
- Картинка = ПараметрыФункции["Picture"];
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка); // Картинка - Тип: ДвоичныеДанные
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "SA";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "test_data";
-
- НастройкиTLS = OPI_MSSQL.ПолучитьНастройкиTLS(Истина);
- СтрокаПодключения = OPI_MSSQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль);
- Соединение = OPI_MSSQL.ОткрытьСоединение(СтрокаПодключения, НастройкиTLS);
-
- OPI_MSSQL.УдалитьТаблицу("users" , Соединение); // SKIP
- OPI_MSSQL.УдалитьТаблицу("test_data" , Соединение); // SKIP
- OPI_MSSQL.УдалитьТаблицу("test_table", Соединение); // SKIP
- Обработать(Соединение, "MSSQL", "ВыполнитьЗапросSQL", "Соединение"); // SKIP
-
- // CREATE
-
- ТекстЗапроса = "
- |CREATE TABLE test_table (
- | ID INT PRIMARY KEY,
- | FirstName NVARCHAR(50),
- | LastName NVARCHAR(50),
- | BirthDate DATE,
- | IsEmployed BIT,
- | Salary DECIMAL(10, 2),
- | CreatedAt DATETIME,
- | Age SMALLINT,
- | RowGuid UNIQUEIDENTIFIER,
- | Data VARBINARY(MAX)
- |);";
-
- Результат = OPI_MSSQL.ВыполнитьЗапросSQL(ТекстЗапроса, , , Соединение);
-
- Обработать(Результат, "MSSQL", "ВыполнитьЗапросSQL", "Create"); // SKIP
-
- // INSERT с параметрами
-
- ТекстЗапроса = "
- |INSERT INTO test_table (ID, FirstName, LastName, BirthDate, IsEmployed, Salary, CreatedAt, Age, RowGuid, Data)
- |VALUES (@P1, @P2, @P3, @P4, @P5, @P6, @P7, @P8, @P9, @P10);";
-
- МассивПараметров = Новый Массив;
- МассивПараметров.Добавить(Новый Структура("INT" , 1));
- МассивПараметров.Добавить(Новый Структура("NVARCHAR", "Vitaly"));
- МассивПараметров.Добавить(Новый Структура("NVARCHAR", "Alpaca"));
- МассивПараметров.Добавить(Новый Структура("DATE" , ТекущаяДата));
- МассивПараметров.Добавить(Новый Структура("BIT" , Истина));
- МассивПараметров.Добавить(Новый Структура("DECIMAL" , 10.30));
- МассивПараметров.Добавить(Новый Структура("DATETIME", ТекущаяДата));
- МассивПараметров.Добавить(Новый Структура("SMALLINT", 20));
- МассивПараметров.Добавить(Новый Структура("UUID" , Новый УникальныйИдентификатор));
- МассивПараметров.Добавить(Новый Структура("BYTES" , Картинка));
-
- Результат = OPI_MSSQL.ВыполнитьЗапросSQL(ТекстЗапроса, МассивПараметров, , Соединение);
-
- Обработать(Результат, "MSSQL", "ВыполнитьЗапросSQL", "Insert"); // SKIP
-
- // SELECT (Результат этого запроса приведен в следующем блоке)
-
- ТекстЗапроса = "SELECT FirstName, LastName, BirthDate, IsEmployed, Salary, CreatedAt, Age, RowGuid, Data FROM test_table;";
-
- Результат = OPI_MSSQL.ВыполнитьЗапросSQL(ТекстЗапроса, , , Соединение);
-
- Обработать(Результат, "MSSQL", "ВыполнитьЗапросSQL", , Картинка); // SKIP
-
- ТекстЗапроса = "create table test_data (id INT,first_name NVARCHAR(50),last_name NVARCHAR(50),email NVARCHAR(50),gender NVARCHAR(50),ip_address NVARCHAR(20));"; // SKIP
- Результат = OPI_MSSQL.ВыполнитьЗапросSQL(ТекстЗапроса, , , Соединение); // SKIP
- Обработать(Результат, "MSSQL", "ВыполнитьЗапросSQL", "Test data"); // SKIP
-
- // SQL запрос из файла
-
- ФайлSQL = ПараметрыФункции["SQL2"]; // Двоичные данные, URL или путь к файлу
-
- Результат = OPI_MSSQL.ВыполнитьЗапросSQL(ФайлSQL, , , Соединение);
-
- Обработать(Результат, "MSSQL", "ВыполнитьЗапросSQL", "Файл"); // SKIP
-
- Закрытие = OPI_MSSQL.ЗакрытьСоединение(Соединение);
-
- // END
-
- Обработать(Закрытие, "MSSQL", "ВыполнитьЗапросSQL", "Запрос"); // SKIP
-
-КонецПроцедуры
-
-Процедура MSSQL_ПолучитьНастройкиTLS(ПараметрыФункции)
-
- Результат = OPI_MSSQL.ПолучитьНастройкиTLS(Истина);
-
- // END
-
- Обработать(Результат, "MSSQL", "ПолучитьНастройкиTLS");
-
-КонецПроцедуры
-
-Процедура MSSQL_СоздатьБазуДанных(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "SA";
- Пароль = ПараметрыФункции["PG_Password"];
-
- НастройкиTLS = OPI_MSSQL.ПолучитьНастройкиTLS(Истина);
- СтрокаПодключения = OPI_MSSQL.СформироватьСтрокуПодключения(Адрес, , Логин, Пароль);
-
- База = "testbase1";
-
- OPI_MSSQL.УдалитьБазуДанных(База, СтрокаПодключения, НастройкиTLS); // SKIP
-
- // При использовании строки подключения инициализируется новое соединение,
- // которое будет закрыто после выполнения функции.
- // В случае выполнения нескольких операций желательно использовать одно соединение,
- // заранее созданное функцией ОткрытьСоединение()
- Результат = OPI_MSSQL.СоздатьБазуДанных(База, СтрокаПодключения, НастройкиTLS);
-
- // END
-
- Обработать(Результат, "MSSQL", "СоздатьБазуДанных");
-
- База = "testbase2";
- OPI_MSSQL.УдалитьБазуДанных(База, СтрокаПодключения, НастройкиTLS);
-
- Подключение = OPI_MSSQL.ОткрытьСоединение(СтрокаПодключения, НастройкиTLS);
-
- Обработать(Подключение, "MSSQL", "СоздатьБазуДанных", "Открытие");
-
- Результат = OPI_MSSQL.СоздатьБазуДанных(База, Подключение);
-
- Обработать(Результат, "MSSQL", "СоздатьБазуДанных", "Создание");
-
- Результат = OPI_MSSQL.СоздатьБазуДанных(База, Подключение);
-
- Обработать(Результат, "MSSQL", "СоздатьБазуДанных", "Существующая");
-
- OPI_MSSQL.ЗакрытьСоединение(Подключение);
-
-КонецПроцедуры
-
-Процедура MSSQL_СоздатьТаблицу(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "SA";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "testbase1";
-
- НастройкиTLS = OPI_MSSQL.ПолучитьНастройкиTLS(Истина);
- СтрокаПодключения = OPI_MSSQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль);
-
- Таблица = "testtable";
-
- СтруктураКолонок = Новый Структура;
- СтруктураКолонок.Вставить("tinyint_field" , "tinyint");
- СтруктураКолонок.Вставить("smallint_field" , "smallint");
- СтруктураКолонок.Вставить("int_field" , "int");
- СтруктураКолонок.Вставить("bigint_field" , "bigint");
- СтруктураКолонок.Вставить("float24_field" , "float(24)");
- СтруктураКолонок.Вставить("float53_field" , "float(53)");
- СтруктураКолонок.Вставить("bit_field" , "bit");
- СтруктураКолонок.Вставить("nvarchar_field" , "nvarchar(4000)");
- СтруктураКолонок.Вставить("varbinary_field", "varbinary(max)");
- СтруктураКолонок.Вставить("uid_field" , "uniqueidentifier");
- СтруктураКолонок.Вставить("numeric_field" , "numeric(5,3)"); // Или decimal
- СтруктураКолонок.Вставить("xml_field" , "xml");
- СтруктураКолонок.Вставить("date_field" , "date");
- СтруктураКолонок.Вставить("time_field" , "time");
- СтруктураКолонок.Вставить("dto_field" , "datetimeoffset");
- СтруктураКолонок.Вставить("datetime_field" , "datetime");
-
- // При использовании строки подключения инициализируется новое соединение,
- // которое будет закрыто после выполнения функции.
- // В случае выполнения нескольких операций желательно использовать одно соединение,
- // заранее созданное функцией ОткрытьСоединение()
- Результат = OPI_MSSQL.СоздатьТаблицу(Таблица, СтруктураКолонок, СтрокаПодключения, НастройкиTLS);
-
- // END
-
- Обработать(Результат, "MSSQL", "СоздатьТаблицу");
-
- Таблица = "АБВ ГДЕ";
-
- Результат = OPI_MSSQL.СоздатьТаблицу(Таблица, СтруктураКолонок, СтрокаПодключения, НастройкиTLS);
-
- Обработать(Результат, "MSSQL", "СоздатьТаблицу", "Ошибка имени");
-
- Таблица = "somename";
- СтруктураКолонок.Вставить("wtf_field", "WTF");
-
- Результат = OPI_MSSQL.СоздатьТаблицу(Таблица, СтруктураКолонок, СтрокаПодключения, НастройкиTLS);
-
- Обработать(Результат, "MSSQL", "СоздатьТаблицу", "Ошибка типа");
-
-КонецПроцедуры
-
-Процедура MSSQL_ДобавитьЗаписи(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "SA";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "testbase1";
-
- НастройкиTLS = OPI_MSSQL.ПолучитьНастройкиTLS(Истина);
- СтрокаПодключения = OPI_MSSQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль);
-
- Таблица = "testtable";
- МассивЗаписей = Новый Массив;
-
- Картинка = ПараметрыФункции["Picture"];
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка); // Картинка - Тип: ДвоичныеДанные
-
- XML = "
- |
- | Пример
- | 123
- |
- |
- | Тест
- | 456
- |
- |";
-
- ТекущаяДата = OPI_Инструменты.ПолучитьТекущуюДату();
- ТекущаяДатаЧП = OPI_Инструменты.ДатаRFC3339(ТекущаяДата, "+05:00");
-
- СтруктураЗаписи = Новый Структура;
- СтруктураЗаписи.Вставить("tinyint_field" , Новый Структура("TINYINT" , 5));
- СтруктураЗаписи.Вставить("smallint_field" , Новый Структура("SMALLINT" , 2000));
- СтруктураЗаписи.Вставить("int_field" , Новый Структура("INT" , 200000));
- СтруктураЗаписи.Вставить("bigint_field" , Новый Структура("BIGINT" , 20000000000));
- СтруктураЗаписи.Вставить("float24_field" , Новый Структура("FLOAT24" , 10.1234567));
- СтруктураЗаписи.Вставить("float53_field" , Новый Структура("FLOAT53" , 10.123456789123456));
- СтруктураЗаписи.Вставить("bit_field" , Новый Структура("BIT" , Истина));
- СтруктураЗаписи.Вставить("nvarchar_field" , Новый Структура("NVARCHAR" , "Some text"));
- СтруктураЗаписи.Вставить("varbinary_field", Новый Структура("BYTES" , Картинка));
- СтруктураЗаписи.Вставить("uid_field" , Новый Структура("UUID" , Новый УникальныйИдентификатор));
- СтруктураЗаписи.Вставить("numeric_field" , Новый Структура("NUMERIC" , 5.333));
- СтруктураЗаписи.Вставить("xml_field" , Новый Структура("XML" , XML));
- СтруктураЗаписи.Вставить("date_field" , Новый Структура("DATE" , ТекущаяДата));
- СтруктураЗаписи.Вставить("time_field" , Новый Структура("TIME" , ТекущаяДата));
- СтруктураЗаписи.Вставить("dto_field" , Новый Структура("DATETIMEOFFSET", ТекущаяДатаЧП));
- СтруктураЗаписи.Вставить("datetime_field" , Новый Структура("DATETIME" , ТекущаяДата));
-
- МассивЗаписей.Добавить(СтруктураЗаписи);
-
- // При использовании строки подключения инициализируется новое соединение,
- // которое будет закрыто после выполнения функции.
- // В случае выполнения нескольких операций желательно использовать одно соединение,
- // заранее созданное функцией ОткрытьСоединение()
- Результат = OPI_MSSQL.ДобавитьЗаписи(Таблица, МассивЗаписей, Истина, СтрокаПодключения, НастройкиTLS);
-
- // END
-
- Обработать(Результат, "MSSQL", "ДобавитьЗаписи");
-
-КонецПроцедуры
-
-Процедура MSSQL_ПолучитьЗаписи(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "SA";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "testbase1";
-
- НастройкиTLS = OPI_MSSQL.ПолучитьНастройкиTLS(Истина);
- СтрокаПодключения = OPI_MSSQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль);
-
- // Все записи без отборов
-
- Таблица = "testtable";
-
- // При использовании строки подключения инициализируется новое соединение,
- // которое будет закрыто после выполнения функции.
- // В случае выполнения нескольких операций желательно использовать одно соединение,
- // заранее созданное функцией ОткрытьСоединение()
- Результат = OPI_MSSQL.ПолучитьЗаписи(Таблица, , , , , СтрокаПодключения, НастройкиTLS);
-
- Обработать(Результат, "MSSQL", "ПолучитьЗаписи"); // SKIP
-
- // Отборы, выбранные поля, количество и сортировка
-
- СтрокаПодключения = OPI_MSSQL.СформироватьСтрокуПодключения(Адрес, "test_data", Логин, Пароль);
-
- Таблица = "test_data";
-
- Поля = Новый Массив;
- Поля.Добавить("first_name");
- Поля.Добавить("last_name");
- Поля.Добавить("email");
-
- Фильтры = Новый Массив;
-
- СтруктураФильтра1 = Новый Структура;
-
- СтруктураФильтра1.Вставить("field", "gender");
- СтруктураФильтра1.Вставить("type" , "=");
- СтруктураФильтра1.Вставить("value", "Male");
- СтруктураФильтра1.Вставить("union", "AND");
- СтруктураФильтра1.Вставить("raw" , Ложь);
-
- СтруктураФильтра2 = Новый Структура;
-
- СтруктураФильтра2.Вставить("field", "id");
- СтруктураФильтра2.Вставить("type" , "BETWEEN");
- СтруктураФильтра2.Вставить("value", "20 AND 50");
- СтруктураФильтра2.Вставить("raw" , Истина);
-
- Фильтры.Добавить(СтруктураФильтра1);
- Фильтры.Добавить(СтруктураФильтра2);
-
- Сортировка = Новый Структура("ip_address", "DESC");
- Количество = 5;
-
- Результат = OPI_MSSQL.ПолучитьЗаписи(Таблица, Поля, Фильтры, Сортировка, Количество, СтрокаПодключения, НастройкиTLS);
-
- // END
-
- Обработать(Результат, "MSSQL", "ПолучитьЗаписи", "Отборы");
-
-КонецПроцедуры
-
-Процедура MSSQL_ОбновитьЗаписи(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "SA";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "test_data";
-
- НастройкиTLS = OPI_MSSQL.ПолучитьНастройкиTLS(Истина);
- СтрокаПодключения = OPI_MSSQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль);
-
- Таблица = "test_data";
-
- СтруктураПолей = Новый Структура;
- СтруктураПолей.Вставить("ip_address", Новый Структура("VARCHAR", "127.0.0.1"));
-
- Фильтры = Новый Массив;
-
- СтруктураФильтра = Новый Структура;
-
- СтруктураФильтра.Вставить("field", "gender");
- СтруктураФильтра.Вставить("type" , "=");
- СтруктураФильтра.Вставить("value", Новый Структура("NVARCHAR", "Male"));
- СтруктураФильтра.Вставить("raw" , Ложь);
-
- Фильтры.Добавить(СтруктураФильтра);
-
- Количество = OPI_MSSQL.ПолучитьЗаписи(Таблица, , Фильтры, , , СтрокаПодключения, НастройкиTLS); // SKIP
- Обработать(Количество, "MSSQL", "ОбновитьЗаписи", "Количество"); // SKIP
- Количество = Количество["data"].Количество(); // SKIP
-
- // При использовании строки подключения инициализируется новое соединение,
- // которое будет закрыто после выполнения функции.
- // В случае выполнения нескольких операций желательно использовать одно соединение,
- // заранее созданное функцией ОткрытьСоединение()
- Результат = OPI_MSSQL.ОбновитьЗаписи(Таблица, СтруктураПолей, СтруктураФильтра, СтрокаПодключения, НастройкиTLS);
-
- // END
-
- Обработать(Результат, "MSSQL", "ОбновитьЗаписи");
-
- Проверка = OPI_MSSQL.ПолучитьЗаписи(Таблица, "['ip_address']", Фильтры, , , СтрокаПодключения, НастройкиTLS);
-
- Обработать(Проверка, "MSSQL", "ОбновитьЗаписи", "Проверка", Количество, СтруктураПолей);
-
-КонецПроцедуры
-
-Процедура MSSQL_УдалитьЗаписи(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "SA";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "test_data";
-
- НастройкиTLS = OPI_MSSQL.ПолучитьНастройкиTLS(Истина);
- СтрокаПодключения = OPI_MSSQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль);
-
- Таблица = "test_data";
-
- Фильтры = Новый Массив;
-
- СтруктураФильтра = Новый Структура;
-
- СтруктураФильтра.Вставить("field", "gender");
- СтруктураФильтра.Вставить("type" , "=");
- СтруктураФильтра.Вставить("value", Новый Структура("NVARCHAR", "Male"));
- СтруктураФильтра.Вставить("raw" , Ложь);
- СтруктураФильтра.Вставить("union", "AND");
-
- Фильтры.Добавить(СтруктураФильтра);
-
- СтруктураФильтра = Новый Структура;
-
- СтруктураФильтра.Вставить("field", "ip_address");
- СтруктураФильтра.Вставить("type" , "=");
- СтруктураФильтра.Вставить("value", Новый Структура("NVARCHAR", "127.0.0.1"));
- СтруктураФильтра.Вставить("raw" , Ложь);
-
- Получение = OPI_MSSQL.ПолучитьЗаписи(Таблица, , Фильтры, , , СтрокаПодключения, НастройкиTLS); // SKIP
-
- // При использовании строки подключения инициализируется новое соединение,
- // которое будет закрыто после выполнения функции.
- // В случае выполнения нескольких операций желательно использовать одно соединение,
- // заранее созданное функцией ОткрытьСоединение()
- Результат = OPI_MSSQL.УдалитьЗаписи(Таблица, Фильтры, СтрокаПодключения, НастройкиTLS);
-
- // END
-
- Обработать(Получение, "MSSQL", "УдалитьЗаписи", "Получение");
-
- Количество = Получение["data"].Количество();
- Остаток = 100 - Количество;
-
- Обработать(Результат, "MSSQL", "УдалитьЗаписи");
-
- Результат = OPI_MSSQL.ПолучитьЗаписи(Таблица, , , , , СтрокаПодключения, НастройкиTLS);
-
- Обработать(Результат, "MSSQL", "УдалитьЗаписи", "Проверка", Остаток);
-
-КонецПроцедуры
-
-Процедура MSSQL_УдалитьТаблицу(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "SA";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "testbase1";
-
- НастройкиTLS = OPI_MSSQL.ПолучитьНастройкиTLS(Истина);
- СтрокаПодключения = OPI_MSSQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль);
-
- Таблица = "testtable";
-
- // При использовании строки подключения инициализируется новое соединение,
- // которое будет закрыто после выполнения функции.
- // В случае выполнения нескольких операций желательно использовать одно соединение,
- // заранее созданное функцией ОткрытьСоединение()
- Результат = OPI_MSSQL.УдалитьТаблицу(Таблица, СтрокаПодключения, НастройкиTLS);
-
- // END
-
- Обработать(Результат, "MSSQL", "УдалитьТаблицу");
-
- База = "test_data";
- Таблица = "test_data";
-
- СтрокаПодключения = OPI_MSSQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль);
- Результат = OPI_MSSQL.УдалитьТаблицу(Таблица, СтрокаПодключения, НастройкиTLS);
-
- Обработать(Результат, "MSSQL", "УдалитьТаблицу", "Тест");
-
-КонецПроцедуры
-
-Процедура MSSQL_УдалитьБазуДанных(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "SA";
- Пароль = ПараметрыФункции["PG_Password"];
-
- НастройкиTLS = OPI_MSSQL.ПолучитьНастройкиTLS(Истина);
- СтрокаПодключения = OPI_MSSQL.СформироватьСтрокуПодключения(Адрес, , Логин, Пароль);
-
- База = "testbase1";
-
- // При использовании строки подключения инициализируется новое соединение,
- // которое будет закрыто после выполнения функции.
- // В случае выполнения нескольких операций желательно использовать одно соединение,
- // заранее созданное функцией ОткрытьСоединение()
- Результат = OPI_MSSQL.УдалитьБазуДанных(База, СтрокаПодключения, НастройкиTLS);
-
- // END
-
- Обработать(Результат, "MSSQL", "УдалитьБазуДанных");
-
- База = "testbase2";
-
- Подключение = OPI_MSSQL.ОткрытьСоединение(СтрокаПодключения, НастройкиTLS);
-
- Обработать(Подключение, "MSSQL", "УдалитьБазуДанных", "Открытие");
-
- Результат = OPI_MSSQL.УдалитьБазуДанных(База, Подключение);
-
- Обработать(Результат, "MSSQL", "УдалитьБазуДанных", "Удаление");
-
- Результат = OPI_MSSQL.УдалитьБазуДанных(База, Подключение);
-
- Обработать(Результат, "MSSQL", "УдалитьБазуДанных", "Ошибка");
-
- Закрытие = OPI_MSSQL.ЗакрытьСоединение(Подключение);
-
- Обработать(Закрытие, "MSSQL", "УдалитьБазуДанных", "Закрытие");
-
- Результат = OPI_MSSQL.УдалитьБазуДанных(База, Подключение);
-
- Обработать(Результат, "MSSQL", "УдалитьБазуДанных", "Ошибка подключения");
-
-КонецПроцедуры
-
-Процедура MSSQL_ОчиститьТаблицу(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "SA";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "testbase1";
-
- НастройкиTLS = OPI_MSSQL.ПолучитьНастройкиTLS(Истина);
- СтрокаПодключения = OPI_MSSQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль);
-
- Таблица = "testtable";
-
- // При использовании строки подключения инициализируется новое соединение,
- // которое будет закрыто после выполнения функции.
- // В случае выполнения нескольких операций желательно использовать одно соединение,
- // заранее созданное функцией ОткрытьСоединение()
- Результат = OPI_MSSQL.ОчиститьТаблицу(Таблица, СтрокаПодключения, НастройкиTLS);
-
- // END
-
- Обработать(Результат, "MSSQL", "ОчиститьТаблицу");
-
- Результат = OPI_MSSQL.ПолучитьЗаписи(Таблица, , , , , СтрокаПодключения, НастройкиTLS);
-
- Обработать(Результат, "MSSQL", "ОчиститьТаблицу", "Проверка");
-
-КонецПроцедуры
-
-Процедура MSSQL_ПолучитьИнформациюОТаблице(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "SA";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "testbase1";
-
- НастройкиTLS = OPI_MSSQL.ПолучитьНастройкиTLS(Истина);
- СтрокаПодключения = OPI_MSSQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль);
-
- Таблица = "testtable";
-
- // При использовании строки подключения инициализируется новое соединение,
- // которое будет закрыто после выполнения функции.
- // В случае выполнения нескольких операций желательно использовать одно соединение,
- // заранее созданное функцией ОткрытьСоединение()
- Результат = OPI_MSSQL.ПолучитьИнформациюОТаблице(Таблица, СтрокаПодключения, НастройкиTLS);
-
- // END
-
- Обработать(Результат, "MSSQL", "ПолучитьИнформациюОТаблице");
-
- Таблица = "heyho";
-
- Результат = OPI_MSSQL.ПолучитьИнформациюОТаблице(Таблица, СтрокаПодключения, НастройкиTLS);
-
- Обработать(Результат, "MSSQL", "ПолучитьИнформациюОТаблице", "Ошибка");
-
-КонецПроцедуры
-
-Процедура MSSQL_ДобавитьКолонкуТаблицы(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "SA";
- Пароль = ПараметрыФункции["PG_Password"];
-
- База = "testbase1";
- Таблица = "testtable";
- Имя = "new_field";
- ТипДанных = "bigint";
-
- НастройкиTLS = OPI_MSSQL.ПолучитьНастройкиTLS(Истина);
- СтрокаПодключения = OPI_MSSQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль);
-
- // При использовании строки подключения инициализируется новое соединение,
- // которое будет закрыто после выполнения функции.
- // В случае выполнения нескольких операций желательно использовать одно соединение,
- // заранее созданное функцией ОткрытьСоединение()
- Результат = OPI_MSSQL.ДобавитьКолонкуТаблицы(Таблица, Имя, ТипДанных, СтрокаПодключения, НастройкиTLS);
-
- // END
-
- Обработать(Результат, "MSSQL", "ДобавитьКолонкуТаблицы");
-
- Результат = OPI_MSSQL.ПолучитьИнформациюОТаблице(Таблица, СтрокаПодключения, НастройкиTLS);
-
- Обработать(Результат, "MSSQL", "ДобавитьКолонкуТаблицы", "Проверка");
-
-КонецПроцедуры
-
-Процедура MSSQL_УдалитьКолонкуТаблицы(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "SA";
- Пароль = ПараметрыФункции["PG_Password"];
-
- База = "testbase1";
- Таблица = "testtable";
- Имя = "new_field";
-
- НастройкиTLS = OPI_MSSQL.ПолучитьНастройкиTLS(Истина);
- СтрокаПодключения = OPI_MSSQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль);
-
- // При использовании строки подключения инициализируется новое соединение,
- // которое будет закрыто после выполнения функции.
- // В случае выполнения нескольких операций желательно использовать одно соединение,
- // заранее созданное функцией ОткрытьСоединение()
- Результат = OPI_MSSQL.УдалитьКолонкуТаблицы(Таблица, Имя, СтрокаПодключения, НастройкиTLS);
-
- // END
-
- Обработать(Результат, "MSSQL", "УдалитьКолонкуТаблицы");
-
- Результат = OPI_MSSQL.ПолучитьИнформациюОТаблице(Таблица, СтрокаПодключения, НастройкиTLS);
-
- Обработать(Результат, "MSSQL", "УдалитьКолонкуТаблицы", "Проверка");
-
-КонецПроцедуры
-
-Процедура MSSQL_ГарантироватьТаблицу(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "SA";
- Пароль = ПараметрыФункции["PG_Password"];
-
- База = "testbase1";
- Таблица = "testtable";
-
- НастройкиTLS = OPI_MSSQL.ПолучитьНастройкиTLS(Истина);
- СтрокаПодключения = OPI_MSSQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль);
-
- СтруктураКолонок = Новый Структура;
- СтруктураКолонок.Вставить("smallint_field" , "smallint");
- СтруктураКолонок.Вставить("double_field" , "real");
- СтруктураКолонок.Вставить("bigint_field" , "bigint");
- СтруктураКолонок.Вставить("custom_field" , "nvarchar");
-
- // При использовании строки подключения инициализируется новое соединение,
- // которое будет закрыто после выполнения функции.
- // В случае выполнения нескольких операций желательно использовать одно соединение,
- // заранее созданное функцией ОткрытьСоединение()
- Результат = OPI_MSSQL.ГарантироватьТаблицу(Таблица, СтруктураКолонок, СтрокаПодключения, НастройкиTLS);
-
- // END
-
- Обработать(Результат, "MSSQL", "ГарантироватьТаблицу");
-
- Проверка = OPI_MSSQL.ПолучитьИнформациюОТаблице(Таблица, СтрокаПодключения, НастройкиTLS);
-
- Обработать(Проверка, "MSSQL", "ГарантироватьТаблицу", "Проверка", СтруктураКолонок);
-
- Таблица = "test_new";
-
- Результат = OPI_MSSQL.ГарантироватьТаблицу(Таблица, СтруктураКолонок, СтрокаПодключения, НастройкиTLS);
-
- Обработать(Результат, "MSSQL", "ГарантироватьТаблицу", "Новая");
-
- Проверка = OPI_MSSQL.ПолучитьИнформациюОТаблице(Таблица, СтрокаПодключения, НастройкиTLS);
-
- Обработать(Проверка, "MSSQL", "ГарантироватьТаблицу", "Проверка", СтруктураКолонок);
-
-КонецПроцедуры
-
-Процедура MSSQL_ПолучитьСтруктуруФильтраЗаписей(ПараметрыФункции)
-
- Результат = OPI_MSSQL.ПолучитьСтруктуруФильтраЗаписей();
-
- // END
-
- Обработать(Результат, "MSSQL", "ПолучитьСтруктуруФильтраЗаписей");
-
- Результат = OPI_MSSQL.ПолучитьСтруктуруФильтраЗаписей(Истина);
-
- Обработать(Результат, "MSSQL", "ПолучитьСтруктуруФильтраЗаписей", "Пустая");
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область FTP
-
-Процедура FTP_ОткрытьСоединение(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["FTP_IP"];
- Порт = ПараметрыФункции["FTP_Port"];
- Логин = ПараметрыФункции["FTP_User"];
- Пароль = ПараметрыФункции["FTP_Password"];
-
- ИспользоватьПрокси = Истина;
- FTPS = Истина;
-
- НастройкиПрокси = Неопределено;
- НастройкиTLS = Неопределено; // FTPS
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- FTPS = ПараметрыФункции["TLS"]; // SKIP
-
- НастройкиFTP = OPI_FTP.ПолучитьНастройкиСоединения(Хост, Порт, Логин, Пароль);
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- НастройкиПрокси = OPI_FTP.ПолучитьНастройкиПрокси(АдресПрокси, ПортПрокси, ТипПрокси, ЛогинПрокси, ПарольПрокси);
-
- КонецЕсли;
-
- Если FTPS Тогда
- НастройкиTLS = OPI_FTP.ПолучитьНастройкиTLS(Истина);
- КонецЕсли;
-
- Результат = OPI_FTP.ОткрытьСоединение(НастройкиFTP, НастройкиПрокси, НастройкиTLS);
-
- // END
-
- Обработать(Результат, "FTP", "ОткрытьСоединение", Постфикс);
-
-КонецПроцедуры
-
-Процедура FTP_ПолучитьПриветственноеСообщение(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["FTP_IP"];
- Порт = ПараметрыФункции["FTP_Port"];
- Логин = ПараметрыФункции["FTP_User"];
- Пароль = ПараметрыФункции["FTP_Password"];
-
- ИспользоватьПрокси = Истина;
- FTPS = Истина;
-
- НастройкиПрокси = Неопределено;
- НастройкиTLS = Неопределено; // FTPS
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- FTPS = ПараметрыФункции["TLS"]; // SKIP
-
- НастройкиFTP = OPI_FTP.ПолучитьНастройкиСоединения(Хост, Порт, Логин, Пароль);
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- НастройкиПрокси = OPI_FTP.ПолучитьНастройкиПрокси(АдресПрокси, ПортПрокси, ТипПрокси, ЛогинПрокси, ПарольПрокси);
-
- КонецЕсли;
-
- Если FTPS Тогда
- НастройкиTLS = OPI_FTP.ПолучитьНастройкиTLS(Истина);
- КонецЕсли;
-
- Соединение = OPI_FTP.ОткрытьСоединение(НастройкиFTP, НастройкиПрокси, НастройкиTLS);
-
- Если OPI_FTP.ЭтоКоннектор(Соединение) Тогда
- Результат = OPI_FTP.ПолучитьПриветственноеСообщение(Соединение);
- Иначе
- Результат = Соединение; // Ошибка соединения
- КонецЕсли;
-
- // END
-
- Обработать(Результат, "FTP", "ПолучитьПриветственноеСообщение", Постфикс);
-
-КонецПроцедуры
-
-Процедура FTP_ПолучитьКонфигурациюСоединения(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["FTP_IP"];
- Порт = ПараметрыФункции["FTP_Port"];
- Логин = ПараметрыФункции["FTP_User"];
- Пароль = ПараметрыФункции["FTP_Password"];
-
- ИспользоватьПрокси = Истина;
- FTPS = Истина;
-
- НастройкиПрокси = Неопределено;
- НастройкиTLS = Неопределено; // FTPS
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- FTPS = ПараметрыФункции["TLS"]; // SKIP
-
- НастройкиFTP = OPI_FTP.ПолучитьНастройкиСоединения(Хост, Порт, Логин, Пароль);
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- НастройкиПрокси = OPI_FTP.ПолучитьНастройкиПрокси(АдресПрокси, ПортПрокси, ТипПрокси, ЛогинПрокси, ПарольПрокси);
-
- КонецЕсли;
-
- Если FTPS Тогда
- НастройкиTLS = OPI_FTP.ПолучитьНастройкиTLS(Истина);
- КонецЕсли;
-
- Результат = OPI_FTP.ПолучитьКонфигурациюСоединения(НастройкиFTP, НастройкиПрокси, НастройкиTLS);
-
- // END
-
- Обработать(Результат, "FTP", "ПолучитьКонфигурациюСоединения", Постфикс, ПараметрыФункции);
-
- Проверка = OPI_FTP.ПолучитьПриветственноеСообщение(Результат);
-
- Обработать(Проверка, "FTP", "ПолучитьКонфигурациюСоединения", "Проверка, " + Постфикс);
-
-КонецПроцедуры
-
-Процедура FTP_ЗакрытьСоединение(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["FTP_IP"];
- Порт = ПараметрыФункции["FTP_Port"];
- Логин = ПараметрыФункции["FTP_User"];
- Пароль = ПараметрыФункции["FTP_Password"];
-
- ИспользоватьПрокси = Истина;
- FTPS = Истина;
-
- НастройкиПрокси = Неопределено;
- НастройкиTLS = Неопределено; // FTPS
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- FTPS = ПараметрыФункции["TLS"]; // SKIP
-
- НастройкиFTP = OPI_FTP.ПолучитьНастройкиСоединения(Хост, Порт, Логин, Пароль);
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- НастройкиПрокси = OPI_FTP.ПолучитьНастройкиПрокси(АдресПрокси, ПортПрокси, ТипПрокси, ЛогинПрокси, ПарольПрокси);
-
- КонецЕсли;
-
- Если FTPS Тогда
- НастройкиTLS = OPI_FTP.ПолучитьНастройкиTLS(Истина);
- КонецЕсли;
-
- Соединение = OPI_FTP.ОткрытьСоединение(НастройкиFTP, НастройкиПрокси, НастройкиTLS);
-
- Обработать(Соединение, "FTP", "ЗакрытьСоединение", "Открытие, " + Постфикс); // SKIP
-
- Результат = OPI_FTP.ЗакрытьСоединение(Соединение);
-
- // END
-
- Обработать(Результат, "FTP", "ЗакрытьСоединение", Постфикс);
-
-КонецПроцедуры
-
-Процедура FTP_ЭтоКоннектор(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["FTP_IP"];
- Порт = ПараметрыФункции["FTP_Port"];
- Логин = ПараметрыФункции["FTP_User"];
- Пароль = ПараметрыФункции["FTP_Password"];
-
- ИспользоватьПрокси = Истина;
- FTPS = Истина;
-
- НастройкиПрокси = Неопределено;
- НастройкиTLS = Неопределено; // FTPS
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- FTPS = ПараметрыФункции["TLS"]; // SKIP
-
- НастройкиFTP = OPI_FTP.ПолучитьНастройкиСоединения(Хост, Порт, Логин, Пароль);
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- НастройкиПрокси = OPI_FTP.ПолучитьНастройкиПрокси(АдресПрокси, ПортПрокси, ТипПрокси, ЛогинПрокси, ПарольПрокси);
-
- КонецЕсли;
-
- Если FTPS Тогда
- НастройкиTLS = OPI_FTP.ПолучитьНастройкиTLS(Истина);
- КонецЕсли;
-
- Соединение = OPI_FTP.ОткрытьСоединение(НастройкиFTP, НастройкиПрокси, НастройкиTLS);
-
- Обработать(Соединение, "FTP", "ЭтоКоннектор", "Открытие, " + Постфикс); // SKIP
-
- Результат = OPI_FTP.ЭтоКоннектор(Соединение);
-
- // END
-
- Обработать(Результат, "FTP", "ЭтоКоннектор", Постфикс);
-
-КонецПроцедуры
-
-Процедура FTP_ПолучитьНастройкиСоединения(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["FTP_IP"];
- Порт = ПараметрыФункции["FTP_Port"];
- Логин = ПараметрыФункции["FTP_User"];
- Пароль = ПараметрыФункции["FTP_Password"];
-
- Результат = OPI_FTP.ПолучитьНастройкиСоединения(Хост, Порт, Логин, Пароль);
-
- // END
-
- Обработать(Результат, "FTP", "ПолучитьНастройкиСоединения", Постфикс);
-
-КонецПроцедуры
-
-Процедура FTP_ПолучитьНастройкиПрокси(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- Результат = OPI_FTP.ПолучитьНастройкиПрокси(АдресПрокси, ПортПрокси, ТипПрокси, ЛогинПрокси, ПарольПрокси);
-
- // END
-
- Обработать(Результат, "FTP", "ПолучитьНастройкиПрокси", Постфикс);
-
-КонецПроцедуры
-
-Процедура FTP_ПолучитьНастройкиTLS(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Результат = OPI_FTP.ПолучитьНастройкиTLS(Истина);
-
- // END
-
- Обработать(Результат, "FTP", "ПолучитьНастройкиTLS", Постфикс);
-
-КонецПроцедуры
-
-Процедура FTP_СоздатьНовуюДиректорию(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["FTP_IP"];
- Порт = ПараметрыФункции["FTP_Port"];
- Логин = ПараметрыФункции["FTP_User"];
- Пароль = ПараметрыФункции["FTP_Password"];
-
- ИспользоватьПрокси = Истина;
- FTPS = Истина;
-
- НастройкиПрокси = Неопределено;
- НастройкиTLS = Неопределено; // FTPS
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- FTPS = ПараметрыФункции["TLS"]; // SKIP
-
- НастройкиFTP = OPI_FTP.ПолучитьНастройкиСоединения(Хост, Порт, Логин, Пароль);
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- НастройкиПрокси = OPI_FTP.ПолучитьНастройкиПрокси(АдресПрокси, ПортПрокси, ТипПрокси, ЛогинПрокси, ПарольПрокси);
-
- КонецЕсли;
-
- Если FTPS Тогда
- НастройкиTLS = OPI_FTP.ПолучитьНастройкиTLS(Истина);
- КонецЕсли;
-
- Соединение = OPI_FTP.ОткрытьСоединение(НастройкиFTP, НастройкиПрокси, НастройкиTLS);
-
- Если OPI_FTP.ЭтоКоннектор(Соединение) Тогда
-
- Удаление = OPI_FTP.УдалитьДиректорию(Соединение, "new_dir"); // SKIP
- Обработать(Удаление, "FTP", "СоздатьНовуюДиректорию", "Удаление, " + Постфикс); // SKIP
-
- Результат = OPI_FTP.СоздатьНовуюДиректорию(Соединение, "new_dir");
-
- Иначе
- Результат = Соединение; // Ошибка соединения
- КонецЕсли;
-
- // END
-
- Обработать(Результат, "FTP", "СоздатьНовуюДиректорию", Постфикс, Истина);
-
- Результат = OPI_FTP.СоздатьНовуюДиректорию(Соединение, "new_dir/another_one");
-
- Обработать(Результат, "FTP", "СоздатьНовуюДиректорию", "Вложенная, " + Постфикс);
-
- Результат = OPI_FTP.СоздатьНовуюДиректорию(Соединение, "second_dir/another_one");
-
- Обработать(Результат, "FTP", "СоздатьНовуюДиректорию", "Двойная, " + Постфикс);
-
- OPI_Инструменты.Пауза(5);
-
- Проверка = OPI_FTP.ПолучитьСписокОбъектов(Соединение, "new_dir", Истина);
-
- Обработать(Проверка, "FTP", "СоздатьНовуюДиректорию", "Проверка 1, " + Постфикс);
-
- Проверка = OPI_FTP.ПолучитьСписокОбъектов(Соединение, "", Истина);
-
- Обработать(Проверка, "FTP", "СоздатьНовуюДиректорию", "Проверка 2, " + Постфикс);
-
-КонецПроцедуры
-
-Процедура FTP_ПолучитьСписокОбъектов(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["FTP_IP"];
- Порт = ПараметрыФункции["FTP_Port"];
- Логин = ПараметрыФункции["FTP_User"];
- Пароль = ПараметрыФункции["FTP_Password"];
-
- ИспользоватьПрокси = Истина;
- FTPS = Истина;
-
- НастройкиПрокси = Неопределено;
- НастройкиTLS = Неопределено; // FTPS
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- FTPS = ПараметрыФункции["TLS"]; // SKIP
-
- НастройкиFTP = OPI_FTP.ПолучитьНастройкиСоединения(Хост, Порт, Логин, Пароль);
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- НастройкиПрокси = OPI_FTP.ПолучитьНастройкиПрокси(АдресПрокси, ПортПрокси, ТипПрокси, ЛогинПрокси, ПарольПрокси);
-
- КонецЕсли;
-
- Если FTPS Тогда
- НастройкиTLS = OPI_FTP.ПолучитьНастройкиTLS(Истина);
- КонецЕсли;
-
- Соединение = OPI_FTP.ОткрытьСоединение(НастройкиFTP, НастройкиПрокси, НастройкиTLS);
-
- Если OPI_FTP.ЭтоКоннектор(Соединение) Тогда
- Результат = OPI_FTP.ПолучитьСписокОбъектов(Соединение, "", Истина);
- Иначе
- Результат = Соединение; // Ошибка соединения
- КонецЕсли;
-
- // END
-
- Обработать(Результат, "FTP", "ПолучитьСписокОбъектов", Постфикс);
-
- Результат = OPI_FTP.ПолучитьСписокОбъектов(Соединение, "Dir1/Dir3/Git-2.50.0-64-bit.exe", Истина);
-
- Обработать(Результат, "FTP", "ПолучитьСписокОбъектов", "Файл, " + Постфикс);
-
-КонецПроцедуры
-
-Процедура FTP_ЗагрузитьФайл(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- КартинкаПуть = "C:\pic.png";
-
- Картинка = ПараметрыФункции["Picture"]; // SKIP
- ИВФ = ПолучитьИмяВременногоФайла("png"); // SKIP
- КопироватьФайл(Картинка, ИВФ); // SKIP
- Картинка = ИВФ; // SKIP
-
- КартинкаДД = Новый ДвоичныеДанные(Картинка);
-
- Хост = ПараметрыФункции["FTP_IP"];
- Порт = ПараметрыФункции["FTP_Port"];
- Логин = ПараметрыФункции["FTP_User"];
- Пароль = ПараметрыФункции["FTP_Password"];
-
- ИспользоватьПрокси = Истина;
- FTPS = Истина;
-
- НастройкиПрокси = Неопределено;
- НастройкиTLS = Неопределено; // FTPS
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- FTPS = ПараметрыФункции["TLS"]; // SKIP
-
- НастройкиFTP = OPI_FTP.ПолучитьНастройкиСоединения(Хост, Порт, Логин, Пароль, , 1000, 1000);
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- НастройкиПрокси = OPI_FTP.ПолучитьНастройкиПрокси(АдресПрокси, ПортПрокси, ТипПрокси, ЛогинПрокси, ПарольПрокси);
-
- КонецЕсли;
-
- Если FTPS Тогда
- НастройкиTLS = OPI_FTP.ПолучитьНастройкиTLS(Истина);
- КонецЕсли;
-
- Соединение = OPI_FTP.ОткрытьСоединение(НастройкиFTP, НастройкиПрокси, НастройкиTLS);
-
- Если OPI_FTP.ЭтоКоннектор(Соединение) Тогда
-
- Результат = OPI_FTP.ЗагрузитьФайл(Соединение, Картинка, "new_dir/pic_from_disk.png");
- Результат2 = OPI_FTP.ЗагрузитьФайл(Соединение, КартинкаДД, "pic_from_binary.png");
-
- Иначе
- Результат = Соединение; // Ошибка соединения
- КонецЕсли;
-
- // END
-
- Обработать(Результат , "FTP", "ЗагрузитьФайл", Постфикс , КартинкаДД.Размер());
- Обработать(Результат2, "FTP", "ЗагрузитьФайл", "Двоичные, " + Постфикс, КартинкаДД.Размер());
-
- Результат = OPI_FTP.ПолучитьРазмерОбъекта(Соединение, "new_dir/pic_from_disk.png");
- Результат2 = OPI_FTP.ПолучитьРазмерОбъекта(Соединение, "pic_from_binary.png");
-
- Обработать(Результат , "FTP", "ЗагрузитьФайл", "Размер 1, " + Постфикс, КартинкаДД.Размер());
- Обработать(Результат2, "FTP", "ЗагрузитьФайл", "Размер 2, " + Постфикс, КартинкаДД.Размер());
-
- Для Н = 1 По 5 Цикл
-
- Результат = OPI_FTP.ЗагрузитьФайл(Соединение, Картинка, "new_dir/pic_from_disk.png");
- Результат2 = OPI_FTP.ЗагрузитьФайл(Соединение, КартинкаДД, "pic_from_binary.png");
-
- Если Не Результат["result"] Тогда
- Обработать(Результат, "FTP", "ЗагрузитьФайл", "Множественный, " + Постфикс, КартинкаДД.Размер());
- КонецЕсли;
-
- Если Не Результат2["result"] Тогда
- Обработать(Результат2, "FTP", "ЗагрузитьФайл", "Множественный, двоичные, " + Постфикс, КартинкаДД.Размер());
- КонецЕсли;
-
- КонецЦикла;
-
- OPI_Инструменты.УдалитьФайлВПопытке(ИВФ, "Не удалось удалить временный файл после теста!");
-
-КонецПроцедуры
-
-Процедура FTP_УдалитьФайл(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["FTP_IP"];
- Порт = ПараметрыФункции["FTP_Port"];
- Логин = ПараметрыФункции["FTP_User"];
- Пароль = ПараметрыФункции["FTP_Password"];
-
- ИспользоватьПрокси = Истина;
- FTPS = Истина;
-
- НастройкиПрокси = Неопределено;
- НастройкиTLS = Неопределено; // FTPS
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- FTPS = ПараметрыФункции["TLS"]; // SKIP
-
- НастройкиFTP = OPI_FTP.ПолучитьНастройкиСоединения(Хост, Порт, Логин, Пароль);
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- НастройкиПрокси = OPI_FTP.ПолучитьНастройкиПрокси(АдресПрокси, ПортПрокси, ТипПрокси, ЛогинПрокси, ПарольПрокси);
-
- КонецЕсли;
-
- Если FTPS Тогда
- НастройкиTLS = OPI_FTP.ПолучитьНастройкиTLS(Истина);
- КонецЕсли;
-
- Соединение = OPI_FTP.ОткрытьСоединение(НастройкиFTP, НастройкиПрокси, НастройкиTLS);
-
- Если OPI_FTP.ЭтоКоннектор(Соединение) Тогда
- Результат = OPI_FTP.УдалитьФайл(Соединение, "pic_from_binary.png");
- Иначе
- Результат = Соединение; // Ошибка соединения
- КонецЕсли;
-
- // END
-
- Обработать(Результат , "FTP", "УдалитьФайл", Постфикс);
-
- Результат = OPI_FTP.УдалитьФайл(Соединение, "pic_from_binary.png");
-
- Обработать(Результат , "FTP", "УдалитьФайл", "Несуществующий, " + Постфикс);
-
- Результат = OPI_FTP.ПолучитьСписокОбъектов(Соединение, "", Истина);
-
- Обработать(Результат , "FTP", "УдалитьФайл", "Проверка, " + Постфикс);
-
-КонецПроцедуры
-
-Процедура FTP_УдалитьДиректорию(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["FTP_IP"];
- Порт = ПараметрыФункции["FTP_Port"];
- Логин = ПараметрыФункции["FTP_User"];
- Пароль = ПараметрыФункции["FTP_Password"];
-
- ИспользоватьПрокси = Истина;
- FTPS = Истина;
-
- НастройкиПрокси = Неопределено;
- НастройкиTLS = Неопределено; // FTPS
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- FTPS = ПараметрыФункции["TLS"]; // SKIP
-
- НастройкиFTP = OPI_FTP.ПолучитьНастройкиСоединения(Хост, Порт, Логин, Пароль);
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- НастройкиПрокси = OPI_FTP.ПолучитьНастройкиПрокси(АдресПрокси, ПортПрокси, ТипПрокси, ЛогинПрокси, ПарольПрокси);
-
- КонецЕсли;
-
- Если FTPS Тогда
- НастройкиTLS = OPI_FTP.ПолучитьНастройкиTLS(Истина);
- КонецЕсли;
-
- Соединение = OPI_FTP.ОткрытьСоединение(НастройкиFTP, НастройкиПрокси, НастройкиTLS);
-
- Если OPI_FTP.ЭтоКоннектор(Соединение) Тогда
- Результат = OPI_FTP.УдалитьДиректорию(Соединение, "new_dir/another_one");
- Иначе
- Результат = Соединение; // Ошибка соединения
- КонецЕсли;
-
- // END
-
- Обработать(Результат , "FTP", "УдалитьДиректорию", Постфикс);
-
-КонецПроцедуры
-
-Процедура FTP_ОчиститьДиректорию(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["FTP_IP"];
- Порт = ПараметрыФункции["FTP_Port"];
- Логин = ПараметрыФункции["FTP_User"];
- Пароль = ПараметрыФункции["FTP_Password"];
-
- ИспользоватьПрокси = Истина;
- FTPS = Истина;
-
- НастройкиПрокси = Неопределено;
- НастройкиTLS = Неопределено; // FTPS
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- FTPS = ПараметрыФункции["TLS"]; // SKIP
-
- НастройкиFTP = OPI_FTP.ПолучитьНастройкиСоединения(Хост, Порт, Логин, Пароль);
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- НастройкиПрокси = OPI_FTP.ПолучитьНастройкиПрокси(АдресПрокси, ПортПрокси, ТипПрокси, ЛогинПрокси, ПарольПрокси);
-
- КонецЕсли;
-
- Если FTPS Тогда
- НастройкиTLS = OPI_FTP.ПолучитьНастройкиTLS(Истина);
- КонецЕсли;
-
- Соединение = OPI_FTP.ОткрытьСоединение(НастройкиFTP, НастройкиПрокси, НастройкиTLS);
-
- Если OPI_FTP.ЭтоКоннектор(Соединение) Тогда
- Результат = OPI_FTP.ОчиститьДиректорию(Соединение, ".");
- Иначе
- Результат = Соединение; // Ошибка соединения
- КонецЕсли;
-
- // END
-
- Обработать(Результат , "FTP", "ОчиститьДиректорию", Постфикс);
-
- Результат = OPI_FTP.ПолучитьСписокОбъектов(Соединение, ".", Истина);
-
- Обработать(Результат , "FTP", "ОчиститьДиректорию", "Проверка, " + Постфикс);
-
-КонецПроцедуры
-
-Процедура FTP_ПолучитьРазмерОбъекта(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["FTP_IP"];
- Порт = ПараметрыФункции["FTP_Port"];
- Логин = ПараметрыФункции["FTP_User"];
- Пароль = ПараметрыФункции["FTP_Password"];
-
- ИспользоватьПрокси = Истина;
- FTPS = Истина;
-
- НастройкиПрокси = Неопределено;
- НастройкиTLS = Неопределено; // FTPS
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- FTPS = ПараметрыФункции["TLS"]; // SKIP
-
- НастройкиFTP = OPI_FTP.ПолучитьНастройкиСоединения(Хост, Порт, Логин, Пароль);
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- НастройкиПрокси = OPI_FTP.ПолучитьНастройкиПрокси(АдресПрокси, ПортПрокси, ТипПрокси, ЛогинПрокси, ПарольПрокси);
-
- КонецЕсли;
-
- Если FTPS Тогда
- НастройкиTLS = OPI_FTP.ПолучитьНастройкиTLS(Истина);
- КонецЕсли;
-
- Соединение = OPI_FTP.ОткрытьСоединение(НастройкиFTP, НастройкиПрокси, НастройкиTLS);
-
- Если OPI_FTP.ЭтоКоннектор(Соединение) Тогда
- Результат = OPI_FTP.ПолучитьРазмерОбъекта(Соединение, "new_dir/pic_from_disk.png");
- Иначе
- Результат = Соединение; // Ошибка соединения
- КонецЕсли;
-
- // END
-
- Обработать(Результат , "FTP", "ПолучитьРазмерОбъекта", Постфикс);
-
- Результат = OPI_FTP.ПолучитьРазмерОбъекта(Соединение, "new_dir/another.bin");
-
- Обработать(Результат , "FTP", "ПолучитьРазмерОбъекта", "Несуществующий, " + Постфикс);
-
-КонецПроцедуры
-
-Процедура FTP_ИзменитьПуть(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["FTP_IP"];
- Порт = ПараметрыФункции["FTP_Port"];
- Логин = ПараметрыФункции["FTP_User"];
- Пароль = ПараметрыФункции["FTP_Password"];
-
- ИспользоватьПрокси = Истина;
- FTPS = Истина;
-
- НастройкиПрокси = Неопределено;
- НастройкиTLS = Неопределено; // FTPS
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- FTPS = ПараметрыФункции["TLS"]; // SKIP
-
- НастройкиFTP = OPI_FTP.ПолучитьНастройкиСоединения(Хост, Порт, Логин, Пароль);
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- НастройкиПрокси = OPI_FTP.ПолучитьНастройкиПрокси(АдресПрокси, ПортПрокси, ТипПрокси, ЛогинПрокси, ПарольПрокси);
-
- КонецЕсли;
-
- Если FTPS Тогда
- НастройкиTLS = OPI_FTP.ПолучитьНастройкиTLS(Истина);
- КонецЕсли;
-
- Соединение = OPI_FTP.ОткрытьСоединение(НастройкиFTP, НастройкиПрокси, НастройкиTLS);
-
- Если OPI_FTP.ЭтоКоннектор(Соединение) Тогда
- Результат = OPI_FTP.ИзменитьПуть(Соединение, "new_dir/pic_from_disk.png", "new_dir/pic_copy.png");
- Иначе
- Результат = Соединение; // Ошибка соединения
- КонецЕсли;
-
- // END
-
- Обработать(Результат , "FTP", "ИзменитьПуть", Постфикс);
-
- Результат = OPI_FTP.ПолучитьРазмерОбъекта(Соединение, "new_dir/pic_copy.png");
-
- Обработать(Результат , "FTP", "ИзменитьПуть", "Проверка, новый, " + Постфикс);
-
- Результат = OPI_FTP.ПолучитьРазмерОбъекта(Соединение, "new_dir/pic_from_binary.png");
-
- Обработать(Результат , "FTP", "ИзменитьПуть", "Проверка, старый, " + Постфикс);
-
- Результат = OPI_FTP.ИзменитьПуть(Соединение, "new_dir", "brand_new_dir");
-
- Обработать(Результат , "FTP", "ИзменитьПуть", "Каталог, " + Постфикс);
-
- Результат = OPI_FTP.ПолучитьСписокОбъектов(Соединение, ".", Истина);
-
- Обработать(Результат , "FTP", "ИзменитьПуть", "Список, " + Постфикс);
-
- Результат = OPI_FTP.ИзменитьПуть(Соединение, "brand_new_dir", "new_dir");
-
- Обработать(Результат , "FTP", "ИзменитьПуть", "Каталог, обратно, " + Постфикс);
-
- Результат = OPI_FTP.ИзменитьПуть(Соединение, "new_dir/pic_copy.png", "new_dir/pic_from_disk.png");
-
- Обработать(Результат , "FTP", "ИзменитьПуть", "Обратно, " + Постфикс);
-
- Результат = OPI_FTP.ПолучитьСписокОбъектов(Соединение, ".", Истина);
-
- Обработать(Результат , "FTP", "ИзменитьПуть", "Список, обратно, " + Постфикс);
-
-КонецПроцедуры
-
-Процедура FTP_СохранитьФайл(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["FTP_IP"];
- Порт = ПараметрыФункции["FTP_Port"];
- Логин = ПараметрыФункции["FTP_User"];
- Пароль = ПараметрыФункции["FTP_Password"];
-
- ИспользоватьПрокси = Истина;
- FTPS = Истина;
-
- НастройкиПрокси = Неопределено;
- НастройкиTLS = Неопределено; // FTPS
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- FTPS = ПараметрыФункции["TLS"]; // SKIP
-
- НастройкиFTP = OPI_FTP.ПолучитьНастройкиСоединения(Хост, Порт, Логин, Пароль);
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- НастройкиПрокси = OPI_FTP.ПолучитьНастройкиПрокси(АдресПрокси, ПортПрокси, ТипПрокси, ЛогинПрокси, ПарольПрокси);
-
- КонецЕсли;
-
- Если FTPS Тогда
- НастройкиTLS = OPI_FTP.ПолучитьНастройкиTLS(Истина);
- КонецЕсли;
-
- Соединение = OPI_FTP.ОткрытьСоединение(НастройкиFTP, НастройкиПрокси, НастройкиTLS);
-
- Если OPI_FTP.ЭтоКоннектор(Соединение) Тогда
-
- Путь = "new_dir/pic_from_disk.png";
- ИмяФайла = ПолучитьИмяВременногоФайла("bin");
-
- Результат = OPI_FTP.СохранитьФайл(Соединение, Путь, ИмяФайла);
-
- Иначе
- Результат = Соединение; // Ошибка соединения
- КонецЕсли;
-
- // END
-
- Обработать(Результат, "FTP", "СохранитьФайл", Постфикс);
-
- Размер = OPI_FTP.ПолучитьРазмерОбъекта(Соединение, Путь);
-
- Обработать(Размер, "FTP", "СохранитьФайл", "Размер, " + Постфикс);
-
- ФайлОбъект = Новый Файл(ИмяФайла);
-
- РазмерФайла = ФайлОбъект.Размер();
- РазмерРезультата = Результат["bytes"];
- РазмерПроверки = Размер["bytes"];
-
- Обработать(РазмерФайла, "FTP", "СохранитьФайл", "Размер файла, " + Постфикс, РазмерРезультата, РазмерПроверки);
-
- Путь = "new_dir/pic_from_disk.png";
-
- Для Н = 1 По 5 Цикл
-
- Результат = OPI_FTP.СохранитьФайл(Соединение, Путь, ИмяФайла);
-
- Если Не Результат["result"] Тогда
- Обработать(Результат, "FTP", "СохранитьФайл", "Множественный, " + Постфикс);
- КонецЕсли;
-
- КонецЦикла;
-
- OPI_Инструменты.УдалитьФайлВПопытке(ИмяФайла, "Не удалось удалить временный файл после теста!");
-
-КонецПроцедуры
-
-Процедура FTP_ПолучитьДанныеФайла(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["FTP_IP"];
- Порт = ПараметрыФункции["FTP_Port"];
- Логин = ПараметрыФункции["FTP_User"];
- Пароль = ПараметрыФункции["FTP_Password"];
-
- ИспользоватьПрокси = Истина;
- FTPS = Истина;
-
- НастройкиПрокси = Неопределено;
- НастройкиTLS = Неопределено; // FTPS
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- FTPS = ПараметрыФункции["TLS"]; // SKIP
-
- НастройкиFTP = OPI_FTP.ПолучитьНастройкиСоединения(Хост, Порт, Логин, Пароль);
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- НастройкиПрокси = OPI_FTP.ПолучитьНастройкиПрокси(АдресПрокси, ПортПрокси, ТипПрокси, ЛогинПрокси, ПарольПрокси);
-
- КонецЕсли;
-
- Если FTPS Тогда
- НастройкиTLS = OPI_FTP.ПолучитьНастройкиTLS(Истина);
- КонецЕсли;
-
- Соединение = OPI_FTP.ОткрытьСоединение(НастройкиFTP, НастройкиПрокси, НастройкиTLS);
-
- Если OPI_FTP.ЭтоКоннектор(Соединение) Тогда
-
- Путь = "new_dir/pic_from_disk.png";
- Результат = OPI_FTP.ПолучитьДанныеФайла(Соединение, Путь);
-
- Иначе
- Результат = Соединение; // Ошибка соединения
- КонецЕсли;
-
- // END
-
- Обработать(Результат, "FTP", "ПолучитьДанныеФайла", Постфикс);
-
- Размер = OPI_FTP.ПолучитьРазмерОбъекта(Соединение, Путь);
-
- Обработать(Размер, "FTP", "ПолучитьДанныеФайла", "Размер, " + Постфикс);
-
- РазмерФайла = Результат.Размер();
- РазмерПроверки = Размер["bytes"];
-
- Обработать(РазмерФайла, "FTP", "ПолучитьДанныеФайла", "Размер файла, " + Постфикс, РазмерПроверки);
-
- Путь = "new_dir/pic_from_disk.png";
-
- Для Н = 1 По 5 Цикл
-
- Результат = OPI_FTP.ПолучитьДанныеФайла(Соединение, Путь);
-
- Если Не ТипЗнч(Результат) = Тип("ДвоичныеДанные") Тогда
- Обработать(Результат, "FTP", "ПолучитьДанныеФайла", "Множественный, " + Постфикс);
- КонецЕсли;
-
- КонецЦикла;
-
-КонецПроцедуры
-
-Процедура FTP_Пинг(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["FTP_IP"];
- Порт = ПараметрыФункции["FTP_Port"];
- Логин = ПараметрыФункции["FTP_User"];
- Пароль = ПараметрыФункции["FTP_Password"];
-
- ИспользоватьПрокси = Истина;
- FTPS = Истина;
-
- НастройкиПрокси = Неопределено;
- НастройкиTLS = Неопределено; // FTPS
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- FTPS = ПараметрыФункции["TLS"]; // SKIP
-
- НастройкиFTP = OPI_FTP.ПолучитьНастройкиСоединения(Хост, Порт, Логин, Пароль);
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- НастройкиПрокси = OPI_FTP.ПолучитьНастройкиПрокси(АдресПрокси, ПортПрокси, ТипПрокси, ЛогинПрокси, ПарольПрокси);
-
- КонецЕсли;
-
- Если FTPS Тогда
- НастройкиTLS = OPI_FTP.ПолучитьНастройкиTLS(Истина);
- КонецЕсли;
-
- Соединение = OPI_FTP.ОткрытьСоединение(НастройкиFTP, НастройкиПрокси, НастройкиTLS);
-
- Если OPI_FTP.ЭтоКоннектор(Соединение) Тогда
- Результат = OPI_FTP.Пинг(Соединение);
- Иначе
- Результат = Соединение; // Ошибка соединения
- КонецЕсли;
-
- // END
-
- Обработать(Результат, "FTP", "Пинг", Постфикс);
-
-КонецПроцедуры
-
-Процедура FTP_ВыполнитьНестандартнуюКоманду(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["FTP_IP"];
- Порт = ПараметрыФункции["FTP_Port"];
- Логин = ПараметрыФункции["FTP_User"];
- Пароль = ПараметрыФункции["FTP_Password"];
-
- ИспользоватьПрокси = Истина;
- FTPS = Истина;
-
- НастройкиПрокси = Неопределено;
- НастройкиTLS = Неопределено; // FTPS
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- FTPS = ПараметрыФункции["TLS"]; // SKIP
-
- НастройкиFTP = OPI_FTP.ПолучитьНастройкиСоединения(Хост, Порт, Логин, Пароль);
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- НастройкиПрокси = OPI_FTP.ПолучитьНастройкиПрокси(АдресПрокси, ПортПрокси, ТипПрокси, ЛогинПрокси, ПарольПрокси);
-
- КонецЕсли;
-
- Если FTPS Тогда
- НастройкиTLS = OPI_FTP.ПолучитьНастройкиTLS(Истина);
- КонецЕсли;
-
- Соединение = OPI_FTP.ОткрытьСоединение(НастройкиFTP, НастройкиПрокси, НастройкиTLS);
-
- Если OPI_FTP.ЭтоКоннектор(Соединение) Тогда
-
- ТекстКоманды = "UMASK";
- Результат = OPI_FTP.ВыполнитьНестандартнуюКоманду(Соединение, ТекстКоманды);
-
- Иначе
- Результат = Соединение; // Ошибка соединения
- КонецЕсли;
-
- // END
-
- Обработать(Результат, "FTP", "ВыполнитьНестандартнуюКоманду", Постфикс);
-
-КонецПроцедуры
-
-Процедура FTP_ВыполнитьПроизвольнуюКоманду(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["FTP_IP"];
- Порт = ПараметрыФункции["FTP_Port"];
- Логин = ПараметрыФункции["FTP_User"];
- Пароль = ПараметрыФункции["FTP_Password"];
-
- ИспользоватьПрокси = Истина;
- FTPS = Истина;
-
- НастройкиПрокси = Неопределено;
- НастройкиTLS = Неопределено; // FTPS
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- FTPS = ПараметрыФункции["TLS"]; // SKIP
-
- НастройкиFTP = OPI_FTP.ПолучитьНастройкиСоединения(Хост, Порт, Логин, Пароль);
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- НастройкиПрокси = OPI_FTP.ПолучитьНастройкиПрокси(АдресПрокси, ПортПрокси, ТипПрокси, ЛогинПрокси, ПарольПрокси);
-
- КонецЕсли;
-
- Если FTPS Тогда
- НастройкиTLS = OPI_FTP.ПолучитьНастройкиTLS(Истина);
- КонецЕсли;
-
- Соединение = OPI_FTP.ОткрытьСоединение(НастройкиFTP, НастройкиПрокси, НастройкиTLS);
-
- Если OPI_FTP.ЭтоКоннектор(Соединение) Тогда
-
- ТекстКоманды = "PWD";
- Результат = OPI_FTP.ВыполнитьПроизвольнуюКоманду(Соединение, ТекстКоманды);
-
- Иначе
- Результат = Соединение; // Ошибка соединения
- КонецЕсли;
-
- // END
-
- Обработать(Результат, "FTP", "ВыполнитьПроизвольнуюКоманду", Постфикс);
-
-КонецПроцедуры
-
-Процедура FTP_ПолучитьТекущийКаталог(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["FTP_IP"];
- Порт = ПараметрыФункции["FTP_Port"];
- Логин = ПараметрыФункции["FTP_User"];
- Пароль = ПараметрыФункции["FTP_Password"];
-
- ИспользоватьПрокси = Истина;
- FTPS = Истина;
-
- НастройкиПрокси = Неопределено;
- НастройкиTLS = Неопределено; // FTPS
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- FTPS = ПараметрыФункции["TLS"]; // SKIP
-
- НастройкиFTP = OPI_FTP.ПолучитьНастройкиСоединения(Хост, Порт, Логин, Пароль);
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- НастройкиПрокси = OPI_FTP.ПолучитьНастройкиПрокси(АдресПрокси, ПортПрокси, ТипПрокси, ЛогинПрокси, ПарольПрокси);
-
- КонецЕсли;
-
- Если FTPS Тогда
- НастройкиTLS = OPI_FTP.ПолучитьНастройкиTLS(Истина);
- КонецЕсли;
-
- Соединение = OPI_FTP.ОткрытьСоединение(НастройкиFTP, НастройкиПрокси, НастройкиTLS);
-
- Если OPI_FTP.ЭтоКоннектор(Соединение) Тогда
- Результат = OPI_FTP.ПолучитьТекущийКаталог(Соединение);
- Иначе
- Результат = Соединение; // Ошибка соединения
- КонецЕсли;
-
- // END
-
- Обработать(Результат, "FTP", "ПолучитьТекущийКаталог", Постфикс, ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура FTP_ИзменитьТекущийКаталог(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["FTP_IP"];
- Порт = ПараметрыФункции["FTP_Port"];
- Логин = ПараметрыФункции["FTP_User"];
- Пароль = ПараметрыФункции["FTP_Password"];
-
- ИспользоватьПрокси = Истина;
- FTPS = Истина;
-
- НастройкиПрокси = Неопределено;
- НастройкиTLS = Неопределено; // FTPS
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- FTPS = ПараметрыФункции["TLS"]; // SKIP
-
- НастройкиFTP = OPI_FTP.ПолучитьНастройкиСоединения(Хост, Порт, Логин, Пароль);
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- НастройкиПрокси = OPI_FTP.ПолучитьНастройкиПрокси(АдресПрокси, ПортПрокси, ТипПрокси, ЛогинПрокси, ПарольПрокси);
-
- КонецЕсли;
-
- Если FTPS Тогда
- НастройкиTLS = OPI_FTP.ПолучитьНастройкиTLS(Истина);
- КонецЕсли;
-
- Соединение = OPI_FTP.ОткрытьСоединение(НастройкиFTP, НастройкиПрокси, НастройкиTLS);
-
- Если OPI_FTP.ЭтоКоннектор(Соединение) Тогда
- Путь = "new_dir";
- Результат = OPI_FTP.ИзменитьТекущийКаталог(Соединение, Путь);
- Иначе
- Результат = Соединение; // Ошибка соединения
- КонецЕсли;
-
- // END
-
- Обработать(Результат, "FTP", "ИзменитьТекущийКаталог", Постфикс);
-
- Результат = OPI_FTP.ПолучитьТекущийКаталог(Соединение);
-
- Обработать(Результат, "FTP", "ИзменитьТекущийКаталог", "Проверка, " + Постфикс, Путь);
-
- Путь = ПараметрыФункции["FTP_RootPath"];
- Результат = OPI_FTP.ИзменитьТекущийКаталог(Соединение, Путь);
-
- Обработать(Результат, "FTP", "ИзменитьТекущийКаталог", "Обратно, " + Постфикс);
-
- Результат = OPI_FTP.ПолучитьТекущийКаталог(Соединение);
-
- Обработать(Результат, "FTP", "ИзменитьТекущийКаталог", "Проверка, обратно, " + Постфикс, Путь);
-
-КонецПроцедуры
-
-Процедура FTP_ПолучитьСписокРасширенийПротокола(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["FTP_IP"];
- Порт = ПараметрыФункции["FTP_Port"];
- Логин = ПараметрыФункции["FTP_User"];
- Пароль = ПараметрыФункции["FTP_Password"];
-
- ИспользоватьПрокси = Истина;
- FTPS = Истина;
-
- НастройкиПрокси = Неопределено;
- НастройкиTLS = Неопределено; // FTPS
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- FTPS = ПараметрыФункции["TLS"]; // SKIP
-
- НастройкиFTP = OPI_FTP.ПолучитьНастройкиСоединения(Хост, Порт, Логин, Пароль);
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- НастройкиПрокси = OPI_FTP.ПолучитьНастройкиПрокси(АдресПрокси, ПортПрокси, ТипПрокси, ЛогинПрокси, ПарольПрокси);
-
- КонецЕсли;
-
- Если FTPS Тогда
- НастройкиTLS = OPI_FTP.ПолучитьНастройкиTLS(Истина);
- КонецЕсли;
-
- Соединение = OPI_FTP.ОткрытьСоединение(НастройкиFTP, НастройкиПрокси, НастройкиTLS);
-
- Если OPI_FTP.ЭтоКоннектор(Соединение) Тогда
- Результат = OPI_FTP.ПолучитьСписокРасширенийПротокола(Соединение);
- Иначе
- Результат = Соединение; // Ошибка соединения
- КонецЕсли;
-
- // END
-
- Обработать(Результат, "FTP", "ПолучитьСписокРасширенийПротокола", Постфикс);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область ReportPortal
-
-Процедура ReportPortal_ПолучитьВременныйТокен(ПараметрыФункции)
-
- URL = ПараметрыФункции["RPortal_URL"];
- Логин = ПараметрыФункции["RPortal_Login"];
- Пароль = ПараметрыФункции["RPortal_Password"];
-
- Результат = OPI_ReportPortal.ПолучитьВременныйТокен(URL, Логин, Пароль);
-
- // END
-
- Обработать(Результат, "ReportPortal", "ПолучитьВременныйТокен", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура ReportPortal_ПолучитьПостоянныйТокен(ПараметрыФункции)
-
- URL = ПараметрыФункции["RPortal_URL"];
- Токен = ПараметрыФункции["RPortal_TempToken"];
- IDПользователя = ПараметрыФункции["RPortal_UserID"];
- ИмяКлюча = "test_key";
-
- Результат = OPI_ReportPortal.ПолучитьПостоянныйТокен(URL, Токен, IDПользователя, ИмяКлюча);
-
- // END
-
- Обработать(Результат, "ReportPortal", "ПолучитьПостоянныйТокен", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура ReportPortal_УдалитьПостоянныйТокен(ПараметрыФункции)
-
- URL = ПараметрыФункции["RPortal_URL"];
- Токен = ПараметрыФункции["RPortal_TestApiKey"];
- IDПользователя = ПараметрыФункции["RPortal_UserID"];
- IDКлюча = ПараметрыФункции["RPortal_TestKeyID"];
-
- Результат = OPI_ReportPortal.УдалитьПостоянныйТокен(URL, Токен, IDПользователя, IDКлюча);
-
- // END
-
- Обработать(Результат, "ReportPortal", "УдалитьПостоянныйТокен");
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область SSH
-
-Процедура SSH_ОткрытьСоединение(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["SSH_Host"];
- Порт = ПараметрыФункции["SSH_Port"];
-
- ИспользоватьПрокси = Истина;
- НастройкиПрокси = Неопределено;
- ВидАвторизации = "По логину и паролю";
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- ВидАвторизации = ПараметрыФункции["AuthType"]; // SKIP
-
- Если ВидАвторизации = "По логину и паролю" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- Пароль = ПараметрыФункции["SSH_Password"];
-
- НастройкиSSH = OPI_SSH.ПолучитьНастройкиЛогинПароль(Хост, Порт, Логин, Пароль);
-
- ИначеЕсли ВидАвторизации = "По ключу" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- ПриватныйКлюч = "./ssh_key";
- ПубличныйКлюч = "./ssh_key.pub";
-
- ПриватныйКлюч = ПараметрыФункции["SSH_Key"]; // SKIP
- ПубличныйКлюч = ПараметрыФункции["SSH_Pub"]; // SKIP
-
- НастройкиSSH = OPI_SSH.ПолучитьНастройкиПриватныйКлюч(Хост, Порт, Логин, ПриватныйКлюч, ПубличныйКлюч);
-
- Иначе
-
- Логин = ПараметрыФункции["SSH_User"];
- НастройкиSSH = OPI_SSH.ПолучитьНастройкиЧерезАгента(Хост, Порт, Логин);
-
- КонецЕсли;
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- НастройкиПрокси = OPI_SSH.ПолучитьНастройкиПрокси(АдресПрокси, ПортПрокси, ТипПрокси, ЛогинПрокси, ПарольПрокси);
-
- КонецЕсли;
-
- Результат = OPI_SSH.ОткрытьСоединение(НастройкиSSH, НастройкиПрокси);
-
- // END
-
- Обработать(Результат, "SSH", "ОткрытьСоединение", Постфикс);
-
-КонецПроцедуры
-
-Процедура SSH_ВыполнитьКоманду(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["SSH_Host"];
- Порт = ПараметрыФункции["SSH_Port"];
-
- ИспользоватьПрокси = Истина;
- НастройкиПрокси = Неопределено;
- ВидАвторизации = "По логину и паролю";
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- ВидАвторизации = ПараметрыФункции["AuthType"]; // SKIP
-
- Если ВидАвторизации = "По логину и паролю" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- Пароль = ПараметрыФункции["SSH_Password"];
-
- НастройкиSSH = OPI_SSH.ПолучитьНастройкиЛогинПароль(Хост, Порт, Логин, Пароль);
-
- ИначеЕсли ВидАвторизации = "По ключу" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- ПриватныйКлюч = "./ssh_key";
- ПубличныйКлюч = "./ssh_key.pub";
-
- ПриватныйКлюч = ПараметрыФункции["SSH_Key"]; // SKIP
- ПубличныйКлюч = ПараметрыФункции["SSH_Pub"]; // SKIP
-
- НастройкиSSH = OPI_SSH.ПолучитьНастройкиПриватныйКлюч(Хост, Порт, Логин, ПриватныйКлюч, ПубличныйКлюч);
-
- Иначе
-
- Логин = ПараметрыФункции["SSH_User"];
- НастройкиSSH = OPI_SSH.ПолучитьНастройкиЧерезАгента(Хост, Порт, Логин);
-
- КонецЕсли;
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- НастройкиПрокси = OPI_SSH.ПолучитьНастройкиПрокси(АдресПрокси, ПортПрокси, ТипПрокси, ЛогинПрокси, ПарольПрокси);
-
- КонецЕсли;
-
- Соединение = OPI_SSH.ОткрытьСоединение(НастройкиSSH, НастройкиПрокси);
-
- Если OPI_SSH.ЭтоКоннектор(Соединение) Тогда
- Результат = OPI_SSH.ВыполнитьКоманду(Соединение, "whoami");
- Иначе
- Результат = Соединение; // Ошибка соединения
- КонецЕсли;
-
- // END
-
- Обработать(Результат, "SSH", "ВыполнитьКоманду", Постфикс);
-
-КонецПроцедуры
-
-Процедура SSH_ПолучитьКонфигурациюСоединения(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["SSH_Host"];
- Порт = ПараметрыФункции["SSH_Port"];
-
- ИспользоватьПрокси = Истина;
- НастройкиПрокси = Неопределено;
- ВидАвторизации = "По логину и паролю";
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- ВидАвторизации = ПараметрыФункции["AuthType"]; // SKIP
-
- Если ВидАвторизации = "По логину и паролю" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- Пароль = ПараметрыФункции["SSH_Password"];
-
- НастройкиSSH = OPI_SSH.ПолучитьНастройкиЛогинПароль(Хост, Порт, Логин, Пароль);
-
- ИначеЕсли ВидАвторизации = "По ключу" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- ПриватныйКлюч = "./ssh_key";
- ПубличныйКлюч = "./ssh_key.pub";
-
- ПриватныйКлюч = ПараметрыФункции["SSH_Key"]; // SKIP
- ПубличныйКлюч = ПараметрыФункции["SSH_Pub"]; // SKIP
-
- НастройкиSSH = OPI_SSH.ПолучитьНастройкиПриватныйКлюч(Хост, Порт, Логин, ПриватныйКлюч, ПубличныйКлюч);
-
- Иначе
-
- Логин = ПараметрыФункции["SSH_User"];
- НастройкиSSH = OPI_SSH.ПолучитьНастройкиЧерезАгента(Хост, Порт, Логин);
-
- КонецЕсли;
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- НастройкиПрокси = OPI_SSH.ПолучитьНастройкиПрокси(АдресПрокси, ПортПрокси, ТипПрокси, ЛогинПрокси, ПарольПрокси);
-
- КонецЕсли;
-
- Результат = OPI_SSH.ПолучитьКонфигурациюСоединения(НастройкиSSH, НастройкиПрокси);
-
- // END
-
- Обработать(Результат, "SSH", "ПолучитьКонфигурациюСоединения", Постфикс);
-
- Результат = OPI_SSH.ВыполнитьКоманду(Результат, "whoami");
-
- Обработать(Результат, "SSH", "ПолучитьКонфигурациюСоединения", "Проверка, " + Постфикс);
-
-КонецПроцедуры
-
-Процедура SSH_ЗакрытьСоединение(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["SSH_Host"];
- Порт = ПараметрыФункции["SSH_Port"];
-
- ИспользоватьПрокси = Истина;
- НастройкиПрокси = Неопределено;
- ВидАвторизации = "По логину и паролю";
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- ВидАвторизации = ПараметрыФункции["AuthType"]; // SKIP
-
- Если ВидАвторизации = "По логину и паролю" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- Пароль = ПараметрыФункции["SSH_Password"];
-
- НастройкиSSH = OPI_SSH.ПолучитьНастройкиЛогинПароль(Хост, Порт, Логин, Пароль);
-
- ИначеЕсли ВидАвторизации = "По ключу" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- ПриватныйКлюч = "./ssh_key";
- ПубличныйКлюч = "./ssh_key.pub";
-
- ПриватныйКлюч = ПараметрыФункции["SSH_Key"]; // SKIP
- ПубличныйКлюч = ПараметрыФункции["SSH_Pub"]; // SKIP
-
- НастройкиSSH = OPI_SSH.ПолучитьНастройкиПриватныйКлюч(Хост, Порт, Логин, ПриватныйКлюч, ПубличныйКлюч);
-
- Иначе
-
- Логин = ПараметрыФункции["SSH_User"];
- НастройкиSSH = OPI_SSH.ПолучитьНастройкиЧерезАгента(Хост, Порт, Логин);
-
- КонецЕсли;
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- НастройкиПрокси = OPI_SSH.ПолучитьНастройкиПрокси(АдресПрокси, ПортПрокси, ТипПрокси, ЛогинПрокси, ПарольПрокси);
-
- КонецЕсли;
-
- Соединение = OPI_SSH.ОткрытьСоединение(НастройкиSSH, НастройкиПрокси);
-
- Если OPI_SSH.ЭтоКоннектор(Соединение) Тогда
- Результат = OPI_SSH.ЗакрытьСоединение(Соединение);
- Иначе
- Результат = Соединение; // Ошибка соединения
- КонецЕсли;
-
- // END
-
- Обработать(Результат, "SSH", "ЗакрытьСоединение", Постфикс);
-
-КонецПроцедуры
-
-Процедура SSH_ЭтоКоннектор(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["SSH_Host"];
- Порт = ПараметрыФункции["SSH_Port"];
-
- ИспользоватьПрокси = Истина;
- НастройкиПрокси = Неопределено;
- ВидАвторизации = "По логину и паролю";
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- ВидАвторизации = ПараметрыФункции["AuthType"]; // SKIP
-
- Если ВидАвторизации = "По логину и паролю" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- Пароль = ПараметрыФункции["SSH_Password"];
-
- НастройкиSSH = OPI_SSH.ПолучитьНастройкиЛогинПароль(Хост, Порт, Логин, Пароль);
-
- ИначеЕсли ВидАвторизации = "По ключу" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- ПриватныйКлюч = "./ssh_key";
- ПубличныйКлюч = "./ssh_key.pub";
-
- ПриватныйКлюч = ПараметрыФункции["SSH_Key"]; // SKIP
- ПубличныйКлюч = ПараметрыФункции["SSH_Pub"]; // SKIP
-
- НастройкиSSH = OPI_SSH.ПолучитьНастройкиПриватныйКлюч(Хост, Порт, Логин, ПриватныйКлюч, ПубличныйКлюч);
-
- Иначе
-
- Логин = ПараметрыФункции["SSH_User"];
- НастройкиSSH = OPI_SSH.ПолучитьНастройкиЧерезАгента(Хост, Порт, Логин);
-
- КонецЕсли;
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- НастройкиПрокси = OPI_SSH.ПолучитьНастройкиПрокси(АдресПрокси, ПортПрокси, ТипПрокси, ЛогинПрокси, ПарольПрокси);
-
- КонецЕсли;
-
- Соединение = OPI_SSH.ОткрытьСоединение(НастройкиSSH, НастройкиПрокси);
- Результат = OPI_SSH.ЭтоКоннектор(Соединение);
-
- // END
-
- Обработать(Результат, "SSH", "ЭтоКоннектор", Постфикс);
-
- Результат = OPI_SSH.ЭтоКоннектор("a");
-
- Обработать(Результат, "SSH", "ЭтоКоннектор", "Ошибка, " + Постфикс);
-
-КонецПроцедуры
-
-Процедура SSH_ПолучитьНастройкиЛогинПароль(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["SSH_Host"];
- Порт = ПараметрыФункции["SSH_Port"];
- Логин = ПараметрыФункции["SSH_User"];
- Пароль = ПараметрыФункции["SSH_Password"];
-
- Результат = OPI_SSH.ПолучитьНастройкиЛогинПароль(Хост, Порт, Логин, Пароль);
-
- // END
-
- Обработать(Результат, "SSH", "ПолучитьНастройкиЛогинПароль", Постфикс);
-
-КонецПроцедуры
-
-Процедура SSH_ПолучитьНастройкиПриватныйКлюч(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["SSH_Host"];
- Порт = ПараметрыФункции["SSH_Port"];
- Логин = ПараметрыФункции["SSH_User"];
- ПриватныйКлюч = "./ssh_key";
- ПубличныйКлюч = "./ssh_key.pub";
-
- ПриватныйКлюч = ПараметрыФункции["SSH_Key"]; // SKIP
- ПубличныйКлюч = ПараметрыФункции["SSH_Pub"]; // SKIP
-
- Результат = OPI_SSH.ПолучитьНастройкиПриватныйКлюч(Хост, Порт, Логин, ПриватныйКлюч, ПубличныйКлюч);
-
- // END
-
- Обработать(Результат, "SSH", "ПолучитьНастройкиПриватныйКлюч", Постфикс);
-
-КонецПроцедуры
-
-Процедура SSH_ПолучитьНастройкиЧерезАгента(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["SSH_Host"];
- Порт = ПараметрыФункции["SSH_Port"];
- Логин = ПараметрыФункции["SSH_User"];
- Результат = OPI_SSH.ПолучитьНастройкиЧерезАгента(Хост, Порт, Логин);
-
- // END
-
- Обработать(Результат, "SSH", "ПолучитьНастройкиЧерезАгента", Постфикс);
-
-КонецПроцедуры
-
-Процедура SSH_ПолучитьНастройкиПрокси(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- Результат = OPI_SSH.ПолучитьНастройкиПрокси(АдресПрокси, ПортПрокси, ТипПрокси, ЛогинПрокси, ПарольПрокси);
-
- // END
-
- Обработать(Результат, "SSH", "ПолучитьНастройкиПрокси", Постфикс);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область SFTP
-
-Процедура SFTP_ОткрытьСоединение(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["SSH_Host"];
- Порт = ПараметрыФункции["SSH_Port"];
-
- ИспользоватьПрокси = Истина;
- НастройкиПрокси = Неопределено;
- ВидАвторизации = "По логину и паролю";
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- ВидАвторизации = ПараметрыФункции["AuthType"]; // SKIP
-
- Если ВидАвторизации = "По логину и паролю" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- Пароль = ПараметрыФункции["SSH_Password"];
-
- НастройкиSFTP = OPI_SFTP.ПолучитьНастройкиЛогинПароль(Хост, Порт, Логин, Пароль);
-
- ИначеЕсли ВидАвторизации = "По ключу" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- ПриватныйКлюч = "./ssh_key";
- ПубличныйКлюч = "./ssh_key.pub";
-
- ПриватныйКлюч = ПараметрыФункции["SSH_Key"]; // SKIP
- ПубличныйКлюч = ПараметрыФункции["SSH_Pub"]; // SKIP
-
- НастройкиSFTP = OPI_SFTP.ПолучитьНастройкиПриватныйКлюч(Хост, Порт, Логин, ПриватныйКлюч, ПубличныйКлюч);
-
- Иначе
-
- Логин = ПараметрыФункции["SSH_User"];
- НастройкиSFTP = OPI_SFTP.ПолучитьНастройкиЧерезАгента(Хост, Порт, Логин);
-
- КонецЕсли;
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- НастройкиПрокси = OPI_SFTP.ПолучитьНастройкиПрокси(АдресПрокси, ПортПрокси, ТипПрокси, ЛогинПрокси, ПарольПрокси);
-
- КонецЕсли;
-
- Результат = OPI_SFTP.ОткрытьСоединение(НастройкиSFTP, НастройкиПрокси);
-
- // END
-
- Обработать(Результат, "SFTP", "ОткрытьСоединение", Постфикс);
-
-КонецПроцедуры
-
-Процедура SFTP_СоздатьНовуюДиректорию(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["SSH_Host"];
- Порт = ПараметрыФункции["SSH_Port"];
-
- ИспользоватьПрокси = Истина;
- НастройкиПрокси = Неопределено;
- ВидАвторизации = "По логину и паролю";
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- ВидАвторизации = ПараметрыФункции["AuthType"]; // SKIP
-
- Если ВидАвторизации = "По логину и паролю" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- Пароль = ПараметрыФункции["SSH_Password"];
-
- НастройкиSFTP = OPI_SFTP.ПолучитьНастройкиЛогинПароль(Хост, Порт, Логин, Пароль);
-
- ИначеЕсли ВидАвторизации = "По ключу" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- ПриватныйКлюч = "./ssh_key";
- ПубличныйКлюч = "./ssh_key.pub";
-
- ПриватныйКлюч = ПараметрыФункции["SSH_Key"]; // SKIP
- ПубличныйКлюч = ПараметрыФункции["SSH_Pub"]; // SKIP
-
- НастройкиSFTP = OPI_SFTP.ПолучитьНастройкиПриватныйКлюч(Хост, Порт, Логин, ПриватныйКлюч, ПубличныйКлюч);
-
- Иначе
-
- Логин = ПараметрыФункции["SSH_User"];
- НастройкиSFTP = OPI_SFTP.ПолучитьНастройкиЧерезАгента(Хост, Порт, Логин);
-
- КонецЕсли;
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- НастройкиПрокси = OPI_SFTP.ПолучитьНастройкиПрокси(АдресПрокси, ПортПрокси, ТипПрокси, ЛогинПрокси, ПарольПрокси);
-
- КонецЕсли;
-
- Соединение = OPI_SFTP.ОткрытьСоединение(НастройкиSFTP, НастройкиПрокси);
-
- Если OPI_SFTP.ЭтоКоннектор(Соединение) Тогда
- Результат = OPI_SFTP.СоздатьНовуюДиректорию(Соединение, "new_dir");
- Иначе
- Результат = Соединение; // Ошибка соединения
- КонецЕсли;
-
- // END
-
- Обработать(Результат, "SFTP", "СоздатьНовуюДиректорию", Постфикс);
-
-КонецПроцедуры
-
-Процедура SFTP_УдалитьДиректорию(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["SSH_Host"];
- Порт = ПараметрыФункции["SSH_Port"];
-
- ИспользоватьПрокси = Истина;
- НастройкиПрокси = Неопределено;
- ВидАвторизации = "По логину и паролю";
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- ВидАвторизации = ПараметрыФункции["AuthType"]; // SKIP
-
- Если ВидАвторизации = "По логину и паролю" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- Пароль = ПараметрыФункции["SSH_Password"];
-
- НастройкиSFTP = OPI_SFTP.ПолучитьНастройкиЛогинПароль(Хост, Порт, Логин, Пароль);
-
- ИначеЕсли ВидАвторизации = "По ключу" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- ПриватныйКлюч = "./ssh_key";
- ПубличныйКлюч = "./ssh_key.pub";
-
- ПриватныйКлюч = ПараметрыФункции["SSH_Key"]; // SKIP
- ПубличныйКлюч = ПараметрыФункции["SSH_Pub"]; // SKIP
-
- НастройкиSFTP = OPI_SFTP.ПолучитьНастройкиПриватныйКлюч(Хост, Порт, Логин, ПриватныйКлюч, ПубличныйКлюч);
-
- Иначе
-
- Логин = ПараметрыФункции["SSH_User"];
- НастройкиSFTP = OPI_SFTP.ПолучитьНастройкиЧерезАгента(Хост, Порт, Логин);
-
- КонецЕсли;
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- НастройкиПрокси = OPI_SFTP.ПолучитьНастройкиПрокси(АдресПрокси, ПортПрокси, ТипПрокси, ЛогинПрокси, ПарольПрокси);
-
- КонецЕсли;
-
- Соединение = OPI_SFTP.ОткрытьСоединение(НастройкиSFTP, НастройкиПрокси);
-
- Если OPI_SFTP.ЭтоКоннектор(Соединение) Тогда
- Результат = OPI_SFTP.УдалитьДиректорию(Соединение, "new_dir");
- Иначе
- Результат = Соединение; // Ошибка соединения
- КонецЕсли;
-
- // END
-
- Обработать(Результат, "SFTP", "УдалитьДиректорию", Постфикс);
-
-КонецПроцедуры
-
-Процедура SFTP_ПолучитьТекущийКаталог(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["SSH_Host"];
- Порт = ПараметрыФункции["SSH_Port"];
-
- ИспользоватьПрокси = Истина;
- НастройкиПрокси = Неопределено;
- ВидАвторизации = "По логину и паролю";
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- ВидАвторизации = ПараметрыФункции["AuthType"]; // SKIP
-
- Если ВидАвторизации = "По логину и паролю" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- Пароль = ПараметрыФункции["SSH_Password"];
-
- НастройкиSFTP = OPI_SFTP.ПолучитьНастройкиЛогинПароль(Хост, Порт, Логин, Пароль);
-
- ИначеЕсли ВидАвторизации = "По ключу" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- ПриватныйКлюч = "./ssh_key";
- ПубличныйКлюч = "./ssh_key.pub";
-
- ПриватныйКлюч = ПараметрыФункции["SSH_Key"]; // SKIP
- ПубличныйКлюч = ПараметрыФункции["SSH_Pub"]; // SKIP
-
- НастройкиSFTP = OPI_SFTP.ПолучитьНастройкиПриватныйКлюч(Хост, Порт, Логин, ПриватныйКлюч, ПубличныйКлюч);
-
- Иначе
-
- Логин = ПараметрыФункции["SSH_User"];
- НастройкиSFTP = OPI_SFTP.ПолучитьНастройкиЧерезАгента(Хост, Порт, Логин);
-
- КонецЕсли;
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- НастройкиПрокси = OPI_SFTP.ПолучитьНастройкиПрокси(АдресПрокси, ПортПрокси, ТипПрокси, ЛогинПрокси, ПарольПрокси);
-
- КонецЕсли;
-
- Соединение = OPI_SFTP.ОткрытьСоединение(НастройкиSFTP, НастройкиПрокси);
-
- Если OPI_SFTP.ЭтоКоннектор(Соединение) Тогда
- Результат = OPI_SFTP.ПолучитьТекущийКаталог(Соединение);
- Иначе
- Результат = Соединение; // Ошибка соединения
- КонецЕсли;
-
- // END
-
- Обработать(Результат, "SFTP", "ПолучитьТекущийКаталог", Постфикс);
-
-КонецПроцедуры
-
-Процедура SFTP_ПолучитьСписокОбъектов(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["SSH_Host"];
- Порт = ПараметрыФункции["SSH_Port"];
-
- ИспользоватьПрокси = Истина;
- НастройкиПрокси = Неопределено;
- ВидАвторизации = "По логину и паролю";
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- ВидАвторизации = ПараметрыФункции["AuthType"]; // SKIP
-
- Если ВидАвторизации = "По логину и паролю" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- Пароль = ПараметрыФункции["SSH_Password"];
-
- НастройкиSFTP = OPI_SFTP.ПолучитьНастройкиЛогинПароль(Хост, Порт, Логин, Пароль);
-
- ИначеЕсли ВидАвторизации = "По ключу" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- ПриватныйКлюч = "./ssh_key";
- ПубличныйКлюч = "./ssh_key.pub";
-
- ПриватныйКлюч = ПараметрыФункции["SSH_Key"]; // SKIP
- ПубличныйКлюч = ПараметрыФункции["SSH_Pub"]; // SKIP
-
- НастройкиSFTP = OPI_SFTP.ПолучитьНастройкиПриватныйКлюч(Хост, Порт, Логин, ПриватныйКлюч, ПубличныйКлюч);
-
- Иначе
-
- Логин = ПараметрыФункции["SSH_User"];
- НастройкиSFTP = OPI_SFTP.ПолучитьНастройкиЧерезАгента(Хост, Порт, Логин);
-
- КонецЕсли;
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- НастройкиПрокси = OPI_SFTP.ПолучитьНастройкиПрокси(АдресПрокси, ПортПрокси, ТипПрокси, ЛогинПрокси, ПарольПрокси);
-
- КонецЕсли;
-
- Соединение = OPI_SFTP.ОткрытьСоединение(НастройкиSFTP, НастройкиПрокси);
-
- Если OPI_SFTP.ЭтоКоннектор(Соединение) Тогда
- Результат = OPI_SFTP.ПолучитьСписокОбъектов(Соединение, "test_folder", Истина);
- Иначе
- Результат = Соединение; // Ошибка соединения
- КонецЕсли;
-
- // END
-
- Обработать(Результат, "SFTP", "ПолучитьСписокОбъектов", Постфикс);
-
- Результат = OPI_SFTP.ПолучитьСписокОбъектов(Соединение, "test_folder");
-
- Обработать(Результат, "SFTP", "ПолучитьСписокОбъектов", Постфикс + ", Без рекурсии");
-
-КонецПроцедуры
-
-Процедура SFTP_ЗагрузитьФайл(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- КартинкаПуть = "C:\pic.png";
-
- Картинка = ПараметрыФункции["Picture"]; // SKIP
- ИВФ = ПолучитьИмяВременногоФайла("png"); // SKIP
- КопироватьФайл(Картинка, ИВФ); // SKIP
- Картинка = ИВФ; // SKIP
-
- КартинкаДД = Новый ДвоичныеДанные(Картинка);
-
- Хост = ПараметрыФункции["SSH_Host"];
- Порт = ПараметрыФункции["SSH_Port"];
-
- ИспользоватьПрокси = Истина;
- НастройкиПрокси = Неопределено;
- ВидАвторизации = "По логину и паролю";
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- ВидАвторизации = ПараметрыФункции["AuthType"]; // SKIP
-
- Если ВидАвторизации = "По логину и паролю" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- Пароль = ПараметрыФункции["SSH_Password"];
-
- НастройкиSFTP = OPI_SFTP.ПолучитьНастройкиЛогинПароль(Хост, Порт, Логин, Пароль);
-
- ИначеЕсли ВидАвторизации = "По ключу" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- ПриватныйКлюч = "./ssh_key";
- ПубличныйКлюч = "./ssh_key.pub";
-
- ПриватныйКлюч = ПараметрыФункции["SSH_Key"]; // SKIP
- ПубличныйКлюч = ПараметрыФункции["SSH_Pub"]; // SKIP
-
- НастройкиSFTP = OPI_SFTP.ПолучитьНастройкиПриватныйКлюч(Хост, Порт, Логин, ПриватныйКлюч, ПубличныйКлюч);
-
- Иначе
-
- Логин = ПараметрыФункции["SSH_User"];
- НастройкиSFTP = OPI_SFTP.ПолучитьНастройкиЧерезАгента(Хост, Порт, Логин);
-
- КонецЕсли;
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- НастройкиПрокси = OPI_SFTP.ПолучитьНастройкиПрокси(АдресПрокси, ПортПрокси, ТипПрокси, ЛогинПрокси, ПарольПрокси);
-
- КонецЕсли;
-
- Соединение = OPI_SFTP.ОткрытьСоединение(НастройкиSFTP, НастройкиПрокси);
-
- Если OPI_SFTP.ЭтоКоннектор(Соединение) Тогда
-
- Результат = OPI_SFTP.ЗагрузитьФайл(Соединение, Картинка, "pic_from_disk.png");
- Результат2 = OPI_SFTP.ЗагрузитьФайл(Соединение, КартинкаДД, "files_folder/pic_from_binary.png");
-
- Иначе
- Результат = Соединение; // Ошибка соединения
- КонецЕсли;
-
- // END
-
- ЗагруженныйФайл = Новый Файл(Картинка);
-
- Обработать(Результат , "SFTP", "ЗагрузитьФайл", Постфикс , ЗагруженныйФайл.Размер());
- Обработать(Результат2, "SFTP", "ЗагрузитьФайл", "Двоичные, " + Постфикс, КартинкаДД.Размер());
-
-
- РазмерФайлаЛокальный = ЗагруженныйФайл.Размер();
- РазмерФайлаЛокальныйДД = КартинкаДД.Размер();
-
- РазмерФайлаУдаленный = OPI_SFTP.ПолучитьИнформациюОФайле(Соединение, "pic_from_disk.png")["data"]["size"];
- РазмерФайлаУдаленныйДД = OPI_SFTP.ПолучитьИнформациюОФайле(Соединение, "files_folder/pic_from_binary.png")["data"]["size"];
-
- Обработать(РазмерФайлаЛокальный , "SFTP", "СохранитьФайл", "Размер файла, " + Постфикс , РазмерФайлаУдаленный);
- Обработать(РазмерФайлаЛокальныйДД, "SFTP", "СохранитьФайл", "Размер файла, ДД, " + Постфикс, РазмерФайлаУдаленныйДД);
-
- Для Н = 1 По 7 Цикл
-
- Результат = OPI_SFTP.ЗагрузитьФайл(Соединение, Картинка, "pic_from_disk.png");
- Результат2 = OPI_SFTP.ЗагрузитьФайл(Соединение, КартинкаДД, "files_folder/pic_from_binary.png");
-
- Если Не Результат["result"] Тогда
- Обработать(Результат, "SFTP", "ЗагрузитьФайл", "Множественный, " + Постфикс, КартинкаДД.Размер());
- КонецЕсли;
-
- Если Не Результат2["result"] Тогда
- Обработать(Результат2, "SFTP", "ЗагрузитьФайл", "Множественный, двоичные, " + Постфикс, КартинкаДД.Размер());
- КонецЕсли;
-
- КонецЦикла;
-
- OPI_Инструменты.УдалитьФайлВПопытке(ИВФ, "Не удалось удалить временный файл после теста!");
-
-КонецПроцедуры
-
-Процедура SFTP_УдалитьФайл(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["SSH_Host"];
- Порт = ПараметрыФункции["SSH_Port"];
-
- ИспользоватьПрокси = Истина;
- НастройкиПрокси = Неопределено;
- ВидАвторизации = "По логину и паролю";
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- ВидАвторизации = ПараметрыФункции["AuthType"]; // SKIP
-
- Если ВидАвторизации = "По логину и паролю" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- Пароль = ПараметрыФункции["SSH_Password"];
-
- НастройкиSFTP = OPI_SFTP.ПолучитьНастройкиЛогинПароль(Хост, Порт, Логин, Пароль);
-
- ИначеЕсли ВидАвторизации = "По ключу" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- ПриватныйКлюч = "./ssh_key";
- ПубличныйКлюч = "./ssh_key.pub";
-
- ПриватныйКлюч = ПараметрыФункции["SSH_Key"]; // SKIP
- ПубличныйКлюч = ПараметрыФункции["SSH_Pub"]; // SKIP
-
- НастройкиSFTP = OPI_SFTP.ПолучитьНастройкиПриватныйКлюч(Хост, Порт, Логин, ПриватныйКлюч, ПубличныйКлюч);
-
- Иначе
-
- Логин = ПараметрыФункции["SSH_User"];
- НастройкиSFTP = OPI_SFTP.ПолучитьНастройкиЧерезАгента(Хост, Порт, Логин);
-
- КонецЕсли;
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- НастройкиПрокси = OPI_SFTP.ПолучитьНастройкиПрокси(АдресПрокси, ПортПрокси, ТипПрокси, ЛогинПрокси, ПарольПрокси);
-
- КонецЕсли;
-
- Соединение = OPI_SFTP.ОткрытьСоединение(НастройкиSFTP, НастройкиПрокси);
-
- Если OPI_SFTP.ЭтоКоннектор(Соединение) Тогда
- Результат = OPI_SFTP.УдалитьФайл(Соединение, "files_folder/pic_from_binary.png");
- Иначе
- Результат = Соединение; // Ошибка соединения
- КонецЕсли;
-
- // END
-
- Обработать(Результат , "SFTP", "УдалитьФайл", Постфикс);
-
- Результат = OPI_SFTP.УдалитьФайл(Соединение, "files_folder/pic_from_binary.png");
-
- Обработать(Результат , "SFTP", "УдалитьФайл", "Несуществующий, " + Постфикс);
-
- Результат = OPI_SFTP.ПолучитьСписокОбъектов(Соединение, "files_folder", Истина);
-
- Обработать(Результат , "SFTP", "УдалитьФайл", "Проверка, " + Постфикс);
-
-КонецПроцедуры
-
-Процедура SFTP_ЭтоКоннектор(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["SSH_Host"];
- Порт = ПараметрыФункции["SSH_Port"];
-
- ИспользоватьПрокси = Истина;
- НастройкиПрокси = Неопределено;
- ВидАвторизации = "По логину и паролю";
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- ВидАвторизации = ПараметрыФункции["AuthType"]; // SKIP
-
- Если ВидАвторизации = "По логину и паролю" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- Пароль = ПараметрыФункции["SSH_Password"];
-
- НастройкиSFTP = OPI_SFTP.ПолучитьНастройкиЛогинПароль(Хост, Порт, Логин, Пароль);
-
- ИначеЕсли ВидАвторизации = "По ключу" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- ПриватныйКлюч = "./ssh_key";
- ПубличныйКлюч = "./ssh_key.pub";
-
- ПриватныйКлюч = ПараметрыФункции["SSH_Key"]; // SKIP
- ПубличныйКлюч = ПараметрыФункции["SSH_Pub"]; // SKIP
-
- НастройкиSFTP = OPI_SFTP.ПолучитьНастройкиПриватныйКлюч(Хост, Порт, Логин, ПриватныйКлюч, ПубличныйКлюч);
-
- Иначе
-
- Логин = ПараметрыФункции["SSH_User"];
- НастройкиSFTP = OPI_SFTP.ПолучитьНастройкиЧерезАгента(Хост, Порт, Логин);
-
- КонецЕсли;
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- НастройкиПрокси = OPI_SFTP.ПолучитьНастройкиПрокси(АдресПрокси, ПортПрокси, ТипПрокси, ЛогинПрокси, ПарольПрокси);
-
- КонецЕсли;
-
- Соединение = OPI_SFTP.ОткрытьСоединение(НастройкиSFTP, НастройкиПрокси);
- Результат = OPI_SFTP.ЭтоКоннектор(Соединение);
-
- // END
-
- Обработать(Результат, "SFTP", "ЭтоКоннектор", Постфикс);
-
- Результат = OPI_SFTP.ЭтоКоннектор("a");
-
- Обработать(Результат, "SFTP", "ЭтоКоннектор", "Ошибка, " + Постфикс);
-
-КонецПроцедуры
-
-Процедура SFTP_ПолучитьНастройкиЛогинПароль(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["SSH_Host"];
- Порт = ПараметрыФункции["SSH_Port"];
- Логин = ПараметрыФункции["SSH_User"];
- Пароль = ПараметрыФункции["SSH_Password"];
-
- Результат = OPI_SFTP.ПолучитьНастройкиЛогинПароль(Хост, Порт, Логин, Пароль);
-
- // END
-
- Обработать(Результат, "SFTP", "ПолучитьНастройкиЛогинПароль", Постфикс);
-
-КонецПроцедуры
-
-Процедура SFTP_ПолучитьНастройкиПриватныйКлюч(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["SSH_Host"];
- Порт = ПараметрыФункции["SSH_Port"];
- Логин = ПараметрыФункции["SSH_User"];
- ПриватныйКлюч = "./ssh_key";
- ПубличныйКлюч = "./ssh_key.pub";
-
- ПриватныйКлюч = ПараметрыФункции["SSH_Key"]; // SKIP
- ПубличныйКлюч = ПараметрыФункции["SSH_Pub"]; // SKIP
-
- Результат = OPI_SFTP.ПолучитьНастройкиПриватныйКлюч(Хост, Порт, Логин, ПриватныйКлюч, ПубличныйКлюч);
-
- // END
-
- Обработать(Результат, "SFTP", "ПолучитьНастройкиПриватныйКлюч", Постфикс);
-
-КонецПроцедуры
-
-Процедура SFTP_ПолучитьНастройкиЧерезАгента(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["SSH_Host"];
- Порт = ПараметрыФункции["SSH_Port"];
- Логин = ПараметрыФункции["SSH_User"];
- Результат = OPI_SFTP.ПолучитьНастройкиЧерезАгента(Хост, Порт, Логин);
-
- // END
-
- Обработать(Результат, "SFTP", "ПолучитьНастройкиЧерезАгента", Постфикс);
-
-КонецПроцедуры
-
-Процедура SFTP_ПолучитьНастройкиПрокси(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- Результат = OPI_SFTP.ПолучитьНастройкиПрокси(АдресПрокси, ПортПрокси, ТипПрокси, ЛогинПрокси, ПарольПрокси);
-
- // END
-
- Обработать(Результат, "SFTP", "ПолучитьНастройкиПрокси", Постфикс);
-
-КонецПроцедуры
-
-Процедура SFTP_ПолучитьКонфигурациюСоединения(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["SSH_Host"];
- Порт = ПараметрыФункции["SSH_Port"];
-
- ИспользоватьПрокси = Истина;
- НастройкиПрокси = Неопределено;
- ВидАвторизации = "По логину и паролю";
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- ВидАвторизации = ПараметрыФункции["AuthType"]; // SKIP
-
- Если ВидАвторизации = "По логину и паролю" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- Пароль = ПараметрыФункции["SSH_Password"];
-
- НастройкиSFTP = OPI_SFTP.ПолучитьНастройкиЛогинПароль(Хост, Порт, Логин, Пароль);
-
- ИначеЕсли ВидАвторизации = "По ключу" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- ПриватныйКлюч = "./ssh_key";
- ПубличныйКлюч = "./ssh_key.pub";
-
- ПриватныйКлюч = ПараметрыФункции["SSH_Key"]; // SKIP
- ПубличныйКлюч = ПараметрыФункции["SSH_Pub"]; // SKIP
-
- НастройкиSFTP = OPI_SFTP.ПолучитьНастройкиПриватныйКлюч(Хост, Порт, Логин, ПриватныйКлюч, ПубличныйКлюч);
-
- Иначе
-
- Логин = ПараметрыФункции["SSH_User"];
- НастройкиSFTP = OPI_SFTP.ПолучитьНастройкиЧерезАгента(Хост, Порт, Логин);
-
- КонецЕсли;
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- НастройкиПрокси = OPI_SFTP.ПолучитьНастройкиПрокси(АдресПрокси, ПортПрокси, ТипПрокси, ЛогинПрокси, ПарольПрокси);
-
- КонецЕсли;
-
- Результат = OPI_SFTP.ПолучитьКонфигурациюСоединения(НастройкиSFTP, НастройкиПрокси);
-
- // END
-
- Обработать(Результат, "SFTP", "ПолучитьКонфигурациюСоединения", Постфикс);
-
- Результат = OPI_SSH.ВыполнитьКоманду(Результат, "whoami");
-
- Обработать(Результат, "SFTP", "ПолучитьКонфигурациюСоединения", "Проверка, " + Постфикс);
-
-КонецПроцедуры
-
-Процедура SFTP_ЗакрытьСоединение(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["SSH_Host"];
- Порт = ПараметрыФункции["SSH_Port"];
-
- ИспользоватьПрокси = Истина;
- НастройкиПрокси = Неопределено;
- ВидАвторизации = "По логину и паролю";
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- ВидАвторизации = ПараметрыФункции["AuthType"]; // SKIP
-
- Если ВидАвторизации = "По логину и паролю" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- Пароль = ПараметрыФункции["SSH_Password"];
-
- НастройкиSFTP = OPI_SFTP.ПолучитьНастройкиЛогинПароль(Хост, Порт, Логин, Пароль);
-
- ИначеЕсли ВидАвторизации = "По ключу" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- ПриватныйКлюч = "./ssh_key";
- ПубличныйКлюч = "./ssh_key.pub";
-
- ПриватныйКлюч = ПараметрыФункции["SSH_Key"]; // SKIP
- ПубличныйКлюч = ПараметрыФункции["SSH_Pub"]; // SKIP
-
- НастройкиSFTP = OPI_SFTP.ПолучитьНастройкиПриватныйКлюч(Хост, Порт, Логин, ПриватныйКлюч, ПубличныйКлюч);
-
- Иначе
-
- Логин = ПараметрыФункции["SSH_User"];
- НастройкиSFTP = OPI_SFTP.ПолучитьНастройкиЧерезАгента(Хост, Порт, Логин);
-
- КонецЕсли;
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- НастройкиПрокси = OPI_SFTP.ПолучитьНастройкиПрокси(АдресПрокси, ПортПрокси, ТипПрокси, ЛогинПрокси, ПарольПрокси);
-
- КонецЕсли;
-
- Соединение = OPI_SFTP.ОткрытьСоединение(НастройкиSFTP, НастройкиПрокси);
-
- Если OPI_SFTP.ЭтоКоннектор(Соединение) Тогда
- Результат = OPI_SFTP.ЗакрытьСоединение(Соединение);
- Иначе
- Результат = Соединение; // Ошибка соединения
- КонецЕсли;
-
- // END
-
- Обработать(Результат, "SFTP", "ЗакрытьСоединение", Постфикс);
-
-КонецПроцедуры
-
-Процедура SFTP_СохранитьФайл(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["SSH_Host"];
- Порт = ПараметрыФункции["SSH_Port"];
-
- ИспользоватьПрокси = Истина;
- НастройкиПрокси = Неопределено;
- ВидАвторизации = "По логину и паролю";
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- ВидАвторизации = ПараметрыФункции["AuthType"]; // SKIP
-
- Если ВидАвторизации = "По логину и паролю" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- Пароль = ПараметрыФункции["SSH_Password"];
-
- НастройкиSFTP = OPI_SFTP.ПолучитьНастройкиЛогинПароль(Хост, Порт, Логин, Пароль);
-
- ИначеЕсли ВидАвторизации = "По ключу" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- ПриватныйКлюч = "./ssh_key";
- ПубличныйКлюч = "./ssh_key.pub";
-
- ПриватныйКлюч = ПараметрыФункции["SSH_Key"]; // SKIP
- ПубличныйКлюч = ПараметрыФункции["SSH_Pub"]; // SKIP
-
- НастройкиSFTP = OPI_SFTP.ПолучитьНастройкиПриватныйКлюч(Хост, Порт, Логин, ПриватныйКлюч, ПубличныйКлюч);
-
- Иначе
-
- Логин = ПараметрыФункции["SSH_User"];
- НастройкиSFTP = OPI_SFTP.ПолучитьНастройкиЧерезАгента(Хост, Порт, Логин);
-
- КонецЕсли;
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- НастройкиПрокси = OPI_SFTP.ПолучитьНастройкиПрокси(АдресПрокси, ПортПрокси, ТипПрокси, ЛогинПрокси, ПарольПрокси);
-
- КонецЕсли;
-
- Соединение = OPI_SFTP.ОткрытьСоединение(НастройкиSFTP, НастройкиПрокси);
-
- Если OPI_SFTP.ЭтоКоннектор(Соединение) Тогда
-
- Путь = "pic_from_disk.png";
- ИмяФайла = ПолучитьИмяВременногоФайла("bin");
-
- Результат = OPI_SFTP.СохранитьФайл(Соединение, Путь, ИмяФайла);
-
- Иначе
- Результат = Соединение; // Ошибка соединения
- КонецЕсли;
-
- // END
-
- Обработать(Результат, "SFTP", "СохранитьФайл", Постфикс);
-
- ЗагруженныйФайл = Новый Файл(ИмяФайла);
- РазмерФайлаЛокальный = ЗагруженныйФайл.Размер();
- РазмерФайлаУдаленный = OPI_SFTP.ПолучитьИнформациюОФайле(Соединение, Путь)["data"]["size"];
-
- Обработать(РазмерФайлаЛокальный, "SFTP", "СохранитьФайл", "Размер файла, " + Постфикс, РазмерФайлаУдаленный);
-
- Путь = "files_folder/pic_from_binary.png";
-
- Для Н = 1 По 20 Цикл
-
- Результат = OPI_SFTP.СохранитьФайл(Соединение, Путь, ИмяФайла);
-
- Если Не Результат["result"] Тогда
- Обработать(Результат, "SFTP", "СохранитьФайл", "Множественный, " + Постфикс);
- КонецЕсли;
-
- КонецЦикла;
-
- OPI_Инструменты.УдалитьФайлВПопытке(ИмяФайла, "Не удалось удалить временный файл после теста!");
-
-КонецПроцедуры
-
-Процедура SFTP_ПолучитьДанныеФайла(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["SSH_Host"];
- Порт = ПараметрыФункции["SSH_Port"];
-
- ИспользоватьПрокси = Истина;
- НастройкиПрокси = Неопределено;
- ВидАвторизации = "По логину и паролю";
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- ВидАвторизации = ПараметрыФункции["AuthType"]; // SKIP
-
- Если ВидАвторизации = "По логину и паролю" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- Пароль = ПараметрыФункции["SSH_Password"];
-
- НастройкиSFTP = OPI_SFTP.ПолучитьНастройкиЛогинПароль(Хост, Порт, Логин, Пароль);
-
- ИначеЕсли ВидАвторизации = "По ключу" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- ПриватныйКлюч = "./ssh_key";
- ПубличныйКлюч = "./ssh_key.pub";
-
- ПриватныйКлюч = ПараметрыФункции["SSH_Key"]; // SKIP
- ПубличныйКлюч = ПараметрыФункции["SSH_Pub"]; // SKIP
-
- НастройкиSFTP = OPI_SFTP.ПолучитьНастройкиПриватныйКлюч(Хост, Порт, Логин, ПриватныйКлюч, ПубличныйКлюч);
-
- Иначе
-
- Логин = ПараметрыФункции["SSH_User"];
- НастройкиSFTP = OPI_SFTP.ПолучитьНастройкиЧерезАгента(Хост, Порт, Логин);
-
- КонецЕсли;
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- НастройкиПрокси = OPI_SFTP.ПолучитьНастройкиПрокси(АдресПрокси, ПортПрокси, ТипПрокси, ЛогинПрокси, ПарольПрокси);
-
- КонецЕсли;
-
- Соединение = OPI_SFTP.ОткрытьСоединение(НастройкиSFTP, НастройкиПрокси);
-
- Если OPI_SFTP.ЭтоКоннектор(Соединение) Тогда
-
- Путь = "pic_from_disk.png";
- Результат = OPI_SFTP.ПолучитьДанныеФайла(Соединение, Путь);
-
- Иначе
- Результат = Соединение; // Ошибка соединения
- КонецЕсли;
-
- // END
-
- Обработать(Результат, "SFTP", "ПолучитьДанныеФайла", Постфикс);
-
- РазмерФайлаЛокальный = Результат.Размер();
- РазмерФайлаУдаленный = OPI_SFTP.ПолучитьИнформациюОФайле(Соединение, Путь)["data"]["size"];
-
- Обработать(РазмерФайлаЛокальный, "SFTP", "ПолучитьДанныеФайла", "Размер файла, " + Постфикс, РазмерФайлаУдаленный);
-
- Путь = "files_folder/pic_from_binary.png";
-
- Для Н = 1 По 20 Цикл
-
- Результат = OPI_SFTP.ПолучитьДанныеФайла(Соединение, Путь);
-
- Если Не ТипЗнч(Результат) = Тип("ДвоичныеДанные") Тогда
- Обработать(Результат, "SFTP", "ПолучитьДанныеФайла", "Множественный, " + Постфикс);
- КонецЕсли;
-
- КонецЦикла;
-
-КонецПроцедуры
-
-Процедура SFTP_ИзменитьПуть(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["SSH_Host"];
- Порт = ПараметрыФункции["SSH_Port"];
-
- ИспользоватьПрокси = Истина;
- НастройкиПрокси = Неопределено;
- ВидАвторизации = "По логину и паролю";
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- ВидАвторизации = ПараметрыФункции["AuthType"]; // SKIP
-
- Если ВидАвторизации = "По логину и паролю" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- Пароль = ПараметрыФункции["SSH_Password"];
-
- НастройкиSFTP = OPI_SFTP.ПолучитьНастройкиЛогинПароль(Хост, Порт, Логин, Пароль);
-
- ИначеЕсли ВидАвторизации = "По ключу" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- ПриватныйКлюч = "./ssh_key";
- ПубличныйКлюч = "./ssh_key.pub";
-
- ПриватныйКлюч = ПараметрыФункции["SSH_Key"]; // SKIP
- ПубличныйКлюч = ПараметрыФункции["SSH_Pub"]; // SKIP
-
- НастройкиSFTP = OPI_SFTP.ПолучитьНастройкиПриватныйКлюч(Хост, Порт, Логин, ПриватныйКлюч, ПубличныйКлюч);
-
- Иначе
-
- Логин = ПараметрыФункции["SSH_User"];
- НастройкиSFTP = OPI_SFTP.ПолучитьНастройкиЧерезАгента(Хост, Порт, Логин);
-
- КонецЕсли;
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- НастройкиПрокси = OPI_SFTP.ПолучитьНастройкиПрокси(АдресПрокси, ПортПрокси, ТипПрокси, ЛогинПрокси, ПарольПрокси);
-
- КонецЕсли;
-
- Соединение = OPI_SFTP.ОткрытьСоединение(НастройкиSFTP, НастройкиПрокси);
-
- Если OPI_SFTP.ЭтоКоннектор(Соединение) Тогда
- Результат = OPI_SFTP.ИзменитьПуть(Соединение, "pic_from_disk.png", "files_folder/pic_from_disk.png");
- Иначе
- Результат = Соединение; // Ошибка соединения
- КонецЕсли;
-
- // END
-
- Обработать(Результат , "SFTP", "ИзменитьПуть", Постфикс);
-
- Результат = OPI_SFTP.ПолучитьИнформациюОФайле(Соединение, "pic_from_disk.png");
-
- Обработать(Результат , "SFTP", "ИзменитьПуть", "Проверка, Старый, " + Постфикс);
-
- Результат = OPI_SFTP.ПолучитьИнформациюОФайле(Соединение, "files_folder/pic_from_disk.png");
-
- Обработать(Результат , "SFTP", "ИзменитьПуть", "Проверка, Новый, " + Постфикс);
-
- Результат = OPI_SFTP.ИзменитьПуть(Соединение, "files_folder/pic_from_disk.png", "pic_from_disk.png");
-
- Обработать(Результат , "SFTP", "ИзменитьПуть", "Обратно, " + Постфикс);
-
- Результат = OPI_SFTP.ПолучитьИнформациюОФайле(Соединение, "files_folder/pic_from_disk.png");
-
- Обработать(Результат , "SFTP", "ИзменитьПуть", "Проверка, Старый, Обратно, " + Постфикс);
-
- Результат = OPI_SFTP.ПолучитьИнформациюОФайле(Соединение, "pic_from_disk.png");
-
- Обработать(Результат , "SFTP", "ИзменитьПуть", "Проверка, Новый, Обратно, " + Постфикс);
-
-КонецПроцедуры
-
-Процедура SFTP_ПолучитьИнформациюОФайле(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["SSH_Host"];
- Порт = ПараметрыФункции["SSH_Port"];
-
- ИспользоватьПрокси = Истина;
- НастройкиПрокси = Неопределено;
- ВидАвторизации = "По логину и паролю";
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- ВидАвторизации = ПараметрыФункции["AuthType"]; // SKIP
-
- Если ВидАвторизации = "По логину и паролю" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- Пароль = ПараметрыФункции["SSH_Password"];
-
- НастройкиSFTP = OPI_SFTP.ПолучитьНастройкиЛогинПароль(Хост, Порт, Логин, Пароль);
-
- ИначеЕсли ВидАвторизации = "По ключу" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- ПриватныйКлюч = "./ssh_key";
- ПубличныйКлюч = "./ssh_key.pub";
-
- ПриватныйКлюч = ПараметрыФункции["SSH_Key"]; // SKIP
- ПубличныйКлюч = ПараметрыФункции["SSH_Pub"]; // SKIP
-
- НастройкиSFTP = OPI_SFTP.ПолучитьНастройкиПриватныйКлюч(Хост, Порт, Логин, ПриватныйКлюч, ПубличныйКлюч);
-
- Иначе
-
- Логин = ПараметрыФункции["SSH_User"];
- НастройкиSFTP = OPI_SFTP.ПолучитьНастройкиЧерезАгента(Хост, Порт, Логин);
-
- КонецЕсли;
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- НастройкиПрокси = OPI_SFTP.ПолучитьНастройкиПрокси(АдресПрокси, ПортПрокси, ТипПрокси, ЛогинПрокси, ПарольПрокси);
-
- КонецЕсли;
-
- Соединение = OPI_SFTP.ОткрытьСоединение(НастройкиSFTP, НастройкиПрокси);
-
- Если OPI_SFTP.ЭтоКоннектор(Соединение) Тогда
- Результат = OPI_SFTP.ПолучитьИнформациюОФайле(Соединение, "files_folder/pic_from_binary.png");
- Иначе
- Результат = Соединение; // Ошибка соединения
- КонецЕсли;
-
- // END
-
- Обработать(Результат , "SFTP", "ПолучитьИнформациюОФайле", Постфикс);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область GreenMax
-
-Процедура GreenMax_СформироватьПараметрыДоступа(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenMax_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenMax_MediaURL"];
- IdInstance = ПараметрыФункции["GreenMax_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenMax_Token"];
-
- Результат = OPI_GreenMax.СформироватьПараметрыДоступа(ApiUrl, MediaUrl, IdInstance, ApiTokenInstance);
-
- // END
-
- Обработать(Результат, "GreenMax", "СформироватьПараметрыДоступа");
-
-КонецПроцедуры
-
-Процедура GreenMax_ПолучитьКодАвторизации(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenMax_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenMax_MediaURL"];
- IdInstance = ПараметрыФункции["GreenMax_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenMax_Token"];
-
- НомерТелефона = 441234567890;
-
- ПараметрыДоступа = OPI_GreenMax.СформироватьПараметрыДоступа(ApiUrl, MediaUrl, IdInstance, ApiTokenInstance);
- Результат = OPI_GreenMax.ПолучитьКодАвторизации(ПараметрыДоступа, НомерТелефона);
-
- // END
-
- Обработать(Результат, "GreenMax", "ПолучитьКодАвторизации");
-
-КонецПроцедуры
-
-Процедура GreenMax_РазлогинитьИнстанс(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenMax_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenMax_MediaURL"];
- IdInstance = ПараметрыФункции["GreenMax_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenMax_Token"];
-
- ПараметрыДоступа = OPI_GreenMax.СформироватьПараметрыДоступа(ApiUrl, MediaUrl, IdInstance, ApiTokenInstance);
- Результат = OPI_GreenMax.РазлогинитьИнстанс(ПараметрыДоступа);
-
- // END
-
- Обработать(Результат, "GreenMax", "РазлогинитьИнстанс");
-
-КонецПроцедуры
-
-Процедура GreenMax_ОтправитьКодАвторизации(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenMax_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenMax_MediaURL"];
- IdInstance = ПараметрыФункции["GreenMax_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenMax_Token"];
-
- КодАвторизации = 123456;
-
- ПараметрыДоступа = OPI_GreenMax.СформироватьПараметрыДоступа(ApiUrl, MediaUrl, IdInstance, ApiTokenInstance);
- Результат = OPI_GreenMax.ОтправитьКодАвторизации(ПараметрыДоступа, КодАвторизации);
-
- // END
-
- Обработать(Результат, "GreenMax", "ОтправитьКодАвторизации");
-
-КонецПроцедуры
-
-Процедура GreenMax_ПолучитьСостояниеИнстанса(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenMax_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenMax_MediaURL"];
- IdInstance = ПараметрыФункции["GreenMax_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenMax_Token"];
-
- ПараметрыДоступа = OPI_GreenMax.СформироватьПараметрыДоступа(ApiUrl, MediaUrl, IdInstance, ApiTokenInstance);
- Результат = OPI_GreenMax.ПолучитьСостояниеИнстанса(ПараметрыДоступа);
-
- // END
-
- Обработать(Результат, "GreenMax", "ПолучитьСостояниеИнстанса");
-
-КонецПроцедуры
-
-Процедура GreenMax_ПерезапуститьИнстанс(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenMax_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenMax_MediaURL"];
- IdInstance = ПараметрыФункции["GreenMax_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenMax_Token"];
-
- ПараметрыДоступа = OPI_GreenMax.СформироватьПараметрыДоступа(ApiUrl, MediaUrl, IdInstance, ApiTokenInstance);
- Результат = OPI_GreenMax.ПерезапуститьИнстанс(ПараметрыДоступа);
-
- // END
-
- Обработать(Результат, "GreenMax", "ПерезапуститьИнстанс");
-
-КонецПроцедуры
-
-Процедура GreenMax_ПолучитьСтруктуруНастроекИнстанса(ПараметрыФункции)
-
- Результат = OPI_GreenMax.ПолучитьСтруктуруНастроекИнстанса();
-
- // END
-
- Обработать(Результат, "GreenMax", "ПолучитьСтруктуруНастроекИнстанса");
-
- Результат = OPI_GreenMax.ПолучитьСтруктуруНастроекИнстанса(Истина);
-
- Обработать(Результат, "GreenMAx", "ПолучитьСтруктуруНастроекИнстанса", "Пустая");
-
-КонецПроцедуры
-
-Процедура GreenMax_ПолучитьНастройкиИнстанса(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenMax_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenMax_MediaURL"];
- IdInstance = ПараметрыФункции["GreenMax_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenMax_Token"];
-
- ПараметрыДоступа = OPI_GreenMax.СформироватьПараметрыДоступа(ApiUrl, MediaUrl, IdInstance, ApiTokenInstance);
- Результат = OPI_GreenMax.ПолучитьНастройкиИнстанса(ПараметрыДоступа);
-
- // END
-
- Обработать(Результат, "GreenMax", "ПолучитьНастройкиИнстанса", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура GreenMax_УстановитьНастройкиИнстанса(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenMax_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenMax_MediaURL"];
- IdInstance = ПараметрыФункции["GreenMax_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenMax_Token"];
-
- ПараметрыДоступа = OPI_GreenMax.СформироватьПараметрыДоступа(ApiUrl, MediaUrl, IdInstance, ApiTokenInstance);
-
- СтруктураНастроек = Новый Структура;
- СтруктураНастроек.Вставить("markIncomingMessagesReaded" , "no");
- СтруктураНастроек.Вставить("outgoingWebhook" , "no");
- СтруктураНастроек.Вставить("outgoingAPIMessageWebhook" , "yes");
-
- Результат = OPI_GreenMax.УстановитьНастройкиИнстанса(СтруктураНастроек, ПараметрыДоступа);
-
- // END
-
- Обработать(Результат, "GreenMax", "УстановитьНастройкиИнстанса");
-
-КонецПроцедуры
-
-Процедура GreenMax_УстановитьКартинкуПрофиля(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenMax_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenMax_MediaURL"];
- IdInstance = ПараметрыФункции["GreenMax_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenMax_Token"];
-
- Картинка = ПараметрыФункции["Picture"]; // URL, Путь или Двоичные данные
-
- ПараметрыДоступа = OPI_GreenMax.СформироватьПараметрыДоступа(ApiUrl, MediaUrl, IdInstance, ApiTokenInstance);
- Результат = OPI_GreenMax.УстановитьКартинкуПрофиля(ПараметрыДоступа, Картинка);
-
- // END
-
- Обработать(Результат, "GreenMax", "УстановитьКартинкуПрофиля");
-
-КонецПроцедуры
-
-Процедура GreenMax_ПолучитьИнформациюОбАккаунте(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenMax_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenMax_MediaURL"];
- IdInstance = ПараметрыФункции["GreenMax_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenMax_Token"];
-
- ПараметрыДоступа = OPI_GreenMax.СформироватьПараметрыДоступа(ApiUrl, MediaUrl, IdInstance, ApiTokenInstance);
- Результат = OPI_GreenMax.ПолучитьИнформациюОбАккаунте(ПараметрыДоступа);
-
- // END
-
- Обработать(Результат, "GreenMax", "ПолучитьИнформациюОбАккаунте");
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#КонецОбласти
-
-#КонецОбласти
diff --git a/XML/CommonModules/OPI_ТестыCLI.xml b/XML/CommonModules/OPI_ТестыCLI.xml
deleted file mode 100644
index cafbcf26c8..0000000000
--- a/XML/CommonModules/OPI_ТестыCLI.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
- OPI_ТестыCLI
-
-
- ru
- Тесты CLI-приложения (служебный, ОПИ)
-
-
- Модуль тестов консольного приложения (CLI) набора ОПИ
- false
- false
- true
- true
- true
- false
- false
- DontUse
-
-
-
\ No newline at end of file
diff --git a/XML/CommonModules/OPI_ТестыCLI/Ext/Module.bsl b/XML/CommonModules/OPI_ТестыCLI/Ext/Module.bsl
deleted file mode 100644
index 360f5b129d..0000000000
--- a/XML/CommonModules/OPI_ТестыCLI/Ext/Module.bsl
+++ /dev/null
@@ -1,30919 +0,0 @@
-// OneScript: ./OInt/tests/Modules/internal/OPI_ТестыCLI.os
-
-// MIT License
-
-// Copyright (c) 2023-2025 Anton Tsitavets
-
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-
-// The above copyright notice and this permission notice shall be included in all
-// copies or substantial portions of the Software.
-
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-// SOFTWARE.
-
-// https://github.com/Bayselonarrend/OpenIntegrations
-
-// Набор тестов для YAxUnit
-
-// BSLLS:Typo-off
-// BSLLS:LatinAndCyrillicSymbolInWord-off
-// BSLLS:IncorrectLineBreak-off
-// BSLLS:UsingServiceTag-off
-// BSLLS:UnusedParameters-off
-// BSLLS:DuplicateStringLiteral-off
-// BSLLS:UsingHardcodePath-off
-// BSLLS:UnusedLocalVariable-off
-// BSLLS:DeprecatedMessage-off
-// BSLLS:LineLength-off
-// BSLLS:MagicNumber-off
-// BSLLS:CommentedCode-off
-// BSLLS:AssignAliasFieldsInQuery-off
-// BSLLS:UsingHardcodeNetworkAddress-off
-// BSLLS:UnreachableCode-off
-// BSLLS:UnusedLocalMethod-off
-// BSLLS:NestedFunctionInParameters-off
-// BSLLS:MissingTemporaryFileDeletion-off
-// BSLLS:UsingSynchronousCalls-off
-// BSLLS:MagicNumber-off
-// BSLLS:MagicDate-off
-// BSLLS:MissingParameterDescription-off
-// BSLLS:NumberOfOptionalParams-off
-
-//@skip-check undefined-variable
-//@skip-check wrong-string-literal-content
-//@skip-check module-structure-top-region
-//@skip-check module-structure-method-in-regions
-//@skip-check undefined-function-or-procedure
-//@skip-check wrong-string-literal-content
-//@skip-check module-unused-local-variable
-//@skip-check bsl-legacy-check-string-literal
-//@skip-check bsl-legacy-check-method-for-statements-after-return
-//@skip-check missing-temporary-file-deletion
-//@skip-check module-unused-method
-
-// Раскомментировать, если выполняется OneScript
-// #Использовать "../../../tools"
-// #Использовать "../../../core"
-// #Использовать asserts
-
-#Область СлужебныйПрограммныйИнтерфейс
-
-// Для YaxUnit
-
-Процедура ИсполняемыеСценарии() Экспорт
-
- OPI_ПолучениеДанныхТестов.СформироватьТестыЯксCLI();
-
-КонецПроцедуры
-
-// Для Asserts
-
-Функция ПолучитьСписокТестов(ЮнитТестирование) Экспорт
-
- Возврат OPI_ПолучениеДанныхТестов.СформироватьТестыАссертсCLI();
-
-КонецФункции
-
-#Область ЗапускаемыеТесты
-
-#Область Служебные
-
-Процедура ПроверитьСоответствиеИБПоследнейСборке() Экспорт
-
- Если OPI_ПолучениеДанныхТестов.ЭтоТестCLI() Тогда
-
- //@skip-check use-non-recommended-method
- Сообщить("CLI test check for hash sum");
- СуммаСборки = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("hashsum", "", Новый Структура);
-
- Иначе
-
- СуммаСборки = OPI_Инструменты.ПолучитьХешСуммуПоследнейСборки();
-
- КонецЕсли;
-
- URL = "https://raw.githubusercontent.com/Bayselonarrend/OpenIntegrations/refs/heads/main/service/last_build_hash.txt";
-
- СуммаПоследний = OPI_ЗапросыHTTP
- .НовыйЗапрос()
- .Инициализировать(URL)
- .ОбработатьЗапрос("GET")
- .ВернутьОтветКакСтроку(Ложь, Истина);
-
- Обработать(СуммаСборки, "BuildCheck", "ПроверитьСоответствиеИБПоследнейСборке", , СуммаПоследний);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область Telegram
-
-Процедура Телеграм_ПолучитьИнформациюБота() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_Token", ПараметрыТеста);
-
- Telegram_ПолучитьИнформациюБота(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Телеграм_ПолучитьОбновления() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_Token", ПараметрыТеста);
-
- Telegram_УдалитьWebhook(ПараметрыТеста);
- Telegram_ПолучитьОбновления(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Телеграм_УстановитьWebhook() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_Token", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_URL" , ПараметрыТеста);
-
- Telegram_УстановитьWebhook(ПараметрыТеста);
- Telegram_УдалитьWebhook(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Телеграм_ОтправитьТекстовоеСообщение() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChatID" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChannelID", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("String" , ПараметрыТеста);
-
- Telegram_ОтправитьТекстовоеСообщение(ПараметрыТеста);
- Telegram_ЗаменитьТекстСообщения(ПараметрыТеста);
- Telegram_ЗаменитьКлавиатуруСообщения(ПараметрыТеста);
- Telegram_СформироватьКлавиатуруПоМассивуКнопок(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Телеграм_ОтправитьКартинку() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChatID" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChannelID", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("String" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
-
- Telegram_ОтправитьКартинку(ПараметрыТеста);
- Telegram_ЗаменитьОписаниеСообщения(ПараметрыТеста);
- Telegram_СкачатьФайл(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Телеграм_ОтправитьВидео() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChatID" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChannelID", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("String" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Video" , ПараметрыТеста);
-
- Telegram_ОтправитьВидео(ПараметрыТеста);
- Telegram_СкачатьФайл(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Телеграм_ОтправитьАудио() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChatID" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChannelID", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("String" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Audio" , ПараметрыТеста);
-
- Telegram_ОтправитьАудио(ПараметрыТеста);
- Telegram_СкачатьФайл(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Телеграм_ОтправитьДокумент() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChatID" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChannelID", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("String" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Document" , ПараметрыТеста);
-
- Telegram_ОтправитьДокумент(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Телеграм_ОтправитьГифку() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChatID" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChannelID", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("String" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GIF" , ПараметрыТеста);
-
- Telegram_ОтправитьГифку(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Телеграм_ОтправитьМедиагруппу() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChatID" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChannelID", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("String" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Video" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Document" , ПараметрыТеста);
-
- Telegram_ОтправитьМедиагруппу(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Телеграм_ОтправитьМестоположение() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChatID" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChannelID", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Long" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Lat" , ПараметрыТеста);
-
- Telegram_ОтправитьМестоположение(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Телеграм_ОтправитьКонтакт() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChatID" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChannelID", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Name" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Surname" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Phone" , ПараметрыТеста);
-
- Telegram_ОтправитьКонтакт(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Телеграм_ОтправитьОпрос() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChatID" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChannelID", ПараметрыТеста);
-
- Telegram_ОтправитьОпрос(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Телеграм_ПереслатьСообщение() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChatID" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChannelID" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChannelMessageID", ПараметрыТеста);
-
- Telegram_ПереслатьСообщение(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Телеграм_БанРазбан() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChatID" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChannelID", ПараметрыТеста);
-
- Telegram_Бан(ПараметрыТеста);
- Telegram_Разбан(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Телеграм_СоздатьСсылкуПриглашение() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChannelID", ПараметрыТеста);
-
- Telegram_СоздатьСсылкуПриглашение(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Телеграм_ЗакрепитьОткрепитьСообщение() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChannelID" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChannelMessageID", ПараметрыТеста);
-
- Telegram_ЗакрепитьСообщение(ПараметрыТеста);
- Telegram_ОткрепитьСообщение(ПараметрыТеста);
- Telegram_УдалитьСообщение(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Телеграм_ПолучитьЧислоУчастников() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ChannelID", ПараметрыТеста);
-
- Telegram_ПолучитьЧислоУчастников(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Телеграм_ПолучитьСписокАватаровФорума() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_Token", ПараметрыТеста);
-
- Telegram_ПолучитьСписокИконокАватаров(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Телеграм_СоздатьУдалитьТемуФорума() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ForumID", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("String" , ПараметрыТеста);
-
- Telegram_СоздатьТемуФорума(ПараметрыТеста);
- Telegram_ИзменитьТемуФорума(ПараметрыТеста);
- Telegram_ЗакрытьТемуФорума(ПараметрыТеста);
- Telegram_ОткрытьТемуФорума(ПараметрыТеста);
- Telegram_ОчиститьСписокЗакрепленныхСообщенийТемы(ПараметрыТеста);
- Telegram_УдалитьТемуФорума(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Телеграм_СкрытьПоказатьГлавнуюТему() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ForumID", ПараметрыТеста);
-
- Telegram_СкрытьГлавнуюТемуФорума(ПараметрыТеста);
- Telegram_ПоказатьГлавнуюТемуФорума(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Телеграм_ИзменитьИмяГлавнойТемы() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_ForumID", ПараметрыТеста);
-
- Telegram_ИзменитьИмяГлавнойТемыФорума(ПараметрыТеста);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область VK
-
-Процедура ВК_СоздатьСсылкуТокена() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("VK_AppID", ПараметрыТеста);
-
- VK_СоздатьСсылкуПолученияТокена(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура ВК_СоздатьУдалитьПост() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture2", ПараметрыТеста);
-
- VK_СоздатьПост(ПараметрыТеста);
- VK_УдалитьПост(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура ВК_СоздатьСоставнойПост() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Video" , ПараметрыТеста);
-
- VK_СоздатьСоставнойПост(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура ВК_СоздатьОпрос() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture", ПараметрыТеста);
-
- VK_СоздатьОпрос(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура ВК_СохранитьУдалитьКартинку() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture", ПараметрыТеста);
-
- VK_СоздатьАльбом(ПараметрыТеста);
- VK_СохранитьКартинкуВАльбом(ПараметрыТеста);
- VK_УдалитьКартинку(ПараметрыТеста);
- VK_УдалитьАльбом(ПараметрыТеста);
- VK_ЗагрузитьФотоНаСервер(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура ВК_СоздатьИсторию() Экспорт
-
- ПараметрыТеста = Новый Соответствие;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture", ПараметрыТеста);
-
- VK_СоздатьИсторию(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура ВК_МетодыОбсуждений() Экспорт
-
- ПараметрыТеста = Новый Структура;
- Параметры = ПолучитьПараметрыВК();
-
- VK_СоздатьОбсуждение(ПараметрыТеста);
- VK_ЗакрытьОбсуждение(ПараметрыТеста);
- VK_ОткрытьОбсуждение(ПараметрыТеста);
- VK_НаписатьВОбсуждение(ПараметрыТеста);
-
- OPI_VK.ЗакрытьОбсуждение(ПараметрыТеста["VK_ConvID"], Истина, Параметры);
-
- OPI_Инструменты.Пауза(5);
-
-КонецПроцедуры
-
-Процедура ВК_ЛайкРепостКоммент() Экспорт
-
- ПараметрыТеста = Новый Структура;
- Параметры = ПолучитьПараметрыВК();
- Текст = "Пост из автотеста";
-
- Результат = OPI_VK.СоздатьПост(Текст, Новый Массив, , , Параметры);
- ИДПоста = Результат["response"]["post_id"];
-
- OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("VK_PostID", ИДПоста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("VK_PostID", ПараметрыТеста);
-
- VK_ПоставитьЛайк(ПараметрыТеста);
- VK_СделатьРепост(ПараметрыТеста);
- VK_НаписатьКомментарий(ПараметрыТеста);
- VK_СократитьСсылку(ПараметрыТеста);
-
- OPI_VK.УдалитьПост(ИДПоста , Параметры);
- OPI_VK.УдалитьПост(ПараметрыТеста["Repost"], Параметры);
-
- OPI_Инструменты.Пауза(5);
-
-КонецПроцедуры
-
-Процедура ВК_ПолучитьСтатистику() Экспорт
-
- ПараметрыТеста = Новый Структура;
-
- VK_ПолучитьСтатистику(ПараметрыТеста);
-
- OPI_Инструменты.Пауза(5);
-
-КонецПроцедуры
-
-Процедура ВК_ПолучитьСтатистикуПостов() Экспорт
-
- ПараметрыТеста = Новый Структура;
-
- VK_ПолучитьСтатистикуПостов(ПараметрыТеста);
-
- OPI_Инструменты.Пауза(5);
-
-КонецПроцедуры
-
-Процедура ВК_СоздатьРекламнуюКампанию() Экспорт
-
- Параметры = ПолучитьПараметрыВК();
- Текст = "Пост из автотеста";
-
- Результат = OPI_VK.СоздатьПост(Текст, Новый Массив, , , Параметры);
- ИДПоста = Результат["response"]["post_id"];
-
- OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("VK_PostID", ИДПоста);
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("VK_AdsCabinetID", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("VK_PostID" , ПараметрыТеста);
-
- VK_СоздатьРекламнуюКампанию(ПараметрыТеста);
- VK_СоздатьРекламноеОбъявление(ПараметрыТеста);
- VK_ПриостановитьРекламноеОбъявление(ПараметрыТеста);
- VK_ПолучитьСписокРекламныхКатегорий(ПараметрыТеста);
-
- OPI_VK.УдалитьПост(ИДПоста, Параметры);
-
- OPI_Инструменты.Пауза(5);
-
-КонецПроцедуры
-
-Процедура ВК_ОтправитьСообщение() Экспорт
-
- ПараметрыТеста = Новый Структура;
-
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("VK_UserID" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("VK_CommunityToken", ПараметрыТеста);
-
- VK_СформироватьКлавиатуру(ПараметрыТеста);
- VK_НаписатьСообщение(ПараметрыТеста);
-
- OPI_Инструменты.Пауза(5);
-
-КонецПроцедуры
-
-Процедура ВК_ПолучитьКатегорииТоваров() Экспорт
-
- ПараметрыТеста = Новый Структура;
-
- VK_ПолучитьСписокКатегорийТоваров(ПараметрыТеста);
-
- OPI_Инструменты.Пауза(5);
-
-КонецПроцедуры
-
-Процедура ВК_СоздатьТоварПодборку() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture2", ПараметрыТеста);
-
- VK_СоздатьПодборкуТоваров(ПараметрыТеста);
- VK_ИзменитьПодборкуТоваров(ПараметрыТеста);
- VK_ПолучитьПодборкиПоИД(ПараметрыТеста);
- VK_ДобавитьТовар(ПараметрыТеста);
- VK_ИзменитьТовар(ПараметрыТеста);
- VK_ДобавитьТоварВПодборку(ПараметрыТеста);
- VK_УдалитьТоварИзПодборки(ПараметрыТеста);
- VK_УдалитьТовар(ПараметрыТеста);
- VK_УдалитьПодборку(ПараметрыТеста);
-
- OPI_Инструменты.Пауза(5);
-
-КонецПроцедуры
-
-Процедура ВК_СоздатьТоварСоСвойствами() Экспорт
-
- Параметры = ПолучитьПараметрыВК();
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture2", ПараметрыТеста);
-
- VK_ПолучитьОписаниеТовара(ПараметрыТеста);
- VK_СоздатьСвойствоТовара(ПараметрыТеста);
- VK_ИзменитьСвойствоТовара(ПараметрыТеста);
- VK_ДобавитьВариантСвойстваТовара(ПараметрыТеста);
- VK_ИзменитьВариантСвойстваТовара(ПараметрыТеста);
- VK_СоздатьТоварСоСвойством(ПараметрыТеста);
- VK_ПолучитьТоварыПоИД(ПараметрыТеста);
- VK_СгруппироватьТовары(ПараметрыТеста);
-
- OPI_VK.УдалитьТовар(ПараметрыТеста["VK_MarketItemID2"], Параметры);
- OPI_VK.УдалитьТовар(ПараметрыТеста["VK_MarketItemID3"], Параметры);
-
- VK_УдалитьВариантСвойстваТовара(ПараметрыТеста);
- VK_УдалитьСвойствоТовара(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура ВК_ПолучитьСписокТоваров() Экспорт
-
- ПараметрыТеста = Новый Структура;
-
- VK_ПолучитьСписокТоваров(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура ВК_ПолучитьСписокПодборок() Экспорт
-
- ПараметрыТеста = Новый Структура;
-
- VK_ПолучитьСписокПодборок(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура ВК_ПолучитьСписокСвойств() Экспорт
-
- ПараметрыТеста = Новый Структура;
-
- VK_ПолучитьСписокСвойств(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура ВК_ПолучитьСписокЗаказов() Экспорт
-
- ПараметрыТеста = Новый Структура;
-
- VK_ПолучитьСписокЗаказов(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура ВК_ЗагрузитьВидео() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Video", ПараметрыТеста);
-
- VK_ЗагрузитьВидеоНаСервер(ПараметрыТеста);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область YandexDisk
-
-Процедура ЯДиск_ПолучитьИнформациюОДиске() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("YandexDisk_Token", ПараметрыТеста);
-
- YandexDisk_ПолучитьИнформациюОДиске(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура ЯДиск_СоздатьПапку() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("YandexDisk_Token", ПараметрыТеста);
-
- YandexDisk_СоздатьПапку(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура ЯДиск_ЗагрузитьПоАдресуПолучитьОбъект() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("YandexDisk_Token", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
-
- YandexDisk_ЗагрузитьФайлПоURL(ПараметрыТеста);
- YandexDisk_ПолучитьОбъект(ПараметрыТеста);
- YandexDisk_УдалитьОбъект(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура ЯДиск_ЗагрузитьУдалитьФайл() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("YandexDisk_Token", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
-
- YandexDisk_ЗагрузитьФайл(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура ЯДиск_СоздатьКопиюОбъекта() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("YandexDisk_Token", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
-
- Токен = ПараметрыТеста["YandexDisk_Token"];
- URL = ПараметрыТеста["Picture"];
-
- ПутьОригинала = "/" + Строка(Новый УникальныйИдентификатор) + ".png";
-
- OPI_YandexDisk.ЗагрузитьФайлПоURL(Токен, ПутьОригинала, URL);
- OPI_Инструменты.Пауза(35);
-
- OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("YandexDisk_OriginalFilePath", ПутьОригинала);
- ПараметрыТеста.Вставить("YandexDisk_OriginalFilePath", ПутьОригинала);
-
- YandexDisk_СоздатьКопиюОбъекта(ПараметрыТеста);
-
- ПутьКопии = ПараметрыТеста["YandexDisk_CopyFilePath"];
-
- OPI_YandexDisk.УдалитьОбъект(Токен, ПутьОригинала, Ложь);
- OPI_YandexDisk.УдалитьОбъект(Токен, ПутьКопии , Ложь);
-
- OPI_Инструменты.Пауза(5);
-
-КонецПроцедуры
-
-Процедура ЯДиск_ПолучитьСсылкуНаСкачивание() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("YandexDisk_Token", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
-
- Токен = ПараметрыТеста["YandexDisk_Token"];
- URL = ПараметрыТеста["Picture"];
-
- Путь = "/" + Строка(Новый УникальныйИдентификатор) + ".png";
-
- OPI_YandexDisk.ЗагрузитьФайлПоURL(Токен, Путь, URL);
- OPI_Инструменты.Пауза(35);
-
- OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("YandexDisk_PathForLink", Путь);
- ПараметрыТеста.Вставить("YandexDisk_PathForLink", Путь);
-
- YandexDisk_ПолучитьСсылкуДляСкачивания(ПараметрыТеста);
- YandexDisk_СкачатьФайл(ПараметрыТеста);
-
- OPI_YandexDisk.УдалитьОбъект(Токен, Путь, Ложь);
-
-КонецПроцедуры
-
-Процедура ЯДиск_ПолучитьСписокФайлов() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("YandexDisk_Token", ПараметрыТеста);
-
- YandexDisk_ПолучитьСписокФайлов(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура ЯДиск_ПереместитьОбъект() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("YandexDisk_Token", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
-
- Токен = ПараметрыТеста["YandexDisk_Token"];
- URL = ПараметрыТеста["Picture"];
-
- ПутьОригинала = "/" + Строка(Новый УникальныйИдентификатор) + ".png";
-
- OPI_YandexDisk.ЗагрузитьФайлПоURL(Токен, ПутьОригинала, URL);
- OPI_Инструменты.Пауза(35);
-
- OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("YandexDisk_OriginalFilePath", ПутьОригинала);
- ПараметрыТеста.Вставить("YandexDisk_OriginalFilePath", ПутьОригинала);
-
- YandexDisk_ПереместитьОбъект(ПараметрыТеста);
-
- ПутьНового = ПараметрыТеста["YandexDisk_NewFilePath"];
-
- OPI_YandexDisk.УдалитьОбъект(Токен, ПутьОригинала, Ложь);
- OPI_YandexDisk.УдалитьОбъект(Токен, ПутьНового , Ложь);
-
- OPI_Инструменты.Пауза(5);
-
-КонецПроцедуры
-
-Процедура ЯДиск_ДействияПубличныхОбъектов() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("YandexDisk_Token", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
-
- Токен = ПараметрыТеста["YandexDisk_Token"];
- URL = ПараметрыТеста["Picture"];
-
- ПутьОригинала = "/" + Строка(Новый УникальныйИдентификатор) + ".png";
-
- OPI_YandexDisk.ЗагрузитьФайлПоURL(Токен, ПутьОригинала, URL);
- OPI_Инструменты.Пауза(35);
-
- OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("YandexDisk_OriginalFilePath", ПутьОригинала);
- ПараметрыТеста.Вставить("YandexDisk_OriginalFilePath", ПутьОригинала);
-
- YandexDisk_ОпубликоватьОбъект(ПараметрыТеста);
- YandexDisk_ПолучитьСсылкуСкачиванияПубличногоОбъекта(ПараметрыТеста);
- YandexDisk_ПолучитьПубличныйОбъект(ПараметрыТеста);
- YandexDisk_СохранитьПубличныйОбъектНаДиск(ПараметрыТеста);
- YandexDisk_ОтменитьПубликациюОбъекта(ПараметрыТеста);
-
- OPI_YandexDisk.УдалитьОбъект(Токен, ПутьОригинала, Ложь);
-
- OPI_Инструменты.Пауза(5);
-
-КонецПроцедуры
-
-Процедура ЯДиск_ПолучитьСписокОпубликованных() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("YandexDisk_Token", ПараметрыТеста);
-
- YandexDisk_ПолучитьСписокОпубликованныхОбъектов(ПараметрыТеста);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область Viber
-
-Процедура Вайбер_ПолучениеИнформации() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Viber_ChannelToken" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Viber_ChannelAdminID", ПараметрыТеста);
-
- Возврат;
-
- //@skip-check unreachable-statements
- // BSLLS:UnreachableCode-off
-
- Viber_ПолучитьИнформациюОКанале(ПараметрыТеста);
- Viber_ПолучитьДанныеПользователя(ПараметрыТеста);
- Viber_ПолучитьОнлайнПользователей(ПараметрыТеста);
- Viber_УстановитьWebhook(ПараметрыТеста);
-
- // BSLLS:UnreachableCode-on
-
-КонецПроцедуры
-
-Процедура Вайбер_ОтправкаСообщений() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Viber_ChannelToken" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Viber_ChannelAdminID", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Viber_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Viber_UserID" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Document" , ПараметрыТеста);
-
- Viber_СформироватьКлавиатуруИзМассиваКнопок(ПараметрыТеста);
-
- Возврат;
-
- //@skip-check unreachable-statement
- // BSLLS:UnreachableCode-off
-
- Viber_ОтправитьТекстовоеСообщение(ПараметрыТеста);
- Viber_ОтправитьКартинку(ПараметрыТеста);
- Viber_ОтправитьФайл(ПараметрыТеста);
- Viber_ОтправитьКонтакт(ПараметрыТеста);
- Viber_ОтправитьЛокацию(ПараметрыТеста);
- Viber_ОтправитьСсылку(ПараметрыТеста);
-
- // BSLLS:UnreachableCode-on
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область GoogleWorkspace
-
-Процедура ГВ_Авторизация() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_ClientID" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_ClientSecret", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_Code" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_Refresh" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_ServiceData" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Access_Token" , ПараметрыТеста);
-
- GoogleWorkspace_СформироватьСсылкуПолученияКода(ПараметрыТеста);
- GoogleWorkspace_ПолучитьТокенПоКоду(ПараметрыТеста);
- GoogleWorkspace_ОбновитьТокен(ПараметрыТеста);
- GoogleWorkspace_ПолучитьТокенServiceАккаунта(ПараметрыТеста);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область GoogleCalendar
-
-Процедура ГК_ПолучитьСписокКалендарей() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_Token", ПараметрыТеста);
-
- GoogleCalendar_ПолучитьСписокКалендарей(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура ГК_СоздатьУдалитьКалендарь() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_Token", ПараметрыТеста);
-
- GoogleCalendar_СоздатьКалендарь(ПараметрыТеста);
- GoogleCalendar_ИзменитьМетаданныеКалендаря(ПараметрыТеста);
- GoogleCalendar_ПолучитьМетаданныеКалендаря(ПараметрыТеста);
- GoogleCalendar_ДобавитьКалендарьВСписок(ПараметрыТеста);
- GoogleCalendar_ИзменитьКалендарьСписка(ПараметрыТеста);
- GoogleCalendar_ПолучитьКалендарьСписка(ПараметрыТеста);
- GoogleCalendar_ОчиститьОсновнойКалендарь(ПараметрыТеста);
- GoogleCalendar_УдалитьКалендарьИзСписка(ПараметрыТеста);
- GoogleCalendar_УдалитьКалендарь(ПараметрыТеста);
-
- OPI_Инструменты.Пауза(5);
-
-КонецПроцедуры
-
-Процедура ГК_СоздатьУдалитьСобытие() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_NewCalendarID", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_CalendarID" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture2" , ПараметрыТеста);
-
- GoogleCalendar_СоздатьКалендарь(ПараметрыТеста);
- GoogleCalendar_СоздатьСобытие(ПараметрыТеста);
- GoogleCalendar_ИзменитьСобытие(ПараметрыТеста);
- GoogleCalendar_ПолучитьСобытие(ПараметрыТеста);
- GoogleCalendar_ПереместитьСобытие(ПараметрыТеста);
- GoogleCalendar_ПолучитьСписокСобытий(ПараметрыТеста);
- GoogleCalendar_ПолучитьОписаниеСобытия(ПараметрыТеста);
- GoogleCalendar_УдалитьСобытие(ПараметрыТеста);
- GoogleCalendar_УдалитьКалендарь(ПараметрыТеста);
-
- OPI_Инструменты.Пауза(5);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область GoogleDrive
-
-Процедура ГД_ПолучитьСписокКаталогов() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_Token", ПараметрыТеста);
-
- GoogleDrive_ПолучитьСписокКаталогов(ПараметрыТеста);
- GoogleDrive_ПолучитьИнформациюОбОбъекте(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура ГД_ЗагрузитьУдалитьФайл() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_Token", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GD_Catalog" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture2" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Big" , ПараметрыТеста);
-
- ПараметрыТеста.Вставить("МассивУдаляемых", Новый Массив);
-
- GoogleDrive_ЗагрузитьФайл(ПараметрыТеста);
- GoogleDrive_СкопироватьОбъект(ПараметрыТеста);
- GoogleDrive_СкачатьФайл(ПараметрыТеста);
- GoogleDrive_ОбновитьФайл(ПараметрыТеста);
- GoogleDrive_ПолучитьСписокФайлов(ПараметрыТеста);
- GoogleDrive_УдалитьОбъект(ПараметрыТеста);
- GoogleDrive_ПолучитьОписаниеФайла(ПараметрыТеста);
-
- OPI_Инструменты.Пауза(5);
-
-КонецПроцедуры
-
-Процедура ГД_СоздатьУдалитьКомментарий() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_Token", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GD_Catalog" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
-
- ПараметрыТеста.Вставить("МассивУдаляемых", Новый Массив);
-
- GoogleDrive_ЗагрузитьФайл(ПараметрыТеста);
-
- GoogleDrive_СоздатьКомментарий(ПараметрыТеста);
- GoogleDrive_ПолучитьКомментарий(ПараметрыТеста);
- GoogleDrive_ПолучитьСписокКомментариев(ПараметрыТеста);
- GoogleDrive_УдалитьКомментарий(ПараметрыТеста);
-
- GoogleDrive_УдалитьОбъект(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура ГД_СоздатьКаталог() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_Token", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GD_Catalog" , ПараметрыТеста);
-
- GoogleDrive_СоздатьПапку(ПараметрыТеста);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область GoogleSheets
-
-Процедура ГТ_СоздатьТаблицу() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_Token", ПараметрыТеста);
-
- GoogleSheets_СоздатьКнигу(ПараметрыТеста);
- GoogleSheets_ПолучитьКнигу(ПараметрыТеста);
- GoogleSheets_КопироватьЛист(ПараметрыТеста);
- GoogleSheets_ДобавитьЛист(ПараметрыТеста);
- GoogleSheets_УдалитьЛист(ПараметрыТеста);
- GoogleSheets_ИзменитьНаименованиеКниги(ПараметрыТеста);
- GoogleSheets_ПолучитьТаблицу(ПараметрыТеста);
-
- OPI_GoogleDrive.УдалитьОбъект(ПараметрыТеста["Google_Token"], ПараметрыТеста["GS_Spreadsheet"]);
- OPI_GoogleDrive.УдалитьОбъект(ПараметрыТеста["Google_Token"], ПараметрыТеста["GS_Spreadsheet2"]);
-
-КонецПроцедуры
-
-Процедура ГТ_ЗаполнитьОчиститьЯчейки() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_Token", ПараметрыТеста);
-
- GoogleSheets_СоздатьКнигу(ПараметрыТеста);
- GoogleSheets_УстановитьЗначенияЯчеек(ПараметрыТеста);
- GoogleSheets_ПолучитьЗначенияЯчеек(ПараметрыТеста);
- GoogleSheets_ОчиститьЯчейки(ПараметрыТеста);
-
- OPI_GoogleDrive.УдалитьОбъект(ПараметрыТеста["Google_Token"], ПараметрыТеста["GS_Spreadsheet"]);
- OPI_GoogleDrive.УдалитьОбъект(ПараметрыТеста["Google_Token"], ПараметрыТеста["GS_Spreadsheet2"]);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область Twitter
-
-Процедура Твиттер_ДанныеАккаунта() Экспорт
-
- ПараметрыТеста = Новый Структура;
-
- Twitter_ПолучитьТокен(ПараметрыТеста);
- Twitter_ПолучитьСсылкуАвторизации(ПараметрыТеста);
- Twitter_ОбновитьТокен(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Твиттер_Твиты() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture2", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GIF" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Video" , ПараметрыТеста);
-
- Twitter_СоздатьТекстовыйТвит(ПараметрыТеста);
- Twitter_ЗагрузитьМассивВложений(ПараметрыТеста);
- Twitter_СоздатьТвитВидео(ПараметрыТеста);
- Twitter_СоздатьТвитКартинки(ПараметрыТеста);
- Twitter_СоздатьТвитГифки(ПараметрыТеста);
- Twitter_СоздатьТвитОпрос(ПараметрыТеста);
- Twitter_СоздатьПроизвольныйТвит(ПараметрыТеста);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область Notion
-
-Процедура НоушнАпи_СоздатьСтраницу() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Notion_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Notion_Parent", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture2" , ПараметрыТеста);
-
- Notion_СоздатьСтраницу(ПараметрыТеста);
- Notion_ПолучитьСтраницу(ПараметрыТеста);
- Notion_ИзменитьСвойстваСтраницы(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура НоушнАпи_СоздатьИзменитьБазу() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Notion_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Notion_Parent", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
-
- Notion_СоздатьБазуДанных(ПараметрыТеста);
- Notion_ИзменитьСвойстваБазы(ПараметрыТеста);
- Notion_ПолучитьБазуДанных(ПараметрыТеста);
- Notion_СоздатьСтраницуВБазу(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура НоушнАпи_СоздатьУдалитьБлок() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Notion_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Notion_Parent", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Notion_Block" , ПараметрыТеста);
-
- Notion_ВернутьБлок(ПараметрыТеста);
- Notion_СоздатьБлок(ПараметрыТеста);
- Notion_ВернутьДочерниеБлоки(ПараметрыТеста);
- Notion_УдалитьБлок(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура НоушнАпи_ПолучитьПользователей() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Notion_Token", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Notion_User" , ПараметрыТеста);
-
- Notion_СписокПользователей(ПараметрыТеста);
- Notion_ПолучитьДанныеПользователя(ПараметрыТеста);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область Slack
-
-Процедура Слак_ПолучитьИнформацию() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Slack_Token", ПараметрыТеста);
-
- Slack_ПолучитьИнформациюОБоте(ПараметрыТеста);
- Slack_ПолучитьСписокПользователей(ПараметрыТеста);
- Slack_ПолучитьСписокРабочихОбластей(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Слак_ОтправитьУдалитьСообщение() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Slack_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Slack_Channel", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Slack_User" , ПараметрыТеста);
-
- Slack_ОтправитьСообщение(ПараметрыТеста);
- Slack_ИзменитьСообщение(ПараметрыТеста);
- Slack_ПолучитьСписокОтветовНаСообщение(ПараметрыТеста);
- Slack_ПолучитьСсылкуНаСообщение(ПараметрыТеста);
- Slack_УдалитьСообщение(ПараметрыТеста);
- Slack_ОтправитьЭфемерноеСообщение(ПараметрыТеста);
- Slack_ПолучитьСписокОтложенныхСообщений(ПараметрыТеста);
- Slack_СформироватьБлокКартинку(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Слак_СоздатьАрхивироватьКанал() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Slack_Token", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Slack_User" , ПараметрыТеста);
-
- Slack_СоздатьКанал(ПараметрыТеста);
- Slack_УстановитьТемуКанала(ПараметрыТеста);
- Slack_УстановитьЦельКанала(ПараметрыТеста);
- Slack_ПолучитьКанал(ПараметрыТеста);
- Slack_ПригласитьПользователейВКанал(ПараметрыТеста);
- Slack_ВыгнатьПользователяИзКанала(ПараметрыТеста);
- Slack_ПолучитьИсториюКанала(ПараметрыТеста);
- Slack_ПолучитьСписокПользователейКанала(ПараметрыТеста);
- Slack_ПокинутьКанал(ПараметрыТеста);
- Slack_ВступитьВКанал(ПараметрыТеста);
- Slack_ПереименоватьКанал(ПараметрыТеста);
- Slack_АрхивироватьКанал(ПараметрыТеста);
- Slack_ПолучитьСписокКаналов(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Слак_ОткрытьЗакрытьДиалог() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Slack_Token", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Slack_User" , ПараметрыТеста);
-
- Slack_ОткрытьДиалог(ПараметрыТеста);
- Slack_ЗакрытьДиалог(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Слак_ЗагрузитьУдалитьФайл() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Slack_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Slack_Channel", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Document" , ПараметрыТеста);
-
- Slack_ПолучитьСписокФайлов(ПараметрыТеста);
- Slack_ЗагрузитьФайл(ПараметрыТеста);
- Slack_СделатьФайлПубличным(ПараметрыТеста);
- Slack_СделатьФайлПриватным(ПараметрыТеста);
- Slack_ПолучитьДанныеФайла(ПараметрыТеста);
- Slack_УдалитьФайл(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Слак_ЗагрузитьУдалитьВФ() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Slack_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Slack_Channel", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Document" , ПараметрыТеста);
-
- Slack_ПолучитьСписокВнешнихФайлов(ПараметрыТеста);
- Slack_ДобавитьВнешнийФайл(ПараметрыТеста);
- Slack_ПолучитьВнешнийФайл(ПараметрыТеста);
- Slack_ОтправитьВнешнийФайл(ПараметрыТеста);
- Slack_УдалитьВнешнийФайл(ПараметрыТеста);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область Airtable
-
-Процедура АТ_СоздатьБазу() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Airtable_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Airtable_Workspace", ПараметрыТеста);
-
- Airtable_СоздатьБазу(ПараметрыТеста);
- Airtable_ПолучитьТаблицыБазы(ПараметрыТеста);
- Airtable_ПолучитьСписокБаз(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура АТ_СоздатьТаблицу() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Airtable_Token", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Airtable_Base" , ПараметрыТеста);
-
- Airtable_ПолучитьПолеНомера(ПараметрыТеста);
- Airtable_ПолучитьПолеСтроковое(ПараметрыТеста);
- Airtable_ПолучитьПолеВложения(ПараметрыТеста);
- Airtable_ПолучитьПолеФлажка(ПараметрыТеста);
- Airtable_ПолучитьПолеДаты(ПараметрыТеста);
- Airtable_ПолучитьПолеТелефона(ПараметрыТеста);
- Airtable_ПолучитьПолеПочты(ПараметрыТеста);
- Airtable_ПолучитьПолеСсылки(ПараметрыТеста);
- Airtable_СоздатьТаблицу(ПараметрыТеста);
- Airtable_ИзменитьТаблицу(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура АТ_СоздатьПоле() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Airtable_Token", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Airtable_Base" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Airtable_Table", ПараметрыТеста);
-
- Airtable_СоздатьПоле(ПараметрыТеста);
- Airtable_ИзменитьПоле(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура АТ_СоздатьУдалитьЗаписи() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Airtable_Token", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Airtable_Base" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Airtable_Table", ПараметрыТеста);
-
- Airtable_СоздатьЗаписи(ПараметрыТеста);
- Airtable_ПолучитьЗапись(ПараметрыТеста);
- Airtable_СоздатьКомментарий(ПараметрыТеста);
- Airtable_ИзменитьКомментарий(ПараметрыТеста);
- Airtable_ПолучитьКомментарии(ПараметрыТеста);
- Airtable_УдалитьКомментарий(ПараметрыТеста);
- Airtable_ПолучитьСписокЗаписей(ПараметрыТеста);
- Airtable_УдалитьЗаписи(ПараметрыТеста);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область Dropbox
-
-Процедура ДропБокс_ПолучитьОбновитьТокен() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Dropbox_Appkey" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Dropbox_Appsecret", ПараметрыТеста);
-
- Dropbox_ПолучитьСсылкуАвторизации(ПараметрыТеста);
-
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Dropbox_Code", ПараметрыТеста);
-
- Dropbox_ПолучитьТокен(ПараметрыТеста);
-
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Dropbox_Refresh", ПараметрыТеста);
-
- Dropbox_ОбновитьТокен(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура ДропБокс_ЗагрузитьФайл() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Dropbox_Token", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Big" , ПараметрыТеста);
-
- Dropbox_ЗагрузитьФайл(ПараметрыТеста);
- Dropbox_ПолучитьИнформациюОбОбъекте(ПараметрыТеста);
- Dropbox_ПолучитьСписокВерсийОбъекта(ПараметрыТеста);
- Dropbox_ВосстановитьОбъектКВерсии(ПараметрыТеста);
- Dropbox_ПолучитьПревью(ПараметрыТеста);
- Dropbox_СкачатьФайл(ПараметрыТеста);
- Dropbox_ПереместитьОбъект(ПараметрыТеста);
- Dropbox_КопироватьОбъект(ПараметрыТеста);
- Dropbox_УдалитьОбъект(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура ДропБокс_СоздатьКаталог() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Dropbox_Token", ПараметрыТеста);
-
- Dropbox_СоздатьПапку(ПараметрыТеста);
- Dropbox_СкачатьПапку(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура ДропБокс_ПолучитьСписокФайловПапки() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Dropbox_Token", ПараметрыТеста);
-
- Dropbox_ПолучитьСписокФайловПапки(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура ДропБокс_ЗагрузитьФайлПоURL() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Dropbox_Token", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Document" , ПараметрыТеста);
-
- Dropbox_ЗагрузитьФайлПоURL(ПараметрыТеста);
- Dropbox_ПолучитьСтатусЗагрузкиПоURL(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура ДропБокс_СоздатьУдалитьТег() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Dropbox_Token", ПараметрыТеста);
-
- Dropbox_ДобавитьТег(ПараметрыТеста);
- Dropbox_ПолучитьСписокТегов(ПараметрыТеста);
- Dropbox_УдалитьТег(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура ДропБокс_ПолучитьАккаунт() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Dropbox_Token", ПараметрыТеста);
-
- Dropbox_ПолучитьИнформациюОбАккаунте(ПараметрыТеста);
- Dropbox_ПолучитьДанныеИспользованияПространства(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура ДропБокс_РаботаСДоступами() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Dropbox_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Dropbox_OtherUser", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Dropbox_FileID" , ПараметрыТеста);
-
- Dropbox_ДобавитьПользователейКФайлу(ПараметрыТеста);
- Dropbox_ОпубликоватьПапку(ПараметрыТеста);
- Dropbox_ДобавитьПользователейКПапке(ПараметрыТеста);
- Dropbox_ОтменитьПубликациюПапки(ПараметрыТеста);
- Dropbox_ПолучитьСтатусАсинхронногоИзменения(ПараметрыТеста);
- Dropbox_ОтменитьПубликациюФайла(ПараметрыТеста);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область Bitrix24
-
-Процедура Б24_РаботаСТокеном() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_Domain" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_ClientID" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_ClientSecret", ПараметрыТеста);
-
- Bitrix24_ПолучитьСсылкуАвторизацииПриложения(ПараметрыТеста);
-
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_Code", ПараметрыТеста);
-
- Bitrix24_ПолучитьТокен(ПараметрыТеста);
-
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_Refresh", ПараметрыТеста);
-
- Bitrix24_ОбновитьТокен(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Б24_СерверноеВремя() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_URL" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_Domain", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_Token" , ПараметрыТеста);
-
- Bitrix24_СерверноеВремя(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Б24_РаботаСНовостями() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_URL" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_Domain", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture2" , ПараметрыТеста);
-
- Bitrix24_СоздатьНовость(ПараметрыТеста);
- Bitrix24_ИзменитьНовость(ПараметрыТеста);
- Bitrix24_ПолучитьСписокПросмотревшихВажное(ПараметрыТеста);
- Bitrix24_ПолучитьНовости(ПараметрыТеста);
- Bitrix24_ДобавитьКомментарийНовости(ПараметрыТеста);
- Bitrix24_ДобавитьПолучателейКНовости(ПараметрыТеста);
- Bitrix24_УдалитьНовость(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Б24_РаботаСЗадачами() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_URL" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_Domain", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_UserID", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
-
- Bitrix24_ПолучитьСтруктуруЗадачи(ПараметрыТеста);
- Bitrix24_СоздатьЗадачу(ПараметрыТеста);
- Bitrix24_СоздатьЗависимостьЗадач(ПараметрыТеста);
- Bitrix24_УдалитьЗависимостьЗадач(ПараметрыТеста);
- Bitrix24_ИзменитьЗадачу(ПараметрыТеста);
- Bitrix24_ПолучитьЗадачу(ПараметрыТеста);
- Bitrix24_ОтключитьЗвукЗадачи(ПараметрыТеста);
- Bitrix24_ВключитьЗвукЗадачи(ПараметрыТеста);
- Bitrix24_ДобавитьЗадачуВИзбранное(ПараметрыТеста);
- Bitrix24_УбратьЗадачуИзИзбранного(ПараметрыТеста);
- Bitrix24_ДелегироватьЗадачу(ПараметрыТеста);
- Bitrix24_ОтложитьЗадачу(ПараметрыТеста);
- Bitrix24_ЗавершитьЗадачу(ПараметрыТеста);
- Bitrix24_ОтклонитьЗадачу(ПараметрыТеста);
- Bitrix24_ПринятьЗадачу(ПараметрыТеста);
- Bitrix24_ВозобновитьЗадачу(ПараметрыТеста);
- Bitrix24_НачатьВыполнениеЗадачи(ПараметрыТеста);
- Bitrix24_НачатьНаблюдатьЗаЗадачей(ПараметрыТеста);
- Bitrix24_ПрекратитьНаблюдатьЗаЗадачей(ПараметрыТеста);
- Bitrix24_ПриостановитьЗадачу(ПараметрыТеста);
- Bitrix24_ПолучитьИсториюЗадачи(ПараметрыТеста);
- Bitrix24_ПолучитьСписокЗадач(ПараметрыТеста);
- Bitrix24_ПроверитьДоступКЗадаче(ПараметрыТеста);
- Bitrix24_ДобавитьЭлементЧеклистаЗадачи(ПараметрыТеста);
- Bitrix24_ИзменитьЭлементЧеклистаЗадачи(ПараметрыТеста);
- Bitrix24_ПолучитьЧеклистЗадачи(ПараметрыТеста);
- Bitrix24_ПолучитьЭлементЧеклистаЗадачи(ПараметрыТеста);
- Bitrix24_ВыполнитьЭлементЧеклистаЗадачи(ПараметрыТеста);
- Bitrix24_ВозобновитьЭлементЧеклистаЗадачи(ПараметрыТеста);
- Bitrix24_УдалитьЭлементЧеклистаЗадачи(ПараметрыТеста);
- Bitrix24_ПолучитьПланЗадачНаДень(ПараметрыТеста);
- Bitrix24_ПолучитьСтруктуруФильтраЗадач(ПараметрыТеста);
-
- Наименование = "Картинка задачи.jpg";
- Картинка = ПараметрыТеста["Picture"];
- IDПриемника = 3;
-
- URL = ПараметрыТеста["Bitrix24_URL"];
-
- Результат = OPI_Bitrix24.ЗагрузитьФайлВХранилище(URL, Наименование, Картинка, IDПриемника);
- IDФайла = Результат["result"]["ID"];
-
- OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("Bitrix24_TaskFileID", IDФайла);
- ПараметрыТеста.Вставить("Bitrix24_TaskFileID", IDФайла);
-
- Bitrix24_ДобавитьФайлВЗадачу(ПараметрыТеста);
-
- OPI_Bitrix24.УдалитьФайл(URL, IDФайла);
-
- Bitrix24_УдалитьЗадачу(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Б24_РаботаСДиском() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_URL" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_Domain", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture2" , ПараметрыТеста);
-
- Bitrix24_ПолучитьСписокХранилищ(ПараметрыТеста);
- Bitrix24_ПолучитьХранилищеПриложения(ПараметрыТеста);
- Bitrix24_ПереименоватьХранилище(ПараметрыТеста);
- Bitrix24_ПолучитьХранилище(ПараметрыТеста);
- Bitrix24_ЗагрузитьФайлВХранилище(ПараметрыТеста);
- Bitrix24_ПолучитьСодержимоеХранилища(ПараметрыТеста);
- Bitrix24_ПолучитьИнформациюОФайле(ПараметрыТеста);
- Bitrix24_ПолучитьВнешнююСсылкуФайла(ПараметрыТеста);
- Bitrix24_ПереименоватьФайл(ПараметрыТеста);
- Bitrix24_ПоместитьФайлВКорзину(ПараметрыТеста);
- Bitrix24_ВосстановитьФайл(ПараметрыТеста);
- Bitrix24_СоздатьКаталогВХранилище(ПараметрыТеста);
- Bitrix24_ПереименоватьКаталог(ПараметрыТеста);
- Bitrix24_ПолучитьИнформациюОКаталоге(ПараметрыТеста);
- Bitrix24_ПолучитьВнешнююСсылкуКаталога(ПараметрыТеста);
- Bitrix24_СоздатьПодкаталог(ПараметрыТеста);
- Bitrix24_ПереместитьФайлВКаталог(ПараметрыТеста);
- Bitrix24_СкопироватьКаталог(ПараметрыТеста);
- Bitrix24_ЗагрузитьФайлВКаталог(ПараметрыТеста);
- Bitrix24_СкопироватьФайл(ПараметрыТеста);
- Bitrix24_УдалитьФайл(ПараметрыТеста);
- Bitrix24_ПолучитьСтруктуруФильтраКаталога(ПараметрыТеста);
- Bitrix24_ПолучитьДочерниеЭлементыКаталога(ПараметрыТеста);
- Bitrix24_ПереместитьКаталог(ПараметрыТеста);
- Bitrix24_ПоместитьКаталогВКорзину(ПараметрыТеста);
- Bitrix24_ВосстановитьКаталог(ПараметрыТеста);
- Bitrix24_УдалитьКаталог(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Б24_РаботаСКомментариями() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_URL" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_Domain", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_Token" , ПараметрыТеста);
-
- ТекущаяДата = OPI_Инструменты.ПолучитьТекущуюДату();
- Час = 3600;
- Сутки = 24;
- Исполнитель = 1;
-
- СтруктураЗадачи = Новый Структура;
- СтруктураЗадачи.Вставить("TITLE" , "Новая задача");
- СтруктураЗадачи.Вставить("DESCRIPTION" , "Новое описание задачи");
- СтруктураЗадачи.Вставить("PRIORITY" , "2");
- СтруктураЗадачи.Вставить("DEADLINE" , ТекущаяДата + Час * Сутки);
- СтруктураЗадачи.Вставить("RESPONSIBLE_ID", Исполнитель);
-
- URL = ПараметрыТеста["Bitrix24_URL"];
-
- Результат = OPI_Bitrix24.СоздатьЗадачу(URL, СтруктураЗадачи);
- IDЗадачи = Результат["result"]["task"]["id"];
-
- OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("Bitrix24_CommentsTaskID", IDЗадачи);
- ПараметрыТеста.Вставить("Bitrix24_CommentsTaskID", IDЗадачи);
-
- Bitrix24_ДобавитьКомментарийЗадачи(ПараметрыТеста);
- Bitrix24_ИзменитьКомментарийЗадачи(ПараметрыТеста);
- Bitrix24_СоздатьРезультатИзКомментария(ПараметрыТеста);
- Bitrix24_ПолучитьСписокРезультатов(ПараметрыТеста);
- Bitrix24_УдалитьРезультатИзКомментария(ПараметрыТеста);
- Bitrix24_ПолучитьСписокКомментариевЗадачи(ПараметрыТеста);
- Bitrix24_ПолучитьКомменатрийЗадачи(ПараметрыТеста);
- Bitrix24_УдалитьКомментарийЗадачи(ПараметрыТеста);
- Bitrix24_ПолучитьСтруктуруКомментария(ПараметрыТеста);
-
- OPI_Bitrix24.УдалитьЗадачу(URL, IDЗадачи);
-
-КонецПроцедуры
-
-Процедура Б24_УчетРабочегоВремени() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_URL" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_Domain", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_Token" , ПараметрыТеста);
-
- ТекущаяДата = OPI_Инструменты.ПолучитьТекущуюДату();
- Час = 3600;
- Сутки = 24;
- Исполнитель = 1;
-
- СтруктураЗадачи = Новый Структура;
- СтруктураЗадачи.Вставить("TITLE" , "Новая задача");
- СтруктураЗадачи.Вставить("DESCRIPTION" , "Новое описание задачи");
- СтруктураЗадачи.Вставить("PRIORITY" , "2");
- СтруктураЗадачи.Вставить("DEADLINE" , ТекущаяДата + Час * Сутки);
- СтруктураЗадачи.Вставить("RESPONSIBLE_ID", Исполнитель);
-
- URL = ПараметрыТеста["Bitrix24_URL"];
-
- Результат = OPI_Bitrix24.СоздатьЗадачу(URL, СтруктураЗадачи);
- IDЗадачи = Результат["result"]["task"]["id"];
-
- OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("Bitrix24_ElapsedTaskID", IDЗадачи);
- ПараметрыТеста.Вставить("Bitrix24_ElapsedTaskID", IDЗадачи);
-
- Bitrix24_ДобавитьТрудозатратыЗадачи(ПараметрыТеста);
- Bitrix24_ПолучитьТрудозатратыЗадачи(ПараметрыТеста);
- Bitrix24_ПолучитьСписокТрудозатратЗадачи(ПараметрыТеста);
- Bitrix24_ИзменитьТрудозатратыЗадачи(ПараметрыТеста);
- Bitrix24_УдалитьТрудозатратыЗадачи(ПараметрыТеста);
- Bitrix24_НачатьУчетВремени(ПараметрыТеста);
- Bitrix24_ПриостановитьУчетВремени(ПараметрыТеста);
- Bitrix24_ПолучитьСтатусУчетаВремени(ПараметрыТеста);
- Bitrix24_ЗавершитьУчетВремени(ПараметрыТеста);
- Bitrix24_ПолучитьНастройкиУчетаВремени(ПараметрыТеста);
-
- OPI_Bitrix24.УдалитьЗадачу(URL, IDЗадачи);
-
-КонецПроцедуры
-
-Процедура Б24_Канбан() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_URL" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_Domain", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_Token" , ПараметрыТеста);
-
- ТекущаяДата = OPI_Инструменты.ПолучитьТекущуюДату();
- Час = 3600;
- Сутки = 24;
- Исполнитель = 1;
-
- СтруктураЗадачи = Новый Структура;
- СтруктураЗадачи.Вставить("TITLE" , "Новая задача");
- СтруктураЗадачи.Вставить("DESCRIPTION" , "Новое описание задачи");
- СтруктураЗадачи.Вставить("PRIORITY" , "2");
- СтруктураЗадачи.Вставить("DEADLINE" , ТекущаяДата + Час * Сутки);
- СтруктураЗадачи.Вставить("RESPONSIBLE_ID", Исполнитель);
-
- URL = ПараметрыТеста["Bitrix24_URL"];
-
- Результат = OPI_Bitrix24.СоздатьЗадачу(URL, СтруктураЗадачи);
- IDЗадачи = Результат["result"]["task"]["id"];
-
- OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("Bitrix24_KanbanTaskID", IDЗадачи);
- ПараметрыТеста.Вставить("Bitrix24_KanbanTaskID", IDЗадачи);
-
- Bitrix24_ДобавитьСтадиюКанбана(ПараметрыТеста);
- Bitrix24_ПолучитьСтадииКанбана(ПараметрыТеста);
- Bitrix24_ПеренестиЗадачуВСтадиюКанбана(ПараметрыТеста);
- Bitrix24_ИзменитьСтадиюКанбана(ПараметрыТеста);
-
- OPI_Bitrix24.УдалитьЗадачу(URL, IDЗадачи);
-
- Bitrix24_УдалитьСтадиюКанбана(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Б24_РаботаСЧатами() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_URL" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_Domain", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture2" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Document" , ПараметрыТеста);
-
- Bitrix24_ПолучитьСтатусПользователя(ПараметрыТеста);
- Bitrix24_УстановитьСтатусПользователя(ПараметрыТеста);
- Bitrix24_ПолучитьПользователей(ПараметрыТеста);
- Bitrix24_СоздатьЧат(ПараметрыТеста);
-
- OPI_Инструменты.Пауза(5);
-
- Bitrix24_ПолучитьСписокПользователейЧата(ПараметрыТеста);
- Bitrix24_ИсключитьПользователяИзЧата(ПараметрыТеста);
- Bitrix24_ДобавитьПользователейВЧат(ПараметрыТеста);
- Bitrix24_ИзменитьЗаголовокЧата(ПараметрыТеста);
-
- OPI_Инструменты.Пауза(5);
-
- Bitrix24_ИзменитьЦветЧата(ПараметрыТеста);
- Bitrix24_ИзменитьКартинкуЧата(ПараметрыТеста);
- Bitrix24_ОтключитьУведомленияЧата(ПараметрыТеста);
- Bitrix24_ВключитьУведомленияЧата(ПараметрыТеста);
-
- OPI_Инструменты.Пауза(5);
-
- Bitrix24_ПолучитьСписокСообщенийЧата(ПараметрыТеста);
- Bitrix24_ОтметитьСообщениеКакПрочитанное(ПараметрыТеста);
- Bitrix24_ОтметитьСообщениеКакНепрочитанное(ПараметрыТеста);
- Bitrix24_ПолучитьДиалог(ПараметрыТеста);
-
- OPI_Инструменты.Пауза(5);
-
- Bitrix24_ПолучитьСписокПользователейДиалога(ПараметрыТеста);
- Bitrix24_ОтправитьУведомлениеОВводе(ПараметрыТеста);
- Bitrix24_ОтправитьСообщение(ПараметрыТеста);
- Bitrix24_ИзменитьСообщение(ПараметрыТеста);
- Bitrix24_ПолучитьБлокКартинки(ПараметрыТеста);
- Bitrix24_ПолучитьБлокФайла(ПараметрыТеста);
-
- OPI_Инструменты.Пауза(5);
-
- Bitrix24_УстановитьРеакциюНаСообщение(ПараметрыТеста);
- Bitrix24_УдалитьСообщение(ПараметрыТеста);
- Bitrix24_ПолучитьКаталогФайловЧата(ПараметрыТеста);
- Bitrix24_ОтправитьФайл(ПараметрыТеста);
-
- OPI_Инструменты.Пауза(5);
-
- Bitrix24_ПрочитатьВсе(ПараметрыТеста);
- Bitrix24_СменитьВладельцаЧата(ПараметрыТеста);
- Bitrix24_ПокинутьЧат(ПараметрыТеста);
-
- Bitrix24_ПолучитьСтруктуруЧата(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Б24_РаботаСУведомлениями() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_URL" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_Domain", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture2" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Document" , ПараметрыТеста);
-
- Bitrix24_СоздатьПерсональноеУведомление(ПараметрыТеста);
- Bitrix24_СоздатьСистемноеУведомление(ПараметрыТеста);
- Bitrix24_УдалитьУведомление(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Б24_РаботаСПолямиЗадач() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_URL" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_Domain" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_HookTaskFieldID", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_TaskFieldID" , ПараметрыТеста);
-
- Bitrix24_ДобавитьПользовательскоеПолеЗадачи(ПараметрыТеста);
- Bitrix24_ИзменитьПользовательскоеПолеЗадачи(ПараметрыТеста);
- Bitrix24_ПолучитьПользовательскоеПолеЗадачи(ПараметрыТеста);
- Bitrix24_ПолучитьСписокПользовательскихПолейЗадачи(ПараметрыТеста);
- Bitrix24_УдалитьПользовательскоеПолеЗадачи(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Б24_УправлениеПодразделениями() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_URL" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_Domain", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_Token" , ПараметрыТеста);
-
- Bitrix24_СоздатьПодразделение(ПараметрыТеста);
- Bitrix24_ПолучитьПодразделения(ПараметрыТеста);
- Bitrix24_ИзменитьПодразделение(ПараметрыТеста);
- Bitrix24_УдалитьПодразделение(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Б24_УправлениеПользователями() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_URL" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_Domain", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_Token" , ПараметрыТеста);
-
- Bitrix24_ПолучитьТекущегоПользователя(ПараметрыТеста);
- Bitrix24_ПолучитьСтурктуруПользователя(ПараметрыТеста);
- Bitrix24_СоздатьПользователя(ПараметрыТеста);
- Bitrix24_НайтиПользователей(ПараметрыТеста);
- Bitrix24_ИзменитьПользователя(ПараметрыТеста);
- Bitrix24_ПолучитьПользователя(ПараметрыТеста);
- Bitrix24_ИзменитьСтатусПользователя(ПараметрыТеста);
- Bitrix24_ПолучитьСтруктуруФильтраПользователей(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Б24_РаботаСЛидами() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_URL" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_Domain", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_Token" , ПараметрыТеста);
-
- Bitrix24_ПолучитьСписокЛидов(ПараметрыТеста);
- Bitrix24_ПолучитьСтруктуруФильтраЛидов(ПараметрыТеста);
- Bitrix24_ПолучитьСтруктуруЛида(ПараметрыТеста);
- Bitrix24_СоздатьЛид(ПараметрыТеста);
- Bitrix24_ПолучитьЛид(ПараметрыТеста);
- Bitrix24_ИзменитьЛид(ПараметрыТеста);
- Bitrix24_УдалитьЛид(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Б24_РаботаСоСделками() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_URL" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_Domain", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_Token" , ПараметрыТеста);
-
- Bitrix24_ПолучитьСтруктуруФильтраСделок(ПараметрыТеста);
- Bitrix24_ПолучитьСтруктуруСделки(ПараметрыТеста);
- Bitrix24_СоздатьСделку(ПараметрыТеста);
- Bitrix24_ПолучитьСделку(ПараметрыТеста);
- Bitrix24_ИзменитьСделку(ПараметрыТеста);
- Bitrix24_УдалитьСделку(ПараметрыТеста);
- Bitrix24_ПолучитьСписокСделок(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура Б24_РаботаСКалендарями() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_URL" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_Domain", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_Token" , ПараметрыТеста);
-
- Bitrix24_СоздатьКалендарь(ПараметрыТеста);
- Bitrix24_ИзменитьКалендарь(ПараметрыТеста);
- Bitrix24_ПолучитьСписокКалендарей(ПараметрыТеста);
- Bitrix24_СоздатьСобытиеКалендаря(ПараметрыТеста);
- Bitrix24_УстановитьСтатусУчастияПользователя(ПараметрыТеста);
- Bitrix24_ПолучитьСтатусУчастияПользователя(ПараметрыТеста);
- Bitrix24_ПолучитьСобытиеКалендаря(ПараметрыТеста);
- Bitrix24_ПолучитьСобытияКалендарей(ПараметрыТеста);
- Bitrix24_ИзменитьСобытиеКалендаря(ПараметрыТеста);
- Bitrix24_ПолучитьЗанятостьПользователей(ПараметрыТеста);
- Bitrix24_УдалитьСобытиеКалендаря(ПараметрыТеста);
- Bitrix24_УдалитьКалендарь(ПараметрыТеста);
- Bitrix24_ПолучитьПользовательскиеНастройкиКалендаря(ПараметрыТеста);
- Bitrix24_УстановитьПользовательскиеНастройкиКалендаря(ПараметрыТеста);
- Bitrix24_ПолучитьСтруктуруКалендаря(ПараметрыТеста);
- Bitrix24_ПолучитьСтруктуруНастроекКалендаря(ПараметрыТеста);
- Bitrix24_ПолучитьСтруктуруПользовательскихНастроекКаледнаря(ПараметрыТеста);
- Bitrix24_ПолучитьСтруктуруСобытияКалендаря(ПараметрыТеста);
- Bitrix24_ПолучитьСтруктуруФильтраСобытийКалендарей(ПараметрыТеста);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область VkTeams
-
-Процедура ВКТ_ОбщиеМетоды() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("VkTeams_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("VkTeams_FileID", ПараметрыТеста);
-
- VkTeams_ПроверитьТокен(ПараметрыТеста);
- VkTeams_ПолучитьСобытия(ПараметрыТеста);
- VKTeams_ПолучитьИнформациюОФайле(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура ВКТ_ОтправкаСообщений() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("VkTeams_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("VkTeams_ChatID" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("VkTeams_ChatID2" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("VkTeams_MessageID", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Document" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Audio2" , ПараметрыТеста);
-
- VkTeams_ОтправитьТекстовоеСообщение(ПараметрыТеста);
- OPI_Инструменты.Пауза(60);
-
- VKTeams_ОтветитьНаСобытиеКлавиатуры(ПараметрыТеста);
- VKTeams_ПереслатьСообщение(ПараметрыТеста);
- VKTeams_ОтправитьФайл(ПараметрыТеста);
- VKTeams_ПереслатьФайл(ПараметрыТеста);
- VKTeams_ИзменитьТекстСообщения(ПараметрыТеста);
- VKTeams_ЗакрепитьСообщение(ПараметрыТеста);
- VKTeams_ОткрепитьСообщение(ПараметрыТеста);
- VKTeams_УдалитьСообщение(ПараметрыТеста);
- VKTeams_ОтправитьГолосовоеСообщение(ПараметрыТеста);
- VKTeams_ПереслатьГолосовоеСообщение(ПараметрыТеста);
- VKTeams_СформироватьКнопкуДействия(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура ВКТ_УправлениеЧатами() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("VkTeams_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("VkTeams_ChatID" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("VkTeams_ChatID2", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture3" , ПараметрыТеста);
-
- VKTeams_ИсключитьПользователейЧата(ПараметрыТеста);
- VKTeams_ИзменитьАватарЧата(ПараметрыТеста);
- VKTeams_ПолучитьИнформациюОЧате(ПараметрыТеста);
- VKTeams_ПолучитьАдминистраторовЧата(ПараметрыТеста);
- VKTeams_ПолучитьПользователейЧата(ПараметрыТеста);
- VKTeams_ПолучитьЗаблокированныхПользователейЧата(ПараметрыТеста);
- VKTeams_ПолучитьЗапросыВступленияЧата(ПараметрыТеста);
- VKTeams_ЗаблокироватьПользователяЧата(ПараметрыТеста);
- VKTeams_РазблокироватьПользователяЧата(ПараметрыТеста);
- VKTeams_ОдобритьЗаявкуНаВступление(ПараметрыТеста);
- VKTeams_ОтклонитьЗаявкуНаВступление(ПараметрыТеста);
- VKTeams_УстановитьЗаголовокЧата(ПараметрыТеста);
- VKTeams_УстановитьОписаниеЧата(ПараметрыТеста);
- VKTeams_УстановитьПравилаЧата(ПараметрыТеста);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область Neocities
-
-Процедура НС_РаботаСФайлами() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("NC_Token", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture2", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Gif" , ПараметрыТеста);
-
- Neocities_ЗагрузитьФайл(ПараметрыТеста);
- Neocities_ЗагрузитьФайлы(ПараметрыТеста);
- Neocities_ПолучитьСписокФайлов(ПараметрыТеста);
- Neocities_УдалитьВыбранныеФайлы(ПараметрыТеста);
- Neocities_СинхронизироватьКаталоги(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура НС_ПолучениеДанных() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("NC_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("NC_Login" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("NC_Password", ПараметрыТеста);
-
- Neocities_ПолучитьДанныеОСайте(ПараметрыТеста);
- Neocities_ПолучитьТокен(ПараметрыТеста);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область CDEK
-
-Процедура СдэкАПИ_ОбщиеМетоды() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("CDEK_Account" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("CDEK_Password", ПараметрыТеста);
-
- CDEK_ПолучитьТокен(ПараметрыТеста);
- CDEK_ПолучитьЧекиНаДату(ПараметрыТеста);
- CDEK_ПолучитьРеестрыПлатежейНаДату(ПараметрыТеста);
- CDEK_ПолучитьПереводыПлатежейНаДату(ПараметрыТеста);
- CDEK_ПолучитьОписаниеФильтраОфисов(ПараметрыТеста);
- CDEK_ПолучитьСписокОфисов(ПараметрыТеста);
- CDEK_ПолучитьСписокРегионов(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура СдэкАПИ_РаботаСЗаказами() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("CDEK_Token", ПараметрыТеста);
-
- CDEK_ПолучитьОписаниеЗаказа(ПараметрыТеста);
- CDEK_СоздатьЗаказ(ПараметрыТеста);
-
- OPI_Инструменты.Пауза(25);
-
- CDEK_ПолучитьЗаказ(ПараметрыТеста);
- CDEK_ПолучитьЗаказПоНомеру(ПараметрыТеста);
- CDEK_СформироватьКвитанцию(ПараметрыТеста);
- CDEK_СформироватьШтрихкод(ПараметрыТеста);
- CDEK_СоздатьПреалерт(ПараметрыТеста);
-
- OPI_Инструменты.Пауза(25);
-
- CDEK_ПолучитьКвитанцию(ПараметрыТеста);
- CDEK_ПолучитьШтрихкод(ПараметрыТеста);
- CDEK_ПолучитьПреалерт(ПараметрыТеста);
- CDEK_ПолучитьСтатусПаспортныхДанных(ПараметрыТеста);
- CDEK_ПолучитьЧекЗаказа(ПараметрыТеста);
- CDEK_ИзменитьЗаказ(ПараметрыТеста);
- CDEK_ОформитьКлиентскийВозврат(ПараметрыТеста);
- CDEK_СоздатьОтказ(ПараметрыТеста);
- CDEK_УдалитьЗаказ(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура СдэкАПИ_РаботаСЗаявкамиНаВызовКурьера() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("CDEK_Token", ПараметрыТеста);
-
- CDEK_СоздатьЗаказ(ПараметрыТеста);
-
- OPI_Инструменты.Пауза(25);
-
- CDEK_ПолучитьОписаниеЗаявкиКурьера(ПараметрыТеста);
- CDEK_СоздатьЗаявкуНаВызовКурьера(ПараметрыТеста);
- CDEK_ПолучитьЗаявкуНаВызовКурьера(ПараметрыТеста);
- CDEK_УдалитьЗаявкуНаВызовКурьера(ПараметрыТеста);
- CDEK_ПолучитьОписаниеДоговоренности(ПараметрыТеста);
-
- CDEK_ПолучитьДоступныеИнтервалыДоставки(ПараметрыТеста);
- CDEK_ЗафиксироватьДоговоренностьОДоставке(ПараметрыТеста);
-
- OPI_Инструменты.Пауза(25);
-
- CDEK_ПолучитьДоговоренностьОДоставке(ПараметрыТеста);
- CDEK_УдалитьЗаказ(ПараметрыТеста);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область YandexMetrika
-
-Процедура ЯМетрика_УправлениеМетками() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Metrika_Token", ПараметрыТеста);
-
- YandexMetrika_СоздатьМетку(ПараметрыТеста);
- YandexMetrika_ПолучитьСписокМеток(ПараметрыТеста);
- YandexMetrika_ИзменитьМетку(ПараметрыТеста);
- YandexMetrika_ПолучитьМетку(ПараметрыТеста);
- YandexMetrika_УдалитьМетку(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура ЯМетрика_УправлениеСчетчиками() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Metrika_Token", ПараметрыТеста);
-
- YandexMetrika_ПолучитьСтруктуруСчетчика(ПараметрыТеста);
- YandexMetrika_СоздатьСчетчик(ПараметрыТеста);
- YandexMetrika_ПолучитьСчетчик(ПараметрыТеста);
- YandexMetrika_ИзменитьСчетчик(ПараметрыТеста);
- YandexMetrika_УдалитьСчетчик(ПараметрыТеста);
- YandexMetrika_ВосстановитьСчетчик(ПараметрыТеста);
- YandexMetrika_ПолучитьСписокСчетчиков(ПараметрыТеста);
- YandexMetrika_УдалитьСчетчик(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура ЯМетрика_УправлениеОперациями() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Metrika_Token", ПараметрыТеста);
-
- YandexMetrika_СоздатьСчетчик(ПараметрыТеста);
- YandexMetrika_ПолучитьСписокОпераций(ПараметрыТеста);
- YandexMetrika_УдалитьСчетчик(ПараметрыТеста);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область S3
-
-Процедура AWS_ОбщиеМетоды() Экспорт
-
- МассивВариантов = OPI_ПолучениеДанныхТестов.ПолучитьВариантыПараметровS3();
-
- Для Каждого ПараметрыТеста Из МассивВариантов Цикл
-
- S3_ПолучитьСтруктуруДанных(ПараметрыТеста);
- S3_ОтправитьЗапросБезТела(ПараметрыТеста);
- S3_ОтправитьЗапросСТелом(ПараметрыТеста);
-
- КонецЦикла;
-
-КонецПроцедуры
-
-Процедура AWS_РаботаСБакетами() Экспорт
-
- МассивВариантов = OPI_ПолучениеДанныхТестов.ПолучитьВариантыПараметровS3();
-
- Для Каждого ПараметрыТеста Из МассивВариантов Цикл
-
- S3_СоздатьБакет(ПараметрыТеста);
- S3_ПолучитьСписокБакетов(ПараметрыТеста);
- S3_ПроверитьДоступностьБакета(ПараметрыТеста);
- S3_УстановитьТегиБакета(ПараметрыТеста);
- S3_ПолучитьТегиБакета(ПараметрыТеста);
- S3_УдалитьТегиБакета(ПараметрыТеста);
- S3_УстановитьШифрованиеБакета(ПараметрыТеста);
- S3_ПолучитьШифрованиеБакета(ПараметрыТеста);
- S3_УдалитьШифрованиеБакета(ПараметрыТеста);
- S3_УстановитьНастройкиВерсионированияБакета(ПараметрыТеста);
- S3_ПолучитьНастройкийВерсионированияБакета(ПараметрыТеста);
- S3_УдалитьБакет(ПараметрыТеста);
-
- КонецЦикла;
-
-КонецПроцедуры
-
-Процедура AWS_РаботаСОбъектами() Экспорт
-
- МассивВариантов = OPI_ПолучениеДанныхТестов.ПолучитьВариантыПараметровS3();
-
- Для Каждого ПараметрыТеста Из МассивВариантов Цикл
-
- S3_СоздатьБакет(ПараметрыТеста);
- S3_ЗагрузитьОбъект(ПараметрыТеста);
- S3_ЗагрузитьОбъектЦеликом(ПараметрыТеста);
- S3_ИнициализироватьЗагрузкуЧастями(ПараметрыТеста);
- S3_ЗагрузитьЧастьОбъекта(ПараметрыТеста);
- S3_ЗавершитьЗагрузкуЧастями(ПараметрыТеста);
- S3_ОтменитьЗагрузкуЧастями(ПараметрыТеста);
- S3_ПолучитьОписаниеОбъекта(ПараметрыТеста);
- S3_КопироватьОбъект(ПараметрыТеста);
- S3_УстановитьТегиОбъекта(ПараметрыТеста);
- S3_ПолучитьТегиОбъекта(ПараметрыТеста);
- S3_УдалитьТегиОбъекта(ПараметрыТеста);
- S3_ПолучитьСписокОбъектов(ПараметрыТеста);
- S3_ПолучитьСписокВерсийОбъектов(ПараметрыТеста);
- S3_ПолучитьОбъект(ПараметрыТеста);
- S3_ПолучитьСсылкуСкачиванияОбъекта(ПараметрыТеста);
- S3_УдалитьОбъект(ПараметрыТеста);
- S3_УдалитьБакет(ПараметрыТеста);
- S3_ПолучитьСсылкуЗагрузкиОбъекта(ПараметрыТеста);
-
- КонецЦикла;
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область TCP
-
-Процедура TC_Клиент() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("TCP_Address" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("TCP_AddressTLS", ПараметрыТеста);
-
- TCP_ОткрытьСоединение(ПараметрыТеста);
- TCP_ЗакрытьСоединение(ПараметрыТеста);
- TCP_ПрочитатьДвоичныеДанные(ПараметрыТеста);
- TCP_ОтправитьДвоичныеДанные(ПараметрыТеста);
- TCP_ПрочитатьСтроку(ПараметрыТеста);
- TCP_ОтправитьСтроку(ПараметрыТеста);
- TCP_ОбработатьЗапрос(ПараметрыТеста);
- TCP_ПолучитьНастройкиTLS(ПараметрыТеста);
- TCP_ПолучитьПоследнююОшибку(ПараметрыТеста);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область SQLite
-
-Процедура SQLL_ОсновныеМетоды() Экспорт
-
- ПараметрыТеста = Новый Структура;
-
- База = ПолучитьИмяВременногоФайла("sqlite");
- OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("SQLite_DB", База);
- OPI_Инструменты.ДобавитьПоле("SQLite_DB", База, "Строка", ПараметрыТеста);
-
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("SQLite_Ext" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("SQLite_ExtLinux", ПараметрыТеста);
-
- SQLite_ОткрытьСоединение(ПараметрыТеста);
- SQLite_ЗакрытьСоединение(ПараметрыТеста);
- SQLite_ВыполнитьЗапросSQL(ПараметрыТеста);
- SQLite_ЭтоКоннектор(ПараметрыТеста);
- SQLite_ПодключитьРасширение(ПараметрыТеста);
-
- OPI_Инструменты.УдалитьФайлВПопытке(База, "Ошибка удаления файла базы");
-
-КонецПроцедуры
-
-Процедура SQLL_ORM() Экспорт
-
- ПараметрыТеста = Новый Структура;
-
- База = ПолучитьИмяВременногоФайла("sqlite");
-
- Соединение = OPI_SQLite.ОткрытьСоединение(База);
- ПараметрыТеста.Вставить("SQLite_DB", Соединение);
-
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture", ПараметрыТеста);
-
- SQLite_СоздатьТаблицу(ПараметрыТеста);
- SQLite_ДобавитьЗаписи(ПараметрыТеста);
- SQLite_ПолучитьЗаписи(ПараметрыТеста);
- SQLite_ОбновитьЗаписи(ПараметрыТеста);
- SQLite_УдалитьЗаписи(ПараметрыТеста);
- SQLite_ПолучитьИнформациюОТаблице(ПараметрыТеста);
- SQLite_ДобавитьКолонкуТаблицы(ПараметрыТеста);
- SQLite_УдалитьКолонкуТаблицы(ПараметрыТеста);
- SQLite_ГарантироватьТаблицу(ПараметрыТеста);
- SQLite_ОчиститьТаблицу(ПараметрыТеста);
- SQLite_УдалитьТаблицу(ПараметрыТеста);
- SQLite_ПолучитьСтруктуруФильтраЗаписей(ПараметрыТеста);
-
- OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("SQLite_DB", База);
- OPI_Инструменты.ДобавитьПоле("SQLite_DB", База, "Строка", ПараметрыТеста);
-
- SQLite_СоздатьТаблицу(ПараметрыТеста);
- SQLite_ДобавитьЗаписи(ПараметрыТеста);
- SQLite_ПолучитьЗаписи(ПараметрыТеста);
- SQLite_ОбновитьЗаписи(ПараметрыТеста);
- SQLite_УдалитьЗаписи(ПараметрыТеста);
- SQLite_ПолучитьИнформациюОТаблице(ПараметрыТеста);
- SQLite_ДобавитьКолонкуТаблицы(ПараметрыТеста);
- SQLite_УдалитьКолонкуТаблицы(ПараметрыТеста);
- SQLite_ГарантироватьТаблицу(ПараметрыТеста);
- SQLite_ОчиститьТаблицу(ПараметрыТеста);
- SQLite_УдалитьТаблицу(ПараметрыТеста);
- SQLite_ПолучитьСтруктуруФильтраЗаписей(ПараметрыТеста);
-
- OPI_Инструменты.УдалитьФайлВПопытке(База, "Ошибка удаления файла базы");
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область PostgreSQL
-
-Процедура Postgres_ОсновныеМетоды() Экспорт
-
- МассивВариантов = OPI_ПолучениеДанныхТестов.ПолучитьВариантыПараметровPostgres();
-
- Для Каждого ПараметрыТеста Из МассивВариантов Цикл
-
- PostgreSQL_СформироватьСтрокуПодключения(ПараметрыТеста);
- PostgreSQL_ОткрытьСоединение(ПараметрыТеста);
- PostgreSQL_ЗакрытьСоединение(ПараметрыТеста);
- PostgreSQL_ЭтоКоннектор(ПараметрыТеста);
- PostgreSQL_ВыполнитьЗапросSQL(ПараметрыТеста);
- PostgreSQL_ПолучитьНастройкиTLS(ПараметрыТеста);
-
- КонецЦикла;
-
-КонецПроцедуры
-
-Процедура Postgres_ORM() Экспорт
-
- МассивВариантов = OPI_ПолучениеДанныхТестов.ПолучитьВариантыПараметровPostgres();
-
- Для Каждого ПараметрыТеста Из МассивВариантов Цикл
-
- PostgreSQL_СоздатьБазуДанных(ПараметрыТеста);
- PostgreSQL_СоздатьТаблицу(ПараметрыТеста);
- PostgreSQL_ДобавитьЗаписи(ПараметрыТеста);
- PostgreSQL_ПолучитьЗаписи(ПараметрыТеста);
- PostgreSQL_ОбновитьЗаписи(ПараметрыТеста);
- PostgreSQL_УдалитьЗаписи(ПараметрыТеста);
- PostgreSQL_ОчиститьТаблицу(ПараметрыТеста);
- PostgreSQL_ПолучитьИнформациюОТаблице(ПараметрыТеста);
- PostgreSQL_ДобавитьКолонкуТаблицы(ПараметрыТеста);
- PostgreSQL_УдалитьКолонкуТаблицы(ПараметрыТеста);
- PostgreSQL_ГарантироватьТаблицу(ПараметрыТеста);
- PostgreSQL_УдалитьТаблицу(ПараметрыТеста);
- PostgreSQL_ОтключитьВсеСоединенияБазыДанных(ПараметрыТеста);
- PostgreSQL_УдалитьБазуДанных(ПараметрыТеста);
- PostgreSQL_ПолучитьСтруктуруФильтраЗаписей(ПараметрыТеста);
-
- КонецЦикла;
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область MySQL
-
-Процедура MYS_ОсновныеМетоды() Экспорт
-
- МассивВариантов = OPI_ПолучениеДанныхТестов.ПолучитьВариантыПараметровMySQL();
-
- Для Каждого ПараметрыТеста Из МассивВариантов Цикл
-
- MySQL_СформироватьСтрокуПодключения(ПараметрыТеста);
- MySQL_ОткрытьСоединение(ПараметрыТеста);
- MySQL_ЗакрытьСоединение(ПараметрыТеста);
- MySQL_ЭтоКоннектор(ПараметрыТеста);
- MySQL_ВыполнитьЗапросSQL(ПараметрыТеста);
- MySQL_ПолучитьНастройкиTLS(ПараметрыТеста);
-
- КонецЦикла;
-
-КонецПроцедуры
-
-Процедура MYS_ORM() Экспорт
-
- МассивВариантов = OPI_ПолучениеДанныхТестов.ПолучитьВариантыПараметровMySQL();
-
- Для Каждого ПараметрыТеста Из МассивВариантов Цикл
-
- MySQL_СоздатьБазуДанных(ПараметрыТеста);
- MySQL_СоздатьТаблицу(ПараметрыТеста);
- MySQL_ДобавитьЗаписи(ПараметрыТеста);
- MySQL_ПолучитьЗаписи(ПараметрыТеста);
- MySQL_ОбновитьЗаписи(ПараметрыТеста);
- MySQL_УдалитьЗаписи(ПараметрыТеста);
- MySQL_ОчиститьТаблицу(ПараметрыТеста);
- MySQL_ПолучитьИнформациюОТаблице(ПараметрыТеста);
- MySQL_ДобавитьКолонкуТаблицы(ПараметрыТеста);
- MySQL_УдалитьКолонкуТаблицы(ПараметрыТеста);
- MySQL_ГарантироватьТаблицу(ПараметрыТеста);
- MySQL_УдалитьТаблицу(ПараметрыТеста);
- MySQL_УдалитьБазуДанных(ПараметрыТеста);
- MySQL_ПолучитьСтруктуруФильтраЗаписей(ПараметрыТеста);
-
- КонецЦикла;
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область GreenAPI
-
-Процедура GAPI_Аккаунт() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_ApiURL" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_MediaURL" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_IdInstance" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_AccountID" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_TestGroupID", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
-
- GreenAPI_АрхивироватьЧат(ПараметрыТеста);
- GreenAPI_РазархивироватьЧат(ПараметрыТеста);
- GreenAPI_СформироватьПараметрыДоступа(ПараметрыТеста);
- GreenAPI_ПолучитьНастройкиИнстанса(ПараметрыТеста);
- GreenAPI_ПолучитьИнформациюОбАккаунте(ПараметрыТеста);
- GreenAPI_ПолучитьСтруктуруНастроекИнстанса(ПараметрыТеста);
- GreenAPI_УстановитьНастройкиИнстанса(ПараметрыТеста);
- GreenAPI_ПолучитьСостояниеИнстанса(ПараметрыТеста);
- GreenAPI_УстановитьКартинкуПрофиля(ПараметрыТеста);
- // GreenAPI_ПерезапуститьИнстанс(ПараметрыТеста);
- // GreenAPI_ПолучитьКодАвторизации(ПараметрыТеста);
- // GreenAPI_РазлогинитьИнстанс(ПараметрыТеста);
- // GreenAPI_ПолучитьQR(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура GAPI_УправлениеГруппами() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_ApiURL" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_MediaURL" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_IdInstance", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_AccountID" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
-
- GreenAPI_СоздатьГруппу(ПараметрыТеста);
- GreenAPI_ПолучитьИнформациюОГруппе(ПараметрыТеста);
- GreenAPI_ИзменитьИмяГруппы(ПараметрыТеста);
- GreenAPI_УстановитьКартинкуГруппы(ПараметрыТеста);
- GreenAPI_ДобавитьУчастникаВГруппу(ПараметрыТеста);
- GreenAPI_ИсключитьУчастникаГруппы(ПараметрыТеста);
- GreenAPI_НазначитьПраваАдминистратора(ПараметрыТеста);
- GreenAPI_ОтозватьПраваАдминистратора(ПараметрыТеста);
- GreenAPI_ПокинутьГруппу(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура GAPI_ОтправкаСообщений() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_ApiURL" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_MediaURL" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_IdInstance" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_TestGroupID", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_AccountID" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Video" , ПараметрыТеста);
-
- GreenAPI_ОтправитьТекстовоеСообщение(ПараметрыТеста);
- GreenAPI_ОтправитьФайл(ПараметрыТеста);
- GreenAPI_ОтправитьФайлПоURL(ПараметрыТеста);
- GreenAPI_ОтправитьОпрос(ПараметрыТеста);
- GreenAPI_ОтправитьЛокацию(ПараметрыТеста);
- GreenAPI_ОтправитьКонтакт(ПараметрыТеста);
- GreenAPI_ПереслатьСообщения(ПараметрыТеста);
- GreenAPI_ПолучитьОписаниеЛокации(ПараметрыТеста);
- GreenAPI_ПолучитьОписаниеКонтакта(ПараметрыТеста);
- GreenAPI_ИзменитьТекстСообщения(ПараметрыТеста);
- GreenAPI_УдалитьСообщение(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура GAPI_ПолучениеУведомлений() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_ApiURL" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_MediaURL" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_IdInstance" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_AccountID" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_FileMessageID" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_TestGroupID" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_DownloadMessageID", ПараметрыТеста);
-
- GreenAPI_ПолучитьУведомление(ПараметрыТеста);
- GreenAPI_УстановитьОтметкуПрочтения(ПараметрыТеста);
- //GreenAPI_СкачатьФайлСообщения(ПараметрыТеста);
- GreenAPI_УдалитьУведомлениеИзОчереди(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура GAPI_ОчередьСообщений() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_ApiURL" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_MediaURL" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_IdInstance" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_AccountID" , ПараметрыТеста);
-
- GreenAPI_ПолучитьОчередьСообщений(ПараметрыТеста);
- GreenAPI_ОчиститьОчередьСообщений(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура GAPI_ЖурналыСообщений() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_ApiURL" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_MediaURL" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_IdInstance" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_TestGroupID", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_AccountID" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_MessageID" , ПараметрыТеста);
-
- GreenAPI_ПолучитьИсториюЧата(ПараметрыТеста);
- GreenAPI_ПолучитьСообщение(ПараметрыТеста);
- GreenAPI_ПолучитьЖурналВходящихСообщений(ПараметрыТеста);
- GreenAPI_ПолучитьЖурналИсходящихСообщений(ПараметрыТеста);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область RCON
-
-Процедура RC_ВыполнениеКоманд() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("RCON_URL" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("RCON_Password", ПараметрыТеста);
-
- RCON_СформироватьПараметрыСоединения(ПараметрыТеста);
- RCON_ОткрытьСоединение(ПараметрыТеста);
- RCON_ВыполнитьКоманду(ПараметрыТеста);
- RCON_ЭтоКоннектор(ПараметрыТеста);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область Ollama
-
-Процедура OLLM_ОбработкаЗапросов() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Ollama_URL" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Ollama_Token", ПараметрыТеста);
-
- Ollama_СкачатьМодель(ПараметрыТеста);
- Ollama_ПолучитьВерсию(ПараметрыТеста);
- Ollama_ПолучитьОтвет(ПараметрыТеста);
- Ollama_ПолучитьОтветВКонтексте(ПараметрыТеста);
- Ollama_ПолучитьПредставления(ПараметрыТеста);
- Ollama_ПолучитьСтруктуруПараметровЗапроса(ПараметрыТеста);
- Ollama_ПолучитьСтруктуруПараметровВКонтексте(ПараметрыТеста);
- Ollama_ПолучитьСтруктуруСообщенияКонтекста(ПараметрыТеста);
- Ollama_ПолучитьСтруктуруПараметровПредставлений(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура OLLM_РаботаСМоделями() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Ollama_URL" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Ollama_Token", ПараметрыТеста);
-
- Ollama_СкачатьМодель(ПараметрыТеста);
- Ollama_ЗагрузитьМодельВПамять(ПараметрыТеста);
- Ollama_ВыгрузитьМодельИзПамяти(ПараметрыТеста);
- Ollama_СоздатьМодель(ПараметрыТеста);
- Ollama_ПолучитьИнформациюОМодели(ПараметрыТеста);
- Ollama_ПолучитьСписокМоделей(ПараметрыТеста);
- Ollama_ПолучитьСписокЗапущенныхМоделей(ПараметрыТеста);
- Ollama_КопироватьМодель(ПараметрыТеста);
- Ollama_ОтправитьМодель(ПараметрыТеста);
- Ollama_ПолучитьСтруктуруНастроекМодели(ПараметрыТеста);
- Ollama_УдалитьМодель(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура OLLM_РаботаСBlob() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Ollama_URL" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Ollama_Token", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
-
- Ollama_ОтправитьBlob(ПараметрыТеста);
- Ollama_ПроверитьBlob(ПараметрыТеста);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область HTTP
-
-Процедура HTTP_Инициализация() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("HTTP_URL" , ПараметрыТеста);
-
- HTTPКлиент_Инициализировать(ПараметрыТеста);
- HTTPКлиент_УстановитьURL(ПараметрыТеста);
- HTTPКлиент_УстановитьПараметрыURL(ПараметрыТеста);
- HTTPКлиент_УстановитьФайлОтвета(ПараметрыТеста);
- HTTPКлиент_УстановитьТипДанных(ПараметрыТеста);
- HTTPКлиент_ПолучитьЛог(ПараметрыТеста);
- HTTPКлиент_УстановитьПрокси(ПараметрыТеста);
- HTTPКлиент_УстановитьТаймаут(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура HTTP_УстановкаТела() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("HTTP_URL", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
-
- HTTPКлиент_УстановитьДвоичноеТело(ПараметрыТеста);
- HTTPКлиент_УстановитьСтроковоеТело(ПараметрыТеста);
- HTTPКлиент_УстановитьJsonТело(ПараметрыТеста);
- HTTPКлиент_УстановитьFormТело(ПараметрыТеста);
- HTTPКлиент_НачатьЗаписьТелаMultipart(ПараметрыТеста);
- HTTPКлиент_ДобавитьПолеMultipartFormData(ПараметрыТеста);
- HTTPКлиент_ДобавитьФайлMultipartFormData(ПараметрыТеста);
- HTTPКлиент_ДобавитьДанныеRelated(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура HTTP_Настройки() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("HTTP_URL", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
-
- HTTPКлиент_ИспользоватьКодировку(ПараметрыТеста);
- HTTPКлиент_ИспользоватьСжатиеGzip(ПараметрыТеста);
- HTTPКлиент_ИспользоватьПоляТелаВOAuth(ПараметрыТеста);
- HTTPКлиент_ИспользоватьКодированиеURL(ПараметрыТеста);
- HTTPКлиент_РазделятьМассивыВURL(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура HTTP_УстановкаЗаголовков() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("HTTP_URL", ПараметрыТеста);
-
- HTTPКлиент_УстановитьЗаголовки(ПараметрыТеста);
- HTTPКлиент_ДобавитьЗаголовок(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура HTTP_Авторизация() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("HTTP_URL", ПараметрыТеста);
-
- HTTPКлиент_ДобавитьBasicАвторизацию(ПараметрыТеста);
- HTTPКлиент_ДобавитьBearerАвторизацию(ПараметрыТеста);
- HTTPКлиент_ДобавитьAWS4Авторизацию(ПараметрыТеста);
- HTTPКлиент_ДобавитьOAuthV1Авторизацию(ПараметрыТеста);
- HTTPКлиент_УстановитьАлгоритмOAuthV1(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура HTTP_ОбработкаЗапроса() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("HTTP_URL", ПараметрыТеста);
-
- HTTPКлиент_ОбработатьЗапрос(ПараметрыТеста);
- HTTPКлиент_ВыполнитьЗапрос(ПараметрыТеста);
- HTTPКлиент_ВернутьЗапрос(ПараметрыТеста);
- HTTPКлиент_ВернутьСоединение(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура HTTP_ПолучениеОтвета() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("HTTP_URL", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
-
- HTTPКлиент_ВернутьОтвет(ПараметрыТеста);
- HTTPКлиент_ВернутьОтветКакJSONКоллекцию(ПараметрыТеста);
- HTTPКлиент_ВернутьОтветКакДвоичныеДанные(ПараметрыТеста);
- HTTPКлиент_ВернутьОтветКакСтроку(ПараметрыТеста);
- HTTPКлиент_ВернутьИмяФайлаТелаОтвета(ПараметрыТеста);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область OpenAI
-
-Процедура OAI_ОбработкаЗапросов() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("OpenAI_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("OpenAI_URL" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("OpenAI_Token2" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("OpenAI_URL2" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("OpenAI_File" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
-
- OpenAI_ПолучитьОтвет(ПараметрыТеста);
- OpenAI_ПолучитьПредставления(ПараметрыТеста);
- OpenAI_ПолучитьСтруктуруСообщения(ПараметрыТеста);
- OpenAI_ПолучитьСтруктуруСообщенияКартинки(ПараметрыТеста);
- OpenAI_ПолучитьКартинки(ПараметрыТеста);
- OpenAI_ПолучитьСообщениеАссистента(ПараметрыТеста);
- OpenAI_ПолучитьСообщениеПользователя(ПараметрыТеста);
- OpenAI_ПолучитьСообщениеСистемы(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура OAI_Ассистенты() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("OpenAI_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("OpenAI_URL" , ПараметрыТеста);
-
- OpenAI_СоздатьАссистента(ПараметрыТеста);
- OpenAI_ПолучитьАссистента(ПараметрыТеста);
- OpenAI_ПолучитьСписокАссистентов(ПараметрыТеста);
- OpenAI_УдалитьАссистента(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура OAI_РаботаСФайлами() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("OpenAI_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("OpenAI_URL" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
-
- OpenAI_ЗагрузитьФайл(ПараметрыТеста);
- OpenAI_ПолучитьИнформациюОФайле(ПараметрыТеста);
- OpenAI_ПолучитьСписокФайлов(ПараметрыТеста);
- OpenAI_СкачатьФайл(ПараметрыТеста);
- OpenAI_УдалитьФайл(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура OAI_РаботаСАудио() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("OpenAI_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("OpenAI_URL" , ПараметрыТеста);
-
- OpenAI_СгенерироватьРечь(ПараметрыТеста);
- OpenAI_СоздатьТранскрипцию(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура OAI_РаботаСМоделями() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("OpenAI_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("OpenAI_URL" , ПараметрыТеста);
-
- OpenAI_ПолучитьСписокМоделей(ПараметрыТеста);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область MSSQL
-
-Процедура MSS_ОсновныеМетоды() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("PG_IP" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("PG_Password", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("SQL2" , ПараметрыТеста);
-
- MSSQL_СформироватьСтрокуПодключения(ПараметрыТеста);
- MSSQL_ОткрытьСоединение(ПараметрыТеста);
- MSSQL_ЗакрытьСоединение(ПараметрыТеста);
- MSSQL_ЭтоКоннектор(ПараметрыТеста);
- MSSQL_ВыполнитьЗапросSQL(ПараметрыТеста);
- MSSQL_ПолучитьНастройкиTLS(ПараметрыТеста);
-
-КонецПроцедуры
-
-Процедура MSS_ORM() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("PG_IP" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("PG_Password", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
-
- MSSQL_СоздатьБазуДанных(ПараметрыТеста);
- MSSQL_СоздатьТаблицу(ПараметрыТеста);
- MSSQL_ДобавитьЗаписи(ПараметрыТеста);
- MSSQL_ПолучитьЗаписи(ПараметрыТеста);
- MSSQL_ОбновитьЗаписи(ПараметрыТеста);
- MSSQL_УдалитьЗаписи(ПараметрыТеста);
- MSSQL_ОчиститьТаблицу(ПараметрыТеста);
- MSSQL_ПолучитьИнформациюОТаблице(ПараметрыТеста);
- MSSQL_ДобавитьКолонкуТаблицы(ПараметрыТеста);
- MSSQL_УдалитьКолонкуТаблицы(ПараметрыТеста);
- MSSQL_ГарантироватьТаблицу(ПараметрыТеста);
- MSSQL_УдалитьТаблицу(ПараметрыТеста);
- MSSQL_УдалитьБазуДанных(ПараметрыТеста);
- MSSQL_ПолучитьСтруктуруФильтраЗаписей(ПараметрыТеста);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область FTP
-
-Процедура FT_РаботаСДиректориями() Экспорт
-
- МассивВариантов = OPI_ПолучениеДанныхТестов.ПолучитьВариантыПараметровFTP();
-
- Для Каждого ПараметрыТеста Из МассивВариантов Цикл
-
- FTP_ОчиститьДиректорию(ПараметрыТеста);
- FTP_СоздатьНовуюДиректорию(ПараметрыТеста);
- FTP_ПолучитьТекущийКаталог(ПараметрыТеста);
- FTP_ИзменитьТекущийКаталог(ПараметрыТеста);
- FTP_ПолучитьСписокОбъектов(ПараметрыТеста);
- FTP_УдалитьДиректорию(ПараметрыТеста);
-
- КонецЦикла;
-
-КонецПроцедуры
-
-Процедура FT_РаботаСФайлами() Экспорт
-
- МассивВариантов = OPI_ПолучениеДанныхТестов.ПолучитьВариантыПараметровFTP();
-
- Для Каждого ПараметрыТеста Из МассивВариантов Цикл
-
- FTP_ЗагрузитьФайл(ПараметрыТеста);
- FTP_СохранитьФайл(ПараметрыТеста);
- FTP_ПолучитьДанныеФайла(ПараметрыТеста);
- FTP_УдалитьФайл(ПараметрыТеста);
-
- КонецЦикла;
-
-КонецПроцедуры
-
-Процедура FT_ОсновныеМетоды() Экспорт
-
- МассивВариантов = OPI_ПолучениеДанныхТестов.ПолучитьВариантыПараметровFTP();
-
- Для Каждого ПараметрыТеста Из МассивВариантов Цикл
-
- FTP_ОткрытьСоединение(ПараметрыТеста);
- FTP_ПолучитьПриветственноеСообщение(ПараметрыТеста);
- FTP_ПолучитьСписокРасширенийПротокола(ПараметрыТеста);
- FTP_ПолучитьКонфигурациюСоединения(ПараметрыТеста);
- FTP_ЗакрытьСоединение(ПараметрыТеста);
- FTP_ЭтоКоннектор(ПараметрыТеста);
- FTP_ПолучитьНастройкиСоединения(ПараметрыТеста);
- FTP_ПолучитьНастройкиПрокси(ПараметрыТеста);
- FTP_ПолучитьНастройкиTLS(ПараметрыТеста);
- FTP_ПолучитьРазмерОбъекта(ПараметрыТеста);
- FTP_ИзменитьПуть(ПараметрыТеста);
- FTP_ВыполнитьНестандартнуюКоманду(ПараметрыТеста);
- FTP_ВыполнитьПроизвольнуюКоманду(ПараметрыТеста);
- FTP_Пинг(ПараметрыТеста);
-
- КонецЦикла;
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область ReportPortal
-
-Процедура RPortal_Авторизация() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("RPortal_URL" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("RPortal_Login" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("RPortal_Password", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("RPortal_UserID" , ПараметрыТеста);
-
- ReportPortal_ПолучитьВременныйТокен(ПараметрыТеста);
- ReportPortal_ПолучитьПостоянныйТокен(ПараметрыТеста);
- ReportPortal_УдалитьПостоянныйТокен(ПараметрыТеста);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область SSH
-
-Процедура SShell_ОсновныеМетоды() Экспорт
-
- МассивВариантов = OPI_ПолучениеДанныхТестов.ПолучитьВариантыПараметровSSH();
-
- Для Каждого ПараметрыТеста Из МассивВариантов Цикл
-
- SSH_ОткрытьСоединение(ПараметрыТеста);
- SSH_ПолучитьКонфигурациюСоединения(ПараметрыТеста);
- SSH_ВыполнитьКоманду(ПараметрыТеста);
- SSH_ЗакрытьСоединение(ПараметрыТеста);
- SSH_ЭтоКоннектор(ПараметрыТеста);
- SSH_ПолучитьНастройкиЛогинПароль(ПараметрыТеста);
- SSH_ПолучитьНастройкиПриватныйКлюч(ПараметрыТеста);
- SSH_ПолучитьНастройкиЧерезАгента(ПараметрыТеста);
- SSH_ПолучитьНастройкиПрокси(ПараметрыТеста);
-
- КонецЦикла;
-
- OPI_Инструменты.УдалитьФайлВПопытке(МассивВариантов[0]["SSH_Key"], "Ошибка удаления файла после теста");
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область SFTP
-
-Процедура SF_ОсновныеМетоды() Экспорт
-
- МассивВариантов = OPI_ПолучениеДанныхТестов.ПолучитьВариантыПараметровSSH();
-
- Для Каждого ПараметрыТеста Из МассивВариантов Цикл
-
- SFTP_ОткрытьСоединение(ПараметрыТеста);
- SFTP_ПолучитьКонфигурациюСоединения(ПараметрыТеста);
- SFTP_ЭтоКоннектор(ПараметрыТеста);
- SFTP_ЗакрытьСоединение(ПараметрыТеста);
- SFTP_ПолучитьНастройкиЛогинПароль(ПараметрыТеста);
- SFTP_ПолучитьНастройкиПриватныйКлюч(ПараметрыТеста);
- SFTP_ПолучитьНастройкиЧерезАгента(ПараметрыТеста);
- SFTP_ПолучитьНастройкиПрокси(ПараметрыТеста);
-
- КонецЦикла;
-
- OPI_Инструменты.УдалитьФайлВПопытке(МассивВариантов[0]["SSH_Key"], "Ошибка удаления файла после теста");
-
-КонецПроцедуры
-
-Процедура SF_РаботаСДиректориями() Экспорт
-
- МассивВариантов = OPI_ПолучениеДанныхТестов.ПолучитьВариантыПараметровSSH();
-
- Для Каждого ПараметрыТеста Из МассивВариантов Цикл
-
- SFTP_ПолучитьТекущийКаталог(ПараметрыТеста);
- SFTP_ПолучитьСписокОбъектов(ПараметрыТеста);
- SFTP_СоздатьНовуюДиректорию(ПараметрыТеста);
- SFTP_УдалитьДиректорию(ПараметрыТеста);
-
- КонецЦикла;
-
- OPI_Инструменты.УдалитьФайлВПопытке(МассивВариантов[0]["SSH_Key"], "Ошибка удаления файла после теста");
-
-КонецПроцедуры
-
-Процедура SF_РаботаСФайлами() Экспорт
-
- МассивВариантов = OPI_ПолучениеДанныхТестов.ПолучитьВариантыПараметровSSH();
-
- Для Каждого ПараметрыТеста Из МассивВариантов Цикл
-
- SFTP_ЗагрузитьФайл(ПараметрыТеста);
- SFTP_ПолучитьИнформациюОФайле(ПараметрыТеста);
- SFTP_ПолучитьДанныеФайла(ПараметрыТеста);
- SFTP_СохранитьФайл(ПараметрыТеста);
- SFTP_ИзменитьПуть(ПараметрыТеста);
- SFTP_УдалитьФайл(ПараметрыТеста);
-
- КонецЦикла;
-
- OPI_Инструменты.УдалитьФайлВПопытке(МассивВариантов[0]["SSH_Key"], "Ошибка удаления файла после теста");
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область GreenMax
-
-Процедура GMax_Аккаунт() Экспорт
-
- ПараметрыТеста = Новый Структура;
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenMax_ApiURL" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenMax_MediaURL" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenMax_IdInstance" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenMax_Token" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenMax_Phone" , ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenMax_AccountID" , ПараметрыТеста);
- //OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenMax_TestGroupID", ПараметрыТеста);
- OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
-
- GreenMax_СформироватьПараметрыДоступа(ПараметрыТеста);
- //GreenMax_РазлогинитьИнстанс(ПараметрыТеста);
- //GreenMax_ПолучитьКодАвторизации(ПараметрыТеста);
- //GreenMax_ОтправитьКодАвторизации(ПараметрыТеста);
- GreenMax_ПолучитьСостояниеИнстанса(ПараметрыТеста);
- GreenMax_ПолучитьНастройкиИнстанса(ПараметрыТеста);
- GreenMax_УстановитьНастройкиИнстанса(ПараметрыТеста);
- GreenMax_ПолучитьСтруктуруНастроекИнстанса(ПараметрыТеста);
- GreenMax_УстановитьКартинкуПрофиля(ПараметрыТеста);
- GreenMax_ПолучитьИнформациюОбАккаунте(ПараметрыТеста);
- GreenMax_ПерезапуститьИнстанс(ПараметрыТеста);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#КонецОбласти
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-Функция ПолучитьПараметрыВК()
-
- Параметры = Новый Структура;
- НомерГруппы = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("VK_GroupID");
-
- Параметры.Вставить("access_token", OPI_ПолучениеДанныхТестов.ПолучитьПараметр("VK_Token"));
- Параметры.Вставить("owner_id" , "-" + НомерГруппы);
- Параметры.Вставить("app_id" , OPI_ПолучениеДанныхТестов.ПолучитьПараметр("VK_AppID"));
- Параметры.Вставить("group_id" , НомерГруппы);
-
- Возврат Параметры;
-
-КонецФункции
-
-Функция ПолучитьПараметрыАвторизацииТвиттер()
-
- Параметры = Новый Соответствие;
-
- Параметры.Вставить("redirect_uri" , OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Twitter_Redirect"));
- Параметры.Вставить("client_id" , OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Twitter_ClinetID"));
- Параметры.Вставить("client_secret" , OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Twitter_ClientSecret"));
- Параметры.Вставить("access_token" , OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Twitter_Token"));
- Параметры.Вставить("refresh_token" , OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Twitter_Refresh"));
- Параметры.Вставить("oauth_token" , OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Twitter_OAuthToken"));
- Параметры.Вставить("oauth_token_secret", OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Twitter_OAuthSecret"));
-
- Параметры.Вставить("oauth_consumer_key" , OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Twitter_OAuthConsumerKey"));
- Параметры.Вставить("oauth_consumer_secret", OPI_ПолучениеДанныхТестов.ПолучитьПараметр(
- "Twitter_OAuthConsumerSecret"));
-
- Возврат Параметры;
-
-КонецФункции
-
-//@skip-check method-too-many-params
-Процедура Обработать(Знач Результат
- , Знач Библиотека
- , Знач Метод
- , Знач Вариант = ""
- , ДопПараметр1 = Неопределено
- , ДопПараметр2 = Неопределено
- , ДопПараметр3 = Неопределено)
-
- CLITestsMark = 1;
-
- Константы.ЭтоТестыCLI.Установить(CLITestsMark);
-
- OPI_ПолучениеДанныхТестов.ОбработатьРезультатТестирования(Результат
- , Метод
- , Библиотека
- , Вариант
- , ДопПараметр1
- , ДопПараметр2
- , ДопПараметр3);
-
-КонецПроцедуры
-
-#Область АтомарныеТесты
-
-#Область Telegram
-
-Процедура Telegram_ПолучитьИнформациюБота(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Telegram_Token"];
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("telegram", "ПолучитьИнформациюБота", Опции);
-
- // END
-
- Обработать(Результат, "Telegram", "ПолучитьИнформациюБота");
-
-КонецПроцедуры
-
-Процедура Telegram_ПолучитьОбновления(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Telegram_Token"];
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("telegram", "ПолучитьОбновления", Опции);
-
- // END
-
- Обработать(Результат, "Telegram", "ПолучитьОбновления");
-
-КонецПроцедуры
-
-Процедура Telegram_УстановитьWebhook(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Telegram_Token"];
- URL = ПараметрыФункции["Telegram_URL"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("url", URL);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("telegram", "УстановитьWebhook", Опции);
-
- // END
-
- Обработать(Результат, "Telegram", "УстановитьWebhook");
-
-КонецПроцедуры
-
-Процедура Telegram_УдалитьWebhook(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Telegram_Token"];
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("telegram", "УдалитьWebhook", Опции);
-
- // END
-
- Обработать(Результат, "Telegram", "УдалитьWebhook");
-
-КонецПроцедуры
-
-Процедура Telegram_ОтправитьТекстовоеСообщение(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Telegram_Token"];
- IDЧата = ПараметрыФункции["Telegram_ChatID"];
- IDКанала = ПараметрыФункции["Telegram_ChannelID"];
- Текст = ПараметрыФункции["String"];
-
- МассивКнопокКлавиатуры = Новый Массив;
- МассивКнопокКлавиатуры.Добавить("Кнопка1");
- МассивКнопокКлавиатуры.Добавить("Кнопка2");
-
- // С клавиатурой, в чат
- Опции = Новый Структура;
- Опции.Вставить("buttons", МассивКнопокКлавиатуры);
- Опции.Вставить("under", Истина);
-
- Клавиатура = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("telegram", "СформироватьКлавиатуруПоМассивуКнопок", Опции);
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chat", IDЧата);
- Опции.Вставить("text", Текст);
- Опции.Вставить("keyboard", Клавиатура);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("telegram", "ОтправитьТекстовоеСообщение", Опции);
-
- Обработать(Результат, "Telegram", "ОтправитьТекстовоеСообщение", , ПараметрыФункции, Текст); // SKIP
-
- // Простое, в канал
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chat", IDКанала);
- Опции.Вставить("text", Текст);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("telegram", "ОтправитьТекстовоеСообщение", Опции);
-
- // END
-
- Обработать(Результат, "Telegram", "ОтправитьТекстовоеСообщение", "Канал", ПараметрыФункции, Текст);
-
- Текст = "Текст html %F0%9F%93%9E 10%";
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chat", IDКанала);
- Опции.Вставить("text", Текст);
- Опции.Вставить("parsemode", "HTML");
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("telegram", "ОтправитьТекстовоеСообщение", Опции);
-
- Обработать(Результат, "Telegram", "ОтправитьТекстовоеСообщение", "HTML");
-
- Текст = "%F0%9F%A4%BC";
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chat", IDЧата);
- Опции.Вставить("text", Текст);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("telegram", "ОтправитьТекстовоеСообщение", Опции);
-
- Обработать(Результат, "Telegram", "ОтправитьТекстовоеСообщение", "Emoji");
-
- Текст = "Текст %F0%9F%A5%9D и emoji \(10%\)";
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chat", IDКанала);
- Опции.Вставить("text", Текст);
- Опции.Вставить("parsemode", "MarkdownV2");
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("telegram", "ОтправитьТекстовоеСообщение", Опции);
-
- Обработать(Результат, "Telegram", "ОтправитьТекстовоеСообщение", "Текст + Emoji");
-
- Клавиатура = OPI_Инструменты.JsonВСтруктуру(Клавиатура, Ложь);
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chat", IDЧата);
- Опции.Вставить("text", Текст);
- Опции.Вставить("keyboard", Клавиатура);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("telegram", "ОтправитьТекстовоеСообщение", Опции);
-
- Обработать(Результат, "Telegram", "ОтправитьТекстовоеСообщение", "Клавиатура структура");
-
-КонецПроцедуры
-
-Процедура Telegram_СформироватьКлавиатуруПоМассивуКнопок(ПараметрыФункции)
-
- МассивКнопок = Новый Массив;
- МассивКнопок.Добавить("Кнопка1");
- МассивКнопок.Добавить("Кнопка2");
- МассивКнопок.Добавить("Кнопка3");
-
- Опции = Новый Структура;
- Опции.Вставить("buttons", МассивКнопок);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("telegram", "СформироватьКлавиатуруПоМассивуКнопок", Опции);
-
- // END
-
- Обработать(Результат, "Telegram", "СформироватьКлавиатуруПоМассивуКнопок");
-
-КонецПроцедуры
-
-Процедура Telegram_ОтправитьКартинку(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Telegram_Token"];
- IDЧата = ПараметрыФункции["Telegram_ChatID"];
- IDКанала = ПараметрыФункции["Telegram_ChannelID"];
- Текст = ПараметрыФункции["String"];
- Картинка = ПараметрыФункции["Picture"];
-
- КартинкаПуть = ПолучитьИмяВременногоФайла("png");
- КопироватьФайл(Картинка, КартинкаПуть);
-
- КартинкаДД = Новый ДвоичныеДанные(КартинкаПуть);
-
- // В чат, по URL
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chat", IDЧата);
- Опции.Вставить("text", Текст);
- Опции.Вставить("picture", Картинка);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("telegram", "ОтправитьКартинку", Опции);
-
- Обработать(Результат, "Telegram", "ОтправитьКартинку", , ПараметрыФункции, Текст); // SKIP
-
- // В канал, на диске
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chat", IDКанала);
- Опции.Вставить("text", Текст);
- Опции.Вставить("picture", КартинкаПуть);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("telegram", "ОтправитьКартинку", Опции);
-
- Обработать(Результат, "Telegram", "ОтправитьКартинку", "Путь", ПараметрыФункции, Текст); // SKIP
-
- // В канал, из двоичных данных
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chat", IDКанала);
- Опции.Вставить("text", Текст);
- Опции.Вставить("picture", КартинкаДД);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("telegram", "ОтправитьКартинку", Опции);
-
- // END
-
- Обработать(Результат, "Telegram", "ОтправитьКартинку", "Двоичные", ПараметрыФункции, Текст);
-
- МассивКнопок = Новый Массив;
- МассивКнопок.Добавить("Кнопка1");
- МассивКнопок.Добавить("Кнопка2");
- МассивКнопок.Добавить("Кнопка3");
-
- Опции = Новый Структура;
- Опции.Вставить("buttons", МассивКнопок);
- Опции.Вставить("under", Истина);
-
- Клавиатура = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("telegram", "СформироватьКлавиатуруПоМассивуКнопок", Опции);
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chat", IDЧата);
- Опции.Вставить("text", Текст);
- Опции.Вставить("picture", Картинка);
- Опции.Вставить("keyboard", Клавиатура);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("telegram", "ОтправитьКартинку", Опции);
-
- Обработать(Результат, "Telegram", "ОтправитьКартинку", "Клавиатура", ПараметрыФункции, Текст);
-
- Клавиатура = OPI_Инструменты.JsonВСтруктуру(Клавиатура);
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chat", IDКанала);
- Опции.Вставить("text", Текст);
- Опции.Вставить("picture", Картинка);
- Опции.Вставить("keyboard", Клавиатура);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("telegram", "ОтправитьКартинку", Опции);
-
- Обработать(Результат, "Telegram", "ОтправитьКартинку", "Клавиатура коллекция", ПараметрыФункции, Текст);
-
- OPI_Инструменты.УдалитьФайлВПопытке(КартинкаПуть, "Не удалось удалить временный файл после теста!");
-
- OPI_Инструменты.Пауза(5);
-
-КонецПроцедуры
-
-Процедура Telegram_ОтправитьВидео(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Telegram_Token"];
- IDЧата = ПараметрыФункции["Telegram_ChatID"];
- IDКанала = ПараметрыФункции["Telegram_ChannelID"];
- Текст = ПараметрыФункции["String"];
- Видео = ПараметрыФункции["Video"];
-
- ВидеоПуть = ПолучитьИмяВременногоФайла("mp4");
- КопироватьФайл(Видео, ВидеоПуть);
-
- ВидеоДД = Новый ДвоичныеДанные(ВидеоПуть);
-
- // В чат, по URL
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chat", IDЧата);
- Опции.Вставить("text", Текст);
- Опции.Вставить("video", Видео);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("telegram", "ОтправитьВидео", Опции);
-
- Обработать(Результат, "Telegram", "ОтправитьВидео", , ПараметрыФункции, Текст); // SKIP
-
- // В канал, на диске
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chat", IDКанала);
- Опции.Вставить("text", Текст);
- Опции.Вставить("video", ВидеоПуть);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("telegram", "ОтправитьВидео", Опции);
-
- Обработать(Результат, "Telegram", "ОтправитьВидео", "Путь", ПараметрыФункции, Текст); // SKIP
-
- // В канал, из двоичных данных
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chat", IDКанала);
- Опции.Вставить("text", Текст);
- Опции.Вставить("video", ВидеоДД);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("telegram", "ОтправитьВидео", Опции);
-
- // END
-
- OPI_Инструменты.УдалитьФайлВПопытке(ВидеоПуть, "Не удалось удалить временный файл после теста!");
- Обработать(Результат, "Telegram", "ОтправитьВидео", "Двоичные", ПараметрыФункции, Текст);
-
- OPI_Инструменты.Пауза(5);
-
-КонецПроцедуры
-
-Процедура Telegram_ОтправитьАудио(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Telegram_Token"];
- IDЧата = ПараметрыФункции["Telegram_ChatID"];
- IDКанала = ПараметрыФункции["Telegram_ChannelID"];
- Текст = ПараметрыФункции["String"];
- Аудио = ПараметрыФункции["Audio"];
-
- АудиоПуть = ПолучитьИмяВременногоФайла("mp3");
- КопироватьФайл(Аудио, АудиоПуть);
-
- АудиоДД = Новый ДвоичныеДанные(АудиоПуть);
-
- // В чат, по URL
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chat", IDЧата);
- Опции.Вставить("text", Текст);
- Опции.Вставить("audio", Аудио);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("telegram", "ОтправитьАудио", Опции);
-
- Обработать(Результат, "Telegram", "ОтправитьАудио", , ПараметрыФункции, Текст); // SKIP
-
- // В канал, на диске
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chat", IDКанала);
- Опции.Вставить("text", Текст);
- Опции.Вставить("audio", АудиоПуть);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("telegram", "ОтправитьАудио", Опции);
-
- Обработать(Результат, "Telegram", "ОтправитьАудио", "Путь", ПараметрыФункции, Текст); // SKIP
-
- // В канал, из двоичных данных
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chat", IDКанала);
- Опции.Вставить("text", Текст);
- Опции.Вставить("audio", АудиоДД);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("telegram", "ОтправитьАудио", Опции);
-
- // END
-
- OPI_Инструменты.УдалитьФайлВПопытке(АудиоПуть, "Не удалось удалить временный файл после теста!");
- Обработать(Результат, "Telegram", "ОтправитьАудио", "Двоичные", ПараметрыФункции, Текст);
-
- OPI_Инструменты.Пауза(5);
-
-КонецПроцедуры
-
-Процедура Telegram_ОтправитьДокумент(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Telegram_Token"];
- IDЧата = ПараметрыФункции["Telegram_ChatID"];
- IDКанала = ПараметрыФункции["Telegram_ChannelID"];
- Текст = ПараметрыФункции["String"];
- Документ = ПараметрыФункции["Document"];
-
- ДокументПуть = ПолучитьИмяВременногоФайла("docx");
- КопироватьФайл(Документ, ДокументПуть);
-
- ДокументДД = Новый ДвоичныеДанные(ДокументПуть);
-
- // В чат, по URL
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chat", IDЧата);
- Опции.Вставить("text", Текст);
- Опции.Вставить("doc", Документ);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("telegram", "ОтправитьДокумент", Опции);
-
- Обработать(Результат, "Telegram", "ОтправитьДокумент", , ПараметрыФункции, Текст); // SKIP
-
- // В чат, по URL, с указанием имени файла
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chat", IDЧата);
- Опции.Вставить("text", Текст);
- Опции.Вставить("doc", Документ);
- Опции.Вставить("filename", "customname.docx");
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("telegram", "ОтправитьДокумент", Опции);
-
- Обработать(Результат, "Telegram", "ОтправитьДокумент", "С именем", ПараметрыФункции, Текст); // SKIP
-
- // В канал, на диске
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chat", IDКанала);
- Опции.Вставить("text", Текст);
- Опции.Вставить("doc", ДокументПуть);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("telegram", "ОтправитьДокумент", Опции);
-
- Обработать(Результат, "Telegram", "ОтправитьДокумент", "Путь", ПараметрыФункции, Текст); // SKIP
-
- // В канал, из двоичных данных, с указанием имени файла
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chat", IDКанала);
- Опции.Вставить("text", Текст);
- Опции.Вставить("doc", ДокументДД);
- Опции.Вставить("filename", "customname.docx");
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("telegram", "ОтправитьДокумент", Опции);
-
- // END
-
- OPI_Инструменты.УдалитьФайлВПопытке(ДокументПуть, "Не удалось удалить временный файл после теста!");
- Обработать(Результат, "Telegram", "ОтправитьДокумент", "Двоичные", ПараметрыФункции, Текст);
-
- OPI_Инструменты.Пауза(5);
-
-КонецПроцедуры
-
-Процедура Telegram_ОтправитьГифку(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Telegram_Token"];
- IDЧата = ПараметрыФункции["Telegram_ChatID"];
- IDКанала = ПараметрыФункции["Telegram_ChannelID"];
- Текст = ПараметрыФункции["String"];
- Гифка = ПараметрыФункции["GIF"];
-
- ГифкаПуть = ПолучитьИмяВременногоФайла("gif");
- КопироватьФайл(Гифка, ГифкаПуть);
-
- ГифкаДД = Новый ДвоичныеДанные(ГифкаПуть);
-
- // В чат, по URL
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chat", IDЧата);
- Опции.Вставить("text", Текст);
- Опции.Вставить("gif", Гифка);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("telegram", "ОтправитьГифку", Опции);
-
- Обработать(Результат, "Telegram", "ОтправитьГифку", , ПараметрыФункции, Текст); // SKIP
-
- // В канал, на диске
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chat", IDКанала);
- Опции.Вставить("text", Текст);
- Опции.Вставить("gif", ГифкаПуть);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("telegram", "ОтправитьГифку", Опции);
-
- Обработать(Результат, "Telegram", "ОтправитьГифку", "Путь", ПараметрыФункции, Текст); // SKIP
-
- // В канал, из двоичных данных
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chat", IDКанала);
- Опции.Вставить("text", Текст);
- Опции.Вставить("gif", ГифкаДД);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("telegram", "ОтправитьГифку", Опции);
-
- // END
-
- OPI_Инструменты.УдалитьФайлВПопытке(ГифкаПуть, "Не удалось удалить временный файл после теста!");
- Обработать(Результат, "Telegram", "ОтправитьГифку", "Двоичные", ПараметрыФункции, Текст);
-
- OPI_Инструменты.Пауза(5);
-
-КонецПроцедуры
-
-Процедура Telegram_ОтправитьМедиагруппу(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Telegram_Token"];
- IDЧата = ПараметрыФункции["Telegram_ChatID"];
- Текст = ПараметрыФункции["String"];
- Картинка = ПараметрыФункции["Picture"];
- Видео = ПараметрыФункции["Video"];
-
- КартинкаПуть = ПолучитьИмяВременногоФайла("png");
- КопироватьФайл(Картинка, КартинкаПуть);
-
- ВидеоПуть = ПолучитьИмяВременногоФайла("mp4");
- КопироватьФайл(Видео, ВидеоПуть);
-
- ВидеоДД = Новый ДвоичныеДанные(ВидеоПуть);
-
- Медиагруппа = Новый Соответствие;
- Медиагруппа.Вставить(КартинкаПуть, "photo");
- Медиагруппа.Вставить(ВидеоДД , "video");
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chat", IDЧата);
- Опции.Вставить("text", Текст);
- Опции.Вставить("media", Медиагруппа);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("telegram", "ОтправитьМедиагруппу", Опции);
-
- // END
-
- Обработать(Результат, "Telegram", "ОтправитьМедиагруппу");
-
- ДокументURL = ПараметрыФункции["Document"];
- ДокументПуть = ПолучитьИмяВременногоФайла("docx");
- IDКанала = ПараметрыФункции["Telegram_ChannelID"];
-
- КопироватьФайл(ДокументURL, ДокументПуть);
-
- МедиаГруппа = Новый Соответствие;
- Медиагруппа.Вставить(ДокументURL , "document");
- Медиагруппа.Вставить(ДокументПуть, "document");
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chat", IDКанала);
- Опции.Вставить("text", Текст);
- Опции.Вставить("media", Медиагруппа);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("telegram", "ОтправитьМедиагруппу", Опции);
-
- OPI_Инструменты.УдалитьФайлВПопытке(ВидеоПуть , "Не удалось удалить временный файл после теста!");
- OPI_Инструменты.УдалитьФайлВПопытке(КартинкаПуть, "Не удалось удалить временный файл после теста!");
- OPI_Инструменты.УдалитьФайлВПопытке(ДокументПуть, "Не удалось удалить временный файл после теста!");
-
- Обработать(Результат, "Telegram", "ОтправитьМедиагруппу", "Документы");
-
- OPI_Инструменты.Пауза(5);
-
-КонецПроцедуры
-
-Процедура Telegram_ОтправитьМестоположение(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Telegram_Token"];
- IDЧата = ПараметрыФункции["Telegram_ChatID"];
- IDКанала = ПараметрыФункции["Telegram_ChannelID"];
- Ширина = ПараметрыФункции["Lat"];
- Долгота = ПараметрыФункции["Long"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chat", IDЧата);
- Опции.Вставить("lat", Ширина);
- Опции.Вставить("long", Долгота);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("telegram", "ОтправитьМестоположение", Опции);
-
- Обработать(Результат, "Telegram", "ОтправитьМестоположение"); // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chat", IDКанала);
- Опции.Вставить("lat", Ширина);
- Опции.Вставить("long", Долгота);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("telegram", "ОтправитьМестоположение", Опции);
-
- // END
-
- Обработать(Результат, "Telegram", "ОтправитьМестоположение", "Канал");
-
- OPI_Инструменты.Пауза(5);
-
-КонецПроцедуры
-
-Процедура Telegram_ОтправитьКонтакт(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Telegram_Token"];
- IDЧата = ПараметрыФункции["Telegram_ChatID"];
- IDКанала = ПараметрыФункции["Telegram_ChannelID"];
- Имя = ПараметрыФункции["Name"];
- Фамилия = ПараметрыФункции["Surname"];
- Телефон = ПараметрыФункции["Phone"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chat", IDЧата);
- Опции.Вставить("name", Имя);
- Опции.Вставить("surname", Фамилия);
- Опции.Вставить("phone", Телефон);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("telegram", "ОтправитьКонтакт", Опции);
-
- Обработать(Результат, "Telegram", "ОтправитьКонтакт", , Имя); // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chat", IDКанала);
- Опции.Вставить("name", Имя);
- Опции.Вставить("surname", Фамилия);
- Опции.Вставить("phone", Телефон);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("telegram", "ОтправитьКонтакт", Опции);
-
- // END
-
- Обработать(Результат, "Telegram", "ОтправитьКонтакт", "Канал", Имя);
-
-КонецПроцедуры
-
-Процедура Telegram_ОтправитьОпрос(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Telegram_Token"];
- IDЧата = ПараметрыФункции["Telegram_ChatID"];
- IDКанала = ПараметрыФункции["Telegram_ChannelID"];
- Вопрос = "Какой ваш любимый цвет?";
-
- МассивОтветов = Новый Массив;
- МассивОтветов.Добавить("Красный");
- МассивОтветов.Добавить("Желтый");
- МассивОтветов.Добавить("Зеленый");
- МассивОтветов.Добавить("Синий");
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chat", IDЧата);
- Опции.Вставить("question", Вопрос);
- Опции.Вставить("options", МассивОтветов);
- Опции.Вставить("anonymous", Ложь);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("telegram", "ОтправитьОпрос", Опции);
-
- Обработать(Результат, "Telegram", "ОтправитьОпрос", , Вопрос); // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chat", IDКанала);
- Опции.Вставить("question", Вопрос);
- Опции.Вставить("options", МассивОтветов);
- Опции.Вставить("anonymous", Истина);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("telegram", "ОтправитьОпрос", Опции);
-
- Обработать(Результат, "Telegram", "ОтправитьОпрос", "Канал", Вопрос); // SKIP
-
- // END
-
- СтрочныйМассив = "['Красный', 'Желтый','Зеленый' ,'Синий']";
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chat", IDКанала);
- Опции.Вставить("question", Вопрос);
- Опции.Вставить("options", СтрочныйМассив);
- Опции.Вставить("anonymous", Истина);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("telegram", "ОтправитьОпрос", Опции);
-
- Обработать(Результат, "Telegram", "ОтправитьОпрос", "Вопросы строкой", Вопрос);
-
- OPI_Инструменты.Пауза(5);
-
-КонецПроцедуры
-
-Процедура Telegram_СкачатьФайл(ПараметрыФункции)
-
- IDФайла = ПараметрыФункции["Telegram_FileID"];
- Токен = ПараметрыФункции["Telegram_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("fileid", IDФайла);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("telegram", "СкачатьФайл", Опции);
-
- // END
-
- Обработать(Результат, "Telegram", "СкачатьФайл");
-
-КонецПроцедуры
-
-Процедура Telegram_ПереслатьСообщение(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Telegram_Token"];
- IDЧата = ПараметрыФункции["Telegram_ChatID"];
- IDКанала = ПараметрыФункции["Telegram_ChannelID"];
- IDСообщения = ПараметрыФункции["Telegram_ChannelMessageID"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("message", IDСообщения);
- Опции.Вставить("from", IDКанала);
- Опции.Вставить("to", IDЧата);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("telegram", "ПереслатьСообщение", Опции);
-
- // END
-
- Обработать(Результат, "Telegram", "ПереслатьСообщение", , IDСообщения);
-
-КонецПроцедуры
-
-Процедура Telegram_Бан(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Telegram_Token"];
- IDПользователя = ПараметрыФункции["Telegram_ChatID"];
- IDКанала = ПараметрыФункции["Telegram_ChannelID"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chat", IDКанала);
- Опции.Вставить("user", IDПользователя);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("telegram", "Бан", Опции);
-
- // END
-
- Обработать(Результат, "Telegram", "Бан");
-
-КонецПроцедуры
-
-Процедура Telegram_Разбан(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Telegram_Token"];
- IDПользователя = ПараметрыФункции["Telegram_ChatID"];
- IDКанала = ПараметрыФункции["Telegram_ChannelID"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chat", IDКанала);
- Опции.Вставить("user", IDПользователя);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("telegram", "Разбан", Опции);
-
- // END
-
- Обработать(Результат, "Telegram", "Разбан");
-
-КонецПроцедуры
-
-Процедура Telegram_СоздатьСсылкуПриглашение(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Telegram_Token"];
- IDКанала = ПараметрыФункции["Telegram_ChannelID"];
- Сутки = 86400;
- ТекущаяДата = OPI_Инструменты.ПолучитьТекущуюДату();
-
- Заголовок = "Ссылка " + Строка(ТекущаяДата);
- Истечение = ТекущаяДата + Сутки;
- UnixИстечение = OPI_Инструменты.UNIXTime(Истечение);
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chat", IDКанала);
- Опции.Вставить("title", Заголовок);
- Опции.Вставить("expire", Истечение);
- Опции.Вставить("limit", 200);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("telegram", "СоздатьСсылкуПриглашение", Опции);
-
- // END
-
- Обработать(Результат, "Telegram", "СоздатьСсылкуПриглашение", , Заголовок, UnixИстечение);
-
-КонецПроцедуры
-
-Процедура Telegram_ЗакрепитьСообщение(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Telegram_Token"];
- IDКанала = ПараметрыФункции["Telegram_ChannelID"];
- IDСообщения = ПараметрыФункции["Telegram_ChannelMessageID"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chat", IDКанала);
- Опции.Вставить("message", IDСообщения);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("telegram", "ЗакрепитьСообщение", Опции);
-
- // END
-
- Обработать(Результат, "Telegram", "ЗакрепитьСообщение");
-
-КонецПроцедуры
-
-Процедура Telegram_ОткрепитьСообщение(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Telegram_Token"];
- IDКанала = ПараметрыФункции["Telegram_ChannelID"];
- IDСообщения = ПараметрыФункции["Telegram_ChannelMessageID"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chat", IDКанала);
- Опции.Вставить("message", IDСообщения);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("telegram", "ОткрепитьСообщение", Опции);
-
- // END
-
- Обработать(Результат, "Telegram", "ОткрепитьСообщение");
-
-КонецПроцедуры
-
-Процедура Telegram_ПолучитьЧислоУчастников(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Telegram_Token"];
- IDКанала = ПараметрыФункции["Telegram_ChannelID"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chat", IDКанала);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("telegram", "ПолучитьЧислоУчастников", Опции);
-
- // END
-
- Обработать(Результат, "Telegram", "ПолучитьЧислоУчастников");
-
-КонецПроцедуры
-
-Процедура Telegram_ПолучитьСписокИконокАватаров(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Telegram_Token"];
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("telegram", "ПолучитьСписокИконокАватаров", Опции);
-
- // END
-
- Обработать(Результат, "Telegram", "ПолучитьСписокИконокАватаров");
-
-КонецПроцедуры
-
-Процедура Telegram_СоздатьТемуФорума(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Telegram_Token"];
- Чат = ПараметрыФункции["Telegram_ForumID"];
- Иконка = "5357419403325481346";
- Имя = "Тестовая тема " + Строка(Новый УникальныйИдентификатор);
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("forum", Чат);
- Опции.Вставить("title", Имя);
- Опции.Вставить("icon", Иконка);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("telegram", "СоздатьТемуФорума", Опции);
-
- // END
-
- Обработать(Результат, "Telegram", "СоздатьТемуФорума", , ПараметрыФункции, Имя, Иконка);
-
- ЧатТема = Чат + "*" + ПараметрыФункции["Telegram_TopicID"];
- Текст = ПараметрыФункции["String"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chat", ЧатТема);
- Опции.Вставить("text", Текст);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("telegram", "ОтправитьТекстовоеСообщение", Опции);
-
- Обработать(Результат, "Telegram", "СоздатьТемуФорума", "Сообщение", ПараметрыФункции, Текст);
-
-КонецПроцедуры
-
-Процедура Telegram_ИзменитьТемуФорума(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Telegram_Token"];
- Чат = ПараметрыФункции["Telegram_ForumID"];
- Тема = ПараметрыФункции["Telegram_TopicID"];
- НовоеИмя = "Новый тестовый заголовок";
- НовяИконка = "5310132165583840589";
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("forum", Чат);
- Опции.Вставить("topic", Тема);
- Опции.Вставить("title", НовоеИмя);
- Опции.Вставить("icon", НовяИконка);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("telegram", "ИзменитьТемуФорума", Опции);
-
- // END
-
- Обработать(Результат, "Telegram", "ИзменитьТемуФорума");
-
-КонецПроцедуры
-
-Процедура Telegram_ЗакрытьТемуФорума(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Telegram_Token"];
- Чат = ПараметрыФункции["Telegram_ForumID"];
- Тема = ПараметрыФункции["Telegram_TopicID"];
-
- OPI_Telegram.ОткрытьТемуФорума(Токен, Чат); // SKIP
-
- Результат = OPI_Telegram.ЗакрытьТемуФорума(Токен, Чат); // Закрывает главную тему
-
- Обработать(Результат, "Telegram", "ЗакрытьТемуФорума", "Главная"); // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("forum", Чат);
- Опции.Вставить("topic", Тема);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("telegram", "ЗакрытьТемуФорума", Опции);
-
- // END
-
- Обработать(Результат, "Telegram", "ЗакрытьТемуФорума");
-
-КонецПроцедуры
-
-Процедура Telegram_ОткрытьТемуФорума(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Telegram_Token"];
- Чат = ПараметрыФункции["Telegram_ForumID"];
- Тема = ПараметрыФункции["Telegram_TopicID"];
-
- Результат = OPI_Telegram.ОткрытьТемуФорума(Токен, Чат); // Открывает главную тему
-
- Обработать(Результат, "Telegram", "ОткрытьТемуФорума", "Главная"); // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("forum", Чат);
- Опции.Вставить("topic", Тема);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("telegram", "ОткрытьТемуФорума", Опции);
-
- // END
-
- Обработать(Результат, "Telegram", "ОткрытьТемуФорума");
-
-КонецПроцедуры
-
-Процедура Telegram_УдалитьТемуФорума(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Telegram_Token"];
- Чат = ПараметрыФункции["Telegram_ForumID"];
- Тема = ПараметрыФункции["Telegram_TopicID"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("forum", Чат);
- Опции.Вставить("topic", Тема);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("telegram", "УдалитьТемуФорума", Опции);
-
- // END
-
- Обработать(Результат, "Telegram", "УдалитьТемуФорума");
-
-КонецПроцедуры
-
-Процедура Telegram_ОчиститьСписокЗакрепленныхСообщенийТемы(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Telegram_Token"];
- Чат = ПараметрыФункции["Telegram_ForumID"];
- Тема = ПараметрыФункции["Telegram_TopicID"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("forum", Чат);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("telegram", "ОчиститьСписокЗакрепленныхСообщенийТемы", Опции);
-
- Обработать(Результат, "Telegram", "ОчиститьСписокЗакрепленныхСообщенийТемы", "Главная"); // SKIP
-
- // END
-
- Обработать(Результат, "Telegram", "ОчиститьСписокЗакрепленныхСообщенийТемы");
-
-КонецПроцедуры
-
-Процедура Telegram_СкрытьГлавнуюТемуФорума(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Telegram_Token"];
- Чат = ПараметрыФункции["Telegram_ForumID"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("forum", Чат);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("telegram", "СкрытьГлавнуюТемуФорума", Опции);
-
- // END
-
- Обработать(Результат, "Telegram", "СкрытьГлавнуюТемуФорума");
-
-КонецПроцедуры
-
-Процедура Telegram_ПоказатьГлавнуюТемуФорума(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Telegram_Token"];
- Чат = ПараметрыФункции["Telegram_ForumID"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("forum", Чат);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("telegram", "ПоказатьГлавнуюТемуФорума", Опции);
-
- // END
-
- Обработать(Результат, "Telegram", "ПоказатьГлавнуюТемуФорума");
-
-КонецПроцедуры
-
-Процедура Telegram_ИзменитьИмяГлавнойТемыФорума(ПараметрыФункции)
-
- Заголовок = "Новое имя главной темы " + Строка(Новый УникальныйИдентификатор);
- Токен = ПараметрыФункции["Telegram_Token"];
- Чат = ПараметрыФункции["Telegram_ForumID"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("forum", Чат);
- Опции.Вставить("title", Заголовок);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("telegram", "ИзменитьИмяГлавнойТемыФорума", Опции);
-
- // END
-
- Обработать(Результат, "Telegram", "ИзменитьИмяГлавнойТемыФорума");
-
-КонецПроцедуры
-
-Процедура Telegram_УдалитьСообщение(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Telegram_Token"];
- IDЧата = ПараметрыФункции["Telegram_ChannelID"];
- IDСообщения = ПараметрыФункции["Telegram_ChannelMessageID"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chat", IDЧата);
- Опции.Вставить("message", IDСообщения);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("telegram", "УдалитьСообщение", Опции);
-
- // END
-
- Обработать(Результат, "Telegram", "УдалитьСообщение");
-
-КонецПроцедуры
-
-Процедура Telegram_ЗаменитьТекстСообщения(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Telegram_Token"];
- IDЧата = ПараметрыФункции["Telegram_ChannelID"];
- IDСообщения = ПараметрыФункции["Telegram_ChannelMessageID"];
- Текст = "Новый текст сообщения";
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chat", IDЧата);
- Опции.Вставить("message", IDСообщения);
- Опции.Вставить("text", Текст);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("telegram", "ЗаменитьТекстСообщения", Опции);
-
- // END
-
- Обработать(Результат, "Telegram", "ЗаменитьТекстСообщения", , Текст);
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chat", IDЧата);
- Опции.Вставить("message", IDСообщения);
- Опции.Вставить("text", "Полужирный текст");
- Опции.Вставить("parsemode", "HTML");
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("telegram", "ЗаменитьТекстСообщения", Опции);
-
- Обработать(Результат, "Telegram", "ЗаменитьТекстСообщения", "Разметка", "Полужирный текст");
-
-КонецПроцедуры
-
-Процедура Telegram_ЗаменитьКлавиатуруСообщения(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Telegram_Token"];
- IDЧата = ПараметрыФункции["Telegram_ChatID"];
- IDСообщения = ПараметрыФункции["Telegram_MessageID"];
-
- МассивКнопок = Новый Массив;
- МассивКнопок.Добавить("Новая кнопка 1");
- МассивКнопок.Добавить("Новая кнопка 2");
- МассивКнопок.Добавить("Новая кнопка 3");
-
- Опции = Новый Структура;
- Опции.Вставить("buttons", МассивКнопок);
- Опции.Вставить("under", Истина);
- Опции.Вставить("column", Ложь);
-
- Клавиатура = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("telegram", "СформироватьКлавиатуруПоМассивуКнопок", Опции);
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chat", IDЧата);
- Опции.Вставить("message", IDСообщения);
- Опции.Вставить("keyboard", Клавиатура);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("telegram", "ЗаменитьКлавиатуруСообщения", Опции);
-
- // END
-
- Обработать(Результат, "Telegram", "ЗаменитьКлавиатуруСообщения", , Клавиатура);
-
-КонецПроцедуры
-
-Процедура Telegram_ЗаменитьОписаниеСообщения(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Telegram_Token"];
- IDЧата = ПараметрыФункции["Telegram_ChatID"];
- IDСообщения = ПараметрыФункции["Telegram_PicMessageID"];
-
- Описание = "Новое описание картинки";
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chat", IDЧата);
- Опции.Вставить("message", IDСообщения);
- Опции.Вставить("caption", Описание);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("telegram", "ЗаменитьОписаниеСообщения", Опции);
-
- // END
-
- Обработать(Результат, "Telegram", "ЗаменитьОписаниеСообщения", , Описание);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область VK
-
-Процедура VK_СоздатьСсылкуПолученияТокена(ПараметрыФункции)
-
- Приложение = ПараметрыФункции["VK_AppID"];
- Опции = Новый Структура;
- Опции.Вставить("app", Приложение);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vk", "СоздатьСсылкуПолученияТокена", Опции);
-
- // END
-
- Обработать(Результат, "VK", "СоздатьСсылкуПолученияТокена");
-
-КонецПроцедуры
-
-Процедура VK_СоздатьПост(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
- Текст = "Пост из автотеста";
- URL = "https://github.com/Bayselonarrend/OpenIntegrations";
-
- Картинка = ПараметрыФункции["Picture"]; // URL, Путь или Двоичные данные
- Картинка2 = ПараметрыФункции["Picture2"]; // URL, Путь или Двоичные данные
-
- ИВФ = ПолучитьИмяВременногоФайла("png");
- КопироватьФайл(Картинка2, ИВФ);
-
- МассивКартинок = Новый Массив;
- МассивКартинок.Добавить(Картинка);
- МассивКартинок.Добавить(ИВФ);
-
- Опции = Новый Структура;
- Опции.Вставить("text", Текст);
- Опции.Вставить("pictures", МассивКартинок);
- Опции.Вставить("ad", Истина);
- Опции.Вставить("url", URL);
- Опции.Вставить("auth", Параметры);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vk", "СоздатьПост", Опции);
-
- Обработать(Результат, "VK", "СоздатьПост", , Параметры); // SKIP
-
- ИДПоста = Результат["response"]["post_id"]; // SKIP
- OPI_VK.УдалитьПост(ИДПоста, Параметры); // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("text", Текст);
- Опции.Вставить("pictures", Картинка);
- Опции.Вставить("ad", Ложь);
- Опции.Вставить("auth", Параметры);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vk", "СоздатьПост", Опции);
-
- // END
-
- Обработать(Результат, "VK", "СоздатьПост", "Картинка", Параметры);
-
- ИДПоста = Результат["response"]["post_id"];
- OPI_VK.УдалитьПост(ИДПоста, Параметры);
-
- Опции = Новый Структура;
- Опции.Вставить("text", Текст);
- Опции.Вставить("pictures", ИВФ);
- Опции.Вставить("ad", Истина);
- Опции.Вставить("url", URL);
- Опции.Вставить("auth", Параметры);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vk", "СоздатьПост", Опции);
-
- Обработать(Результат, "VK", "СоздатьПост", "Путь", ПараметрыФункции);
-
- OPI_Инструменты.УдалитьФайлВПопытке(ИВФ, "Не удалось удалить временный файл после теста!");
-
-КонецПроцедуры
-
-Процедура VK_УдалитьПост(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
- ИДПоста = ПараметрыФункции["VK_PostID"];
-
- Опции = Новый Структура;
- Опции.Вставить("post", ИДПоста);
- Опции.Вставить("auth", Параметры);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vk", "УдалитьПост", Опции);
-
- // END
-
- Обработать(Результат, "VK", "УдалитьПост");
-
-КонецПроцедуры
-
-Процедура VK_СоздатьСоставнойПост(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
- Текст = "Пост из автотеста";
- URL = "https://github.com/Bayselonarrend/OpenIntegrations";
-
- Картинка = ПараметрыФункции["Picture"]; // URL, Путь или Двоичные данные
- Видео = ПараметрыФункции["Video"]; // URL, Путь или Двоичные данные
-
- ИВФ = ПолучитьИмяВременногоФайла("png");
- КопироватьФайл(Картинка, ИВФ);
-
- ЗагрузкаКартинки = OPI_VK.ЗагрузитьФотоНаСервер(ИВФ, Параметры)["response"][0];
- Опции = Новый Структура;
- Опции.Вставить("file", Видео);
- Опции.Вставить("title", "Новое видео");
- Опции.Вставить("auth", Параметры);
-
- ЗагрузкаВидео = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vk", "ЗагрузитьВидеоНаСервер", Опции);
-
- ВладелецКартинки = OPI_Инструменты.ЧислоВСтроку(ЗагрузкаКартинки["owner_id"]);
- ВладелецВидео = OPI_Инструменты.ЧислоВСтроку(ЗагрузкаВидео["owner_id"]);
-
- IDКартинки = OPI_Инструменты.ЧислоВСтроку(ЗагрузкаКартинки["id"]);
- IDВидео = OPI_Инструменты.ЧислоВСтроку(ЗагрузкаВидео["video_id"]);
-
- МассивВложений = Новый Массив;
- МассивВложений.Добавить("photo" + ВладелецКартинки + "_" + IDКартинки);
- МассивВложений.Добавить("video" + ВладелецВидео + "_" + IDВидео);
-
- Опции = Новый Структура;
- Опции.Вставить("text", Текст);
- Опции.Вставить("objects", МассивВложений);
- Опции.Вставить("ad", Ложь);
- Опции.Вставить("url", URL);
- Опции.Вставить("auth", Параметры);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vk", "СоздатьСоставнойПост", Опции);
-
- // END
-
- Обработать(Результат, "VK", "СоздатьСоставнойПост");
- OPI_Инструменты.УдалитьФайлВПопытке(ИВФ, "Не удалось удалить временный файл после теста!");
-
-КонецПроцедуры
-
-Процедура VK_СоздатьОпрос(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
- Вопрос = "Какой ваш любимый цвет?";
-
- МассивВариантов = Новый Массив;
- МассивВариантов.Добавить("Красный");
- МассивВариантов.Добавить("Желтый");
- МассивВариантов.Добавить("Зеленый");
-
- Опции = Новый Структура;
- Опции.Вставить("question", Вопрос);
- Опции.Вставить("options", МассивВариантов);
- Опции.Вставить("text", "Текст поста");
- Опции.Вставить("auth", Параметры);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vk", "СоздатьОпрос", Опции);
-
- Обработать(Результат, "VK", "СоздатьОпрос", "Текст"); // SKIP
-
- // С картинкой
-
- Картинка = ПараметрыФункции["Picture"]; // URL, Путь к файлу или Двоичные данные
-
- Опции = Новый Структура;
- Опции.Вставить("question", Вопрос);
- Опции.Вставить("options", МассивВариантов);
- Опции.Вставить("picture", Картинка);
- Опции.Вставить("auth", Параметры);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vk", "СоздатьОпрос", Опции);
-
- // END
-
- Обработать(Результат, "VK", "СоздатьОпрос");
-
- ИДПоста = Результат["response"]["post_id"];
- OPI_VK.УдалитьПост(ИДПоста, Параметры);
-
- OPI_Инструменты.Пауза(5);
-
-КонецПроцедуры
-
-Процедура VK_СоздатьАльбом(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
- Имя = "Альбом из автотеста";
- Описание = "Новый альбом из автотеста";
-
- Опции = Новый Структура;
- Опции.Вставить("title", Имя);
- Опции.Вставить("description", Описание);
- Опции.Вставить("auth", Параметры);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vk", "СоздатьАльбом", Опции);
-
- // END
-
- Обработать(Результат, "VK", "СоздатьАльбом", , ПараметрыФункции, Описание);
-
-КонецПроцедуры
-
-Процедура VK_СохранитьКартинкуВАльбом(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
- ОписаниеКартинки = "Картинка автотест";
- ИДАльбома = ПараметрыФункции["VK_AlbumID"];
-
- Картинка = ПараметрыФункции["Picture"]; // URL, Путь к файлу или Двоичные данные
-
- Опции = Новый Структура;
- Опции.Вставить("album", ИДАльбома);
- Опции.Вставить("picture", Картинка);
- Опции.Вставить("description", ОписаниеКартинки);
- Опции.Вставить("auth", Параметры);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vk", "СохранитьКартинкуВАльбом", Опции);
-
- // END
-
- Обработать(Результат, "VK", "СохранитьКартинкуВАльбом", , ПараметрыФункции, ОписаниеКартинки, ИДАльбома);
-
-КонецПроцедуры
-
-Процедура VK_УдалитьКартинку(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
- ИДКартинки = ПараметрыФункции["VK_PictureID"];
-
- Опции = Новый Структура;
- Опции.Вставить("pictureid", ИДКартинки);
- Опции.Вставить("auth", Параметры);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vk", "УдалитьКартинку", Опции);
-
- // END
-
- Обработать(Результат, "VK", "УдалитьКартинку");
-
-КонецПроцедуры
-
-Процедура VK_УдалитьАльбом(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
- ИДАльбома = ПараметрыФункции["VK_AlbumID"];
-
- Опции = Новый Структура;
- Опции.Вставить("album", ИДАльбома);
- Опции.Вставить("auth", Параметры);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vk", "УдалитьАльбом", Опции);
-
- // END
-
- Обработать(Результат, "VK", "УдалитьАльбом");
-
-КонецПроцедуры
-
-Процедура VK_СоздатьИсторию(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
- URL = "https://github.com/Bayselonarrend/OpenIntegrations";
-
- Картинка = ПараметрыФункции["Picture"]; // URL, Путь к файлу или Двоичные данные
- ИВФ = ПолучитьИмяВременногоФайла("png");
- КопироватьФайл(Картинка, ИВФ);
- Картинка = Новый ДвоичныеДанные(ИВФ);
-
- Опции = Новый Структура;
- Опции.Вставить("picture", Картинка);
- Опции.Вставить("url", URL);
- Опции.Вставить("auth", Параметры);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vk", "СоздатьИсторию", Опции);
-
- Обработать(Результат, "VK", "СоздатьИсторию"); // SKIP
-
- // END
-
- Опции = Новый Структура;
- Опции.Вставить("picture", ИВФ);
- Опции.Вставить("auth", Параметры);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vk", "СоздатьИсторию", Опции);
-
- Обработать(Результат, "VK", "СоздатьИсторию", "Путь");
-
- OPI_Инструменты.УдалитьФайлВПопытке(ИВФ, "Не удалось удалить временный файл после теста!");
-
-КонецПроцедуры
-
-Процедура VK_СоздатьОбсуждение(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
- Название = "Обсуждаем: какой цвет лучше?";
- Сообщение = "Красный, желтый, синий или какой-то другой?";
-
- Опции = Новый Структура;
- Опции.Вставить("title", Название);
- Опции.Вставить("text", Сообщение);
- Опции.Вставить("auth", Параметры);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vk", "СоздатьОбсуждение", Опции);
-
- // END
-
- Обработать(Результат, "VK", "СоздатьОбсуждение", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура VK_ЗакрытьОбсуждение(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
- ИДОбсуждения = ПараметрыФункции["VK_ConvID"];
- Опции = Новый Структура;
- Опции.Вставить("topic", ИДОбсуждения);
- Опции.Вставить("remove", Ложь);
- Опции.Вставить("auth", Параметры);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vk", "ЗакрытьОбсуждение", Опции);
-
- // END
-
- Обработать(Результат, "VK", "ЗакрытьОбсуждение");
-
-КонецПроцедуры
-
-Процедура VK_ОткрытьОбсуждение(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
- ИДОбсуждения = ПараметрыФункции["VK_ConvID"];
- Опции = Новый Структура;
- Опции.Вставить("topic", ИДОбсуждения);
- Опции.Вставить("auth", Параметры);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vk", "ОткрытьОбсуждение", Опции);
-
- // END
-
- Обработать(Результат, "VK", "ОткрытьОбсуждение");
-
-КонецПроцедуры
-
-Процедура VK_НаписатьВОбсуждение(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
- ИДОбсуждения = ПараметрыФункции["VK_ConvID"];
- Сообщение = "Мне больше нравится желтый";
-
- Опции = Новый Структура;
- Опции.Вставить("topic", ИДОбсуждения);
- Опции.Вставить("text", Сообщение);
- Опции.Вставить("auth", Параметры);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vk", "НаписатьВОбсуждение", Опции);
-
- // END
-
- Обработать(Результат, "VK", "НаписатьВОбсуждение");
-
-КонецПроцедуры
-
-Процедура VK_ПоставитьЛайк(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
- IDПоста = ПараметрыФункции["VK_PostID"];
-
- Опции = Новый Структура;
- Опции.Вставить("post", IDПоста);
- Опции.Вставить("auth", Параметры);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vk", "ПоставитьЛайк", Опции);
-
- // END
-
- Обработать(Результат, "VK", "ПоставитьЛайк");
-
-КонецПроцедуры
-
-Процедура VK_СделатьРепост(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
- IDПоста = 2571;
- IDСтены = -218704372;
-
- Опции = Новый Структура;
- Опции.Вставить("post", IDПоста);
- Опции.Вставить("from", IDСтены);
- Опции.Вставить("auth", Параметры);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vk", "СделатьРепост", Опции);
-
- // END
-
- Обработать(Результат, "VK", "СделатьРепост", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура VK_НаписатьКомментарий(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
- Текст = "Новый комментарий";
- IDПоста = ПараметрыФункции["VK_PostID"];
- IDСтены = Параметры["owner_id"];
-
- Опции = Новый Структура;
- Опции.Вставить("post", IDПоста);
- Опции.Вставить("wall", IDСтены);
- Опции.Вставить("text", Текст);
- Опции.Вставить("auth", Параметры);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vk", "НаписатьКомментарий", Опции);
-
- // END
-
- Обработать(Результат, "VK", "НаписатьКомментарий");
-
-КонецПроцедуры
-
-Процедура VK_ПолучитьСтатистику(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
-
- ТекущаяДата = OPI_Инструменты.ПолучитьТекущуюДату();
- ДатаНачала = НачалоДня(ТекущаяДата);
- ДатаОкончания = КонецДня(ДатаНачала);
-
- Опции = Новый Структура;
- Опции.Вставить("datefrom", ДатаНачала);
- Опции.Вставить("dateto", ДатаОкончания);
- Опции.Вставить("auth", Параметры);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vk", "ПолучитьСтатистику", Опции);
-
- // END
-
- Обработать(Результат, "VK", "ПолучитьСтатистику");
-
-КонецПроцедуры
-
-Процедура VK_ПолучитьСтатистикуПостов(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
-
- МассивПостов = Новый Массив;
- МассивПостов.Добавить(214);
- МассивПостов.Добавить(215);
-
- Опции = Новый Структура;
- Опции.Вставить("posts", МассивПостов);
- Опции.Вставить("auth", Параметры);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vk", "ПолучитьСтатистикуПостов", Опции);
-
- // END
-
- Обработать(Результат, "VK", "ПолучитьСтатистикуПостов");
-
-КонецПроцедуры
-
-Процедура VK_СоздатьРекламнуюКампанию(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
-
- IDКабинета = ПараметрыФункции["VK_AdsCabinetID"];
- Наименование = "Новая кампания";
-
- Опции = Новый Структура;
- Опции.Вставить("cabinet", IDКабинета);
- Опции.Вставить("title", Наименование);
- Опции.Вставить("auth", Параметры);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vk", "СоздатьРекламнуюКампанию", Опции);
-
- // END
-
- Обработать(Результат, "VK", "СоздатьРекламнуюКампанию", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура VK_СоздатьРекламноеОбъявление(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
-
- НомерКампании = ПараметрыФункции["VK_AdsCampaignID"];
- ДневнойЛимит = 150;
- НомерКатегории = 126;
- IDПоста = ПараметрыФункции["VK_PostID"];
- IDКабинета = ПараметрыФункции["VK_AdsCabinetID"];
-
- Опции = Новый Структура;
- Опции.Вставить("campaign", НомерКампании);
- Опции.Вставить("limit", ДневнойЛимит);
- Опции.Вставить("category", НомерКатегории);
- Опции.Вставить("post", IDПоста);
- Опции.Вставить("cabinet", IDКабинета);
- Опции.Вставить("auth", Параметры);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vk", "СоздатьРекламноеОбъявление", Опции);
-
- // END
-
- Обработать(Результат, "VK", "СоздатьРекламноеОбъявление", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура VK_ПриостановитьРекламноеОбъявление(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
-
- IDКабинета = ПараметрыФункции["VK_AdsCabinetID"];
- IDОбъявления = ПараметрыФункции["VK_AdsPostID"];
-
- Опции = Новый Структура;
- Опции.Вставить("cabinet", IDКабинета);
- Опции.Вставить("adv", IDОбъявления);
- Опции.Вставить("auth", Параметры);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vk", "ПриостановитьРекламноеОбъявление", Опции);
-
- // END
-
- Обработать(Результат, "VK", "ПриостановитьРекламноеОбъявление");
-
-КонецПроцедуры
-
-Процедура VK_СформироватьКлавиатуру(ПараметрыФункции)
-
- МассивКнопок = Новый Массив;
- МассивКнопок.Добавить("Button 1");
- МассивКнопок.Добавить("Button 2");
-
- Опции = Новый Структура;
- Опции.Вставить("buttons", МассивКнопок);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vk", "СформироватьКлавиатуру", Опции);
-
- // END
-
- Обработать(Результат, "VK", "СформироватьКлавиатуру");
-
-КонецПроцедуры
-
-Процедура VK_НаписатьСообщение(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
-
- Текст = "Сообщение из автотеста";
- IDПользователя = ПараметрыФункции["VK_UserID"];
- Communitytoken = ПараметрыФункции["VK_CommunityToken"];
-
- МассивКнопок = Новый Массив;
- МассивКнопок.Добавить("Button 1");
- МассивКнопок.Добавить("Button 2");
-
- Опции = Новый Структура;
- Опции.Вставить("buttons", МассивКнопок);
-
- Клавиатура = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vk", "СформироватьКлавиатуру", Опции);
- Опции = Новый Структура;
- Опции.Вставить("text", Текст);
- Опции.Вставить("user", IDПользователя);
- Опции.Вставить("ct", Communitytoken);
- Опции.Вставить("keyboard", Клавиатура);
- Опции.Вставить("auth", Параметры);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vk", "НаписатьСообщение", Опции);
-
- // END
-
- Обработать(Результат, "VK", "НаписатьСообщение");
-
-КонецПроцедуры
-
-Процедура VK_ПолучитьСписокКатегорийТоваров(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
-
- Опции = Новый Структура;
- Опции.Вставить("auth", Параметры);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vk", "ПолучитьСписокКатегорийТоваров", Опции);
-
- // END
-
- Обработать(Результат, "VK", "ПолучитьСписокКатегорийТоваров");
-
-КонецПроцедуры
-
-Процедура VK_СоздатьПодборкуТоваров(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
-
- Название = "Тестовая подборка";
- Картинка = ПараметрыФункции["Picture"];
- Основная = Истина;
- Скрытая = Ложь;
-
- Опции = Новый Структура;
- Опции.Вставить("title", Название);
- Опции.Вставить("picture", Картинка);
- Опции.Вставить("main", Основная);
- Опции.Вставить("hidden", Скрытая);
- Опции.Вставить("auth", Параметры);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vk", "СоздатьПодборкуТоваров", Опции);
-
- // END
-
- Обработать(Результат, "VK", "СоздатьПодборкуТоваров", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура VK_ИзменитьПодборкуТоваров(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
-
- Название = "Измененная подборка";
- Подборка = ПараметрыФункции["VK_MarketAlbumID"];
-
- Опции = Новый Структура;
- Опции.Вставить("title", Название);
- Опции.Вставить("sel", Подборка);
- Опции.Вставить("auth", Параметры);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vk", "ИзменитьПодборкуТоваров", Опции);
-
- // END
-
- Обработать(Результат, "VK", "ИзменитьПодборкуТоваров");
-
-КонецПроцедуры
-
-Процедура VK_ПолучитьПодборкиПоИД(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
- Подборка = ПараметрыФункции["VK_MarketAlbumID"];
-
- Опции = Новый Структура;
- Опции.Вставить("sels", Подборка);
- Опции.Вставить("auth", Параметры);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vk", "ПолучитьПодборкиПоИД", Опции);
-
- // END
-
- Обработать(Результат, "VK", "ПолучитьПодборкиПоИД");
-
-КонецПроцедуры
-
-Процедура VK_ДобавитьТовар(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
-
- Картинка1 = ПараметрыФункции["Picture"]; // URL, Двоичные или Путь к файлу
- Картинка2 = ПараметрыФункции["Picture2"]; // URL, Двоичные или Путь к файлу
- Подборка = ПараметрыФункции["VK_MarketAlbumID"];
-
- МассивКартинок = Новый Массив;
- МассивКартинок.Добавить(Картинка1);
- МассивКартинок.Добавить(Картинка2);
-
- ОписаниеТовара = Новый Соответствие;
- ОписаниеТовара.Вставить("Имя" , "Тестовый товар");
- ОписаниеТовара.Вставить("Описание" , "Описание товара");
- ОписаниеТовара.Вставить("Категория" , "20173");
- ОписаниеТовара.Вставить("Цена" , 1);
- ОписаниеТовара.Вставить("СтараяЦена" , 15);
- ОписаниеТовара.Вставить("ОсновноеФото" , Картинка1);
- ОписаниеТовара.Вставить("URL" , "https://github.com/Bayselonarrend/OpenIntegrations");
- ОписаниеТовара.Вставить("ДополнительныеФото", МассивКартинок);
- ОписаниеТовара.Вставить("ГлавныйВГруппе" , Истина);
- ОписаниеТовара.Вставить("Ширина" , 20);
- ОписаниеТовара.Вставить("Высота" , 30);
- ОписаниеТовара.Вставить("Глубина" , 40);
- ОписаниеТовара.Вставить("Вес" , 100);
- ОписаниеТовара.Вставить("SKU" , "12345");
- ОписаниеТовара.Вставить("ДоступныйОстаток" , "10");
-
- Опции = Новый Структура;
- Опции.Вставить("product", ОписаниеТовара);
- Опции.Вставить("sel", Подборка);
- Опции.Вставить("auth", Параметры);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vk", "ДобавитьТовар", Опции);
-
- // END
-
- Обработать(Результат, "VK", "ДобавитьТовар", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура VK_ИзменитьТовар(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
-
- Товар = ПараметрыФункции["VK_MarketItemID"];
-
- ОписаниеТовара = Новый Соответствие;
- ОписаниеТовара.Вставить("Имя", "Тестовый товар измененный");
-
- Опции = Новый Структура;
- Опции.Вставить("item", Товар);
- Опции.Вставить("product", ОписаниеТовара);
- Опции.Вставить("auth", Параметры);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vk", "ИзменитьТовар", Опции);
-
- // END
-
- Обработать(Результат, "VK", "ИзменитьТовар");
-
-КонецПроцедуры
-
-Процедура VK_ДобавитьТоварВПодборку(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
-
- Товар = ПараметрыФункции["VK_MarketItemID"];
- Подборка = ПараметрыФункции["VK_MarketAlbumID"];
-
- Опции = Новый Структура;
- Опции.Вставить("items", Товар);
- Опции.Вставить("sel", Подборка);
- Опции.Вставить("auth", Параметры);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vk", "ДобавитьТоварВПодборку", Опции);
-
- // END
-
- Обработать(Результат, "VK", "ДобавитьТоварВПодборку");
-
-КонецПроцедуры
-
-Процедура VK_УдалитьТоварИзПодборки(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
-
- Товар = ПараметрыФункции["VK_MarketItemID"];
- Подборка = ПараметрыФункции["VK_MarketAlbumID"];
-
- Опции = Новый Структура;
- Опции.Вставить("item", Товар);
- Опции.Вставить("sel", Подборка);
- Опции.Вставить("auth", Параметры);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vk", "УдалитьТоварИзПодборки", Опции);
-
- // END
-
- Обработать(Результат, "VK", "УдалитьТоварИзПодборки");
-
-КонецПроцедуры
-
-Процедура VK_УдалитьТовар(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
-
- Товар = ПараметрыФункции["VK_MarketItemID"];
-
- Опции = Новый Структура;
- Опции.Вставить("item", Товар);
- Опции.Вставить("auth", Параметры);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vk", "УдалитьТовар", Опции);
-
- // END
-
- Обработать(Результат, "VK", "УдалитьТовар");
-
-КонецПроцедуры
-
-Процедура VK_УдалитьПодборку(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
-
- Подборка = ПараметрыФункции["VK_MarketAlbumID"];
-
- Опции = Новый Структура;
- Опции.Вставить("sel", Подборка);
- Опции.Вставить("auth", Параметры);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vk", "УдалитьПодборку", Опции);
-
- // END
-
- Обработать(Результат, "VK", "УдалитьПодборку");
-
-КонецПроцедуры
-
-Процедура VK_СоздатьСвойствоТовара(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
-
- Название = "Цвет";
-
- Опции = Новый Структура;
- Опции.Вставить("title", Название);
- Опции.Вставить("auth", Параметры);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vk", "СоздатьСвойствоТовара", Опции);
-
- // END
-
- Обработать(Результат, "VK", "СоздатьСвойствоТовара", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура VK_ИзменитьСвойствоТовара(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
-
- Название = "Цвет (изм.)";
- Свойство = ПараметрыФункции["VK_PropID"];
-
- Опции = Новый Структура;
- Опции.Вставить("title", Название);
- Опции.Вставить("prop", Свойство);
- Опции.Вставить("auth", Параметры);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vk", "ИзменитьСвойствоТовара", Опции);
-
- // END
-
- Обработать(Результат, "VK", "ИзменитьСвойствоТовара");
-
-КонецПроцедуры
-
-Процедура VK_ДобавитьВариантСвойстваТовара(ПараметрыФункции)
-
- Счетчик = 1; // SKIP
- Параметры = ПолучитьПараметрыВК();
-
- Свойство = ПараметрыФункции["VK_PropID"];
- МассивВариантов = Новый Массив;
- МассивВариантов.Добавить("Желтый");
- МассивВариантов.Добавить("Синий");
- МассивВариантов.Добавить("Красный");
-
- Для Каждого Значение Из МассивВариантов Цикл
-
- Результат = OPI_VK.ДобавитьВариантСвойстваТовара(Значение, Свойство, Параметры);
-
- Обработать(Результат, "VK", "ДобавитьВариантСвойстваТовара", , ПараметрыФункции, Счетчик); // SKIP
-
- Счетчик = Счетчик + 1; // SKIP
-
- КонецЦикла;
-
- // END
-
-КонецПроцедуры
-
-Процедура VK_ИзменитьВариантСвойстваТовара(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
-
- Свойство = ПараметрыФункции["VK_PropID"];
- Вариант = ПараметрыФункции["VK_PropVarID1"];
- Значение = "Новое имя варианта";
-
- Опции = Новый Структура;
- Опции.Вставить("value", Значение);
- Опции.Вставить("prop", Свойство);
- Опции.Вставить("option", Вариант);
- Опции.Вставить("auth", Параметры);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vk", "ИзменитьВариантСвойстваТовара", Опции);
-
- // END
-
- Обработать(Результат, "VK", "ИзменитьВариантСвойстваТовара");
-
-КонецПроцедуры
-
-Процедура VK_СоздатьТоварСоСвойством(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
-
- Картинка1 = ПараметрыФункции["Picture"];
- Картинка2 = ПараметрыФункции["Picture2"];
- ВариантСвойства1 = ПараметрыФункции["VK_PropVarID1"];
- ВариантСвойства2 = ПараметрыФункции["VK_PropVarID2"];
-
- МассивКартинок = Новый Массив;
- МассивКартинок.Добавить(Картинка1);
- МассивКартинок.Добавить(Картинка2);
-
- Товар = Новый Соответствие;
- Товар.Вставить("Имя" , "Тестовый товар (со свойством)");
- Товар.Вставить("Описание" , "Описание товара");
- Товар.Вставить("Категория" , "20173");
- Товар.Вставить("Цена" , 1);
- Товар.Вставить("СтараяЦена" , 15);
- Товар.Вставить("ОсновноеФото" , Картинка1);
- Товар.Вставить("URL" , "https://github.com/Bayselonarrend/OpenIntegrations");
- Товар.Вставить("ДополнительныеФото", МассивКартинок);
- Товар.Вставить("ГлавныйВГруппе" , Истина);
- Товар.Вставить("Ширина" , 20);
- Товар.Вставить("Высота" , 30);
- Товар.Вставить("Глубина" , 40);
- Товар.Вставить("Вес" , 100);
- Товар.Вставить("SKU" , 12345);
- Товар.Вставить("ДоступныйОстаток" , "10");
- Товар.Вставить("ЗначенияСвойств" , ВариантСвойства1);
-
- Опции = Новый Структура;
- Опции.Вставить("product", Товар);
- Опции.Вставить("auth", Параметры);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vk", "ДобавитьТовар", Опции);
-
- // END
-
- Обработать(Результат, "VK", "СоздатьТоварСоСвойством", "Первый", ПараметрыФункции, 2);
-
- Товар.Вставить("Имя" , "Тестовый товар (другой)");
- Товар.Вставить("ЗначенияСвойств", ВариантСвойства2);
-
- Опции = Новый Структура;
- Опции.Вставить("product", Товар);
- Опции.Вставить("auth", Параметры);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vk", "ДобавитьТовар", Опции);
-
- Обработать(Результат, "VK", "СоздатьТоварСоСвойством", "Второй", ПараметрыФункции, 3);
-
- OPI_Инструменты.Пауза(5);
-
-КонецПроцедуры
-
-Процедура VK_ПолучитьТоварыПоИД(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
-
- Товар1 = ПараметрыФункции["VK_MarketItemID2"];
- Товар2 = ПараметрыФункции["VK_MarketItemID3"];
-
- МассивТоваров = Новый Массив;
- МассивТоваров.Добавить(Товар1);
- МассивТоваров.Добавить(Товар2);
-
- Опции = Новый Структура;
- Опции.Вставить("items", МассивТоваров);
- Опции.Вставить("auth", Параметры);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vk", "ПолучитьТоварыПоИД", Опции);
-
- // END
-
- Обработать(Результат, "VK", "ПолучитьТоварыПоИД");
-
-КонецПроцедуры
-
-Процедура VK_СгруппироватьТовары(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
-
- Товар1 = ПараметрыФункции["VK_MarketItemID2"];
- Товар2 = ПараметрыФункции["VK_MarketItemID3"];
-
- МассивТоваров = Новый Массив;
- МассивТоваров.Добавить(Товар1);
- МассивТоваров.Добавить(Товар2);
-
- Опции = Новый Структура;
- Опции.Вставить("items", МассивТоваров);
- Опции.Вставить("auth", Параметры);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vk", "СгруппироватьТовары", Опции);
-
- // END
-
- Обработать(Результат, "VK", "СгруппироватьТовары");
-
-КонецПроцедуры
-
-Процедура VK_УдалитьВариантСвойстваТовара(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
-
- Вариант = ПараметрыФункции["VK_PropVarID1"];
-
- Опции = Новый Структура;
- Опции.Вставить("option", Вариант);
- Опции.Вставить("auth", Параметры);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vk", "УдалитьВариантСвойстваТовара", Опции);
-
- // END
-
- Обработать(Результат, "VK", "УдалитьВариантСвойстваТовара");
-
-КонецПроцедуры
-
-Процедура VK_УдалитьСвойствоТовара(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
-
- Свойство = ПараметрыФункции["VK_PropID"];
-
- Опции = Новый Структура;
- Опции.Вставить("prop", Свойство);
- Опции.Вставить("auth", Параметры);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vk", "УдалитьСвойствоТовара", Опции);
-
- // END
-
- Обработать(Результат, "VK", "УдалитьСвойствоТовара");
-
-КонецПроцедуры
-
-Процедура VK_ПолучитьСписокТоваров(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
- Опции = Новый Структура;
- Опции.Вставить("auth", Параметры);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vk", "ПолучитьСписокТоваров", Опции);
-
- // END
-
- Обработать(Результат, "VK", "ПолучитьСписокТоваров");
-
-КонецПроцедуры
-
-Процедура VK_ПолучитьСписокПодборок(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
- Опции = Новый Структура;
- Опции.Вставить("auth", Параметры);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vk", "ПолучитьСписокПодборок", Опции);
-
- // END
-
- Обработать(Результат, "VK", "ПолучитьСписокПодборок");
-
-КонецПроцедуры
-
-Процедура VK_ПолучитьСписокСвойств(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
- Опции = Новый Структура;
- Опции.Вставить("auth", Параметры);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vk", "ПолучитьСписокСвойств", Опции);
-
- // END
-
- Обработать(Результат, "VK", "ПолучитьСписокСвойств");
-
-КонецПроцедуры
-
-Процедура VK_ПолучитьСписокЗаказов(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
- Опции = Новый Структура;
- Опции.Вставить("auth", Параметры);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vk", "ПолучитьСписокЗаказов", Опции);
-
- // END
-
- Обработать(Результат, "VK", "ПолучитьСписокЗаказов");
-
-КонецПроцедуры
-
-Процедура VK_ЗагрузитьВидеоНаСервер(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
-
- Видео = ПараметрыФункции["Video"]; // URL, Двоичные данные или Путь к файлу
- Наименование = "Новое видео";
- Описание = "Описание видео";
-
- Опции = Новый Структура;
- Опции.Вставить("file", Видео);
- Опции.Вставить("title", Наименование);
- Опции.Вставить("description", Описание);
- Опции.Вставить("auth", Параметры);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vk", "ЗагрузитьВидеоНаСервер", Опции);
-
- // END
-
- Обработать(Результат, "VK", "ЗагрузитьВидеоНаСервер");
-
-КонецПроцедуры
-
-Процедура VK_ЗагрузитьФотоНаСервер(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
-
- Картинка = ПараметрыФункции["Picture"]; // URL, Двоичные данные или Путь к файлу
- Вид = "Пост";
-
- Опции = Новый Структура;
- Опции.Вставить("file", Картинка);
- Опции.Вставить("auth", Параметры);
- Опции.Вставить("type", Вид);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vk", "ЗагрузитьФотоНаСервер", Опции);
-
- // END
-
- Обработать(Результат, "VK", "ЗагрузитьФотоНаСервер");
-
-КонецПроцедуры
-
-Процедура VK_СократитьСсылку(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
-
- Опции = Новый Структура;
- Опции.Вставить("url", "https://github.com/Bayselonarrend/OpenIntegrations");
- Опции.Вставить("auth", Параметры);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vk", "СократитьСсылку", Опции);
-
-КонецПроцедуры
-
-Процедура VK_ПолучитьСписокРекламныхКатегорий(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыВК();
-
- Опции = Новый Структура;
- Опции.Вставить("auth", Параметры);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vk", "ПолучитьСписокРекламныхКатегорий", Опции);
-
- // END
-
- Обработать(Результат, "VK", "ПолучитьСписокРекламныхКатегорий");
-
-КонецПроцедуры
-
-Процедура VK_ПолучитьОписаниеТовара(ПараметрыФункции)
-
- Пустая = Ложь;
- Опции = Новый Структура;
- Опции.Вставить("empty", Пустая);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vk", "ПолучитьОписаниеТовара", Опции);
-
- // END
-
- Обработать(Результат, "VK", "ПолучитьОписаниеТовара");
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область YandexDisk
-
-Процедура YandexDisk_ПолучитьИнформациюОДиске(ПараметрыФункции)
-
- Токен = ПараметрыФункции["YandexDisk_Token"];
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("yadisk", "ПолучитьИнформациюОДиске", Опции);
-
- // END
-
- Обработать(Результат, "YandexDisk", "ПолучитьИнформациюОДиске");
-
-КонецПроцедуры
-
-Процедура YandexDisk_СоздатьПапку(ПараметрыФункции)
-
- Токен = ПараметрыФункции["YandexDisk_Token"];
- Путь = "/" + Строка(Новый УникальныйИдентификатор);
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("path", Путь);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("yadisk", "СоздатьПапку", Опции);
-
- // END
-
- Обработать(Результат, "YandexDisk", "СоздатьПапку", , Токен, Путь);
-
- OPI_YandexDisk.УдалитьОбъект(Токен, Путь, Ложь);
-
-КонецПроцедуры
-
-Процедура YandexDisk_ЗагрузитьФайлПоURL(ПараметрыФункции)
-
- Токен = ПараметрыФункции["YandexDisk_Token"];
- Адрес = ПараметрыФункции["Picture"];
- Путь = "/" + Строка(Новый УникальныйИдентификатор) + ".png";
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("path", Путь);
- Опции.Вставить("url", Адрес);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("yadisk", "ЗагрузитьФайлПоURL", Опции);
-
- // END
-
- Обработать(Результат, "YandexDisk", "ЗагрузитьФайлПоURL", , ПараметрыФункции, Путь);
-
-КонецПроцедуры
-
-Процедура YandexDisk_ПолучитьОбъект(ПараметрыФункции)
-
- Токен = ПараметрыФункции["YandexDisk_Token"];
- Путь = ПараметрыФункции["YandexDisk_FileByURLPath"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("path", Путь);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("yadisk", "ПолучитьОбъект", Опции);
-
- // END
-
- Обработать(Результат, "YandexDisk", "ПолучитьОбъект", , Путь);
-
-КонецПроцедуры
-
-Процедура YandexDisk_УдалитьОбъект(ПараметрыФункции)
-
- Токен = ПараметрыФункции["YandexDisk_Token"];
- Путь = ПараметрыФункции["YandexDisk_FileByURLPath"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("path", Путь);
- Опции.Вставить("can", Ложь);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("yadisk", "УдалитьОбъект", Опции);
-
- // END
-
- Обработать(Результат, "YandexDisk", "УдалитьОбъект");
-
-КонецПроцедуры
-
-Процедура YandexDisk_ЗагрузитьФайл(ПараметрыФункции)
-
- Путь1 = "/" + Строка(Новый УникальныйИдентификатор) + ".png";
- Путь2 = "/" + Строка(Новый УникальныйИдентификатор) + ".png";
-
- Токен = ПараметрыФункции["YandexDisk_Token"];
- Картинка = ПараметрыФункции["Picture"]; // URL
-
- ИВФ = ПолучитьИмяВременногоФайла("png"); // Путь
- КопироватьФайл(Картинка, ИВФ);
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("path", Путь1);
- Опции.Вставить("file", Картинка);
- Опции.Вставить("rewrite", Истина);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("yadisk", "ЗагрузитьФайл", Опции);
-
- Обработать(Результат, "YandexDisk", "ЗагрузитьФайл", "URL"); // SKIP
-
- OPI_YandexDisk.УдалитьОбъект(Токен, Путь1, Ложь); // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("path", Путь2);
- Опции.Вставить("file", ИВФ);
- Опции.Вставить("rewrite", Истина);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("yadisk", "ЗагрузитьФайл", Опции);
-
- // END
-
- OPI_Инструменты.УдалитьФайлВПопытке(ИВФ, "Не удалось удалить временный файл после теста!");
-
- Обработать(Результат, "YandexDisk", "ЗагрузитьФайл");
-
- OPI_YandexDisk.УдалитьОбъект(Токен, Путь2, Ложь); // SKIP
-
-КонецПроцедуры
-
-Процедура YandexDisk_СоздатьКопиюОбъекта(ПараметрыФункции)
-
- Токен = ПараметрыФункции["YandexDisk_Token"];
- Оригинал = ПараметрыФункции["YandexDisk_OriginalFilePath"];
- Путь = "/" + Строка(Новый УникальныйИдентификатор) + ".png";
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("from", Оригинал);
- Опции.Вставить("to", Путь);
- Опции.Вставить("rewrite", Истина);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("yadisk", "СоздатьКопиюОбъекта", Опции);
-
- // END
-
- Обработать(Результат, "YandexDisk", "СоздатьКопиюОбъекта", , ПараметрыФункции, Путь);
-
-КонецПроцедуры
-
-Процедура YandexDisk_ПолучитьСсылкуДляСкачивания(ПараметрыФункции)
-
- Токен = ПараметрыФункции["YandexDisk_Token"];
- Путь = ПараметрыФункции["YandexDisk_PathForLink"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("path", Путь);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("yadisk", "ПолучитьСсылкуДляСкачивания", Опции);
-
- // END
-
- Обработать(Результат, "YandexDisk", "ПолучитьСсылкуДляСкачивания");
-
-КонецПроцедуры
-
-Процедура YandexDisk_СкачатьФайл(ПараметрыФункции)
-
- Токен = ПараметрыФункции["YandexDisk_Token"];
- Путь = ПараметрыФункции["YandexDisk_PathForLink"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("path", Путь);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("yadisk", "СкачатьФайл", Опции);
-
- // END
-
- Обработать(Результат, "YandexDisk", "СкачатьФайл");
-
-КонецПроцедуры
-
-Процедура YandexDisk_ПолучитьСписокФайлов(ПараметрыФункции)
-
- Токен = ПараметрыФункции["YandexDisk_Token"];
- Количество = 2;
- СмещениеОтНачала = 1;
- ОтборПоТипу = "image";
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("amount", Количество);
- Опции.Вставить("offset", СмещениеОтНачала);
- Опции.Вставить("type", ОтборПоТипу);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("yadisk", "ПолучитьСписокФайлов", Опции);
-
- // END
-
- Обработать(Результат, "YandexDisk", "ПолучитьСписокФайлов", , Количество, СмещениеОтНачала);
-
-КонецПроцедуры
-
-Процедура YandexDisk_ПереместитьОбъект(ПараметрыФункции)
-
- Токен = ПараметрыФункции["YandexDisk_Token"];
- Оригинал = ПараметрыФункции["YandexDisk_OriginalFilePath"];
- Путь = "/" + Строка(Новый УникальныйИдентификатор) + ".png";
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("from", Оригинал);
- Опции.Вставить("to", Путь);
- Опции.Вставить("rewrite", Истина);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("yadisk", "ПереместитьОбъект", Опции);
-
- // END
-
- Обработать(Результат, "YandexDisk", "ПереместитьОбъект", , ПараметрыФункции, Путь);
-
-КонецПроцедуры
-
-Процедура YandexDisk_ПолучитьСписокОпубликованныхОбъектов(ПараметрыФункции)
-
- Токен = ПараметрыФункции["YandexDisk_Token"];
- Количество = 2;
- СмещениеОтНачала = 1;
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("amount", Количество);
- Опции.Вставить("offset", СмещениеОтНачала);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("yadisk", "ПолучитьСписокОпубликованныхОбъектов", Опции);
-
- // END
-
- Обработать(Результат, "YandexDisk", "ПолучитьСписокОпубликованныхОбъектов", , Количество, СмещениеОтНачала);
-
-КонецПроцедуры
-
-Процедура YandexDisk_ОпубликоватьОбъект(ПараметрыФункции)
-
- Токен = ПараметрыФункции["YandexDisk_Token"];
- Путь = ПараметрыФункции["YandexDisk_OriginalFilePath"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("path", Путь);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("yadisk", "ОпубликоватьОбъект", Опции);
-
- // END
-
- Обработать(Результат, "YandexDisk", "ОпубликоватьОбъект", , ПараметрыФункции, Путь);
-
-КонецПроцедуры
-
-Процедура YandexDisk_ПолучитьСсылкуСкачиванияПубличногоОбъекта(ПараметрыФункции)
-
- Токен = ПараметрыФункции["YandexDisk_Token"];
- URL = ПараметрыФункции["YandexDisk_PublicURL"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("url", URL);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("yadisk", "ПолучитьСсылкуСкачиванияПубличногоОбъекта", Опции);
-
- // END
-
- Обработать(Результат, "YandexDisk", "ПолучитьСсылкуСкачиванияПубличногоОбъекта");
-
-КонецПроцедуры
-
-Процедура YandexDisk_ПолучитьПубличныйОбъект(ПараметрыФункции)
-
- Токен = ПараметрыФункции["YandexDisk_Token"];
- URL = ПараметрыФункции["YandexDisk_PublicURL"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("url", URL);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("yadisk", "ПолучитьПубличныйОбъект", Опции);
-
- // END
-
- Обработать(Результат, "YandexDisk", "ПолучитьПубличныйОбъект");
-
-КонецПроцедуры
-
-Процедура YandexDisk_СохранитьПубличныйОбъектНаДиск(ПараметрыФункции)
-
- Токен = ПараметрыФункции["YandexDisk_Token"];
- URL = ПараметрыФункции["YandexDisk_PublicURL"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("url", URL);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("yadisk", "СохранитьПубличныйОбъектНаДиск", Опции);
-
- // END
-
- Обработать(Результат, "YandexDisk", "СохранитьПубличныйОбъектНаДиск");
-
-КонецПроцедуры
-
-Процедура YandexDisk_ОтменитьПубликациюОбъекта(ПараметрыФункции)
-
- Токен = ПараметрыФункции["YandexDisk_Token"];
- Путь = ПараметрыФункции["YandexDisk_OriginalFilePath"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("path", Путь);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("yadisk", "ОтменитьПубликациюОбъекта", Опции);
-
- // END
-
- Обработать(Результат, "YandexDisk", "ОтменитьПубликациюОбъекта", , Путь);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область Viber
-
-Процедура Viber_УстановитьWebhook(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Viber_ChannelToken"];
- URL = "http://api.athenaeum.digital/hs/viber";
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("url", URL);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("viber", "УстановитьWebhook", Опции);
-
- // END
-
- Обработать(Результат, "Viber", "УстановитьWebhook");
-
-КонецПроцедуры
-
-Процедура Viber_ПолучитьИнформациюОКанале(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Viber_ChannelToken"];
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("viber", "ПолучитьИнформациюОКанале", Опции);
-
- // END
-
- Обработать(Результат, "Viber", "ПолучитьИнформациюОКанале");
-
-КонецПроцедуры
-
-Процедура Viber_ПолучитьДанныеПользователя(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Viber_ChannelToken"];
- IDПользователя = ПараметрыФункции["Viber_ChannelAdminID"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("user", IDПользователя);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("viber", "ПолучитьДанныеПользователя", Опции);
-
- // END
-
- Обработать(Результат, "Viber", "ПолучитьДанныеПользователя");
-
-КонецПроцедуры
-
-Процедура Viber_ПолучитьОнлайнПользователей(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Viber_ChannelToken"];
- IDПользователя = ПараметрыФункции["Viber_ChannelAdminID"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("users", IDПользователя);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("viber", "ПолучитьОнлайнПользователей", Опции);
-
- // END
-
- Обработать(Результат, "Viber", "ПолучитьОнлайнПользователей");
-
-КонецПроцедуры
-
-Процедура Viber_СформироватьКлавиатуруИзМассиваКнопок(ПараметрыФункции)
-
- МассивКнопок = Новый Массив;
- МассивКнопок.Добавить("Кнопка 1");
- МассивКнопок.Добавить("Кнопка 2");
- МассивКнопок.Добавить("Кнопка 3");
-
- Опции = Новый Структура;
- Опции.Вставить("buttons", МассивКнопок);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("viber", "СформироватьКлавиатуруИзМассиваКнопок", Опции);
-
- // END
-
- Обработать(Результат, "Viber", "СформироватьКлавиатуруИзМассиваКнопок");
-
-КонецПроцедуры
-
-Процедура Viber_ОтправитьТекстовоеСообщение(ПараметрыФункции)
-
- Текст = "Тестовое сообщение";
-
- IDПользователя = ПараметрыФункции["Viber_UserID"];
- Токен = ПараметрыФункции["Viber_Token"];
- ОтправкаВКанал = Ложь;
-
- МассивКнопок = Новый Массив;
- МассивКнопок.Добавить("Кнопка 1");
- МассивКнопок.Добавить("Кнопка 2");
- МассивКнопок.Добавить("Кнопка 3");
-
- Опции = Новый Структура;
- Опции.Вставить("buttons", МассивКнопок);
-
- Клавиатура = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("viber", "СформироватьКлавиатуруИзМассиваКнопок", Опции);
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("text", Текст);
- Опции.Вставить("user", IDПользователя);
- Опции.Вставить("ischannel", ОтправкаВКанал);
- Опции.Вставить("keyboard", Клавиатура);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("viber", "ОтправитьТекстовоеСообщение", Опции);
-
- Обработать(Результат, "Viber", "ОтправитьТекстовоеСообщение"); // SKIP
-
- IDПользователя = ПараметрыФункции["Viber_ChannelAdminID"];
- Токен = ПараметрыФункции["Viber_ChannelToken"];
- ОтправкаВКанал = Истина;
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("text", Текст);
- Опции.Вставить("user", IDПользователя);
- Опции.Вставить("ischannel", ОтправкаВКанал);
- Опции.Вставить("keyboard", Клавиатура);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("viber", "ОтправитьТекстовоеСообщение", Опции);
-
- // END
-
- Обработать(Результат, "Viber", "ОтправитьТекстовоеСообщение", "Канал");
-
-КонецПроцедуры
-
-Процедура Viber_ОтправитьКартинку(ПараметрыФункции)
-
- Описание = "Тестовое сообщение";
- URL = ПараметрыФункции["Picture"];
-
- IDПользователя = ПараметрыФункции["Viber_UserID"];
- Токен = ПараметрыФункции["Viber_Token"];
- ОтправкаВКанал = Ложь;
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("picture", URL);
- Опции.Вставить("user", IDПользователя);
- Опции.Вставить("ischannel", ОтправкаВКанал);
- Опции.Вставить("description", Описание);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("viber", "ОтправитьКартинку", Опции);
-
- Обработать(Результат, "Viber", "ОтправитьКартинку"); // SKIP
-
- IDПользователя = ПараметрыФункции["Viber_ChannelAdminID"];
- Токен = ПараметрыФункции["Viber_ChannelToken"];
- ОтправкаВКанал = Истина;
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("picture", URL);
- Опции.Вставить("user", IDПользователя);
- Опции.Вставить("ischannel", ОтправкаВКанал);
- Опции.Вставить("description", Описание);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("viber", "ОтправитьКартинку", Опции);
-
- // END
-
- Обработать(Результат, "Viber", "ОтправитьКартинку", "Канал");
-
-КонецПроцедуры
-
-Процедура Viber_ОтправитьФайл(ПараметрыФункции)
-
- Расширение = "docx";
- URL = ПараметрыФункции["Document"];
-
- IDПользователя = ПараметрыФункции["Viber_UserID"];
- Токен = ПараметрыФункции["Viber_Token"];
- ОтправкаВКанал = Ложь;
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("file", URL);
- Опции.Вставить("user", IDПользователя);
- Опции.Вставить("ischannel", ОтправкаВКанал);
- Опции.Вставить("ext", Расширение);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("viber", "ОтправитьФайл", Опции);
-
- Обработать(Результат, "Viber", "ОтправитьФайл"); // SKIP
-
- IDПользователя = ПараметрыФункции["Viber_ChannelAdminID"];
- Токен = ПараметрыФункции["Viber_ChannelToken"];
- ОтправкаВКанал = Истина;
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("file", URL);
- Опции.Вставить("user", IDПользователя);
- Опции.Вставить("ischannel", ОтправкаВКанал);
- Опции.Вставить("ext", Расширение);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("viber", "ОтправитьФайл", Опции);
-
- // END
-
- Обработать(Результат, "Viber", "ОтправитьФайл", "Канал");
-
-КонецПроцедуры
-
-Процедура Viber_ОтправитьКонтакт(ПараметрыФункции)
-
- Имя = "Петр Петров";
- Телефон = "+123456789";
-
- IDПользователя = ПараметрыФункции["Viber_UserID"];
- Токен = ПараметрыФункции["Viber_Token"];
- ОтправкаВКанал = Ложь;
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("name", Имя);
- Опции.Вставить("phone", Телефон);
- Опции.Вставить("user", IDПользователя);
- Опции.Вставить("ischannel", ОтправкаВКанал);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("viber", "ОтправитьКонтакт", Опции);
-
- Обработать(Результат, "Viber", "ОтправитьКонтакт"); // SKIP
-
- IDПользователя = ПараметрыФункции["Viber_ChannelAdminID"];
- Токен = ПараметрыФункции["Viber_ChannelToken"];
- ОтправкаВКанал = Истина;
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("name", Имя);
- Опции.Вставить("phone", Телефон);
- Опции.Вставить("user", IDПользователя);
- Опции.Вставить("ischannel", ОтправкаВКанал);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("viber", "ОтправитьКонтакт", Опции);
-
- // END
-
- Обработать(Результат, "Viber", "ОтправитьКонтакт", "Канал");
-
-КонецПроцедуры
-
-Процедура Viber_ОтправитьЛокацию(ПараметрыФункции)
-
- Широта = "48.87373649724122";
- Долгота = "2.2954639195323967";
-
- IDПользователя = ПараметрыФункции["Viber_UserID"];
- Токен = ПараметрыФункции["Viber_Token"];
- ОтправкаВКанал = Ложь;
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("lat", Широта);
- Опции.Вставить("long", Долгота);
- Опции.Вставить("user", IDПользователя);
- Опции.Вставить("ischannel", ОтправкаВКанал);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("viber", "ОтправитьЛокацию", Опции);
-
- Обработать(Результат, "Viber", "ОтправитьЛокацию"); // SKIP
-
- IDПользователя = ПараметрыФункции["Viber_ChannelAdminID"];
- Токен = ПараметрыФункции["Viber_ChannelToken"];
- ОтправкаВКанал = Истина;
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("lat", Широта);
- Опции.Вставить("long", Долгота);
- Опции.Вставить("user", IDПользователя);
- Опции.Вставить("ischannel", ОтправкаВКанал);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("viber", "ОтправитьЛокацию", Опции);
-
- // END
-
- Обработать(Результат, "Viber", "ОтправитьЛокацию", "Канал");
-
-КонецПроцедуры
-
-Процедура Viber_ОтправитьСсылку(ПараметрыФункции)
-
- URL = "https://github.com/Bayselonarrend/OpenIntegrations";
-
- IDПользователя = ПараметрыФункции["Viber_UserID"];
- Токен = ПараметрыФункции["Viber_Token"];
- ОтправкаВКанал = Ложь;
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("url", URL);
- Опции.Вставить("user", IDПользователя);
- Опции.Вставить("ischannel", ОтправкаВКанал);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("viber", "ОтправитьСсылку", Опции);
-
- Обработать(Результат, "Viber", "ОтправитьСсылку"); // SKIP
-
- IDПользователя = ПараметрыФункции["Viber_ChannelAdminID"];
- Токен = ПараметрыФункции["Viber_ChannelToken"];
- ОтправкаВКанал = Истина;
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("url", URL);
- Опции.Вставить("user", IDПользователя);
- Опции.Вставить("ischannel", ОтправкаВКанал);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("viber", "ОтправитьСсылку", Опции);
-
- // END
-
- Обработать(Результат, "Viber", "ОтправитьСсылку", "Канал");
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область GoogleWorkspace
-
-Процедура GoogleWorkspace_СформироватьСсылкуПолученияКода(ПараметрыФункции)
-
- ClientID = ПараметрыФункции["Google_ClientID"];
- Опции = Новый Структура;
- Опции.Вставить("id", ClientID);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("google", "СформироватьСсылкуПолученияКода", Опции);
-
- // END
-
- Обработать(Результат, "GoogleWorkspace", "СформироватьСсылкуПолученияКода");
-
-КонецПроцедуры
-
-Процедура GoogleWorkspace_ПолучитьТокенПоКоду(ПараметрыФункции)
-
- ClientID = ПараметрыФункции["Google_ClientID"];
- ClientSecret = ПараметрыФункции["Google_ClientSecret"];
- Code = ПараметрыФункции["Google_Code"];
-
- Опции = Новый Структура;
- Опции.Вставить("id", ClientID);
- Опции.Вставить("secret", ClientSecret);
- Опции.Вставить("code", Code);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("google", "ПолучитьТокенПоКоду", Опции);
-
- // END
-
- Обработать(Результат, "GoogleWorkspace", "ПолучитьТокенПоКоду");
-
-КонецПроцедуры
-
-Процедура GoogleWorkspace_ОбновитьТокен(ПараметрыФункции)
-
- ClientID = ПараметрыФункции["Google_ClientID"];
- ClientSecret = ПараметрыФункции["Google_ClientSecret"];
- RefreshToken = ПараметрыФункции["Google_Refresh"];
-
- Опции = Новый Структура;
- Опции.Вставить("id", ClientID);
- Опции.Вставить("secret", ClientSecret);
- Опции.Вставить("refresh", RefreshToken);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("google", "ОбновитьТокен", Опции);
-
- // END
-
- Обработать(Результат, "GoogleWorkspace", "ОбновитьТокен");
-
-КонецПроцедуры
-
-Процедура GoogleWorkspace_ПолучитьТокенServiceАккаунта(ПараметрыФункции)
-
- Данные = ПараметрыФункции["Google_ServiceData"]; // URL, двоичные данные, файл или коллекция
-
- Токен = ПараметрыФункции["Access_Token"]; // SKIP
- Данные = OPI_ЗапросыHTTP // SKIP
- .НовыйЗапрос() // SKIP
- .Инициализировать(Данные) // SKIP
- .ДобавитьBearerАвторизацию(Токен) // SKIP
- .ОбработатьЗапрос("GET") // SKIP
- .ВернутьОтветКакДвоичныеДанные(); // SKIP
-
- ОбластиДействия = Новый Массив;
- ОбластиДействия.Добавить("https://www.googleapis.com/auth/calendar");
- ОбластиДействия.Добавить("https://www.googleapis.com/auth/drive");
- ОбластиДействия.Добавить("https://www.googleapis.com/auth/spreadsheets");
-
- Опции = Новый Структура;
- Опции.Вставить("auth", Данные);
- Опции.Вставить("scope", ОбластиДействия);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("google", "ПолучитьТокенServiceАккаунта", Опции);
-
- // END
-
- Обработать(Результат, "GoogleWorkspace", "ПолучитьТокенServiceАккаунта");
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область GoogleCalendar
-
-Процедура GoogleCalendar_ПолучитьСписокКалендарей(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Google_Token"];
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gcalendar", "ПолучитьСписокКалендарей", Опции);
-
- // END
-
- Обработать(Результат, "GoogleCalendar", "ПолучитьСписокКалендарей");
-
-КонецПроцедуры
-
-Процедура GoogleCalendar_СоздатьКалендарь(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Google_Token"];
- Наименование = "Тестовый календарь";
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("title", Наименование);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gcalendar", "СоздатьКалендарь", Опции);
-
- // END
-
- Обработать(Результат, "GoogleCalendar", "СоздатьКалендарь", , ПараметрыФункции, Наименование);
-
-КонецПроцедуры
-
-Процедура GoogleCalendar_ИзменитьМетаданныеКалендаря(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Google_Token"];
- Календарь = ПараметрыФункции["Google_NewCalendarID"];
- Наименование = "Новое наименование";
- Описание = "Новое описание";
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("calendar", Календарь);
- Опции.Вставить("title", Наименование);
- Опции.Вставить("description", Описание);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gcalendar", "ИзменитьМетаданныеКалендаря", Опции);
-
- // END
-
- Обработать(Результат, "GoogleCalendar", "ИзменитьМетаданныеКалендаря", , Наименование, Описание);
-
-КонецПроцедуры
-
-Процедура GoogleCalendar_ПолучитьМетаданныеКалендаря(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Google_Token"];
- Календарь = ПараметрыФункции["Google_NewCalendarID"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("calendar", Календарь);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gcalendar", "ПолучитьМетаданныеКалендаря", Опции);
-
- // END
-
- Наименование = "Новое наименование";
- Описание = "Новое описание";
-
- Обработать(Результат, "GoogleCalendar", "ПолучитьМетаданныеКалендаря", , Наименование, Описание);
-
-КонецПроцедуры
-
-Процедура GoogleCalendar_ДобавитьКалендарьВСписок(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Google_Token"];
- Календарь = ПараметрыФункции["Google_NewCalendarID"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("calendar", Календарь);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gcalendar", "ДобавитьКалендарьВСписок", Опции);
-
- // END
-
- Наименование = "Новое наименование";
- Описание = "Новое описание";
-
- Обработать(Результат, "GoogleCalendar", "ДобавитьКалендарьВСписок", , Наименование, Описание);
-
-КонецПроцедуры
-
-Процедура GoogleCalendar_ИзменитьКалендарьСписка(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Google_Token"];
- Календарь = ПараметрыФункции["Google_NewCalendarID"];
- ОсновнойЦвет = "#000000";
- ДополнительныйЦвет = "#ffd800";
- Скрытый = Ложь;
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("calendar", Календарь);
- Опции.Вставить("primary", ОсновнойЦвет);
- Опции.Вставить("secondary", ДополнительныйЦвет);
- Опции.Вставить("hidden", Скрытый);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gcalendar", "ИзменитьКалендарьСписка", Опции);
-
- // END
-
- Обработать(Результат, "GoogleCalendar", "ИзменитьКалендарьСписка", , ОсновнойЦвет, ДополнительныйЦвет);
-
-КонецПроцедуры
-
-Процедура GoogleCalendar_ПолучитьКалендарьСписка(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Google_Token"];
- Календарь = ПараметрыФункции["Google_NewCalendarID"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("calendar", Календарь);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gcalendar", "ПолучитьКалендарьСписка", Опции);
-
- // END
-
- ОсновнойЦвет = "#000000";
- ДополнительныйЦвет = "#ffd800";
-
- Обработать(Результат, "GoogleCalendar", "ПолучитьКалендарьСписка", , ОсновнойЦвет, ДополнительныйЦвет);
-
-КонецПроцедуры
-
-Процедура GoogleCalendar_ОчиститьОсновнойКалендарь(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Google_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gcalendar", "ОчиститьОсновнойКалендарь", Опции);
-
- // END
-
- Обработать(Результат, "GoogleCalendar", "ОчиститьОсновнойКалендарь");
-
-КонецПроцедуры
-
-Процедура GoogleCalendar_УдалитьКалендарьИзСписка(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Google_Token"];
- Календарь = ПараметрыФункции["Google_NewCalendarID"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("calendar", Календарь);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gcalendar", "УдалитьКалендарьИзСписка", Опции);
-
- // END
-
- Обработать(Результат, "GoogleCalendar", "УдалитьКалендарьИзСписка");
-
-КонецПроцедуры
-
-Процедура GoogleCalendar_УдалитьКалендарь(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Google_Token"];
- Календарь = ПараметрыФункции["Google_NewCalendarID"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("calendar", Календарь);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gcalendar", "УдалитьКалендарь", Опции);
-
- // END
-
- Обработать(Результат, "GoogleCalendar", "УдалитьКалендарь");
-
-КонецПроцедуры
-
-Процедура GoogleCalendar_СоздатьСобытие(ПараметрыФункции)
-
- ТекущаяДата = OPI_Инструменты.ПолучитьТекущуюДату();
- Токен = ПараметрыФункции["Google_Token"];
- Календарь = ПараметрыФункции["Google_NewCalendarID"];
- Наименование = "Новое событие";
- Описание = "Описание тестового события";
- Час = 3600;
-
- Картинка1 = ПараметрыФункции["Picture"]; // URL, Двоичные или Путь к файлу
- Картинка2 = ПараметрыФункции["Picture2"]; // URL, Двоичные или Путь к файлу
- Вложения = Новый Соответствие;
-
- Вложения.Вставить("Картинка1", Картинка1);
- Вложения.Вставить("Картинка2", Картинка2);
-
- ОписаниеСобытия = Новый Соответствие;
- ОписаниеСобытия.Вставить("Описание" , Описание);
- ОписаниеСобытия.Вставить("Заголовок" , Наименование);
- ОписаниеСобытия.Вставить("МестоПроведения" , "В офисе");
- ОписаниеСобытия.Вставить("ДатаНачала" , ТекущаяДата);
- ОписаниеСобытия.Вставить("ДатаОкончания" , ОписаниеСобытия["ДатаНачала"] + Час);
- ОписаниеСобытия.Вставить("МассивURLФайловВложений", Вложения);
- ОписаниеСобытия.Вставить("ОтправлятьУведомления" , Истина);
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("calendar", Календарь);
- Опции.Вставить("props", ОписаниеСобытия);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gcalendar", "СоздатьСобытие", Опции);
-
- // END
-
- Обработать(Результат, "GoogleCalendar", "СоздатьСобытие", , ПараметрыФункции, Наименование, Описание);
-
-КонецПроцедуры
-
-Процедура GoogleCalendar_ИзменитьСобытие(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Google_Token"];
- Календарь = ПараметрыФункции["Google_NewCalendarID"];
- Событие = ПараметрыФункции["Google_EventID"];
- Описание = "Новое описание события";
-
- ОписаниеСобытия = Новый Соответствие;
- ОписаниеСобытия.Вставить("Описание", Описание);
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("calendar", Календарь);
- Опции.Вставить("props", ОписаниеСобытия);
- Опции.Вставить("event", Событие);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gcalendar", "ИзменитьСобытие", Опции);
-
- // END
-
- Наименование = "Новое событие";
-
- Обработать(Результат, "GoogleCalendar", "ИзменитьСобытие", , Наименование, Описание);
-
-КонецПроцедуры
-
-Процедура GoogleCalendar_ПолучитьСобытие(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Google_Token"];
- Календарь = ПараметрыФункции["Google_NewCalendarID"];
- Событие = ПараметрыФункции["Google_EventID"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("calendar", Календарь);
- Опции.Вставить("event", Событие);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gcalendar", "ПолучитьСобытие", Опции);
-
- // END
-
- Наименование = "Новое событие";
- Описание = "Новое описание события";
-
- Обработать(Результат, "GoogleCalendar", "ПолучитьСобытие", , Наименование, Описание);
-
-КонецПроцедуры
-
-Процедура GoogleCalendar_ПереместитьСобытие(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Google_Token"];
- Событие = ПараметрыФункции["Google_EventID"];
-
- КалендарьИсточник = ПараметрыФункции["Google_NewCalendarID"];
- КалендарьПриемник = ПараметрыФункции["Google_CalendarID"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("from", КалендарьИсточник);
- Опции.Вставить("to", КалендарьПриемник);
- Опции.Вставить("event", Событие);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gcalendar", "ПереместитьСобытие", Опции);
-
- // END
-
- Наименование = "Новое событие";
- Описание = "Новое описание события";
-
- Обработать(Результат, "GoogleCalendar", "ПереместитьСобытие", , Наименование, Описание);
-
- OPI_GoogleCalendar.ПереместитьСобытие(Токен, КалендарьПриемник, КалендарьИсточник, Событие);
-
-КонецПроцедуры
-
-Процедура GoogleCalendar_УдалитьСобытие(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Google_Token"];
- Календарь = ПараметрыФункции["Google_NewCalendarID"];
- Событие = ПараметрыФункции["Google_EventID"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("calendar", Календарь);
- Опции.Вставить("event", Событие);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gcalendar", "УдалитьСобытие", Опции);
-
- // END
-
- Обработать(Результат, "GoogleCalendar", "УдалитьСобытие");
-
-КонецПроцедуры
-
-Процедура GoogleCalendar_ПолучитьСписокСобытий(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Google_Token"];
- Календарь = ПараметрыФункции["Google_NewCalendarID"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("calendar", Календарь);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gcalendar", "ПолучитьСписокСобытий", Опции);
-
- // END
-
- Обработать(Результат, "GoogleCalendar", "ПолучитьСписокСобытий");
-
-КонецПроцедуры
-
-Процедура GoogleCalendar_ПолучитьОписаниеСобытия(ПараметрыФункции)
-
- Пустая = Ложь;
- Опции = Новый Структура;
- Опции.Вставить("empty", Пустая);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gcalendar", "ПолучитьОписаниеСобытия", Опции);
-
- // END
-
- Обработать(Результат, "GoogleCalendar", "ПолучитьОписаниеСобытия");
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область GoogleDrive
-
-Процедура GoogleDrive_ПолучитьСписокКаталогов(ПараметрыФункции)
-
- Имя = "Тестовая папка";
- Токен = ПараметрыФункции["Google_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("querry", Имя);
- Опции.Вставить("depth", Истина);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gdrive", "ПолучитьСписокКаталогов", Опции);
-
- // END
-
- Обработать(Результат, "GoogleDrive", "ПолучитьСписокКаталогов", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура GoogleDrive_ПолучитьИнформациюОбОбъекте(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Google_Token"];
- Идентификатор = ПараметрыФункции["GD_Catalog"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("object", Идентификатор);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gdrive", "ПолучитьИнформациюОбОбъекте", Опции);
-
- // END
-
- Обработать(Результат, "GoogleDrive", "ПолучитьИнформациюОбОбъекте");
-
-КонецПроцедуры
-
-Процедура GoogleDrive_ЗагрузитьФайл(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Google_Token"];
- Картинка = ПараметрыФункции["Picture"];
- Каталог = ПараметрыФункции["GD_Catalog"];
-
- Пустая = Ложь;
- Опции = Новый Структура;
- Опции.Вставить("empty", Пустая);
-
- Описание = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gdrive", "ПолучитьОписаниеФайла", Опции);
-
- Описание.Вставить("Родитель", Каталог);
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("file", Картинка);
- Опции.Вставить("props", Описание);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gdrive", "ЗагрузитьФайл", Опции);
-
- // END
-
- Обработать(Результат, "GoogleDrive", "ЗагрузитьФайл", , ПараметрыФункции, Описание);
-
- Если Не OPI_Инструменты.ЭтоOneScript() И ПараметрыФункции.Свойство("Big") Тогда
-
- БольшойФайл = ПараметрыФункции["Big"];
- Описание.Вставить("Имя", "big.rar");
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("file", БольшойФайл);
- Опции.Вставить("props", Описание);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gdrive", "ЗагрузитьФайл", Опции);
-
- Обработать(Результат, "GoogleDrive", "ЗагрузитьФайл", "Большой", ПараметрыФункции, Описание);
-
- КонецЕсли;
-
-КонецПроцедуры
-
-Процедура GoogleDrive_СкопироватьОбъект(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Google_Token"];
- Идентификатор = ПараметрыФункции["GD_File"];
- НовоеИмя = "Скопированный файл.jpeg";
- НовыйРодитель = "root";
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("object", Идентификатор);
- Опции.Вставить("title", НовоеИмя);
- Опции.Вставить("catalog", НовыйРодитель);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gdrive", "СкопироватьОбъект", Опции);
-
- // END
-
- Обработать(Результат, "GoogleDrive", "СкопироватьОбъект", , ПараметрыФункции, НовоеИмя);
-
-КонецПроцедуры
-
-Процедура GoogleDrive_СкачатьФайл(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Google_Token"];
- Идентификатор = ПараметрыФункции["GD_File"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("object", Идентификатор);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gdrive", "СкачатьФайл", Опции);
-
- // END
-
- Обработать(Результат, "GoogleDrive", "СкачатьФайл", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура GoogleDrive_ОбновитьФайл(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Google_Token"];
- НовоеИмя = "Обновленный файл.jpg";
- Идентификатор = ПараметрыФункции["GD_File"];
- Файл = ПараметрыФункции["Picture2"]; // URL, Двоичные данные или Путь к файлу
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("object", Идентификатор);
- Опции.Вставить("file", Файл);
- Опции.Вставить("title", НовоеИмя);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gdrive", "ОбновитьФайл", Опции);
-
- // END
-
- Обработать(Результат, "GoogleDrive", "ОбновитьФайл", , НовоеИмя);
-
-КонецПроцедуры
-
-Процедура GoogleDrive_ПолучитьСписокФайлов(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Google_Token"];
- Каталог = "root";
- ИмяСодержит = "data";
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("querry", ИмяСодержит);
- Опции.Вставить("catalog", Каталог);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gdrive", "ПолучитьСписокФайлов", Опции);
-
- // END
-
- Обработать(Результат, "GoogleDrive", "ПолучитьСписокФайлов");
-
-КонецПроцедуры
-
-Процедура GoogleDrive_УдалитьОбъект(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Google_Token"];
- Идентификатор = ПараметрыФункции["GD_File"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("object", Идентификатор);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gdrive", "УдалитьОбъект", Опции);
-
- // END
-
- Обработать(Результат, "GoogleDrive", "УдалитьОбъект");
-
- Для Каждого Удаляемый Из ПараметрыФункции["МассивУдаляемых"] Цикл
-
- Результат = OPI_GoogleDrive.УдалитьОбъект(Токен, Удаляемый);
-
- Обработать(Результат, "GoogleDrive", "УдалитьОбъект", "Дополнительный");
-
- OPI_Инструменты.Пауза(2);
-
- КонецЦикла;
-
-КонецПроцедуры
-
-Процедура GoogleDrive_ПолучитьОписаниеФайла(ПараметрыФункции)
-
- Опции = Новый Структура;
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gdrive", "ПолучитьОписаниеФайла", Опции);
-
- // END
-
- Обработать(Результат, "GoogleDrive", "ПолучитьОписаниеФайла");
-
-КонецПроцедуры
-
-Процедура GoogleDrive_СоздатьКомментарий(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Google_Token"];
- Идентификатор = ПараметрыФункции["GD_File"];
- Комментарий = "Текст комментария";
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("object", Идентификатор);
- Опции.Вставить("text", Комментарий);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gdrive", "СоздатьКомментарий", Опции);
-
- // END
-
- Обработать(Результат, "GoogleDrive", "СоздатьКомментарий", , ПараметрыФункции, Комментарий);
-
-КонецПроцедуры
-
-Процедура GoogleDrive_ПолучитьКомментарий(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Google_Token"];
- Идентификатор = ПараметрыФункции["GD_File"];
- ИДКомментария = ПараметрыФункции["GD_Comment"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("object", Идентификатор);
- Опции.Вставить("comment", ИДКомментария);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gdrive", "ПолучитьКомментарий", Опции);
-
- // END
-
- Обработать(Результат, "GoogleDrive", "ПолучитьКомментарий");
-
-КонецПроцедуры
-
-Процедура GoogleDrive_ПолучитьСписокКомментариев(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Google_Token"];
- Идентификатор = ПараметрыФункции["GD_File"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("object", Идентификатор);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gdrive", "ПолучитьСписокКомментариев", Опции);
-
- // END
-
- Обработать(Результат, "GoogleDrive", "ПолучитьСписокКомментариев");
-
-КонецПроцедуры
-
-Процедура GoogleDrive_УдалитьКомментарий(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Google_Token"];
- Идентификатор = ПараметрыФункции["GD_File"];
- ИДКомментария = ПараметрыФункции["GD_Comment"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("object", Идентификатор);
- Опции.Вставить("comment", ИДКомментария);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gdrive", "УдалитьКомментарий", Опции);
-
- // END
-
- Обработать(Результат, "GoogleDrive", "УдалитьКомментарий");
-
-КонецПроцедуры
-
-Процедура GoogleDrive_СоздатьПапку(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Google_Token"];
- Каталог = ПараметрыФункции["GD_Catalog"];
- Имя = "Тестовая папка";
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("title", Имя);
- Опции.Вставить("catalog", Каталог);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gdrive", "СоздатьПапку", Опции);
-
- // END
-
- Обработать(Результат, "GoogleDrive", "СоздатьПапку");
-
- ИДКаталога = Результат["id"];
- OPI_GoogleDrive.УдалитьОбъект(Токен, ИДКаталога);
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("title", Имя);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gdrive", "СоздатьПапку", Опции);
-
- Обработать(Результат, "GoogleDrive", "СоздатьПапку", "Корень");
-
- ИДКаталога = Результат["id"];
- OPI_GoogleDrive.УдалитьОбъект(Токен, ИДКаталога);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область GoogleSheets
-
-Процедура GoogleSheets_СоздатьКнигу(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Google_Token"];
- Наименование = "Тестовая таблица";
-
- МассивЛистов = Новый Массив;
- МассивЛистов.Добавить("Лист1");
- МассивЛистов.Добавить("Лист2");
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("title", Наименование);
- Опции.Вставить("sheets", МассивЛистов);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gsheets", "СоздатьКнигу", Опции);
-
- // END
-
- Обработать(Результат, "GoogleSheets", "СоздатьКнигу", , ПараметрыФункции, Наименование, МассивЛистов);
-
- Наименование = "Тестовая таблица (доп.)";
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("title", Наименование);
- Опции.Вставить("sheets", МассивЛистов);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gsheets", "СоздатьКнигу", Опции);
-
- Обработать(Результат, "GoogleSheets", "СоздатьКнигу", "Дополнительно", ПараметрыФункции, Наименование);
-
-КонецПроцедуры
-
-Процедура GoogleSheets_ПолучитьКнигу(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Google_Token"];
- Идентификатор = ПараметрыФункции["GS_Spreadsheet"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("spreadsheet", Идентификатор);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gsheets", "ПолучитьКнигу", Опции);
-
- // END
-
- Обработать(Результат, "GoogleSheets", "ПолучитьКнигу");
-
-КонецПроцедуры
-
-Процедура GoogleSheets_КопироватьЛист(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Google_Token"];
- Откуда = ПараметрыФункции["GS_Spreadsheet"];
- Куда = ПараметрыФункции["GS_Spreadsheet2"];
- Лист = ПараметрыФункции["GS_Sheet"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("from", Откуда);
- Опции.Вставить("to", Куда);
- Опции.Вставить("sheet", Лист);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gsheets", "КопироватьЛист", Опции);
-
- // END
-
- Обработать(Результат, "GoogleSheets", "КопироватьЛист");
-
-КонецПроцедуры
-
-Процедура GoogleSheets_ДобавитьЛист(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Google_Token"];
- Книга = ПараметрыФункции["GS_Spreadsheet"];
- Наименование = "Тестовый лист";
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("spreadsheet", Книга);
- Опции.Вставить("title", Наименование);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gsheets", "ДобавитьЛист", Опции);
-
- // END
-
- Обработать(Результат, "GoogleSheets", "ДобавитьЛист");
-
-КонецПроцедуры
-
-Процедура GoogleSheets_УдалитьЛист(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Google_Token"];
- Книга = ПараметрыФункции["GS_Spreadsheet"];
- Лист = ПараметрыФункции["GS_Sheet"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("spreadsheet", Книга);
- Опции.Вставить("sheet", Лист);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gsheets", "УдалитьЛист", Опции);
-
- // END
-
- Обработать(Результат, "GoogleSheets", "УдалитьЛист", , Книга);
-
-КонецПроцедуры
-
-Процедура GoogleSheets_ИзменитьНаименованиеКниги(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Google_Token"];
- Книга = ПараметрыФункции["GS_Spreadsheet"];
- Наименование = "Тестовая таблица (изм.)";
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("spreadsheet", Книга);
- Опции.Вставить("title", Наименование);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gsheets", "ИзменитьНаименованиеКниги", Опции);
-
- // END
-
- Обработать(Результат, "GoogleSheets", "ИзменитьНаименованиеКниги", , Книга);
-
-КонецПроцедуры
-
-Процедура GoogleSheets_ПолучитьТаблицу(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Google_Token"];
- Книга = ПараметрыФункции["GS_Spreadsheet"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("spreadsheet", Книга);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gsheets", "ПолучитьКнигу", Опции);
-
- // END
-
- Обработать(Результат, "GoogleSheets", "ПолучитьТаблицу");
-
-КонецПроцедуры
-
-Процедура GoogleSheets_УстановитьЗначенияЯчеек(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Google_Token"];
- Книга = ПараметрыФункции["GS_Spreadsheet"];
- Лист = "Лист2";
-
- СоответствиеЗначений = Новый Соответствие;
- СоответствиеЗначений.Вставить("A1", "Это A1");
- СоответствиеЗначений.Вставить("A2", "Это A2");
- СоответствиеЗначений.Вставить("B2", "Это B2");
- СоответствиеЗначений.Вставить("B3", "Это B3");
- СоответствиеЗначений.Вставить("A3", "Это A3");
- СоответствиеЗначений.Вставить("A4", "Это A4");
- СоответствиеЗначений.Вставить("B1", "Это B1");
- СоответствиеЗначений.Вставить("B4", "Это B4");
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("spreadsheet", Книга);
- Опции.Вставить("data", СоответствиеЗначений);
- Опции.Вставить("sheetname", Лист);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gsheets", "УстановитьЗначенияЯчеек", Опции);
-
- // END
-
- Обработать(Результат, "GoogleSheets", "УстановитьЗначенияЯчеек", , СоответствиеЗначений.Количество());
-
-КонецПроцедуры
-
-Процедура GoogleSheets_ПолучитьЗначенияЯчеек(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Google_Token"];
- Книга = ПараметрыФункции["GS_Spreadsheet"];
- Лист = "Лист2";
-
- МассивЯчеек = Новый Массив;
- МассивЯчеек.Добавить("B2");
- МассивЯчеек.Добавить("A3");
- МассивЯчеек.Добавить("B4");
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("spreadsheet", Книга);
- Опции.Вставить("cells", МассивЯчеек);
- Опции.Вставить("sheetname", Лист);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gsheets", "ПолучитьЗначенияЯчеек", Опции);
-
- // END
-
- Обработать(Результат, "GoogleSheets", "ПолучитьЗначенияЯчеек", , МассивЯчеек.Количество());
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("spreadsheet", Книга);
- Опции.Вставить("sheetname", Лист);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gsheets", "ПолучитьЗначенияЯчеек", Опции);
-
- Обработать(Результат, "GoogleSheets", "ПолучитьЗначенияЯчеек", "Все", Книга);
-
-КонецПроцедуры
-
-Процедура GoogleSheets_ОчиститьЯчейки(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Google_Token"];
- Книга = ПараметрыФункции["GS_Spreadsheet"];
- Лист = "Лист2";
-
- МассивЯчеек = Новый Массив;
- МассивЯчеек.Добавить("B2");
- МассивЯчеек.Добавить("A3");
- МассивЯчеек.Добавить("B4");
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("spreadsheet", Книга);
- Опции.Вставить("cells", МассивЯчеек);
- Опции.Вставить("sheetname", Лист);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("gsheets", "ОчиститьЯчейки", Опции);
-
- // END
-
- Обработать(Результат, "GoogleSheets", "ОчиститьЯчейки", , МассивЯчеек.Количество());
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область Slack
-
-Процедура Slack_ПолучитьИнформациюОБоте(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Slack_Token"];
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("slack", "ПолучитьИнформациюОБоте", Опции);
-
- // END
-
- Обработать(Результат, "Slack", "ПолучитьИнформациюОБоте");
-
-КонецПроцедуры
-
-Процедура Slack_ПолучитьСписокПользователей(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Slack_Token"];
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("slack", "ПолучитьСписокПользователей", Опции);
-
- // END
-
- Обработать(Результат, "Slack", "ПолучитьСписокПользователей");
-
-КонецПроцедуры
-
-Процедура Slack_ПолучитьСписокРабочихОбластей(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Slack_Token"];
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("slack", "ПолучитьСписокРабочихОбластей", Опции);
-
- // END
-
- Обработать(Результат, "Slack", "ПолучитьСписокРабочихОбластей");
-
-КонецПроцедуры
-
-Процедура Slack_ОтправитьСообщение(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Slack_Token"];
- Канал = ПараметрыФункции["Slack_Channel"];
-
- // Текстовое
-
- Текст = "Тестовое сообщение 1";
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("channel", Канал);
- Опции.Вставить("text", Текст);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("slack", "ОтправитьСообщение", Опции);
-
- Обработать(Результат, "Slack", "ОтправитьСообщение", , ПараметрыФункции, Текст, Канал); // SKIP
-
- // С вложениями (в примере: блок с картинкой)
-
- Текст = "Сообщение с картинкой";
- Картинка = ПараметрыФункции["Picture"];
- МассивБлоков = Новый Массив;
-
- Опции = Новый Структура;
- Опции.Вставить("picture", Картинка);
- Опции.Вставить("alt", "Картинка");
-
- Блок = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("slack", "СформироватьБлокКартинку", Опции);
- МассивБлоков.Добавить(Блок);
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("channel", Канал);
- Опции.Вставить("text", Текст);
- Опции.Вставить("blocks", МассивБлоков);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("slack", "ОтправитьСообщение", Опции);
-
- Обработать(Результат, "Slack", "ОтправитьСообщение", "Картинка", ПараметрыФункции, Текст, Канал); // SKIP
-
- // Отложенное
-
- Текст = "Отложенное сообщение";
- Час = 3600;
- Сутки = 24;
-
- ДатаОтправки = OPI_Инструменты.ПолучитьТекущуюДату() + (Сутки * Час);
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("channel", Канал);
- Опции.Вставить("text", Текст);
- Опции.Вставить("date", ДатаОтправки);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("slack", "ОтправитьСообщение", Опции);
-
- // END
-
- Обработать(Результат, "Slack", "ОтправитьСообщение", "Отложенное", ПараметрыФункции, Текст, Канал);
-
- Токен = ПараметрыФункции["Slack_Token"];
- Отметка = Результат["scheduled_message_id"];
-
- OPI_Slack.УдалитьСообщение(Токен, Канал, Отметка, Истина);
-
-КонецПроцедуры
-
-Процедура Slack_СформироватьБлокКартинку(ПараметрыФункции)
-
- Картинка = ПараметрыФункции["Picture"];
-
- Опции = Новый Структура;
- Опции.Вставить("picture", Картинка);
- Опции.Вставить("alt", "Картинка");
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("slack", "СформироватьБлокКартинку", Опции);
-
- // END
-
- Обработать(Результат, "Slack", "СформироватьБлокКартинку");
-
-КонецПроцедуры
-
-Процедура Slack_ИзменитьСообщение(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Slack_Token"];
- Канал = ПараметрыФункции["Slack_Channel"];
- Отметка = ПараметрыФункции["Slack_MessageTS"];
-
- Текст = "Тестовое сообщение 2";
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("channel", Канал);
- Опции.Вставить("stamp", Отметка);
- Опции.Вставить("text", Текст);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("slack", "ИзменитьСообщение", Опции);
-
- // END
-
- Обработать(Результат, "Slack", "ИзменитьСообщение", , Текст, Канал);
-
-КонецПроцедуры
-
-Процедура Slack_ПолучитьСписокОтветовНаСообщение(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Slack_Token"];
- Канал = ПараметрыФункции["Slack_Channel"];
- Отметка = ПараметрыФункции["Slack_MessageTS"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("channel", Канал);
- Опции.Вставить("stamp", Отметка);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("slack", "ПолучитьСписокОтветовНаСообщение", Опции);
-
- // END
-
- Обработать(Результат, "Slack", "ПолучитьСписокОтветовНаСообщение");
-
-КонецПроцедуры
-
-Процедура Slack_ПолучитьСсылкуНаСообщение(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Slack_Token"];
- Канал = ПараметрыФункции["Slack_Channel"];
- Отметка = ПараметрыФункции["Slack_MessageTS"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("channel", Канал);
- Опции.Вставить("stamp", Отметка);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("slack", "ПолучитьСсылкуНаСообщение", Опции);
-
- // END
-
- Обработать(Результат, "Slack", "ПолучитьСсылкуНаСообщение", , Канал);
-
-КонецПроцедуры
-
-Процедура Slack_УдалитьСообщение(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Slack_Token"];
- Канал = ПараметрыФункции["Slack_Channel"];
- Отметка = ПараметрыФункции["Slack_MessageTS"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("channel", Канал);
- Опции.Вставить("stamp", Отметка);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("slack", "УдалитьСообщение", Опции);
-
- // END
-
- Обработать(Результат, "Slack", "УдалитьСообщение");
-
-КонецПроцедуры
-
-Процедура Slack_ОтправитьЭфемерноеСообщение(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Slack_Token"];
- Канал = ПараметрыФункции["Slack_Channel"];
- Пользователь = ПараметрыФункции["Slack_User"];
- Картинка = ПараметрыФункции["Picture"];
- Текст = "Эфимерное сообщение";
-
- Опции = Новый Структура;
- Опции.Вставить("picture", Картинка);
- Опции.Вставить("alt", "Картинка");
-
- Блок = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("slack", "СформироватьБлокКартинку", Опции);
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("channel", Канал);
- Опции.Вставить("text", Текст);
- Опции.Вставить("user", Пользователь);
- Опции.Вставить("blocks", Блок);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("slack", "ОтправитьЭфемерноеСообщение", Опции);
-
- // END
-
- Обработать(Результат, "Slack", "ОтправитьЭфемерноеСообщение");
-
-КонецПроцедуры
-
-Процедура Slack_ПолучитьСписокОтложенныхСообщений(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Slack_Token"];
- Канал = ПараметрыФункции["Slack_Channel"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("channel", Канал);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("slack", "ПолучитьСписокОтложенныхСообщений", Опции);
-
- // END
-
- Обработать(Результат, "Slack", "ПолучитьСписокОтложенныхСообщений");
-
-КонецПроцедуры
-
-Процедура Slack_СоздатьКанал(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Slack_Token"];
- Имя = "testconv" + Строка(Новый УникальныйИдентификатор);
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("title", Имя);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("slack", "СоздатьКанал", Опции);
-
- // END
-
- Обработать(Результат, "Slack", "СоздатьКанал", , ПараметрыФункции, Имя);
-
-КонецПроцедуры
-
-Процедура Slack_УстановитьТемуКанала(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Slack_Token"];
- Канал = ПараметрыФункции["Slack_NewChannel"];
- Тема = "Тестовая тема";
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("channel", Канал);
- Опции.Вставить("theme", Тема);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("slack", "УстановитьТемуКанала", Опции);
-
- // END
-
- Обработать(Результат, "Slack", "УстановитьТемуКанала", , Тема);
-
-КонецПроцедуры
-
-Процедура Slack_УстановитьЦельКанала(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Slack_Token"];
- Канал = ПараметрыФункции["Slack_NewChannel"];
- Цель = "Тестовая цель";
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("channel", Канал);
- Опции.Вставить("purpose", Цель);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("slack", "УстановитьЦельКанала", Опции);
-
- // END
-
- Обработать(Результат, "Slack", "УстановитьЦельКанала");
-
-КонецПроцедуры
-
-Процедура Slack_ПолучитьКанал(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Slack_Token"];
- Канал = ПараметрыФункции["Slack_NewChannel"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("channel", Канал);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("slack", "ПолучитьКанал", Опции);
-
- // END
-
- Обработать(Результат, "Slack", "ПолучитьКанал", , ПараметрыФункции["Slack_NewChannelName"]);
-
-КонецПроцедуры
-
-Процедура Slack_ПригласитьПользователейВКанал(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Slack_Token"];
- Канал = ПараметрыФункции["Slack_NewChannel"];
- Пользователь = ПараметрыФункции["Slack_User"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("channel", Канал);
- Опции.Вставить("users", Пользователь);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("slack", "ПригласитьПользователейВКанал", Опции);
-
- // END
-
- Обработать(Результат, "Slack", "ПригласитьПользователейВКанал", , ПараметрыФункции["Slack_NewChannelName"]);
-
-КонецПроцедуры
-
-Процедура Slack_ВыгнатьПользователяИзКанала(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Slack_Token"];
- Канал = ПараметрыФункции["Slack_NewChannel"];
- Пользователь = ПараметрыФункции["Slack_User"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("channel", Канал);
- Опции.Вставить("user", Пользователь);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("slack", "ВыгнатьПользователяИзКанала", Опции);
-
- // END
-
- Обработать(Результат, "Slack", "ВыгнатьПользователяИзКанала");
-
-КонецПроцедуры
-
-Процедура Slack_ПолучитьИсториюКанала(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Slack_Token"];
- Канал = ПараметрыФункции["Slack_NewChannel"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("channel", Канал);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("slack", "ПолучитьИсториюКанала", Опции);
-
- // END
-
- Обработать(Результат, "Slack", "ПолучитьИсториюКанала");
-
-КонецПроцедуры
-
-Процедура Slack_ПолучитьСписокПользователейКанала(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Slack_Token"];
- Канал = ПараметрыФункции["Slack_NewChannel"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("channel", Канал);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("slack", "ПолучитьСписокПользователейКанала", Опции);
-
- // END
-
- Обработать(Результат, "Slack", "ПолучитьСписокПользователейКанала");
-
-КонецПроцедуры
-
-Процедура Slack_ПокинутьКанал(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Slack_Token"];
- Канал = ПараметрыФункции["Slack_NewChannel"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("channel", Канал);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("slack", "ПокинутьКанал", Опции);
-
- // END
-
- Обработать(Результат, "Slack", "ПокинутьКанал");
-
-КонецПроцедуры
-
-Процедура Slack_ВступитьВКанал(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Slack_Token"];
- Канал = ПараметрыФункции["Slack_NewChannel"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("channel", Канал);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("slack", "ВступитьВКанал", Опции);
-
- // END
-
- Обработать(Результат, "Slack", "ВступитьВКанал", , ПараметрыФункции["Slack_NewChannelName"]);
-
-КонецПроцедуры
-
-Процедура Slack_ПереименоватьКанал(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Slack_Token"];
- Канал = ПараметрыФункции["Slack_NewChannel"];
- Название = "testconv" + Строка(Новый УникальныйИдентификатор);
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("channel", Канал);
- Опции.Вставить("title", Название);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("slack", "ПереименоватьКанал", Опции);
-
- // END
-
- Обработать(Результат, "Slack", "ПереименоватьКанал", , Название);
-
-КонецПроцедуры
-
-Процедура Slack_АрхивироватьКанал(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Slack_Token"];
- Канал = ПараметрыФункции["Slack_NewChannel"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("channel", Канал);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("slack", "АрхивироватьКанал", Опции);
-
- // END
-
- Обработать(Результат, "Slack", "АрхивироватьКанал");
-
-КонецПроцедуры
-
-Процедура Slack_ПолучитьСписокКаналов(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Slack_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("slack", "ПолучитьСписокКаналов", Опции);
-
- // END
-
- Обработать(Результат, "Slack", "ПолучитьСписокКаналов");
-
-КонецПроцедуры
-
-Процедура Slack_ОткрытьДиалог(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Slack_Token"];
- Пользователь = ПараметрыФункции["Slack_User"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("users", Пользователь);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("slack", "ОткрытьДиалог", Опции);
-
- // END
-
- Обработать(Результат, "Slack", "ОткрытьДиалог", , ПараметрыФункции);
-
- Канал = Результат["channel"]["id"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("channel", Канал);
- Опции.Вставить("text", "Тест диалог");
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("slack", "ОтправитьСообщение", Опции);
-
- Обработать(Результат, "Slack", "ОткрытьДиалог", "Сообщение", ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура Slack_ЗакрытьДиалог(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Slack_Token"];
- Диалог = ПараметрыФункции["Slack_Dialog"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("conv", Диалог);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("slack", "ЗакрытьДиалог", Опции);
-
- // END
-
- Обработать(Результат, "Slack", "ЗакрытьДиалог");
-
-КонецПроцедуры
-
-Процедура Slack_ПолучитьСписокФайлов(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Slack_Token"];
- Канал = ПараметрыФункции["Slack_Channel"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("channel", Канал);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("slack", "ПолучитьСписокФайлов", Опции);
-
- // END
-
- Обработать(Результат, "Slack", "ПолучитьСписокФайлов");
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("slack", "ПолучитьСписокФайлов", Опции);
-
- Обработать(Результат, "Slack", "ПолучитьСписокФайлов", "Все");
-
-КонецПроцедуры
-
-Процедура Slack_ЗагрузитьФайл(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Slack_Token"];
- Канал = ПараметрыФункции["Slack_Channel"];
- Файл = ПараметрыФункции["Document"]; // URL, Двоичные данные или Путь к файлу
-
- ИмяФайла = "megadoc.docx";
- Заголовок = "Новый файл";
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("file", Файл);
- Опции.Вставить("filename", ИмяФайла);
- Опции.Вставить("title", Заголовок);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("slack", "ЗагрузитьФайл", Опции);
-
- Обработать(Результат, "Slack", "ЗагрузитьФайл", , ПараметрыФункции, ИмяФайла); // SKIP
- Обработать(Результат, "Slack", "СделатьФайлПубличным"); // SKIP
- Обработать(Результат, "Slack", "СделатьФайлПриватным"); // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("file", Файл);
- Опции.Вставить("filename", ИмяФайла);
- Опции.Вставить("title", Заголовок);
- Опции.Вставить("channel", Канал);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("slack", "ЗагрузитьФайл", Опции);
-
- // END
-
- Обработать(Результат, "Slack", "ЗагрузитьФайл", "Канал", ПараметрыФункции, ИмяФайла);
- OPI_Slack.УдалитьФайл(ПараметрыФункции["Slack_Token"], Результат["files"][0]["id"]);
-
-КонецПроцедуры
-
-Процедура Slack_СделатьФайлПубличным(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Slack_Token"];
- ИдентификаторФайла = ПараметрыФункции["Slack_FileID"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("fileid", ИдентификаторФайла);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("slack", "СделатьФайлПубличным", Опции);
-
- // END
-
- Обработать(Результат, "Slack", "СделатьФайлПубличным", "Без записи");
-
-КонецПроцедуры
-
-Процедура Slack_СделатьФайлПриватным(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Slack_Token"];
- ИдентификаторФайла = ПараметрыФункции["Slack_FileID"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("fileid", ИдентификаторФайла);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("slack", "СделатьФайлПриватным", Опции);
-
- // END
-
- Обработать(Результат, "Slack", "СделатьФайлПриватным", "Без записи");
-
-КонецПроцедуры
-
-Процедура Slack_ПолучитьДанныеФайла(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Slack_Token"];
- ИдентификаторФайла = ПараметрыФункции["Slack_FileID"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("fileid", ИдентификаторФайла);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("slack", "ПолучитьДанныеФайла", Опции);
-
- // END
-
- Обработать(Результат, "Slack", "ПолучитьДанныеФайла", , "megadoc.docx");
-
-КонецПроцедуры
-
-Процедура Slack_УдалитьФайл(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Slack_Token"];
- ИдентификаторФайла = ПараметрыФункции["Slack_FileID"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("fileid", ИдентификаторФайла);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("slack", "УдалитьФайл", Опции);
-
- // END
-
- Обработать(Результат, "Slack", "УдалитьФайл");
-
-КонецПроцедуры
-
-Процедура Slack_ПолучитьСписокВнешнихФайлов(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Slack_Token"];
- Канал = ПараметрыФункции["Slack_Channel"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("channel", Канал);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("slack", "ПолучитьСписокВнешнихФайлов", Опции);
-
- // END
-
- Обработать(Результат, "Slack", "ПолучитьСписокВнешнихФайлов");
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("slack", "ПолучитьСписокВнешнихФайлов", Опции);
-
- Обработать(Результат, "Slack", "ПолучитьСписокВнешнихФайлов", "Все");
-
-КонецПроцедуры
-
-Процедура Slack_ДобавитьВнешнийФайл(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Slack_Token"];
- Заголовок = "Новый файл";
- Файл = ПараметрыФункции["Document"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("url", Файл);
- Опции.Вставить("title", Заголовок);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("slack", "ДобавитьВнешнийФайл", Опции);
-
- // END
-
- Обработать(Результат, "Slack", "ДобавитьВнешнийФайл", , ПараметрыФункции, Заголовок);
-
-КонецПроцедуры
-
-Процедура Slack_ПолучитьВнешнийФайл(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Slack_Token"];
- ИдентификаторФайла = ПараметрыФункции["Slack_ExtFileID"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("fileid", ИдентификаторФайла);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("slack", "ПолучитьВнешнийФайл", Опции);
-
- // END
-
- Обработать(Результат, "Slack", "ПолучитьВнешнийФайл");
-
-КонецПроцедуры
-
-Процедура Slack_ОтправитьВнешнийФайл(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Slack_Token"];
- Канал = ПараметрыФункции["Slack_Channel"];
- ИдентификаторФайла = ПараметрыФункции["Slack_ExtFileID"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("fileid", ИдентификаторФайла);
- Опции.Вставить("channels", Канал);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("slack", "ОтправитьВнешнийФайл", Опции);
-
- // END
-
- Обработать(Результат, "Slack", "ОтправитьВнешнийФайл");
-
-КонецПроцедуры
-
-Процедура Slack_УдалитьВнешнийФайл(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Slack_Token"];
- ИдентификаторФайла = ПараметрыФункции["Slack_ExtFileID"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("fileid", ИдентификаторФайла);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("slack", "УдалитьВнешнийФайл", Опции);
-
- // END
-
- Обработать(Результат, "Slack", "УдалитьВнешнийФайл");
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область Airtable
-
-Процедура Airtable_СоздатьБазу(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Airtable_Token"];
- Область = ПараметрыФункции["Airtable_Workspace"];
- Наименование = "Тестовая база";
-
- МассивПолей = Новый Массив;
- МассивПолей.Добавить(OPI_Airtable.ПолучитьПолеНомера("Номер"));
- МассивПолей.Добавить(OPI_Airtable.ПолучитьПолеСтроковое("Строковое"));
-
- ИмяТаблицы = "Тестовая таблица";
-
- СоответствиеТаблиц = Новый Соответствие;
- СоответствиеТаблиц.Вставить(ИмяТаблицы, МассивПолей);
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("ws", Область);
- Опции.Вставить("title", Наименование);
- Опции.Вставить("tablesdata", СоответствиеТаблиц);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("airtable", "СоздатьБазу", Опции);
-
- // END
-
- Обработать(Результат, "Airtable", "СоздатьБазу", , ПараметрыФункции, ИмяТаблицы);
-
-КонецПроцедуры
-
-Процедура Airtable_ПолучитьТаблицыБазы(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Airtable_Token"];
- База = ПараметрыФункции["Airtable_Base"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("base", База);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("airtable", "ПолучитьТаблицыБазы", Опции);
-
- // END
-
- Обработать(Результат, "Airtable", "ПолучитьТаблицыБазы");
-
-КонецПроцедуры
-
-Процедура Airtable_ПолучитьСписокБаз(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Airtable_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("airtable", "ПолучитьСписокБаз", Опции);
-
- // END
-
- Обработать(Результат, "Airtable", "ПолучитьСписокБаз");
-
-КонецПроцедуры
-
-Процедура Airtable_ПолучитьПолеНомера(ПараметрыФункции)
-
- Опции = Новый Структура;
- Опции.Вставить("title", "Номер");
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("airtable", "ПолучитьПолеНомера", Опции);
-
- // END
-
- Обработать(Результат, "Airtable", "ПолучитьПолеНомера");
-
-КонецПроцедуры
-
-Процедура Airtable_ПолучитьПолеСтроковое(ПараметрыФункции)
-
- Опции = Новый Структура;
- Опции.Вставить("title", "Строковое");
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("airtable", "ПолучитьПолеСтроковое", Опции);
-
- // END
-
- Обработать(Результат, "Airtable", "ПолучитьПолеСтроковое");
-
-КонецПроцедуры
-
-Процедура Airtable_ПолучитьПолеВложения(ПараметрыФункции)
-
- Опции = Новый Структура;
- Опции.Вставить("title", "Вложение");
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("airtable", "ПолучитьПолеВложения", Опции);
-
- // END
-
- Обработать(Результат, "Airtable", "ПолучитьПолеВложения");
-
-КонецПроцедуры
-
-Процедура Airtable_ПолучитьПолеФлажка(ПараметрыФункции)
-
- Опции = Новый Структура;
- Опции.Вставить("title", "Флажок");
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("airtable", "ПолучитьПолеФлажка", Опции);
-
- // END
-
- Обработать(Результат, "Airtable", "ПолучитьПолеФлажка");
-
-КонецПроцедуры
-
-Процедура Airtable_ПолучитьПолеДаты(ПараметрыФункции)
-
- Опции = Новый Структура;
- Опции.Вставить("title", "Дата");
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("airtable", "ПолучитьПолеДаты", Опции);
-
- // END
-
- Обработать(Результат, "Airtable", "ПолучитьПолеДаты");
-
-КонецПроцедуры
-
-Процедура Airtable_ПолучитьПолеТелефона(ПараметрыФункции)
-
- Опции = Новый Структура;
- Опции.Вставить("title", "Телефон");
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("airtable", "ПолучитьПолеТелефона", Опции);
-
- // END
-
- Обработать(Результат, "Airtable", "ПолучитьПолеТелефона");
-
-КонецПроцедуры
-
-Процедура Airtable_ПолучитьПолеПочты(ПараметрыФункции)
-
- Опции = Новый Структура;
- Опции.Вставить("title", "Почта");
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("airtable", "ПолучитьПолеПочты", Опции);
-
- // END
-
- Обработать(Результат, "Airtable", "ПолучитьПолеПочты");
-
-КонецПроцедуры
-
-Процедура Airtable_ПолучитьПолеСсылки(ПараметрыФункции)
-
- Опции = Новый Структура;
- Опции.Вставить("title", "Ссылка");
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("airtable", "ПолучитьПолеСсылки", Опции);
-
- // END
-
- Обработать(Результат, "Airtable", "ПолучитьПолеСсылки");
-
-КонецПроцедуры
-
-Процедура Airtable_СоздатьТаблицу(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Airtable_Token"];
- База = ПараметрыФункции["Airtable_Base"];
-
- МассивПолей = Новый Массив;
- МассивПолей.Добавить(OPI_Airtable.ПолучитьПолеНомера("Номер"));
- МассивПолей.Добавить(OPI_Airtable.ПолучитьПолеСтроковое("Строковое"));
- МассивПолей.Добавить(OPI_Airtable.ПолучитьПолеВложения("Вложение"));
- МассивПолей.Добавить(OPI_Airtable.ПолучитьПолеФлажка("Флажок"));
- МассивПолей.Добавить(OPI_Airtable.ПолучитьПолеДаты("Дата"));
- МассивПолей.Добавить(OPI_Airtable.ПолучитьПолеТелефона("Телефон"));
- МассивПолей.Добавить(OPI_Airtable.ПолучитьПолеПочты("Почта"));
- МассивПолей.Добавить(OPI_Airtable.ПолучитьПолеСсылки("Ссылка"));
-
- Наименование = "Тестовая таблица 2";
- Описание = "Новая таблица";
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("base", База);
- Опции.Вставить("title", Наименование);
- Опции.Вставить("fieldsdata", МассивПолей);
- Опции.Вставить("description", Описание);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("airtable", "СоздатьТаблицу", Опции);
-
- // END
-
- Обработать(Результат, "Airtable", "СоздатьТаблицу", , ПараметрыФункции, Наименование, Описание);
-
-КонецПроцедуры
-
-Процедура Airtable_ИзменитьТаблицу(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Airtable_Token"];
- База = ПараметрыФункции["Airtable_Base"];
- Таблица = ПараметрыФункции["Airtable_Table"];
- Наименование = "Тестовая таблица 2 (изм.)";
- Описание = "Новая таблица (изм.)";
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("base", База);
- Опции.Вставить("table", Таблица);
- Опции.Вставить("title", Наименование);
- Опции.Вставить("description", Описание);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("airtable", "ИзменитьТаблицу", Опции);
-
- // END
-
- Обработать(Результат, "Airtable", "ИзменитьТаблицу", , Наименование, Описание);
-
-КонецПроцедуры
-
-Процедура Airtable_СоздатьПоле(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Airtable_Token"];
- База = ПараметрыФункции["Airtable_Base"];
- Таблица = ПараметрыФункции["Airtable_Table"];
- Имя = Строка(Новый УникальныйИдентификатор);
-
- Опции = Новый Структура;
- Опции.Вставить("title", Имя);
-
- Поле = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("airtable", "ПолучитьПолеНомера", Опции);
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("base", База);
- Опции.Вставить("table", Таблица);
- Опции.Вставить("fielddata", Поле);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("airtable", "СоздатьПоле", Опции);
-
- // END
-
- Обработать(Результат, "Airtable", "СоздатьПоле", , ПараметрыФункции, Имя);
-
-КонецПроцедуры
-
-Процедура Airtable_ИзменитьПоле(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Airtable_Token"];
- База = ПараметрыФункции["Airtable_Base"];
- Таблица = ПараметрыФункции["Airtable_Table"];
- Поле = ПараметрыФункции["Airtable_Field"];
-
- Имя = Строка(Новый УникальныйИдентификатор) + "(изм.)";
- Описание = "Новое описание";
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("base", База);
- Опции.Вставить("table", Таблица);
- Опции.Вставить("field", Поле);
- Опции.Вставить("title", Имя);
- Опции.Вставить("description", Описание);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("airtable", "ИзменитьПоле", Опции);
-
- // END
-
- Обработать(Результат, "Airtable", "ИзменитьПоле", , Имя, Описание);
-
-КонецПроцедуры
-
-Процедура Airtable_СоздатьЗаписи(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Airtable_Token"];
- База = ПараметрыФункции["Airtable_Base"];
- Таблица = ПараметрыФункции["Airtable_Table"];
-
- Номер = 10;
- Строковое = "Привет";
-
- ОписаниеСтроки1 = Новый Структура("Номер,Строковое", Номер, Строковое);
- ОписаниеСтроки2 = Новый Структура("Номер,Строковое", Номер, Строковое);
-
- МассивОписаний = Новый Массив;
- МассивОписаний.Добавить(ОписаниеСтроки1);
- МассивОписаний.Добавить(ОписаниеСтроки2);
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("base", База);
- Опции.Вставить("table", Таблица);
- Опции.Вставить("data", МассивОписаний);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("airtable", "СоздатьЗаписи", Опции);
-
- // END
-
- Обработать(Результат, "Airtable", "СоздатьЗаписи", , ПараметрыФункции);
-
- МассивУдаляемых = Новый Массив;
-
- Для Каждого Запись Из Результат["records"] Цикл
-
- ТекущаяЗапись = Запись["id"];
- МассивУдаляемых.Добавить(ТекущаяЗапись);
-
- КонецЦикла;
-
- OPI_Airtable.УдалитьЗаписи(Токен, База, Таблица, МассивУдаляемых);
-
- // Одиночное
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("base", База);
- Опции.Вставить("table", Таблица);
- Опции.Вставить("data", ОписаниеСтроки1);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("airtable", "СоздатьЗаписи", Опции);
-
- Обработать(Результат, "Airtable", "СоздатьЗаписи", "Одиночная", ПараметрыФункции, Номер, Строковое);
-
-КонецПроцедуры
-
-Процедура Airtable_ПолучитьЗапись(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Airtable_Token"];
- База = ПараметрыФункции["Airtable_Base"];
- Таблица = ПараметрыФункции["Airtable_Table"];
- Запись = ПараметрыФункции["Airtable_Record"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("base", База);
- Опции.Вставить("table", Таблица);
- Опции.Вставить("record", Запись);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("airtable", "ПолучитьЗапись", Опции);
-
- // END
-
- Обработать(Результат, "Airtable", "ПолучитьЗапись", , Запись);
-
-КонецПроцедуры
-
-Процедура Airtable_СоздатьКомментарий(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Airtable_Token"];
- База = ПараметрыФункции["Airtable_Base"];
- Таблица = ПараметрыФункции["Airtable_Table"];
- Запись = ПараметрыФункции["Airtable_Record"];
- Текст = "Тестовый комментарий";
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("base", База);
- Опции.Вставить("table", Таблица);
- Опции.Вставить("record", Запись);
- Опции.Вставить("text", Текст);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("airtable", "СоздатьКомментарий", Опции);
-
- // END
-
- Обработать(Результат, "Airtable", "СоздатьКомментарий", , ПараметрыФункции, Текст);
-
-КонецПроцедуры
-
-Процедура Airtable_ИзменитьКомментарий(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Airtable_Token"];
- База = ПараметрыФункции["Airtable_Base"];
- Таблица = ПараметрыФункции["Airtable_Table"];
- Запись = ПараметрыФункции["Airtable_Record"];
- Комментарий = ПараметрыФункции["Airtable_Comment"];
-
- Текст = "Тестовый комментарий (изм.)";
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("base", База);
- Опции.Вставить("table", Таблица);
- Опции.Вставить("record", Запись);
- Опции.Вставить("comment", Комментарий);
- Опции.Вставить("text", Текст);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("airtable", "ИзменитьКомментарий", Опции);
-
- // END
-
- Обработать(Результат, "Airtable", "ИзменитьКомментарий", , Текст);
-
-КонецПроцедуры
-
-Процедура Airtable_ПолучитьКомментарии(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Airtable_Token"];
- База = ПараметрыФункции["Airtable_Base"];
- Таблица = ПараметрыФункции["Airtable_Table"];
- Запись = ПараметрыФункции["Airtable_Record"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("base", База);
- Опции.Вставить("table", Таблица);
- Опции.Вставить("record", Запись);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("airtable", "ПолучитьКомментарии", Опции);
-
- // END
-
- Обработать(Результат, "Airtable", "ПолучитьКомментарии");
-
-КонецПроцедуры
-
-Процедура Airtable_УдалитьКомментарий(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Airtable_Token"];
- База = ПараметрыФункции["Airtable_Base"];
- Таблица = ПараметрыФункции["Airtable_Table"];
- Запись = ПараметрыФункции["Airtable_Record"];
- Комментарий = ПараметрыФункции["Airtable_Comment"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("base", База);
- Опции.Вставить("table", Таблица);
- Опции.Вставить("record", Запись);
- Опции.Вставить("comment", Комментарий);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("airtable", "УдалитьКомментарий", Опции);
-
- // END
-
- Обработать(Результат, "Airtable", "УдалитьКомментарий", , Комментарий);
-
-КонецПроцедуры
-
-Процедура Airtable_ПолучитьСписокЗаписей(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Airtable_Token"];
- База = ПараметрыФункции["Airtable_Base"];
- Таблица = ПараметрыФункции["Airtable_Table"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("base", База);
- Опции.Вставить("table", Таблица);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("airtable", "ПолучитьСписокЗаписей", Опции);
-
- // END
-
- Обработать(Результат, "Airtable", "ПолучитьСписокЗаписей");
-
-КонецПроцедуры
-
-Процедура Airtable_УдалитьЗаписи(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Airtable_Token"];
- База = ПараметрыФункции["Airtable_Base"];
- Таблица = ПараметрыФункции["Airtable_Table"];
- Запись = ПараметрыФункции["Airtable_Record"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("base", База);
- Опции.Вставить("table", Таблица);
- Опции.Вставить("records", Запись);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("airtable", "УдалитьЗаписи", Опции);
-
- // END
-
- Обработать(Результат, "Airtable", "УдалитьЗаписи");
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область Twitter
-
-Процедура Twitter_ПолучитьТокен(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыАвторизацииТвиттер();
- Код = "123456";
-
- Опции = Новый Структура;
- Опции.Вставить("code", Код);
- Опции.Вставить("auth", Параметры);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("twitter", "ПолучитьТокен", Опции);
-
- // END
-
- Обработать(Результат, "Twitter", "ПолучитьТокен");
-
-КонецПроцедуры
-
-Процедура Twitter_ПолучитьСсылкуАвторизации(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыАвторизацииТвиттер();
- Опции = Новый Структура;
- Опции.Вставить("auth", Параметры);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("twitter", "ПолучитьСсылкуАвторизации", Опции);
-
- // END
-
- Обработать(Результат, "Twitter", "ПолучитьСсылкуАвторизации");
-
-КонецПроцедуры
-
-Процедура Twitter_ОбновитьТокен(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыАвторизацииТвиттер();
- Опции = Новый Структура;
- Опции.Вставить("auth", Параметры);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("twitter", "ОбновитьТокен", Опции);
-
- // END
-
- Обработать(Результат, "Twitter", "ОбновитьТокен");
-
-КонецПроцедуры
-
-Процедура Twitter_СоздатьТекстовыйТвит(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыАвторизацииТвиттер();
- Текст = "Тестовый твитт" + Строка(Новый УникальныйИдентификатор);
-
- Опции = Новый Структура;
- Опции.Вставить("text", Текст);
- Опции.Вставить("auth", Параметры);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("twitter", "СоздатьТекстовыйТвит", Опции);
-
- // END
-
- Обработать(Результат, "Twitter", "СоздатьТекстовыйТвит", , Текст);
-
-КонецПроцедуры
-
-Процедура Twitter_СоздатьТвитКартинки(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыАвторизацииТвиттер();
- Текст = "Тестовый твитт" + Строка(Новый УникальныйИдентификатор);
-
- Картинка = ПараметрыФункции["Picture"]; // URL, Двоичные или Путь к файлу
- Картинка2 = ПараметрыФункции["Picture2"]; // URL, Двоичные или Путь к файлу
-
- МассивКартинок = Новый Массив;
- МассивКартинок.Добавить(Картинка);
- МассивКартинок.Добавить(Картинка2);
-
- Опции = Новый Структура;
- Опции.Вставить("text", Текст);
- Опции.Вставить("pictures", МассивКартинок);
- Опции.Вставить("auth", Параметры);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("twitter", "СоздатьТвитКартинки", Опции);
-
- Обработать(Результат, "Twitter", "СоздатьТвитКартинки", , Текст); // SKIP
-
- Текст = "Тестовый твитт" + Строка(Новый УникальныйИдентификатор);
- Опции = Новый Структура;
- Опции.Вставить("text", Текст);
- Опции.Вставить("pictures", Картинка);
- Опции.Вставить("auth", Параметры);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("twitter", "СоздатьТвитКартинки", Опции);
-
- // END
-
- Обработать(Результат, "Twitter", "СоздатьТвитКартинки", "Одиночная", Текст);
-
- Картинка = OPI_ЗапросыHTTP.Get(Картинка);
-
- Текст = "Тестовый твитт" + Строка(Новый УникальныйИдентификатор);
- Опции = Новый Структура;
- Опции.Вставить("text", Текст);
- Опции.Вставить("pictures", Картинка);
- Опции.Вставить("auth", Параметры);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("twitter", "СоздатьТвитКартинки", Опции);
-
- Обработать(Результат, "Twitter", "СоздатьТвитКартинки", "Двоичные", Текст);
-
-КонецПроцедуры
-
-Процедура Twitter_СоздатьТвитВидео(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыАвторизацииТвиттер();
- Текст = "Тестовый твитт" + Строка(Новый УникальныйИдентификатор);
-
- Видео = ПараметрыФункции["Video"]; // URL, Двоичные или Путь к файлу
- Видео2 = ПараметрыФункции["Video"]; // URL, Двоичные или Путь к файлу
-
- МассивВидео = Новый Массив;
- МассивВидео.Добавить(Видео);
- МассивВидео.Добавить(Видео2);
-
- Опции = Новый Структура;
- Опции.Вставить("text", Текст);
- Опции.Вставить("videos", МассивВидео);
- Опции.Вставить("auth", Параметры);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("twitter", "СоздатьТвитВидео", Опции);
-
- Обработать(Результат, "Twitter", "СоздатьТвитВидео", , Текст); // SKIP
-
- Текст = "Тестовый твитт" + Строка(Новый УникальныйИдентификатор);
- Опции = Новый Структура;
- Опции.Вставить("text", Текст);
- Опции.Вставить("videos", Видео);
- Опции.Вставить("auth", Параметры);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("twitter", "СоздатьТвитВидео", Опции);
-
- // END
-
- Обработать(Результат, "Twitter", "СоздатьТвитВидео", "Одиночная", Текст);
-
- Видео = OPI_ЗапросыHTTP.Get(Видео);
-
- Текст = "Тестовый твитт" + Строка(Новый УникальныйИдентификатор);
- Опции = Новый Структура;
- Опции.Вставить("text", Текст);
- Опции.Вставить("videos", Видео);
- Опции.Вставить("auth", Параметры);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("twitter", "СоздатьТвитВидео", Опции);
-
- Обработать(Результат, "Twitter", "СоздатьТвитВидео", "Двоичные", Текст);
-
-КонецПроцедуры
-
-Процедура Twitter_СоздатьТвитГифки(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыАвторизацииТвиттер();
- Текст = "Тестовый твитт" + Строка(Новый УникальныйИдентификатор);
-
- Гифка = ПараметрыФункции["GIF"]; // URL, Двоичные или Путь к файлу
- Гифка2 = ПараметрыФункции["GIF"]; // URL, Двоичные или Путь к файлу
-
- МассивГифок = Новый Массив;
- МассивГифок.Добавить(Гифка);
- МассивГифок.Добавить(Гифка2);
-
- Опции = Новый Структура;
- Опции.Вставить("text", Текст);
- Опции.Вставить("gifs", МассивГифок);
- Опции.Вставить("auth", Параметры);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("twitter", "СоздатьТвитГифки", Опции);
-
- Обработать(Результат, "Twitter", "СоздатьТвитГифки", , Текст); // SKIP
-
- Текст = "Тестовый твитт" + Строка(Новый УникальныйИдентификатор);
- Опции = Новый Структура;
- Опции.Вставить("text", Текст);
- Опции.Вставить("gifs", Гифка);
- Опции.Вставить("auth", Параметры);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("twitter", "СоздатьТвитГифки", Опции);
-
- // END
-
- Обработать(Результат, "Twitter", "СоздатьТвитГифки", "Одиночная", Текст);
-
- Гифка = OPI_ЗапросыHTTP.Get(Гифка);
-
- Текст = "Тестовый твитт" + Строка(Новый УникальныйИдентификатор);
- Опции = Новый Структура;
- Опции.Вставить("text", Текст);
- Опции.Вставить("gifs", Гифка);
- Опции.Вставить("auth", Параметры);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("twitter", "СоздатьТвитГифки", Опции);
-
- Обработать(Результат, "Twitter", "СоздатьТвитГифки", "Двоичные", Текст);
-
-КонецПроцедуры
-
-Процедура Twitter_СоздатьТвитОпрос(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыАвторизацииТвиттер();
- Текст = "Тестовый твитт" + Строка(Новый УникальныйИдентификатор);
-
- МассивОтветов = Новый Массив;
- МассивОтветов.Добавить("Вариант 1");
- МассивОтветов.Добавить("Вариант 2");
-
- Опции = Новый Структура;
- Опции.Вставить("text", Текст);
- Опции.Вставить("options", МассивОтветов);
- Опции.Вставить("duration", 60);
- Опции.Вставить("auth", Параметры);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("twitter", "СоздатьТвитОпрос", Опции);
-
- // END
-
- Обработать(Результат, "Twitter", "СоздатьТвитОпрос", , Текст);
-
-КонецПроцедуры
-
-Процедура Twitter_СоздатьПроизвольныйТвит(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыАвторизацииТвиттер();
- Текст = "Тестовый твитт" + Строка(Новый УникальныйИдентификатор);
-
- Картинка1 = ПараметрыФункции["Picture"]; // URL, Двоичные данные или Путь к файлу
- Картинка2 = ПараметрыФункции["Picture2"]; // URL, Двоичные данные или Путь к файлу
-
- МассивКартинок = Новый Массив;
- МассивКартинок.Добавить(Картинка1);
- МассивКартинок.Добавить(Картинка2);
-
- Опции = Новый Структура;
- Опции.Вставить("files", МассивКартинок);
- Опции.Вставить("type", "tweet_image");
- Опции.Вставить("auth", Параметры);
-
- МассивМедиа = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("twitter", "ЗагрузитьМассивВложений", Опции);
- Опции = Новый Структура;
- Опции.Вставить("text", Текст);
- Опции.Вставить("media", МассивМедиа);
- Опции.Вставить("auth", Параметры);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("twitter", "СоздатьПроизвольныйТвит", Опции);
-
- // END
-
- Обработать(Результат, "Twitter", "СоздатьПроизвольныйТвит", , Текст);
-
-КонецПроцедуры
-
-Процедура Twitter_ЗагрузитьМассивВложений(ПараметрыФункции)
-
- Параметры = ПолучитьПараметрыАвторизацииТвиттер();
-
- Картинка1 = ПараметрыФункции["Picture"]; // URL, Двоичные данные или Путь к файлу
- Картинка2 = ПараметрыФункции["Picture2"]; // URL, Двоичные данные или Путь к файлу
-
- МассивКартинок = Новый Массив;
- МассивКартинок.Добавить(Картинка1);
- МассивКартинок.Добавить(Картинка2);
-
- Опции = Новый Структура;
- Опции.Вставить("files", МассивКартинок);
- Опции.Вставить("type", "tweet_image");
- Опции.Вставить("auth", Параметры);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("twitter", "ЗагрузитьМассивВложений", Опции);
-
- // END
-
- Обработать(Результат, "Twitter", "ЗагрузитьМассивВложений");
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область Notion
-
-Процедура Notion_СоздатьСтраницу(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Notion_Token"];
- Родитель = ПараметрыФункции["Notion_Parent"];
- Заголовок = "Тестовый заголовок";
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("page", Родитель);
- Опции.Вставить("title", Заголовок);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("notion", "СоздатьСтраницу", Опции);
-
- // END
-
- Обработать(Результат, "Notion", "СоздатьСтраницу", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура Notion_СоздатьБазуДанных(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Notion_Token"];
- Родитель = ПараметрыФункции["Notion_Parent"];
- Заголовок = "Тестовый заголовок";
-
- Свойства = Новый Соответствие;
- Свойства.Вставить("Имя" , "title");
- Свойства.Вставить("Описание" , "rich_text");
- Свойства.Вставить("Номер" , "number");
- Свойства.Вставить("Дата создания", "date");
- Свойства.Вставить("Картинка" , "files");
- Свойства.Вставить("Активен" , "checkbox");
- Свойства.Вставить("Сайт" , "url");
- Свойства.Вставить("Почта" , "email");
- Свойства.Вставить("Телефон" , "phone_number");
- Свойства.Вставить("Пользователь" , "people");
-
- ВыборЗначения = Новый Соответствие;
- ВыборЗначения.Вставить("Новый" , "green");
- ВыборЗначения.Вставить("В работе" , "yellow");
- ВыборЗначения.Вставить("Удаленный", "red");
-
- Свойства.Вставить("Статус", ВыборЗначения);
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("page", Родитель);
- Опции.Вставить("title", Заголовок);
- Опции.Вставить("props", Свойства);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("notion", "СоздатьБазуДанных", Опции);
-
- // END
-
- Обработать(Результат, "Notion", "СоздатьБазуДанных", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура Notion_ИзменитьСвойстваБазы(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Notion_Token"];
- База = ПараметрыФункции["Notion_Base"];
-
- Заголовок = "Тестовый заголовок";
- Описание = "Тестовое описание";
-
- Свойства = Новый Соответствие;
- Свойства.Вставить("Почта", "rich_text"); // Тип поля "Почта" будет изменен с email на текст
- Свойства.Вставить("Сайт"); // Поле "Сайт" будет удалено
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("base", База);
- Опции.Вставить("props", Свойства);
- Опции.Вставить("title", Заголовок);
- Опции.Вставить("description", Описание);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("notion", "ИзменитьСвойстваБазы", Опции);
-
- // END
-
- Обработать(Результат, "Notion", "ИзменитьСвойстваБазы");
-
-КонецПроцедуры
-
-Процедура Notion_ПолучитьСтраницу(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Notion_Token"];
- Страница = ПараметрыФункции["Notion_Page"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("page", Страница);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("notion", "ПолучитьСтраницу", Опции);
-
- // END
-
- Обработать(Результат, "Notion", "ПолучитьСтраницу");
-
-КонецПроцедуры
-
-Процедура Notion_ПолучитьБазуДанных(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Notion_Token"];
- База = ПараметрыФункции["Notion_Base"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("base", База);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("notion", "ПолучитьБазуДанных", Опции);
-
- // END
-
- Обработать(Результат, "Notion", "ПолучитьБазуДанных");
-
-КонецПроцедуры
-
-Процедура Notion_СоздатьСтраницуВБазу(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Notion_Token"];
- База = ПараметрыФункции["Notion_Base"];
- Картинка_ = ПараметрыФункции["Picture"]; // URL, Двоичные данные или Путь к файлу
-
- Картинка = Новый Соответствие;
- Картинка.Вставить("Лого", Картинка_);
-
- Свойства = Новый Соответствие;
- Свойства.Вставить("Имя" , "ООО Вектор");
- Свойства.Вставить("Описание" , "Наш первый клиент");
- Свойства.Вставить("Номер" , 1);
- Свойства.Вставить("Дата создания", OPI_Инструменты.ПолучитьТекущуюДату());
- Свойства.Вставить("Картинка" , Картинка);
- Свойства.Вставить("Активен" , Истина);
- Свойства.Вставить("Сайт" , "https://vector.ru");
- Свойства.Вставить("Почта" , "mail@vector.ru");
- Свойства.Вставить("Телефон" , "88005553535");
- Свойства.Вставить("Статус" , "Новый");
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("base", База);
- Опции.Вставить("data", Свойства);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("notion", "СоздатьСтраницуВБазу", Опции);
-
- // END
-
- Обработать(Результат, "Notion", "СоздатьСтраницуВБазу", , База);
-
-КонецПроцедуры
-
-Процедура Notion_ИзменитьСвойстваСтраницы(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Notion_Token"];
- Страница = ПараметрыФункции["Notion_Page"];
- Иконка = ПараметрыФункции["Picture"];
- Обложка = ПараметрыФункции["Picture2"];
- Архивировать = Ложь;
-
- Свойства = Новый Соответствие;
- Свойства.Вставить("Активен", Ложь);
- Свойства.Вставить("Почта" , "vector@mail.ru");
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("page", Страница);
- Опции.Вставить("data", Свойства);
- Опции.Вставить("icon", Иконка);
- Опции.Вставить("cover", Обложка);
- Опции.Вставить("archive", Архивировать);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("notion", "ИзменитьСвойстваСтраницы", Опции);
-
- // END
-
- Обработать(Результат, "Notion", "ИзменитьСвойстваСтраницы");
-
-КонецПроцедуры
-
-Процедура Notion_ВернутьБлок(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Notion_Token"];
- Блок = ПараметрыФункции["Notion_Block"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("block", Блок);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("notion", "ВернутьБлок", Опции);
-
- // END
-
- Обработать(Результат, "Notion", "ВернутьБлок");
-
-КонецПроцедуры
-
-Процедура Notion_СоздатьБлок(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Notion_Token"];
- Родитель = ПараметрыФункции["Notion_Parent"];
- Блок = ПараметрыФункции["Notion_Block"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("block", Блок);
-
- ДанныеБлока = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("notion", "ВернутьБлок", Опции);
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("page", Родитель);
- Опции.Вставить("block", ДанныеБлока);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("notion", "СоздатьБлок", Опции);
-
- // END
-
- Обработать(Результат, "Notion", "СоздатьБлок", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура Notion_ВернутьДочерниеБлоки(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Notion_Token"];
- Блок = ПараметрыФункции["Notion_NewBlock"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("block", Блок);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("notion", "ВернутьДочерниеБлоки", Опции);
-
- // END
-
- Обработать(Результат, "Notion", "ВернутьДочерниеБлоки");
-
-КонецПроцедуры
-
-Процедура Notion_УдалитьБлок(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Notion_Token"];
- Блок = ПараметрыФункции["Notion_NewBlock"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("block", Блок);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("notion", "УдалитьБлок", Опции);
-
- // END
-
- Обработать(Результат, "Notion", "УдалитьБлок");
-
-КонецПроцедуры
-
-Процедура Notion_СписокПользователей(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Notion_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("notion", "СписокПользователей", Опции);
-
- // END
-
- Обработать(Результат, "Notion", "СписокПользователей");
-
-КонецПроцедуры
-
-Процедура Notion_ПолучитьДанныеПользователя(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Notion_Token"];
- Пользователь = ПараметрыФункции["Notion_User"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("user", Пользователь);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("notion", "ПолучитьДанныеПользователя", Опции);
-
- // END
-
- Обработать(Результат, "Notion", "ПолучитьДанныеПользователя");
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область Dropbox
-
-Процедура Dropbox_ПолучитьСсылкуАвторизации(ПараметрыФункции)
-
- КлючПриложения = ПараметрыФункции["Dropbox_Appkey"];
- Опции = Новый Структура;
- Опции.Вставить("appkey", КлючПриложения);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("dropbox", "ПолучитьСсылкуАвторизации", Опции);
-
- // END
-
- Обработать(Результат, "Dropbox", "ПолучитьСсылкуАвторизации");
-
-КонецПроцедуры
-
-Процедура Dropbox_ПолучитьТокен(ПараметрыФункции)
-
- КлючПриложения = ПараметрыФункции["Dropbox_Appkey"];
- СекретПриложения = ПараметрыФункции["Dropbox_Appsecret"];
- Код = ПараметрыФункции["Dropbox_Code"];
-
- Опции = Новый Структура;
- Опции.Вставить("appkey", КлючПриложения);
- Опции.Вставить("appsecret", СекретПриложения);
- Опции.Вставить("code", Код);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("dropbox", "ПолучитьТокен", Опции);
-
- // END
-
- Обработать(Результат, "Dropbox", "ПолучитьТокен");
-
-КонецПроцедуры
-
-Процедура Dropbox_ОбновитьТокен(ПараметрыФункции)
-
- КлючПриложения = ПараметрыФункции["Dropbox_Appkey"];
- СекретПриложения = ПараметрыФункции["Dropbox_Appsecret"];
- РефрешТокен = ПараметрыФункции["Dropbox_Refresh"];
-
- Опции = Новый Структура;
- Опции.Вставить("appkey", КлючПриложения);
- Опции.Вставить("appsecret", СекретПриложения);
- Опции.Вставить("refresh", РефрешТокен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("dropbox", "ОбновитьТокен", Опции);
-
- // END
-
- Обработать(Результат, "Dropbox", "ОбновитьТокен");
-
-КонецПроцедуры
-
-Процедура Dropbox_ПолучитьИнформациюОбОбъекте(ПараметрыФункции)
-
- Путь = "/New/pic.png";
- Токен = ПараметрыФункции["Dropbox_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("path", Путь);
- Опции.Вставить("detail", Истина);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("dropbox", "ПолучитьИнформациюОбОбъекте", Опции);
-
- // END
-
- Обработать(Результат, "Dropbox", "ПолучитьИнформациюОбОбъекте", , Путь);
-
-КонецПроцедуры
-
-Процедура Dropbox_ПолучитьПревью(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Dropbox_Token"];
- Путь = "/New/mydoc.docx";
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("path", Путь);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("dropbox", "ПолучитьПревью", Опции);
-
- // END
-
- Обработать(Результат, "Dropbox", "ПолучитьПревью");
-
-КонецПроцедуры
-
-Процедура Dropbox_ЗагрузитьФайл(ПараметрыФункции)
-
- Путь = "/New/pic.png";
- Токен = ПараметрыФункции["Dropbox_Token"];
- Картинка = ПараметрыФункции["Picture"];
-
- КартинкаПуть = ПолучитьИмяВременногоФайла("png");
- КопироватьФайл(Картинка, КартинкаПуть);
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("file", КартинкаПуть);
- Опции.Вставить("path", Путь);
- Опции.Вставить("overwrite", Истина);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("dropbox", "ЗагрузитьФайл", Опции);
-
- // END
-
- Обработать(Результат, "Dropbox", "ЗагрузитьФайл", , Путь);
-
- OPI_Инструменты.УдалитьФайлВПопытке(КартинкаПуть, "Не удалось удалить временный файл после теста!");
-
- Если Не OPI_Инструменты.ЭтоOneScript() И ПараметрыФункции.Свойство("Big") Тогда
-
- БольшойФайл = ПараметрыФункции["Big"];
-
- Путь = "/giant.tmp";
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("file", БольшойФайл);
- Опции.Вставить("path", Путь);
- Опции.Вставить("overwrite", Истина);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("dropbox", "ЗагрузитьФайл", Опции);
-
- Обработать(Результат, "Dropbox", "ЗагрузитьФайл", "Большой", Путь);
-
- КонецЕсли;
-
-КонецПроцедуры
-
-Процедура Dropbox_ЗагрузитьФайлПоURL(ПараметрыФункции)
-
- Путь = "/New/url_doc.docx";
- Токен = ПараметрыФункции["Dropbox_Token"];
- URL = ПараметрыФункции["Document"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("url", URL);
- Опции.Вставить("path", Путь);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("dropbox", "ЗагрузитьФайлПоURL", Опции);
-
- // END
-
- Обработать(Результат, "Dropbox", "ЗагрузитьФайлПоURL", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура Dropbox_ПолучитьСтатусЗагрузкиПоURL(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Dropbox_Token"];
- ИДРаботы = ПараметрыФункции["Dropbox_Job"];
- Статус = "in_progress";
-
- Пока Статус = "in_progress" Цикл
-
- Результат = OPI_Dropbox.ПолучитьСтатусЗагрузкиПоURL(Токен, ИДРаботы);
- Статус = Результат[".tag"];
-
- OPI_Инструменты.Пауза(5);
-
- Обработать(Результат, "Dropbox", "ПолучитьСтатусЗагрузкиПоURL", "Прогресс"); // SKIP
-
- КонецЦикла;
-
- // END
-
- Обработать(Результат, "Dropbox", "ПолучитьСтатусЗагрузкиПоURL");
-
- Токен = ПараметрыФункции["Dropbox_Token"];
- Путь = "/New/url_doc.docx";
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("path", Путь);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("dropbox", "УдалитьОбъект", Опции);
-
- Обработать(Результат, "Dropbox", "ПолучитьСтатусЗагрузкиПоURL", "Удаление", Путь);
-
-КонецПроцедуры
-
-Процедура Dropbox_УдалитьОбъект(ПараметрыФункции)
-
- Путь = "/New/pic.png";
- Токен = ПараметрыФункции["Dropbox_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("path", Путь);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("dropbox", "УдалитьОбъект", Опции);
-
- // END
-
- Обработать(Результат, "Dropbox", "УдалитьОбъект", , Путь);
-
-КонецПроцедуры
-
-Процедура Dropbox_КопироватьОбъект(ПараметрыФункции)
-
- Оригинал = "/New/pic.png";
- Копия = "/New/pic_copy.png";
- Токен = ПараметрыФункции["Dropbox_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("from", Оригинал);
- Опции.Вставить("to", Копия);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("dropbox", "КопироватьОбъект", Опции);
-
- // END
-
- Обработать(Результат, "Dropbox", "КопироватьОбъект", , Копия);
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("path", Копия);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("dropbox", "УдалитьОбъект", Опции);
-
- Обработать(Результат, "Dropbox", "КопироватьОбъект", "Удаление", Копия);
-
-КонецПроцедуры
-
-Процедура Dropbox_ПереместитьОбъект(ПараметрыФункции)
-
- ОригиналныйПуть = "/New/pic.png";
- ЦелевойПуть = "/pic.png";
- Токен = ПараметрыФункции["Dropbox_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("from", ОригиналныйПуть);
- Опции.Вставить("to", ЦелевойПуть);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("dropbox", "ПереместитьОбъект", Опции);
-
- // END
-
- Обработать(Результат, "Dropbox", "ПереместитьОбъект", , ЦелевойПуть);
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("from", ЦелевойПуть);
- Опции.Вставить("to", ОригиналныйПуть);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("dropbox", "ПереместитьОбъект", Опции);
-
- Обработать(Результат, "Dropbox", "ПереместитьОбъект", "Удаление", ОригиналныйПуть);
-
-КонецПроцедуры
-
-Процедура Dropbox_СоздатьПапку(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Dropbox_Token"];
- Путь = "/Новый каталог";
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("path", Путь);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("dropbox", "СоздатьПапку", Опции);
-
- // END
-
- Обработать(Результат, "Dropbox", "СоздатьПапку", , Путь);
-
- OPI_Dropbox.УдалитьОбъект(Токен, Путь);
-
-КонецПроцедуры
-
-Процедура Dropbox_СкачатьФайл(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Dropbox_Token"];
- Путь = "/New/pic.png";
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("path", Путь);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("dropbox", "СкачатьФайл", Опции);
-
- // END
-
- Обработать(Результат, "Dropbox", "СкачатьФайл");
-
-КонецПроцедуры
-
-Процедура Dropbox_СкачатьПапку(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Dropbox_Token"];
- Путь = "/New";
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("path", Путь);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("dropbox", "СкачатьПапку", Опции);
-
- // END
-
- Обработать(Результат, "Dropbox", "СкачатьПапку");
-
-КонецПроцедуры
-
-Процедура Dropbox_ПолучитьСписокФайловПапки(ПараметрыФункции)
-
- Путь = "/New";
- Токен = ПараметрыФункции["Dropbox_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("path", Путь);
- Опции.Вставить("detail", Истина);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("dropbox", "ПолучитьСписокФайловПапки", Опции);
-
- // END
-
- Обработать(Результат, "Dropbox", "ПолучитьСписокФайловПапки");
-
-КонецПроцедуры
-
-Процедура Dropbox_ПолучитьСписокВерсийОбъекта(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Dropbox_Token"];
- Путь = "/New/pic.png";
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("path", Путь);
- Опции.Вставить("amount", 1);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("dropbox", "ПолучитьСписокВерсийОбъекта", Опции);
-
- // END
-
- Обработать(Результат, "Dropbox", "ПолучитьСписокВерсийОбъекта", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура Dropbox_ВосстановитьОбъектКВерсии(ПараметрыФункции)
-
- Версия = ПараметрыФункции["Dropbox_FileRevision"];
- Токен = ПараметрыФункции["Dropbox_Token"];
- Путь = "/New/pic.png";
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("path", Путь);
- Опции.Вставить("rev", Версия);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("dropbox", "ВосстановитьОбъектКВерсии", Опции);
-
- // END
-
- Обработать(Результат, "Dropbox", "ВосстановитьОбъектКВерсии", , Путь);
-
-КонецПроцедуры
-
-Процедура Dropbox_ПолучитьСписокТегов(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Dropbox_Token"];
-
- МассивПутей = Новый Массив;
- МассивПутей.Добавить("/New/Dogs.mp3");
- МассивПутей.Добавить("/New/mydoc.docx");
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("paths", МассивПутей);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("dropbox", "ПолучитьСписокТегов", Опции);
-
- // END
-
- Обработать(Результат, "Dropbox", "ПолучитьСписокТегов", , ПараметрыФункции, МассивПутей);
-
-КонецПроцедуры
-
-Процедура Dropbox_ДобавитьТег(ПараметрыФункции)
-
- Тег = "Важное";
- Токен = ПараметрыФункции["Dropbox_Token"];
- Путь = "/New/mydoc.docx";
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("path", Путь);
- Опции.Вставить("tag", Тег);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("dropbox", "ДобавитьТег", Опции);
-
- // END
-
- Обработать(Результат, "Dropbox", "ДобавитьТег");
-
-КонецПроцедуры
-
-Процедура Dropbox_УдалитьТег(ПараметрыФункции)
-
- Тег = "Важное";
- Токен = ПараметрыФункции["Dropbox_Token"];
- Путь = "/New/mydoc.docx";
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("path", Путь);
- Опции.Вставить("tag", Тег);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("dropbox", "УдалитьТег", Опции);
-
- // END
-
- Обработать(Результат, "Dropbox", "УдалитьТег");
-
-КонецПроцедуры
-
-Процедура Dropbox_ПолучитьИнформациюОбАккаунте(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Dropbox_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("dropbox", "ПолучитьИнформациюОбАккаунте", Опции);
-
- // END
-
- Обработать(Результат, "Dropbox", "ПолучитьИнформациюОбАккаунте");
-
- IDАккаунта = Результат["account_id"];
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("account", IDАккаунта);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("dropbox", "ПолучитьИнформациюОбАккаунте", Опции);
-
- Обработать(Результат, "Dropbox", "ПолучитьИнформациюОбАккаунте", "По ID");
-
-КонецПроцедуры
-
-Процедура Dropbox_ПолучитьДанныеИспользованияПространства(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Dropbox_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("dropbox", "ПолучитьДанныеИспользованияПространства", Опции);
-
- // END
-
- Обработать(Результат, "Dropbox", "ПолучитьДанныеИспользованияПространства");
-
-КонецПроцедуры
-
-Процедура Dropbox_ДобавитьПользователейКФайлу(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Dropbox_Token"];
- Почта = ПараметрыФункции["Dropbox_OtherUser"];
- Файл = ПараметрыФункции["Dropbox_FileID"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("fileid", Файл);
- Опции.Вставить("emails", Почта);
- Опции.Вставить("readonly", Ложь);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("dropbox", "ДобавитьПользователейКФайлу", Опции);
-
- // END
-
- Обработать(Результат, "Dropbox", "ДобавитьПользователейКФайлу", , Почта, Ложь);
-
- Почты = Новый Массив;
- Почты.Добавить(Почта);
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("fileid", Файл);
- Опции.Вставить("emails", Почты);
- Опции.Вставить("readonly", Истина);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("dropbox", "ДобавитьПользователейКФайлу", Опции);
-
- Обработать(Результат, "Dropbox", "ДобавитьПользователейКФайлу", , Почта, Истина);
-
-КонецПроцедуры
-
-Процедура Dropbox_ОпубликоватьПапку(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Dropbox_Token"];
- Путь = "/New";
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("path", Путь);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("dropbox", "ОпубликоватьПапку", Опции);
-
- // END
-
- Обработать(Результат, "Dropbox", "ОпубликоватьПапку", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура Dropbox_ОтменитьПубликациюПапки(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Dropbox_Token"];
- Папка = ПараметрыФункции["Dropbox_SharedFolder"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("folder", Папка);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("dropbox", "ОтменитьПубликациюПапки", Опции);
-
- Обработать(Результат, "Dropbox", "ОтменитьПубликациюПапки"); // SKIP
-
- ТекущийСтатус = "in_progress";
- IDРаботы = Результат["async_job_id"];
-
- Пока ТекущийСтатус = "in_progress" Цикл
- Результат = OPI_Dropbox.ПолучитьСтатусАсинхронногоИзменения(Токен, IDРаботы);
- ТекущийСтатус = Результат[".tag"];
- OPI_Инструменты.Пауза(3);
- КонецЦикла;
-
- // END
-
- Обработать(Результат, "Dropbox", "ОтменитьПубликациюПапки", "Окончание", ПараметрыФункции, IDРаботы);
-
-КонецПроцедуры
-
-Процедура Dropbox_ПолучитьСтатусАсинхронногоИзменения(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Dropbox_Token"];
- IDРаботы = ПараметрыФункции["Dropbox_NewJobID"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("job", IDРаботы);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("dropbox", "ПолучитьСтатусАсинхронногоИзменения", Опции);
-
- // END
-
- Обработать(Результат, "Dropbox", "ПолучитьСтатусАсинхронногоИзменения");
-
-КонецПроцедуры
-
-Процедура Dropbox_ДобавитьПользователейКПапке(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Dropbox_Token"];
- Почта = ПараметрыФункции["Dropbox_OtherUser"];
- Папка = ПараметрыФункции["Dropbox_SharedFolder"]; // shared_folder_id
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("folder", Папка);
- Опции.Вставить("emails", Почта);
- Опции.Вставить("readonly", Ложь);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("dropbox", "ДобавитьПользователейКПапке", Опции);
-
- // END
-
- Обработать(Результат, "Dropbox", "ДобавитьПользователейКПапке");
-
- Почты = Новый Массив;
- Почты.Добавить(Почта);
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("folder", Папка);
- Опции.Вставить("emails", Почты);
- Опции.Вставить("readonly", Истина);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("dropbox", "ДобавитьПользователейКПапке", Опции);
-
- Обработать(Результат, "Dropbox", "ДобавитьПользователейКПапке", "Дополнительный");
-
-КонецПроцедуры
-
-Процедура Dropbox_ОтменитьПубликациюФайла(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Dropbox_Token"];
- Файл = ПараметрыФункции["Dropbox_FileID"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("fileid", Файл);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("dropbox", "ОтменитьПубликациюФайла", Опции);
-
- // END
-
- Обработать(Результат, "Dropbox", "ОтменитьПубликациюФайла");
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область Bitrix24
-
-Процедура Bitrix24_ПолучитьСсылкуАвторизацииПриложения(ПараметрыФункции)
-
- Домен = ПараметрыФункции["Bitrix24_Domain"];
- ClientID = ПараметрыФункции["Bitrix24_ClientID"];
-
- Опции = Новый Структура;
- Опции.Вставить("domain", Домен);
- Опции.Вставить("clientid", ClientID);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьСсылкуАвторизацииПриложения", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьСсылкуАвторизацииПриложения");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьТокен(ПараметрыФункции)
-
- ClientID = ПараметрыФункции["Bitrix24_ClientID"];
- ClientSecret = ПараметрыФункции["Bitrix24_ClientSecret"];
- Code = ПараметрыФункции["Bitrix24_Code"];
-
- Опции = Новый Структура;
- Опции.Вставить("clientid", ClientID);
- Опции.Вставить("clientsecret", ClientSecret);
- Опции.Вставить("code", Code);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьТокен", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьТокен");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ОбновитьТокен(ПараметрыФункции)
-
- ClientID = ПараметрыФункции["Bitrix24_ClientID"];
- ClientSecret = ПараметрыФункции["Bitrix24_ClientSecret"];
- Refresh = ПараметрыФункции["Bitrix24_Refresh"];
-
- Опции = Новый Структура;
- Опции.Вставить("clientid", ClientID);
- Опции.Вставить("clientsecret", ClientSecret);
- Опции.Вставить("refresh", Refresh);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ОбновитьТокен", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ОбновитьТокен");
-
-КонецПроцедуры
-
-Процедура Bitrix24_СерверноеВремя(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "СерверноеВремя", Опции);
-
- Обработать(Результат, "Bitrix24", "СерверноеВремя", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "СерверноеВремя", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "СерверноеВремя");
-
-КонецПроцедуры
-
-Процедура Bitrix24_СоздатьНовость(ПараметрыФункции)
-
- Текст = "Текст новости";
- Заголовок = "Заголовок новости";
- Картинка1 = ПараметрыФункции["Picture"]; // URL, Путь или Двоичные данные
- Картинка2 = ПараметрыФункции["Picture2"]; // URL, Путь или Двоичные данные
-
- Файлы = Новый Соответствие;
- Файлы.Вставить("1.png", Картинка1);
- Файлы.Вставить("2.png", Картинка2);
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("text", Текст);
- Опции.Вставить("files", Файлы);
- Опции.Вставить("title", Заголовок);
- Опции.Вставить("important", Истина);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "СоздатьНовость", Опции);
-
- Обработать(Результат, "Bitrix24", "СоздатьНовость", "Хук", ПараметрыФункции); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("text", Текст);
- Опции.Вставить("files", Файлы);
- Опции.Вставить("title", Заголовок);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "СоздатьНовость", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "СоздатьНовость", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура Bitrix24_ИзменитьНовость(ПараметрыФункции)
-
- Текст = "Новый текст новости";
- Заголовок = "Новый заголовок новости";
- Картинка1 = ПараметрыФункции["Picture"]; // URL, Путь или Двоичные данные
- IDНовости = ПараметрыФункции["Bitrix24_PostID"];
-
- Файлы = Новый Соответствие;
- Файлы.Вставить("1.png", Картинка1);
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("postid", IDНовости);
- Опции.Вставить("text", Текст);
- Опции.Вставить("files", Файлы);
- Опции.Вставить("title", Заголовок);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ИзменитьНовость", Опции);
-
- Обработать(Результат, "Bitrix24", "ИзменитьНовость", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDНовости = ПараметрыФункции["Bitrix24_HookPostID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("postid", IDНовости);
- Опции.Вставить("text", Текст);
- Опции.Вставить("files", Файлы);
- Опции.Вставить("title", Заголовок);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ИзменитьНовость", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ИзменитьНовость");
-
-КонецПроцедуры
-
-Процедура Bitrix24_УдалитьНовость(ПараметрыФункции)
-
- IDНовости = ПараметрыФункции["Bitrix24_HookPostID"];
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("postid", IDНовости);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "УдалитьНовость", Опции);
-
- Обработать(Результат, "Bitrix24", "УдалитьНовость", "Хук"); // SKIP
-
- IDНовости = ПараметрыФункции["Bitrix24_PostID"];
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("postid", IDНовости);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "УдалитьНовость", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "УдалитьНовость");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьСписокПросмотревшихВажное(ПараметрыФункции)
-
- IDНовости = ПараметрыФункции["Bitrix24_HookPostID"];
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("postid", IDНовости);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьСписокПросмотревшихВажное", Опции);
-
- Обработать(Результат, "Bitrix24", "ПолучитьСписокПросмотревшихВажное", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("postid", IDНовости);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьСписокПросмотревшихВажное", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьСписокПросмотревшихВажное");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьНовости(ПараметрыФункции)
-
- IDНовости = ПараметрыФункции["Bitrix24_PostID"];
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("postid", IDНовости);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьНовости", Опции);
-
- Обработать(Результат, "Bitrix24", "ПолучитьНовости", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("postid", IDНовости);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьНовости", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьНовости");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ДобавитьКомментарийНовости(ПараметрыФункции)
-
- Текст = "Комментарий к новости";
- IDНовости = ПараметрыФункции["Bitrix24_PostID"];
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("postid", IDНовости);
- Опции.Вставить("text", Текст);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ДобавитьКомментарийНовости", Опции);
-
- Обработать(Результат, "Bitrix24", "ДобавитьКомментарийНовости", "Хук"); // SKIP
-
- Текст = "Другой комментарий к новости";
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("postid", IDНовости);
- Опции.Вставить("text", Текст);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ДобавитьКомментарийНовости", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ДобавитьКомментарийНовости");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ДобавитьПолучателейКНовости(ПараметрыФункции)
-
- Видимость = "UA";
- IDНовости = ПараметрыФункции["Bitrix24_PostID"];
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("postid", IDНовости);
- Опции.Вставить("vision", Видимость);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ДобавитьПолучателейКНовости", Опции);
-
- Обработать(Результат, "Bitrix24", "ДобавитьПолучателейКНовости", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("postid", IDНовости);
- Опции.Вставить("vision", Видимость);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ДобавитьПолучателейКНовости", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ДобавитьПолучателейКНовости");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьСтруктуруЗадачи(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьСтруктуруЗадачи", Опции);
-
- Обработать(Результат, "Bitrix24", "ПолучитьСтруктуруЗадачи", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьСтруктуруЗадачи", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьСтруктуруЗадачи");
-
-КонецПроцедуры
-
-Процедура Bitrix24_СоздатьЗадачу(ПараметрыФункции)
-
- // Полную структуру полей можно получить функцией ПолучитьСтруктуруЗадачи()
-
- ТекущаяДата = OPI_Инструменты.ПолучитьТекущуюДату();
- Час = 3600;
- Сутки = 24;
- Исполнитель = 1;
-
- СтруктураЗадачи = Новый Структура;
- СтруктураЗадачи.Вставить("TITLE" , "Новая задача");
- СтруктураЗадачи.Вставить("DESCRIPTION" , "Новое описание задачи");
- СтруктураЗадачи.Вставить("PRIORITY" , "2");
- СтруктураЗадачи.Вставить("DEADLINE" , ТекущаяДата + Час * Сутки);
- СтруктураЗадачи.Вставить("RESPONSIBLE_ID", Исполнитель);
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("fields", СтруктураЗадачи);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "СоздатьЗадачу", Опции);
-
- Обработать(Результат, "Bitrix24", "СоздатьЗадачу", "Хук", ПараметрыФункции); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("fields", СтруктураЗадачи);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "СоздатьЗадачу", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "СоздатьЗадачу", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура Bitrix24_ИзменитьЗадачу(ПараметрыФункции)
-
- // Полную структуру полей можно получить функцией ПолучитьСтруктуруЗадачи()
-
- СтруктураЗадачи = Новый Структура;
- СтруктураЗадачи.Вставить("TITLE" , "Другой заголовок задачи");
- СтруктураЗадачи.Вставить("DESCRIPTION", "Другое описание задачи");
- СтруктураЗадачи.Вставить("PRIORITY" , "1");
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЗадачи = ПараметрыФункции["Bitrix24_HookTaskID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
- Опции.Вставить("fields", СтруктураЗадачи);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ИзменитьЗадачу", Опции);
-
- Обработать(Результат, "Bitrix24", "ИзменитьЗадачу", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЗадачи = ПараметрыФункции["Bitrix24_TaskID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
- Опции.Вставить("fields", СтруктураЗадачи);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ИзменитьЗадачу", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ИзменитьЗадачу");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьЗадачу(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЗадачи = ПараметрыФункции["Bitrix24_HookTaskID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьЗадачу", Опции);
-
- Обработать(Результат, "Bitrix24", "ПолучитьЗадачу", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЗадачи = ПараметрыФункции["Bitrix24_TaskID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьЗадачу", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьЗадачу");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПринятьЗадачу(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЗадачи = ПараметрыФункции["Bitrix24_HookTaskID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПринятьЗадачу", Опции);
-
- Обработать(Результат, "Bitrix24", "ПринятьЗадачу", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЗадачи = ПараметрыФункции["Bitrix24_TaskID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПринятьЗадачу", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПринятьЗадачу");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ОтклонитьЗадачу(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЗадачи = ПараметрыФункции["Bitrix24_HookTaskID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ОтклонитьЗадачу", Опции);
-
- Обработать(Результат, "Bitrix24", "ОтклонитьЗадачу", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЗадачи = ПараметрыФункции["Bitrix24_TaskID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ОтклонитьЗадачу", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ОтклонитьЗадачу");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ЗавершитьЗадачу(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЗадачи = ПараметрыФункции["Bitrix24_HookTaskID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ЗавершитьЗадачу", Опции);
-
- Обработать(Результат, "Bitrix24", "ЗавершитьЗадачу", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЗадачи = ПараметрыФункции["Bitrix24_TaskID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ЗавершитьЗадачу", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ЗавершитьЗадачу");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ВозобновитьЗадачу(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЗадачи = ПараметрыФункции["Bitrix24_HookTaskID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ВозобновитьЗадачу", Опции);
-
- Обработать(Результат, "Bitrix24", "ВозобновитьЗадачу", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЗадачи = ПараметрыФункции["Bitrix24_TaskID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ВозобновитьЗадачу", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ВозобновитьЗадачу");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ОтложитьЗадачу(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЗадачи = ПараметрыФункции["Bitrix24_HookTaskID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ОтложитьЗадачу", Опции);
-
- Обработать(Результат, "Bitrix24", "ОтложитьЗадачу", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЗадачи = ПараметрыФункции["Bitrix24_TaskID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ОтложитьЗадачу", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ОтложитьЗадачу");
-
-КонецПроцедуры
-
-Процедура Bitrix24_НачатьВыполнениеЗадачи(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЗадачи = ПараметрыФункции["Bitrix24_HookTaskID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "НачатьВыполнениеЗадачи", Опции);
-
- Обработать(Результат, "Bitrix24", "НачатьВыполнениеЗадачи", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЗадачи = ПараметрыФункции["Bitrix24_TaskID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "НачатьВыполнениеЗадачи", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "НачатьВыполнениеЗадачи");
-
-КонецПроцедуры
-
-Процедура Bitrix24_НачатьНаблюдатьЗаЗадачей(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЗадачи = ПараметрыФункции["Bitrix24_HookTaskID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "НачатьНаблюдатьЗаЗадачей", Опции);
-
- Обработать(Результат, "Bitrix24", "НачатьНаблюдатьЗаЗадачей", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЗадачи = ПараметрыФункции["Bitrix24_TaskID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "НачатьНаблюдатьЗаЗадачей", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "НачатьНаблюдатьЗаЗадачей");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПрекратитьНаблюдатьЗаЗадачей(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЗадачи = ПараметрыФункции["Bitrix24_HookTaskID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПрекратитьНаблюдатьЗаЗадачей", Опции);
-
- Обработать(Результат, "Bitrix24", "ПрекратитьНаблюдатьЗаЗадачей", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЗадачи = ПараметрыФункции["Bitrix24_TaskID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПрекратитьНаблюдатьЗаЗадачей", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПрекратитьНаблюдатьЗаЗадачей");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПриостановитьЗадачу(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЗадачи = ПараметрыФункции["Bitrix24_HookTaskID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПриостановитьЗадачу", Опции);
-
- Обработать(Результат, "Bitrix24", "ПриостановитьЗадачу", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЗадачи = ПараметрыФункции["Bitrix24_TaskID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПриостановитьЗадачу", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПриостановитьЗадачу");
-
-КонецПроцедуры
-
-Процедура Bitrix24_УдалитьЗадачу(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЗадачи = ПараметрыФункции["Bitrix24_HookTaskID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "УдалитьЗадачу", Опции);
-
- Обработать(Результат, "Bitrix24", "УдалитьЗадачу", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЗадачи = ПараметрыФункции["Bitrix24_TaskID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "УдалитьЗадачу", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "УдалитьЗадачу");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ДелегироватьЗадачу(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЗадачи = ПараметрыФункции["Bitrix24_HookTaskID"];
- IDПользователя = ПараметрыФункции["Bitrix24_UserID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
- Опции.Вставить("user", IDПользователя);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ДелегироватьЗадачу", Опции);
-
- Обработать(Результат, "Bitrix24", "ДелегироватьЗадачу", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЗадачи = ПараметрыФункции["Bitrix24_TaskID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
- Опции.Вставить("user", IDПользователя);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ДелегироватьЗадачу", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ДелегироватьЗадачу");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ДобавитьЗадачуВИзбранное(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЗадачи = ПараметрыФункции["Bitrix24_HookTaskID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ДобавитьЗадачуВИзбранное", Опции);
-
- Обработать(Результат, "Bitrix24", "ДобавитьЗадачуВИзбранное", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЗадачи = ПараметрыФункции["Bitrix24_TaskID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ДобавитьЗадачуВИзбранное", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ДобавитьЗадачуВИзбранное");
-
-КонецПроцедуры
-
-Процедура Bitrix24_УбратьЗадачуИзИзбранного(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЗадачи = ПараметрыФункции["Bitrix24_HookTaskID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "УбратьЗадачуИзИзбранного", Опции);
-
- Обработать(Результат, "Bitrix24", "УбратьЗадачуИзИзбранного", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЗадачи = ПараметрыФункции["Bitrix24_TaskID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "УбратьЗадачуИзИзбранного", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "УбратьЗадачуИзИзбранного");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьИсториюЗадачи(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЗадачи = ПараметрыФункции["Bitrix24_HookTaskID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьИсториюЗадачи", Опции);
-
- Обработать(Результат, "Bitrix24", "ПолучитьИсториюЗадачи", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЗадачи = ПараметрыФункции["Bitrix24_TaskID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьИсториюЗадачи", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьИсториюЗадачи");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьСписокЗадач(ПараметрыФункции)
-
- ТекущаяДата = OPI_Инструменты.ПолучитьТекущуюДату();
-
- // Полную структуру фильтра можно найти в функции ПолучитьСтруктуруФильтраЗадач
- Фильтр = Новый Соответствие;
- Фильтр.Вставить("CREATED_BY", 1); // Постановщик с ID 1
- Фильтр.Вставить("!RESPONSIBLE_ID", 10); // Исполнители с ID не равным 10
- Фильтр.Вставить(">=CREATED_DATE ", ТекущаяДата - 60 * 60 * 24); // Дата создания >= вчера
-
- Поля = Новый Массив;
- Поля.Добавить("UF_CRM_TASK");
- Поля.Добавить("CREATED_BY");
-
- Отступ = 1;
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("filter", Фильтр);
- Опции.Вставить("select", Поля);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьСписокЗадач", Опции);
-
- Обработать(Результат, "Bitrix24", "ПолучитьСписокЗадач", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("offset", Отступ);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьСписокЗадач", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьСписокЗадач");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьСписокХранилищ(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьСписокХранилищ", Опции);
-
- Обработать(Результат, "Bitrix24", "ПолучитьСписокХранилищ", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьСписокХранилищ", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьСписокХранилищ");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьХранилищеПриложения(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьХранилищеПриложения", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьХранилищеПриложения", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура Bitrix24_ЗагрузитьФайлВХранилище(ПараметрыФункции)
-
- Наименование2 = "Картинка2.jpg";
- Наименование = "Картинка1.jpg";
-
- Картинка2 = ПараметрыФункции["Picture"]; // Локальный путь, URL или Двоичные данные
- Картинка = ПараметрыФункции["Picture2"]; // Локальный путь, URL или Двоичные данные
-
- IDПриемника = 3;
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("title", Наименование2);
- Опции.Вставить("file", Картинка2);
- Опции.Вставить("storageid", IDПриемника);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ЗагрузитьФайлВХранилище", Опции);
-
- Обработать(Результат, "Bitrix24", "ЗагрузитьФайлВХранилище", "Хук", ПараметрыФункции); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("title", Наименование);
- Опции.Вставить("file", Картинка);
- Опции.Вставить("storageid", IDПриемника);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ЗагрузитьФайлВХранилище", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ЗагрузитьФайлВХранилище", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура Bitrix24_УдалитьФайл(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDФайла = ПараметрыФункции["Bitrix24_HookFileID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("fileid", IDФайла);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "УдалитьФайл", Опции);
-
- Обработать(Результат, "Bitrix24", "УдалитьФайл", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDФайла = ПараметрыФункции["Bitrix24_FileID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("fileid", IDФайла);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "УдалитьФайл", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "УдалитьФайл");
-
-КонецПроцедуры
-
-Процедура Bitrix24_СоздатьКаталогВХранилище(ПараметрыФункции)
-
- IDХранилища = 3;
- Наименование = "Новый каталог";
- Наименование2 = "Новый каталог 2";
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("storageid", IDХранилища);
- Опции.Вставить("title", Наименование2);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "СоздатьКаталогВХранилище", Опции);
-
- Обработать(Результат, "Bitrix24", "СоздатьКаталогВХранилище", "Хук", ПараметрыФункции); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("storageid", IDХранилища);
- Опции.Вставить("title", Наименование);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "СоздатьКаталогВХранилище", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "СоздатьКаталогВХранилище", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура Bitrix24_УдалитьКаталог(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDКаталога = ПараметрыФункции["Bitrix24_HookFolderID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("folderid", IDКаталога);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "УдалитьКаталог", Опции);
-
- Обработать(Результат, "Bitrix24", "УдалитьКаталог", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDКаталога = ПараметрыФункции["Bitrix24_FolderID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("folderid", IDКаталога);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "УдалитьКаталог", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "УдалитьКаталог");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьХранилище(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDХранилища = 3;
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("storageid", IDХранилища);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьХранилище", Опции);
-
- Обработать(Результат, "Bitrix24", "ПолучитьХранилище", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("storageid", IDХранилища);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьХранилище", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьХранилище");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьСодержимоеХранилища(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDХранилища = 3;
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("storageid", IDХранилища);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьСодержимоеХранилища", Опции);
-
- Обработать(Результат, "Bitrix24", "ПолучитьСодержимоеХранилища", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("storageid", IDХранилища);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьСодержимоеХранилища", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьСодержимоеХранилища");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПереименоватьХранилище(ПараметрыФункции)
-
- Наименование = "Новое имя хранилища";
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDХранилища = ПараметрыФункции["Bitrix24_StorageID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("storageid", IDХранилища);
- Опции.Вставить("title", Наименование);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПереименоватьХранилище", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПереименоватьХранилище");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьИнформациюОКаталоге(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDКаталога = ПараметрыФункции["Bitrix24_FolderID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("folderid", IDКаталога);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьИнформациюОКаталоге", Опции);
-
- Обработать(Результат, "Bitrix24", "ПолучитьИнформациюОКаталоге", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("folderid", IDКаталога);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьИнформациюОКаталоге", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьИнформациюОКаталоге");
-
-КонецПроцедуры
-
-Процедура Bitrix24_СоздатьПодкаталог(ПараметрыФункции)
-
- IDКаталога = ПараметрыФункции["Bitrix24_FolderID"];
- Наименование = "Новый подкаталог";
- Наименование2 = "Новый подкаталог 2";
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("folderid", IDКаталога);
- Опции.Вставить("title", Наименование2);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "СоздатьПодкаталог", Опции);
-
- Обработать(Результат, "Bitrix24", "СоздатьПодкаталог", "Хук", ПараметрыФункции); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("folderid", IDКаталога);
- Опции.Вставить("title", Наименование);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "СоздатьПодкаталог", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "СоздатьПодкаталог", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура Bitrix24_СкопироватьКаталог(ПараметрыФункции)
-
- IDПриемника = ПараметрыФункции["Bitrix24_HookSubfolderID"];
- IDКаталога = ПараметрыФункции["Bitrix24_SubfolderID"];
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("folderid", IDКаталога);
- Опции.Вставить("tagetid", IDПриемника);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "СкопироватьКаталог", Опции);
-
- Обработать(Результат, "Bitrix24", "СкопироватьКаталог", "Хук"); // SKIP
-
- IDПриемника = ПараметрыФункции["Bitrix24_SubfolderID"];
- IDКаталога = ПараметрыФункции["Bitrix24_HookSubfolderID"];
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- // END
-
- Обработать(Результат, "Bitrix24", "СкопироватьКаталог");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьВнешнююСсылкуКаталога(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDКаталога = ПараметрыФункции["Bitrix24_FolderID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("folderid", IDКаталога);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьВнешнююСсылкуКаталога", Опции);
-
- Обработать(Результат, "Bitrix24", "ПолучитьВнешнююСсылкуКаталога", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("folderid", IDКаталога);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьВнешнююСсылкуКаталога", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьВнешнююСсылкуКаталога");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьСтруктуруФильтраКаталога(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьСтруктуруФильтраКаталога", Опции);
-
- Обработать(Результат, "Bitrix24", "ПолучитьСтруктуруФильтраКаталога", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("empty", Истина);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьСтруктуруФильтраКаталога", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьСтруктуруФильтраКаталога");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьДочерниеЭлементыКаталога(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDКаталога = ПараметрыФункции["Bitrix24_FolderID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("folderid", IDКаталога);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьДочерниеЭлементыКаталога", Опции);
-
- Обработать(Результат, "Bitrix24", "ПолучитьДочерниеЭлементыКаталога", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("folderid", IDКаталога);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьДочерниеЭлементыКаталога", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьДочерниеЭлементыКаталога");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПоместитьКаталогВКорзину(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDКаталога = ПараметрыФункции["Bitrix24_FolderID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("folderid", IDКаталога);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПоместитьКаталогВКорзину", Опции);
-
- Обработать(Результат, "Bitrix24", "ПоместитьКаталогВКорзину", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("folderid", IDКаталога);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПоместитьКаталогВКорзину", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПоместитьКаталогВКорзину");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ВосстановитьКаталог(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDКаталога = ПараметрыФункции["Bitrix24_FolderID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("folderid", IDКаталога);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ВосстановитьКаталог", Опции);
-
- Обработать(Результат, "Bitrix24", "ВосстановитьКаталог", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("folderid", IDКаталога);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ВосстановитьКаталог", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ВосстановитьКаталог");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПереместитьКаталог(ПараметрыФункции)
-
- IDПриемника = ПараметрыФункции["Bitrix24_HookfolderID"];
- IDКаталога = ПараметрыФункции["Bitrix24_SubfolderID"];
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("folderid", IDКаталога);
- Опции.Вставить("tagetid", IDПриемника);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПереместитьКаталог", Опции);
-
- Обработать(Результат, "Bitrix24", "ПереместитьКаталог", "Хук"); // SKIP
-
- IDКаталога = ПараметрыФункции["Bitrix24_HookSubfolderID"];
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("folderid", IDКаталога);
- Опции.Вставить("tagetid", IDПриемника);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПереместитьКаталог", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПереместитьКаталог");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПереименоватьКаталог(ПараметрыФункции)
-
- Наименование = "Новый каталог";
- Наименование2 = "Новый каталог 2";
-
- IDКаталога2 = ПараметрыФункции["Bitrix24_HookFolderID"];
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("folderid", IDКаталога2);
- Опции.Вставить("title", Наименование2);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПереименоватьКаталог", Опции);
-
- Обработать(Результат, "Bitrix24", "ПереименоватьКаталог", "Хук"); // SKIP
-
- IDКаталога = ПараметрыФункции["Bitrix24_FolderID"];
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("folderid", IDКаталога);
- Опции.Вставить("title", Наименование);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПереименоватьКаталог", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПереименоватьКаталог");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ЗагрузитьФайлВКаталог(ПараметрыФункции)
-
- Наименование2 = "Картинка2.jpg";
- Наименование = "Картинка1.jpg";
-
- Картинка2 = ПараметрыФункции["Picture"]; // Локальный путь, URL или Двоичные данные
- Картинка = ПараметрыФункции["Picture2"]; // Локальный путь, URL или Двоичные данные
-
- IDПриемника = ПараметрыФункции["Bitrix24_FolderID"];
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("title", Наименование2);
- Опции.Вставить("file", Картинка2);
- Опции.Вставить("folderid", IDПриемника);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ЗагрузитьФайлВКаталог", Опции);
-
- Обработать(Результат, "Bitrix24", "ЗагрузитьФайлВКаталог", "Хук", URL); // SKIP
-
- IDФайла = Результат["result"]["ID"]; // SKIP
- OPI_Bitrix24.УдалитьФайл(URL, IDФайла); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("title", Наименование);
- Опции.Вставить("file", Картинка);
- Опции.Вставить("folderid", IDПриемника);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ЗагрузитьФайлВКаталог", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ЗагрузитьФайлВКаталог", , URL, Токен);
-
- IDФайла = Результат["result"]["ID"];
-
- OPI_Bitrix24.УдалитьФайл(URL, IDФайла, Токен);
-
-КонецПроцедуры
-
-Процедура Bitrix24_СкопироватьФайл(ПараметрыФункции)
-
- IDКаталога = ПараметрыФункции["Bitrix24_HookFolderID"];
- IDФайла = ПараметрыФункции["Bitrix24_FileID"];
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("fileid", IDФайла);
- Опции.Вставить("folderid", IDКаталога);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "СкопироватьФайл", Опции);
-
- Обработать(Результат, "Bitrix24", "СкопироватьФайл", "Хук"); // SKIP
-
- IDКаталога = ПараметрыФункции["Bitrix24_FolderID"];
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("fileid", IDФайла);
- Опции.Вставить("folderid", IDКаталога);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "СкопироватьФайл", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "СкопироватьФайл");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьИнформациюОФайле(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDФайла = ПараметрыФункции["Bitrix24_FileID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("fileid", IDФайла);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьИнформациюОФайле", Опции);
-
- Обработать(Результат, "Bitrix24", "ПолучитьИнформациюОФайле", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("fileid", IDФайла);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьИнформациюОФайле", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьИнформациюОФайле");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьВнешнююСсылкуФайла(ПараметрыФункции)
-
- OPI_Инструменты.Пауза(20); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDФайла = ПараметрыФункции["Bitrix24_FileID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("fileid", IDФайла);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьВнешнююСсылкуФайла", Опции);
-
- Обработать(Результат, "Bitrix24", "ПолучитьВнешнююСсылкуФайла", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("fileid", IDФайла);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьВнешнююСсылкуФайла", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьВнешнююСсылкуФайла");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПоместитьФайлВКорзину(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDФайла = ПараметрыФункции["Bitrix24_FileID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("fileid", IDФайла);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПоместитьФайлВКорзину", Опции);
-
- Обработать(Результат, "Bitrix24", "ПоместитьФайлВКорзину", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("fileid", IDФайла);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПоместитьФайлВКорзину", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПоместитьФайлВКорзину");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ВосстановитьФайл(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDФайла = ПараметрыФункции["Bitrix24_FileID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("fileid", IDФайла);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ВосстановитьФайл", Опции);
-
- Обработать(Результат, "Bitrix24", "ВосстановитьФайл", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("fileid", IDФайла);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ВосстановитьФайл", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ВосстановитьФайл");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПереименоватьФайл(ПараметрыФункции)
-
- Наименование = "Новое имя файла.jpg";
- Наименование2 = "Новое имя файла 2.jpg";
-
- IDФайла2 = ПараметрыФункции["Bitrix24_HookFileID"];
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("fileid", IDФайла2);
- Опции.Вставить("title", Наименование2);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПереименоватьФайл", Опции);
-
- Обработать(Результат, "Bitrix24", "ПереименоватьФайл", "Хук"); // SKIP
-
- IDФайла = ПараметрыФункции["Bitrix24_FileID"];
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("fileid", IDФайла);
- Опции.Вставить("title", Наименование);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПереименоватьФайл", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПереименоватьФайл");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПереместитьФайлВКаталог(ПараметрыФункции)
-
- IDКаталога = ПараметрыФункции["Bitrix24_HookSubFolderID"];
- IDФайла = ПараметрыФункции["Bitrix24_FileID"];
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("fileid", IDФайла);
- Опции.Вставить("folderid", IDКаталога);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПереместитьФайлВКаталог", Опции);
-
- Обработать(Результат, "Bitrix24", "ПереместитьФайлВКаталог", "Хук"); // SKIP
-
- IDКаталога = ПараметрыФункции["Bitrix24_SubFolderID"];
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("fileid", IDФайла);
- Опции.Вставить("folderid", IDКаталога);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПереместитьФайлВКаталог", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПереместитьФайлВКаталог");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ДобавитьФайлВЗадачу(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЗадачи = ПараметрыФункции["Bitrix24_HookTaskID"];
- IDФайла = ПараметрыФункции["Bitrix24_TaskFileID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
- Опции.Вставить("fileid", IDФайла);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ДобавитьФайлВЗадачу", Опции);
-
- Обработать(Результат, "Bitrix24", "ДобавитьФайлВЗадачу", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЗадачи = ПараметрыФункции["Bitrix24_TaskID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
- Опции.Вставить("fileid", IDФайла);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ДобавитьФайлВЗадачу", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ДобавитьФайлВЗадачу");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПроверитьДоступКЗадаче(ПараметрыФункции)
-
- МассивПользователей = Новый Массив;
- МассивПользователей.Добавить("1");
- МассивПользователей.Добавить("10");
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЗадачи = ПараметрыФункции["Bitrix24_HookTaskID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
- Опции.Вставить("users", МассивПользователей);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПроверитьДоступКЗадаче", Опции);
-
- Обработать(Результат, "Bitrix24", "ПроверитьДоступКЗадаче", "Хук", МассивПользователей.Количество()); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЗадачи = ПараметрыФункции["Bitrix24_TaskID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
- Опции.Вставить("users", МассивПользователей);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПроверитьДоступКЗадаче", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПроверитьДоступКЗадаче", , МассивПользователей.Количество());
-
-КонецПроцедуры
-
-Процедура Bitrix24_ОтключитьЗвукЗадачи(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЗадачи = ПараметрыФункции["Bitrix24_HookTaskID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ОтключитьЗвукЗадачи", Опции);
-
- Обработать(Результат, "Bitrix24", "ОтключитьЗвукЗадачи", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЗадачи = ПараметрыФункции["Bitrix24_TaskID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ОтключитьЗвукЗадачи", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ОтключитьЗвукЗадачи");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ВключитьЗвукЗадачи(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЗадачи = ПараметрыФункции["Bitrix24_HookTaskID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ВключитьЗвукЗадачи", Опции);
-
- Обработать(Результат, "Bitrix24", "ВключитьЗвукЗадачи", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЗадачи = ПараметрыФункции["Bitrix24_TaskID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ВключитьЗвукЗадачи", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ВключитьЗвукЗадачи");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ДобавитьКомментарийЗадачи(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЗадачи = ПараметрыФункции["Bitrix24_CommentsTaskID"];
-
- Текст = "Задача невыполнима, расходимся";
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
- Опции.Вставить("text", Текст);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ДобавитьКомментарийЗадачи", Опции);
-
- Обработать(Результат, "Bitrix24", "ДобавитьКомментарийЗадачи", "Хук", ПараметрыФункции); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Текст = "Задача выполнима, не расходимся";
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
- Опции.Вставить("text", Текст);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ДобавитьКомментарийЗадачи", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ДобавитьКомментарийЗадачи", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура Bitrix24_УдалитьКомментарийЗадачи(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЗадачи = ПараметрыФункции["Bitrix24_CommentsTaskID"];
- IDКомментария = ПараметрыФункции["Bitrix24_HookCommentID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
- Опции.Вставить("comment", IDКомментария);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "УдалитьКомментарийЗадачи", Опции);
-
- Обработать(Результат, "Bitrix24", "УдалитьКомментарийЗадачи", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDКомментария = ПараметрыФункции["Bitrix24_CommentID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
- Опции.Вставить("comment", IDКомментария);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "УдалитьКомментарийЗадачи", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "УдалитьКомментарийЗадачи");
-
-КонецПроцедуры
-
-Процедура Bitrix24_СоздатьРезультатИзКомментария(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDКомментария = ПараметрыФункции["Bitrix24_HookCommentID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("comment", IDКомментария);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "СоздатьРезультатИзКомментария", Опции);
-
- Обработать(Результат, "Bitrix24", "СоздатьРезультатИзКомментария", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDКомментария = ПараметрыФункции["Bitrix24_CommentID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("comment", IDКомментария);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "СоздатьРезультатИзКомментария", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "СоздатьРезультатИзКомментария");
-
-КонецПроцедуры
-
-Процедура Bitrix24_УдалитьРезультатИзКомментария(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDКомментария = ПараметрыФункции["Bitrix24_HookCommentID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("comment", IDКомментария);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "УдалитьРезультатИзКомментария", Опции);
-
- Обработать(Результат, "Bitrix24", "УдалитьРезультатИзКомментария", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDКомментария = ПараметрыФункции["Bitrix24_CommentID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("comment", IDКомментария);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "УдалитьРезультатИзКомментария", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "УдалитьРезультатИзКомментария");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьСписокРезультатов(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЗадачи = ПараметрыФункции["Bitrix24_CommentsTaskID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьСписокРезультатов", Опции);
-
- Обработать(Результат, "Bitrix24", "ПолучитьСписокРезультатов", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьСписокРезультатов", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьСписокРезультатов");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьСписокКомментариевЗадачи(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЗадачи = ПараметрыФункции["Bitrix24_CommentsTaskID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьСписокКомментариевЗадачи", Опции);
-
- Обработать(Результат, "Bitrix24", "ПолучитьСписокКомментариевЗадачи", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьСписокКомментариевЗадачи", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьСписокКомментариевЗадачи");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьКомменатрийЗадачи(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDКомментария = ПараметрыФункции["Bitrix24_HookCommentID"];
- IDЗадачи = ПараметрыФункции["Bitrix24_CommentsTaskID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
- Опции.Вставить("comment", IDКомментария);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьКомменатрийЗадачи", Опции);
-
- Обработать(Результат, "Bitrix24", "ПолучитьКомменатрийЗадачи", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDКомментария = ПараметрыФункции["Bitrix24_CommentID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
- Опции.Вставить("comment", IDКомментария);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьКомменатрийЗадачи", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьКомменатрийЗадачи");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ИзменитьКомментарийЗадачи(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЗадачи = ПараметрыФункции["Bitrix24_CommentsTaskID"];
- IDКомментария = ПараметрыФункции["Bitrix24_HookCommentID"];
-
- Текст = "Задача изменена, не расходимся";
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
- Опции.Вставить("comment", IDКомментария);
- Опции.Вставить("text", Текст);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ИзменитьКомментарийЗадачи", Опции);
-
- Обработать(Результат, "Bitrix24", "ИзменитьКомментарийЗадачи", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDКомментария = ПараметрыФункции["Bitrix24_CommentID"];
-
- Текст = "Задача изменена, расходимся";
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
- Опции.Вставить("comment", IDКомментария);
- Опции.Вставить("text", Текст);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ИзменитьКомментарийЗадачи", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ИзменитьКомментарийЗадачи");
-
-КонецПроцедуры
-
-Процедура Bitrix24_СоздатьЗависимостьЗадач(ПараметрыФункции)
-
- IDИсточника = ПараметрыФункции["Bitrix24_HookTaskID"];
- IDПриемника = ПараметрыФункции["Bitrix24_TaskID"];
- ТипСвязи = 0;
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("taskfrom", IDИсточника);
- Опции.Вставить("taskto", IDПриемника);
- Опции.Вставить("linktype", ТипСвязи);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "СоздатьЗависимостьЗадач", Опции);
-
- Обработать(Результат, "Bitrix24", "СоздатьЗависимостьЗадач", "Хук"); // SKIP
-
- OPI_Bitrix24.УдалитьЗависимостьЗадач(URL, IDИсточника, IDПриемника, ТипСвязи); // SKIP
-
- IDИсточника = ПараметрыФункции["Bitrix24_TaskID"];
- IDПриемника = ПараметрыФункции["Bitrix24_HookTaskID"];
- ТипСвязи = 2;
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("taskfrom", IDИсточника);
- Опции.Вставить("taskto", IDПриемника);
- Опции.Вставить("linktype", ТипСвязи);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "СоздатьЗависимостьЗадач", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "СоздатьЗависимостьЗадач");
-
- OPI_Bitrix24.УдалитьЗависимостьЗадач(URL, IDИсточника, IDПриемника, ТипСвязи, Токен);
-
-КонецПроцедуры
-
-Процедура Bitrix24_УдалитьЗависимостьЗадач(ПараметрыФункции)
-
- IDИсточника = ПараметрыФункции["Bitrix24_HookTaskID"];
- IDПриемника = ПараметрыФункции["Bitrix24_TaskID"];
- ТипСвязи = 0;
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Результат = OPI_Bitrix24.СоздатьЗависимостьЗадач(URL, IDИсточника, IDПриемника, ТипСвязи); // SKIP
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("taskfrom", IDИсточника);
- Опции.Вставить("taskto", IDПриемника);
- Опции.Вставить("linktype", ТипСвязи);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "УдалитьЗависимостьЗадач", Опции);
-
- Обработать(Результат, "Bitrix24", "УдалитьЗависимостьЗадач", "Хук"); // SKIP
-
- IDИсточника = ПараметрыФункции["Bitrix24_TaskID"];
- IDПриемника = ПараметрыФункции["Bitrix24_HookTaskID"];
- ТипСвязи = 2;
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Результат = OPI_Bitrix24.СоздатьЗависимостьЗадач(URL, IDИсточника, IDПриемника, ТипСвязи, Токен); // SKIP
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("taskfrom", IDИсточника);
- Опции.Вставить("taskto", IDПриемника);
- Опции.Вставить("linktype", ТипСвязи);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "УдалитьЗависимостьЗадач", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "УдалитьЗависимостьЗадач");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ДобавитьСтадиюКанбана(ПараметрыФункции)
-
- Наименование = "Новая стадия";
- Цвет = "0026FF";
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("title", Наименование);
- Опции.Вставить("color", Цвет);
- Опции.Вставить("prevstage", 6);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ДобавитьСтадиюКанбана", Опции);
-
- Обработать(Результат, "Bitrix24", "ДобавитьСтадиюКанбана", "Хук", ПараметрыФункции); // SKIP
-
- Наименование = "Новая стадия 2";
- Цвет = "0026FF";
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDПредыдущей = Результат["result"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("title", Наименование);
- Опции.Вставить("color", Цвет);
- Опции.Вставить("prevstage", IDПредыдущей);
- Опции.Вставить("admin", Истина);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ДобавитьСтадиюКанбана", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ДобавитьСтадиюКанбана", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура Bitrix24_УдалитьСтадиюКанбана(ПараметрыФункции)
-
- IDСтадии = ПараметрыФункции["Bitrix24_HookStageID"];
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("stage", IDСтадии);
- Опции.Вставить("admin", Истина);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "УдалитьСтадиюКанбана", Опции);
-
- Обработать(Результат, "Bitrix24", "УдалитьСтадиюКанбана", "Хук"); // SKIP
-
- IDСтадии = ПараметрыФункции["Bitrix24_StageID"];
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("stage", IDСтадии);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "УдалитьСтадиюКанбана", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "УдалитьСтадиюКанбана");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьСтадииКанбана(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("admin", Истина);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьСтадииКанбана", Опции);
-
- Обработать(Результат, "Bitrix24", "ПолучитьСтадииКанбана", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьСтадииКанбана", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьСтадииКанбана");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПеренестиЗадачуВСтадиюКанбана(ПараметрыФункции)
-
- IDЗадачи = ПараметрыФункции["Bitrix24_KanbanTaskID"];
- IDСтадии = ПараметрыФункции["Bitrix24_HookStageID"];
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
- Опции.Вставить("stage", IDСтадии);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПеренестиЗадачуВСтадиюКанбана", Опции);
-
- Обработать(Результат, "Bitrix24", "ПеренестиЗадачуВСтадиюКанбана", "Хук"); // SKIP
-
- IDСтадии = ПараметрыФункции["Bitrix24_StageID"];
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
- Опции.Вставить("stage", IDСтадии);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПеренестиЗадачуВСтадиюКанбана", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПеренестиЗадачуВСтадиюКанбана");
-
- OPI_Bitrix24.ПеренестиЗадачуВСтадиюКанбана(URL, IDЗадачи, 2, , , Токен);
-
-КонецПроцедуры
-
-Процедура Bitrix24_ИзменитьСтадиюКанбана(ПараметрыФункции)
-
- Наименование = "Новое имя стадии стадии";
- Цвет = "000000";
- IDСтадии = ПараметрыФункции["Bitrix24_HookStageID"];
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("title", Наименование);
- Опции.Вставить("stage", IDСтадии);
- Опции.Вставить("color", Цвет);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ИзменитьСтадиюКанбана", Опции);
-
- Обработать(Результат, "Bitrix24", "ИзменитьСтадиюКанбана", "Хук"); // SKIP
-
- Наименование = "Новое имя стадии стадии 2";
- Цвет = "000000";
- IDСтадии = ПараметрыФункции["Bitrix24_StageID"];
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("title", Наименование);
- Опции.Вставить("stage", IDСтадии);
- Опции.Вставить("color", Цвет);
- Опции.Вставить("prevstage", 6);
- Опции.Вставить("admin", Истина);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ИзменитьСтадиюКанбана", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ИзменитьСтадиюКанбана");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ДобавитьЭлементЧеклистаЗадачи(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЗадачи = ПараметрыФункции["Bitrix24_HookTaskID"];
-
- Текст = "Пункт чек-листа";
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
- Опции.Вставить("text", Текст);
- Опции.Вставить("complete", Истина);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ДобавитьЭлементЧеклистаЗадачи", Опции);
-
- Обработать(Результат, "Bitrix24", "ДобавитьЭлементЧеклистаЗадачи", "Хук", ПараметрыФункции); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЗадачи = ПараметрыФункции["Bitrix24_TaskID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
- Опции.Вставить("text", Текст);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ДобавитьЭлементЧеклистаЗадачи", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ДобавитьЭлементЧеклистаЗадачи", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура Bitrix24_ИзменитьЭлементЧеклистаЗадачи(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЗадачи = ПараметрыФункции["Bitrix24_HookTaskID"];
- IDЭлемента = ПараметрыФункции["Bitrix24_HookCheckElementID"];
-
- Текст = "Новый текст пункта чек-листа";
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
- Опции.Вставить("element", IDЭлемента);
- Опции.Вставить("text", Текст);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ИзменитьЭлементЧеклистаЗадачи", Опции);
-
- Обработать(Результат, "Bitrix24", "ИзменитьЭлементЧеклистаЗадачи", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЗадачи = ПараметрыФункции["Bitrix24_TaskID"];
- IDЭлемента = ПараметрыФункции["Bitrix24_CheckElementID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
- Опции.Вставить("element", IDЭлемента);
- Опции.Вставить("text", Текст);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ИзменитьЭлементЧеклистаЗадачи", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ИзменитьЭлементЧеклистаЗадачи");
-
-КонецПроцедуры
-
-Процедура Bitrix24_УдалитьЭлементЧеклистаЗадачи(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЗадачи = ПараметрыФункции["Bitrix24_HookTaskID"];
- IDЭлемента = ПараметрыФункции["Bitrix24_HookCheckElementID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
- Опции.Вставить("element", IDЭлемента);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "УдалитьЭлементЧеклистаЗадачи", Опции);
-
- Обработать(Результат, "Bitrix24", "УдалитьЭлементЧеклистаЗадачи", "Хук"); // SKIP
-
- IDЗадачи = ПараметрыФункции["Bitrix24_TaskID"];
- IDЭлемента = ПараметрыФункции["Bitrix24_CheckElementID"];
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
- Опции.Вставить("element", IDЭлемента);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "УдалитьЭлементЧеклистаЗадачи", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "УдалитьЭлементЧеклистаЗадачи");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьЧеклистЗадачи(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЗадачи = ПараметрыФункции["Bitrix24_HookTaskID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьЧеклистЗадачи", Опции);
-
- Обработать(Результат, "Bitrix24", "ПолучитьЧеклистЗадачи", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЗадачи = ПараметрыФункции["Bitrix24_TaskID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьЧеклистЗадачи", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьЧеклистЗадачи");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьЭлементЧеклистаЗадачи(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЗадачи = ПараметрыФункции["Bitrix24_HookTaskID"];
- IDЭлемента = ПараметрыФункции["Bitrix24_HookCheckElementID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
- Опции.Вставить("element", IDЭлемента);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьЭлементЧеклистаЗадачи", Опции);
-
- Обработать(Результат, "Bitrix24", "ПолучитьЭлементЧеклистаЗадачи", "Хук"); // SKIP
-
- IDЗадачи = ПараметрыФункции["Bitrix24_TaskID"];
- IDЭлемента = ПараметрыФункции["Bitrix24_CheckElementID"];
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
- Опции.Вставить("element", IDЭлемента);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьЭлементЧеклистаЗадачи", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьЭлементЧеклистаЗадачи");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ВыполнитьЭлементЧеклистаЗадачи(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЗадачи = ПараметрыФункции["Bitrix24_HookTaskID"];
- IDЭлемента = ПараметрыФункции["Bitrix24_HookCheckElementID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
- Опции.Вставить("element", IDЭлемента);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ВыполнитьЭлементЧеклистаЗадачи", Опции);
-
- Обработать(Результат, "Bitrix24", "ВыполнитьЭлементЧеклистаЗадачи", "Хук"); // SKIP
-
- IDЗадачи = ПараметрыФункции["Bitrix24_TaskID"];
- IDЭлемента = ПараметрыФункции["Bitrix24_CheckElementID"];
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
- Опции.Вставить("element", IDЭлемента);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ВыполнитьЭлементЧеклистаЗадачи", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ВыполнитьЭлементЧеклистаЗадачи");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ВозобновитьЭлементЧеклистаЗадачи(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЗадачи = ПараметрыФункции["Bitrix24_HookTaskID"];
- IDЭлемента = ПараметрыФункции["Bitrix24_HookCheckElementID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
- Опции.Вставить("element", IDЭлемента);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ВозобновитьЭлементЧеклистаЗадачи", Опции);
-
- Обработать(Результат, "Bitrix24", "ВозобновитьЭлементЧеклистаЗадачи", "Хук"); // SKIP
-
- IDЗадачи = ПараметрыФункции["Bitrix24_TaskID"];
- IDЭлемента = ПараметрыФункции["Bitrix24_CheckElementID"];
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
- Опции.Вставить("element", IDЭлемента);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ВозобновитьЭлементЧеклистаЗадачи", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ВозобновитьЭлементЧеклистаЗадачи");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ДобавитьТрудозатратыЗадачи(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЗадачи = ПараметрыФункции["Bitrix24_ElapsedTaskID"];
-
- Время = 3600;
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
- Опции.Вставить("amount", Время);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ДобавитьТрудозатратыЗадачи", Опции);
-
- Обработать(Результат, "Bitrix24", "ДобавитьТрудозатратыЗадачи", "Хук", ПараметрыФункции); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Текст = "Трудозатраты по обработке";
- IDПользователя = 10;
- Время = 7200;
- ДатаУстановки = ДобавитьМесяц(OPI_Инструменты.ПолучитьТекущуюДату(), -1);
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
- Опции.Вставить("amount", Время);
- Опции.Вставить("user", IDПользователя);
- Опции.Вставить("text", Текст);
- Опции.Вставить("date", ДатаУстановки);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ДобавитьТрудозатратыЗадачи", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ДобавитьТрудозатратыЗадачи", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура Bitrix24_ИзменитьТрудозатратыЗадачи(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЗадачи = ПараметрыФункции["Bitrix24_ElapsedTaskID"];
- IDЗаписи = ПараметрыФункции["Bitrix24_HookTimeID"];
-
- Текст = "Забытый в прошлый раз текст";
- Время = 4800;
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
- Опции.Вставить("record", IDЗаписи);
- Опции.Вставить("amount", Время);
- Опции.Вставить("text", Текст);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ИзменитьТрудозатратыЗадачи", Опции);
-
- Обработать(Результат, "Bitrix24", "ИзменитьТрудозатратыЗадачи", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЗаписи = ПараметрыФункции["Bitrix24_TimeID"];
-
- Текст = "Новые трудозатраты по обработке";
- Время = 4800;
- ДатаУстановки = ДобавитьМесяц(OPI_Инструменты.ПолучитьТекущуюДату(), -1);
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
- Опции.Вставить("record", IDЗаписи);
- Опции.Вставить("amount", Время);
- Опции.Вставить("text", Текст);
- Опции.Вставить("date", ДатаУстановки);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ИзменитьТрудозатратыЗадачи", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ИзменитьТрудозатратыЗадачи");
-
-КонецПроцедуры
-
-Процедура Bitrix24_УдалитьТрудозатратыЗадачи(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЗадачи = ПараметрыФункции["Bitrix24_ElapsedTaskID"];
- IDЗаписи = ПараметрыФункции["Bitrix24_HookTimeID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
- Опции.Вставить("record", IDЗаписи);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "УдалитьТрудозатратыЗадачи", Опции);
-
- Обработать(Результат, "Bitrix24", "УдалитьТрудозатратыЗадачи", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЗаписи = ПараметрыФункции["Bitrix24_TimeID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
- Опции.Вставить("record", IDЗаписи);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "УдалитьТрудозатратыЗадачи", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "УдалитьТрудозатратыЗадачи");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьТрудозатратыЗадачи(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЗадачи = ПараметрыФункции["Bitrix24_ElapsedTaskID"];
- IDЗаписи = ПараметрыФункции["Bitrix24_HookTimeID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
- Опции.Вставить("record", IDЗаписи);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьТрудозатратыЗадачи", Опции);
-
- Обработать(Результат, "Bitrix24", "ПолучитьТрудозатратыЗадачи", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЗаписи = ПараметрыФункции["Bitrix24_TimeID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
- Опции.Вставить("record", IDЗаписи);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьТрудозатратыЗадачи", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьТрудозатратыЗадачи");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьСписокТрудозатратЗадачи(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЗадачи = ПараметрыФункции["Bitrix24_ElapsedTaskID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьСписокТрудозатратЗадачи", Опции);
-
- Обработать(Результат, "Bitrix24", "ПолучитьСписокТрудозатратЗадачи", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("task", IDЗадачи);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьСписокТрудозатратЗадачи", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьСписокТрудозатратЗадачи");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьПланЗадачНаДень(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьПланЗадачНаДень", Опции);
-
- Обработать(Результат, "Bitrix24", "ПолучитьПланЗадачНаДень", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьПланЗадачНаДень", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьПланЗадачНаДень");
-
-КонецПроцедуры
-
-Процедура Bitrix24_СоздатьЧат(ПараметрыФункции)
-
- Картинка = ПараметрыФункции["Picture"];
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка);
-
- B64Картинка = ПолучитьBase64СтрокуИзДвоичныхДанных(Картинка);
-
- МассивУчастников = Новый Массив;
- МассивУчастников.Добавить(10);
- МассивУчастников.Добавить(1);
-
- СтруктураЧата = Новый Структура;
- СтруктураЧата.Вставить("TYPE" , "OPEN");
- СтруктураЧата.Вставить("TITLE" , "Новый чат");
- СтруктураЧата.Вставить("DESCRIPTION", "Это новый чат");
- СтруктураЧата.Вставить("COLOR" , "GREEN");
- СтруктураЧата.Вставить("MESSAGE" , "Добро пожаловать в новый чат");
- СтруктураЧата.Вставить("USERS" , МассивУчастников);
- СтруктураЧата.Вставить("AVATAR" , B64Картинка);
- СтруктураЧата.Вставить("OWNER_ID" , 1);
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("fields", СтруктураЧата);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "СоздатьЧат", Опции);
-
- Обработать(Результат, "Bitrix24", "СоздатьЧат", "Хук", ПараметрыФункции); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- СтруктураЧата = Новый Структура;
- СтруктураЧата.Вставить("TYPE" , "CHAT");
- СтруктураЧата.Вставить("TITLE", "Закрытый чат");
- СтруктураЧата.Вставить("USERS", МассивУчастников);
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("fields", СтруктураЧата);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "СоздатьЧат", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "СоздатьЧат", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьСписокПользователейЧата(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЧата = ПараметрыФункции["Bitrix24_HookChatID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("chat", IDЧата);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьСписокПользователейЧата", Опции);
-
- Обработать(Результат, "Bitrix24", "ПолучитьСписокПользователейЧата", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЧата = ПараметрыФункции["Bitrix24_ChatID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("chat", IDЧата);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьСписокПользователейЧата", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьСписокПользователейЧата");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПокинутьЧат(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЧата = ПараметрыФункции["Bitrix24_HookChatID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("chat", IDЧата);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПокинутьЧат", Опции);
-
- Обработать(Результат, "Bitrix24", "ПокинутьЧат", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЧата = ПараметрыФункции["Bitrix24_ChatID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("chat", IDЧата);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПокинутьЧат", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПокинутьЧат");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ИсключитьПользователяИзЧата(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЧата = ПараметрыФункции["Bitrix24_HookChatID"];
-
- IDПользователя = 10;
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("chat", IDЧата);
- Опции.Вставить("user", IDПользователя);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ИсключитьПользователяИзЧата", Опции);
-
- Обработать(Результат, "Bitrix24", "ИсключитьПользователяИзЧата", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЧата = ПараметрыФункции["Bitrix24_ChatID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("chat", IDЧата);
- Опции.Вставить("user", IDПользователя);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ИсключитьПользователяИзЧата", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ИсключитьПользователяИзЧата");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ДобавитьПользователейВЧат(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЧата = ПараметрыФункции["Bitrix24_HookChatID"];
-
- IDПользователей = Новый Массив;
- IDПользователей.Добавить(10);
- IDПользователей.Добавить(12);
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("chat", IDЧата);
- Опции.Вставить("users", IDПользователей);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ДобавитьПользователейВЧат", Опции);
-
- Обработать(Результат, "Bitrix24", "ДобавитьПользователейВЧат", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЧата = ПараметрыФункции["Bitrix24_ChatID"];
- IDПользователя = 10;
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("chat", IDЧата);
- Опции.Вставить("users", IDПользователя);
- Опции.Вставить("hide", Истина);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ДобавитьПользователейВЧат", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ДобавитьПользователейВЧат");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ИзменитьЗаголовокЧата(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЧата = ПараметрыФункции["Bitrix24_HookChatID"];
-
- Заголовок = "Новый заголовок чата";
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("chat", IDЧата);
- Опции.Вставить("title", Заголовок);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ИзменитьЗаголовокЧата", Опции);
-
- Обработать(Результат, "Bitrix24", "ИзменитьЗаголовокЧата", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЧата = ПараметрыФункции["Bitrix24_ChatID"];
-
- Заголовок = "Другой заголовок чата";
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("chat", IDЧата);
- Опции.Вставить("title", Заголовок);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ИзменитьЗаголовокЧата", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ИзменитьЗаголовокЧата");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ИзменитьЦветЧата(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЧата = ПараметрыФункции["Bitrix24_HookChatID"];
-
- Цвет = "AZURE";
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("chat", IDЧата);
- Опции.Вставить("color", Цвет);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ИзменитьЦветЧата", Опции);
-
- Обработать(Результат, "Bitrix24", "ИзменитьЦветЧата", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Цвет = "PURPLE";
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("chat", IDЧата);
- Опции.Вставить("color", Цвет);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ИзменитьЦветЧата", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ИзменитьЦветЧата");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ИзменитьКартинкуЧата(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЧата = ПараметрыФункции["Bitrix24_HookChatID"];
-
- Картинка = ПараметрыФункции["Picture2"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("chat", IDЧата);
- Опции.Вставить("picture", Картинка);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ИзменитьКартинкуЧата", Опции);
-
- Обработать(Результат, "Bitrix24", "ИзменитьКартинкуЧата", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЧата = ПараметрыФункции["Bitrix24_ChatID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("chat", IDЧата);
- Опции.Вставить("picture", Картинка);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ИзменитьКартинкуЧата", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ИзменитьКартинкуЧата");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ОтключитьУведомленияЧата(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЧата = ПараметрыФункции["Bitrix24_HookChatID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("chat", IDЧата);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ОтключитьУведомленияЧата", Опции);
-
- Обработать(Результат, "Bitrix24", "ОтключитьУведомленияЧата", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЧата = ПараметрыФункции["Bitrix24_ChatID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("chat", IDЧата);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ОтключитьУведомленияЧата", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ОтключитьУведомленияЧата");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ВключитьУведомленияЧата(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЧата = ПараметрыФункции["Bitrix24_HookChatID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("chat", IDЧата);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ВключитьУведомленияЧата", Опции);
-
- Обработать(Результат, "Bitrix24", "ВключитьУведомленияЧата", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЧата = ПараметрыФункции["Bitrix24_ChatID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("chat", IDЧата);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ВключитьУведомленияЧата", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ВключитьУведомленияЧата");
-
-КонецПроцедуры
-
-Процедура Bitrix24_СменитьВладельцаЧата(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЧата = ПараметрыФункции["Bitrix24_HookChatID"];
-
- IDПользователя = 10;
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("chat", IDЧата);
- Опции.Вставить("user", IDПользователя);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "СменитьВладельцаЧата", Опции);
-
- Обработать(Результат, "Bitrix24", "СменитьВладельцаЧата", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЧата = ПараметрыФункции["Bitrix24_ChatID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("chat", IDЧата);
- Опции.Вставить("user", IDПользователя);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "СменитьВладельцаЧата", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "СменитьВладельцаЧата");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьСписокСообщенийЧата(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЧата = "chat4";
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("chat", IDЧата);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьСписокСообщенийЧата", Опции);
-
- Обработать(Результат, "Bitrix24", "ПолучитьСписокСообщенийЧата", "Хук", ПараметрыФункции); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDПользователя = 10;
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("chat", IDПользователя);
- Опции.Вставить("first", 0);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьСписокСообщенийЧата", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьСписокСообщенийЧата", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура Bitrix24_ОтметитьСообщениеКакПрочитанное(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЧата = ПараметрыФункции["Bitrix24_HookChatID"];
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата);
- СтрокаЧата = "chat" + IDЧата;
-
- IDСообщения = ПараметрыФункции["Bitrix24_ChatMessageID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("chat", СтрокаЧата);
- Опции.Вставить("message", IDСообщения);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ОтметитьСообщениеКакПрочитанное", Опции);
-
- Обработать(Результат, "Bitrix24", "ОтметитьСообщениеКакПрочитанное", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDПользователя = 10;
- IDСообщения = ПараметрыФункции["Bitrix24_UserMessageID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("chat", IDПользователя);
- Опции.Вставить("message", IDСообщения);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ОтметитьСообщениеКакПрочитанное", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ОтметитьСообщениеКакПрочитанное");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ОтметитьСообщениеКакНепрочитанное(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЧата = ПараметрыФункции["Bitrix24_HookChatID"];
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата);
-
- СтрокаЧата = "chat" + IDЧата;
- IDСообщения = ПараметрыФункции["Bitrix24_ChatMessageID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("chat", СтрокаЧата);
- Опции.Вставить("message", IDСообщения);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ОтметитьСообщениеКакНепрочитанное", Опции);
-
- Обработать(Результат, "Bitrix24", "ОтметитьСообщениеКакНепрочитанное", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDПользователя = 10;
- IDСообщения = ПараметрыФункции["Bitrix24_UserMessageID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("chat", IDПользователя);
- Опции.Вставить("message", IDСообщения);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ОтметитьСообщениеКакНепрочитанное", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ОтметитьСообщениеКакНепрочитанное");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьДиалог(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЧата = ПараметрыФункции["Bitrix24_HookChatID"];
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата);
-
- СтрокаЧата = "chat" + IDЧата;
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("chat", СтрокаЧата);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьДиалог", Опции);
-
- Обработать(Результат, "Bitrix24", "ПолучитьДиалог", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDПользователя = 10;
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("chat", IDПользователя);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьДиалог", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьДиалог");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьСписокПользователейДиалога(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЧата = ПараметрыФункции["Bitrix24_HookChatID"];
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата);
-
- СтрокаЧата = "chat" + IDЧата;
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("chat", СтрокаЧата);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьСписокПользователейДиалога", Опции);
-
- Обработать(Результат, "Bitrix24", "ПолучитьСписокПользователейДиалога", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDПользователя = 10;
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("chat", IDПользователя);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьСписокПользователейДиалога", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьСписокПользователейДиалога");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ОтправитьУведомлениеОВводе(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЧата = ПараметрыФункции["Bitrix24_HookChatID"];
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата);
-
- СтрокаЧата = "chat" + IDЧата;
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("chat", СтрокаЧата);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ОтправитьУведомлениеОВводе", Опции);
-
- Обработать(Результат, "Bitrix24", "ОтправитьУведомлениеОВводе", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDПользователя = 10;
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("chat", IDПользователя);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ОтправитьУведомлениеОВводе", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ОтправитьУведомлениеОВводе");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПрочитатьВсе(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПрочитатьВсе", Опции);
-
- Обработать(Результат, "Bitrix24", "ПрочитатьВсе", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПрочитатьВсе", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПрочитатьВсе");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ОтправитьСообщение(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЧата = ПараметрыФункции["Bitrix24_HookChatID"];
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата);
-
- СтрокаЧата = "chat" + IDЧата;
- Текст = "Текст сообщения";
- Картинка = "https://raw.githubusercontent.com/Bayselonarrend/OpenIntegrations/main/service/test_data/picture.jpg";
- Файл = "https://github.com/Bayselonarrend/OpenIntegrations/raw/main/service/test_data/document.docx";
-
- Вложения = Новый Массив;
- Вложения.Добавить(OPI_Bitrix24.ПолучитьБлокКартинки("Картинка1", Картинка));
- Вложения.Добавить(OPI_Bitrix24.ПолучитьБлокФайла("Файл1.docx" , Файл));
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("chat", СтрокаЧата);
- Опции.Вставить("text", Текст);
- Опции.Вставить("blocks", Вложения);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ОтправитьСообщение", Опции);
-
- Обработать(Результат, "Bitrix24", "ОтправитьСообщение", "Хук", ПараметрыФункции); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDПользователя = 10;
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("chat", IDПользователя);
- Опции.Вставить("text", Текст);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ОтправитьСообщение", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ОтправитьСообщение", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура Bitrix24_ИзменитьСообщение(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDСообщения = ПараметрыФункции["Bitrix24_ChatMessageID"];
-
- Текст = "Новый текст сообщения";
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("message", IDСообщения);
- Опции.Вставить("text", Текст);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ИзменитьСообщение", Опции);
-
- Обработать(Результат, "Bitrix24", "ИзменитьСообщение", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDСообщения = ПараметрыФункции["Bitrix24_UserMessageID"];
-
- Картинка = "https://raw.githubusercontent.com/Bayselonarrend/OpenIntegrations/main/service/test_data/picture.jpg";
- Файл = "https://github.com/Bayselonarrend/OpenIntegrations/raw/main/service/test_data/document.docx";
-
- Вложения = Новый Массив;
- Вложения.Добавить(OPI_Bitrix24.ПолучитьБлокКартинки("Картинка1", Картинка));
- Вложения.Добавить(OPI_Bitrix24.ПолучитьБлокФайла("Файл1.docx" , Файл));
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("message", IDСообщения);
- Опции.Вставить("text", Текст);
- Опции.Вставить("blocks", Вложения);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ИзменитьСообщение", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ИзменитьСообщение");
-
-КонецПроцедуры
-
-Процедура Bitrix24_УдалитьСообщение(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDСообщения = ПараметрыФункции["Bitrix24_ChatMessageID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("message", IDСообщения);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "УдалитьСообщение", Опции);
-
- Обработать(Результат, "Bitrix24", "УдалитьСообщение", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDСообщения = ПараметрыФункции["Bitrix24_UserMessageID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("message", IDСообщения);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "УдалитьСообщение", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "УдалитьСообщение");
-
-КонецПроцедуры
-
-Процедура Bitrix24_УстановитьРеакциюНаСообщение(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDСообщения = ПараметрыФункции["Bitrix24_ChatMessageID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("message", IDСообщения);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "УстановитьРеакциюНаСообщение", Опции);
-
- Обработать(Результат, "Bitrix24", "УстановитьРеакциюНаСообщение", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDСообщения = ПараметрыФункции["Bitrix24_UserMessageID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("message", IDСообщения);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "УстановитьРеакциюНаСообщение", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "УстановитьРеакциюНаСообщение");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьКаталогФайловЧата(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЧата = ПараметрыФункции["Bitrix24_HookChatID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("chat", IDЧата);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьКаталогФайловЧата", Опции);
-
- Обработать(Результат, "Bitrix24", "ПолучитьКаталогФайловЧата", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЧата = ПараметрыФункции["Bitrix24_ChatID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("chat", IDЧата);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьКаталогФайловЧата", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьКаталогФайловЧата");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ОтправитьФайл(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЧата = ПараметрыФункции["Bitrix24_HookChatID"];
- Файл = ПараметрыФункции["Document"]; // Двоичные данные, URL или путь к файлу
- Описание = "Очень важный файл";
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("chat", IDЧата);
-
- Каталог = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьКаталогФайловЧата", Опции);
- IDКаталога = Каталог["result"]["ID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("title", "Важный документ.docx");
- Опции.Вставить("file", Файл);
- Опции.Вставить("folderid", IDКаталога);
-
- ЗагруженныйФайл = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ЗагрузитьФайлВКаталог", Опции);
- IDФайла = ЗагруженныйФайл["result"]["ID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("chat", IDЧата);
- Опции.Вставить("fileid", IDФайла);
- Опции.Вставить("description", Описание);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ОтправитьФайл", Опции);
-
- Обработать(Результат, "Bitrix24", "ОтправитьФайл", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЧата = ПараметрыФункции["Bitrix24_ChatID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("chat", IDЧата);
- Опции.Вставить("token", Токен);
-
- Каталог = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьКаталогФайловЧата", Опции);
- IDКаталога = Каталог["result"]["ID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("title", "Важный документ.docx");
- Опции.Вставить("file", Файл);
- Опции.Вставить("folderid", IDКаталога);
- Опции.Вставить("token", Токен);
-
- ЗагруженныйФайл = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ЗагрузитьФайлВКаталог", Опции);
- IDФайла = ЗагруженныйФайл["result"]["ID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("chat", IDЧата);
- Опции.Вставить("fileid", IDФайла);
- Опции.Вставить("description", Описание);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ОтправитьФайл", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ОтправитьФайл");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьПользователей(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- МассивПользователей = Новый Массив;
-
- МассивПользователей.Добавить(1);
- МассивПользователей.Добавить(10);
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("users", МассивПользователей);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьПользователей", Опции);
-
- Обработать(Результат, "Bitrix24", "ПолучитьПользователей", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDПользователей = 10;
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("users", IDПользователей);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьПользователей", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьПользователей");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьСтатусПользователя(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьСтатусПользователя", Опции);
-
- Обработать(Результат, "Bitrix24", "ПолучитьСтатусПользователя", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьСтатусПользователя", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьСтатусПользователя");
-
-КонецПроцедуры
-
-Процедура Bitrix24_УстановитьСтатусПользователя(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- Статус = "dnd";
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("status", Статус);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "УстановитьСтатусПользователя", Опции);
-
- Обработать(Результат, "Bitrix24", "УстановитьСтатусПользователя", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- Статус = "away";
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("status", Статус);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "УстановитьСтатусПользователя", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "УстановитьСтатусПользователя");
-
-КонецПроцедуры
-
-Процедура Bitrix24_СоздатьПерсональноеУведомление(ПараметрыФункции)
-
- IDПользователя = 1;
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- Текст = "Текст сообщения";
- Картинка = "https://raw.githubusercontent.com/Bayselonarrend/OpenIntegrations/main/service/test_data/picture.jpg";
- Файл = "https://github.com/Bayselonarrend/OpenIntegrations/raw/main/service/test_data/document.docx";
-
- Вложения = Новый Массив;
- Вложения.Добавить(OPI_Bitrix24.ПолучитьБлокКартинки("Картинка1", Картинка));
- Вложения.Добавить(OPI_Bitrix24.ПолучитьБлокФайла("Файл1.docx" , Файл));
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("user", IDПользователя);
- Опции.Вставить("text", Текст);
- Опции.Вставить("blocks", Вложения);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "СоздатьПерсональноеУведомление", Опции);
-
- Обработать(Результат, "Bitrix24", "СоздатьПерсональноеУведомление", "Хук", ПараметрыФункции); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- Тег = "Новый";
- IDПользователя = 10;
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("user", IDПользователя);
- Опции.Вставить("text", Текст);
- Опции.Вставить("tag", Тег);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "СоздатьПерсональноеУведомление", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "СоздатьПерсональноеУведомление", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура Bitrix24_СоздатьСистемноеУведомление(ПараметрыФункции)
-
- IDПользователя = 1;
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- Текст = "Текст сообщения";
- Картинка = "https://raw.githubusercontent.com/Bayselonarrend/OpenIntegrations/main/service/test_data/picture.jpg";
- Файл = "https://github.com/Bayselonarrend/OpenIntegrations/raw/main/service/test_data/document.docx";
-
- Вложения = Новый Массив;
- Вложения.Добавить(OPI_Bitrix24.ПолучитьБлокКартинки("Картинка1", Картинка));
- Вложения.Добавить(OPI_Bitrix24.ПолучитьБлокФайла("Файл1.docx" , Файл));
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("user", IDПользователя);
- Опции.Вставить("text", Текст);
- Опции.Вставить("blocks", Вложения);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "СоздатьСистемноеУведомление", Опции);
-
- Обработать(Результат, "Bitrix24", "СоздатьСистемноеУведомление", "Хук", ПараметрыФункции); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- Тег = "Новый";
- IDПользователя = 10;
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("user", IDПользователя);
- Опции.Вставить("text", Текст);
- Опции.Вставить("tag", Тег);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "СоздатьСистемноеУведомление", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "СоздатьСистемноеУведомление", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура Bitrix24_УдалитьУведомление(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDУведомления = ПараметрыФункции["Bitrix24_PersoalHookNotifyID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("notif", IDУведомления);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "УдалитьУведомление", Опции);
-
- Обработать(Результат, "Bitrix24", "УдалитьУведомление", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDУведомления = ПараметрыФункции["Bitrix24_PersoalNotifyID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("notif", IDУведомления);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "УдалитьУведомление", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "УдалитьУведомление");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ДобавитьПользовательскоеПолеЗадачи(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Тип = "date";
- Имя = "BIRTHDAY_FIELD";
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("type", Тип);
- Опции.Вставить("fieldname", Имя);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ДобавитьПользовательскоеПолеЗадачи", Опции);
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Тип = "string";
- Имя = "TEXT_FIELD";
- ВнешнийКод = "BITRIX_TEXT_FIELD";
- Заголовок = "Поле для текста";
- Подпись = Новый Структура("en,ru", "Some field", "Некоторое поле");
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("type", Тип);
- Опции.Вставить("fieldname", Имя);
- Опции.Вставить("externalid", ВнешнийКод);
- Опции.Вставить("title", Заголовок);
- Опции.Вставить("label", Подпись);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ДобавитьПользовательскоеПолеЗадачи", Опции);
-
- // END
-
-КонецПроцедуры
-
-Процедура Bitrix24_ИзменитьПользовательскоеПолеЗадачи(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- IDПоля = ПараметрыФункции["Bitrix24_HookTaskFieldID"];
- Заголовок = "Новый заголовок";
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("fieldid", IDПоля);
- Опции.Вставить("title", Заголовок);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ИзменитьПользовательскоеПолеЗадачи", Опции);
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- IDПоля = ПараметрыФункции["Bitrix24_TaskFieldID"];
- ВнешнийКод = "NEW_TEXT_FIELD";
- Подпись = Новый Структура("en,ru", "Updated field", "Измененное поле");
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("fieldid", IDПоля);
- Опции.Вставить("externalid", ВнешнийКод);
- Опции.Вставить("label", Подпись);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ИзменитьПользовательскоеПолеЗадачи", Опции);
-
- // END
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьПользовательскоеПолеЗадачи(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDПоля = ПараметрыФункции["Bitrix24_HookTaskFieldID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("fieldid", IDПоля);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьПользовательскоеПолеЗадачи", Опции);
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDПоля = ПараметрыФункции["Bitrix24_TaskFieldID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("fieldid", IDПоля);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьПользовательскоеПолеЗадачи", Опции);
-
- // END
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьСписокПользовательскихПолейЗадачи(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьСписокПользовательскихПолейЗадачи", Опции);
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьСписокПользовательскихПолейЗадачи", Опции);
-
- // END
-
-КонецПроцедуры
-
-Процедура Bitrix24_УдалитьПользовательскоеПолеЗадачи(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDПоля = ПараметрыФункции["Bitrix24_HookTaskFieldID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("fieldid", IDПоля);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "УдалитьПользовательскоеПолеЗадачи", Опции);
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDПоля = ПараметрыФункции["Bitrix24_TaskFieldID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("fieldid", IDПоля);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "УдалитьПользовательскоеПолеЗадачи", Опции);
-
- // END
-
-КонецПроцедуры
-
-Процедура Bitrix24_СоздатьПодразделение(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Наименование = "Главное подразделение";
- IDРодителя = 1;
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("title", Наименование);
- Опции.Вставить("parentid", IDРодителя);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "СоздатьПодразделение", Опции);
-
- Обработать(Результат, "Bitrix24", "СоздатьПодразделение", "Хук", ПараметрыФункции); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Наименование = "Подчиненное подразделение";
- IDРодителя = ПараметрыФункции["Bitrix24_HookDepID"];
- IDРуководителя = 1;
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("title", Наименование);
- Опции.Вставить("parentid", IDРодителя);
- Опции.Вставить("headid", IDРуководителя);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "СоздатьПодразделение", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "СоздатьПодразделение", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура Bitrix24_ИзменитьПодразделение(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- IDПодразделения = ПараметрыФункции["Bitrix24_HookDepID"];
- IDРодителя = 7;
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("depid", IDПодразделения);
- Опции.Вставить("parentid", IDРодителя);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ИзменитьПодразделение", Опции);
-
- Обработать(Результат, "Bitrix24", "ИзменитьПодразделение", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- IDПодразделения = ПараметрыФункции["Bitrix24_DepID"];
- Наименование = "Новое подразделение";
- IDРодителя = 1;
- IDРуководителя = 10;
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("depid", IDПодразделения);
- Опции.Вставить("title", Наименование);
- Опции.Вставить("parentid", IDРодителя);
- Опции.Вставить("headid", IDРуководителя);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ИзменитьПодразделение", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ИзменитьПодразделение");
-
-КонецПроцедуры
-
-Процедура Bitrix24_УдалитьПодразделение(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDПодразделения = ПараметрыФункции["Bitrix24_DepID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("depid", IDПодразделения);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "УдалитьПодразделение", Опции);
-
- Обработать(Результат, "Bitrix24", "УдалитьПодразделение", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDПодразделения = ПараметрыФункции["Bitrix24_HookDepID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("depid", IDПодразделения);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "УдалитьПодразделение", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "УдалитьПодразделение");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьПодразделения(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDПодразделения = ПараметрыФункции["Bitrix24_DepID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("depid", IDПодразделения);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьПодразделения", Опции);
-
- Обработать(Результат, "Bitrix24", "ПолучитьПодразделения", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDРуководителя = 1;
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("headid", IDРуководителя);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьПодразделения", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьПодразделения");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьТекущегоПользователя(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьТекущегоПользователя", Опции);
-
- Обработать(Результат, "Bitrix24", "ПолучитьТекущегоПользователя", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьТекущегоПользователя", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьТекущегоПользователя");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьСтурктуруПользователя(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьСтурктуруПользователя", Опции);
-
- Обработать(Результат, "Bitrix24", "ПолучитьСтурктуруПользователя", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьСтурктуруПользователя", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьСтурктуруПользователя");
-
-КонецПроцедуры
-
-Процедура Bitrix24_СоздатьПользователя(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- Почта = Строка(Новый УникальныйИдентификатор) + "@exepmple.org";
-
- // Полную структуру можно получить функцией ПолучитьСтурктуруПользователя
-
- СтруктураПользователя = Новый Структура;
- СтруктураПользователя.Вставить("EMAIL" , Почта);
- СтруктураПользователя.Вставить("UF_DEPARTMENT", 7);
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("fields", СтруктураПользователя);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "СоздатьПользователя", Опции);
-
- Обработать(Результат, "Bitrix24", "СоздатьПользователя", "Хук", ПараметрыФункции); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- Почта = Строка(Новый УникальныйИдентификатор) + "@exepmple.org";
-
- СтруктураПользователя = Новый Структура;
- СтруктураПользователя.Вставить("EMAIL" , Почта);
- СтруктураПользователя.Вставить("NAME" , "Виталий");
- СтруктураПользователя.Вставить("LAST_NAME" , "Альпака");
- СтруктураПользователя.Вставить("PERSONAL_MOBILE", "88003553535");
- СтруктураПользователя.Вставить("UF_DEPARTMENT" , 1);
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("fields", СтруктураПользователя);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "СоздатьПользователя", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "СоздатьПользователя", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура Bitrix24_ИзменитьПользователя(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDПользователя = ПараметрыФункции["Bitrix24_HookUserID"];
- Почта = Строка(Новый УникальныйИдентификатор) + "@exepmple.org";
-
- // Полную структуру можно получить функцией ПолучитьСтурктуруПользователя
-
- СтруктураПользователя = Новый Структура;
- СтруктураПользователя.Вставить("EMAIL" , Почта);
- СтруктураПользователя.Вставить("UF_DEPARTMENT", 1);
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("userid", IDПользователя);
- Опции.Вставить("fields", СтруктураПользователя);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ИзменитьПользователя", Опции);
-
- Обработать(Результат, "Bitrix24", "ИзменитьПользователя", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDПользователя = ПараметрыФункции["Bitrix24_UserID"];
- Почта = Строка(Новый УникальныйИдентификатор) + "@exepmple.org";
-
- СтруктураПользователя = Новый Структура;
- СтруктураПользователя.Вставить("EMAIL" , Почта);
- СтруктураПользователя.Вставить("NAME" , "Олег");
- СтруктураПользователя.Вставить("LAST_NAME" , "Лама");
- СтруктураПользователя.Вставить("UF_DEPARTMENT", 7);
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("userid", IDПользователя);
- Опции.Вставить("fields", СтруктураПользователя);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ИзменитьПользователя", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ИзменитьПользователя");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ИзменитьСтатусПользователя(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDПользователя = ПараметрыФункции["Bitrix24_HookUserID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("userid", IDПользователя);
- Опции.Вставить("fire", Истина);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ИзменитьСтатусПользователя", Опции);
-
- Обработать(Результат, "Bitrix24", "ИзменитьСтатусПользователя", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDПользователя = ПараметрыФункции["Bitrix24_UserID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("userid", IDПользователя);
- Опции.Вставить("fire", Истина);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ИзменитьСтатусПользователя", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ИзменитьСтатусПользователя");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьПользователя(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDПользователя = ПараметрыФункции["Bitrix24_HookUserID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("userid", IDПользователя);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьПользователя", Опции);
-
- Обработать(Результат, "Bitrix24", "ПолучитьПользователя", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDПользователя = ПараметрыФункции["Bitrix24_UserID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("userid", IDПользователя);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьПользователя", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьПользователя");
-
-КонецПроцедуры
-
-Процедура Bitrix24_НайтиПользователей(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- СтруктураФильтра = Новый Структура;
- СтруктураФильтра.Вставить("NAME" , "Виталий");
- СтруктураФильтра.Вставить("LAST_NAME" , "Альпака");
- СтруктураФильтра.Вставить("WORK_POSITION" , "DevOps инженер");
- СтруктураФильтра.Вставить("UF_DEPARTMENT_NAME", "Отдел маркетинга");
- СтруктураФильтра.Вставить("USER_TYPE" , "employee");
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("filter", СтруктураФильтра);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "НайтиПользователей", Опции);
-
- Обработать(Результат, "Bitrix24", "НайтиПользователей", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- СтруктураФильтра = Новый Структура;
- СтруктураФильтра.Вставить("UF_DEPARTMENT_NAME", "Битрикс");
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("filter", СтруктураФильтра);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "НайтиПользователей", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "НайтиПользователей");
-
-КонецПроцедуры
-
-Процедура Bitrix24_НачатьУчетВремени(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "НачатьУчетВремени", Опции);
-
- Час = 3600;
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDПользователя = 1;
- Время = OPI_Инструменты.ПолучитьТекущуюДату() - Час;
- Отчет = "Опоздание";
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("userid", IDПользователя);
- Опции.Вставить("time", Время);
- Опции.Вставить("report", Отчет);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "НачатьУчетВремени", Опции);
-
- // END
-
-КонецПроцедуры
-
-Процедура Bitrix24_ЗавершитьУчетВремени(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ЗавершитьУчетВремени", Опции);
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDПользователя = 1;
- Время = OPI_Инструменты.ПолучитьТекущуюДату();
- Отчет = "Отгул";
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("userid", IDПользователя);
- Опции.Вставить("time", Время);
- Опции.Вставить("report", Отчет);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ЗавершитьУчетВремени", Опции);
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПриостановитьУчетВремени(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПриостановитьУчетВремени", Опции);
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDПользователя = 1;
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("userid", IDПользователя);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПриостановитьУчетВремени", Опции);
-
- // END
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьСтатусУчетаВремени(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьСтатусУчетаВремени", Опции);
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDПользователя = 1;
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("userid", IDПользователя);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьСтатусУчетаВремени", Опции);
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьНастройкиУчетаВремени(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьНастройкиУчетаВремени", Опции);
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDПользователя = 1;
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("userid", IDПользователя);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьНастройкиУчетаВремени", Опции);
-
- // END
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьСтруктуруФильтраЛидов(ПараметрыФункции)
-
- Пустая = Ложь;
- Опции = Новый Структура;
- Опции.Вставить("empty", Пустая);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьСтруктуруФильтраЛидов", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьСтруктуруФильтраЛидов");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьСтруктуруЛида(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьСтруктуруЛида", Опции);
-
- Обработать(Результат, "Bitrix24", "ПолучитьСтруктуруЛида", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьСтруктуруЛида", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьСтруктуруЛида");
-
-КонецПроцедуры
-
-Процедура Bitrix24_СоздатьЛид(ПараметрыФункции)
-
- МассивПочт = Новый Массив;
- МассивПочт.Добавить(Новый Структура("VALUE,VALUE_TYPE", "yo@example.com", "HOME"));
- МассивПочт.Добавить(Новый Структура("VALUE,VALUE_TYPE", "hi@example.com", "WORK"));
-
- МассивНомеров = Новый Массив;
- МассивНомеров.Добавить(Новый Структура("VALUE,VALUE_TYPE", "88005553535", "WORK"));
-
- СтруктураПолей = Новый Структура;
- СтруктураПолей.Вставить("ADDRESS" , "ул. Пушкина, д. 10");
- СтруктураПолей.Вставить("ADDRESS_COUNTRY", "Россия");
- СтруктураПолей.Вставить("EMAIL" , МассивПочт);
- СтруктураПолей.Вставить("NAME" , "Петр");
- СтруктураПолей.Вставить("LAST_NAME" , "Петров");
- СтруктураПолей.Вставить("PHONE" , МассивНомеров);
- СтруктураПолей.Вставить("TITLE" , "Мегаклиент");
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("fields", СтруктураПолей);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "СоздатьЛид", Опции);
-
- Обработать(Результат, "Bitrix24", "СоздатьЛид", "Хук", ПараметрыФункции); // SKIP
-
- СтруктураПолей.Вставить("NAME" , "Иван");
- СтруктураПолей.Вставить("LAST_NAME", "Иванов");
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("fields", СтруктураПолей);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "СоздатьЛид", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "СоздатьЛид", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура Bitrix24_ИзменитьЛид(ПараметрыФункции)
-
- СтруктураПолей = Новый Структура;
- СтруктураПолей.Вставить("ADDRESS" , "ул. Лермонтова, д. 20");
- СтруктураПолей.Вставить("ADDRESS_COUNTRY", "Беларусь");
- СтруктураПолей.Вставить("TITLE" , "Суперклиент");
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЛида = ПараметрыФункции["Bitrix24_HookLeadID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("lead", IDЛида);
- Опции.Вставить("fields", СтруктураПолей);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ИзменитьЛид", Опции);
-
- Обработать(Результат, "Bitrix24", "ИзменитьЛид", "Хук"); // SKIP
-
- СтруктураПолей.Вставить("NAME" , "Евгений");
- СтруктураПолей.Вставить("LAST_NAME", "Евгеньев");
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЛида = ПараметрыФункции["Bitrix24_LeadID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("lead", IDЛида);
- Опции.Вставить("fields", СтруктураПолей);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ИзменитьЛид", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ИзменитьЛид");
-
-КонецПроцедуры
-
-Процедура Bitrix24_УдалитьЛид(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЛида = ПараметрыФункции["Bitrix24_HookLeadID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("lead", IDЛида);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "УдалитьЛид", Опции);
-
- Обработать(Результат, "Bitrix24", "УдалитьЛид", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЛида = ПараметрыФункции["Bitrix24_LeadID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("lead", IDЛида);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "УдалитьЛид", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "УдалитьЛид");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьЛид(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDЛида = ПараметрыФункции["Bitrix24_HookLeadID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("lead", IDЛида);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьЛид", Опции);
-
- Обработать(Результат, "Bitrix24", "ПолучитьЛид", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDЛида = ПараметрыФункции["Bitrix24_LeadID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("lead", IDЛида);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьЛид", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьЛид");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьСписокЛидов(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьСписокЛидов", Опции);
-
- Обработать(Результат, "Bitrix24", "ПолучитьСписокЛидов", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Фильтр = Новый Структура;
- Фильтр.Вставить("TITLE" , "Мегаклиент");
- Фильтр.Вставить("HAS_EMAIL", "Y");
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("filter", Фильтр);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьСписокЛидов", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьСписокЛидов");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьСтруктуруФильтраСделок(ПараметрыФункции)
-
- Пустая = Ложь;
- Опции = Новый Структура;
- Опции.Вставить("empty", Пустая);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьСтруктуруФильтраСделок", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьСтруктуруФильтраСделок");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьСтруктуруСделки(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьСтруктуруСделки", Опции);
-
- Обработать(Результат, "Bitrix24", "ПолучитьСтруктуруСделки", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьСтруктуруСделки", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьСтруктуруСделки");
-
-КонецПроцедуры
-
-Процедура Bitrix24_СоздатьСделку(ПараметрыФункции)
-
- СтруктураПолей = Новый Структура;
- СтруктураПолей.Вставить("TITLE" , "Плановая продажа");
- СтруктураПолей.Вставить("TYPE_ID" , "GOODS");
- СтруктураПолей.Вставить("STAGE_ID" , "NEW");
- СтруктураПолей.Вставить("COMPANY_ID" , 1);
- СтруктураПолей.Вставить("CONTACT_ID" , 3);
- СтруктураПолей.Вставить("OPENED" , "Y");
- СтруктураПолей.Вставить("ASSIGNED_BY_ID", 1);
- СтруктураПолей.Вставить("PROBABILITY" , 30);
- СтруктураПолей.Вставить("CURRENCY_ID" , "USD");
- СтруктураПолей.Вставить("OPPORTUNITY" , 5000);
- СтруктураПолей.Вставить("CATEGORY_ID" , 5);
- СтруктураПолей.Вставить("BEGINDATE" , "2024-01-01");
- СтруктураПолей.Вставить("CLOSEDATE" , "2030-01-01");
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("fields", СтруктураПолей);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "СоздатьСделку", Опции);
-
- Обработать(Результат, "Bitrix24", "СоздатьСделку", "Хук", ПараметрыФункции); // SKIP
-
- СтруктураПолей.Вставить("TITLE" , "Другая сделка");
- СтруктураПолей.Вставить("CLOSEDATE", "2031-01-01");
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("fields", СтруктураПолей);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "СоздатьСделку", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "СоздатьСделку", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура Bitrix24_ИзменитьСделку(ПараметрыФункции)
-
- СтруктураПолей = Новый Структура;
- СтруктураПолей.Вставить("TITLE" , "Продажа в RUB");
- СтруктураПолей.Вставить("CURRENCY_ID", "RUB");
- СтруктураПолей.Вставить("OPPORTUNITY", 50000);
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDСделки = ПараметрыФункции["Bitrix24_HookDealID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("deal", IDСделки);
- Опции.Вставить("fields", СтруктураПолей);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ИзменитьСделку", Опции);
-
- Обработать(Результат, "Bitrix24", "ИзменитьСделку", "Хук"); // SKIP
-
- СтруктураПолей.Вставить("TITLE" , "Будущая сделка в RUB");
- СтруктураПолей.Вставить("BEGINDATE", "2025-01-01");
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDСделки = ПараметрыФункции["Bitrix24_DealID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("deal", IDСделки);
- Опции.Вставить("fields", СтруктураПолей);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ИзменитьСделку", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ИзменитьСделку");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьСделку(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDСделки = ПараметрыФункции["Bitrix24_HookDealID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("deal", IDСделки);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьСделку", Опции);
-
- Обработать(Результат, "Bitrix24", "ПолучитьСделку", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDСделки = ПараметрыФункции["Bitrix24_HookDealID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("deal", IDСделки);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьСделку", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьСделку");
-
-КонецПроцедуры
-
-Процедура Bitrix24_УдалитьСделку(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDСделки = ПараметрыФункции["Bitrix24_HookDealID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("deal", IDСделки);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "УдалитьСделку", Опции);
-
- Обработать(Результат, "Bitrix24", "УдалитьСделку", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDСделки = ПараметрыФункции["Bitrix24_DealID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("deal", IDСделки);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "УдалитьСделку", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "УдалитьСделку");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьСписокСделок(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьСписокСделок", Опции);
-
- Обработать(Результат, "Bitrix24", "ПолучитьСписокСделок", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Фильтр = Новый Структура;
- Фильтр.Вставить("TITLE" , "Продажа в RUB");
- Фильтр.Вставить("CURRENCY_ID", "RUB");
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("filter", Фильтр);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьСписокСделок", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьСписокСделок");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьСтруктуруФильтраЗадач(ПараметрыФункции)
-
- Пустая = Ложь;
- Опции = Новый Структура;
- Опции.Вставить("empty", Пустая);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьСтруктуруФильтраЗадач", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьСтруктуруФильтраЗадач");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьСтруктуруКомментария(ПараметрыФункции)
-
- Пустая = Ложь;
- Опции = Новый Структура;
- Опции.Вставить("empty", Пустая);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьСтруктуруКомментария", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьСтруктуруКомментария");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьСтруктуруЧата(ПараметрыФункции)
-
- Пустая = Ложь;
- Опции = Новый Структура;
- Опции.Вставить("empty", Пустая);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьСтруктуруЧата", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьСтруктуруЧата");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьБлокКартинки(ПараметрыФункции)
-
- Наименование = "Картинка";
- URL = ПараметрыФункции["Picture"];
-
- Опции = Новый Структура;
- Опции.Вставить("title", Наименование);
- Опции.Вставить("url", URL);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьБлокКартинки", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьБлокКартинки");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьБлокФайла(ПараметрыФункции)
-
- Наименование = "Картинка";
- URL = ПараметрыФункции["Document"];
-
- Опции = Новый Структура;
- Опции.Вставить("title", Наименование);
- Опции.Вставить("url", URL);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьБлокФайла", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьБлокФайла");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьСтруктуруФильтраПользователей(ПараметрыФункции)
-
- Пустая = Ложь;
- Опции = Новый Структура;
- Опции.Вставить("empty", Пустая);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьСтруктуруФильтраПользователей", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьСтруктуруФильтраПользователей");
-
-КонецПроцедуры
-
-Процедура Bitrix24_СоздатьКалендарь(ПараметрыФункции)
-
- IDПользователя = 1;
-
- СтруктураКалендаря = Новый Структура;
- СтруктураКалендаря.Вставить("type" , "user");
- СтруктураКалендаря.Вставить("ownerId" , IDПользователя);
- СтруктураКалендаря.Вставить("name" , "Новый календарь");
- СтруктураКалендаря.Вставить("description", "Мой новый календарь");
- СтруктураКалендаря.Вставить("color" , "#FFFFFF");
- СтруктураКалендаря.Вставить("text_color" , "#000000");
-
- СтруктураЭкспорта = Новый Структура;
- СтруктураЭкспорта.Вставить("ALLOW", "Истина");
- СтруктураЭкспорта.Вставить("SET" , "all");
-
- СтруктураКалендаря.Вставить("export", СтруктураЭкспорта);
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("fields", СтруктураКалендаря);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "СоздатьКалендарь", Опции);
-
- Обработать(Результат, "Bitrix24", "СоздатьКалендарь", "Хук", ПараметрыФункции); // SKIP
-
- СтруктураКалендаря.Вставить("name" , "Другой календарь");
- СтруктураКалендаря.Вставить("description", "Мой другой новый календарь");
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("fields", СтруктураКалендаря);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "СоздатьКалендарь", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "СоздатьКалендарь", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура Bitrix24_ИзменитьКалендарь(ПараметрыФункции)
-
- IDПользователя = 1;
-
- СтруктураКалендаря = Новый Структура;
- СтруктураКалендаря.Вставить("type" , "user");
- СтруктураКалендаря.Вставить("ownerId" , IDПользователя);
- СтруктураКалендаря.Вставить("name" , "Новое имя календаря");
- СтруктураКалендаря.Вставить("description", "Этот календарь был изменен");
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDКалендаря = ПараметрыФункции["Bitrix24_HookCalendarID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("calendar", IDКалендаря);
- Опции.Вставить("fields", СтруктураКалендаря);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ИзменитьКалендарь", Опции);
-
- Обработать(Результат, "Bitrix24", "ИзменитьКалендарь", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDКалендаря = ПараметрыФункции["Bitrix24_CalendarID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("calendar", IDКалендаря);
- Опции.Вставить("fields", СтруктураКалендаря);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ИзменитьКалендарь", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ИзменитьКалендарь");
-
-КонецПроцедуры
-
-Процедура Bitrix24_УдалитьКалендарь(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDКалендаря = ПараметрыФункции["Bitrix24_HookCalendarID"];
- IDВладельца = 1;
- Тип = "user";
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("calendar", IDКалендаря);
- Опции.Вставить("owner", IDВладельца);
- Опции.Вставить("type", Тип);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "УдалитьКалендарь", Опции);
-
- Обработать(Результат, "Bitrix24", "УдалитьКалендарь", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDКалендаря = ПараметрыФункции["Bitrix24_CalendarID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("calendar", IDКалендаря);
- Опции.Вставить("owner", IDВладельца);
- Опции.Вставить("type", Тип);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "УдалитьКалендарь", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "УдалитьКалендарь");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьСтруктуруКалендаря(ПараметрыФункции)
-
- Опции = Новый Структура;
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьСтруктуруКалендаря", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьСтруктуруКалендаря");
-
- Опции = Новый Структура;
- Опции.Вставить("empty", Истина);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьСтруктуруКалендаря", Опции);
-
- Обработать(Результат, "Bitrix24", "ПолучитьСтруктуруКалендаря", "Пустая");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьСписокКалендарей(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDВладельца = 1;
- Тип = "user";
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("owner", IDВладельца);
- Опции.Вставить("type", Тип);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьСписокКалендарей", Опции);
-
- Обработать(Результат, "Bitrix24", "ПолучитьСписокКалендарей", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("owner", IDВладельца);
- Опции.Вставить("type", Тип);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьСписокКалендарей", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьСписокКалендарей");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьСтруктуруНастроекКалендаря(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьСтруктуруНастроекКалендаря", Опции);
-
- Обработать(Результат, "Bitrix24", "ПолучитьСтруктуруНастроекКалендаря", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьСтруктуруНастроекКалендаря", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьСтруктуруНастроекКалендаря");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьСтруктуруПользовательскихНастроекКаледнаря(ПараметрыФункции)
-
- Опции = Новый Структура;
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьСтруктуруПользовательскихНастроекКаледнаря", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьСтруктуруПользовательскихНастроекКаледнаря");
-
- Опции = Новый Структура;
- Опции.Вставить("empty", Истина);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьСтруктуруПользовательскихНастроекКаледнаря", Опции);
-
- Обработать(Результат, "Bitrix24", "ПолучитьСтруктуруПользовательскихНастроекКаледнаря", "Пустая");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьПользовательскиеНастройкиКалендаря(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьПользовательскиеНастройкиКалендаря", Опции);
-
- Обработать(Результат, "Bitrix24", "ПолучитьПользовательскиеНастройкиКалендаря", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьПользовательскиеНастройкиКалендаря", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьПользовательскиеНастройкиКалендаря");
-
-КонецПроцедуры
-
-Процедура Bitrix24_УстановитьПользовательскиеНастройкиКалендаря(ПараметрыФункции)
-
- СтруктураКалендаря = Новый Структура;
- СтруктураКалендаря.Вставить("view" , "month");
- СтруктураКалендаря.Вставить("showDeclined" , "Y");
- СтруктураКалендаря.Вставить("collapseOffHours" , "N");
- СтруктураКалендаря.Вставить("showCompletedTasks", "N");
-
- URL = ПараметрыФункции["Bitrix24_URL"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("settings", СтруктураКалендаря);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "УстановитьПользовательскиеНастройкиКалендаря", Опции);
-
- Обработать(Результат, "Bitrix24", "УстановитьПользовательскиеНастройкиКалендаря", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("settings", СтруктураКалендаря);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "УстановитьПользовательскиеНастройкиКалендаря", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "УстановитьПользовательскиеНастройкиКалендаря");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьЗанятостьПользователей(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDКалендаря = ПараметрыФункции["Bitrix24_HookCalendarID"];
-
- Пользователь = 1;
-
- Неделя = 604800;
- ТекущаяДата = OPI_Инструменты.ПолучитьТекущуюДату();
-
- ДатаНачала = ТекущаяДата;
- ДатаОкончания = ТекущаяДата + Неделя;
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("users", Пользователь);
- Опции.Вставить("from", ДатаНачала);
- Опции.Вставить("to", ДатаОкончания);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьЗанятостьПользователей", Опции);
-
- Обработать(Результат, "Bitrix24", "ПолучитьЗанятостьПользователей", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDКалендаря = ПараметрыФункции["Bitrix24_CalendarID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("users", Пользователь);
- Опции.Вставить("from", ДатаНачала);
- Опции.Вставить("to", ДатаОкончания);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьЗанятостьПользователей", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьЗанятостьПользователей");
-
-КонецПроцедуры
-
-Процедура Bitrix24_СоздатьСобытиеКалендаря(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDКалендаря = ПараметрыФункции["Bitrix24_HookCalendarID"];
-
- Завтра = OPI_Инструменты.ПолучитьТекущуюДату() + 86400;
- Час = 3600;
-
- СтруктураСобытия = Новый Структура;
-
- СтруктураСобытия.Вставить("type" , "user");
- СтруктураСобытия.Вставить("ownerId" , 1);
- СтруктураСобытия.Вставить("from" , XMLСтрока(Завтра));
- СтруктураСобытия.Вставить("to" , XMLСтрока(Завтра + Час));
- СтруктураСобытия.Вставить("section" , IDКалендаря);
- СтруктураСобытия.Вставить("name" , "Новое событие");
- СтруктураСобытия.Вставить("skip_time" , "N");
- СтруктураСобытия.Вставить("timezone_from", "Europe/Minsk");
- СтруктураСобытия.Вставить("timezone_to" , "Europe/Minsk");
- СтруктураСобытия.Вставить("description" , "Описание события");
- СтруктураСобытия.Вставить("color" , "%23000000>");
- СтруктураСобытия.Вставить("text_color" , "%23FFFFFF");
- СтруктураСобытия.Вставить("accessibility", "quest");
- СтруктураСобытия.Вставить("importance" , "normal");
- СтруктураСобытия.Вставить("private_event", "Y");
-
- СтруктураПовторяемости = Новый Структура;
- СтруктураПовторяемости.Вставить("FREQ" , "DAILY");
- СтруктураПовторяемости.Вставить("COUNT" , 3);
- СтруктураПовторяемости.Вставить("INTERVAL", 10);
-
- МассивДней = Новый Массив;
- МассивДней.Добавить("SA");
- МассивДней.Добавить("MO");
-
- СтруктураПовторяемости.Вставить("BYDAY", МассивДней);
- СтруктураПовторяемости.Вставить("UNTIL", XMLСтрока(Завтра + Час * 24 * 10));
-
- СтруктураСобытия.Вставить("rrule" , СтруктураПовторяемости);
- СтруктураСобытия.Вставить("is_meeting", "Y");
- СтруктураСобытия.Вставить("location" , "Офис");
-
- МассивНапоминаний = Новый Массив;
-
- СтруктураНапоминания = Новый Структура;
- СтруктураНапоминания.Вставить("type" , "day");
- СтруктураНапоминания.Вставить("count", 1);
-
- МассивНапоминаний.Добавить(СтруктураНапоминания);
-
- СтруктураСобытия.Вставить("remind" , МассивНапоминаний);
- СтруктураСобытия.Вставить("attendees", СтрРазделить("1,10", ","));
- СтруктураСобытия.Вставить("host" , 1);
-
- СтруктураВстречи = Новый Структура;
- СтруктураВстречи.Вставить("notify" , "Y");
- СтруктураВстречи.Вставить("reinvite" , "Y");
- СтруктураВстречи.Вставить("allow_invite", "N");
- СтруктураВстречи.Вставить("hide_guests" , "N");
-
- СтруктураСобытия.Вставить("meeting", СтруктураВстречи);
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("fields", СтруктураСобытия);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "СоздатьСобытиеКалендаря", Опции);
-
- Обработать(Результат, "Bitrix24", "СоздатьСобытиеКалендаря", "Хук", ПараметрыФункции); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDКалендаря = ПараметрыФункции["Bitrix24_CalendarID"];
-
- СтруктураСобытия.Вставить("section", IDКалендаря);
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("fields", СтруктураСобытия);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "СоздатьСобытиеКалендаря", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "СоздатьСобытиеКалендаря", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура Bitrix24_ИзменитьСобытиеКалендаря(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDСобытия = ПараметрыФункции["Bitrix24_HookCEventID"];
-
- СтруктураСобытия = Новый Структура;
-
- СтруктураСобытия.Вставить("ownerId" , 1);
- СтруктураСобытия.Вставить("type" , "user");
- СтруктураСобытия.Вставить("name" , "Измененное событие");
- СтруктураСобытия.Вставить("description" , "Новое описание события");
- СтруктураСобытия.Вставить("importance" , "low");
- СтруктураСобытия.Вставить("private_event", "Y");
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("event", IDСобытия);
- Опции.Вставить("fields", СтруктураСобытия);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ИзменитьСобытиеКалендаря", Опции);
-
- Обработать(Результат, "Bitrix24", "ИзменитьСобытиеКалендаря", "Хук", ПараметрыФункции); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDСобытия = ПараметрыФункции["Bitrix24_CEventID"];
- IDКалендаря = ПараметрыФункции["Bitrix24_CalendarID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("event", IDСобытия);
- Опции.Вставить("fields", СтруктураСобытия);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ИзменитьСобытиеКалендаря", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ИзменитьСобытиеКалендаря", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура Bitrix24_УдалитьСобытиеКалендаря(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDСобытия = ПараметрыФункции["Bitrix24_HookCEventID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("event", IDСобытия);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "УдалитьСобытиеКалендаря", Опции);
-
- Обработать(Результат, "Bitrix24", "УдалитьСобытиеКалендаря", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDСобытия = ПараметрыФункции["Bitrix24_CEventID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("event", IDСобытия);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "УдалитьСобытиеКалендаря", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "УдалитьСобытиеКалендаря");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьСобытиеКалендаря(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDСобытия = ПараметрыФункции["Bitrix24_HookCEventID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("event", IDСобытия);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьСобытиеКалендаря", Опции);
-
- Обработать(Результат, "Bitrix24", "ПолучитьСобытиеКалендаря", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDСобытия = ПараметрыФункции["Bitrix24_CEventID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("event", IDСобытия);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьСобытиеКалендаря", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьСобытиеКалендаря");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьСобытияКалендарей(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDВладельца = 1;
- Тип = "user";
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("owner", IDВладельца);
- Опции.Вставить("type", Тип);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьСобытияКалендарей", Опции);
-
- Обработать(Результат, "Bitrix24", "ПолучитьСобытияКалендарей", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDСобытия = ПараметрыФункции["Bitrix24_CEventID"];
- IDКалендаря1 = ПараметрыФункции["Bitrix24_HookCalendarID"];
- IDКалендаря2 = ПараметрыФункции["Bitrix24_CalendarID"];
-
- Завтра = OPI_Инструменты.ПолучитьТекущуюДату() + 86400;
- Послезавтра = Завтра + 86400;
-
- МассивКалендарей = Новый Массив;
- МассивКалендарей.Добавить(IDКалендаря1);
- МассивКалендарей.Добавить(IDКалендаря2);
-
- Фильтр = Новый Структура;
- Фильтр.Вставить("from" , Завтра);
- Фильтр.Вставить("to" , Послезавтра);
- Фильтр.Вставить("section", МассивКалендарей);
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("owner", IDВладельца);
- Опции.Вставить("type", Тип);
- Опции.Вставить("filter", Фильтр);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьСобытияКалендарей", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьСобытияКалендарей");
-
-КонецПроцедуры
-
-Процедура Bitrix24_УстановитьСтатусУчастияПользователя(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDСобытия = ПараметрыФункции["Bitrix24_HookCEventID"];
- Статус = "Y";
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("event", IDСобытия);
- Опции.Вставить("status", Статус);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "УстановитьСтатусУчастияПользователя", Опции);
-
- Обработать(Результат, "Bitrix24", "УстановитьСтатусУчастияПользователя", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDСобытия = ПараметрыФункции["Bitrix24_CEventID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("event", IDСобытия);
- Опции.Вставить("status", Статус);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "УстановитьСтатусУчастияПользователя", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "УстановитьСтатусУчастияПользователя");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьСтатусУчастияПользователя(ПараметрыФункции)
-
- URL = ПараметрыФункции["Bitrix24_URL"];
- IDСобытия = ПараметрыФункции["Bitrix24_HookCEventID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("event", IDСобытия);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьСтатусУчастияПользователя", Опции);
-
- Обработать(Результат, "Bitrix24", "ПолучитьСтатусУчастияПользователя", "Хук"); // SKIP
-
- URL = ПараметрыФункции["Bitrix24_Domain"];
- Токен = ПараметрыФункции["Bitrix24_Token"];
- IDСобытия = ПараметрыФункции["Bitrix24_CEventID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("event", IDСобытия);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьСтатусУчастияПользователя", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьСтатусУчастияПользователя");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьСтруктуруСобытияКалендаря(ПараметрыФункции)
-
- Опции = Новый Структура;
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьСтруктуруСобытияКалендаря", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьСтруктуруСобытияКалендаря");
-
- Опции = Новый Структура;
- Опции.Вставить("empty", Истина);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьСтруктуруСобытияКалендаря", Опции);
-
- Обработать(Результат, "Bitrix24", "ПолучитьСтруктуруСобытияКалендаря", "Пустая");
-
-КонецПроцедуры
-
-Процедура Bitrix24_ПолучитьСтруктуруФильтраСобытийКалендарей(ПараметрыФункции)
-
- Опции = Новый Структура;
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьСтруктуруФильтраСобытийКалендарей", Опции);
-
- // END
-
- Обработать(Результат, "Bitrix24", "ПолучитьСтруктуруФильтраСобытийКалендарей");
-
- Опции = Новый Структура;
- Опции.Вставить("empty", Истина);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьСтруктуруФильтраСобытийКалендарей", Опции);
-
- Обработать(Результат, "Bitrix24", "ПолучитьСтруктуруФильтраСобытийКалендарей", "Пустая");
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область VKTeams
-
-Процедура VKTeams_ПроверитьТокен(ПараметрыФункции)
-
- Токен = ПараметрыФункции["VkTeams_Token"];
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vkteams", "ПроверитьТокен", Опции);
-
- // END
-
- Обработать(Результат, "VKTeams", "ПроверитьТокен");
-
-КонецПроцедуры
-
-Процедура VKTeams_ПолучитьСобытия(ПараметрыФункции)
-
- Токен = ПараметрыФункции["VkTeams_Token"];
- IDПоследнего = 0;
-
- Для Н = 1 По 5 Цикл // В реальной работе - бесконечный цикл
-
- Результат = OPI_VKTeams.ПолучитьСобытия(Токен, IDПоследнего, 3);
-
- Обработать(Результат, "VKTeams", "ПолучитьСобытия"); // SKIP
-
- События = Результат["events"];
-
- // Обработка событий...
-
- Если Не События.Количество() = 0 Тогда
-
- IDПоследнего = События[События.ВГраница()]["eventId"];
-
- КонецЕсли;
-
- КонецЦикла;
-
- // END
-
- OPI_Инструменты.Пауза(3);
-
-КонецПроцедуры
-
-Процедура VKTeams_ОтправитьТекстовоеСообщение(ПараметрыФункции)
-
- Токен = ПараметрыФункции["VkTeams_Token"];
- IDЧата = ПараметрыФункции["VkTeams_ChatID"];
- Текст = "Текст сообщения";
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chatid", IDЧата);
- Опции.Вставить("text", Текст);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vkteams", "ОтправитьТекстовоеСообщение", Опции);
-
- Обработать(Результат, "VKTeams", "ОтправитьТекстовоеСообщение", "Простое", ПараметрыФункции); // SKIP
-
- IDЧата = ПараметрыФункции["VkTeams_ChatID2"];
- IDЦитируемого = ПараметрыФункции["VkTeams_MessageID"];
- Текст = "Полужирный текст сообщения";
- Разметка = "HTML";
-
- Клавиатура = Новый Массив;
- МассивСтрокиКнопок = Новый Массив;
-
- МассивСтрокиКнопок.Добавить(OPI_VKTeams.СформироватьКнопкуДействия("Кнопка1", "НажатиеКнопки1", , "attention"));
-
- МассивСтрокиКнопок.Добавить(OPI_VKTeams.СформироватьКнопкуДействия("Кнопка2", , "https://openintegrations.dev"));
-
- // BSLLS:DuplicatedInsertionIntoCollection-off // SKIP
- Клавиатура.Добавить(МассивСтрокиКнопок);
- Клавиатура.Добавить(МассивСтрокиКнопок);
- // BSLLS:DuplicatedInsertionIntoCollection-on // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chatid", IDЧата);
- Опции.Вставить("text", Текст);
- Опции.Вставить("reply", IDЦитируемого);
- Опции.Вставить("keyboard", Клавиатура);
- Опции.Вставить("parsemod", Разметка);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vkteams", "ОтправитьТекстовоеСообщение", Опции);
-
- // END
-
- Обработать(Результат, "VKTeams", "ОтправитьТекстовоеСообщение", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура VKTeams_ПереслатьСообщение(ПараметрыФункции)
-
- Токен = ПараметрыФункции["VkTeams_Token"];
- IDЧата = ПараметрыФункции["VkTeams_ChatID"];
- IDЧатаИсточника = ПараметрыФункции["VkTeams_ChatID2"];
- IDСообщения = ПараметрыФункции["VkTeams_MessageID"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("messageid", IDСообщения);
- Опции.Вставить("fromid", IDЧатаИсточника);
- Опции.Вставить("chatid", IDЧата);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vkteams", "ПереслатьСообщение", Опции);
-
- Обработать(Результат, "VKTeams", "ПереслатьСообщение", "Простое"); // SKIP
-
- Текст = "Дополнительный текст";
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("messageid", IDСообщения);
- Опции.Вставить("fromid", IDЧатаИсточника);
- Опции.Вставить("chatid", IDЧата);
- Опции.Вставить("text", Текст);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vkteams", "ПереслатьСообщение", Опции);
-
- // END
-
- Обработать(Результат, "VKTeams", "ПереслатьСообщение");
-
-КонецПроцедуры
-
-Процедура VKTeams_ОтправитьФайл(ПараметрыФункции)
-
- Токен = ПараметрыФункции["VkTeams_Token"];
- IDЧата = ПараметрыФункции["VkTeams_ChatID"];
- Текст = "Подпись к файлу";
-
- Файл = ПараметрыФункции["Document"]; // URL
- ФайлПуть = ПолучитьИмяВременногоФайла("docx"); // Путь
-
- КопироватьФайл(Файл, ФайлПуть);
-
- ФайлДД = Новый ДвоичныеДанные(ФайлПуть); // Двоичные
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chatid", IDЧата);
- Опции.Вставить("file", Файл);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vkteams", "ОтправитьФайл", Опции);
-
- Обработать(Результат, "VKTeams", "ОтправитьФайл", "URL", ПараметрыФункции); // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chatid", IDЧата);
- Опции.Вставить("file", ФайлПуть);
- Опции.Вставить("text", Текст);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vkteams", "ОтправитьФайл", Опции);
-
- Обработать(Результат, "VKTeams", "ОтправитьФайл", "Путь", ПараметрыФункции); // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chatid", IDЧата);
- Опции.Вставить("file", ФайлДД);
- Опции.Вставить("text", Текст);
- Опции.Вставить("filename", "ВажныйДокумент.docx");
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vkteams", "ОтправитьФайл", Опции);
-
- // END
-
- Обработать(Результат, "VKTeams", "ОтправитьФайл", , ПараметрыФункции);
-
- OPI_Инструменты.УдалитьФайлВПопытке(ФайлПуть, "Не удалось удалить временный файл после теста!");
-
-КонецПроцедуры
-
-Процедура VKTeams_ПереслатьФайл(ПараметрыФункции)
-
- Токен = ПараметрыФункции["VkTeams_Token"];
- IDЧата = ПараметрыФункции["VkTeams_ChatID"];
- IDФайла = ПараметрыФункции["VkTeams_FileID"];
- Текст = "Подпись к файлу";
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chatid", IDЧата);
- Опции.Вставить("fileid", IDФайла);
- Опции.Вставить("text", Текст);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vkteams", "ПереслатьФайл", Опции);
-
- // END
-
- Обработать(Результат, "VKTeams", "ПереслатьФайл");
-
-КонецПроцедуры
-
-Процедура VKTeams_ПолучитьИнформациюОФайле(ПараметрыФункции)
-
- Токен = ПараметрыФункции["VkTeams_Token"];
- IDФайла = ПараметрыФункции["VkTeams_FileID"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("fileid", IDФайла);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vkteams", "ПолучитьИнформациюОФайле", Опции);
-
- // END
-
- Обработать(Результат, "VKTeams", "ПолучитьИнформациюОФайле");
-
-КонецПроцедуры
-
-Процедура VKTeams_ИзменитьТекстСообщения(ПараметрыФункции)
-
- Токен = ПараметрыФункции["VkTeams_Token"];
- IDЧата = ПараметрыФункции["VkTeams_ChatID2"];
- IDСообщения = ПараметрыФункции["VkTeams_MessageID"];
- Текст = "Новый текст сообщения";
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chatid", IDЧата);
- Опции.Вставить("messageid", IDСообщения);
- Опции.Вставить("text", Текст);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vkteams", "ИзменитьТекстСообщения", Опции);
-
- Обработать(Результат, "VKTeams", "ИзменитьТекстСообщения", "Путь"); // SKIP
-
- Текст = "Новый полужирный текст сообщения";
- Разметка = "HTML";
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chatid", IDЧата);
- Опции.Вставить("messageid", IDСообщения);
- Опции.Вставить("text", Текст);
- Опции.Вставить("parsemod", Разметка);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vkteams", "ИзменитьТекстСообщения", Опции);
-
- // END
-
- Обработать(Результат, "VKTeams", "ИзменитьТекстСообщения");
-
-КонецПроцедуры
-
-Процедура VKTeams_УдалитьСообщение(ПараметрыФункции)
-
- Токен = ПараметрыФункции["VkTeams_Token"];
- IDЧата = ПараметрыФункции["VkTeams_ChatID2"];
- IDСообщения = ПараметрыФункции["VkTeams_MessageID"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chatid", IDЧата);
- Опции.Вставить("messageid", IDСообщения);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vkteams", "УдалитьСообщение", Опции);
-
- // END
-
- Обработать(Результат, "VKTeams", "УдалитьСообщение");
-
-КонецПроцедуры
-
-Процедура VKTeams_ОтправитьГолосовоеСообщение(ПараметрыФункции)
-
- Токен = ПараметрыФункции["VkTeams_Token"];
- IDЧата = ПараметрыФункции["VkTeams_ChatID2"];
- IDЦитируемого = ПараметрыФункции["VkTeams_MessageID"];
-
- Файл = ПараметрыФункции["Audio2"]; // URL
- ФайлПуть = ПолучитьИмяВременногоФайла("m4a"); // Путь
-
- КопироватьФайл(Файл, ФайлПуть);
-
- ФайлДД = Новый ДвоичныеДанные(ФайлПуть); // Двоичные
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chatid", IDЧата);
- Опции.Вставить("file", Файл);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vkteams", "ОтправитьГолосовоеСообщение", Опции);
-
- Обработать(Результат, "VKTeams", "ОтправитьГолосовоеСообщение", "URL", ПараметрыФункции); // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chatid", IDЧата);
- Опции.Вставить("file", ФайлПуть);
- Опции.Вставить("reply", IDЦитируемого);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vkteams", "ОтправитьГолосовоеСообщение", Опции);
-
- Обработать(Результат, "VKTeams", "ОтправитьГолосовоеСообщение", "Путь", ПараметрыФункции); // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chatid", IDЧата);
- Опции.Вставить("file", ФайлДД);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vkteams", "ОтправитьГолосовоеСообщение", Опции);
-
- // END
-
- Обработать(Результат, "VKTeams", "ОтправитьГолосовоеСообщение", , ПараметрыФункции);
-
- OPI_Инструменты.УдалитьФайлВПопытке(ФайлПуть, "Не удалось удалить временный файл после теста!");
-
-КонецПроцедуры
-
-Процедура VKTeams_ПереслатьГолосовоеСообщение(ПараметрыФункции)
-
- Токен = ПараметрыФункции["VkTeams_Token"];
- IDЧата = ПараметрыФункции["VkTeams_ChatID"];
- IDФайла = ПараметрыФункции["VkTeams_VoiceID"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chatid", IDЧата);
- Опции.Вставить("fileid", IDФайла);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vkteams", "ПереслатьГолосовоеСообщение", Опции);
-
- // END
-
- Обработать(Результат, "VKTeams", "ПереслатьГолосовоеСообщение");
-
-КонецПроцедуры
-
-Процедура VKTeams_ИсключитьПользователейЧата(ПараметрыФункции)
-
- Токен = ПараметрыФункции["VkTeams_Token"];
- IDЧата = ПараметрыФункции["VkTeams_ChatID2"];
- Пользователь = 1011987091;
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chatid", IDЧата);
- Опции.Вставить("members", Пользователь);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vkteams", "ИсключитьПользователейЧата", Опции);
-
- // END
-
- Обработать(Результат, "VKTeams", "ИсключитьПользователейЧата");
-
-КонецПроцедуры
-
-Процедура VKTeams_ИзменитьАватарЧата(ПараметрыФункции)
-
- Токен = ПараметрыФункции["VkTeams_Token"];
- IDЧата = ПараметрыФункции["VkTeams_ChatID"];
-
- Файл = ПараметрыФункции["Picture3"]; // URL
- ФайлПуть = ПолучитьИмяВременногоФайла("png"); // Путь
-
- КопироватьФайл(Файл, ФайлПуть);
-
- ФайлДД = Новый ДвоичныеДанные(ФайлПуть); // Двоичные
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chatid", IDЧата);
- Опции.Вставить("file", Файл);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vkteams", "ИзменитьАватарЧата", Опции);
-
- Обработать(Результат, "VKTeams", "ИзменитьАватарЧата", "URL");
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chatid", IDЧата);
- Опции.Вставить("file", ФайлПуть);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vkteams", "ИзменитьАватарЧата", Опции);
-
- Обработать(Результат, "VKTeams", "ИзменитьАватарЧата", "Путь");
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chatid", IDЧата);
- Опции.Вставить("file", ФайлДД);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vkteams", "ИзменитьАватарЧата", Опции);
-
- // END
-
- Обработать(Результат, "VKTeams", "ИзменитьАватарЧата");
-
- OPI_Инструменты.УдалитьФайлВПопытке(ФайлПуть, "Не удалось удалить временный файл после теста!");
-
-КонецПроцедуры
-
-Процедура VKTeams_ПолучитьИнформациюОЧате(ПараметрыФункции)
-
- Токен = ПараметрыФункции["VkTeams_Token"];
- IDЧата = ПараметрыФункции["VkTeams_ChatID"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chatid", IDЧата);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vkteams", "ПолучитьИнформациюОЧате", Опции);
-
- // END
-
- Обработать(Результат, "VKTeams", "ПолучитьИнформациюОЧате");
-
-КонецПроцедуры
-
-Процедура VKTeams_ПолучитьАдминистраторовЧата(ПараметрыФункции)
-
- Токен = ПараметрыФункции["VkTeams_Token"];
- IDЧата = ПараметрыФункции["VkTeams_ChatID"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chatid", IDЧата);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vkteams", "ПолучитьАдминистраторовЧата", Опции);
-
- // END
-
- Обработать(Результат, "VKTeams", "ПолучитьАдминистраторовЧата");
-
-КонецПроцедуры
-
-Процедура VKTeams_ПолучитьПользователейЧата(ПараметрыФункции)
-
- Токен = ПараметрыФункции["VkTeams_Token"];
- IDЧата = ПараметрыФункции["VkTeams_ChatID"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chatid", IDЧата);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vkteams", "ПолучитьПользователейЧата", Опции);
-
- // END
-
- Обработать(Результат, "VKTeams", "ПолучитьПользователейЧата");
-
-КонецПроцедуры
-
-Процедура VKTeams_ПолучитьЗаблокированныхПользователейЧата(ПараметрыФункции)
-
- Токен = ПараметрыФункции["VkTeams_Token"];
- IDЧата = ПараметрыФункции["VkTeams_ChatID"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chatid", IDЧата);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vkteams", "ПолучитьЗаблокированныхПользователейЧата", Опции);
-
- // END
-
- Обработать(Результат, "VKTeams", "ПолучитьЗаблокированныхПользователейЧата");
-
-КонецПроцедуры
-
-Процедура VKTeams_ПолучитьЗапросыВступленияЧата(ПараметрыФункции)
-
- Токен = ПараметрыФункции["VkTeams_Token"];
- IDЧата = ПараметрыФункции["VkTeams_ChatID"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chatid", IDЧата);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vkteams", "ПолучитьЗапросыВступленияЧата", Опции);
-
- // END
-
- Обработать(Результат, "VKTeams", "ПолучитьЗапросыВступленияЧата");
-
-КонецПроцедуры
-
-Процедура VKTeams_ЗаблокироватьПользователяЧата(ПараметрыФункции)
-
- Токен = ПараметрыФункции["VkTeams_Token"];
- IDЧата = ПараметрыФункции["VkTeams_ChatID2"];
- Пользователь = 1011987091;
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chatid", IDЧата);
- Опции.Вставить("userid", Пользователь);
- Опции.Вставить("dellast", Истина);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vkteams", "ЗаблокироватьПользователяЧата", Опции);
-
- // END
-
- Обработать(Результат, "VKTeams", "ЗаблокироватьПользователяЧата");
-
-КонецПроцедуры
-
-Процедура VKTeams_РазблокироватьПользователяЧата(ПараметрыФункции)
-
- Токен = ПараметрыФункции["VkTeams_Token"];
- IDЧата = ПараметрыФункции["VkTeams_ChatID2"];
- Пользователь = 1011987091;
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chatid", IDЧата);
- Опции.Вставить("userid", Пользователь);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vkteams", "РазблокироватьПользователяЧата", Опции);
-
- // END
-
- Обработать(Результат, "VKTeams", "РазблокироватьПользователяЧата");
-
-КонецПроцедуры
-
-Процедура VKTeams_ЗакрепитьСообщение(ПараметрыФункции)
-
- Токен = ПараметрыФункции["VkTeams_Token"];
- IDЧата = ПараметрыФункции["VkTeams_ChatID2"];
- IDСообщения = ПараметрыФункции["VkTeams_MessageID"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chatid", IDЧата);
- Опции.Вставить("messageid", IDСообщения);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vkteams", "ЗакрепитьСообщение", Опции);
-
- // END
-
- Обработать(Результат, "VKTeams", "ЗакрепитьСообщение");
-
-КонецПроцедуры
-
-Процедура VKTeams_ОткрепитьСообщение(ПараметрыФункции)
-
- Токен = ПараметрыФункции["VkTeams_Token"];
- IDЧата = ПараметрыФункции["VkTeams_ChatID2"];
- IDСообщения = ПараметрыФункции["VkTeams_MessageID"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chatid", IDЧата);
- Опции.Вставить("messageid", IDСообщения);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vkteams", "ОткрепитьСообщение", Опции);
-
- // END
-
- Обработать(Результат, "VKTeams", "ОткрепитьСообщение");
-
-КонецПроцедуры
-
-Процедура VKTeams_ОдобритьЗаявкуНаВступление(ПараметрыФункции)
-
- Токен = ПараметрыФункции["VkTeams_Token"];
- IDЧата = ПараметрыФункции["VkTeams_ChatID2"];
- Пользователь = 1011987091;
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chatid", IDЧата);
- Опции.Вставить("userid", Пользователь);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vkteams", "ОдобритьЗаявкуНаВступление", Опции);
-
- Обработать(Результат, "VKTeams", "ОдобритьЗаявкуНаВступление", "Один"); // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chatid", IDЧата);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vkteams", "ОдобритьЗаявкуНаВступление", Опции);
-
- // END
-
- Обработать(Результат, "VKTeams", "ОдобритьЗаявкуНаВступление");
-
-КонецПроцедуры
-
-Процедура VKTeams_ОтклонитьЗаявкуНаВступление(ПараметрыФункции)
-
- Токен = ПараметрыФункции["VkTeams_Token"];
- IDЧата = ПараметрыФункции["VkTeams_ChatID2"];
- Пользователь = 1011987091;
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chatid", IDЧата);
- Опции.Вставить("userid", Пользователь);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vkteams", "ОтклонитьЗаявкуНаВступление", Опции);
-
- Обработать(Результат, "VKTeams", "ОтклонитьЗаявкуНаВступление", "Один"); // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chatid", IDЧата);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vkteams", "ОтклонитьЗаявкуНаВступление", Опции);
-
- // END
-
- Обработать(Результат, "VKTeams", "ОтклонитьЗаявкуНаВступление");
-
-КонецПроцедуры
-
-Процедура VKTeams_УстановитьЗаголовокЧата(ПараметрыФункции)
-
- Токен = ПараметрыФункции["VkTeams_Token"];
- IDЧата = ПараметрыФункции["VkTeams_ChatID2"];
- Текст = "Новый заголовок";
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chatid", IDЧата);
- Опции.Вставить("text", Текст);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vkteams", "УстановитьЗаголовокЧата", Опции);
-
- // END
-
- Обработать(Результат, "VKTeams", "УстановитьЗаголовокЧата");
-
-КонецПроцедуры
-
-Процедура VKTeams_УстановитьОписаниеЧата(ПараметрыФункции)
-
- Токен = ПараметрыФункции["VkTeams_Token"];
- IDЧата = ПараметрыФункции["VkTeams_ChatID2"];
- Текст = "Новое описание";
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chatid", IDЧата);
- Опции.Вставить("text", Текст);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vkteams", "УстановитьОписаниеЧата", Опции);
-
- // END
-
- Обработать(Результат, "VKTeams", "УстановитьОписаниеЧата");
-
-КонецПроцедуры
-
-Процедура VKTeams_УстановитьПравилаЧата(ПараметрыФункции)
-
- Токен = ПараметрыФункции["VkTeams_Token"];
- IDЧата = ПараметрыФункции["VkTeams_ChatID2"];
- Текст = "Текст новых правил";
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("chatid", IDЧата);
- Опции.Вставить("text", Текст);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("vkteams", "УстановитьПравилаЧата", Опции);
-
- // END
-
- Обработать(Результат, "VKTeams", "УстановитьПравилаЧата");
-
-КонецПроцедуры
-
-Процедура VKTeams_ОтветитьНаСобытиеКлавиатуры(ПараметрыФункции)
-
- Токен = ПараметрыФункции["VkTeams_Token"];
- IDПоследнего = 0;
-
- Для Н = 1 По 5 Цикл
-
- Результат = OPI_VKTeams.ПолучитьСобытия(Токен, IDПоследнего, 3);
- События = Результат["events"];
-
- Если Не События.Количество() = 0 Тогда
-
- Для Каждого Событие Из События Цикл
-
- ДанныеСобытия = Событие["payload"];
-
- Если ДанныеСобытия["callbackData"] = "НажатиеКнопки1" Тогда
-
- IDСобытия = ДанныеСобытия["queryId"];
- Результат = OPI_VKTeams.ОтветитьНаСобытиеКлавиатуры(Токен, IDСобытия, "Получено!");
-
- Обработать(Результат, "VKTeams", "ОтветитьНаСобытиеКлавиатуры"); // SKIP
-
- КонецЕсли;
-
- КонецЦикла;
-
- IDПоследнего = События[События.ВГраница()]["eventId"];
-
- КонецЕсли;
-
- КонецЦикла;
-
- // END
-
- OPI_Инструменты.Пауза(3);
-
-КонецПроцедуры
-
-Процедура VKTeams_СформироватьКнопкуДействия(ПараметрыФункции)
-
- Клавиатура = Новый Массив;
- МассивСтрокиКнопок = Новый Массив;
-
- МассивСтрокиКнопок.Добавить(OPI_VKTeams.СформироватьКнопкуДействия("Кнопка1", "НажатиеКнопки1", , "attention"));
-
- МассивСтрокиКнопок.Добавить(OPI_VKTeams.СформироватьКнопкуДействия("Кнопка2", , "https://openintegrations.dev"));
-
- // BSLLS:DuplicatedInsertionIntoCollection-off // SKIP
- Клавиатура.Добавить(МассивСтрокиКнопок);
- Клавиатура.Добавить(МассивСтрокиКнопок);
- // BSLLS:DuplicatedInsertionIntoCollection-on // SKIP
-
- // END
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область Neocities
-
-Процедура Neocities_ЗагрузитьФайл(ПараметрыФункции)
-
- Токен = ПараметрыФункции["NC_Token"];
- Данные = ПараметрыФункции["Picture"]; // URL, Путь или Двоичные данные
- Путь = "testfolder/test_pic.png";
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("path", Путь);
- Опции.Вставить("file", Данные);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("neocities", "ЗагрузитьФайл", Опции);
-
- // END
-
- Обработать(Результат, "Neocities", "ЗагрузитьФайл");
-
-КонецПроцедуры
-
-Процедура Neocities_ЗагрузитьФайлы(ПараметрыФункции)
-
- Токен = ПараметрыФункции["NC_Token"];
-
- Картинка1 = ПараметрыФункции["Picture"]; // URL, Путь или Двоичные данные
- Картинка2 = ПараметрыФункции["Picture2"]; // URL, Путь или Двоичные данные
- Гифка = ПараметрыФункции["Gif"]; // URL, Путь или Двоичные данные
-
- СоответствиеФайлов = Новый Соответствие;
- СоответствиеФайлов.Вставить("test/pic1.png", Картинка1);
- СоответствиеФайлов.Вставить("test/gif.gif" , Картинка2);
- СоответствиеФайлов.Вставить("pic2.png" , Гифка);
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("files", СоответствиеФайлов);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("neocities", "ЗагрузитьФайлы", Опции);
-
- // END
-
- Обработать(Результат, "Neocities", "ЗагрузитьФайлы");
-
-КонецПроцедуры
-
-Процедура Neocities_УдалитьВыбранныеФайлы(ПараметрыФункции)
-
- Токен = ПараметрыФункции["NC_Token"];
-
- Пути = Новый Массив;
- Пути.Добавить("/test/pic1.png");
- Пути.Добавить("/test/gif.gif");
- Пути.Добавить("/pic2.png");
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("paths", Пути);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("neocities", "УдалитьВыбранныеФайлы", Опции);
-
- // END
-
- Обработать(Результат, "Neocities", "УдалитьВыбранныеФайлы");
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("paths", "/testfolder");
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("neocities", "УдалитьВыбранныеФайлы", Опции);
-
- Обработать(Результат, "Neocities", "УдалитьВыбранныеФайлы", "Каталог 1");
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("paths", "/test");
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("neocities", "УдалитьВыбранныеФайлы", Опции);
-
- Обработать(Результат, "Neocities", "УдалитьВыбранныеФайлы", "Каталог 2");
-
-КонецПроцедуры
-
-Процедура Neocities_ПолучитьСписокФайлов(ПараметрыФункции)
-
- Токен = ПараметрыФункции["NC_Token"];
- Путь = "test";
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("path", Путь);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("neocities", "ПолучитьСписокФайлов", Опции);
-
- // END
-
- Обработать(Результат, "Neocities", "ПолучитьСписокФайлов");
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("neocities", "ПолучитьСписокФайлов", Опции);
-
- Обработать(Результат, "Neocities", "ПолучитьСписокФайлов", "Все");
-
-КонецПроцедуры
-
-Процедура Neocities_ПолучитьДанныеОСайте(ПараметрыФункции)
-
- Токен = ПараметрыФункции["NC_Token"];
- Сайт = "2athenaeum";
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("neocities", "ПолучитьДанныеОСайте", Опции);
-
- Обработать(Результат, "Neocities", "ПолучитьДанныеОСайте"); // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("sitename", Сайт);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("neocities", "ПолучитьДанныеОСайте", Опции);
-
- // END
-
- Обработать(Результат, "Neocities", "ПолучитьДанныеОСайте", "Сайт");
-
-КонецПроцедуры
-
-Процедура Neocities_ПолучитьТокен(ПараметрыФункции)
-
- Логин = ПараметрыФункции["NC_Login"];
- Пароль = ПараметрыФункции["NC_Password"];
-
- Опции = Новый Структура;
- Опции.Вставить("login", Логин);
- Опции.Вставить("password", Пароль);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("neocities", "ПолучитьТокен", Опции);
-
- // END
-
- Результат["api_key"] = "***";
-
- Обработать(Результат, "Neocities", "ПолучитьТокен");
-
-КонецПроцедуры
-
-Процедура Neocities_СинхронизироватьКаталоги(ПараметрыФункции)
-
- Токен = ПараметрыФункции["NC_Token"];
-
- ЛокальныйКаталог = "C:\test_site";
- УдаленныйКаталог = "test_sync";
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("local", ЛокальныйКаталог);
- Опции.Вставить("remote", УдаленныйКаталог);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("neocities", "СинхронизироватьКаталоги", Опции);
-
- // END
-
- Обработать(Результат, "Neocities", "СинхронизироватьКаталоги");
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область CDEK
-
-Процедура CDEK_ПолучитьТокен(ПараметрыФункции)
-
- Аккаунт = ПараметрыФункции["CDEK_Account"];
- Пароль = ПараметрыФункции["CDEK_Password"];
-
- Опции = Новый Структура;
- Опции.Вставить("account", Аккаунт);
- Опции.Вставить("pass", Пароль);
- Опции.Вставить("testapi", Истина);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("cdek", "ПолучитьТокен", Опции);
-
- // END
-
- Обработать(Результат, "CDEK", "ПолучитьТокен", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура CDEK_ПолучитьОписаниеЗаказа(ПараметрыФункции)
-
- Опции = Новый Структура;
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("cdek", "ПолучитьОписаниеЗаказа", Опции);
-
- // END
-
- Обработать(Результат, "CDEK", "ПолучитьОписаниеЗаказа");
-
- Опции = Новый Структура;
- Опции.Вставить("empty", Истина);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("cdek", "ПолучитьОписаниеЗаказа", Опции);
-
- Обработать(Результат, "CDEK", "ПолучитьОписаниеЗаказа", "Пустая");
-
-КонецПроцедуры
-
-Процедура CDEK_СоздатьЗаказ(ПараметрыФункции)
-
- Токен = ПараметрыФункции["CDEK_Token"];
-
- ОписаниеЗаказа = Новый Структура;
-
- ЛокацияОтправления = Новый Структура;
- ЛокацияОтправления.Вставить("code" , "44");
- ЛокацияОтправления.Вставить("city" , "Москва");
- ЛокацияОтправления.Вставить("address", "пр. Ленинградский, д.4");
-
- ЛокацияНазначения = Новый Структура;
- ЛокацияНазначения.Вставить("code" , "270");
- ЛокацияНазначения.Вставить("city" , "Новосибирск");
- ЛокацияНазначения.Вставить("address", "ул. Блюхера, 32");
-
- Получатель = Новый Структура;
-
- Телефоны = Новый Массив;
- Телефоны.Добавить(Новый Структура("number", "+79134637228"));
-
- Получатель.Вставить("phones", Телефоны);
- Получатель.Вставить("name" , "Иванов Иван");
-
- Отправитель = Новый Структура("name", "Петров Петр");
-
- Услуги = Новый Массив;
-
- Услуга = Новый Структура;
- Услуга.Вставить("code" , "SECURE_PACKAGE_A2");
- Услуга.Вставить("parameter", 10);
-
- Услуги.Добавить(Услуга);
-
- Пакеты = Новый Массив;
-
- Пакет = Новый Структура;
-
- Позиции = Новый Массив;
-
- Позиция = Новый Структура;
-
- Оплата = Новый Структура;
- Оплата.Вставить("value", 3000);
-
- Позиция.Вставить("payment" , Оплата);
- Позиция.Вставить("ware_key", "00055");
- Позиция.Вставить("name" , "Товар");
- Позиция.Вставить("cost" , 300);
- Позиция.Вставить("amount" , 2);
- Позиция.Вставить("weight" , 700);
- Позиция.Вставить("url" , "www.item.ru");
-
- Позиции.Добавить(Позиция);
-
- Пакет.Вставить("items" , Позиции);
- Пакет.Вставить("number" , "bar-001");
- Пакет.Вставить("comment", "Упаковка");
- Пакет.Вставить("height" , 10);
- Пакет.Вставить("length" , 10);
- Пакет.Вставить("weight" , "4000");
- Пакет.Вставить("width" , 10);
-
- Пакеты.Добавить(Пакет);
-
- ОписаниеЗаказа.Вставить("from_location", ЛокацияОтправления);
- ОписаниеЗаказа.Вставить("to_location" , ЛокацияНазначения);
- ОписаниеЗаказа.Вставить("packages" , Пакеты);
- ОписаниеЗаказа.Вставить("recipient" , Получатель);
- ОписаниеЗаказа.Вставить("sender" , Отправитель);
- ОписаниеЗаказа.Вставить("services" , Услуги);
-
- ОписаниеЗаказа.Вставить("number" , Строка(Новый УникальныйИдентификатор));
- ОписаниеЗаказа.Вставить("comment" , "Новый заказ");
- ОписаниеЗаказа.Вставить("tariff_code", 139);
-
- ОписаниеЗаказа.Вставить("delivery_recipient_cost" , Новый Структура("value" , 50));
- ОписаниеЗаказа.Вставить("delivery_recipient_cost_adv", Новый Структура("sum,threshold", 3000, 200));
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("order", ОписаниеЗаказа);
- Опции.Вставить("ostore", Истина);
- Опции.Вставить("testapi", Истина);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("cdek", "СоздатьЗаказ", Опции);
-
- // END
-
- Обработать(Результат, "CDEK", "СоздатьЗаказ", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура CDEK_ПолучитьЗаказ(ПараметрыФункции)
-
- Токен = ПараметрыФункции["CDEK_Token"];
- UUID = ПараметрыФункции["CDEK_OrderUUID"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("uuid", UUID);
- Опции.Вставить("testapi", Истина);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("cdek", "ПолучитьЗаказ", Опции);
-
- // END
-
- Обработать(Результат, "CDEK", "ПолучитьЗаказ", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура CDEK_ПолучитьЗаказПоНомеру(ПараметрыФункции)
-
- Токен = ПараметрыФункции["CDEK_Token"];
-
- НомерЗаказа = ПараметрыФункции["CDEK_OrderIMN"];
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("number", НомерЗаказа);
- Опции.Вставить("internal", Истина);
- Опции.Вставить("testapi", Истина);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("cdek", "ПолучитьЗаказПоНомеру", Опции);
-
- // END
-
- Обработать(Результат, "CDEK", "ПолучитьЗаказПоНомеру");
-
-КонецПроцедуры
-
-Процедура CDEK_ИзменитьЗаказ(ПараметрыФункции)
-
- Токен = ПараметрыФункции["CDEK_Token"];
- UUID = ПараметрыФункции["CDEK_OrderUUID"];
-
- ОписаниеЗаказа = Новый Структура("comment", "Новый комментарий");
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("uuid", UUID);
- Опции.Вставить("order", ОписаниеЗаказа);
- Опции.Вставить("testapi", Истина);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("cdek", "ИзменитьЗаказ", Опции);
-
- // END
-
- Обработать(Результат, "CDEK", "ИзменитьЗаказ");
-
-КонецПроцедуры
-
-Процедура CDEK_УдалитьЗаказ(ПараметрыФункции)
-
- Токен = ПараметрыФункции["CDEK_Token"];
- UUID = ПараметрыФункции["CDEK_OrderUUID"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("uuid", UUID);
- Опции.Вставить("testapi", Истина);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("cdek", "УдалитьЗаказ", Опции);
-
- // END
-
- Обработать(Результат, "CDEK", "УдалитьЗаказ");
-
-КонецПроцедуры
-
-Процедура CDEK_ОформитьКлиентскийВозврат(ПараметрыФункции)
-
- Токен = ПараметрыФункции["CDEK_Token"];
- UUID = ПараметрыФункции["CDEK_OrderUUID"];
- Тариф = 139;
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("uuid", UUID);
- Опции.Вставить("tariff", Тариф);
- Опции.Вставить("testapi", Истина);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("cdek", "ОформитьКлиентскийВозврат", Опции);
-
- // END
-
- Обработать(Результат, "CDEK", "ОформитьКлиентскийВозврат");
-
-КонецПроцедуры
-
-Процедура CDEK_СоздатьОтказ(ПараметрыФункции)
-
- Токен = ПараметрыФункции["CDEK_Token"];
- UUID = ПараметрыФункции["CDEK_OrderUUID"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("uuid", UUID);
- Опции.Вставить("testapi", Истина);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("cdek", "СоздатьОтказ", Опции);
-
- // END
-
- Обработать(Результат, "CDEK", "СоздатьОтказ");
-
-КонецПроцедуры
-
-Процедура CDEK_ПолучитьОписаниеЗаявкиКурьера(ПараметрыФункции)
-
- Опции = Новый Структура;
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("cdek", "ПолучитьОписаниеЗаявкиКурьера", Опции);
-
- // END
-
- Обработать(Результат, "CDEK", "ПолучитьОписаниеЗаявкиКурьера");
-
- Опции = Новый Структура;
- Опции.Вставить("empty", Истина);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("cdek", "ПолучитьОписаниеЗаявкиКурьера", Опции);
-
- Обработать(Результат, "CDEK", "ПолучитьОписаниеЗаявкиКурьера", "Пустая");
-
-КонецПроцедуры
-
-Процедура CDEK_СоздатьЗаявкуНаВызовКурьера(ПараметрыФункции)
-
- Токен = ПараметрыФункции["CDEK_Token"];
- ТекущаяДата = OPI_Инструменты.ПолучитьТекущуюДату();
-
- ОписаниеЗаявки = Новый Структура;
- ОписаниеЗаявки.Вставить("intake_date" , Формат(ТекущаяДата + 60 * 60 * 24, "ДФ=yyyy-MM-dd"));
- ОписаниеЗаявки.Вставить("intake_time_from", "10:00");
- ОписаниеЗаявки.Вставить("intake_time_to" , "17:00");
- ОписаниеЗаявки.Вставить("name" , "Консолидированный груз");
- ОписаниеЗаявки.Вставить("weight" , 1000);
- ОписаниеЗаявки.Вставить("length" , 10);
- ОписаниеЗаявки.Вставить("width" , 10);
- ОписаниеЗаявки.Вставить("height" , 10);
- ОписаниеЗаявки.Вставить("comment" , "Комментарий курьеру");
- ОписаниеЗаявки.Вставить("need_call" , Ложь);
-
- Отправитель = Новый Структура;
- Отправитель.Вставить("company", "Компания");
- Отправитель.Вставить("name" , "Иванов Иван");
-
- Телефоны = Новый Массив;
- Телефон = Новый Структура("number", "+79589441654");
- Телефоны.Добавить(Телефон);
-
- Отправитель.Вставить("phones", Телефоны);
-
- ОписаниеЗаявки.Вставить("sender", Отправитель);
-
- ТочкаОтправления = Новый Структура;
- ТочкаОтправления.Вставить("code" , "44");
- ТочкаОтправления.Вставить("fias_guid" , "0c5b2444-70a0-4932-980c-b4dc0d3f02b5");
- ТочкаОтправления.Вставить("postal_code" , "109004");
- ТочкаОтправления.Вставить("longitude" , 37.6204);
- ТочкаОтправления.Вставить("latitude" , 55.754);
- ТочкаОтправления.Вставить("country_code", "RU");
- ТочкаОтправления.Вставить("region" , "Москва");
- ТочкаОтправления.Вставить("sub_region" , "Москва");
- ТочкаОтправления.Вставить("city" , "Москва");
- ТочкаОтправления.Вставить("kladr_code" , "7700000000000");
- ТочкаОтправления.Вставить("address" , "ул. Блюхера, 32");
-
- ОписаниеЗаявки.Вставить("from_location", ТочкаОтправления);
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("intake", ОписаниеЗаявки);
- Опции.Вставить("testapi", Истина);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("cdek", "СоздатьЗаявкуНаВызовКурьера", Опции);
-
- // END
-
- Обработать(Результат, "CDEK", "СоздатьЗаявкуНаВызовКурьера", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура CDEK_ПолучитьЗаявкуНаВызовКурьера(ПараметрыФункции)
-
- Токен = ПараметрыФункции["CDEK_Token"];
- UUID = ПараметрыФункции["CDEK_IntakeUUID"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("uuid", UUID);
- Опции.Вставить("testapi", Истина);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("cdek", "ПолучитьЗаявкуНаВызовКурьера", Опции);
-
- // END
-
- Обработать(Результат, "CDEK", "ПолучитьЗаявкуНаВызовКурьера");
-
-КонецПроцедуры
-
-Процедура CDEK_УдалитьЗаявкуНаВызовКурьера(ПараметрыФункции)
-
- Токен = ПараметрыФункции["CDEK_Token"];
- UUID = ПараметрыФункции["CDEK_IntakeUUID"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("uuid", UUID);
- Опции.Вставить("testapi", Истина);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("cdek", "УдалитьЗаявкуНаВызовКурьера", Опции);
-
- // END
-
- Обработать(Результат, "CDEK", "УдалитьЗаявкуНаВызовКурьера");
-
-КонецПроцедуры
-
-Процедура CDEK_СформироватьКвитанцию(ПараметрыФункции)
-
- Токен = ПараметрыФункции["CDEK_Token"];
- UUID = ПараметрыФункции["CDEK_OrderUUID"];
- Тип = "tpl_russia";
- Копий = 1;
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("uuids", UUID);
- Опции.Вставить("type", Тип);
- Опции.Вставить("count", Копий);
- Опции.Вставить("testapi", Истина);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("cdek", "СформироватьКвитанцию", Опции);
-
- // END
-
- Обработать(Результат, "CDEK", "СформироватьКвитанцию", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура CDEK_ПолучитьКвитанцию(ПараметрыФункции)
-
- Токен = ПараметрыФункции["CDEK_Token"];
- UUID = ПараметрыФункции["CDEK_PrintUUID"];
-
- Результат = OPI_CDEK.ПолучитьКвитанцию(Токен, UUID, , Истина); // Ответ сервера с ссылкой
-
- // END
-
- Обработать(Результат, "CDEK", "ПолучитьКвитанцию");
-
-КонецПроцедуры
-
-Процедура CDEK_СформироватьШтрихкод(ПараметрыФункции)
-
- Токен = ПараметрыФункции["CDEK_Token"];
- UUID = ПараметрыФункции["CDEK_OrderUUID"];
- Формат = "A5";
- Копий = 1;
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("uuids", UUID);
- Опции.Вставить("count", Копий);
- Опции.Вставить("format", Формат);
- Опции.Вставить("testapi", Истина);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("cdek", "СформироватьШтрихкод", Опции);
-
- // END
-
- Обработать(Результат, "CDEK", "СформироватьШтрихкод", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура CDEK_ПолучитьШтрихкод(ПараметрыФункции)
-
- Токен = ПараметрыФункции["CDEK_Token"];
- UUID = ПараметрыФункции["CDEK_BarcodeUUID"];
-
- Результат = OPI_CDEK.ПолучитьШтрихкод(Токен, UUID, , Истина); // Ответ сервера с ссылкой
-
- // END
-
- Обработать(Результат, "CDEK", "ПолучитьШтрихкод");
-
-КонецПроцедуры
-
-Процедура CDEK_ПолучитьДоступныеИнтервалыДоставки(ПараметрыФункции)
-
- Токен = ПараметрыФункции["CDEK_Token"];
- UUID = ПараметрыФункции["CDEK_OrderUUID"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("uuid", UUID);
- Опции.Вставить("testapi", Истина);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("cdek", "ПолучитьДоступныеИнтервалыДоставки", Опции);
-
- // END
-
- Обработать(Результат, "CDEK", "ПолучитьДоступныеИнтервалыДоставки");
-
-КонецПроцедуры
-
-Процедура CDEK_ПолучитьОписаниеДоговоренности(ПараметрыФункции)
-
- Опции = Новый Структура;
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("cdek", "ПолучитьОписаниеДоговоренности", Опции);
-
- // END
-
- Обработать(Результат, "CDEK", "ПолучитьОписаниеДоговоренности");
-
- Опции = Новый Структура;
- Опции.Вставить("empty", Истина);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("cdek", "ПолучитьОписаниеДоговоренности", Опции);
-
- Обработать(Результат, "CDEK", "ПолучитьОписаниеДоговоренности", "Пустая");
-
-КонецПроцедуры
-
-Процедура CDEK_ЗафиксироватьДоговоренностьОДоставке(ПараметрыФункции)
-
- Токен = ПараметрыФункции["CDEK_Token"];
- UUIDЗаказа = ПараметрыФункции["CDEK_OrderUUID"];
-
- Сутки = 60 * 60 * 24;
- ТекущаяДата = НачалоДня(OPI_Инструменты.ПолучитьТекущуюДату());
- ДатаДоставки = ТекущаяДата + Сутки * 14;
-
- Пока ДеньНедели(ДатаДоставки) > 5 Цикл
- ДатаДоставки = ДатаДоставки + Сутки;
- КонецЦикла;
-
- Договоренность = Новый Структура;
-
- Договоренность.Вставить("cdek_number", "1106207236");
- Договоренность.Вставить("order_uuid" , UUIDЗаказа);
- Договоренность.Вставить("date" , Формат(ДатаДоставки, "ДФ=yyyy-MM-dd"));
- Договоренность.Вставить("time_from" , "10:00");
- Договоренность.Вставить("time_to" , "17:00");
- Договоренность.Вставить("comment" , "Офис группы компаний");
-
- МестоДоставки = Новый Структура;
- МестоДоставки.Вставить("code" , "270");
- МестоДоставки.Вставить("fias_guid" , "0c5b2444-70a0-4932-980c-b4dc0d3f02b5");
- МестоДоставки.Вставить("postal_code" , "109004");
- МестоДоставки.Вставить("longitude" , 37.6204);
- МестоДоставки.Вставить("latitude" , 55.754);
- МестоДоставки.Вставить("country_code", "RU");
- МестоДоставки.Вставить("region" , "Новосибирск");
- МестоДоставки.Вставить("sub_region" , "Новосибирск");
- МестоДоставки.Вставить("city" , "Новосибирск");
- МестоДоставки.Вставить("kladr_code" , "7700000000000");
- МестоДоставки.Вставить("address" , "ул. Блюхера, 33");
-
- Договоренность.Вставить("to_location", МестоДоставки);
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("appt", Договоренность);
- Опции.Вставить("testapi", Истина);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("cdek", "ЗафиксироватьДоговоренностьОДоставке", Опции);
-
- // END
-
- Обработать(Результат, "CDEK", "ЗафиксироватьДоговоренностьОДоставке", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура CDEK_ПолучитьДоговоренностьОДоставке(ПараметрыФункции)
-
- Токен = ПараметрыФункции["CDEK_Token"];
- UUID = ПараметрыФункции["CDEK_ApptUUID"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("uuid", UUID);
- Опции.Вставить("testapi", Истина);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("cdek", "ПолучитьДоговоренностьОДоставке", Опции);
-
- // END
-
- Обработать(Результат, "CDEK", "ПолучитьДоговоренностьОДоставке");
-
-КонецПроцедуры
-
-Процедура CDEK_СоздатьПреалерт(ПараметрыФункции)
-
- Токен = ПараметрыФункции["CDEK_Token"];
- UUID = ПараметрыФункции["CDEK_OrderUUID"];
- ПВЗ = "NSK27";
- ДатаПередачи = OPI_Инструменты.ПолучитьТекущуюДату() + 60 * 60 * 24;
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("uuids", UUID);
- Опции.Вставить("date", ДатаПередачи);
- Опции.Вставить("point", ПВЗ);
- Опции.Вставить("testapi", Истина);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("cdek", "СоздатьПреалерт", Опции);
-
- // END
-
- Обработать(Результат, "CDEK", "СоздатьПреалерт", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура CDEK_ПолучитьПреалерт(ПараметрыФункции)
-
- Токен = ПараметрыФункции["CDEK_Token"];
- UUID = ПараметрыФункции["CDEK_PrealertUUID"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("uuid", UUID);
- Опции.Вставить("testapi", Истина);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("cdek", "ПолучитьПреалерт", Опции);
-
- // END
-
- Обработать(Результат, "CDEK", "ПолучитьПреалерт");
-
-КонецПроцедуры
-
-Процедура CDEK_ПолучитьСтатусПаспортныхДанных(ПараметрыФункции)
-
- Токен = ПараметрыФункции["CDEK_Token"];
- UUID = ПараметрыФункции["CDEK_OrderUUID"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("uuid", UUID);
- Опции.Вставить("testapi", Истина);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("cdek", "ПолучитьСтатусПаспортныхДанных", Опции);
-
- // END
-
- Обработать(Результат, "CDEK", "ПолучитьСтатусПаспортныхДанных");
-
-КонецПроцедуры
-
-Процедура CDEK_ПолучитьЧекЗаказа(ПараметрыФункции)
-
- Токен = ПараметрыФункции["CDEK_Token"];
- UUID = ПараметрыФункции["CDEK_OrderUUID"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("uuid", UUID);
- Опции.Вставить("testapi", Истина);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("cdek", "ПолучитьЧекЗаказа", Опции);
-
- // END
-
- Обработать(Результат, "CDEK", "ПолучитьЧекЗаказа");
-
-КонецПроцедуры
-
-Процедура CDEK_ПолучитьЧекиНаДату(ПараметрыФункции)
-
- Токен = ПараметрыФункции["CDEK_Token"];
- ДатаПолучения = OPI_Инструменты.ПолучитьТекущуюДату();
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("date", ДатаПолучения);
- Опции.Вставить("testapi", Истина);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("cdek", "ПолучитьЧекиНаДату", Опции);
-
- // END
-
- Обработать(Результат, "CDEK", "ПолучитьЧекиНаДату");
-
-КонецПроцедуры
-
-Процедура CDEK_ПолучитьРеестрыПлатежейНаДату(ПараметрыФункции)
-
- Токен = ПараметрыФункции["CDEK_Token"];
- ДатаПолучения = OPI_Инструменты.ПолучитьТекущуюДату();
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("date", ДатаПолучения);
- Опции.Вставить("testapi", Истина);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("cdek", "ПолучитьРеестрыПлатежейНаДату", Опции);
-
- // END
-
- Обработать(Результат, "CDEK", "ПолучитьРеестрыПлатежейНаДату");
-
-КонецПроцедуры
-
-Процедура CDEK_ПолучитьПереводыПлатежейНаДату(ПараметрыФункции)
-
- Токен = ПараметрыФункции["CDEK_Token"];
- ДатаПолучения = OPI_Инструменты.ПолучитьТекущуюДату();
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("date", ДатаПолучения);
- Опции.Вставить("testapi", Истина);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("cdek", "ПолучитьПереводыПлатежейНаДату", Опции);
-
- // END
-
- Обработать(Результат, "CDEK", "ПолучитьПереводыПлатежейНаДату");
-
-КонецПроцедуры
-
-Процедура CDEK_ПолучитьОписаниеФильтраОфисов(ПараметрыФункции)
-
- Опции = Новый Структура;
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("cdek", "ПолучитьОписаниеФильтраОфисов", Опции);
-
- // END
-
- Обработать(Результат, "CDEK", "ПолучитьОписаниеФильтраОфисов");
-
- Опции = Новый Структура;
- Опции.Вставить("empty", Истина);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("cdek", "ПолучитьОписаниеФильтраОфисов", Опции);
-
- Обработать(Результат, "CDEK", "ПолучитьОписаниеФильтраОфисов", "Пустая");
-
-КонецПроцедуры
-
-Процедура CDEK_ПолучитьСписокОфисов(ПараметрыФункции)
-
- Токен = ПараметрыФункции["CDEK_Token"];
- Фильтр = Новый Структура;
- Фильтр.Вставить("weight_max" , 50);
- Фильтр.Вставить("city_code" , 270);
- Фильтр.Вставить("allowed_cod", Истина);
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("filter", Фильтр);
- Опции.Вставить("testapi", Истина);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("cdek", "ПолучитьСписокОфисов", Опции);
-
- // END
-
- Обработать(Результат, "CDEK", "ПолучитьСписокОфисов");
-
-КонецПроцедуры
-
-Процедура CDEK_ПолучитьСписокРегионов(ПараметрыФункции)
-
- Токен = ПараметрыФункции["CDEK_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("testapi", Истина);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("cdek", "ПолучитьСписокРегионов", Опции);
-
- // END
-
- Обработать(Результат, "CDEK", "ПолучитьСписокРегионов");
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область YandexMetrika
-
-Процедура YandexMetrika_ПолучитьСписокМеток(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Metrika_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("metrika", "ПолучитьСписокМеток", Опции);
-
- // END
-
- Обработать(Результат, "YandexMetrika", "ПолучитьСписокМеток");
-
-КонецПроцедуры
-
-Процедура YandexMetrika_СоздатьМетку(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Metrika_Token"];
- Наименование = "Новая метка";
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("title", Наименование);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("metrika", "СоздатьМетку", Опции);
-
- // END
-
- Обработать(Результат, "YandexMetrika", "СоздатьМетку", , ПараметрыФункции, Наименование);
-
-КонецПроцедуры
-
-Процедура YandexMetrika_УдалитьМетку(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Metrika_Token"];
- IDМетки = ПараметрыФункции["Metrika_LabelID"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("label", IDМетки);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("metrika", "УдалитьМетку", Опции);
-
- // END
-
- Обработать(Результат, "YandexMetrika", "УдалитьМетку");
-
-КонецПроцедуры
-
-Процедура YandexMetrika_ИзменитьМетку(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Metrika_Token"];
- IDМетки = ПараметрыФункции["Metrika_LabelID"];
- Наименование = "Новое имя метки";
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("label", IDМетки);
- Опции.Вставить("title", Наименование);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("metrika", "ИзменитьМетку", Опции);
-
- // END
-
- Обработать(Результат, "YandexMetrika", "ИзменитьМетку", , Наименование);
-
-КонецПроцедуры
-
-Процедура YandexMetrika_ПолучитьМетку(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Metrika_Token"];
- IDМетки = ПараметрыФункции["Metrika_LabelID"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("label", IDМетки);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("metrika", "ПолучитьМетку", Опции);
-
- // END
-
- Обработать(Результат, "YandexMetrika", "ПолучитьМетку");
-
-КонецПроцедуры
-
-Процедура YandexMetrika_ПолучитьСтруктуруСчетчика(ПараметрыФункции)
-
- Пустая = Ложь;
- Опции = Новый Структура;
- Опции.Вставить("empty", Пустая);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("metrika", "ПолучитьСтруктуруСчетчика", Опции);
-
- // END
-
- Обработать(Результат, "YandexMetrika", "ПолучитьСтруктуруСчетчика");
-
-КонецПроцедуры
-
-Процедура YandexMetrika_СоздатьСчетчик(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Metrika_Token"];
-
- СтруктураСчетчика = Новый Структура;
- СтруктураСчетчика.Вставить("autogoals_enabled", Истина);
-
- СтруктураНастроекКода = Новый Структура;
- СтруктураНастроекКода.Вставить("async" , 0);
- СтруктураНастроекКода.Вставить("clickmap" , 1);
- СтруктураНастроекКода.Вставить("ecommerce" , 1);
- СтруктураНастроекКода.Вставить("in_one_line" , 0);
- СтруктураНастроекКода.Вставить("track_hash" , 1);
- СтруктураНастроекКода.Вставить("visor" , 1);
- СтруктураНастроекКода.Вставить("xml_site" , 0);
- СтруктураНастроекКода.Вставить("ytm" , 0);
- СтруктураНастроекКода.Вставить("alternative_cdn", 1);
-
- СтруктураИнформера = Новый Структура;
- СтруктураИнформера.Вставить("color_arrow", 1);
- СтруктураИнформера.Вставить("color_end" , "EFEFEFFE");
- СтруктураИнформера.Вставить("color_start", "EEEEEEEE");
- СтруктураИнформера.Вставить("color_text" , 0);
- СтруктураИнформера.Вставить("enabled" , 1);
- СтруктураИнформера.Вставить("indicator" , "uniques");
- СтруктураИнформера.Вставить("size" , 2);
- СтруктураИнформера.Вставить("type" , "ext");
-
- СтруктураНастроекКода.Вставить("informer", СтруктураИнформера);
-
- СтруктураСчетчика.Вставить("code_options", СтруктураНастроекКода);
-
- СтруктураФлагов = Новый Структура;
- СтруктураФлагов.Вставить("collect_first_party_data" , Истина);
- СтруктураФлагов.Вставить("measurement_enabled" , Истина);
- СтруктураФлагов.Вставить("use_in_benchmarks" , Истина);
- СтруктураФлагов.Вставить("direct_allow_use_goals_without_access", Истина);
-
- СтруктураСчетчика.Вставить("counter_flags" , СтруктураФлагов);
- СтруктураСчетчика.Вставить("favorite" , 1);
- СтруктураСчетчика.Вставить("filter_robots" , 2);
- СтруктураСчетчика.Вставить("gdpr_agreement_accepted", 1);
-
- СтруктураДомена = Новый Структура("site", "openintegrations.dev");
-
- СтруктураСчетчика.Вставить("site2", СтруктураДомена);
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("fields", СтруктураСчетчика);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("metrika", "СоздатьСчетчик", Опции);
-
- // END
-
- Обработать(Результат, "YandexMetrika", "СоздатьСчетчик", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура YandexMetrika_УдалитьСчетчик(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Metrika_Token"];
- IDСчетчика = ПараметрыФункции["Metrika_CounterID"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("counter", IDСчетчика);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("metrika", "УдалитьСчетчик", Опции);
-
- // END
-
- Обработать(Результат, "YandexMetrika", "УдалитьСчетчик");
-
-КонецПроцедуры
-
-Процедура YandexMetrika_ИзменитьСчетчик(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Metrika_Token"];
- IDСчетчика = ПараметрыФункции["Metrika_CounterID"];
-
- СтруктураСчетчика = Новый Структура;
- СтруктураСчетчика.Вставить("autogoals_enabled", Истина);
-
- СтруктураФлагов = Новый Структура;
- СтруктураФлагов.Вставить("collect_first_party_data" , Ложь);
- СтруктураФлагов.Вставить("measurement_enabled" , Ложь);
- СтруктураФлагов.Вставить("use_in_benchmarks" , Ложь);
- СтруктураФлагов.Вставить("direct_allow_use_goals_without_access", Ложь);
-
- СтруктураСчетчика.Вставить("counter_flags", СтруктураФлагов);
- СтруктураСчетчика.Вставить("favorite" , 0);
- СтруктураСчетчика.Вставить("filter_robots", 1);
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("counter", IDСчетчика);
- Опции.Вставить("fields", СтруктураСчетчика);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("metrika", "ИзменитьСчетчик", Опции);
-
- // END
-
- Обработать(Результат, "YandexMetrika", "ИзменитьСчетчик");
-
-КонецПроцедуры
-
-Процедура YandexMetrika_ПолучитьСчетчик(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Metrika_Token"];
- IDСчетчика = ПараметрыФункции["Metrika_CounterID"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("counter", IDСчетчика);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("metrika", "ПолучитьСчетчик", Опции);
-
- // END
-
- Обработать(Результат, "YandexMetrika", "ПолучитьСчетчик");
-
-КонецПроцедуры
-
-Процедура YandexMetrika_ВосстановитьСчетчик(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Metrika_Token"];
- IDСчетчика = ПараметрыФункции["Metrika_CounterID"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("counter", IDСчетчика);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("metrika", "ВосстановитьСчетчик", Опции);
-
- // END
-
- Обработать(Результат, "YandexMetrika", "ВосстановитьСчетчик");
-
-КонецПроцедуры
-
-Процедура YandexMetrika_ПолучитьСписокСчетчиков(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Metrika_Token"];
- IDСчетчика = ПараметрыФункции["Metrika_CounterID"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("metrika", "ПолучитьСписокСчетчиков", Опции);
-
- Обработать(Результат, "YandexMetrika", "ПолучитьСписокСчетчиков"); // SKIP
-
- // Фильтр по списку ID
-
- Фильтр = Новый Структура;
-
- МассивСчетчиков = Новый Массив;
- МассивСчетчиков.Добавить(IDСчетчика);
-
- Фильтр.Вставить("counter_ids", МассивСчетчиков);
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("filter", Фильтр);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("metrika", "ПолучитьСписокСчетчиков", Опции);
-
- // END
-
- Обработать(Результат, "YandexMetrika", "ПолучитьСписокСчетчиков", "Фильтр");
-
-КонецПроцедуры
-
-Процедура YandexMetrika_ПолучитьСписокОпераций(ПараметрыФункции)
-
- Токен = ПараметрыФункции["Metrika_Token"];
- IDСчетчика = ПараметрыФункции["Metrika_CounterID"];
-
- Опции = Новый Структура;
- Опции.Вставить("token", Токен);
- Опции.Вставить("counter", IDСчетчика);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("metrika", "ПолучитьСписокОпераций", Опции);
-
- // END
-
- Обработать(Результат, "YandexMetrika", "ПолучитьСписокОпераций");
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область S3
-
-Процедура S3_ПолучитьСтруктуруДанных(ПараметрыФункции)
-
- URL = ПараметрыФункции["S3_URL"];
- AccessKey = ПараметрыФункции["S3_AccessKey"];
- SecretKey = ПараметрыФункции["S3_SecretKey"];
- Region = "BTC";
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("access", AccessKey);
- Опции.Вставить("secret", SecretKey);
- Опции.Вставить("region", Region);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ПолучитьСтруктуруДанных", Опции);
-
- // END
-
- Обработать(Результат, "S3", "ПолучитьСтруктуруДанных");
-
-КонецПроцедуры
-
-Процедура S3_ОтправитьЗапросБезТела(ПараметрыФункции)
-
- URL = ПараметрыФункции["S3_URL"] + "/opi-newbucket2";
- AccessKey = ПараметрыФункции["S3_AccessKey"];
- SecretKey = ПараметрыФункции["S3_SecretKey"];
- Region = "BTC";
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("access", AccessKey);
- Опции.Вставить("secret", SecretKey);
- Опции.Вставить("region", Region);
-
- ОсновныеДанные = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ПолучитьСтруктуруДанных", Опции);
- Метод = "GET";
-
- Опции = Новый Структура;
- Опции.Вставить("method", Метод);
- Опции.Вставить("basic", ОсновныеДанные);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ОтправитьЗапросБезТела", Опции);
-
- // END
-
- Обработать(Результат, "S3", "ОтправитьЗапросБезТела");
-
-КонецПроцедуры
-
-Процедура S3_ОтправитьЗапросСТелом(ПараметрыФункции)
-
- URL = ПараметрыФункции["S3_URL"];
- AccessKey = ПараметрыФункции["S3_AccessKey"];
- SecretKey = ПараметрыФункции["S3_SecretKey"];
- Region = "BTC";
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("access", AccessKey);
- Опции.Вставить("secret", SecretKey);
- Опции.Вставить("region", Region);
-
- ОсновныеДанные = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ПолучитьСтруктуруДанных", Опции);
-
- Метод = "PUT";
- Тело = "C:\test_data\document.docx"; // URL, Путь или Двоичные данные
-
- Опции = Новый Структура;
- Опции.Вставить("method", Метод);
- Опции.Вставить("basic", ОсновныеДанные);
- Опции.Вставить("body", Тело);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ОтправитьЗапросСТелом", Опции);
-
- // END
-
- Обработать(Результат, "S3", "ОтправитьЗапросСТелом");
-
-КонецПроцедуры
-
-Процедура S3_СоздатьБакет(ПараметрыФункции)
-
- URL = ПараметрыФункции["S3_URL"];
- AccessKey = ПараметрыФункции["S3_AccessKey"];
- SecretKey = ПараметрыФункции["S3_SecretKey"];
- Region = "BTC";
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("access", AccessKey);
- Опции.Вставить("secret", SecretKey);
- Опции.Вставить("region", Region);
-
- ОсновныеДанные = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ПолучитьСтруктуруДанных", Опции);
-
- Каталог = Истина; // Формирование URL в path-style
- Каталог = ПараметрыФункции["Directory"]; // SKIP
-
- Наименование = "opi-dirbucket3";
- Наименование = ?(Каталог, "opi-dirbucket3", "opi-gpbucket3"); // SKIP
-
- Результат = OPI_S3.УдалитьБакет(Наименование, ОсновныеДанные, Каталог); // SKIP
- Обработать(Результат, "S3", "СоздатьБакет", "Удаление"); // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("name", Наименование);
- Опции.Вставить("basic", ОсновныеДанные);
- Опции.Вставить("dir", Каталог);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "СоздатьБакет", Опции);
-
- // END
-
- Обработать(Результат, "S3", "СоздатьБакет");
-
-КонецПроцедуры
-
-Процедура S3_УдалитьБакет(ПараметрыФункции)
-
- URL = ПараметрыФункции["S3_URL"];
- AccessKey = ПараметрыФункции["S3_AccessKey"];
- SecretKey = ПараметрыФункции["S3_SecretKey"];
- Region = "BTC";
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("access", AccessKey);
- Опции.Вставить("secret", SecretKey);
- Опции.Вставить("region", Region);
-
- ОсновныеДанные = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ПолучитьСтруктуруДанных", Опции);
-
- Каталог = Истина; // Формирование URL в path-style
- Каталог = ПараметрыФункции["Directory"]; // SKIP
-
- Наименование = "opi-dirbucket3";
- Наименование = ?(Каталог, "opi-dirbucket3", "opi-gpbucket3"); // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("name", Наименование);
- Опции.Вставить("basic", ОсновныеДанные);
- Опции.Вставить("dir", Каталог);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "УдалитьБакет", Опции);
-
- // END
-
- Обработать(Результат, "S3", "УдалитьБакет");
-
-КонецПроцедуры
-
-Процедура S3_ПолучитьСписокБакетов(ПараметрыФункции)
-
- URL = ПараметрыФункции["S3_URL"];
- AccessKey = ПараметрыФункции["S3_AccessKey"];
- SecretKey = ПараметрыФункции["S3_SecretKey"];
- Region = "BTC";
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("access", AccessKey);
- Опции.Вставить("secret", SecretKey);
- Опции.Вставить("region", Region);
-
- ОсновныеДанные = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ПолучитьСтруктуруДанных", Опции);
- Опции = Новый Структура;
- Опции.Вставить("basic", ОсновныеДанные);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ПолучитьСписокБакетов", Опции);
-
- // END
-
- Обработать(Результат, "S3", "ПолучитьСписокБакетов");
-
-КонецПроцедуры
-
-Процедура S3_ПроверитьДоступностьБакета(ПараметрыФункции)
-
- URL = ПараметрыФункции["S3_URL"];
- AccessKey = ПараметрыФункции["S3_AccessKey"];
- SecretKey = ПараметрыФункции["S3_SecretKey"];
- Region = "BTC";
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("access", AccessKey);
- Опции.Вставить("secret", SecretKey);
- Опции.Вставить("region", Region);
-
- ОсновныеДанные = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ПолучитьСтруктуруДанных", Опции);
-
- Каталог = Истина; // Формирование URL в path-style
- Каталог = ПараметрыФункции["Directory"]; // SKIP
-
- Наименование = "opi-dirbucket3";
- Наименование = ?(Каталог, "opi-dirbucket3", "opi-gpbucket3"); // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("name", Наименование);
- Опции.Вставить("basic", ОсновныеДанные);
- Опции.Вставить("dir", Каталог);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ПроверитьДоступностьБакета", Опции);
-
- Обработать(Результат, "S3", "ПроверитьДоступностьБакета"); // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("name", Наименование);
- Опции.Вставить("basic", ОсновныеДанные);
- Опции.Вставить("dir", Каталог);
- Опции.Вставить("account", "1234");
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ПроверитьДоступностьБакета", Опции);
-
- // END
-
- Обработать(Результат, "S3", "ПроверитьДоступностьБакета", "Аккаунт");
-
-КонецПроцедуры
-
-Процедура S3_ПолучитьШифрованиеБакета(ПараметрыФункции)
-
- URL = ПараметрыФункции["S3_URL"];
- AccessKey = ПараметрыФункции["S3_AccessKey"];
- SecretKey = ПараметрыФункции["S3_SecretKey"];
- Region = "BTC";
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("access", AccessKey);
- Опции.Вставить("secret", SecretKey);
- Опции.Вставить("region", Region);
-
- ОсновныеДанные = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ПолучитьСтруктуруДанных", Опции);
-
- Каталог = Истина; // Формирование URL в path-style
- Каталог = ПараметрыФункции["Directory"]; // SKIP
-
- Наименование = "opi-dirbucket3";
- Наименование = ?(Каталог, "opi-dirbucket3", "opi-gpbucket3"); // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("name", Наименование);
- Опции.Вставить("basic", ОсновныеДанные);
- Опции.Вставить("dir", Каталог);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ПолучитьШифрованиеБакета", Опции);
-
- // END
-
- Обработать(Результат, "S3", "ПолучитьШифрованиеБакета");
-
-КонецПроцедуры
-
-Процедура S3_УдалитьШифрованиеБакета(ПараметрыФункции)
-
- URL = ПараметрыФункции["S3_URL"];
- AccessKey = ПараметрыФункции["S3_AccessKey"];
- SecretKey = ПараметрыФункции["S3_SecretKey"];
- Region = "BTC";
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("access", AccessKey);
- Опции.Вставить("secret", SecretKey);
- Опции.Вставить("region", Region);
-
- ОсновныеДанные = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ПолучитьСтруктуруДанных", Опции);
-
- Каталог = Истина; // Формирование URL в path-style
- Каталог = ПараметрыФункции["Directory"]; // SKIP
-
- Наименование = "opi-dirbucket3";
- Наименование = ?(Каталог, "opi-dirbucket3", "opi-gpbucket3"); // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("name", Наименование);
- Опции.Вставить("basic", ОсновныеДанные);
- Опции.Вставить("dir", Каталог);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "УдалитьШифрованиеБакета", Опции);
-
- // END
-
- Обработать(Результат, "S3", "УдалитьШифрованиеБакета");
-
-КонецПроцедуры
-
-Процедура S3_УстановитьШифрованиеБакета(ПараметрыФункции)
-
- URL = ПараметрыФункции["S3_URL"];
- AccessKey = ПараметрыФункции["S3_AccessKey"];
- SecretKey = ПараметрыФункции["S3_SecretKey"];
- Region = "BTC";
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("access", AccessKey);
- Опции.Вставить("secret", SecretKey);
- Опции.Вставить("region", Region);
-
- ОсновныеДанные = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ПолучитьСтруктуруДанных", Опции);
-
- Каталог = Истина; // Формирование URL в path-style
- Каталог = ПараметрыФункции["Directory"]; // SKIP
-
- Наименование = "opi-dirbucket3";
- Наименование = ?(Каталог, "opi-dirbucket3", "opi-gpbucket3"); // SKIP
-
- XMLКонфигурация = "
- |
- |
- | AES256
- |
- |
- |";
-
- ИВФ = ПолучитьИмяВременногоФайла("xml"); // SKIP
- ПолучитьДвоичныеДанныеИзСтроки(XMLКонфигурация).Записать(ИВФ); // SKIP
- XMLКонфигурация = ИВФ; // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("name", Наименование);
- Опции.Вставить("basic", ОсновныеДанные);
- Опции.Вставить("conf", XMLКонфигурация);
- Опции.Вставить("dir", Каталог);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "УстановитьШифрованиеБакета", Опции);
-
- // END
-
- OPI_Инструменты.УдалитьФайлВПопытке(XMLКонфигурация, "Ошибка удаления файла после теста");
-
- Обработать(Результат, "S3", "УстановитьШифрованиеБакета");
-
-КонецПроцедуры
-
-Процедура S3_ПолучитьТегиБакета(ПараметрыФункции)
-
- URL = ПараметрыФункции["S3_URL"];
- AccessKey = ПараметрыФункции["S3_AccessKey"];
- SecretKey = ПараметрыФункции["S3_SecretKey"];
- Region = "BTC";
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("access", AccessKey);
- Опции.Вставить("secret", SecretKey);
- Опции.Вставить("region", Region);
-
- ОсновныеДанные = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ПолучитьСтруктуруДанных", Опции);
-
- Каталог = Истина; // Формирование URL в path-style
- Каталог = ПараметрыФункции["Directory"]; // SKIP
-
- Наименование = "opi-dirbucket3";
- Наименование = ?(Каталог, "opi-dirbucket3", "opi-gpbucket3"); // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("name", Наименование);
- Опции.Вставить("basic", ОсновныеДанные);
- Опции.Вставить("dir", Каталог);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ПолучитьТегиБакета", Опции);
-
- // END
-
- Обработать(Результат, "S3", "ПолучитьТегиБакета");
-
-КонецПроцедуры
-
-Процедура S3_УстановитьТегиБакета(ПараметрыФункции)
-
- URL = ПараметрыФункции["S3_URL"];
- AccessKey = ПараметрыФункции["S3_AccessKey"];
- SecretKey = ПараметрыФункции["S3_SecretKey"];
- Region = "BTC";
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("access", AccessKey);
- Опции.Вставить("secret", SecretKey);
- Опции.Вставить("region", Region);
-
- ОсновныеДанные = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ПолучитьСтруктуруДанных", Опции);
-
- СтруктураТегов = Новый Структура;
- СтруктураТегов.Вставить("MyTag1", "SomeValue");
- СтруктураТегов.Вставить("MyTag2", "AnotherOne");
-
- Каталог = Истина; // Формирование URL в path-style
- Каталог = ПараметрыФункции["Directory"]; // SKIP
-
- Наименование = "opi-dirbucket3";
- Наименование = ?(Каталог, "opi-dirbucket3", "opi-gpbucket3"); // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("name", Наименование);
- Опции.Вставить("basic", ОсновныеДанные);
- Опции.Вставить("tagset", СтруктураТегов);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "УстановитьТегиБакета", Опции);
-
- // END
-
- Обработать(Результат, "S3", "УстановитьТегиБакета");
-
-КонецПроцедуры
-
-Процедура S3_УдалитьТегиБакета(ПараметрыФункции)
-
- URL = ПараметрыФункции["S3_URL"];
- AccessKey = ПараметрыФункции["S3_AccessKey"];
- SecretKey = ПараметрыФункции["S3_SecretKey"];
- Region = "BTC";
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("access", AccessKey);
- Опции.Вставить("secret", SecretKey);
- Опции.Вставить("region", Region);
-
- ОсновныеДанные = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ПолучитьСтруктуруДанных", Опции);
-
- Каталог = Истина; // Формирование URL в path-style
- Каталог = ПараметрыФункции["Directory"]; // SKIP
-
- Наименование = "opi-dirbucket3";
- Наименование = ?(Каталог, "opi-dirbucket3", "opi-gpbucket3"); // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("name", Наименование);
- Опции.Вставить("basic", ОсновныеДанные);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "УдалитьТегиБакета", Опции);
-
- // END
-
- Обработать(Результат, "S3", "УдалитьТегиБакета");
-
-КонецПроцедуры
-
-Процедура S3_ПолучитьНастройкийВерсионированияБакета(ПараметрыФункции)
-
- URL = ПараметрыФункции["S3_URL"];
- AccessKey = ПараметрыФункции["S3_AccessKey"];
- SecretKey = ПараметрыФункции["S3_SecretKey"];
- Region = "BTC";
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("access", AccessKey);
- Опции.Вставить("secret", SecretKey);
- Опции.Вставить("region", Region);
-
- ОсновныеДанные = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ПолучитьСтруктуруДанных", Опции);
-
- Каталог = Истина; // Формирование URL в path-style
- Каталог = ПараметрыФункции["Directory"]; // SKIP
-
- Наименование = "opi-dirbucket3";
- Наименование = ?(Каталог, "opi-dirbucket3", "opi-gpbucket3"); // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("name", Наименование);
- Опции.Вставить("basic", ОсновныеДанные);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ПолучитьНастройкийВерсионированияБакета", Опции);
-
- // END
-
- Обработать(Результат, "S3", "ПолучитьНастройкийВерсионированияБакета");
-
-КонецПроцедуры
-
-Процедура S3_УстановитьНастройкиВерсионированияБакета(ПараметрыФункции)
-
- URL = ПараметрыФункции["S3_URL"];
- AccessKey = ПараметрыФункции["S3_AccessKey"];
- SecretKey = ПараметрыФункции["S3_SecretKey"];
- Region = "BTC";
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("access", AccessKey);
- Опции.Вставить("secret", SecretKey);
- Опции.Вставить("region", Region);
-
- ОсновныеДанные = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ПолучитьСтруктуруДанных", Опции);
- Статус = Истина;
-
- Каталог = Истина; // Формирование URL в path-style
- Каталог = ПараметрыФункции["Directory"]; // SKIP
-
- Наименование = "opi-dirbucket3";
- Наименование = ?(Каталог, "opi-dirbucket3", "opi-gpbucket3"); // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("name", Наименование);
- Опции.Вставить("basic", ОсновныеДанные);
- Опции.Вставить("status", Статус);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "УстановитьНастройкиВерсионированияБакета", Опции);
-
- // END
-
- Обработать(Результат, "S3", "УстановитьНастройкиВерсионированияБакета");
-
-КонецПроцедуры
-
-Процедура S3_ЗагрузитьОбъект(ПараметрыФункции)
-
- URL = ПараметрыФункции["S3_URL"];
- AccessKey = ПараметрыФункции["S3_AccessKey"];
- SecretKey = ПараметрыФункции["S3_SecretKey"];
- Region = "BTC";
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("access", AccessKey);
- Опции.Вставить("secret", SecretKey);
- Опции.Вставить("region", Region);
-
- ОсновныеДанные = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ПолучитьСтруктуруДанных", Опции);
-
- Каталог = Истина; // Формирование URL в path-style
- Каталог = ПараметрыФункции["Directory"]; // SKIP
-
- Бакет = "opi-dirbucket3";
- Бакет = ?(Каталог, "opi-dirbucket3", "opi-gpbucket3"); // SKIP
-
- Наименование = "picture.jpg";
- Содержимое = ПараметрыФункции["Picture"]; // URL, Путь или Двоичные данные
-
- Опции = Новый Структура;
- Опции.Вставить("name", Наименование);
- Опции.Вставить("bucket", Бакет);
- Опции.Вставить("data", Содержимое);
- Опции.Вставить("basic", ОсновныеДанные);
- Опции.Вставить("dir", Каталог);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ЗагрузитьОбъект", Опции);
-
- Обработать(Результат, "S3", "ЗагрузитьОбъект"); // SKIP
-
- Наименование = "fileChunked.mp3";
- Содержимое = ПараметрыФункции["Audio"]; // URL, Путь или Двоичные данные
-
- ОсновныеДанные.Вставить("ChunkSize", 5242880); // Размер части для загрузки в несколько запросов
-
- Опции = Новый Структура;
- Опции.Вставить("name", Наименование);
- Опции.Вставить("bucket", Бакет);
- Опции.Вставить("data", Содержимое);
- Опции.Вставить("basic", ОсновныеДанные);
- Опции.Вставить("dir", Каталог);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ЗагрузитьОбъект", Опции);
-
- // END
-
- Обработать(Результат, "S3", "ЗагрузитьОбъект", "Частями");
-
- OPI_S3.УдалитьОбъект(Наименование, Бакет, ОсновныеДанные, , , Каталог);
-
-КонецПроцедуры
-
-Процедура S3_ЗагрузитьОбъектЦеликом(ПараметрыФункции)
-
- URL = ПараметрыФункции["S3_URL"];
- AccessKey = ПараметрыФункции["S3_AccessKey"];
- SecretKey = ПараметрыФункции["S3_SecretKey"];
- Region = "BTC";
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("access", AccessKey);
- Опции.Вставить("secret", SecretKey);
- Опции.Вставить("region", Region);
-
- ОсновныеДанные = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ПолучитьСтруктуруДанных", Опции);
-
- Наименование = "pictureSmall.jpg";
- Содержимое = ПараметрыФункции["Picture"]; // URL, Путь или Двоичные данные
-
- Каталог = Истина; // Формирование URL в path-style
- Каталог = ПараметрыФункции["Directory"]; // SKIP
-
- Бакет = "opi-dirbucket3";
- Бакет = ?(Каталог, "opi-dirbucket3", "opi-gpbucket3"); // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("name", Наименование);
- Опции.Вставить("bucket", Бакет);
- Опции.Вставить("data", Содержимое);
- Опции.Вставить("basic", ОсновныеДанные);
- Опции.Вставить("dir", Каталог);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ЗагрузитьОбъектЦеликом", Опции);
-
- // END
-
- Обработать(Результат, "S3", "ЗагрузитьОбъектЦеликом");
-
- OPI_S3.УдалитьОбъект(Наименование, Бакет, ОсновныеДанные, , , Каталог);
-
-КонецПроцедуры
-
-Процедура S3_УдалитьОбъект(ПараметрыФункции)
-
- URL = ПараметрыФункции["S3_URL"];
- AccessKey = ПараметрыФункции["S3_AccessKey"];
- SecretKey = ПараметрыФункции["S3_SecretKey"];
- Region = "BTC";
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("access", AccessKey);
- Опции.Вставить("secret", SecretKey);
- Опции.Вставить("region", Region);
-
- ОсновныеДанные = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ПолучитьСтруктуруДанных", Опции);
-
- Наименование = "picture.jpg";
-
- Каталог = Истина; // Формирование URL в path-style
- Каталог = ПараметрыФункции["Directory"]; // SKIP
-
- Бакет = "opi-dirbucket3";
- Бакет = ?(Каталог, "opi-dirbucket3", "opi-gpbucket3"); // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("name", Наименование);
- Опции.Вставить("bucket", Бакет);
- Опции.Вставить("basic", ОсновныеДанные);
- Опции.Вставить("dir", Каталог);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "УдалитьОбъект", Опции);
-
- // END
-
- Обработать(Результат, "S3", "УдалитьОбъект");
-
-КонецПроцедуры
-
-Процедура S3_ПолучитьОписаниеОбъекта(ПараметрыФункции)
-
- URL = ПараметрыФункции["S3_URL"];
- AccessKey = ПараметрыФункции["S3_AccessKey"];
- SecretKey = ПараметрыФункции["S3_SecretKey"];
- Region = "BTC";
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("access", AccessKey);
- Опции.Вставить("secret", SecretKey);
- Опции.Вставить("region", Region);
-
- ОсновныеДанные = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ПолучитьСтруктуруДанных", Опции);
-
- Наименование = "picture.jpg";
-
- Каталог = Истина; // Формирование URL в path-style
- Каталог = ПараметрыФункции["Directory"]; // SKIP
-
- Бакет = "opi-dirbucket3";
- Бакет = ?(Каталог, "opi-dirbucket3", "opi-gpbucket3"); // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("name", Наименование);
- Опции.Вставить("bucket", Бакет);
- Опции.Вставить("basic", ОсновныеДанные);
- Опции.Вставить("dir", Каталог);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ПолучитьОписаниеОбъекта", Опции);
-
- // END
-
- Обработать(Результат, "S3", "ПолучитьОписаниеОбъекта");
-
-КонецПроцедуры
-
-Процедура S3_КопироватьОбъект(ПараметрыФункции)
-
- URL = ПараметрыФункции["S3_URL"];
- AccessKey = ПараметрыФункции["S3_AccessKey"];
- SecretKey = ПараметрыФункции["S3_SecretKey"];
- Region = "BTC";
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("access", AccessKey);
- Опции.Вставить("secret", SecretKey);
- Опции.Вставить("region", Region);
-
- ОсновныеДанные = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ПолучитьСтруктуруДанных", Опции);
-
- Каталог = Истина; // Формирование URL в path-style
- Каталог = ПараметрыФункции["Directory"]; // SKIP
-
- ПутьИсточник = "picture.jpg";
- БакетИсточник = "newbucket2";
-
- ПутьПриемник = "new_picture.jpg";
- БакетПриемник = "opi-dirbucket3";
- БакетПриемник = ?(Каталог, "opi-dirbucket3", "opi-gpbucket3"); // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("sname", ПутьИсточник);
- Опции.Вставить("sbucket", БакетИсточник);
- Опции.Вставить("name", ПутьПриемник);
- Опции.Вставить("bucket", БакетПриемник);
- Опции.Вставить("basic", ОсновныеДанные);
- Опции.Вставить("dir", Каталог);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "КопироватьОбъект", Опции);
-
- // END
-
- Обработать(Результат, "S3", "КопироватьОбъект");
-
- OPI_S3.УдалитьОбъект(ПутьПриемник, БакетПриемник, ОсновныеДанные, , , Каталог);
-
-КонецПроцедуры
-
-Процедура S3_УстановитьТегиОбъекта(ПараметрыФункции)
-
- URL = ПараметрыФункции["S3_URL"];
- AccessKey = ПараметрыФункции["S3_AccessKey"];
- SecretKey = ПараметрыФункции["S3_SecretKey"];
- Region = "BTC";
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("access", AccessKey);
- Опции.Вставить("secret", SecretKey);
- Опции.Вставить("region", Region);
-
- ОсновныеДанные = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ПолучитьСтруктуруДанных", Опции);
-
- Наименование = "picture.jpg";
-
- Каталог = Истина; // Формирование URL в path-style
- Каталог = ПараметрыФункции["Directory"]; // SKIP
-
- Бакет = "opi-dirbucket3";
- Бакет = ?(Каталог, "opi-dirbucket3", "opi-gpbucket3"); // SKIP
-
- СтруктураТегов = Новый Структура;
-
- СтруктураТегов.Вставить("MyTag1", "SomeValue");
- СтруктураТегов.Вставить("MyTag2", "AnotherOne");
-
- Опции = Новый Структура;
- Опции.Вставить("name", Наименование);
- Опции.Вставить("bucket", Бакет);
- Опции.Вставить("basic", ОсновныеДанные);
- Опции.Вставить("tagset", СтруктураТегов);
- Опции.Вставить("dir", Каталог);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "УстановитьТегиОбъекта", Опции);
-
- // END
-
- Обработать(Результат, "S3", "УстановитьТегиОбъекта");
-
-КонецПроцедуры
-
-Процедура S3_ПолучитьТегиОбъекта(ПараметрыФункции)
-
- URL = ПараметрыФункции["S3_URL"];
- AccessKey = ПараметрыФункции["S3_AccessKey"];
- SecretKey = ПараметрыФункции["S3_SecretKey"];
- Region = "BTC";
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("access", AccessKey);
- Опции.Вставить("secret", SecretKey);
- Опции.Вставить("region", Region);
-
- ОсновныеДанные = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ПолучитьСтруктуруДанных", Опции);
-
- Наименование = "picture.jpg";
-
- Каталог = Истина; // Формирование URL в path-style
- Каталог = ПараметрыФункции["Directory"]; // SKIP
-
- Бакет = "opi-dirbucket3";
- Бакет = ?(Каталог, "opi-dirbucket3", "opi-gpbucket3"); // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("name", Наименование);
- Опции.Вставить("bucket", Бакет);
- Опции.Вставить("basic", ОсновныеДанные);
- Опции.Вставить("dir", Каталог);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ПолучитьТегиОбъекта", Опции);
-
- // END
-
- Обработать(Результат, "S3", "ПолучитьТегиОбъекта");
-
-КонецПроцедуры
-
-Процедура S3_УдалитьТегиОбъекта(ПараметрыФункции)
-
- URL = ПараметрыФункции["S3_URL"];
- AccessKey = ПараметрыФункции["S3_AccessKey"];
- SecretKey = ПараметрыФункции["S3_SecretKey"];
- Region = "BTC";
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("access", AccessKey);
- Опции.Вставить("secret", SecretKey);
- Опции.Вставить("region", Region);
-
- ОсновныеДанные = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ПолучитьСтруктуруДанных", Опции);
-
- Наименование = "picture.jpg";
-
- Каталог = Истина; // Формирование URL в path-style
- Каталог = ПараметрыФункции["Directory"]; // SKIP
-
- Бакет = "opi-dirbucket3";
- Бакет = ?(Каталог, "opi-dirbucket3", "opi-gpbucket3"); // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("name", Наименование);
- Опции.Вставить("bucket", Бакет);
- Опции.Вставить("basic", ОсновныеДанные);
- Опции.Вставить("dir", Каталог);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "УдалитьТегиОбъекта", Опции);
-
- // END
-
- Обработать(Результат, "S3", "УдалитьТегиОбъекта");
-
-КонецПроцедуры
-
-Процедура S3_ПолучитьСписокОбъектов(ПараметрыФункции)
-
- URL = ПараметрыФункции["S3_URL"];
- AccessKey = ПараметрыФункции["S3_AccessKey"];
- SecretKey = ПараметрыФункции["S3_SecretKey"];
- Region = "BTC";
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("access", AccessKey);
- Опции.Вставить("secret", SecretKey);
- Опции.Вставить("region", Region);
-
- ОсновныеДанные = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ПолучитьСтруктуруДанных", Опции);
-
- Каталог = Истина; // Формирование URL в path-style
- Каталог = ПараметрыФункции["Directory"]; // SKIP
-
- Бакет = "opi-dirbucket3";
- Бакет = ?(Каталог, "opi-dirbucket3", "opi-gpbucket3"); // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("bucket", Бакет);
- Опции.Вставить("basic", ОсновныеДанные);
- Опции.Вставить("dir", Каталог);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ПолучитьСписокОбъектов", Опции);
-
- // END
-
- Обработать(Результат, "S3", "ПолучитьСписокОбъектов");
-
-КонецПроцедуры
-
-Процедура S3_ПолучитьСписокВерсийОбъектов(ПараметрыФункции)
-
- URL = ПараметрыФункции["S3_URL"];
- AccessKey = ПараметрыФункции["S3_AccessKey"];
- SecretKey = ПараметрыФункции["S3_SecretKey"];
- Region = "BTC";
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("access", AccessKey);
- Опции.Вставить("secret", SecretKey);
- Опции.Вставить("region", Region);
-
- ОсновныеДанные = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ПолучитьСтруктуруДанных", Опции);
-
- Каталог = Истина; // Формирование URL в path-style
- Каталог = ПараметрыФункции["Directory"]; // SKIP
-
- Бакет = "opi-dirbucket3";
- Бакет = ?(Каталог, "opi-dirbucket3", "opi-gpbucket3"); // SKIP
-
- Префикс = "pic";
- Опции = Новый Структура;
- Опции.Вставить("bucket", Бакет);
- Опции.Вставить("basic", ОсновныеДанные);
- Опции.Вставить("prefix", Префикс);
- Опции.Вставить("dir", Каталог);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ПолучитьСписокВерсийОбъектов", Опции);
-
- // END
-
- Обработать(Результат, "S3", "ПолучитьСписокВерсийОбъектов");
-
-КонецПроцедуры
-
-Процедура S3_ПолучитьОбъект(ПараметрыФункции)
-
- Картинка = ПараметрыФункции["Picture"]; // SKIP
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка); // SKIP
- НеобходимыйРазмер = Картинка.Размер(); // SKIP
-
- URL = ПараметрыФункции["S3_URL"];
- AccessKey = ПараметрыФункции["S3_AccessKey"];
- SecretKey = ПараметрыФункции["S3_SecretKey"];
- Region = "BTC";
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("access", AccessKey);
- Опции.Вставить("secret", SecretKey);
- Опции.Вставить("region", Region);
-
- ОсновныеДанные = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ПолучитьСтруктуруДанных", Опции);
-
- Наименование = "picture.jpg";
-
- Каталог = Истина; // Формирование URL в path-style
- Каталог = ПараметрыФункции["Directory"]; // SKIP
-
- Бакет = "opi-dirbucket3";
- Бакет = ?(Каталог, "opi-dirbucket3", "opi-gpbucket3"); // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("name", Наименование);
- Опции.Вставить("bucket", Бакет);
- Опции.Вставить("basic", ОсновныеДанные);
- Опции.Вставить("dir", Каталог);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ПолучитьОбъект", Опции);
-
- Обработать(Результат, "S3", "ПолучитьОбъект", , НеобходимыйРазмер); // SKIP
-
- ВременныйФайл = ПолучитьИмяВременногоФайла();
- ОсновныеДанные.Вставить("ChunkSize", 200000);
-
- Опции = Новый Структура;
- Опции.Вставить("name", Наименование);
- Опции.Вставить("bucket", Бакет);
- Опции.Вставить("basic", ОсновныеДанные);
- Опции.Вставить("out", ВременныйФайл);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ПолучитьОбъект", Опции);
-
- // END
-
- Обработать(Результат, "S3", "ПолучитьОбъект", "Файл", НеобходимыйРазмер);
-
- Наименование = "bigfile.exe";
- Бакет = "newbucket2";
-
- ВременныйФайлБольшой = ПолучитьИмяВременногоФайла();
- Опции = Новый Структура;
- Опции.Вставить("name", Наименование);
- Опции.Вставить("bucket", Бакет);
- Опции.Вставить("basic", ОсновныеДанные);
- Опции.Вставить("out", ВременныйФайлБольшой);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ПолучитьОбъект", Опции);
-
- Обработать(Результат, "S3", "ПолучитьОбъект", "Большой файл", 34432400);
-
- Опции = Новый Структура;
- Опции.Вставить("name", Наименование);
- Опции.Вставить("bucket", Бакет);
- Опции.Вставить("basic", ОсновныеДанные);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ПолучитьОбъект", Опции);
-
- Обработать(Результат, "S3", "ПолучитьОбъект", "Большой ДД", 34432400);
-
- OPI_Инструменты.УдалитьФайлВПопытке(ВременныйФайлБольшой, "Не удалось удалить временный файл после теста!");
- OPI_Инструменты.УдалитьФайлВПопытке(ВременныйФайл , "Не удалось удалить временный файл после теста!");
-
-КонецПроцедуры
-
-Процедура S3_ИнициализироватьЗагрузкуЧастями(ПараметрыФункции)
-
- URL = ПараметрыФункции["S3_URL"];
- AccessKey = ПараметрыФункции["S3_AccessKey"];
- SecretKey = ПараметрыФункции["S3_SecretKey"];
- Region = "BTC";
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("access", AccessKey);
- Опции.Вставить("secret", SecretKey);
- Опции.Вставить("region", Region);
-
- ОсновныеДанные = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ПолучитьСтруктуруДанных", Опции);
-
- Наименование = "fileChunked.mp3";
-
- Каталог = Истина; // Формирование URL в path-style
- Каталог = ПараметрыФункции["Directory"]; // SKIP
-
- Бакет = "opi-dirbucket3";
- Бакет = ?(Каталог, "opi-dirbucket3", "opi-gpbucket3"); // SKIP
-
- Содержимое = ПараметрыФункции["Audio"]; // URL, Путь или Двоичные данные
- Содержимое = OPI_ЗапросыHTTP.Get(Содержимое);
-
- Опции = Новый Структура;
- Опции.Вставить("name", Наименование);
- Опции.Вставить("bucket", Бакет);
- Опции.Вставить("basic", ОсновныеДанные);
- Опции.Вставить("dir", Каталог);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ИнициализироватьЗагрузкуЧастями", Опции);
- // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
- Обработать(Результат, "S3", "ИнициализироватьЗагрузкуЧастями"); // SKIP
-
- IDЗагрузки = Результат["response"]["InitiateMultipartUploadResult"]["UploadId"];
- ОбщийРазмер = Содержимое.Размер();
- РазмерУчастка = 5242880;
- ПрочитаноБайт = 0;
- НомерЧасти = 1;
-
- ЧтениеДанных = Новый ЧтениеДанных(Содержимое);
- ИсходныйПоток = ЧтениеДанных.ИсходныйПоток();
- МассивТегов = Новый Массив;
-
- Пока ПрочитаноБайт < ОбщийРазмер Цикл
-
- ТекущееЧтение = ЧтениеДанных.Прочитать(РазмерУчастка);
- ТекущиеДанные = ТекущееЧтение.ПолучитьДвоичныеДанные();
-
- Если ТекущиеДанные.Размер() = 0 Тогда
- Прервать;
- КонецЕсли;
-
- Результат = OPI_S3.ЗагрузитьЧастьОбъекта(Наименование
- , Бакет
- , ОсновныеДанные
- , IDЗагрузки
- , НомерЧасти
- , ТекущиеДанные
- , Каталог);
-
- Обработать(Результат, "S3", "ИнициализироватьЗагрузкуЧастями", "Часть"); // SKIP
-
- ПрочитаноБайт = ИсходныйПоток.ТекущаяПозиция();
-
- ETag = Результат["headers"]["Etag"];
- ETag = ?(ETag = Неопределено, Результат["headers"]["ETag"], ETag);
-
- МассивТегов.Добавить(ETag);
-
- НомерЧасти = НомерЧасти + 1;
-
- КонецЦикла;
-
- Опции = Новый Структура;
- Опции.Вставить("name", Наименование);
- Опции.Вставить("bucket", Бакет);
- Опции.Вставить("basic", ОсновныеДанные);
- Опции.Вставить("upload", IDЗагрузки);
- Опции.Вставить("tags", МассивТегов);
- Опции.Вставить("dir", Каталог);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ЗавершитьЗагрузкуЧастями", Опции);
-
- // END
-
- Обработать(Результат, "S3", "ИнициализироватьЗагрузкуЧастями", "Завершение");
-
- OPI_S3.УдалитьОбъект(Наименование, Бакет, ОсновныеДанные);
-
-КонецПроцедуры
-
-Процедура S3_ЗавершитьЗагрузкуЧастями(ПараметрыФункции)
-
- URL = ПараметрыФункции["S3_URL"];
- AccessKey = ПараметрыФункции["S3_AccessKey"];
- SecretKey = ПараметрыФункции["S3_SecretKey"];
- Region = "BTC";
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("access", AccessKey);
- Опции.Вставить("secret", SecretKey);
- Опции.Вставить("region", Region);
-
- ОсновныеДанные = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ПолучитьСтруктуруДанных", Опции);
-
- Наименование = "fileChunked.mp3";
-
- Каталог = Истина; // Формирование URL в path-style
- Каталог = ПараметрыФункции["Directory"]; // SKIP
-
- Бакет = "opi-dirbucket3";
- Бакет = ?(Каталог, "opi-dirbucket3", "opi-gpbucket3"); // SKIP
-
- Содержимое = ПараметрыФункции["Audio"]; // URL, Путь или Двоичные данные
- Содержимое = OPI_ЗапросыHTTP.Get(Содержимое);
-
- Опции = Новый Структура;
- Опции.Вставить("name", Наименование);
- Опции.Вставить("bucket", Бакет);
- Опции.Вставить("basic", ОсновныеДанные);
- Опции.Вставить("dir", Каталог);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ИнициализироватьЗагрузкуЧастями", Опции);
-
- Обработать(Результат, "S3", "ЗавершитьЗагрузкуЧастями", "Начало"); // SKIP
-
- IDЗагрузки = Результат["response"]["InitiateMultipartUploadResult"]["UploadId"];
- ОбщийРазмер = Содержимое.Размер();
- РазмерУчастка = 5242880;
- ПрочитаноБайт = 0;
- НомерЧасти = 1;
-
- ЧтениеДанных = Новый ЧтениеДанных(Содержимое);
- ИсходныйПоток = ЧтениеДанных.ИсходныйПоток();
- МассивТегов = Новый Массив;
-
- Пока ПрочитаноБайт < ОбщийРазмер Цикл
-
- ТекущееЧтение = ЧтениеДанных.Прочитать(РазмерУчастка);
- ТекущиеДанные = ТекущееЧтение.ПолучитьДвоичныеДанные();
-
- Если ТекущиеДанные.Размер() = 0 Тогда
- Прервать;
- КонецЕсли;
-
- Результат = OPI_S3.ЗагрузитьЧастьОбъекта(Наименование
- , Бакет
- , ОсновныеДанные
- , IDЗагрузки
- , НомерЧасти
- , ТекущиеДанные
- , Каталог);
-
- Обработать(Результат, "S3", "ЗавершитьЗагрузкуЧастями", "Часть"); // SKIP
-
- ПрочитаноБайт = ИсходныйПоток.ТекущаяПозиция();
-
- ETag = Результат["headers"]["Etag"];
- ETag = ?(ETag = Неопределено, Результат["headers"]["ETag"], ETag);
-
- МассивТегов.Добавить(ETag);
-
- НомерЧасти = НомерЧасти + 1;
-
- КонецЦикла;
-
- Опции = Новый Структура;
- Опции.Вставить("name", Наименование);
- Опции.Вставить("bucket", Бакет);
- Опции.Вставить("basic", ОсновныеДанные);
- Опции.Вставить("upload", IDЗагрузки);
- Опции.Вставить("tags", МассивТегов);
- Опции.Вставить("dir", Каталог);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ЗавершитьЗагрузкуЧастями", Опции);
- // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
- // END
-
- Обработать(Результат, "S3", "ЗавершитьЗагрузкуЧастями");
-
- OPI_S3.УдалитьОбъект(Наименование, Бакет, ОсновныеДанные);
-
-КонецПроцедуры
-
-Процедура S3_ЗагрузитьЧастьОбъекта(ПараметрыФункции)
-
- URL = ПараметрыФункции["S3_URL"];
- AccessKey = ПараметрыФункции["S3_AccessKey"];
- SecretKey = ПараметрыФункции["S3_SecretKey"];
- Region = "BTC";
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("access", AccessKey);
- Опции.Вставить("secret", SecretKey);
- Опции.Вставить("region", Region);
-
- ОсновныеДанные = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ПолучитьСтруктуруДанных", Опции);
-
- Наименование = "fileChunked.mp3";
-
- Каталог = Истина; // Формирование URL в path-style
- Каталог = ПараметрыФункции["Directory"]; // SKIP
-
- Бакет = "opi-dirbucket3";
- Бакет = ?(Каталог, "opi-dirbucket3", "opi-gpbucket3"); // SKIP
-
- Содержимое = ПараметрыФункции["Audio"]; // URL, Путь или Двоичные данные
- Содержимое = OPI_ЗапросыHTTP.Get(Содержимое);
-
- Опции = Новый Структура;
- Опции.Вставить("name", Наименование);
- Опции.Вставить("bucket", Бакет);
- Опции.Вставить("basic", ОсновныеДанные);
- Опции.Вставить("dir", Каталог);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ИнициализироватьЗагрузкуЧастями", Опции);
-
- Обработать(Результат, "S3", "ЗагрузитьЧастьОбъекта", "Начало"); // SKIP
-
- IDЗагрузки = Результат["response"]["InitiateMultipartUploadResult"]["UploadId"];
- ОбщийРазмер = Содержимое.Размер();
- РазмерУчастка = 5242880;
- ПрочитаноБайт = 0;
- НомерЧасти = 1;
-
- ЧтениеДанных = Новый ЧтениеДанных(Содержимое);
- ИсходныйПоток = ЧтениеДанных.ИсходныйПоток();
- МассивТегов = Новый Массив;
-
- Пока ПрочитаноБайт < ОбщийРазмер Цикл
-
- ТекущееЧтение = ЧтениеДанных.Прочитать(РазмерУчастка);
- ТекущиеДанные = ТекущееЧтение.ПолучитьДвоичныеДанные();
-
- Если ТекущиеДанные.Размер() = 0 Тогда
- Прервать;
- КонецЕсли;
-
- Результат = OPI_S3.ЗагрузитьЧастьОбъекта(Наименование
- , Бакет
- , ОсновныеДанные
- , IDЗагрузки
- , НомерЧасти
- , ТекущиеДанные
- , Каталог);
-
- // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
- Обработать(Результат, "S3", "ЗагрузитьЧастьОбъекта"); // SKIP
-
- ПрочитаноБайт = ИсходныйПоток.ТекущаяПозиция();
-
- ETag = Результат["headers"]["Etag"];
- ETag = ?(ETag = Неопределено, Результат["headers"]["ETag"], ETag);
-
- МассивТегов.Добавить(ETag);
-
- НомерЧасти = НомерЧасти + 1;
-
- КонецЦикла;
-
- Опции = Новый Структура;
- Опции.Вставить("name", Наименование);
- Опции.Вставить("bucket", Бакет);
- Опции.Вставить("basic", ОсновныеДанные);
- Опции.Вставить("upload", IDЗагрузки);
- Опции.Вставить("tags", МассивТегов);
- Опции.Вставить("dir", Каталог);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ЗавершитьЗагрузкуЧастями", Опции);
-
- // END
-
- Обработать(Результат, "S3", "ЗагрузитьЧастьОбъекта", "Завершение"); // SKIP
-
- OPI_S3.УдалитьОбъект(Наименование, Бакет, ОсновныеДанные);
-
-КонецПроцедуры
-
-Процедура S3_ОтменитьЗагрузкуЧастями(ПараметрыФункции)
-
- URL = ПараметрыФункции["S3_URL"];
- AccessKey = ПараметрыФункции["S3_AccessKey"];
- SecretKey = ПараметрыФункции["S3_SecretKey"];
- Region = "BTC";
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("access", AccessKey);
- Опции.Вставить("secret", SecretKey);
- Опции.Вставить("region", Region);
-
- ОсновныеДанные = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ПолучитьСтруктуруДанных", Опции);
-
- Наименование = "fileChunked.mp3";
-
- Каталог = Истина; // Формирование URL в path-style
- Каталог = ПараметрыФункции["Directory"]; // SKIP
-
- Бакет = "opi-dirbucket3";
- Бакет = ?(Каталог, "opi-dirbucket3", "opi-gpbucket3"); // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("name", Наименование);
- Опции.Вставить("bucket", Бакет);
- Опции.Вставить("basic", ОсновныеДанные);
- Опции.Вставить("dir", Каталог);
-
- Начало = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ИнициализироватьЗагрузкуЧастями", Опции);
- IDЗагрузки = Начало["response"]["InitiateMultipartUploadResult"]["UploadId"];
-
- Опции = Новый Структура;
- Опции.Вставить("name", Наименование);
- Опции.Вставить("bucket", Бакет);
- Опции.Вставить("basic", ОсновныеДанные);
- Опции.Вставить("upload", IDЗагрузки);
- Опции.Вставить("dir", Каталог);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ОтменитьЗагрузкуЧастями", Опции);
-
- // END
-
- Обработать(Результат, "S3", "ОтменитьЗагрузкуЧастями");
-
-КонецПроцедуры
-
-Процедура S3_ПолучитьСсылкуСкачиванияОбъекта(ПараметрыФункции)
-
- Картинка = ПараметрыФункции["Picture"]; // SKIP
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка); // SKIP
- НеобходимыйРазмер = Картинка.Размер(); // SKIP
-
- URL = ПараметрыФункции["S3_URL"];
- AccessKey = ПараметрыФункции["S3_AccessKey"];
- SecretKey = ПараметрыФункции["S3_SecretKey"];
- Region = "BTC";
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("access", AccessKey);
- Опции.Вставить("secret", SecretKey);
- Опции.Вставить("region", Region);
-
- ОсновныеДанные = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ПолучитьСтруктуруДанных", Опции);
-
- Наименование = "picture.jpg";
-
- Каталог = Истина; // Формирование URL в path-style
- Каталог = ПараметрыФункции["Directory"]; // SKIP
-
- Бакет = "opi-dirbucket3";
- Бакет = ?(Каталог, "opi-dirbucket3", "opi-gpbucket3"); // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("name", Наименование);
- Опции.Вставить("bucket", Бакет);
- Опции.Вставить("basic", ОсновныеДанные);
- Опции.Вставить("expires", 7200);
- Опции.Вставить("dir", Каталог);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ПолучитьСсылкуСкачиванияОбъекта", Опции);
-
- // END
-
- Обработать(Результат, "S3", "ПолучитьСсылкуСкачиванияОбъекта");
-
- Результат = OPI_ЗапросыHTTP.Get(Результат);
-
- Обработать(Результат, "S3", "ПолучитьСсылкуСкачиванияОбъекта", "Проверка", НеобходимыйРазмер);
-
-КонецПроцедуры
-
-Процедура S3_ПолучитьСсылкуЗагрузкиОбъекта(ПараметрыФункции)
-
- Картинка = ПараметрыФункции["Picture"]; // SKIP
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка); // SKIP
- НеобходимыйРазмер = Картинка.Размер(); // SKIP
-
- URL = ПараметрыФункции["S3_URL"];
- AccessKey = ПараметрыФункции["S3_AccessKey"];
- SecretKey = ПараметрыФункции["S3_SecretKey"];
- Region = "BTC";
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("access", AccessKey);
- Опции.Вставить("secret", SecretKey);
- Опции.Вставить("region", Region);
-
- ОсновныеДанные = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ПолучитьСтруктуруДанных", Опции);
-
- Наименование = "pictureU.jpg";
-
- Каталог = Истина; // Формирование URL в path-style
- Каталог = ПараметрыФункции["Directory"]; // SKIP
-
- Бакет = "newbucket2";
-
- Опции = Новый Структура;
- Опции.Вставить("name", Наименование);
- Опции.Вставить("bucket", Бакет);
- Опции.Вставить("basic", ОсновныеДанные);
- Опции.Вставить("expires", 7200);
- Опции.Вставить("dir", Каталог);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ПолучитьСсылкуЗагрузкиОбъекта", Опции);
-
- // END
-
- Обработать(Результат, "S3", "ПолучитьСсылкуЗагрузкиОбъекта");
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать(Результат)
- .УстановитьДвоичноеТело(Картинка)
- .ОбработатьЗапрос("PUT");
-
- Обработать(Результат, "S3", "ПолучитьСсылкуЗагрузкиОбъекта", "Загрузка");
-
- Опции = Новый Структура;
- Опции.Вставить("name", Наименование);
- Опции.Вставить("bucket", Бакет);
- Опции.Вставить("basic", ОсновныеДанные);
-
- Проверка = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("s3", "ПолучитьОписаниеОбъекта", Опции);
-
- Обработать(Проверка, "S3", "ПолучитьСсылкуЗагрузкиОбъекта", "Проверка", НеобходимыйРазмер);
-
- OPI_S3.УдалитьОбъект(Наименование, Бакет, ОсновныеДанные);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область TCP
-
-Процедура TCP_ОткрытьСоединение(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["TCP_Address"];
- Соединение = OPI_TCP.ОткрытьСоединение(Адрес);
-
- Обработать(Соединение, "TCP", "ОткрытьСоединение"); // SKIP
-
- OPI_TCP.ЗакрытьСоединение(Соединение);
-
- Адрес = "tcpbin.com:4243";
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- Tls = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("tcp", "ПолучитьНастройкиTLS", Опции);
- Соединение = OPI_TCP.ОткрытьСоединение(Адрес, TLS);
-
- // END
-
- Обработать(Соединение, "TCP", "ОткрытьСоединение", "TLS");
-
-КонецПроцедуры
-
-Процедура TCP_ЗакрытьСоединение(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["TCP_Address"];
- Соединение = OPI_TCP.ОткрытьСоединение(Адрес);
-
- Результат = OPI_TCP.ЗакрытьСоединение(Соединение);
-
- // END
-
- Обработать(Результат, "TCP", "ЗакрытьСоединение");
-
-КонецПроцедуры
-
-Процедура TCP_ПрочитатьДвоичныеДанные(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["TCP_Address"];
- Соединение = OPI_TCP.ОткрытьСоединение(Адрес);
- Сообщение = "Hello server!" + Символы.ПС;
- Данные = ПолучитьДвоичныеДанныеИзСтроки(Сообщение);
-
- OPI_TCP.ОтправитьДвоичныеДанные(Соединение, Данные);
-
- // Маркер конца сообщения для исключения ожидания конца таймаута
- Маркер = Символы.ПС;
- Результат = OPI_TCP.ПрочитатьДвоичныеДанные(Соединение, , Маркер);
- // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
- OPI_TCP.ЗакрытьСоединение(Соединение);
-
- // END
-
- Обработать(Результат, "TCP", "ПрочитатьДвоичныеДанные", , Сообщение);
-
- Соединение = OPI_TCP.ОткрытьСоединение(Адрес);
-
- OPI_TCP.ОтправитьДвоичныеДанные(Соединение, Данные);
- Результат = OPI_TCP.ПрочитатьДвоичныеДанные(Соединение, , , 50000);
-
- OPI_TCP.ЗакрытьСоединение(Соединение);
-
- Обработать(Результат, "TCP", "ПрочитатьДвоичныеДанные", "Таймаут", Сообщение);
-
-КонецПроцедуры
-
-Процедура TCP_ОтправитьДвоичныеДанные(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["TCP_Address"];
- Соединение = OPI_TCP.ОткрытьСоединение(Адрес);
- Сообщение = "Hello server!" + Символы.ПС;
- Данные = ПолучитьДвоичныеДанныеИзСтроки(Сообщение);
-
- Результат = OPI_TCP.ОтправитьДвоичныеДанные(Соединение, Данные);
- // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
- // Маркер конца сообщения для исключения ожидания конца таймаута
- Маркер = Символы.ПС;
- Ответ = OPI_TCP.ПрочитатьДвоичныеДанные(Соединение, , Маркер);
-
- OPI_TCP.ЗакрытьСоединение(Соединение);
-
- // END
-
- Обработать(Ответ, "TCP", "ОтправитьДвоичныеДанные", , Сообщение);
-
- Соединение = OPI_TCP.ОткрытьСоединение(Адрес);
-
- OPI_TCP.ОтправитьДвоичныеДанные(Соединение, Данные);
- Результат = OPI_TCP.ПрочитатьДвоичныеДанные(Соединение, , , 50000);
-
- OPI_TCP.ЗакрытьСоединение(Соединение);
-
- Обработать(Результат, "TCP", "ОтправитьДвоичныеДанные", "Таймаут", Сообщение);
-
-КонецПроцедуры
-
-Процедура TCP_ОбработатьЗапрос(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["TCP_Address"];
- Данные = "Echo this!" + Символы.ПС;
-
- Опции = Новый Структура;
- Опции.Вставить("address", Адрес);
- Опции.Вставить("data", Данные);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("tcp", "ОбработатьЗапрос", Опции);
-
- Обработать(Результат, "TCP", "ОбработатьЗапрос", , "Echo this!" + Символы.ПС); // SKIP
-
- Адрес = ПараметрыФункции["TCP_AddressTLS"];
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- Tls = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("tcp", "ПолучитьНастройкиTLS", Опции);
-
- Опции = Новый Структура;
- Опции.Вставить("address", Адрес);
- Опции.Вставить("data", Данные);
- Опции.Вставить("tls", Tls);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("tcp", "ОбработатьЗапрос", Опции);
-
- // END
-
- Обработать(Результат, "TCP", "ОбработатьЗапрос", "TLS", "Echo this!" + Символы.ПС);
-
-КонецПроцедуры
-
-Процедура TCP_ПрочитатьСтроку(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["TCP_Address"];
- Соединение = OPI_TCP.ОткрытьСоединение(Адрес);
- Данные = "Hello server!" + Символы.ПС;
-
- OPI_TCP.ОтправитьСтроку(Соединение, Данные);
-
- // Маркер конца сообщения для исключения ожидания конца таймаута
- Маркер = Символы.ПС;
- Результат = OPI_TCP.ПрочитатьСтроку(Соединение, , Маркер);
- // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
- OPI_TCP.ЗакрытьСоединение(Соединение);
-
- // END
-
- Обработать(Результат, "TCP", "ПрочитатьСтроку", , Данные);
-
- Соединение = OPI_TCP.ОткрытьСоединение(Адрес);
-
- OPI_TCP.ОтправитьСтроку(Соединение, Данные);
- Результат = OPI_TCP.ПрочитатьСтроку(Соединение, , , 50000);
-
- OPI_TCP.ЗакрытьСоединение(Соединение);
-
- Обработать(Результат, "TCP", "ПрочитатьСтроку", "Таймаут", Данные);
-
-КонецПроцедуры
-
-Процедура TCP_ОтправитьСтроку(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["TCP_Address"];
- Соединение = OPI_TCP.ОткрытьСоединение(Адрес);
- Данные = "Hello server!" + Символы.ПС;
-
- Результат = OPI_TCP.ОтправитьСтроку(Соединение, Данные);
- // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
- // Маркер конца сообщения для исключения ожидания конца таймаута
- Маркер = Символы.ПС;
- Ответ = OPI_TCP.ПрочитатьСтроку(Соединение, , Маркер);
-
- OPI_TCP.ЗакрытьСоединение(Соединение);
-
- // END
-
- Обработать(Ответ, "TCP", "ОтправитьСтроку", , Данные);
-
- Соединение = OPI_TCP.ОткрытьСоединение(Адрес);
-
- OPI_TCP.ОтправитьСтроку(Соединение, Данные);
- Результат = OPI_TCP.ПрочитатьСтроку(Соединение, , , 50000);
-
- OPI_TCP.ЗакрытьСоединение(Соединение);
-
- Обработать(Результат, "TCP", "ОтправитьСтроку", "Таймаут", Данные);
-
-КонецПроцедуры
-
-Процедура TCP_ПолучитьНастройкиTLS(ПараметрыФункции)
-
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("tcp", "ПолучитьНастройкиTLS", Опции);
-
- // END
-
- Обработать(Результат, "TCP", "ПолучитьНастройкиTLS");
-
-КонецПроцедуры
-
-Процедура TCP_ПолучитьПоследнююОшибку(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["TCP_Address"];
- Соединение = OPI_TCP.ОткрытьСоединение(Адрес);
- Данные = "Hello server!" + Символы.ПС;
-
- Отправка = OPI_TCP.ОтправитьСтроку(Соединение, Данные);
- Результат = OPI_TCP.ПолучитьПоследнююОшибку(Соединение); // SKIP
-
- // END
-
- Обработать(Результат, "TCP", "ПолучитьПоследнююОшибку");
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область SQLite
-
-Процедура SQLite_ОткрытьСоединение(ПараметрыФункции)
-
- ИВФ = ПолучитьИмяВременногоФайла("sqlite");
-
- БазаНаДиске = OPI_SQLite.ОткрытьСоединение(ИВФ);
- БазаВПамяти = OPI_SQLite.ОткрытьСоединение();
-
- // END
-
- Обработать(БазаНаДиске, "SQLite", "ОткрытьСоединение");
- Обработать(БазаВПамяти, "SQLite", "ОткрытьСоединение", "IM");
-
- Закрытие = OPI_SQLite.ЗакрытьСоединение(БазаНаДиске);
-
- Обработать(Закрытие, "SQLite", "ОткрытьСоединение", "Закрытие");
-
- OPI_Инструменты.УдалитьФайлВПопытке(ИВФ, "Ошибка удаления файла базы");
-
-КонецПроцедуры
-
-Процедура SQLite_ЗакрытьСоединение(ПараметрыФункции)
-
- ИВФ = ПолучитьИмяВременногоФайла("sqlite");
-
- Соединение = OPI_SQLite.ОткрытьСоединение(ИВФ);
-
- Обработать(Соединение, "SQLite", "ЗакрытьСоединение", "Открытие"); // SKIP
-
- Закрытие = OPI_SQLite.ЗакрытьСоединение(Соединение);
-
- // END
-
- Обработать(Закрытие, "SQLite", "ЗакрытьСоединение");
-
- OPI_Инструменты.УдалитьФайлВПопытке(ИВФ, "Ошибка удаления файла базы");
-
-КонецПроцедуры
-
-Процедура SQLite_ВыполнитьЗапросSQL(ПараметрыФункции)
-
- ИВФ = ПолучитьИмяВременногоФайла("sqlite");
-
- Картинка = ПараметрыФункции["Picture"];
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка); // Картинка - Тип: ДвоичныеДанные
-
- Соединение = OPI_SQLite.ОткрытьСоединение(ИВФ);
-
- Обработать(Соединение, "SQLite", "ВыполнитьЗапросSQL", "Открытие"); // SKIP
-
- // CREATE
-
- ТекстЗапроса = "
- |CREATE TABLE test_table (
- |id INTEGER PRIMARY KEY,
- |name TEXT,
- |age INTEGER,
- |salary REAL,
- |is_active BOOLEAN,
- |created_at DATETIME,
- |data BLOB
- |);";
-
- Опции = Новый Структура;
- Опции.Вставить("sql", ТекстЗапроса);
- Опции.Вставить("db", Соединение);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sqlite", "ВыполнитьЗапросSQL", Опции);
-
- Обработать(Результат, "SQLite", "ВыполнитьЗапросSQL", "Create"); // SKIP
-
- // INSERT с параметрами
-
- ТекстЗапроса = "
- |INSERT INTO test_table (name, age, salary, is_active, created_at, data)
- |VALUES (?1, ?2, ?3, ?4, ?5, ?6);";
-
- МассивПараметров = Новый Массив;
- МассивПараметров.Добавить("Vitaly"); // TEXT
- МассивПараметров.Добавить(25); // INTEGER
- МассивПараметров.Добавить(1000.12); // REAL
- МассивПараметров.Добавить(Истина); // BOOL
- МассивПараметров.Добавить(OPI_Инструменты.ПолучитьТекущуюДату()); // DATETIME
- МассивПараметров.Добавить(Новый Структура("blob", Картинка)); // BLOB
-
- Опции = Новый Структура;
- Опции.Вставить("sql", ТекстЗапроса);
- Опции.Вставить("params", МассивПараметров);
- Опции.Вставить("db", Соединение);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sqlite", "ВыполнитьЗапросSQL", Опции);
-
- Обработать(Результат, "SQLite", "ВыполнитьЗапросSQL", "Insert"); // SKIP
-
- // SELECT (Результат этого запроса приведен в следующем блоке)
-
- ТекстЗапроса = "SELECT id, name, age, salary, is_active, created_at, data FROM test_table;";
-
- Опции = Новый Структура;
- Опции.Вставить("sql", ТекстЗапроса);
- Опции.Вставить("db", Соединение);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sqlite", "ВыполнитьЗапросSQL", Опции);
-
- Обработать(Результат, "SQLite", "ВыполнитьЗапросSQL", , Картинка); // SKIP
-
- // Транзакция
-
- ТекстЗапроса = "BEGIN TRANSACTION;
- | CREATE TABLE IF NOT EXISTS users (
- | id INTEGER PRIMARY KEY AUTOINCREMENT,
- | name TEXT NOT NULL,
- | age INTEGER NOT NULL
- | );
- | INSERT INTO users (name, age) VALUES ('Alice', 30);
- | INSERT INTO users (name, age) VALUES ('Bob', 25);
- | INSERT INTO users (name, age) VALUES ('Charlie', 35);
- | COMMIT;";
-
- Опции = Новый Структура;
- Опции.Вставить("sql", ТекстЗапроса);
- Опции.Вставить("db", Соединение);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sqlite", "ВыполнитьЗапросSQL", Опции);
-
- Обработать(Результат, "SQLite", "ВыполнитьЗапросSQL", "Transaction"); // SKIP
-
- // С расширением
-
- Если OPI_Инструменты.ЭтоWindows() Тогда
- Расширение = ПараметрыФункции["SQLite_Ext"]; // URL, Путь или Двоичные данные
- Иначе
- Расширение = ПараметрыФункции["SQLite_ExtLinux"]; // URL, Путь или Двоичные данные
- КонецЕсли;
-
- ТочкаВхода = "sqlite3_uuid_init";
-
- СоответствиеРасширений = Новый Соответствие;
- СоответствиеРасширений.Вставить(Расширение, ТочкаВхода);
-
- ТекстЗапроса = "SELECT uuid4();";
-
- Опции = Новый Структура;
- Опции.Вставить("sql", ТекстЗапроса);
- Опции.Вставить("db", Соединение);
- Опции.Вставить("exts", СоответствиеРасширений);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sqlite", "ВыполнитьЗапросSQL", Опции);
-
- Обработать(Результат, "SQLite", "ВыполнитьЗапросSQL", "Расширение"); // SKIP
-
- Закрытие = OPI_SQLite.ЗакрытьСоединение(Соединение);
-
- // END
-
- Обработать(Результат, "SQLite", "ВыполнитьЗапросSQL", "Закрытие");
-
- OPI_Инструменты.УдалитьФайлВПопытке(ИВФ, "Ошибка удаления файла базы");
-
-КонецПроцедуры
-
-Процедура SQLite_ЭтоКоннектор(ПараметрыФункции)
-
- Соединение = OPI_SQLite.ОткрытьСоединение();
- Результат = OPI_SQLite.ЭтоКоннектор(Соединение);
-
- // END
-
- Обработать(Результат, "SQLite", "ЭтоКоннектор");
-
-КонецПроцедуры
-
-Процедура SQLite_СоздатьТаблицу(ПараметрыФункции)
-
- База = ПараметрыФункции["SQLite_DB"];
- Таблица = "test";
-
- СтруктураКолонок = Новый Структура;
- СтруктураКолонок.Вставить("id" , "INTEGER PRIMARY KEY");
- СтруктураКолонок.Вставить("name" , "TEXT");
- СтруктураКолонок.Вставить("age" , "INTEGER");
- СтруктураКолонок.Вставить("salary" , "REAL");
- СтруктураКолонок.Вставить("is_active" , "BOOLEAN");
- СтруктураКолонок.Вставить("created_at", "DATETIME");
- СтруктураКолонок.Вставить("data" , "BLOB");
-
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("cols", СтруктураКолонок);
- Опции.Вставить("db", База);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sqlite", "СоздатьТаблицу", Опции);
-
- // END
-
- Обработать(Результат, "SQLite", "СоздатьТаблицу");
-
- СоответствиеКолонок = Новый Соответствие;
- СоответствиеКолонок.Вставить("id" , "INTEGER PRIMARY KEY");
- СоответствиеКолонок.Вставить("[Непонятная колонка]", "TEXT");
-
- Опции = Новый Структура;
- Опции.Вставить("table", "test1");
- Опции.Вставить("cols", СоответствиеКолонок);
- Опции.Вставить("db", База);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sqlite", "СоздатьТаблицу", Опции);
-
- Обработать(Результат, "SQLite", "СоздатьТаблицу", "Непонятная колонка");
-
-КонецПроцедуры
-
-Процедура SQLite_ДобавитьЗаписи(ПараметрыФункции)
-
- Картинка = ПараметрыФункции["Picture"];
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка); // Картинка - Тип: ДвоичныеДанные
-
- ФайлКартинки = ПолучитьИмяВременногоФайла("png");
- Картинка.Записать(ФайлКартинки); // ФайлКартинки - Файл на диске
-
- База = ПараметрыФункции["SQLite_DB"];
- Таблица = "test";
-
- МассивДанных = Новый Массив;
-
- СтруктураСтроки1 = Новый Структура;
- СтруктураСтроки1.Вставить("name" , "Vitaly"); // TEXT
- СтруктураСтроки1.Вставить("age" , 25); // INTEGER
- СтруктураСтроки1.Вставить("salary" , 1000.12); // REAL
- СтруктураСтроки1.Вставить("is_active" , Истина); // BOOL
- СтруктураСтроки1.Вставить("created_at", OPI_Инструменты.ПолучитьТекущуюДату()); // DATETIME
- СтруктураСтроки1.Вставить("data" , Новый Структура("blob", Картинка)); // BLOB
-
- СтруктураСтроки2 = Новый Структура;
- СтруктураСтроки2.Вставить("name" , "Lesha"); // TEXT
- СтруктураСтроки2.Вставить("age" , 20); // INTEGER
- СтруктураСтроки2.Вставить("salary" , 200.20); // REAL
- СтруктураСтроки2.Вставить("is_active" , Ложь); // BOOL
- СтруктураСтроки2.Вставить("created_at", OPI_Инструменты.ПолучитьТекущуюДату()); // DATETIME
- СтруктураСтроки2.Вставить("data" , Новый Структура("blob", ФайлКартинки)); // BLOB
-
- МассивДанных.Добавить(СтруктураСтроки1);
- МассивДанных.Добавить(СтруктураСтроки2);
-
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("rows", МассивДанных);
- Опции.Вставить("db", База);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sqlite", "ДобавитьЗаписи", Опции);
-
- // END
-
- Обработать(Результат, "SQLite", "ДобавитьЗаписи");
-
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("rows", МассивДанных);
- Опции.Вставить("trn", Ложь);
- Опции.Вставить("db", База);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sqlite", "ДобавитьЗаписи", Опции);
-
- Обработать(Результат, "SQLite", "ДобавитьЗаписи", "Без транзакции");
-
- СтруктураСтроки2.Вставить("error", "Lesha");
- МассивДанных.Добавить(СтруктураСтроки2);
-
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("rows", МассивДанных);
- Опции.Вставить("db", База);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sqlite", "ДобавитьЗаписи", Опции);
- Обработать(Результат, "SQLite", "ДобавитьЗаписи", "Ошибка поля");
-
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("rows", МассивДанных);
- Опции.Вставить("trn", Ложь);
- Опции.Вставить("db", База);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sqlite", "ДобавитьЗаписи", Опции);
- Обработать(Результат, "SQLite", "ДобавитьЗаписи", "Ошибка без транзакции");
-
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("rows", "not valid json");
- Опции.Вставить("db", База);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sqlite", "ДобавитьЗаписи", Опции);
- Обработать(Результат, "SQLite", "ДобавитьЗаписи", "Ошибка JSON");
-
- СоответствиеСтроки = Новый Соответствие;
- СоответствиеСтроки.Вставить("[Непонятная колонка]", "yo");
-
- Опции = Новый Структура;
- Опции.Вставить("table", "test1");
- Опции.Вставить("rows", СоответствиеСтроки);
- Опции.Вставить("db", База);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sqlite", "ДобавитьЗаписи", Опции);
- Обработать(Результат, "SQLite", "ДобавитьЗаписи", "Непонятная колонка");
-
- OPI_Инструменты.УдалитьФайлВПопытке(ФайлКартинки, "Не удалось удалить временный файл после теста!");
-
-КонецПроцедуры
-
-Процедура SQLite_ПолучитьЗаписи(ПараметрыФункции)
-
- База = ПараметрыФункции["SQLite_DB"];
- Таблица = "test";
-
- Поля = Новый Массив;
- Поля.Добавить("name");
- Поля.Добавить("salary");
-
- Фильтры = Новый Массив;
-
- СтруктураФильтра1 = Новый Структура;
-
- СтруктураФильтра1.Вставить("field", "name");
- СтруктураФильтра1.Вставить("type" , "=");
- СтруктураФильтра1.Вставить("value", "Vitaly");
- СтруктураФильтра1.Вставить("union", "AND");
- СтруктураФильтра1.Вставить("raw" , Ложь);
-
- СтруктураФильтра2 = Новый Структура;
-
- СтруктураФильтра2.Вставить("field", "age");
- СтруктураФильтра2.Вставить("type" , "BETWEEN");
- СтруктураФильтра2.Вставить("value", "20 AND 30");
- СтруктураФильтра2.Вставить("raw" , Истина);
-
- Фильтры.Добавить(СтруктураФильтра1);
- Фильтры.Добавить(СтруктураФильтра2);
-
- Сортировка = Новый Структура("created_at", "DESC");
- Количество = 1;
-
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("fields", Поля);
- Опции.Вставить("filter", Фильтры);
- Опции.Вставить("order", Сортировка);
- Опции.Вставить("limit", Количество);
- Опции.Вставить("db", База);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sqlite", "ПолучитьЗаписи", Опции);
-
- // END
-
- Обработать(Результат, "SQLite", "ПолучитьЗаписи");
-
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("fields", "['name','age','salary','is_active','created_at']");
- Опции.Вставить("db", База);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sqlite", "ПолучитьЗаписи", Опции);
-
- Обработать(Результат, "SQLite", "ПолучитьЗаписи", "Без параметров");
-
- СтруктураФильтра2.Вставить("type", "BEETWEEN");
- Фильтры.Добавить(СтруктураФильтра2);
-
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("fields", "['name','age','salary','is_active','created_at']");
- Опции.Вставить("filter", Фильтры);
- Опции.Вставить("db", База);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sqlite", "ПолучитьЗаписи", Опции);
-
- Обработать(Результат, "SQLite", "ПолучитьЗаписи", "Ошибка");
-
- Опции = Новый Структура;
- Опции.Вставить("table", "test1");
- Опции.Вставить("db", База);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sqlite", "ПолучитьЗаписи", Опции);
-
- Обработать(Результат, "SQLite", "ПолучитьЗаписи", "Непонятная колонка");
-
-КонецПроцедуры
-
-Процедура SQLite_ОбновитьЗаписи(ПараметрыФункции)
-
- База = ПараметрыФункции["SQLite_DB"];
- Таблица = "test";
-
- СтруктураПолей = Новый Структура;
- СтруктураПолей.Вставить("name" , "Vitaly A.");
- СтруктураПолей.Вставить("salary", "999999");
-
- Фильтры = Новый Массив;
-
- СтруктураФильтра = Новый Структура;
-
- СтруктураФильтра.Вставить("field", "name");
- СтруктураФильтра.Вставить("type" , "=");
- СтруктураФильтра.Вставить("value", "Vitaly");
- СтруктураФильтра.Вставить("union", "AND");
- СтруктураФильтра.Вставить("raw" , Ложь);
-
- Фильтры.Добавить(СтруктураФильтра);
-
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("values", СтруктураПолей);
- Опции.Вставить("filter", СтруктураФильтра);
- Опции.Вставить("db", База);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sqlite", "ОбновитьЗаписи", Опции);
-
- // END
-
- Обработать(Результат, "SQLite", "ОбновитьЗаписи");
-
- СтруктураФильтра.Вставить("value", "Vitaly A.");
-
- Фильтры = Новый Массив;
- Фильтры.Добавить(СтруктураФильтра);
-
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("fields", "['name','salary']");
- Опции.Вставить("filter", Фильтры);
- Опции.Вставить("db", База);
-
- Проверка = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sqlite", "ПолучитьЗаписи", Опции);
-
- Обработать(Проверка, "SQLite", "ОбновитьЗаписи", "Проверка", СтруктураПолей);
-
-КонецПроцедуры
-
-Процедура SQLite_УдалитьЗаписи(ПараметрыФункции)
-
- База = ПараметрыФункции["SQLite_DB"];
- Таблица = "test";
-
- Фильтры = Новый Массив;
-
- СтруктураФильтра = Новый Структура;
-
- СтруктураФильтра.Вставить("field", "name");
- СтруктураФильтра.Вставить("type" , "=");
- СтруктураФильтра.Вставить("value", "Vitaly A.");
- СтруктураФильтра.Вставить("union", "AND");
- СтруктураФильтра.Вставить("raw" , Ложь);
-
- Фильтры.Добавить(СтруктураФильтра);
-
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("filter", СтруктураФильтра);
- Опции.Вставить("db", База);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sqlite", "УдалитьЗаписи", Опции);
-
- // END
-
- Обработать(Результат, "SQLite", "УдалитьЗаписи");
-
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("fields", "['name','salary']");
- Опции.Вставить("filter", Фильтры);
- Опции.Вставить("db", База);
-
- Проверка = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sqlite", "ПолучитьЗаписи", Опции);
-
- Обработать(Проверка, "SQLite", "УдалитьЗаписи", "Проверка");
-
-КонецПроцедуры
-
-Процедура SQLite_ПолучитьИнформациюОТаблице(ПараметрыФункции)
-
- База = ПараметрыФункции["SQLite_DB"];
- Таблица = "test";
-
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("db", База);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sqlite", "ПолучитьИнформациюОТаблице", Опции);
-
- // END
-
- Обработать(Результат, "SQLite", "ПолучитьИнформациюОТаблице");
-
-КонецПроцедуры
-
-Процедура SQLite_ПолучитьСтруктуруФильтраЗаписей(ПараметрыФункции)
-
- Опции = Новый Структура;
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sqlite", "ПолучитьСтруктуруФильтраЗаписей", Опции);
-
- // END
-
- Обработать(Результат, "SQLite", "ПолучитьСтруктуруФильтраЗаписей");
-
- Опции = Новый Структура;
- Опции.Вставить("empty", Истина);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sqlite", "ПолучитьСтруктуруФильтраЗаписей", Опции);
-
- Обработать(Результат, "SQLite", "ПолучитьСтруктуруФильтраЗаписей", "Пустая");
-
-КонецПроцедуры
-
-Процедура SQLite_УдалитьТаблицу(ПараметрыФункции)
-
- База = ПараметрыФункции["SQLite_DB"];
- Таблица = "test";
-
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("db", База);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sqlite", "УдалитьТаблицу", Опции);
-
- // END
-
- Обработать(Результат, "SQLite", "УдалитьТаблицу");
-
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("db", База);
-
- Проверка = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sqlite", "ПолучитьИнформациюОТаблице", Опции);
-
- Обработать(Проверка, "SQLite", "УдалитьТаблицу", "Проверка");
-
- OPI_SQLite.УдалитьТаблицу("test1", База);
-
-КонецПроцедуры
-
-Процедура SQLite_ОчиститьТаблицу(ПараметрыФункции)
-
- База = ПараметрыФункции["SQLite_DB"];
- Таблица = "test";
-
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("db", База);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sqlite", "ОчиститьТаблицу", Опции);
-
- // END
-
- Обработать(Результат, "SQLite", "ОчиститьТаблицу");
-
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("db", База);
-
- Проверка = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sqlite", "ПолучитьИнформациюОТаблице", Опции);
-
- Обработать(Проверка, "SQLite", "ОчиститьТаблицу", "Таблица");
-
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("db", База);
-
- Проверка = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sqlite", "ПолучитьЗаписи", Опции);
-
- Обработать(Проверка, "SQLite", "ОчиститьТаблицу", "Проверка");
-
-КонецПроцедуры
-
-Процедура SQLite_ПодключитьРасширение(ПараметрыФункции)
-
- Если OPI_Инструменты.ЭтоWindows() Тогда
- Расширение = ПараметрыФункции["SQLite_Ext"]; // URL, Путь или Двоичные данные
- Иначе
- Расширение = ПараметрыФункции["SQLite_ExtLinux"]; // URL, Путь или Двоичные данные
- КонецЕсли;
-
- База = ПараметрыФункции["SQLite_DB"];
- ТочкаВхода = "sqlite3_uuid_init";
-
- Соединение = OPI_SQLite.ОткрытьСоединение(База);
- Результат = OPI_SQLite.ПодключитьРасширение(Расширение, ТочкаВхода, Соединение);
-
- // END
-
- Обработать(Результат, "SQLite", "ПодключитьРасширение");
-
- ИВФ = ПолучитьИмяВременногоФайла("dll");
- КопироватьФайл(Расширение, ИВФ);
-
- Результат = OPI_SQLite.ПодключитьРасширение(ИВФ, ТочкаВхода, Соединение);
-
- Обработать(Результат, "SQLite", "ПодключитьРасширение", "Путь");
-
- Результат = OPI_SQLite.ПодключитьРасширение(Новый ДвоичныеДанные(ИВФ), ТочкаВхода, Соединение);
-
- Обработать(Результат, "SQLite", "ПодключитьРасширение", "Двоичные");
-
- Результат = OPI_SQLite.ЗакрытьСоединение(Соединение);
-
- OPI_Инструменты.УдалитьФайлВПопытке(ИВФ, "Ошибка удаления файла расширение");
-
-КонецПроцедуры
-
-Процедура SQLite_ДобавитьКолонкуТаблицы(ПараметрыФункции)
-
- База = ПараметрыФункции["SQLite_DB"];
- Таблица = "test";
- Имя = "new_col";
- ТипДанных = "TEXT";
-
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("name", Имя);
- Опции.Вставить("type", ТипДанных);
- Опции.Вставить("db", База);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sqlite", "ДобавитьКолонкуТаблицы", Опции);
-
- // END
-
- Обработать(Результат, "SQLite", "ДобавитьКолонкуТаблицы");
-
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("db", База);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sqlite", "ПолучитьИнформациюОТаблице", Опции);
-
- Обработать(Результат, "SQLite", "ДобавитьКолонкуТаблицы", "Проверка");
-
-КонецПроцедуры
-
-Процедура SQLite_УдалитьКолонкуТаблицы(ПараметрыФункции)
-
- База = ПараметрыФункции["SQLite_DB"];
- Таблица = "test";
- Имя = "new_col";
-
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("name", Имя);
- Опции.Вставить("db", База);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sqlite", "УдалитьКолонкуТаблицы", Опции);
-
- // END
-
- Обработать(Результат, "SQLite", "УдалитьКолонкуТаблицы");
-
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("db", База);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sqlite", "ПолучитьИнформациюОТаблице", Опции);
-
- Обработать(Результат, "SQLite", "УдалитьКолонкуТаблицы", "Проверка");
-
-КонецПроцедуры
-
-Процедура SQLite_ГарантироватьТаблицу(ПараметрыФункции)
-
- База = ПараметрыФункции["SQLite_DB"];
-
- Таблица = "test";
-
- СтруктураКолонок = Новый Структура;
- СтруктураКолонок.Вставить("id" , "INTEGER");
- СтруктураКолонок.Вставить("code" , "INTEGER");
- СтруктураКолонок.Вставить("name" , "TEXT");
- СтруктураКолонок.Вставить("age" , "INTEGER");
- СтруктураКолонок.Вставить("info" , "TEXT");
-
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("cols", СтруктураКолонок);
- Опции.Вставить("db", База);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sqlite", "ГарантироватьТаблицу", Опции);
-
- // END
-
- Обработать(Результат, "SQLite", "ГарантироватьТаблицу");
-
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("db", База);
-
- Проверка = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sqlite", "ПолучитьИнформациюОТаблице", Опции);
-
- Обработать(Проверка, "SQLite", "ГарантироватьТаблицу", "Проверка", СтруктураКолонок);
-
- Таблица = "test_new";
-
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("cols", СтруктураКолонок);
- Опции.Вставить("db", База);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sqlite", "ГарантироватьТаблицу", Опции);
-
- Обработать(Результат, "SQLite", "ГарантироватьТаблицу", "Новая");
-
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("db", База);
-
- Проверка = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sqlite", "ПолучитьИнформациюОТаблице", Опции);
-
- Обработать(Проверка, "SQLite", "ГарантироватьТаблицу", "Проверка 2", СтруктураКолонок);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область PostgreSQL
-
-Процедура PostgreSQL_СформироватьСтрокуПодключения(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "postgres";
-
- Опции = Новый Структура;
- Опции.Вставить("addr", Адрес);
- Опции.Вставить("db", База);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "СформироватьСтрокуПодключения", Опции);
-
- // END
-
- Результат = СтрЗаменить(Результат, Пароль, "***");
- Результат = СтрЗаменить(Результат, Адрес , "127.0.0.1");
-
- Обработать(Результат, "PostgreSQL", "СформироватьСтрокуПодключения");
-
-КонецПроцедуры
-
-Процедура PostgreSQL_ОткрытьСоединение(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "postgres";
-
- TLS = Истина;
- TLS = ПараметрыФункции["TLS"]; // SKIP
-
- Порт = 5432;
- Порт = ?(TLS, 5433, 5432); // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("addr", Адрес);
- Опции.Вставить("db", База);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
- Опции.Вставить("port", Порт);
-
- СтрокаПодключения = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "СформироватьСтрокуПодключения", Опции);
-
- Если TLS Тогда
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- НастройкиTLS = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "ПолучитьНастройкиTLS", Опции);
- Иначе
- НастройкиTLS = Неопределено;
- КонецЕсли;
-
- Результат = OPI_PostgreSQL.ОткрытьСоединение(СтрокаПодключения, НастройкиTLS);
-
- // END
-
- OPI_PostgreSQL.ЗакрытьСоединение(Результат);
-
- Обработать(Результат, "PostgreSQL", "ОткрытьСоединение");
-
-КонецПроцедуры
-
-Процедура PostgreSQL_ЗакрытьСоединение(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "postgres";
-
- TLS = Истина;
- TLS = ПараметрыФункции["TLS"]; // SKIP
-
- Порт = 5432;
- Порт = ?(TLS, 5433, 5432); // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("addr", Адрес);
- Опции.Вставить("db", База);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
- Опции.Вставить("port", Порт);
-
- СтрокаПодключения = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "СформироватьСтрокуПодключения", Опции);
-
- Если TLS Тогда
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- НастройкиTLS = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "ПолучитьНастройкиTLS", Опции);
- Иначе
- НастройкиTLS = Неопределено;
- КонецЕсли;
-
- Соединение = OPI_PostgreSQL.ОткрытьСоединение(СтрокаПодключения, НастройкиTLS);
- Результат = OPI_PostgreSQL.ЗакрытьСоединение(Соединение);
-
- // END
-
- Обработать(Результат, "PostgreSQL", "ЗакрытьСоединение");
-
-КонецПроцедуры
-
-Процедура PostgreSQL_ЭтоКоннектор(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "postgres";
-
- TLS = Истина;
- TLS = ПараметрыФункции["TLS"]; // SKIP
-
- Порт = 5432;
- Порт = ?(TLS, 5433, 5432); // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("addr", Адрес);
- Опции.Вставить("db", База);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
- Опции.Вставить("port", Порт);
-
- СтрокаПодключения = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "СформироватьСтрокуПодключения", Опции);
-
- Если TLS Тогда
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- НастройкиTLS = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "ПолучитьНастройкиTLS", Опции);
- Иначе
- НастройкиTLS = Неопределено;
- КонецЕсли;
-
- Соединение = OPI_PostgreSQL.ОткрытьСоединение(СтрокаПодключения, НастройкиTLS);
- Результат = OPI_PostgreSQL.ЭтоКоннектор(Соединение);
-
- OPI_PostgreSQL.ЗакрытьСоединение(Результат);
-
- // END
-
- Обработать(Результат, "PostgreSQL", "ЭтоКоннектор");
-
-КонецПроцедуры
-
-Процедура PostgreSQL_ВыполнитьЗапросSQL(ПараметрыФункции)
-
- Картинка = ПараметрыФункции["Picture"];
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка); // Картинка - Тип: ДвоичныеДанные
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "test_data";
-
- TLS = Истина;
- TLS = ПараметрыФункции["TLS"]; // SKIP
-
- Порт = 5432;
- Порт = ?(TLS, 5433, 5432); // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("addr", Адрес);
- Опции.Вставить("db", База);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
- Опции.Вставить("port", Порт);
-
- СтрокаПодключения = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "СформироватьСтрокуПодключения", Опции);
-
- Если TLS Тогда
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- НастройкиTLS = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "ПолучитьНастройкиTLS", Опции);
- Иначе
- НастройкиTLS = Неопределено;
- КонецЕсли;
-
- Соединение = OPI_PostgreSQL.ОткрытьСоединение(СтрокаПодключения, НастройкиTLS);
-
- OPI_PostgreSQL.УдалитьТаблицу("users" , Соединение); // SKIP
- OPI_PostgreSQL.УдалитьТаблицу("test_data" , Соединение); // SKIP
- OPI_PostgreSQL.УдалитьТаблицу("test_table", Соединение); // SKIP
-
- Обработать(Соединение, "PostgreSQL", "ВыполнитьЗапросSQL", "Соединение"); // SKIP
-
- // CREATE
-
- ТекстЗапроса = "
- |CREATE TABLE test_table (
- |id SERIAL PRIMARY KEY,
- |name NAME,
- |age INT,
- |salary REAL,
- |is_active BOOL,
- |created_at DATE,
- |data BYTEA
- |);";
-
- Опции = Новый Структура;
- Опции.Вставить("sql", ТекстЗапроса);
- Опции.Вставить("dbc", Соединение);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "ВыполнитьЗапросSQL", Опции);
-
- Обработать(Результат, "PostgreSQL", "ВыполнитьЗапросSQL", "Create"); // SKIP
-
- // INSERT с параметрами
-
- ТекстЗапроса = "
- |INSERT INTO test_table (name, age, salary, is_active, created_at, data)
- |VALUES ($1, $2, $3, $4, $5, $6);";
-
- МассивПараметров = Новый Массив;
- МассивПараметров.Добавить(Новый Структура("NAME" , "Vitaly"));
- МассивПараметров.Добавить(Новый Структура("INT" , 25));
- МассивПараметров.Добавить(Новый Структура("REAL" , 1000.12));
- МассивПараметров.Добавить(Новый Структура("BOOL" , Истина));
- МассивПараметров.Добавить(Новый Структура("DATE" , OPI_Инструменты.ПолучитьТекущуюДату()));
- МассивПараметров.Добавить(Новый Структура("BYTEA", Картинка));
-
- Опции = Новый Структура;
- Опции.Вставить("sql", ТекстЗапроса);
- Опции.Вставить("params", МассивПараметров);
- Опции.Вставить("dbc", Соединение);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "ВыполнитьЗапросSQL", Опции);
-
- Обработать(Результат, "PostgreSQL", "ВыполнитьЗапросSQL", "Insert"); // SKIP
-
- // SELECT (Результат этого запроса приведен в следующем блоке)
-
- ТекстЗапроса = "SELECT id, name, age, salary, is_active, created_at, data FROM test_table;";
-
- Опции = Новый Структура;
- Опции.Вставить("sql", ТекстЗапроса);
- Опции.Вставить("dbc", Соединение);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "ВыполнитьЗапросSQL", Опции);
-
- Обработать(Результат, "PostgreSQL", "ВыполнитьЗапросSQL", , Картинка); // SKIP
-
- // DO + Транзакция
-
- ТекстЗапроса = "DO $$
- |BEGIN
- | CREATE TABLE users (
- | id SMALLSERIAL,
- | name TEXT NOT NULL,
- | age INT NOT NULL
- | );
- | INSERT INTO users (name, age) VALUES ('Alice', 30);
- | INSERT INTO users (name, age) VALUES ('Bob', 25);
- | INSERT INTO users (name, age) VALUES ('Charlie', 35);
- |END $$ LANGUAGE plpgsql;";
-
- Опции = Новый Структура;
- Опции.Вставить("sql", ТекстЗапроса);
- Опции.Вставить("dbc", Соединение);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "ВыполнитьЗапросSQL", Опции);
-
- Обработать(Результат, "PostgreSQL", "ВыполнитьЗапросSQL", "Transaction"); // SKIP
-
- // SQL запрос из файла
-
- ФайлSQL = ПараметрыФункции["SQL"]; // Двоичные данные, URL или путь к файлу
-
- Опции = Новый Структура;
- Опции.Вставить("sql", ФайлSQL);
- Опции.Вставить("dbc", Соединение);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "ВыполнитьЗапросSQL", Опции);
-
- Обработать(Результат, "PostgreSQL", "ВыполнитьЗапросSQL", "Файл"); // SKIP
-
- Закрытие = OPI_PostgreSQL.ЗакрытьСоединение(Соединение);
-
- // END
-
- Обработать(Результат, "PostgreSQL", "ВыполнитьЗапросSQL", "Закрытие");
-
-КонецПроцедуры
-
-Процедура PostgreSQL_СоздатьБазуДанных(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "postgres";
-
- TLS = Истина;
- TLS = ПараметрыФункции["TLS"]; // SKIP
-
- Порт = 5432;
- Порт = ?(TLS, 5433, 5432); // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("addr", Адрес);
- Опции.Вставить("db", База);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
- Опции.Вставить("port", Порт);
-
- СтрокаПодключения = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "СформироватьСтрокуПодключения", Опции);
-
- Если TLS Тогда
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- НастройкиTLS = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "ПолучитьНастройкиTLS", Опции);
- Иначе
- НастройкиTLS = Неопределено;
- КонецЕсли;
-
- База = "testbase1";
-
- Удаление = OPI_PostgreSQL.УдалитьБазуДанных(База, СтрокаПодключения, НастройкиTLS); // SKIP
- OPI_ПолучениеДанныхТестов.ВывестиСлужебнуюИнформацию(Удаление, "СоздатьБазуДанных (удаление)", "PostgreSQL"); // SKIP
-
- // При использовании строки подключения инициализируется новое соединение,
- // которое будет закрыто после выполнения функции.
- // В случае выполнения нескольких операций желательно использовать одно соединение,
- // заранее созданное функцией ОткрытьСоединение()
- Опции = Новый Структура;
- Опции.Вставить("base", База);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "СоздатьБазуДанных", Опции);
-
- // END
-
- Обработать(Результат, "PostgreSQL", "СоздатьБазуДанных");
-
- Подключение = OPI_PostgreSQL.ОткрытьСоединение(СтрокаПодключения, НастройкиTLS);
-
- Обработать(Подключение, "PostgreSQL", "СоздатьБазуДанных", "Открытие");
-
- Опции = Новый Структура;
- Опции.Вставить("base", База);
- Опции.Вставить("dbc", Подключение);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "СоздатьБазуДанных", Опции);
-
- Обработать(Результат, "PostgreSQL", "СоздатьБазуДанных", "Существующая");
-
- База = "testbase2";
-
- OPI_PostgreSQL.УдалитьБазуДанных(База, СтрокаПодключения, НастройкиTLS);
- Опции = Новый Структура;
- Опции.Вставить("base", База);
- Опции.Вставить("dbc", Подключение);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "СоздатьБазуДанных", Опции);
-
- Обработать(Результат, "PostgreSQL", "СоздатьБазуДанных", "Новая");
-
- OPI_PostgreSQL.ЗакрытьСоединение(Подключение);
-
-КонецПроцедуры
-
-Процедура PostgreSQL_СоздатьТаблицу(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "testbase1";
-
- TLS = Истина;
- TLS = ПараметрыФункции["TLS"]; // SKIP
-
- Порт = 5432;
- Порт = ?(TLS, 5433, 5432); // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("addr", Адрес);
- Опции.Вставить("db", База);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
- Опции.Вставить("port", Порт);
-
- СтрокаПодключения = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "СформироватьСтрокуПодключения", Опции);
-
- Если TLS Тогда
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- НастройкиTLS = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "ПолучитьНастройкиTLS", Опции);
- Иначе
- НастройкиTLS = Неопределено;
- КонецЕсли;
-
- Таблица = "testtable";
-
- СтруктураКолонок = Новый Структура;
- СтруктураКолонок.Вставить("bool_field" , "BOOL");
- СтруктураКолонок.Вставить("oldchar_field" , """char""");
- СтруктураКолонок.Вставить("smallint_field" , "SMALLINT");
- СтруктураКолонок.Вставить("smallserial_field", "SMALLSERIAL");
- СтруктураКолонок.Вставить("int_field" , "INT");
- СтруктураКолонок.Вставить("serial_field" , "SERIAL");
- СтруктураКолонок.Вставить("oid_field" , "OID");
- СтруктураКолонок.Вставить("bigint_field" , "BIGINT");
- СтруктураКолонок.Вставить("bigserial_field" , "BIGSERIAL");
- СтруктураКолонок.Вставить("real_field" , "REAL");
- СтруктураКолонок.Вставить("dp_field" , "DOUBLE PRECISION");
- СтруктураКолонок.Вставить("text_field" , "TEXT");
- СтруктураКолонок.Вставить("varchar_field" , "VARCHAR");
- СтруктураКолонок.Вставить("charn_field" , "CHAR(3)");
- СтруктураКолонок.Вставить("char_field" , "CHAR");
- СтруктураКолонок.Вставить("name_field" , "NAME");
- СтруктураКолонок.Вставить("bytea_field" , "BYTEA");
- СтруктураКолонок.Вставить("ts_field" , "TIMESTAMP");
- СтруктураКолонок.Вставить("tswtz_field" , "TIMESTAMP WITH TIME ZONE");
- СтруктураКолонок.Вставить("ip_field" , "INET");
- СтруктураКолонок.Вставить("json_field" , "JSON");
- СтруктураКолонок.Вставить("jsonb_field" , "JSONB");
- СтруктураКолонок.Вставить("date_field" , "DATE");
- СтруктураКолонок.Вставить("time_field" , "TIME");
- СтруктураКолонок.Вставить("uuid_field" , "UUID");
-
- OPI_PostgreSQL.УдалитьТаблицу(Таблица, СтрокаПодключения, НастройкиTLS); // SKIP
-
- // При использовании строки подключения инициализируется новое соединение,
- // которое будет закрыто после выполнения функции.
- // В случае выполнения нескольких операций желательно использовать одно соединение,
- // заранее созданное функцией ОткрытьСоединение()
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("cols", СтруктураКолонок);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "СоздатьТаблицу", Опции);
-
- // END
-
- Обработать(Результат, "PostgreSQL", "СоздатьТаблицу");
-
- Таблица = "АБВ ГДЕ";
-
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("cols", СтруктураКолонок);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "СоздатьТаблицу", Опции);
-
- Обработать(Результат, "PostgreSQL", "СоздатьТаблицу", "Ошибка имени");
-
- Таблица = "somename";
- СтруктураКолонок.Вставить("wtf_field", "WTF");
-
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("cols", СтруктураКолонок);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "СоздатьТаблицу", Опции);
-
- Обработать(Результат, "PostgreSQL", "СоздатьТаблицу", "Ошибка типа");
-
-КонецПроцедуры
-
-Процедура PostgreSQL_ПолучитьИнформациюОТаблице(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "testbase1";
-
- TLS = Истина;
- TLS = ПараметрыФункции["TLS"]; // SKIP
-
- Порт = 5432;
- Порт = ?(TLS, 5433, 5432); // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("addr", Адрес);
- Опции.Вставить("db", База);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
- Опции.Вставить("port", Порт);
-
- СтрокаПодключения = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "СформироватьСтрокуПодключения", Опции);
-
- Если TLS Тогда
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- НастройкиTLS = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "ПолучитьНастройкиTLS", Опции);
- Иначе
- НастройкиTLS = Неопределено;
- КонецЕсли;
-
- Таблица = "testtable";
-
- // При использовании строки подключения инициализируется новое соединение,
- // которое будет закрыто после выполнения функции.
- // В случае выполнения нескольких операций желательно использовать одно соединение,
- // заранее созданное функцией ОткрытьСоединение()
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "ПолучитьИнформациюОТаблице", Опции);
-
- // END
-
- Обработать(Результат, "PostgreSQL", "ПолучитьИнформациюОТаблице");
-
- Таблица = "heyho";
-
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "ПолучитьИнформациюОТаблице", Опции);
-
- Обработать(Результат, "PostgreSQL", "ПолучитьИнформациюОТаблице", "Ошибка");
-
-КонецПроцедуры
-
-Процедура PostgreSQL_ДобавитьЗаписи(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "testbase1";
-
- TLS = Истина;
- TLS = ПараметрыФункции["TLS"]; // SKIP
-
- Порт = 5432;
- Порт = ?(TLS, 5433, 5432); // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("addr", Адрес);
- Опции.Вставить("db", База);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
- Опции.Вставить("port", Порт);
-
- СтрокаПодключения = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "СформироватьСтрокуПодключения", Опции);
-
- Если TLS Тогда
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- НастройкиTLS = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "ПолучитьНастройкиTLS", Опции);
- Иначе
- НастройкиTLS = Неопределено;
- КонецЕсли;
-
- Таблица = "testtable";
- МассивЗаписей = Новый Массив;
-
- Картинка = ПараметрыФункции["Picture"];
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка); // Картинка - Тип: ДвоичныеДанные
-
- СлучайнаяСтруктура = Новый Структура("key,value", "ItsKey", 10);
-
- ТекущаяДата = OPI_Инструменты.ПолучитьТекущуюДату();
- ТекущаяДатаЧП = OPI_Инструменты.ДатаRFC3339(ТекущаяДата, "+05:00");
-
- СтруктураЗаписи = Новый Структура;
- СтруктураЗаписи.Вставить("bool_field" , Новый Структура("BOOL" , Истина));
- СтруктураЗаписи.Вставить("oldchar_field" , Новый Структура("OLDCHAR" , 1)); // или "char"
- СтруктураЗаписи.Вставить("smallint_field" , Новый Структура("SMALLINT" , 5));
- СтруктураЗаписи.Вставить("smallserial_field", Новый Структура("SMALLSERIAL" , 6));
- СтруктураЗаписи.Вставить("int_field" , Новый Структура("INT" , 100));
- СтруктураЗаписи.Вставить("serial_field" , Новый Структура("SERIAL" , 100));
- СтруктураЗаписи.Вставить("oid_field" , Новый Структура("OID" , 24576));
- СтруктураЗаписи.Вставить("bigint_field" , Новый Структура("BIGINT" , 9999999));
- СтруктураЗаписи.Вставить("bigserial_field" , Новый Структура("BIGSERIAL" , 9999999));
- СтруктураЗаписи.Вставить("real_field" , Новый Структура("REAL" , 15.2));
- СтруктураЗаписи.Вставить("dp_field" , Новый Структура("DOUBLE_PRECISION" , 1.0002)); // или DOUBLE PRECISION
- СтруктураЗаписи.Вставить("text_field" , Новый Структура("TEXT" , "Some text"));
- СтруктураЗаписи.Вставить("varchar_field" , Новый Структура("VARCHAR" , "Some varchar"));
- СтруктураЗаписи.Вставить("charn_field" , Новый Структура("CHAR" , "AAA"));
- СтруктураЗаписи.Вставить("char_field" , Новый Структура("CHAR" , "A"));
- СтруктураЗаписи.Вставить("name_field" , Новый Структура("NAME" , "Vitaly"));
- СтруктураЗаписи.Вставить("bytea_field" , Новый Структура("BYTEA" , Картинка));
- СтруктураЗаписи.Вставить("ts_field" , Новый Структура("TIMESTAMP" , ТекущаяДата));
- СтруктураЗаписи.Вставить("tswtz_field" , Новый Структура("TIMESTAMP_WITH_TIME_ZONE", ТекущаяДатаЧП)); // или TIMESTAMP WITH TIME ZONE
- СтруктураЗаписи.Вставить("ip_field" , Новый Структура("INET" , "127.0.0.1"));
- СтруктураЗаписи.Вставить("json_field" , Новый Структура("JSON" , СлучайнаяСтруктура));
- СтруктураЗаписи.Вставить("jsonb_field" , Новый Структура("JSONB" , СлучайнаяСтруктура));
- СтруктураЗаписи.Вставить("date_field" , Новый Структура("DATE" , ТекущаяДата));
- СтруктураЗаписи.Вставить("time_field" , Новый Структура("TIME" , ТекущаяДата));
- СтруктураЗаписи.Вставить("uuid_field" , Новый Структура("UUID" , Новый УникальныйИдентификатор));
-
- МассивЗаписей.Добавить(СтруктураЗаписи);
-
- // При использовании строки подключения инициализируется новое соединение,
- // которое будет закрыто после выполнения функции.
- // В случае выполнения нескольких операций желательно использовать одно соединение,
- // заранее созданное функцией ОткрытьСоединение()
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("rows", МассивЗаписей);
- Опции.Вставить("trn", Истина);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "ДобавитьЗаписи", Опции);
-
- // END
-
- Обработать(Результат, "PostgreSQL", "ДобавитьЗаписи");
-
-КонецПроцедуры
-
-Процедура PostgreSQL_ПолучитьЗаписи(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "testbase1";
-
- TLS = Истина;
- TLS = ПараметрыФункции["TLS"]; // SKIP
-
- Порт = 5432;
- Порт = ?(TLS, 5433, 5432); // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("addr", Адрес);
- Опции.Вставить("db", База);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
- Опции.Вставить("port", Порт);
-
- СтрокаПодключения = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "СформироватьСтрокуПодключения", Опции);
-
- Если TLS Тогда
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- НастройкиTLS = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "ПолучитьНастройкиTLS", Опции);
- Иначе
- НастройкиTLS = Неопределено;
- КонецЕсли;
-
- // Все записи без отборов
-
- Таблица = "testtable";
-
- // При использовании строки подключения инициализируется новое соединение,
- // которое будет закрыто после выполнения функции.
- // В случае выполнения нескольких операций желательно использовать одно соединение,
- // заранее созданное функцией ОткрытьСоединение()
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "ПолучитьЗаписи", Опции);
-
- Обработать(Результат, "PostgreSQL", "ПолучитьЗаписи"); // SKIP
-
- // Отборы, выбранные поля, количество и сортировка
-
- Опции = Новый Структура;
- Опции.Вставить("addr", Адрес);
- Опции.Вставить("db", "test_data");
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
- Опции.Вставить("port", Порт);
-
- СтрокаПодключения = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "СформироватьСтрокуПодключения", Опции);
-
- Таблица = "test_data";
-
- Поля = Новый Массив;
- Поля.Добавить("first_name");
- Поля.Добавить("last_name");
- Поля.Добавить("email");
-
- Фильтры = Новый Массив;
-
- СтруктураФильтра1 = Новый Структура;
-
- СтруктураФильтра1.Вставить("field", "gender");
- СтруктураФильтра1.Вставить("type" , "=");
- СтруктураФильтра1.Вставить("value", "Male");
- СтруктураФильтра1.Вставить("union", "AND");
- СтруктураФильтра1.Вставить("raw" , Ложь);
-
- СтруктураФильтра2 = Новый Структура;
-
- СтруктураФильтра2.Вставить("field", "id");
- СтруктураФильтра2.Вставить("type" , "BETWEEN");
- СтруктураФильтра2.Вставить("value", "20 AND 50");
- СтруктураФильтра2.Вставить("raw" , Истина);
-
- Фильтры.Добавить(СтруктураФильтра1);
- Фильтры.Добавить(СтруктураФильтра2);
-
- Сортировка = Новый Структура("ip_address", "DESC");
- Количество = 5;
-
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("fields", Поля);
- Опции.Вставить("filter", Фильтры);
- Опции.Вставить("order", Сортировка);
- Опции.Вставить("limit", Количество);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "ПолучитьЗаписи", Опции);
-
- // END
-
- Обработать(Результат, "PostgreSQL", "ПолучитьЗаписи", "Отборы");
-
-КонецПроцедуры
-
-Процедура PostgreSQL_ОбновитьЗаписи(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "test_data";
-
- TLS = Истина;
- TLS = ПараметрыФункции["TLS"]; // SKIP
-
- Порт = 5432;
- Порт = ?(TLS, 5433, 5432); // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("addr", Адрес);
- Опции.Вставить("db", База);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
- Опции.Вставить("port", Порт);
-
- СтрокаПодключения = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "СформироватьСтрокуПодключения", Опции);
-
- Если TLS Тогда
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- НастройкиTLS = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "ПолучитьНастройкиTLS", Опции);
- Иначе
- НастройкиTLS = Неопределено;
- КонецЕсли;
-
- Таблица = "test_data";
-
- СтруктураПолей = Новый Структура;
- СтруктураПолей.Вставить("ip_address", Новый Структура("VARCHAR", "127.0.0.1"));
-
- Фильтры = Новый Массив;
-
- СтруктураФильтра = Новый Структура;
-
- СтруктураФильтра.Вставить("field", "gender");
- СтруктураФильтра.Вставить("type" , "=");
- СтруктураФильтра.Вставить("value", Новый Структура("VARCHAR", "Male"));
- СтруктураФильтра.Вставить("raw" , Ложь);
-
- Фильтры.Добавить(СтруктураФильтра);
-
- Количество = OPI_PostgreSQl.ПолучитьЗаписи(Таблица, , Фильтры, , , СтрокаПодключения); // SKIP
- Обработать(Количество, "PostgreSQL", "ОбновитьЗаписи", "Количество"); // SKIP
- Количество = Количество["data"].Количество(); // SKIP
-
- // При использовании строки подключения инициализируется новое соединение,
- // которое будет закрыто после выполнения функции.
- // В случае выполнения нескольких операций желательно использовать одно соединение,
- // заранее созданное функцией ОткрытьСоединение()
- Результат = OPI_PostgreSQl.ОбновитьЗаписи(Таблица
- , СтруктураПолей
- , СтруктураФильтра
- , СтрокаПодключения
- , НастройкиTLS);
-
- // END
-
- Обработать(Результат, "PostgreSQL", "ОбновитьЗаписи");
-
- Проверка = OPI_PostgreSQl.ПолучитьЗаписи(Таблица, "['ip_address']", Фильтры, , , СтрокаПодключения);
-
- Обработать(Проверка, "PostgreSQL", "ОбновитьЗаписи", "Проверка", Количество, СтруктураПолей);
-
-КонецПроцедуры
-
-Процедура PostgreSQL_УдалитьЗаписи(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "test_data";
-
- TLS = Истина;
- TLS = ПараметрыФункции["TLS"]; // SKIP
-
- Порт = 5432;
- Порт = ?(TLS, 5433, 5432); // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("addr", Адрес);
- Опции.Вставить("db", База);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
- Опции.Вставить("port", Порт);
-
- СтрокаПодключения = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "СформироватьСтрокуПодключения", Опции);
-
- Если TLS Тогда
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- НастройкиTLS = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "ПолучитьНастройкиTLS", Опции);
- Иначе
- НастройкиTLS = Неопределено;
- КонецЕсли;
-
- Таблица = "test_data";
-
- Фильтры = Новый Массив;
-
- СтруктураФильтра = Новый Структура;
-
- СтруктураФильтра.Вставить("field", "gender");
- СтруктураФильтра.Вставить("type" , "=");
- СтруктураФильтра.Вставить("value", Новый Структура("VARCHAR", "Male"));
- СтруктураФильтра.Вставить("raw" , Ложь);
- СтруктураФильтра.Вставить("union", "AND");
-
- Фильтры.Добавить(СтруктураФильтра);
-
- СтруктураФильтра = Новый Структура;
-
- СтруктураФильтра.Вставить("field", "ip_address");
- СтруктураФильтра.Вставить("type" , "=");
- СтруктураФильтра.Вставить("value", Новый Структура("VARCHAR", "127.0.0.1"));
- СтруктураФильтра.Вставить("raw" , Ложь);
-
- Получение = OPI_PostgreSQL.ПолучитьЗаписи(Таблица, , Фильтры, , , СтрокаПодключения, НастройкиTLS); // SKIP
-
- // При использовании строки подключения инициализируется новое соединение,
- // которое будет закрыто после выполнения функции.
- // В случае выполнения нескольких операций желательно использовать одно соединение,
- // заранее созданное функцией ОткрытьСоединение()
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("filter", Фильтры);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "УдалитьЗаписи", Опции);
-
- // END
-
- Обработать(Получение, "PostgreSQL", "УдалитьЗаписи", "Получение");
-
- Количество = Получение["data"].Количество();
- Остаток = 100 - Количество;
-
- Обработать(Результат, "PostgreSQL", "УдалитьЗаписи");
-
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "ПолучитьЗаписи", Опции);
-
- Обработать(Результат, "PostgreSQL", "УдалитьЗаписи", "Проверка", Остаток);
-
-КонецПроцедуры
-
-Процедура PostgreSQL_УдалитьТаблицу(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "testbase1";
-
- TLS = Истина;
- TLS = ПараметрыФункции["TLS"]; // SKIP
-
- Порт = 5432;
- Порт = ?(TLS, 5433, 5432); // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("addr", Адрес);
- Опции.Вставить("db", База);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
- Опции.Вставить("port", Порт);
-
- СтрокаПодключения = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "СформироватьСтрокуПодключения", Опции);
-
- Если TLS Тогда
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- НастройкиTLS = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "ПолучитьНастройкиTLS", Опции);
- Иначе
- НастройкиTLS = Неопределено;
- КонецЕсли;
-
- Таблица = "testtable";
-
- // При использовании строки подключения инициализируется новое соединение,
- // которое будет закрыто после выполнения функции.
- // В случае выполнения нескольких операций желательно использовать одно соединение,
- // заранее созданное функцией ОткрытьСоединение()
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "УдалитьТаблицу", Опции);
-
- // END
-
- Обработать(Результат, "PostgreSQL", "УдалитьТаблицу");
-
- База = "test_data";
- Таблица = "test_data";
-
- Опции = Новый Структура;
- Опции.Вставить("addr", Адрес);
- Опции.Вставить("db", База);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
- Опции.Вставить("port", Порт);
-
- СтрокаПодключения = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "СформироватьСтрокуПодключения", Опции);
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "УдалитьТаблицу", Опции);
-
- Обработать(Результат, "PostgreSQL", "УдалитьТаблицу", "Тест");
-
-КонецПроцедуры
-
-Процедура PostgreSQL_УдалитьБазуДанных(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "postgres";
-
- TLS = Истина;
- TLS = ПараметрыФункции["TLS"]; // SKIP
-
- Порт = 5432;
- Порт = ?(TLS, 5433, 5432); // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("addr", Адрес);
- Опции.Вставить("db", База);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
- Опции.Вставить("port", Порт);
-
- СтрокаПодключения = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "СформироватьСтрокуПодключения", Опции);
-
- Если TLS Тогда
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- НастройкиTLS = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "ПолучитьНастройкиTLS", Опции);
- Иначе
- НастройкиTLS = Неопределено;
- КонецЕсли;
-
- База = "testbase1";
-
- // При использовании строки подключения инициализируется новое соединение,
- // которое будет закрыто после выполнения функции.
- // В случае выполнения нескольких операций желательно использовать одно соединение,
- // заранее созданное функцией ОткрытьСоединение()
- Опции = Новый Структура;
- Опции.Вставить("base", База);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "УдалитьБазуДанных", Опции);
-
- // END
-
- Обработать(Результат, "PostgreSQL", "УдалитьБазуДанных");
-
- База = "testbase2";
-
- Подключение = OPI_PostgreSQL.ОткрытьСоединение(СтрокаПодключения, НастройкиTLS);
-
- Обработать(Подключение, "PostgreSQL", "УдалитьБазуДанных", "Открытие");
-
- Опции = Новый Структура;
- Опции.Вставить("base", База);
- Опции.Вставить("dbc", Подключение);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "ОтключитьВсеСоединенияБазыДанных", Опции);
-
- Обработать(Результат, "PostgreSQL", "УдалитьБазуДанных", "Отключение");
-
- Опции = Новый Структура;
- Опции.Вставить("base", База);
- Опции.Вставить("dbc", Подключение);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "УдалитьБазуДанных", Опции);
-
- Обработать(Результат, "PostgreSQL", "УдалитьБазуДанных", "Удаление");
-
- Опции = Новый Структура;
- Опции.Вставить("base", База);
- Опции.Вставить("dbc", Подключение);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "УдалитьБазуДанных", Опции);
-
- Обработать(Результат, "PostgreSQL", "УдалитьБазуДанных", "Ошибка");
-
- Закрытие = OPI_PostgreSQL.ЗакрытьСоединение(Подключение);
-
- Обработать(Закрытие, "PostgreSQL", "УдалитьБазуДанных", "Закрытие");
-
- Опции = Новый Структура;
- Опции.Вставить("base", База);
- Опции.Вставить("dbc", Подключение);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "УдалитьБазуДанных", Опции);
-
- Обработать(Результат, "PostgreSQL", "УдалитьБазуДанных", "Ошибка подключения");
-
-КонецПроцедуры
-
-Процедура PostgreSQL_ОчиститьТаблицу(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "testbase1";
-
- TLS = Истина;
- TLS = ПараметрыФункции["TLS"]; // SKIP
-
- Порт = 5432;
- Порт = ?(TLS, 5433, 5432); // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("addr", Адрес);
- Опции.Вставить("db", База);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
- Опции.Вставить("port", Порт);
-
- СтрокаПодключения = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "СформироватьСтрокуПодключения", Опции);
-
- Если TLS Тогда
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- НастройкиTLS = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "ПолучитьНастройкиTLS", Опции);
- Иначе
- НастройкиTLS = Неопределено;
- КонецЕсли;
-
- Таблица = "testtable";
-
- // При использовании строки подключения инициализируется новое соединение,
- // которое будет закрыто после выполнения функции.
- // В случае выполнения нескольких операций желательно использовать одно соединение,
- // заранее созданное функцией ОткрытьСоединение()
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "ОчиститьТаблицу", Опции);
-
- // END
-
- Обработать(Результат, "PostgreSQL", "ОчиститьТаблицу");
-
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "ПолучитьЗаписи", Опции);
-
- Обработать(Результат, "PostgreSQL", "ОчиститьТаблицу", "Проверка");
-
-КонецПроцедуры
-
-Процедура PostgreSQL_ОтключитьВсеСоединенияБазыДанных(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "testbase1";
-
- TLS = Истина;
- TLS = ПараметрыФункции["TLS"]; // SKIP
-
- Порт = 5432;
- Порт = ?(TLS, 5433, 5432); // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("addr", Адрес);
- Опции.Вставить("db", База);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
- Опции.Вставить("port", Порт);
-
- СтрокаПодключения = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "СформироватьСтрокуПодключения", Опции);
-
- Если TLS Тогда
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- НастройкиTLS = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "ПолучитьНастройкиTLS", Опции);
- Иначе
- НастройкиTLS = Неопределено;
- КонецЕсли;
-
- // При использовании строки подключения инициализируется новое соединение,
- // которое будет закрыто после выполнения функции.
- // В случае выполнения нескольких операций желательно использовать одно соединение,
- // заранее созданное функцией ОткрытьСоединение()
- Опции = Новый Структура;
- Опции.Вставить("base", База);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "ОтключитьВсеСоединенияБазыДанных", Опции);
-
- // END
-
- Обработать(Результат, "PostgreSQL", "ОтключитьВсеСоединенияБазыДанных");
-
-КонецПроцедуры
-
-Процедура PostgreSQL_ПолучитьСтруктуруФильтраЗаписей(ПараметрыФункции)
-
- Опции = Новый Структура;
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "ПолучитьСтруктуруФильтраЗаписей", Опции);
-
- // END
-
- Обработать(Результат, "PostgreSQL", "ПолучитьСтруктуруФильтраЗаписей");
-
- Опции = Новый Структура;
- Опции.Вставить("empty", Истина);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "ПолучитьСтруктуруФильтраЗаписей", Опции);
-
- Обработать(Результат, "PostgreSQL", "ПолучитьСтруктуруФильтраЗаписей", "Пустая");
-
-КонецПроцедуры
-
-Процедура PostgreSQL_ПолучитьНастройкиTLS(ПараметрыФункции)
-
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "ПолучитьНастройкиTLS", Опции);
-
- // END
-
- Обработать(Результат, "PostgreSQL", "ПолучитьНастройкиTLS");
-
-КонецПроцедуры
-
-Процедура PostgreSQL_ДобавитьКолонкуТаблицы(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "testbase1";
-
- TLS = Истина;
- TLS = ПараметрыФункции["TLS"]; // SKIP
-
- Порт = 5432;
- Порт = ?(TLS, 5433, 5432); // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("addr", Адрес);
- Опции.Вставить("db", База);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
- Опции.Вставить("port", Порт);
-
- СтрокаПодключения = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "СформироватьСтрокуПодключения", Опции);
-
- Если TLS Тогда
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- НастройкиTLS = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "ПолучитьНастройкиTLS", Опции);
- Иначе
- НастройкиTLS = Неопределено;
- КонецЕсли;
-
- Таблица = "testtable";
- Имя = "new_field";
- ТипДанных = "TEXT";
-
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("name", Имя);
- Опции.Вставить("type", ТипДанных);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "ДобавитьКолонкуТаблицы", Опции);
-
- // END
-
- Обработать(Результат, "PostgreSQL", "ДобавитьКолонкуТаблицы");
-
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "ПолучитьИнформациюОТаблице", Опции);
-
- Обработать(Результат, "PostgreSQL", "ДобавитьКолонкуТаблицы", "Проверка");
-
-КонецПроцедуры
-
-Процедура PostgreSQL_УдалитьКолонкуТаблицы(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "testbase1";
-
- TLS = Истина;
- TLS = ПараметрыФункции["TLS"]; // SKIP
-
- Порт = 5432;
- Порт = ?(TLS, 5433, 5432); // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("addr", Адрес);
- Опции.Вставить("db", База);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
- Опции.Вставить("port", Порт);
-
- СтрокаПодключения = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "СформироватьСтрокуПодключения", Опции);
-
- Если TLS Тогда
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- НастройкиTLS = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "ПолучитьНастройкиTLS", Опции);
- Иначе
- НастройкиTLS = Неопределено;
- КонецЕсли;
-
- Таблица = "testtable";
- Имя = "new_field";
-
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("name", Имя);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "УдалитьКолонкуТаблицы", Опции);
-
- // END
-
- Обработать(Результат, "PostgreSQL", "УдалитьКолонкуТаблицы");
-
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "ПолучитьИнформациюОТаблице", Опции);
-
- Обработать(Результат, "PostgreSQL", "УдалитьКолонкуТаблицы", "Проверка");
-
-КонецПроцедуры
-
-Процедура PostgreSQL_ГарантироватьТаблицу(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "testbase1";
-
- TLS = Истина;
- TLS = ПараметрыФункции["TLS"]; // SKIP
-
- Порт = 5432;
- Порт = ?(TLS, 5433, 5432); // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("addr", Адрес);
- Опции.Вставить("db", База);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
- Опции.Вставить("port", Порт);
-
- СтрокаПодключения = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "СформироватьСтрокуПодключения", Опции);
-
- Если TLS Тогда
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- НастройкиTLS = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "ПолучитьНастройкиTLS", Опции);
- Иначе
- НастройкиTLS = Неопределено;
- КонецЕсли;
-
- Таблица = "testtable";
-
- СтруктураКолонок = Новый Структура;
- СтруктураКолонок.Вставить("smallint_field" , "SMALLINT");
- СтруктураКолонок.Вставить("uuid_field" , "uuid");
- СтруктураКолонок.Вставить("bigint_field" , "BIGINT");
- СтруктураКолонок.Вставить("custom_field" , "TEXT");
-
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("cols", СтруктураКолонок);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "ГарантироватьТаблицу", Опции);
-
- // END
-
- Обработать(Результат, "PostgreSQL", "ГарантироватьТаблицу");
-
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Проверка = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "ПолучитьИнформациюОТаблице", Опции);
-
- Обработать(Проверка, "PostgreSQL", "ГарантироватьТаблицу", "Проверка", СтруктураКолонок);
-
- Таблица = "test_new";
-
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("cols", СтруктураКолонок);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "ГарантироватьТаблицу", Опции);
-
- Обработать(Результат, "PostgreSQL", "ГарантироватьТаблицу", "Новая");
-
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Проверка = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "ПолучитьИнформациюОТаблице", Опции);
-
- Обработать(Проверка, "PostgreSQL", "ГарантироватьТаблицу", "Проверка", СтруктураКолонок);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область MySQL
-
-Процедура MySQL_СформироватьСтрокуПодключения(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "";
-
- Опции = Новый Структура;
- Опции.Вставить("addr", Адрес);
- Опции.Вставить("db", База);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "СформироватьСтрокуПодключения", Опции);
-
- // END
-
- Результат = СтрЗаменить(Результат, Пароль, "***");
- Результат = СтрЗаменить(Результат, Адрес , "127.0.0.1");
-
- Обработать(Результат, "MySQL", "СформироватьСтрокуПодключения");
-
-КонецПроцедуры
-
-Процедура MySQL_ОткрытьСоединение(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "";
-
- TLS = Истина;
- TLS = ПараметрыФункции["TLS"]; // SKIP
-
- Порт = 3306;
- Порт = ?(TLS, 3307, 3306); // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("addr", Адрес);
- Опции.Вставить("db", База);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
- Опции.Вставить("port", Порт);
-
- СтрокаПодключения = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "СформироватьСтрокуПодключения", Опции);
-
- Если TLS Тогда
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- НастройкиTLS = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "ПолучитьНастройкиTLS", Опции);
- Иначе
- НастройкиTLS = Неопределено;
- КонецЕсли;
-
- Результат = OPI_MySQL.ОткрытьСоединение(СтрокаПодключения, НастройкиTLS);
-
- // END
-
- OPI_MySQL.ЗакрытьСоединение(Результат);
- Обработать(Результат, "MySQL", "ОткрытьСоединение");
-
-КонецПроцедуры
-
-Процедура MySQL_ЗакрытьСоединение(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "";
-
- TLS = Истина;
- TLS = ПараметрыФункции["TLS"]; // SKIP
-
- Порт = 3306;
- Порт = ?(TLS, 3307, 3306); // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("addr", Адрес);
- Опции.Вставить("db", База);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
- Опции.Вставить("port", Порт);
-
- СтрокаПодключения = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "СформироватьСтрокуПодключения", Опции);
-
- Если TLS Тогда
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- НастройкиTLS = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "ПолучитьНастройкиTLS", Опции);
- Иначе
- НастройкиTLS = Неопределено;
- КонецЕсли;
-
- Соединение = OPI_MySQL.ОткрытьСоединение(СтрокаПодключения, НастройкиTLS);
- Результат = OPI_MySQL.ЗакрытьСоединение(Соединение);
-
- // END
-
- Обработать(Результат, "MySQL", "ЗакрытьСоединение");
-
-КонецПроцедуры
-
-Процедура MySQL_ЭтоКоннектор(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "";
-
- TLS = Истина;
- TLS = ПараметрыФункции["TLS"]; // SKIP
-
- Порт = 3306;
- Порт = ?(TLS, 3307, 3306); // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("addr", Адрес);
- Опции.Вставить("db", База);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
- Опции.Вставить("port", Порт);
-
- СтрокаПодключения = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "СформироватьСтрокуПодключения", Опции);
-
- Если TLS Тогда
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- НастройкиTLS = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "ПолучитьНастройкиTLS", Опции);
- Иначе
- НастройкиTLS = Неопределено;
- КонецЕсли;
-
- Соединение = OPI_MySQL.ОткрытьСоединение(СтрокаПодключения, НастройкиTLS);
- Результат = OPI_MySQL.ЭтоКоннектор(Соединение);
-
- OPI_MySQL.ЗакрытьСоединение(Результат);
-
- // END
-
- Обработать(Результат, "MySQL", "ЭтоКоннектор");
-
-КонецПроцедуры
-
-Процедура MySQL_ВыполнитьЗапросSQL(ПараметрыФункции)
-
- Картинка = ПараметрыФункции["Picture"];
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка); // Картинка - Тип: ДвоичныеДанные
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "test_data";
-
- TLS = Истина;
- TLS = ПараметрыФункции["TLS"]; // SKIP
-
- Порт = 3306;
- Порт = ?(TLS, 3307, 3306); // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("addr", Адрес);
- Опции.Вставить("db", База);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
- Опции.Вставить("port", Порт);
-
- СтрокаПодключения = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "СформироватьСтрокуПодключения", Опции);
-
- Если TLS Тогда
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- НастройкиTLS = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "ПолучитьНастройкиTLS", Опции);
- Иначе
- НастройкиTLS = Неопределено;
- КонецЕсли;
-
- Соединение = OPI_MySQL.ОткрытьСоединение(СтрокаПодключения, НастройкиTLS);
-
- OPI_MySQL.УдалитьТаблицу("users" , Соединение); // SKIP
- OPI_MySQL.УдалитьТаблицу("test_data" , Соединение); // SKIP
- OPI_MySQL.УдалитьТаблицу("test_table", Соединение); // SKIP
-
- Обработать(Соединение, "MySQL", "ВыполнитьЗапросSQL", "Соединение"); // SKIP
-
- // CREATE
-
- ТекстЗапроса = "
- |CREATE TABLE test_table (
- |id INT AUTO_INCREMENT PRIMARY KEY,
- |name VARCHAR(255),
- |age INT,
- |salary DOUBLE,
- |amount FLOAT,
- |type TINYINT UNSIGNED,
- |date DATE,
- |time TIME,
- |data MEDIUMBLOB
- |);";
-
- Опции = Новый Структура;
- Опции.Вставить("sql", ТекстЗапроса);
- Опции.Вставить("dbc", Соединение);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "ВыполнитьЗапросSQL", Опции);
-
- Обработать(Результат, "MySQL", "ВыполнитьЗапросSQL", "Create"); // SKIP
-
- // INSERT с параметрами
-
- ТекстЗапроса = "
- |INSERT INTO test_table (name, age, salary, amount, type, date, time, data)
- |VALUES (?, ?, ?, ?, ?, ?, ?, ?);";
-
- МассивПараметров = Новый Массив;
- МассивПараметров.Добавить(Новый Структура("TEXT" , "Vitaly"));
- МассивПараметров.Добавить(Новый Структура("INT" , 25));
- МассивПараметров.Добавить(Новый Структура("DOUBLE", 1000.12));
- МассивПараметров.Добавить(Новый Структура("FLOAT" , 1000.12));
- МассивПараметров.Добавить(Новый Структура("UINT" , 1));
- МассивПараметров.Добавить(Новый Структура("DATE" , OPI_Инструменты.ПолучитьТекущуюДату()));
- МассивПараметров.Добавить(Новый Структура("TIME" , OPI_Инструменты.ПолучитьТекущуюДату()));
- МассивПараметров.Добавить(Новый Структура("BYTES" , Картинка));
-
- Опции = Новый Структура;
- Опции.Вставить("sql", ТекстЗапроса);
- Опции.Вставить("params", МассивПараметров);
- Опции.Вставить("dbc", Соединение);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "ВыполнитьЗапросSQL", Опции);
-
- Обработать(Результат, "MySQL", "ВыполнитьЗапросSQL", "Insert"); // SKIP
-
- // SELECT (Результат этого запроса приведен в следующем блоке)
-
- ТекстЗапроса = "SELECT name, age, salary, amount, type, date, time, data FROM test_table;";
-
- Опции = Новый Структура;
- Опции.Вставить("sql", ТекстЗапроса);
- Опции.Вставить("dbc", Соединение);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "ВыполнитьЗапросSQL", Опции);
-
- Обработать(Результат, "MySQL", "ВыполнитьЗапросSQL", , Картинка); // SKIP
-
- Результат = OPI_MySQL.ВыполнитьЗапросSQL("create table test_data (id INT,first_name VARCHAR(50),last_name VARCHAR(50),email VARCHAR(50),gender VARCHAR(50),ip_address VARCHAR(20));", , , Соединение); // SKIP
- Обработать(Результат, "MySQL", "ВыполнитьЗапросSQL", "Test data"); // SKIP
-
- // SQL запрос из файла
-
- ФайлSQL = ПараметрыФункции["SQL2"]; // Двоичные данные, URL или путь к файлу
-
- Опции = Новый Структура;
- Опции.Вставить("sql", ФайлSQL);
- Опции.Вставить("dbc", Соединение);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "ВыполнитьЗапросSQL", Опции);
-
- Обработать(Результат, "MySQL", "ВыполнитьЗапросSQL", "Файл"); // SKIP
-
- Закрытие = OPI_MySQL.ЗакрытьСоединение(Соединение);
-
- // END
-
- Обработать(Закрытие, "MySQL", "ВыполнитьЗапросSQL", "Закрытие"); // SKIP
-
-КонецПроцедуры
-
-Процедура MySQL_СоздатьБазуДанных(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "";
-
- TLS = Истина;
- TLS = ПараметрыФункции["TLS"]; // SKIP
-
- Порт = 3306;
- Порт = ?(TLS, 3307, 3306); // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("addr", Адрес);
- Опции.Вставить("db", База);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
- Опции.Вставить("port", Порт);
-
- СтрокаПодключения = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "СформироватьСтрокуПодключения", Опции);
-
- Если TLS Тогда
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- НастройкиTLS = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "ПолучитьНастройкиTLS", Опции);
- Иначе
- НастройкиTLS = Неопределено;
- КонецЕсли;
-
- База = "testbase1";
-
- OPI_MySQL.УдалитьБазуДанных(База, СтрокаПодключения, НастройкиTLS); // SKIP
-
- // При использовании строки подключения инициализируется новое соединение,
- // которое будет закрыто после выполнения функции.
- // В случае выполнения нескольких операций желательно использовать одно соединение,
- // заранее созданное функцией ОткрытьСоединение()
- Опции = Новый Структура;
- Опции.Вставить("base", База);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "СоздатьБазуДанных", Опции);
-
- // END
-
- Обработать(Результат, "MySQL", "СоздатьБазуДанных");
-
- База = "testbase2";
- OPI_MySQL.УдалитьБазуДанных(База, СтрокаПодключения, НастройкиTLS);
-
- Подключение = OPI_MySQL.ОткрытьСоединение(СтрокаПодключения, НастройкиTLS);
-
- Обработать(Подключение, "MySQL", "СоздатьБазуДанных", "Открытие");
-
- Опции = Новый Структура;
- Опции.Вставить("base", База);
- Опции.Вставить("dbc", Подключение);
- Опции.Вставить("tls", НастройкиTLS);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "СоздатьБазуДанных", Опции);
-
- Обработать(Результат, "MySQL", "СоздатьБазуДанных", "Создание");
-
- Опции = Новый Структура;
- Опции.Вставить("base", База);
- Опции.Вставить("dbc", Подключение);
- Опции.Вставить("tls", НастройкиTLS);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "СоздатьБазуДанных", Опции);
-
- Обработать(Результат, "MySQL", "СоздатьБазуДанных", "Существующая");
-
- OPI_MySQL.ЗакрытьСоединение(Подключение);
-
-КонецПроцедуры
-
-Процедура MySQL_СоздатьТаблицу(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "testbase1";
-
- TLS = Истина;
- TLS = ПараметрыФункции["TLS"]; // SKIP
-
- Порт = 3306;
- Порт = ?(TLS, 3307, 3306); // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("addr", Адрес);
- Опции.Вставить("db", База);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
- Опции.Вставить("port", Порт);
-
- СтрокаПодключения = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "СформироватьСтрокуПодключения", Опции);
-
- Если TLS Тогда
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- НастройкиTLS = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "ПолучитьНастройкиTLS", Опции);
- Иначе
- НастройкиTLS = Неопределено;
- КонецЕсли;
-
- Таблица = "testtable";
-
- СтруктураКолонок = Новый Структура;
- СтруктураКолонок.Вставить("char_field" , "CHAR(5)");
- СтруктураКолонок.Вставить("varchar_field" , "VARCHAR(255)");
- СтруктураКолонок.Вставить("tinytext_field" , "TINYTEXT");
- СтруктураКолонок.Вставить("text_field" , "TEXT");
- СтруктураКолонок.Вставить("mediumtext_field", "MEDIUMTEXT");
- СтруктураКолонок.Вставить("longtext_field" , "LONGTEXT");
- СтруктураКолонок.Вставить("tinyint_field" , "TINYINT");
- СтруктураКолонок.Вставить("smallint_field" , "SMALLINT");
- СтруктураКолонок.Вставить("mediumint_field" , "MEDIUMINT");
- СтруктураКолонок.Вставить("int_field" , "INT");
- СтруктураКолонок.Вставить("uint_field" , "INT UNSIGNED");
- СтруктураКолонок.Вставить("bigint_field" , "BIGINT");
- СтруктураКолонок.Вставить("float_field" , "FLOAT");
- СтруктураКолонок.Вставить("double_field" , "DOUBLE");
- СтруктураКолонок.Вставить("date_field" , "DATE");
- СтруктураКолонок.Вставить("time_field" , "TIME");
- СтруктураКолонок.Вставить("datetime_field" , "DATETIME");
- СтруктураКолонок.Вставить("timestamp_field" , "TIMESTAMP");
- СтруктураКолонок.Вставить("mediumblob_field", "MEDIUMBLOB");
- СтруктураКолонок.Вставить("set_field" , "SET('one','two','three')");
-
- // При использовании строки подключения инициализируется новое соединение,
- // которое будет закрыто после выполнения функции.
- // В случае выполнения нескольких операций желательно использовать одно соединение,
- // заранее созданное функцией ОткрытьСоединение()
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("cols", СтруктураКолонок);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "СоздатьТаблицу", Опции);
-
- // END
-
- Обработать(Результат, "MySQL", "СоздатьТаблицу");
-
- Таблица = "АБВ ГДЕ";
-
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("cols", СтруктураКолонок);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "СоздатьТаблицу", Опции);
-
- Обработать(Результат, "MySQL", "СоздатьТаблицу", "Ошибка имени");
-
- Таблица = "somename";
- СтруктураКолонок.Вставить("wtf_field", "WTF");
-
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("cols", СтруктураКолонок);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "СоздатьТаблицу", Опции);
-
- Обработать(Результат, "MySQL", "СоздатьТаблицу", "Ошибка типа");
-
-КонецПроцедуры
-
-Процедура MySQL_ДобавитьЗаписи(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "testbase1";
-
- TLS = Истина;
- TLS = ПараметрыФункции["TLS"]; // SKIP
-
- Порт = 3306;
- Порт = ?(TLS, 3307, 3306); // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("addr", Адрес);
- Опции.Вставить("db", База);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
- Опции.Вставить("port", Порт);
-
- СтрокаПодключения = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "СформироватьСтрокуПодключения", Опции);
-
- Если TLS Тогда
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- НастройкиTLS = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "ПолучитьНастройкиTLS", Опции);
- Иначе
- НастройкиTLS = Неопределено;
- КонецЕсли;
-
- Таблица = "testtable";
- МассивЗаписей = Новый Массив;
-
- Картинка = ПараметрыФункции["Picture"];
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка); // Картинка - Тип: ДвоичныеДанные
-
- ТекущаяДата = OPI_Инструменты.ПолучитьТекущуюДату();
-
- СтруктураЗаписи = Новый Структура;
- СтруктураЗаписи.Вставить("char_field" , Новый Структура("TEXT" , "AAAAA"));
- СтруктураЗаписи.Вставить("varchar_field" , Новый Структура("TEXT" , "Some varchar"));
- СтруктураЗаписи.Вставить("tinytext_field" , Новый Структура("TEXT" , "Some tiny text"));
- СтруктураЗаписи.Вставить("text_field" , Новый Структура("TEXT" , "Some text"));
- СтруктураЗаписи.Вставить("mediumtext_field", Новый Структура("TEXT" , "Some medium text"));
- СтруктураЗаписи.Вставить("longtext_field" , Новый Структура("TEXT" , "Some looooooong text"));
- СтруктураЗаписи.Вставить("tinyint_field" , Новый Структура("INT" , 127));
- СтруктураЗаписи.Вставить("smallint_field" , Новый Структура("INT" , -32767));
- СтруктураЗаписи.Вставить("mediumint_field" , Новый Структура("INT" , 8388607));
- СтруктураЗаписи.Вставить("int_field" , Новый Структура("INT" , -2147483647));
- СтруктураЗаписи.Вставить("uint_field" , Новый Структура("UINT" , 4294967295));
- СтруктураЗаписи.Вставить("bigint_field" , Новый Структура("INT" , 9223372036854775807));
- СтруктураЗаписи.Вставить("float_field" , Новый Структура("FLOAT" , 100.50));
- СтруктураЗаписи.Вставить("double_field" , Новый Структура("FLOAT" , 100.512123));
- СтруктураЗаписи.Вставить("date_field" , Новый Структура("DATE" , ТекущаяДата));
- СтруктураЗаписи.Вставить("time_field" , Новый Структура("TIME" , ТекущаяДата));
- СтруктураЗаписи.Вставить("datetime_field" , Новый Структура("DATE" , ТекущаяДата));
- СтруктураЗаписи.Вставить("timestamp_field" , Новый Структура("DATE" , ТекущаяДата));
- СтруктураЗаписи.Вставить("mediumblob_field", Новый Структура("BYTES" , Картинка));
- СтруктураЗаписи.Вставить("set_field" , Новый Структура("TEXT" , "one"));
-
- МассивЗаписей.Добавить(СтруктураЗаписи);
-
- // При использовании строки подключения инициализируется новое соединение,
- // которое будет закрыто после выполнения функции.
- // В случае выполнения нескольких операций желательно использовать одно соединение,
- // заранее созданное функцией ОткрытьСоединение()
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("rows", МассивЗаписей);
- Опции.Вставить("trn", Истина);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "ДобавитьЗаписи", Опции);
-
- // END
-
- Обработать(Результат, "MySQL", "ДобавитьЗаписи");
-
-КонецПроцедуры
-
-Процедура MySQL_ПолучитьЗаписи(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "testbase1";
-
- TLS = Истина;
- TLS = ПараметрыФункции["TLS"]; // SKIP
-
- Порт = 3306;
- Порт = ?(TLS, 3307, 3306); // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("addr", Адрес);
- Опции.Вставить("db", База);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
- Опции.Вставить("port", Порт);
-
- СтрокаПодключения = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "СформироватьСтрокуПодключения", Опции);
-
- Если TLS Тогда
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- НастройкиTLS = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "ПолучитьНастройкиTLS", Опции);
- Иначе
- НастройкиTLS = Неопределено;
- КонецЕсли;
-
- // Все записи без отборов
-
- Таблица = "testtable";
-
- // При использовании строки подключения инициализируется новое соединение,
- // которое будет закрыто после выполнения функции.
- // В случае выполнения нескольких операций желательно использовать одно соединение,
- // заранее созданное функцией ОткрытьСоединение()
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "ПолучитьЗаписи", Опции);
-
- Обработать(Результат, "MySQL", "ПолучитьЗаписи"); // SKIP
-
- // Отборы, выбранные поля, количество и сортировка
-
- Опции = Новый Структура;
- Опции.Вставить("addr", Адрес);
- Опции.Вставить("db", "test_data");
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
- Опции.Вставить("port", Порт);
-
- СтрокаПодключения = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "СформироватьСтрокуПодключения", Опции);
-
- Таблица = "test_data";
-
- Поля = Новый Массив;
- Поля.Добавить("first_name");
- Поля.Добавить("last_name");
- Поля.Добавить("email");
-
- Фильтры = Новый Массив;
-
- СтруктураФильтра1 = Новый Структура;
-
- СтруктураФильтра1.Вставить("field", "gender");
- СтруктураФильтра1.Вставить("type" , "=");
- СтруктураФильтра1.Вставить("value", "Male");
- СтруктураФильтра1.Вставить("union", "AND");
- СтруктураФильтра1.Вставить("raw" , Ложь);
-
- СтруктураФильтра2 = Новый Структура;
-
- СтруктураФильтра2.Вставить("field", "id");
- СтруктураФильтра2.Вставить("type" , "BETWEEN");
- СтруктураФильтра2.Вставить("value", "20 AND 50");
- СтруктураФильтра2.Вставить("raw" , Истина);
-
- Фильтры.Добавить(СтруктураФильтра1);
- Фильтры.Добавить(СтруктураФильтра2);
-
- Сортировка = Новый Структура("ip_address", "DESC");
- Количество = 5;
-
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("fields", Поля);
- Опции.Вставить("filter", Фильтры);
- Опции.Вставить("order", Сортировка);
- Опции.Вставить("limit", Количество);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "ПолучитьЗаписи", Опции);
-
- // END
-
- Обработать(Результат, "MySQL", "ПолучитьЗаписи", "Отборы");
-
-КонецПроцедуры
-
-Процедура MySQL_ОбновитьЗаписи(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "test_data";
-
- TLS = Истина;
- TLS = ПараметрыФункции["TLS"]; // SKIP
-
- Порт = 3306;
- Порт = ?(TLS, 3307, 3306); // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("addr", Адрес);
- Опции.Вставить("db", База);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
- Опции.Вставить("port", Порт);
-
- СтрокаПодключения = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "СформироватьСтрокуПодключения", Опции);
-
- Если TLS Тогда
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- НастройкиTLS = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "ПолучитьНастройкиTLS", Опции);
- Иначе
- НастройкиTLS = Неопределено;
- КонецЕсли;
-
- Таблица = "test_data";
-
- СтруктураПолей = Новый Структура;
- СтруктураПолей.Вставить("ip_address", Новый Структура("VARCHAR", "127.0.0.1"));
-
- Фильтры = Новый Массив;
-
- СтруктураФильтра = Новый Структура;
-
- СтруктураФильтра.Вставить("field", "gender");
- СтруктураФильтра.Вставить("type" , "=");
- СтруктураФильтра.Вставить("value", Новый Структура("VARCHAR", "Male"));
- СтруктураФильтра.Вставить("raw" , Ложь);
-
- Фильтры.Добавить(СтруктураФильтра);
-
- Количество = OPI_MySQL.ПолучитьЗаписи(Таблица, , Фильтры, , , СтрокаПодключения, НастройкиTLS); // SKIP
- Обработать(Количество, "MySQL", "ОбновитьЗаписи", "Количество"); // SKIP
- Количество = Количество["data"].Количество(); // SKIP
-
- // При использовании строки подключения инициализируется новое соединение,
- // которое будет закрыто после выполнения функции.
- // В случае выполнения нескольких операций желательно использовать одно соединение,
- // заранее созданное функцией ОткрытьСоединение()
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("values", СтруктураПолей);
- Опции.Вставить("filter", СтруктураФильтра);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "ОбновитьЗаписи", Опции);
-
- // END
-
- Обработать(Результат, "MySQL", "ОбновитьЗаписи");
-
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("fields", "['ip_address']");
- Опции.Вставить("filter", Фильтры);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Проверка = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "ПолучитьЗаписи", Опции);
-
- Обработать(Проверка, "MySQL", "ОбновитьЗаписи", "Проверка", Количество, СтруктураПолей);
-
-КонецПроцедуры
-
-Процедура MySQL_УдалитьЗаписи(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "test_data";
-
- TLS = Истина;
- TLS = ПараметрыФункции["TLS"]; // SKIP
-
- Порт = 3306;
- Порт = ?(TLS, 3307, 3306); // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("addr", Адрес);
- Опции.Вставить("db", База);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
- Опции.Вставить("port", Порт);
-
- СтрокаПодключения = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "СформироватьСтрокуПодключения", Опции);
-
- Если TLS Тогда
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- НастройкиTLS = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "ПолучитьНастройкиTLS", Опции);
- Иначе
- НастройкиTLS = Неопределено;
- КонецЕсли;
-
- Таблица = "test_data";
-
- Фильтры = Новый Массив;
-
- СтруктураФильтра = Новый Структура;
-
- СтруктураФильтра.Вставить("field", "gender");
- СтруктураФильтра.Вставить("type" , "=");
- СтруктураФильтра.Вставить("value", Новый Структура("VARCHAR", "Male"));
- СтруктураФильтра.Вставить("raw" , Ложь);
- СтруктураФильтра.Вставить("union", "AND");
-
- Фильтры.Добавить(СтруктураФильтра);
-
- СтруктураФильтра = Новый Структура;
-
- СтруктураФильтра.Вставить("field", "ip_address");
- СтруктураФильтра.Вставить("type" , "=");
- СтруктураФильтра.Вставить("value", Новый Структура("VARCHAR", "127.0.0.1"));
- СтруктураФильтра.Вставить("raw" , Ложь);
-
- Получение = OPI_MySQL.ПолучитьЗаписи(Таблица, , Фильтры, , , СтрокаПодключения, НастройкиTLS); // SKIP
-
- // При использовании строки подключения инициализируется новое соединение,
- // которое будет закрыто после выполнения функции.
- // В случае выполнения нескольких операций желательно использовать одно соединение,
- // заранее созданное функцией ОткрытьСоединение()
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("filter", Фильтры);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "УдалитьЗаписи", Опции);
-
- // END
-
- Обработать(Получение, "MySQL", "УдалитьЗаписи", "Получение");
-
- Количество = Получение["data"].Количество();
- Остаток = 100 - Количество;
-
- Обработать(Результат, "MySQL", "УдалитьЗаписи");
-
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "ПолучитьЗаписи", Опции);
-
- Обработать(Результат, "MySQL", "УдалитьЗаписи", "Проверка", Остаток);
-
-КонецПроцедуры
-
-Процедура MySQL_УдалитьТаблицу(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "testbase1";
-
- TLS = Истина;
- TLS = ПараметрыФункции["TLS"]; // SKIP
-
- Порт = 3306;
- Порт = ?(TLS, 3307, 3306); // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("addr", Адрес);
- Опции.Вставить("db", База);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
- Опции.Вставить("port", Порт);
-
- СтрокаПодключения = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "СформироватьСтрокуПодключения", Опции);
-
- Если TLS Тогда
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- НастройкиTLS = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "ПолучитьНастройкиTLS", Опции);
- Иначе
- НастройкиTLS = Неопределено;
- КонецЕсли;
-
- Таблица = "testtable";
-
- // При использовании строки подключения инициализируется новое соединение,
- // которое будет закрыто после выполнения функции.
- // В случае выполнения нескольких операций желательно использовать одно соединение,
- // заранее созданное функцией ОткрытьСоединение()
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "УдалитьТаблицу", Опции);
-
- // END
-
- Обработать(Результат, "MySQL", "УдалитьТаблицу");
-
- База = "test_data";
- Таблица = "test_data";
-
- Опции = Новый Структура;
- Опции.Вставить("addr", Адрес);
- Опции.Вставить("db", База);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
- Опции.Вставить("port", Порт);
-
- СтрокаПодключения = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "СформироватьСтрокуПодключения", Опции);
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "УдалитьТаблицу", Опции);
-
- Обработать(Результат, "MySQL", "УдалитьТаблицу", "Тест");
-
-КонецПроцедуры
-
-Процедура MySQL_УдалитьБазуДанных(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "";
-
- TLS = Истина;
- TLS = ПараметрыФункции["TLS"]; // SKIP
-
- Порт = 3306;
- Порт = ?(TLS, 3307, 3306); // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("addr", Адрес);
- Опции.Вставить("db", База);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
- Опции.Вставить("port", Порт);
-
- СтрокаПодключения = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "СформироватьСтрокуПодключения", Опции);
-
- Если TLS Тогда
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- НастройкиTLS = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "ПолучитьНастройкиTLS", Опции);
- Иначе
- НастройкиTLS = Неопределено;
- КонецЕсли;
-
- База = "testbase1";
-
- // При использовании строки подключения инициализируется новое соединение,
- // которое будет закрыто после выполнения функции.
- // В случае выполнения нескольких операций желательно использовать одно соединение,
- // заранее созданное функцией ОткрытьСоединение()
- Опции = Новый Структура;
- Опции.Вставить("base", База);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "УдалитьБазуДанных", Опции);
-
- // END
-
- Обработать(Результат, "MySQL", "УдалитьБазуДанных");
-
- База = "testbase2";
-
- Подключение = OPI_MySQL.ОткрытьСоединение(СтрокаПодключения, НастройкиTLS);
-
- Обработать(Подключение, "MySQL", "УдалитьБазуДанных", "Открытие");
-
- Опции = Новый Структура;
- Опции.Вставить("base", База);
- Опции.Вставить("dbc", Подключение);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "УдалитьБазуДанных", Опции);
-
- Обработать(Результат, "MySQL", "УдалитьБазуДанных", "Удаление");
-
- Опции = Новый Структура;
- Опции.Вставить("base", База);
- Опции.Вставить("dbc", Подключение);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "УдалитьБазуДанных", Опции);
-
- Обработать(Результат, "MySQL", "УдалитьБазуДанных", "Ошибка");
-
- Закрытие = OPI_MySQL.ЗакрытьСоединение(Подключение);
-
- Обработать(Закрытие, "MySQL", "УдалитьБазуДанных", "Закрытие");
-
- Опции = Новый Структура;
- Опции.Вставить("base", База);
- Опции.Вставить("dbc", Подключение);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "УдалитьБазуДанных", Опции);
-
- Обработать(Результат, "MySQL", "УдалитьБазуДанных", "Ошибка подключения");
-
-КонецПроцедуры
-
-Процедура MySQL_ОчиститьТаблицу(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "testbase1";
-
- TLS = Истина;
- TLS = ПараметрыФункции["TLS"]; // SKIP
-
- Порт = 3306;
- Порт = ?(TLS, 3307, 3306); // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("addr", Адрес);
- Опции.Вставить("db", База);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
- Опции.Вставить("port", Порт);
-
- СтрокаПодключения = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "СформироватьСтрокуПодключения", Опции);
-
- Если TLS Тогда
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- НастройкиTLS = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "ПолучитьНастройкиTLS", Опции);
- Иначе
- НастройкиTLS = Неопределено;
- КонецЕсли;
-
- Таблица = "testtable";
-
- // При использовании строки подключения инициализируется новое соединение,
- // которое будет закрыто после выполнения функции.
- // В случае выполнения нескольких операций желательно использовать одно соединение,
- // заранее созданное функцией ОткрытьСоединение()
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "ОчиститьТаблицу", Опции);
-
- // END
-
- Обработать(Результат, "MySQL", "ОчиститьТаблицу");
-
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "ПолучитьЗаписи", Опции);
-
- Обработать(Результат, "MySQL", "ОчиститьТаблицу", "Проверка");
-
-КонецПроцедуры
-
-Процедура MySQL_ПолучитьСтруктуруФильтраЗаписей(ПараметрыФункции)
-
- Опции = Новый Структура;
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "ПолучитьСтруктуруФильтраЗаписей", Опции);
-
- // END
-
- Обработать(Результат, "MySQL", "ПолучитьСтруктуруФильтраЗаписей");
-
- Опции = Новый Структура;
- Опции.Вставить("empty", Истина);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "ПолучитьСтруктуруФильтраЗаписей", Опции);
-
- Обработать(Результат, "MySQL", "ПолучитьСтруктуруФильтраЗаписей", "Пустая");
-
-КонецПроцедуры
-
-Процедура MySQL_ПолучитьНастройкиTLS(ПараметрыФункции)
-
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "ПолучитьНастройкиTLS", Опции);
-
- // END
-
- Обработать(Результат, "MySQL", "ПолучитьНастройкиTLS");
-
-КонецПроцедуры
-
-Процедура MySQL_ПолучитьИнформациюОТаблице(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "testbase1";
-
- TLS = Истина;
- TLS = ПараметрыФункции["TLS"]; // SKIP
-
- Порт = 3306;
- Порт = ?(TLS, 3307, 3306); // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("addr", Адрес);
- Опции.Вставить("db", База);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
- Опции.Вставить("port", Порт);
-
- СтрокаПодключения = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "СформироватьСтрокуПодключения", Опции);
-
- Если TLS Тогда
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- НастройкиTLS = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "ПолучитьНастройкиTLS", Опции);
- Иначе
- НастройкиTLS = Неопределено;
- КонецЕсли;
-
- Таблица = "testtable";
-
- // При использовании строки подключения инициализируется новое соединение,
- // которое будет закрыто после выполнения функции.
- // В случае выполнения нескольких операций желательно использовать одно соединение,
- // заранее созданное функцией ОткрытьСоединение()
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "ПолучитьИнформациюОТаблице", Опции);
-
- // END
-
- Обработать(Результат, "MySQL", "ПолучитьИнформациюОТаблице");
-
- Таблица = "heyho";
-
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "ПолучитьИнформациюОТаблице", Опции);
-
- Обработать(Результат, "MySQL", "ПолучитьИнформациюОТаблице", "Ошибка");
-
-КонецПроцедуры
-
-Процедура MySQL_ДобавитьКолонкуТаблицы(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "testbase1";
-
- TLS = Истина;
- TLS = ПараметрыФункции["TLS"]; // SKIP
-
- Порт = 3306;
- Порт = ?(TLS, 3307, 3306); // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("addr", Адрес);
- Опции.Вставить("db", База);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
- Опции.Вставить("port", Порт);
-
- СтрокаПодключения = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "СформироватьСтрокуПодключения", Опции);
-
- Если TLS Тогда
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- НастройкиTLS = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "ПолучитьНастройкиTLS", Опции);
- Иначе
- НастройкиTLS = Неопределено;
- КонецЕсли;
-
- Таблица = "testtable";
- Имя = "new_field";
- ТипДанных = "MEDIUMTEXT";
-
- // При использовании строки подключения инициализируется новое соединение,
- // которое будет закрыто после выполнения функции.
- // В случае выполнения нескольких операций желательно использовать одно соединение,
- // заранее созданное функцией ОткрытьСоединение()
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("name", Имя);
- Опции.Вставить("type", ТипДанных);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "ДобавитьКолонкуТаблицы", Опции);
-
- // END
-
- Обработать(Результат, "MySQL", "ДобавитьКолонкуТаблицы");
-
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "ПолучитьИнформациюОТаблице", Опции);
-
- Обработать(Результат, "MySQL", "ДобавитьКолонкуТаблицы", "Проверка");
-
-КонецПроцедуры
-
-Процедура MySQL_УдалитьКолонкуТаблицы(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "testbase1";
-
- TLS = Истина;
- TLS = ПараметрыФункции["TLS"]; // SKIP
-
- Порт = 3306;
- Порт = ?(TLS, 3307, 3306); // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("addr", Адрес);
- Опции.Вставить("db", База);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
- Опции.Вставить("port", Порт);
-
- СтрокаПодключения = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "СформироватьСтрокуПодключения", Опции);
-
- Если TLS Тогда
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- НастройкиTLS = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "ПолучитьНастройкиTLS", Опции);
- Иначе
- НастройкиTLS = Неопределено;
- КонецЕсли;
-
- Таблица = "testtable";
- Имя = "new_field";
-
- // При использовании строки подключения инициализируется новое соединение,
- // которое будет закрыто после выполнения функции.
- // В случае выполнения нескольких операций желательно использовать одно соединение,
- // заранее созданное функцией ОткрытьСоединение()
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("name", Имя);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "УдалитьКолонкуТаблицы", Опции);
-
- // END
-
- Обработать(Результат, "MySQL", "УдалитьКолонкуТаблицы");
-
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "ПолучитьИнформациюОТаблице", Опции);
-
- Обработать(Результат, "MySQL", "УдалитьКолонкуТаблицы", "Проверка");
-
-КонецПроцедуры
-
-Процедура MySQL_ГарантироватьТаблицу(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "testbase1";
-
- TLS = Истина;
- TLS = ПараметрыФункции["TLS"]; // SKIP
-
- Порт = 3306;
- Порт = ?(TLS, 3307, 3306); // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("addr", Адрес);
- Опции.Вставить("db", База);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
- Опции.Вставить("port", Порт);
-
- СтрокаПодключения = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "СформироватьСтрокуПодключения", Опции);
-
- Если TLS Тогда
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- НастройкиTLS = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "ПолучитьНастройкиTLS", Опции);
- Иначе
- НастройкиTLS = Неопределено;
- КонецЕсли;
-
- Таблица = "testtable";
-
- СтруктураКолонок = Новый Структура;
- СтруктураКолонок.Вставить("smallint_field" , "SMALLINT");
- СтруктураКолонок.Вставить("double_field" , "DOUBLE");
- СтруктураКолонок.Вставить("bigint_field" , "BIGINT");
- СтруктураКолонок.Вставить("custom_field" , "TEXT");
-
- // При использовании строки подключения инициализируется новое соединение,
- // которое будет закрыто после выполнения функции.
- // В случае выполнения нескольких операций желательно использовать одно соединение,
- // заранее созданное функцией ОткрытьСоединение()
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("cols", СтруктураКолонок);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "ГарантироватьТаблицу", Опции);
-
- // END
-
- Обработать(Результат, "MySQL", "ГарантироватьТаблицу");
-
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Проверка = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "ПолучитьИнформациюОТаблице", Опции);
-
- Обработать(Проверка, "MySQL", "ГарантироватьТаблицу", "Проверка", СтруктураКолонок);
-
- Таблица = "test_new";
-
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("cols", СтруктураКолонок);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "ГарантироватьТаблицу", Опции);
-
- Обработать(Результат, "MySQL", "ГарантироватьТаблицу", "Новая");
-
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Проверка = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "ПолучитьИнформациюОТаблице", Опции);
-
- Обработать(Проверка, "MySQL", "ГарантироватьТаблицу", "Проверка", СтруктураКолонок);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область GreenAPI
-
-Процедура GreenAPI_СформироватьПараметрыДоступа(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("api", ApiUrl);
- Опции.Вставить("media", MediaUrl);
- Опции.Вставить("id", IdInstance);
- Опции.Вставить("token", ApiTokenInstance);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "СформироватьПараметрыДоступа", Опции);
-
- // END
-
- Обработать(Результат, "GreenAPI", "СформироватьПараметрыДоступа");
-
-КонецПроцедуры
-
-Процедура GreenAPI_ПолучитьНастройкиИнстанса(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("api", ApiUrl);
- Опции.Вставить("media", MediaUrl);
- Опции.Вставить("id", IdInstance);
- Опции.Вставить("token", ApiTokenInstance);
-
- ПараметрыДоступа = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "СформироватьПараметрыДоступа", Опции);
- Опции = Новый Структура;
- Опции.Вставить("access", ПараметрыДоступа);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "ПолучитьНастройкиИнстанса", Опции);
-
- // END
-
- Обработать(Результат, "GreenAPI", "ПолучитьНастройкиИнстанса", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура GreenAPI_ПолучитьИнформациюОбАккаунте(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("api", ApiUrl);
- Опции.Вставить("media", MediaUrl);
- Опции.Вставить("id", IdInstance);
- Опции.Вставить("token", ApiTokenInstance);
-
- ПараметрыДоступа = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "СформироватьПараметрыДоступа", Опции);
- Опции = Новый Структура;
- Опции.Вставить("access", ПараметрыДоступа);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "ПолучитьИнформациюОбАккаунте", Опции);
-
- // END
-
- Обработать(Результат, "GreenAPI", "ПолучитьИнформациюОбАккаунте");
-
-КонецПроцедуры
-
-Процедура GreenAPI_ПолучитьСтруктуруНастроекИнстанса(ПараметрыФункции)
-
- Опции = Новый Структура;
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "ПолучитьСтруктуруНастроекИнстанса", Опции);
-
- // END
-
- Обработать(Результат, "GreenAPI", "ПолучитьСтруктуруНастроекИнстанса");
-
- Опции = Новый Структура;
- Опции.Вставить("empty", Истина);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "ПолучитьСтруктуруНастроекИнстанса", Опции);
-
- Обработать(Результат, "GreenAPI", "ПолучитьСтруктуруНастроекИнстанса", "Пустая");
-
-КонецПроцедуры
-
-Процедура GreenAPI_УстановитьНастройкиИнстанса(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("api", ApiUrl);
- Опции.Вставить("media", MediaUrl);
- Опции.Вставить("id", IdInstance);
- Опции.Вставить("token", ApiTokenInstance);
-
- ПараметрыДоступа = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "СформироватьПараметрыДоступа", Опции);
-
- СтруктураНастроек = Новый Структура;
- СтруктураНастроек.Вставить("pollMessageWebhook" , "yes");
- СтруктураНастроек.Вставить("incomingBlockWebhook" , "no");
- СтруктураНастроек.Вставить("incomingCallWebhook" , "no");
- СтруктураНастроек.Вставить("editedMessageWebhook" , "yes");
- СтруктураНастроек.Вставить("deletedMessageWebhook" , "yes");
- СтруктураНастроек.Вставить("outgoingAPIMessageWebhook", "yes");
-
- Опции = Новый Структура;
- Опции.Вставить("settings", СтруктураНастроек);
- Опции.Вставить("access", ПараметрыДоступа);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "УстановитьНастройкиИнстанса", Опции);
-
- // END
-
- Обработать(Результат, "GreenAPI", "УстановитьНастройкиИнстанса");
-
-КонецПроцедуры
-
-Процедура GreenAPI_ПолучитьСостояниеИнстанса(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("api", ApiUrl);
- Опции.Вставить("media", MediaUrl);
- Опции.Вставить("id", IdInstance);
- Опции.Вставить("token", ApiTokenInstance);
-
- ПараметрыДоступа = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "СформироватьПараметрыДоступа", Опции);
- Опции = Новый Структура;
- Опции.Вставить("access", ПараметрыДоступа);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "ПолучитьСостояниеИнстанса", Опции);
-
- // END
-
- Обработать(Результат, "GreenAPI", "ПолучитьСостояниеИнстанса");
-
-КонецПроцедуры
-
-Процедура GreenAPI_ПерезапуститьИнстанс(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("api", ApiUrl);
- Опции.Вставить("media", MediaUrl);
- Опции.Вставить("id", IdInstance);
- Опции.Вставить("token", ApiTokenInstance);
-
- ПараметрыДоступа = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "СформироватьПараметрыДоступа", Опции);
- Опции = Новый Структура;
- Опции.Вставить("access", ПараметрыДоступа);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "ПерезапуститьИнстанс", Опции);
-
- // END
-
- Обработать(Результат, "GreenAPI", "ПерезапуститьИнстанс");
-
-КонецПроцедуры
-
-Процедура GreenAPI_ПолучитьQR(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("api", ApiUrl);
- Опции.Вставить("media", MediaUrl);
- Опции.Вставить("id", IdInstance);
- Опции.Вставить("token", ApiTokenInstance);
-
- ПараметрыДоступа = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "СформироватьПараметрыДоступа", Опции);
- Опции = Новый Структура;
- Опции.Вставить("access", ПараметрыДоступа);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "ПолучитьQR", Опции);
-
- // END
-
- Обработать(Результат, "GreenAPI", "ПолучитьQR");
-
-КонецПроцедуры
-
-Процедура GreenAPI_РазлогинитьИнстанс(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("api", ApiUrl);
- Опции.Вставить("media", MediaUrl);
- Опции.Вставить("id", IdInstance);
- Опции.Вставить("token", ApiTokenInstance);
-
- ПараметрыДоступа = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "СформироватьПараметрыДоступа", Опции);
- Опции = Новый Структура;
- Опции.Вставить("access", ПараметрыДоступа);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "РазлогинитьИнстанс", Опции);
-
- // END
-
- Обработать(Результат, "GreenAPI", "РазлогинитьИнстанс");
-
-КонецПроцедуры
-
-Процедура GreenAPI_ПолучитьКодАвторизации(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- НомерТелефона = 441234567890;
-
- Опции = Новый Структура;
- Опции.Вставить("api", ApiUrl);
- Опции.Вставить("media", MediaUrl);
- Опции.Вставить("id", IdInstance);
- Опции.Вставить("token", ApiTokenInstance);
-
- ПараметрыДоступа = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "СформироватьПараметрыДоступа", Опции);
- Опции = Новый Структура;
- Опции.Вставить("access", ПараметрыДоступа);
- Опции.Вставить("phone", НомерТелефона);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "ПолучитьКодАвторизации", Опции);
-
- // END
-
- Обработать(Результат, "GreenAPI", "ПолучитьКодАвторизации");
-
-КонецПроцедуры
-
-Процедура GreenAPI_УстановитьКартинкуПрофиля(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- Картинка = ПараметрыФункции["Picture"]; // URL, Путь или Двоичные данные
-
- Опции = Новый Структура;
- Опции.Вставить("api", ApiUrl);
- Опции.Вставить("media", MediaUrl);
- Опции.Вставить("id", IdInstance);
- Опции.Вставить("token", ApiTokenInstance);
-
- ПараметрыДоступа = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "СформироватьПараметрыДоступа", Опции);
- Опции = Новый Структура;
- Опции.Вставить("access", ПараметрыДоступа);
- Опции.Вставить("picture", Картинка);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "УстановитьКартинкуПрофиля", Опции);
-
- // END
-
- Обработать(Результат, "GreenAPI", "УстановитьКартинкуПрофиля");
-
-КонецПроцедуры
-
-Процедура GreenAPI_СоздатьГруппу(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- Имя = "New group";
-
- Опции = Новый Структура;
- Опции.Вставить("api", ApiUrl);
- Опции.Вставить("media", MediaUrl);
- Опции.Вставить("id", IdInstance);
- Опции.Вставить("token", ApiTokenInstance);
-
- ПараметрыДоступа = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "СформироватьПараметрыДоступа", Опции);
- Опции = Новый Структура;
- Опции.Вставить("access", ПараметрыДоступа);
- Опции.Вставить("name", Имя);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "СоздатьГруппу", Опции);
-
- // END
-
- Обработать(Результат, "GreenAPI", "СоздатьГруппу", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура GreenAPI_ПокинутьГруппу(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- IDГруппы = ПараметрыФункции["GreenAPI_GroupID"];
-
- Опции = Новый Структура;
- Опции.Вставить("api", ApiUrl);
- Опции.Вставить("media", MediaUrl);
- Опции.Вставить("id", IdInstance);
- Опции.Вставить("token", ApiTokenInstance);
-
- ПараметрыДоступа = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "СформироватьПараметрыДоступа", Опции);
- Опции = Новый Структура;
- Опции.Вставить("access", ПараметрыДоступа);
- Опции.Вставить("group", IDГруппы);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "ПокинутьГруппу", Опции);
-
- // END
-
- Обработать(Результат, "GreenAPI", "ПокинутьГруппу");
-
-КонецПроцедуры
-
-Процедура GreenAPI_ПолучитьИнформациюОГруппе(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- IDГруппы = ПараметрыФункции["GreenAPI_GroupID"];
-
- Опции = Новый Структура;
- Опции.Вставить("api", ApiUrl);
- Опции.Вставить("media", MediaUrl);
- Опции.Вставить("id", IdInstance);
- Опции.Вставить("token", ApiTokenInstance);
-
- ПараметрыДоступа = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "СформироватьПараметрыДоступа", Опции);
- Опции = Новый Структура;
- Опции.Вставить("access", ПараметрыДоступа);
- Опции.Вставить("group", IDГруппы);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "ПолучитьИнформациюОГруппе", Опции);
-
- // END
-
- Обработать(Результат, "GreenAPI", "ПолучитьИнформациюОГруппе");
-
-КонецПроцедуры
-
-Процедура GreenAPI_ИзменитьИмяГруппы(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- IDГруппы = ПараметрыФункции["GreenAPI_GroupID"];
- Имя = "New name";
-
- Опции = Новый Структура;
- Опции.Вставить("api", ApiUrl);
- Опции.Вставить("media", MediaUrl);
- Опции.Вставить("id", IdInstance);
- Опции.Вставить("token", ApiTokenInstance);
-
- ПараметрыДоступа = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "СформироватьПараметрыДоступа", Опции);
- Опции = Новый Структура;
- Опции.Вставить("access", ПараметрыДоступа);
- Опции.Вставить("group", IDГруппы);
- Опции.Вставить("name", Имя);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "ИзменитьИмяГруппы", Опции);
-
- // END
-
- Обработать(Результат, "GreenAPI", "ИзменитьИмяГруппы");
-
-КонецПроцедуры
-
-Процедура GreenAPI_ДобавитьУчастникаВГруппу(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- IDГруппы = ПараметрыФункции["GreenAPI_GroupID"];
- IDПользователя = "123123123@c.us";
-
- Опции = Новый Структура;
- Опции.Вставить("api", ApiUrl);
- Опции.Вставить("media", MediaUrl);
- Опции.Вставить("id", IdInstance);
- Опции.Вставить("token", ApiTokenInstance);
-
- ПараметрыДоступа = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "СформироватьПараметрыДоступа", Опции);
- Опции = Новый Структура;
- Опции.Вставить("access", ПараметрыДоступа);
- Опции.Вставить("group", IDГруппы);
- Опции.Вставить("user", IDПользователя);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "ДобавитьУчастникаВГруппу", Опции);
-
- // END
-
- Обработать(Результат, "GreenAPI", "ДобавитьУчастникаВГруппу");
-
-КонецПроцедуры
-
-Процедура GreenAPI_ИсключитьУчастникаГруппы(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- IDГруппы = ПараметрыФункции["GreenAPI_GroupID"];
- IDПользователя = "123123123@c.us";
-
- Опции = Новый Структура;
- Опции.Вставить("api", ApiUrl);
- Опции.Вставить("media", MediaUrl);
- Опции.Вставить("id", IdInstance);
- Опции.Вставить("token", ApiTokenInstance);
-
- ПараметрыДоступа = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "СформироватьПараметрыДоступа", Опции);
- Опции = Новый Структура;
- Опции.Вставить("access", ПараметрыДоступа);
- Опции.Вставить("group", IDГруппы);
- Опции.Вставить("user", IDПользователя);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "ИсключитьУчастникаГруппы", Опции);
-
- // END
-
- Обработать(Результат, "GreenAPI", "ИсключитьУчастникаГруппы");
-
-КонецПроцедуры
-
-Процедура GreenAPI_НазначитьПраваАдминистратора(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- IDГруппы = ПараметрыФункции["GreenAPI_GroupID"];
- IDПользователя = "123123123@c.us";
-
- Опции = Новый Структура;
- Опции.Вставить("api", ApiUrl);
- Опции.Вставить("media", MediaUrl);
- Опции.Вставить("id", IdInstance);
- Опции.Вставить("token", ApiTokenInstance);
-
- ПараметрыДоступа = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "СформироватьПараметрыДоступа", Опции);
- Опции = Новый Структура;
- Опции.Вставить("access", ПараметрыДоступа);
- Опции.Вставить("group", IDГруппы);
- Опции.Вставить("user", IDПользователя);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "НазначитьПраваАдминистратора", Опции);
-
- // END
-
- Обработать(Результат, "GreenAPI", "НазначитьПраваАдминистратора");
-
-КонецПроцедуры
-
-Процедура GreenAPI_ОтозватьПраваАдминистратора(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- IDГруппы = ПараметрыФункции["GreenAPI_GroupID"];
- IDПользователя = "123123123@c.us";
-
- Опции = Новый Структура;
- Опции.Вставить("api", ApiUrl);
- Опции.Вставить("media", MediaUrl);
- Опции.Вставить("id", IdInstance);
- Опции.Вставить("token", ApiTokenInstance);
-
- ПараметрыДоступа = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "СформироватьПараметрыДоступа", Опции);
- Опции = Новый Структура;
- Опции.Вставить("access", ПараметрыДоступа);
- Опции.Вставить("group", IDГруппы);
- Опции.Вставить("user", IDПользователя);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "ОтозватьПраваАдминистратора", Опции);
-
- // END
-
- Обработать(Результат, "GreenAPI", "ОтозватьПраваАдминистратора");
-
-КонецПроцедуры
-
-Процедура GreenAPI_УстановитьКартинкуГруппы(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- Картинка = ПараметрыФункции["Picture"]; // URL, Путь или Двоичные данные
- IDГруппы = ПараметрыФункции["GreenAPI_GroupID"];
-
- Опции = Новый Структура;
- Опции.Вставить("api", ApiUrl);
- Опции.Вставить("media", MediaUrl);
- Опции.Вставить("id", IdInstance);
- Опции.Вставить("token", ApiTokenInstance);
-
- ПараметрыДоступа = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "СформироватьПараметрыДоступа", Опции);
- Опции = Новый Структура;
- Опции.Вставить("access", ПараметрыДоступа);
- Опции.Вставить("group", IDГруппы);
- Опции.Вставить("picture", Картинка);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "УстановитьКартинкуГруппы", Опции);
-
- // END
-
- Обработать(Результат, "GreenAPI", "УстановитьКартинкуГруппы");
-
-КонецПроцедуры
-
-Процедура GreenAPI_ОтправитьТекстовоеСообщение(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- IDЧата = ПараметрыФункции["GreenAPI_TestGroupID"];
- Текст = "Новое сообщение";
-
- Опции = Новый Структура;
- Опции.Вставить("api", ApiUrl);
- Опции.Вставить("media", MediaUrl);
- Опции.Вставить("id", IdInstance);
- Опции.Вставить("token", ApiTokenInstance);
-
- ПараметрыДоступа = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "СформироватьПараметрыДоступа", Опции);
- Опции = Новый Структура;
- Опции.Вставить("access", ПараметрыДоступа);
- Опции.Вставить("chat", IDЧата);
- Опции.Вставить("text", Текст);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "ОтправитьТекстовоеСообщение", Опции);
-
- // END
-
- Обработать(Результат, "GreenAPI", "ОтправитьТекстовоеСообщение", , ПараметрыФункции);
-
- IDСообщения = Результат["idMessage"];
- Опции = Новый Структура;
- Опции.Вставить("access", ПараметрыДоступа);
- Опции.Вставить("chat", IDЧата);
- Опции.Вставить("text", Текст);
- Опции.Вставить("quoted", IDСообщения);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "ОтправитьТекстовоеСообщение", Опции);
-
- Обработать(Результат, "GreenAPI", "ОтправитьТекстовоеСообщение", "Цитата");
-
-КонецПроцедуры
-
-Процедура GreenAPI_УдалитьСообщение(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- IDЧата = ПараметрыФункции["GreenAPI_TestGroupID"];
- IDСообщения = ПараметрыФункции["GreenAPI_MessageID"];
-
- Опции = Новый Структура;
- Опции.Вставить("api", ApiUrl);
- Опции.Вставить("media", MediaUrl);
- Опции.Вставить("id", IdInstance);
- Опции.Вставить("token", ApiTokenInstance);
-
- ПараметрыДоступа = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "СформироватьПараметрыДоступа", Опции);
- Опции = Новый Структура;
- Опции.Вставить("access", ПараметрыДоступа);
- Опции.Вставить("chat", IDЧата);
- Опции.Вставить("message", IDСообщения);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "УдалитьСообщение", Опции);
-
- // END
-
- Обработать(Результат, "GreenAPI", "УдалитьСообщение");
-
-КонецПроцедуры
-
-Процедура GreenAPI_ИзменитьТекстСообщения(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- IDЧата = ПараметрыФункции["GreenAPI_TestGroupID"];
- IDСообщения = ПараметрыФункции["GreenAPI_MessageID"];
- Текст = "Новый текст сообщения";
-
- Опции = Новый Структура;
- Опции.Вставить("api", ApiUrl);
- Опции.Вставить("media", MediaUrl);
- Опции.Вставить("id", IdInstance);
- Опции.Вставить("token", ApiTokenInstance);
-
- ПараметрыДоступа = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "СформироватьПараметрыДоступа", Опции);
- Опции = Новый Структура;
- Опции.Вставить("access", ПараметрыДоступа);
- Опции.Вставить("chat", IDЧата);
- Опции.Вставить("message", IDСообщения);
- Опции.Вставить("text", Текст);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "ИзменитьТекстСообщения", Опции);
-
- // END
-
- Обработать(Результат, "GreenAPI", "ИзменитьТекстСообщения");
-
-КонецПроцедуры
-
-Процедура GreenAPI_ОтправитьФайл(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- Файл = ПараметрыФункции["Picture"]; // URL, Путь или Двоичные данные
- ИмяФайла = "photo.jpg";
- IDЧата = ПараметрыФункции["GreenAPI_TestGroupID"];
- Описание = "Описание файла";
-
- Опции = Новый Структура;
- Опции.Вставить("api", ApiUrl);
- Опции.Вставить("media", MediaUrl);
- Опции.Вставить("id", IdInstance);
- Опции.Вставить("token", ApiTokenInstance);
-
- ПараметрыДоступа = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "СформироватьПараметрыДоступа", Опции);
- Опции = Новый Структура;
- Опции.Вставить("access", ПараметрыДоступа);
- Опции.Вставить("chat", IDЧата);
- Опции.Вставить("file", Файл);
- Опции.Вставить("filename", ИмяФайла);
- Опции.Вставить("caption", Описание);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "ОтправитьФайл", Опции);
-
- // END
-
- Обработать(Результат, "GreenAPI", "ОтправитьФайл", , ПараметрыФункции);
-
- Файл = ПараметрыФункции["Video"];
- ИмяФайла = "vid.mp4";
-
- IDСообщения = Результат["idMessage"];
- Опции = Новый Структура;
- Опции.Вставить("access", ПараметрыДоступа);
- Опции.Вставить("chat", IDЧата);
- Опции.Вставить("file", Файл);
- Опции.Вставить("filename", ИмяФайла);
- Опции.Вставить("caption", Описание);
- Опции.Вставить("quoted", IDСообщения);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "ОтправитьФайл", Опции);
-
- Обработать(Результат, "GreenAPI", "ОтправитьФайл", "Цитата");
-
-КонецПроцедуры
-
-Процедура GreenAPI_ОтправитьФайлПоURL(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- Файл = ПараметрыФункции["Picture"];
- ИмяФайла = "photo.jpg";
- IDЧата = ПараметрыФункции["GreenAPI_TestGroupID"];
- Описание = "Описание файла";
-
- Опции = Новый Структура;
- Опции.Вставить("api", ApiUrl);
- Опции.Вставить("media", MediaUrl);
- Опции.Вставить("id", IdInstance);
- Опции.Вставить("token", ApiTokenInstance);
-
- ПараметрыДоступа = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "СформироватьПараметрыДоступа", Опции);
- Опции = Новый Структура;
- Опции.Вставить("access", ПараметрыДоступа);
- Опции.Вставить("chat", IDЧата);
- Опции.Вставить("url", Файл);
- Опции.Вставить("filename", ИмяФайла);
- Опции.Вставить("caption", Описание);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "ОтправитьФайлПоURL", Опции);
-
- // END
-
- Обработать(Результат, "GreenAPI", "ОтправитьФайлПоURL", , ПараметрыФункции);
-
- Файл = ПараметрыФункции["Video"];
- ИмяФайла = "vid.mp4";
-
- IDСообщения = Результат["idMessage"];
- Опции = Новый Структура;
- Опции.Вставить("access", ПараметрыДоступа);
- Опции.Вставить("chat", IDЧата);
- Опции.Вставить("url", Файл);
- Опции.Вставить("filename", ИмяФайла);
- Опции.Вставить("caption", Описание);
- Опции.Вставить("quoted", IDСообщения);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "ОтправитьФайлПоURL", Опции);
-
- Обработать(Результат, "GreenAPI", "ОтправитьФайлПоURL", "Цитата");
-
-КонецПроцедуры
-
-Процедура GreenAPI_ОтправитьОпрос(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- IDЧата = ПараметрыФункции["GreenAPI_TestGroupID"];
- Текст = "Какой ваш любимый цвет?";
-
- Варианты = Новый Массив;
- Варианты.Добавить("Красный");
- Варианты.Добавить("Желтый");
- Варианты.Добавить("Зеленый");
-
- Опции = Новый Структура;
- Опции.Вставить("api", ApiUrl);
- Опции.Вставить("media", MediaUrl);
- Опции.Вставить("id", IdInstance);
- Опции.Вставить("token", ApiTokenInstance);
-
- ПараметрыДоступа = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "СформироватьПараметрыДоступа", Опции);
- Опции = Новый Структура;
- Опции.Вставить("access", ПараметрыДоступа);
- Опции.Вставить("chat", IDЧата);
- Опции.Вставить("text", Текст);
- Опции.Вставить("options", Варианты);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "ОтправитьОпрос", Опции);
-
- // END
-
- Обработать(Результат, "GreenAPI", "ОтправитьОпрос", , ПараметрыФункции);
-
- IDСообщения = Результат["idMessage"];
- Опции = Новый Структура;
- Опции.Вставить("access", ПараметрыДоступа);
- Опции.Вставить("chat", IDЧата);
- Опции.Вставить("text", Текст);
- Опции.Вставить("options", Варианты);
- Опции.Вставить("multi", Истина);
- Опции.Вставить("quoted", IDСообщения);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "ОтправитьОпрос", Опции);
-
- Обработать(Результат, "GreenAPI", "ОтправитьОпрос", "Цитата");
-
-КонецПроцедуры
-
-Процедура GreenAPI_ПолучитьОписаниеЛокации(ПараметрыФункции)
-
- Широта = 53.908522;
- Долгота = 27.574821;
- Адрес = "Площадь Победы, Минск";
- Название = "пл. Победы";
-
- Опции = Новый Структура;
- Опции.Вставить("lat", Широта);
- Опции.Вставить("long", Долгота);
- Опции.Вставить("addr", Адрес);
- Опции.Вставить("name", Название);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "ПолучитьОписаниеЛокации", Опции);
-
- // END
-
- Обработать(Результат, "GreenAPI", "ПолучитьОписаниеЛокации");
-
-КонецПроцедуры
-
-Процедура GreenAPI_ОтправитьЛокацию(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- IDЧата = ПараметрыФункции["GreenAPI_TestGroupID"];
-
- Широта = 53.908522;
- Долгота = 27.574821;
- Адрес = "Площадь Победы, Минск";
- Название = "пл. Победы";
-
- Опции = Новый Структура;
- Опции.Вставить("lat", Широта);
- Опции.Вставить("long", Долгота);
- Опции.Вставить("addr", Адрес);
- Опции.Вставить("name", Название);
-
- Локация = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "ПолучитьОписаниеЛокации", Опции);
-
- Опции = Новый Структура;
- Опции.Вставить("api", ApiUrl);
- Опции.Вставить("media", MediaUrl);
- Опции.Вставить("id", IdInstance);
- Опции.Вставить("token", ApiTokenInstance);
-
- ПараметрыДоступа = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "СформироватьПараметрыДоступа", Опции);
- Опции = Новый Структура;
- Опции.Вставить("access", ПараметрыДоступа);
- Опции.Вставить("chat", IDЧата);
- Опции.Вставить("loc", Локация);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "ОтправитьЛокацию", Опции);
-
- // END
-
- Обработать(Результат, "GreenAPI", "ОтправитьЛокацию", , ПараметрыФункции);
-
- IDСообщения = Результат["idMessage"];
- Опции = Новый Структура;
- Опции.Вставить("lat", Широта);
- Опции.Вставить("long", Долгота);
-
- Локация = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "ПолучитьОписаниеЛокации", Опции);
- Опции = Новый Структура;
- Опции.Вставить("access", ПараметрыДоступа);
- Опции.Вставить("chat", IDЧата);
- Опции.Вставить("loc", Локация);
- Опции.Вставить("quoted", IDСообщения);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "ОтправитьЛокацию", Опции);
-
- Обработать(Результат, "GreenAPI", "ОтправитьЛокацию", "Цитата");
-
-КонецПроцедуры
-
-Процедура GreenAPI_ПолучитьОписаниеКонтакта(ПараметрыФункции)
-
- Телефон = 79001234568;
- Имя = "Артем";
- Фамилия = "Евпаторийский";
- Отчество = "Петрович";
- Компания = "Велосипед";
-
- Опции = Новый Структура;
- Опции.Вставить("phone", Телефон);
- Опции.Вставить("name", Имя);
- Опции.Вставить("surname", Фамилия);
- Опции.Вставить("midname", Отчество);
- Опции.Вставить("company", Компания);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "ПолучитьОписаниеКонтакта", Опции);
-
- // END
-
- Обработать(Результат, "GreenAPI", "ПолучитьОписаниеКонтакта");
-
-КонецПроцедуры
-
-Процедура GreenAPI_ОтправитьКонтакт(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- IDЧата = ПараметрыФункции["GreenAPI_TestGroupID"];
-
- Телефон = 79001234568;
- Имя = "Артем";
- Фамилия = "Евпаторийский";
- Отчество = "Петрович";
- Компания = "Велосипед";
-
- Опции = Новый Структура;
- Опции.Вставить("phone", Телефон);
- Опции.Вставить("name", Имя);
- Опции.Вставить("surname", Фамилия);
- Опции.Вставить("midname", Отчество);
- Опции.Вставить("company", Компания);
-
- Контакт = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "ПолучитьОписаниеКонтакта", Опции);
-
- Опции = Новый Структура;
- Опции.Вставить("api", ApiUrl);
- Опции.Вставить("media", MediaUrl);
- Опции.Вставить("id", IdInstance);
- Опции.Вставить("token", ApiTokenInstance);
-
- ПараметрыДоступа = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "СформироватьПараметрыДоступа", Опции);
- Опции = Новый Структура;
- Опции.Вставить("access", ПараметрыДоступа);
- Опции.Вставить("chat", IDЧата);
- Опции.Вставить("contact", Контакт);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "ОтправитьКонтакт", Опции);
-
- // END
-
- Обработать(Результат, "GreenAPI", "ОтправитьКонтакт", , ПараметрыФункции);
-
- IDСообщения = Результат["idMessage"];
- Опции = Новый Структура;
- Опции.Вставить("phone", Телефон);
- Опции.Вставить("company", Компания);
-
- Контакт = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "ПолучитьОписаниеКонтакта", Опции);
- Опции = Новый Структура;
- Опции.Вставить("access", ПараметрыДоступа);
- Опции.Вставить("chat", IDЧата);
- Опции.Вставить("contact", Контакт);
- Опции.Вставить("quoted", IDСообщения);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "ОтправитьКонтакт", Опции);
-
- Обработать(Результат, "GreenAPI", "ОтправитьКонтакт", "Цитата");
-
-КонецПроцедуры
-
-Процедура GreenAPI_ПереслатьСообщения(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- Откуда = "11001234567@c.us";
- Откуда = ПараметрыФункции["GreenAPI_TestGroupID"]; // SKIP
- Куда = ПараметрыФункции["GreenAPI_TestGroupID"];
-
- Сообщение = ПараметрыФункции["GreenAPI_MessageID"];
-
- Опции = Новый Структура;
- Опции.Вставить("api", ApiUrl);
- Опции.Вставить("media", MediaUrl);
- Опции.Вставить("id", IdInstance);
- Опции.Вставить("token", ApiTokenInstance);
-
- ПараметрыДоступа = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "СформироватьПараметрыДоступа", Опции);
- Опции = Новый Структура;
- Опции.Вставить("access", ПараметрыДоступа);
- Опции.Вставить("from", Откуда);
- Опции.Вставить("to", Куда);
- Опции.Вставить("msgs", Сообщение);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "ПереслатьСообщения", Опции);
-
- // END
-
- Обработать(Результат, "GreenAPI", "ПереслатьСообщения");
-
-КонецПроцедуры
-
-Процедура GreenAPI_ПолучитьУведомление(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("api", ApiUrl);
- Опции.Вставить("media", MediaUrl);
- Опции.Вставить("id", IdInstance);
- Опции.Вставить("token", ApiTokenInstance);
-
- ПараметрыДоступа = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "СформироватьПараметрыДоступа", Опции);
- Опции = Новый Структура;
- Опции.Вставить("access", ПараметрыДоступа);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "ПолучитьУведомление", Опции);
-
- // END
-
- Обработать(Результат, "GreenAPI", "ПолучитьУведомление", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура GreenAPI_УдалитьУведомлениеИзОчереди(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- IDДоставки = ПараметрыФункции["GreenAPI_ReceiptID"];
-
- Опции = Новый Структура;
- Опции.Вставить("api", ApiUrl);
- Опции.Вставить("media", MediaUrl);
- Опции.Вставить("id", IdInstance);
- Опции.Вставить("token", ApiTokenInstance);
-
- ПараметрыДоступа = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "СформироватьПараметрыДоступа", Опции);
- Опции = Новый Структура;
- Опции.Вставить("access", ПараметрыДоступа);
- Опции.Вставить("receipt", IDДоставки);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "УдалитьУведомлениеИзОчереди", Опции);
-
- // END
-
- Обработать(Результат, "GreenAPI", "УдалитьУведомлениеИзОчереди");
-
-КонецПроцедуры
-
-Процедура GreenAPI_СкачатьФайлСообщения(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- IDЧата = ПараметрыФункции["GreenAPI_TestGroupID"];
- IDСообщения = ПараметрыФункции["GreenAPI_FileMessageID"];
-
- Опции = Новый Структура;
- Опции.Вставить("api", ApiUrl);
- Опции.Вставить("media", MediaUrl);
- Опции.Вставить("id", IdInstance);
- Опции.Вставить("token", ApiTokenInstance);
-
- ПараметрыДоступа = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "СформироватьПараметрыДоступа", Опции);
- Опции = Новый Структура;
- Опции.Вставить("access", ПараметрыДоступа);
- Опции.Вставить("chat", IDЧата);
- Опции.Вставить("message", IDСообщения);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "СкачатьФайлСообщения", Опции);
-
- // END
-
- Обработать(Результат, "GreenAPI", "СкачатьФайлСообщения");
-
-КонецПроцедуры
-
-Процедура GreenAPI_УстановитьОтметкуПрочтения(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- IDЧата = ПараметрыФункции["GreenAPI_TestGroupID"];
- IDСообщения = ПараметрыФункции["GreenAPI_FileMessageID"];
-
- Опции = Новый Структура;
- Опции.Вставить("api", ApiUrl);
- Опции.Вставить("media", MediaUrl);
- Опции.Вставить("id", IdInstance);
- Опции.Вставить("token", ApiTokenInstance);
-
- ПараметрыДоступа = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "СформироватьПараметрыДоступа", Опции);
- Опции = Новый Структура;
- Опции.Вставить("access", ПараметрыДоступа);
- Опции.Вставить("chat", IDЧата);
- Опции.Вставить("message", IDСообщения);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "УстановитьОтметкуПрочтения", Опции);
-
- // END
-
- Обработать(Результат, "GreenAPI", "УстановитьОтметкуПрочтения");
-
-КонецПроцедуры
-
-Процедура GreenAPI_ПолучитьОчередьСообщений(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("api", ApiUrl);
- Опции.Вставить("media", MediaUrl);
- Опции.Вставить("id", IdInstance);
- Опции.Вставить("token", ApiTokenInstance);
-
- ПараметрыДоступа = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "СформироватьПараметрыДоступа", Опции);
- Опции = Новый Структура;
- Опции.Вставить("access", ПараметрыДоступа);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "ПолучитьОчередьСообщений", Опции);
-
- // END
-
- Обработать(Результат, "GreenAPI", "ПолучитьОчередьСообщений");
-
-КонецПроцедуры
-
-Процедура GreenAPI_ОчиститьОчередьСообщений(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("api", ApiUrl);
- Опции.Вставить("media", MediaUrl);
- Опции.Вставить("id", IdInstance);
- Опции.Вставить("token", ApiTokenInstance);
-
- ПараметрыДоступа = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "СформироватьПараметрыДоступа", Опции);
- Опции = Новый Структура;
- Опции.Вставить("access", ПараметрыДоступа);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "ОчиститьОчередьСообщений", Опции);
-
- // END
-
- Обработать(Результат, "GreenAPI", "ОчиститьОчередьСообщений");
-
-КонецПроцедуры
-
-Процедура GreenAPI_ПолучитьИсториюЧата(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- IDЧата = ПараметрыФункции["GreenAPI_TestGroupID"];
-
- Опции = Новый Структура;
- Опции.Вставить("api", ApiUrl);
- Опции.Вставить("media", MediaUrl);
- Опции.Вставить("id", IdInstance);
- Опции.Вставить("token", ApiTokenInstance);
-
- ПараметрыДоступа = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "СформироватьПараметрыДоступа", Опции);
- Опции = Новый Структура;
- Опции.Вставить("access", ПараметрыДоступа);
- Опции.Вставить("chat", IDЧата);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "ПолучитьИсториюЧата", Опции);
-
- // END
-
- Обработать(Результат, "GreenAPI", "ПолучитьИсториюЧата", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура GreenAPI_ПолучитьСообщение(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- IDЧата = ПараметрыФункции["GreenAPI_TestGroupID"];
- IDСообщения = ПараметрыФункции["GreenAPI_MessageID"];
-
- Опции = Новый Структура;
- Опции.Вставить("api", ApiUrl);
- Опции.Вставить("media", MediaUrl);
- Опции.Вставить("id", IdInstance);
- Опции.Вставить("token", ApiTokenInstance);
-
- ПараметрыДоступа = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "СформироватьПараметрыДоступа", Опции);
- Опции = Новый Структура;
- Опции.Вставить("access", ПараметрыДоступа);
- Опции.Вставить("chat", IDЧата);
- Опции.Вставить("msg", IDСообщения);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "ПолучитьСообщение", Опции);
-
- // END
-
- Обработать(Результат, "GreenAPI", "ПолучитьСообщение", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура GreenAPI_ПолучитьЖурналВходящихСообщений(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("api", ApiUrl);
- Опции.Вставить("media", MediaUrl);
- Опции.Вставить("id", IdInstance);
- Опции.Вставить("token", ApiTokenInstance);
-
- ПараметрыДоступа = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "СформироватьПараметрыДоступа", Опции);
- Опции = Новый Структура;
- Опции.Вставить("access", ПараметрыДоступа);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "ПолучитьЖурналВходящихСообщений", Опции);
-
- // END
-
- Обработать(Результат, "GreenAPI", "ПолучитьЖурналВходящихСообщений", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура GreenAPI_ПолучитьЖурналИсходящихСообщений(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("api", ApiUrl);
- Опции.Вставить("media", MediaUrl);
- Опции.Вставить("id", IdInstance);
- Опции.Вставить("token", ApiTokenInstance);
-
- ПараметрыДоступа = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "СформироватьПараметрыДоступа", Опции);
- Опции = Новый Структура;
- Опции.Вставить("access", ПараметрыДоступа);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "ПолучитьЖурналИсходящихСообщений", Опции);
-
- // END
-
- Обработать(Результат, "GreenAPI", "ПолучитьЖурналИсходящихСообщений", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура GreenAPI_АрхивироватьЧат(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- IDЧата = ПараметрыФункции["GreenAPI_TestGroupID"];
-
- Опции = Новый Структура;
- Опции.Вставить("api", ApiUrl);
- Опции.Вставить("media", MediaUrl);
- Опции.Вставить("id", IdInstance);
- Опции.Вставить("token", ApiTokenInstance);
-
- ПараметрыДоступа = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "СформироватьПараметрыДоступа", Опции);
-
- OPI_GreenAPI.РазархивироватьЧат(ПараметрыДоступа, IDЧата); // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("access", ПараметрыДоступа);
- Опции.Вставить("chat", IDЧата);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "АрхивироватьЧат", Опции);
-
- // END
-
- Обработать(Результат, "GreenAPI", "АрхивироватьЧат");
-
-КонецПроцедуры
-
-Процедура GreenAPI_РазархивироватьЧат(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
- IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
-
- IDЧата = ПараметрыФункции["GreenAPI_TestGroupID"];
-
- Опции = Новый Структура;
- Опции.Вставить("api", ApiUrl);
- Опции.Вставить("media", MediaUrl);
- Опции.Вставить("id", IdInstance);
- Опции.Вставить("token", ApiTokenInstance);
-
- ПараметрыДоступа = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "СформироватьПараметрыДоступа", Опции);
- Опции = Новый Структура;
- Опции.Вставить("access", ПараметрыДоступа);
- Опции.Вставить("chat", IDЧата);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "РазархивироватьЧат", Опции);
-
- // END
-
- Обработать(Результат, "GreenAPI", "РазархивироватьЧат");
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область RCON
-
-Процедура RCON_СформироватьПараметрыСоединения(ПараметрыФункции)
-
- URL = ПараметрыФункции["RCON_URL"];
- Пароль = ПараметрыФункции["RCON_Password"];
- ТаймаутЗаписи = 20;
- ТаймаутЧтения = 20;
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("pass", Пароль);
- Опции.Вставить("rtout", ТаймаутЧтения);
- Опции.Вставить("wtout", ТаймаутЗаписи);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("rcon", "СформироватьПараметрыСоединения", Опции);
-
- // END
-
- Обработать(Результат, "RCON", "СформироватьПараметрыСоединения");
-
-КонецПроцедуры
-
-Процедура RCON_ОткрытьСоединение(ПараметрыФункции)
-
- URL = ПараметрыФункции["RCON_URL"];
- Пароль = ПараметрыФункции["RCON_Password"];
- ТаймаутЗаписи = 20;
- ТаймаутЧтения = 20;
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("pass", Пароль);
- Опции.Вставить("rtout", ТаймаутЧтения);
- Опции.Вставить("wtout", ТаймаутЗаписи);
-
- ПараметрыСоединения = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("rcon", "СформироватьПараметрыСоединения", Опции);
- Результат = OPI_RCON.ОткрытьСоединение(ПараметрыСоединения);
-
- // END
-
- Обработать(Результат, "RCON", "ОткрытьСоединение");
-
-КонецПроцедуры
-
-Процедура RCON_ВыполнитьКоманду(ПараметрыФункции)
-
- URL = ПараметрыФункции["RCON_URL"];
- Пароль = ПараметрыФункции["RCON_Password"];
- ТаймаутЗаписи = 20;
- ТаймаутЧтения = 20;
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("pass", Пароль);
- Опции.Вставить("rtout", ТаймаутЧтения);
- Опции.Вставить("wtout", ТаймаутЗаписи);
-
- ПараметрыСоединения = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("rcon", "СформироватьПараметрыСоединения", Опции);
- Соединение = OPI_RCON.ОткрытьСоединение(ПараметрыСоединения);
-
- Команда = "list";
- Опции = Новый Структура;
- Опции.Вставить("exec", Команда);
- Опции.Вставить("conn", Соединение);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("rcon", "ВыполнитьКоманду", Опции);
-
- // END
-
- Обработать(Результат, "RCON", "ВыполнитьКоманду");
-
- Команда = "list";
- Опции = Новый Структура;
- Опции.Вставить("exec", Команда);
- Опции.Вставить("conn", ПараметрыСоединения);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("rcon", "ВыполнитьКоманду", Опции);
-
- Обработать(Результат, "RCON", "ВыполнитьКоманду", "Без соединения");
-
-КонецПроцедуры
-
-Процедура RCON_ЭтоКоннектор(ПараметрыФункции)
-
- URL = ПараметрыФункции["RCON_URL"];
- Пароль = ПараметрыФункции["RCON_Password"];
- ТаймаутЗаписи = 20;
- ТаймаутЧтения = 20;
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("pass", Пароль);
- Опции.Вставить("rtout", ТаймаутЧтения);
- Опции.Вставить("wtout", ТаймаутЗаписи);
-
- ПараметрыСоединения = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("rcon", "СформироватьПараметрыСоединения", Опции);
- Соединение = OPI_RCON.ОткрытьСоединение(ПараметрыСоединения);
- Результат = OPI_RCON.ЭтоКоннектор(Соединение);
-
- // END
-
- Обработать(Результат, "RCON", "ЭтоКоннектор");
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область Ollama
-
-Процедура Ollama_ПолучитьОтвет(ПараметрыФункции)
-
- URL = ПараметрыФункции["Ollama_URL"];
- Токен = ПараметрыФункции["Ollama_Token"]; // Авторизация - не часть API Ollama
-
- Промпт = "What is 1C:Enterprise?";
- Модель = "tinyllama";
-
- ДопЗаголовки = Новый Соответствие;
- ДопЗаголовки.Вставить("Authorization", СтрШаблон("Bearer %1", Токен));
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("model", Модель);
- Опции.Вставить("prompt", Промпт);
- Опции.Вставить("headers", ДопЗаголовки);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ollama", "ПолучитьОтвет", Опции);
-
- Обработать(Результат, "Ollama", "ПолучитьОтвет"); // SKIP
-
- // С параметрами
-
- Промпт = "Ollama is 22 years old and is busy saving the world. Respond using JSON";
-
- Формат = OPI_Инструменты.JSONВСтруктуру("
- |{
- |""type"": ""object"",
- |""properties"": {
- | ""age"": {
- | ""type"": ""integer""
- | },
- | ""available"": {
- | ""type"": ""boolean""
- | }
- |},
- |""required"": [
- | ""age"",
- | ""available""
- |]
- |}");
-
- ДопПараметры = Новый Структура("format", Формат);
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("model", Модель);
- Опции.Вставить("prompt", Промпт);
- Опции.Вставить("options", ДопПараметры);
- Опции.Вставить("headers", ДопЗаголовки);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ollama", "ПолучитьОтвет", Опции);
-
- // END
-
- Обработать(Результат, "Ollama", "ПолучитьОтвет", "Параметры");
-
-КонецПроцедуры
-
-Процедура Ollama_ПолучитьОтветВКонтексте(ПараметрыФункции)
-
- URL = ПараметрыФункции["Ollama_URL"];
- Токен = ПараметрыФункции["Ollama_Token"]; // Авторизация - не часть API Ollama
-
- ДопЗаголовки = Новый Соответствие;
- ДопЗаголовки.Вставить("Authorization", СтрШаблон("Bearer %1", Токен));
-
- Модель = "tinyllama";
-
- МассивСообщений = Новый Массив;
-
- Опции = Новый Структура;
- Опции.Вставить("role", "user");
- Опции.Вставить("text", "What is 1C:Enterprise?");
-
- Вопрос1 = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ollama", "ПолучитьСтруктуруСообщенияКонтекста", Опции);
- Вопрос2 = OPI_Ollama.ПолучитьСтруктуруСообщенияКонтекста("user", "When the first version was released?"); // Вопрос без конкретики
-
- // Добавляем первый вопрос в контекст
- МассивСообщений.Добавить(Вопрос1);
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("model", Модель);
- Опции.Вставить("msgs", МассивСообщений);
- Опции.Вставить("headers", ДопЗаголовки);
-
- Ответ1 = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ollama", "ПолучитьОтветВКонтексте", Опции);
-
- Обработать(Ответ1, "Ollama", "ПолучитьОтветВКонтексте", "Предварительный"); // SKIP
-
- МассивСообщений.Добавить(Ответ1["message"]); // Добавляем ответ на первый вопрос в контекст
- МассивСообщений.Добавить(Вопрос2); // Добавляем второй вопрос в контекст
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("model", Модель);
- Опции.Вставить("msgs", МассивСообщений);
- Опции.Вставить("headers", ДопЗаголовки);
-
- Ответ2 = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ollama", "ПолучитьОтветВКонтексте", Опции);
-
- МассивСообщений.Добавить(Ответ2["message"]);
-
- // ...
-
- // END
-
- Обработать(Ответ2, "Ollama", "ПолучитьОтветВКонтексте");
-
- МассивСообщений = Новый Массив;
-
- Вопрос = Новый Структура("role,content", "user", "Hello!");
- МассивСообщений.Добавить(Вопрос);
-
- Опции = Новый Структура("seed,temperature", 101, 0);
- ДопПараметры = Новый Структура("options", Опции);
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("model", Модель);
- Опции.Вставить("msgs", МассивСообщений);
- Опции.Вставить("options", ДопПараметры);
- Опции.Вставить("headers", ДопЗаголовки);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ollama", "ПолучитьОтветВКонтексте", Опции);
-
- Обработать(Результат, "Ollama", "ПолучитьОтветВКонтексте", "Сид 1");
-
- Сообщение1 = Результат["message"]["content"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("model", Модель);
- Опции.Вставить("msgs", МассивСообщений);
- Опции.Вставить("options", ДопПараметры);
- Опции.Вставить("headers", ДопЗаголовки);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ollama", "ПолучитьОтветВКонтексте", Опции);
-
- Обработать(Результат, "Ollama", "ПолучитьОтветВКонтексте", "Сид 2");
-
- Сообщение2 = Результат["message"]["content"];
-
- Опции = Новый Структура("seed,temperature", 555, 10);
- ДопПараметры = Новый Структура("options", Опции);
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("model", Модель);
- Опции.Вставить("msgs", МассивСообщений);
- Опции.Вставить("options", ДопПараметры);
- Опции.Вставить("headers", ДопЗаголовки);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ollama", "ПолучитьОтветВКонтексте", Опции);
-
- Обработать(Результат, "Ollama", "ПолучитьОтветВКонтексте", "Сид 3");
-
- Сообщение3 = Результат["message"]["content"];
-
- Обработать(Сообщение3, "Ollama", "ПолучитьОтветВКонтексте", "Сравнение", Сообщение1, Сообщение2, Сообщение3);
-
-КонецПроцедуры
-
-Процедура Ollama_ЗагрузитьМодельВПамять(ПараметрыФункции)
-
- URL = ПараметрыФункции["Ollama_URL"];
- Токен = ПараметрыФункции["Ollama_Token"]; // Авторизация - не часть API Ollama
-
- Модель = "tinyllama";
- Период = 500;
-
- ДопЗаголовки = Новый Соответствие;
- ДопЗаголовки.Вставить("Authorization", СтрШаблон("Bearer %1", Токен));
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("model", Модель);
- Опции.Вставить("keep", Период);
- Опции.Вставить("headers", ДопЗаголовки);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ollama", "ЗагрузитьМодельВПамять", Опции);
-
- // END
-
- Обработать(Результат, "Ollama", "ЗагрузитьМодельВПамять");
-
-КонецПроцедуры
-
-Процедура Ollama_ВыгрузитьМодельИзПамяти(ПараметрыФункции)
-
- URL = ПараметрыФункции["Ollama_URL"];
- Токен = ПараметрыФункции["Ollama_Token"]; // Авторизация - не часть API Ollama
-
- Модель = "tinyllama";
-
- ДопЗаголовки = Новый Соответствие;
- ДопЗаголовки.Вставить("Authorization", СтрШаблон("Bearer %1", Токен));
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("model", Модель);
- Опции.Вставить("headers", ДопЗаголовки);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ollama", "ВыгрузитьМодельИзПамяти", Опции);
-
- // END
-
- Обработать(Результат, "Ollama", "ВыгрузитьМодельИзПамяти");
-
-КонецПроцедуры
-
-Процедура Ollama_ПолучитьСтруктуруПараметровЗапроса(ПараметрыФункции)
-
- Опции = Новый Структура;
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ollama", "ПолучитьСтруктуруПараметровЗапроса", Опции);
-
- // END
-
- Обработать(Результат, "Ollama", "ПолучитьСтруктуруПараметровЗапроса");
-
- Опции = Новый Структура;
- Опции.Вставить("empty", Истина);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ollama", "ПолучитьСтруктуруПараметровЗапроса", Опции);
-
- Обработать(Результат, "Ollama", "ПолучитьСтруктуруПараметровЗапроса", "Пустая");
-
-КонецПроцедуры
-
-Процедура Ollama_ПолучитьСтруктуруПараметровВКонтексте(ПараметрыФункции)
-
- Опции = Новый Структура;
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ollama", "ПолучитьСтруктуруПараметровВКонтексте", Опции);
-
- // END
-
- Обработать(Результат, "Ollama", "ПолучитьСтруктуруПараметровВКонтексте");
-
- Опции = Новый Структура;
- Опции.Вставить("empty", Истина);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ollama", "ПолучитьСтруктуруПараметровВКонтексте", Опции);
-
- Обработать(Результат, "Ollama", "ПолучитьСтруктуруПараметровВКонтексте", "Пустая");
-
-КонецПроцедуры
-
-Процедура Ollama_ПолучитьСтруктуруСообщенияКонтекста(ПараметрыФункции)
-
- Опции = Новый Структура;
- Опции.Вставить("role", "user");
- Опции.Вставить("text", "Hello!");
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ollama", "ПолучитьСтруктуруСообщенияКонтекста", Опции);
-
- // END
-
- Обработать(Результат, "Ollama", "ПолучитьСтруктуруСообщенияКонтекста");
-
-КонецПроцедуры
-
-Процедура Ollama_ПолучитьСтруктуруНастроекМодели(ПараметрыФункции)
-
- Опции = Новый Структура;
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ollama", "ПолучитьСтруктуруНастроекМодели", Опции);
-
- // END
-
- Обработать(Результат, "Ollama", "ПолучитьСтруктуруНастроекМодели");
-
- Опции = Новый Структура;
- Опции.Вставить("empty", Истина);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ollama", "ПолучитьСтруктуруНастроекМодели", Опции);
-
- Обработать(Результат, "Ollama", "ПолучитьСтруктуруНастроекМодели", "Пустая");
-
-КонецПроцедуры
-
-Процедура Ollama_СоздатьМодель(ПараметрыФункции)
-
- URL = ПараметрыФункции["Ollama_URL"];
- Токен = ПараметрыФункции["Ollama_Token"]; // Авторизация - не часть API Ollama
-
- Модель = "mario";
-
- ДопЗаголовки = Новый Соответствие;
- ДопЗаголовки.Вставить("Authorization", СтрШаблон("Bearer %1", Токен));
-
- Настройки = Новый Структура("from,system", "tinyllama", "You are Mario from Super Mario Bros.");
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("model", Модель);
- Опции.Вставить("settings", Настройки);
- Опции.Вставить("headers", ДопЗаголовки);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ollama", "СоздатьМодель", Опции);
-
- // END
-
- Обработать(Результат, "Ollama", "СоздатьМодель");
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("model", Модель);
- Опции.Вставить("prompt", "How are you?");
- Опции.Вставить("headers", ДопЗаголовки);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ollama", "ПолучитьОтвет", Опции);
-
- Обработать(Результат, "Ollama", "СоздатьМодель", "Запрос");
-
-КонецПроцедуры
-
-Процедура Ollama_УдалитьМодель(ПараметрыФункции)
-
- URL = ПараметрыФункции["Ollama_URL"];
- Токен = ПараметрыФункции["Ollama_Token"]; // Авторизация - не часть API Ollama
-
- Модель = "mario";
-
- ДопЗаголовки = Новый Соответствие;
- ДопЗаголовки.Вставить("Authorization", СтрШаблон("Bearer %1", Токен));
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("model", Модель);
- Опции.Вставить("headers", ДопЗаголовки);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ollama", "УдалитьМодель", Опции);
-
- // END
-
- Обработать(Результат, "Ollama", "УдалитьМодель");
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("model", "library/tinyllama:latest");
- Опции.Вставить("headers", ДопЗаголовки);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ollama", "УдалитьМодель", Опции);
- Обработать(Результат, "Ollama", "УдалитьМодель", "Tiny");
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("model", "bayselonarrend/tinyllama:latest");
- Опции.Вставить("headers", ДопЗаголовки);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ollama", "УдалитьМодель", Опции);
- Обработать(Результат, "Ollama", "УдалитьМодель", "Tiny, аккаунт");
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("headers", ДопЗаголовки);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ollama", "ПолучитьСписокМоделей", Опции);
-
- Обработать(Результат, "Ollama", "УдалитьМодель", "Список");
-
-КонецПроцедуры
-
-Процедура Ollama_ПолучитьСписокМоделей(ПараметрыФункции)
-
- URL = ПараметрыФункции["Ollama_URL"];
- Токен = ПараметрыФункции["Ollama_Token"]; // Авторизация - не часть API Ollama
-
- ДопЗаголовки = Новый Соответствие;
- ДопЗаголовки.Вставить("Authorization", СтрШаблон("Bearer %1", Токен));
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("headers", ДопЗаголовки);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ollama", "ПолучитьСписокМоделей", Опции);
-
- // END
-
- Обработать(Результат, "Ollama", "ПолучитьСписокМоделей");
-
-КонецПроцедуры
-
-Процедура Ollama_ПолучитьСписокЗапущенныхМоделей(ПараметрыФункции)
-
- URL = ПараметрыФункции["Ollama_URL"];
- Токен = ПараметрыФункции["Ollama_Token"]; // Авторизация - не часть API Ollama
-
- ДопЗаголовки = Новый Соответствие;
- ДопЗаголовки.Вставить("Authorization", СтрШаблон("Bearer %1", Токен));
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("headers", ДопЗаголовки);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ollama", "ПолучитьСписокЗапущенныхМоделей", Опции);
-
- // END
-
- Обработать(Результат, "Ollama", "ПолучитьСписокЗапущенныхМоделей");
-
-КонецПроцедуры
-
-Процедура Ollama_ПолучитьИнформациюОМодели(ПараметрыФункции)
-
- URL = ПараметрыФункции["Ollama_URL"];
- Токен = ПараметрыФункции["Ollama_Token"]; // Авторизация - не часть API Ollama
-
- Модель = "mario";
-
- ДопЗаголовки = Новый Соответствие;
- ДопЗаголовки.Вставить("Authorization", СтрШаблон("Bearer %1", Токен));
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("model", Модель);
- Опции.Вставить("verbose", Ложь);
- Опции.Вставить("headers", ДопЗаголовки);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ollama", "ПолучитьИнформациюОМодели", Опции);
-
- // END
-
- Обработать(Результат, "Ollama", "ПолучитьИнформациюОМодели");
-
-КонецПроцедуры
-
-Процедура Ollama_КопироватьМодель(ПараметрыФункции)
-
- URL = ПараметрыФункции["Ollama_URL"];
- Токен = ПараметрыФункции["Ollama_Token"]; // Авторизация - не часть API Ollama
-
- Модель = "mario";
- Имя = "mario2";
-
- ДопЗаголовки = Новый Соответствие;
- ДопЗаголовки.Вставить("Authorization", СтрШаблон("Bearer %1", Токен));
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("model", Модель);
- Опции.Вставить("name", Имя);
- Опции.Вставить("headers", ДопЗаголовки);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ollama", "КопироватьМодель", Опции);
-
- // END
-
- Обработать(Результат, "Ollama", "КопироватьМодель");
-
- OPI_Ollama.УдалитьМодель(URL, Имя, ДопЗаголовки);
-
-КонецПроцедуры
-
-Процедура Ollama_ПолучитьВерсию(ПараметрыФункции)
-
- URL = ПараметрыФункции["Ollama_URL"];
- Токен = ПараметрыФункции["Ollama_Token"]; // Авторизация - не часть API Ollama
-
- ДопЗаголовки = Новый Соответствие;
- ДопЗаголовки.Вставить("Authorization", СтрШаблон("Bearer %1", Токен));
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("headers", ДопЗаголовки);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ollama", "ПолучитьВерсию", Опции);
-
- // END
-
- Обработать(Результат, "Ollama", "ПолучитьВерсию");
-
-КонецПроцедуры
-
-Процедура Ollama_ПолучитьПредставления(ПараметрыФункции)
-
- URL = ПараметрыФункции["Ollama_URL"];
- Токен = ПараметрыФункции["Ollama_Token"]; // Авторизация - не часть API Ollama
-
- МассивСтрок = Новый Массив;
- МассивСтрок.Добавить("Why is the sky blue?");
- МассивСтрок.Добавить("Why is the grass green?");
-
- Модель = "tinyllama";
-
- ДопЗаголовки = Новый Соответствие;
- ДопЗаголовки.Вставить("Authorization", СтрШаблон("Bearer %1", Токен));
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("model", Модель);
- Опции.Вставить("input", МассивСтрок);
- Опции.Вставить("headers", ДопЗаголовки);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ollama", "ПолучитьПредставления", Опции);
-
- // END
-
- Обработать(Результат, "Ollama", "ПолучитьПредставления");
-
-КонецПроцедуры
-
-Процедура Ollama_ПолучитьСтруктуруПараметровПредставлений(ПараметрыФункции)
-
- Опции = Новый Структура;
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ollama", "ПолучитьСтруктуруПараметровПредставлений", Опции);
-
- // END
-
- Обработать(Результат, "Ollama", "ПолучитьСтруктуруПараметровПредставлений");
-
- Опции = Новый Структура;
- Опции.Вставить("empty", Истина);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ollama", "ПолучитьСтруктуруПараметровПредставлений", Опции);
-
- Обработать(Результат, "Ollama", "ПолучитьСтруктуруПараметровПредставлений", "Пустая");
-
-КонецПроцедуры
-
-Процедура Ollama_ОтправитьМодель(ПараметрыФункции)
-
- URL = ПараметрыФункции["Ollama_URL"];
- Токен = ПараметрыФункции["Ollama_Token"]; // Авторизация - не часть API Ollama
-
- Модель = "bayselonarrend/tinyllama:latest";
-
- ДопЗаголовки = Новый Соответствие;
- ДопЗаголовки.Вставить("Authorization", СтрШаблон("Bearer %1", Токен));
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("model", Модель);
- Опции.Вставить("headers", ДопЗаголовки);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ollama", "ОтправитьМодель", Опции);
-
- // END
-
- Обработать(Результат, "Ollama", "ОтправитьМодель");
-
-КонецПроцедуры
-
-Процедура Ollama_СкачатьМодель(ПараметрыФункции)
-
- URL = ПараметрыФункции["Ollama_URL"];
- Токен = ПараметрыФункции["Ollama_Token"]; // Авторизация - не часть API Ollama
-
- Модель = "tinyllama";
-
- ДопЗаголовки = Новый Соответствие;
- ДопЗаголовки.Вставить("Authorization", СтрШаблон("Bearer %1", Токен));
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("model", Модель);
- Опции.Вставить("headers", ДопЗаголовки);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ollama", "СкачатьМодель", Опции);
-
- // END
-
- Обработать(Результат, "Ollama", "СкачатьМодель");
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("model", "bayselonarrend/tinyllama:latest");
- Опции.Вставить("headers", ДопЗаголовки);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ollama", "СкачатьМодель", Опции);
-
- Обработать(Результат, "Ollama", "СкачатьМодель", "Аккаунт");
-
-КонецПроцедуры
-
-Процедура Ollama_ОтправитьBlob(ПараметрыФункции)
-
- URL = ПараметрыФункции["Ollama_URL"];
- Токен = ПараметрыФункции["Ollama_Token"]; // Авторизация - не часть API Ollama
-
- Картинка = ПараметрыФункции["Picture"]; // URL, Путь или Двоичные данные
-
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка, Истина); // SKIP
- Рандом = ПолучитьДвоичныеДанныеИзСтроки(Строка(Новый УникальныйИдентификатор)); // SKIP
- Картинка = OPI_Инструменты.СклеитьДанные(Картинка, Рандом); // SKIP
-
- ДопЗаголовки = Новый Соответствие;
- ДопЗаголовки.Вставить("Authorization", СтрШаблон("Bearer %1", Токен));
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("data", Картинка);
- Опции.Вставить("headers", ДопЗаголовки);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ollama", "ОтправитьBlob", Опции);
-
- // END
-
- Обработать(Результат, "Ollama", "ОтправитьBlob", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура Ollama_ПроверитьBlob(ПараметрыФункции)
-
- URL = ПараметрыФункции["Ollama_URL"];
- Токен = ПараметрыФункции["Ollama_Token"]; // Авторизация - не часть API Ollama
- SHA256 = ПараметрыФункции["Ollama_Blob"];
-
- ДопЗаголовки = Новый Соответствие;
- ДопЗаголовки.Вставить("Authorization", СтрШаблон("Bearer %1", Токен));
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("digest", SHA256);
- Опции.Вставить("headers", ДопЗаголовки);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ollama", "ПроверитьBlob", Опции);
-
- // END
-
- Обработать(Результат, "Ollama", "ПроверитьBlob");
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("digest", "yoyoyo");
- Опции.Вставить("headers", ДопЗаголовки);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ollama", "ПроверитьBlob", Опции);
-
- Обработать(Результат, "Ollama", "ПроверитьBlob", "Ошибка");
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область HTTP
-
-Процедура HTTPКлиент_Инициализировать(ПараметрыФункции)
-
- URL = ПараметрыФункции["HTTP_URL"];
- URL = URL + "/get";
-
- Результат = OPI_ЗапросыHTTP
- .НовыйЗапрос()
- .Инициализировать(URL) // <---
- .ОбработатьЗапрос("GET")
- .ВернутьОтветКакJSONКоллекцию();
-
- // END
-
- Обработать(Результат, "HTTPКлиент", "Инициализировать");
-
- HTTPКлиент = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать(URL)
- .ОбработатьЗапрос("POST", Ложь);
-
- Обработать(HTTPКлиент, "HTTPКлиент", "Инициализировать", "Проверка 1", ПараметрыФункции);
-
- ДругойЗапрос = HTTPКлиент.УстановитьURL(ПараметрыФункции["HTTP_URL"] + "/post")
- .ОбработатьЗапрос("POST", Ложь)
- .ВернутьЗапрос();
-
- Обработать(ДругойЗапрос, "HTTPКлиент", "Инициализировать", "Проверка 2");
-
-КонецПроцедуры
-
-Процедура HTTPКлиент_УстановитьURL(ПараметрыФункции)
-
- URL = ПараметрыФункции["HTTP_URL"];
- URL = URL + "/get";
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать()
- .УстановитьURL(URL) // <---
- .ОбработатьЗапрос("GET")
- .ВернутьОтветКакJSONКоллекцию();
-
- // END
-
- Обработать(Результат, "HTTPКлиент", "УстановитьURL");
-
- HTTPКлиент = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать()
- .УстановитьURL(URL)
- .ОбработатьЗапрос("POST", Ложь);
-
- Обработать(HTTPКлиент, "HTTPКлиент", "УстановитьURL", "Проверка", ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура HTTPКлиент_УстановитьПараметрыURL(ПараметрыФункции)
-
- URL = ПараметрыФункции["HTTP_URL"];
- URL = URL + "/get";
-
- СтруктураПараметров = Новый Структура("param1,param2", "text", 10);
-
- Результат = OPI_ЗапросыHTTP
- .НовыйЗапрос()
- .Инициализировать(URL)
- .УстановитьПараметрыURL(СтруктураПараметров) // <---
- .ОбработатьЗапрос("GET")
- .ВернутьОтветКакJSONКоллекцию();
-
- // END
-
- Обработать(Результат, "HTTPКлиент", "УстановитьПараметрыURL", , ПараметрыФункции);
-
- HTTPКлиент = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать(URL)
- .УстановитьПараметрыURL(СтруктураПараметров)
- .ОбработатьЗапрос("POST", Ложь);
-
- HTTPЗапрос = HTTPКлиент.ВернутьЗапрос();
-
- Обработать(HTTPЗапрос, "HTTPКлиент", "УстановитьПараметрыURL", "Проверка");
-
- // Проверка кодировки
-
- // Комплексная
-
- СтруктураПараметров1 = Новый Структура;
- СтруктураПараметров1.Вставить("param1", "search?text");
- СтруктураПараметров1.Вставить("param2", "John Doe");
- СтруктураПараметров1.Вставить("param3", "value&another");
- СтруктураПараметров1.Вставить("param4", "кириллица");
- СтруктураПараметров1.Вставить("param5", "");
-
- АдресРесурса1 = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать("https://example.com/page")
- .УстановитьПараметрыURL(СтруктураПараметров1)
- .ОбработатьЗапрос("GET", Ложь)
- .ВернутьЗапрос()
- .АдресРесурса;
-
- Обработать(АдресРесурса1, "HTTPКлиент", "УстановитьПараметрыURL", "Вариант 1");
-
- СтруктураПараметров2 = Новый Структура;
- СтруктураПараметров2.Вставить("param1", "search?text");
- СтруктураПараметров2.Вставить("param2", "John Doe");
-
- // Параметры в оригинальном URL
-
- АдресРесурса2 = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать("https://example.com/page?existing=value")
- .УстановитьПараметрыURL(СтруктураПараметров2)
- .ОбработатьЗапрос("GET", Ложь)
- .ВернутьЗапрос()
- .АдресРесурса;
-
- Обработать(АдресРесурса2, "HTTPКлиент", "УстановитьПараметрыURL", "Вариант 2");
-
- // Пустая строка параметров
-
- СтруктураПараметров3 = Новый Структура;
- СтруктураПараметров3.Вставить("param1", "search?text");
- СтруктураПараметров3.Вставить("param2", "John Doe");
-
- АдресРесурса3 = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать("https://example.com/page?")
- .УстановитьПараметрыURL(Структурапараметров3)
- .ОбработатьЗапрос("GET", Ложь)
- .ВернутьЗапрос()
- .АдресРесурса;
-
- Обработать(АдресРесурса3, "HTTPКлиент", "УстановитьПараметрыURL", "Вариант 3");
-
- // Спец. символы в пути
-
- СтруктураПараметров4 = Новый Структура;
- СтруктураПараметров4.Вставить("param1", "search?text");
- СтруктураПараметров4.Вставить("param2", "John Doe");
-
- АдресРесурса4 = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать("https://example.com/path with spaces")
- .УстановитьПараметрыURL(СтруктураПараметров4)
- .ОбработатьЗапрос("GET", Ложь)
- .ВернутьЗапрос()
- .АдресРесурса;
-
- Обработать(АдресРесурса4, "HTTPКлиент", "УстановитьПараметрыURL", "Вариант 4");
-
- // URL с фрагментом
-
- СтруктураПараметров5 = Новый Структура;
- СтруктураПараметров5.Вставить("param1", "search?text");
- СтруктураПараметров5.Вставить("param2", "John Doe");
-
- АдресРесурса5 = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать("https://example.com/page#section")
- .УстановитьПараметрыURL(СтруктураПараметров5)
- .ОбработатьЗапрос("GET", Ложь)
- .ВернутьЗапрос()
- .АдресРесурса;
-
- Обработать(АдресРесурса5, "HTTPКлиент", "УстановитьПараметрыURL", "Вариант 5");
-
- // Кирилица в пути
-
- СтруктураПараметров6 = Новый Структура;
- СтруктураПараметров6.Вставить("param1", "search?text");
- СтруктураПараметров6.Вставить("param2", "John Doe");
-
- АдресРесурса6 = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать("https://example.com/путь")
- .УстановитьПараметрыURL(СтруктураПараметров6)
- .ОбработатьЗапрос("GET", Ложь)
- .ВернутьЗапрос()
- .АдресРесурса;
-
- Обработать(АдресРесурса6, "HTTPКлиент", "УстановитьПараметрыURL", "Вариант 6");
-
- // Несколько параметров и кодировка
-
- СтруктураПараметров7 = Новый Структура;
- СтруктураПараметров7.Вставить("param1", "value1");
- СтруктураПараметров7.Вставить("param2", "value two");
- Структурапараметров7.Вставить("param3", "value");
-
- АдресРесурса7 = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать("https://example.com/page")
- .УстановитьПараметрыURL(СтруктураПараметров7)
- .ОбработатьЗапрос("GET", Ложь)
- .ВернутьЗапрос()
- .АдресРесурса;
-
- Обработать(АдресРесурса7, "HTTPКлиент", "УстановитьПараметрыURL", "Вариант 7");
-
-КонецПроцедуры
-
-Процедура HTTPКлиент_УстановитьФайлОтвета(ПараметрыФункции)
-
- URL = ПараметрыФункции["HTTP_URL"];
- URL = URL + "/get";
-
- ИВФ = ПолучитьИмяВременногоФайла();
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать(URL)
- .УстановитьФайлОтвета(ИВФ) // <---
- .ОбработатьЗапрос("GET")
- .ВернутьИмяФайлаТелаОтвета();
-
- // END
-
- Обработать(Результат, "HTTPКлиент", "УстановитьФайлОтвета", , ИВФ);
-
- РезультатПроверки = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать()
- .УстановитьURL(URL)
- .УстановитьФайлОтвета(ИВФ) // <---
- .ОбработатьЗапрос("GET")
- .ВернутьОтветКакДвоичныеДанные();
-
- Обработать(РезультатПроверки, "HTTPКлиент", "УстановитьФайлОтвета", "Тело", ИВФ);
-
- OPI_Инструменты.УдалитьФайлВПопытке(ИВФ, "Не удалось удалить временный файл после теста!");
-
-КонецПроцедуры
-
-Процедура HTTPКлиент_УстановитьТипДанных(ПараметрыФункции)
-
- URL = ПараметрыФункции["HTTP_URL"];
- URL = URL + "/post";
-
- ТипMIME = "text/markdown";
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать(URL)
- .УстановитьСтроковоеТело("# Привет мир!")
- .УстановитьТипДанных(ТипMIME) // <---
- .ОбработатьЗапрос("POST")
- .ВернутьОтветКакJSONКоллекцию();
-
- // END
-
- Обработать(Результат, "HTTPКлиент", "УстановитьТипДанных");
-
-КонецПроцедуры
-
-Процедура HTTPКлиент_ПолучитьЛог(ПараметрыФункции)
-
- URL = ПараметрыФункции["HTTP_URL"];
- URL = URL + "/get";
-
- СтруктураПараметров = Новый Структура("param1,param2", "text", 10);
-
- HTTPКлиент = OPI_ЗапросыHTTP
- .НовыйЗапрос()
- .Инициализировать(URL)
- .УстановитьПараметрыURL(СтруктураПараметров)
- .ОбработатьЗапрос("GET");
-
- Ответ = HTTPКлиент.ВернутьОтветКакJSONКоллекцию();
- Лог = HTTPКлиент.ПолучитьЛог(Истина);
-
- // END
-
- Обработать(Лог, "HTTPКлиент", "ПолучитьЛог");
-
-КонецПроцедуры
-
-Процедура HTTPКлиент_УстановитьДвоичноеТело(ПараметрыФункции)
-
- URL = ПараметрыФункции["HTTP_URL"];
- URL = URL + "/post";
-
- Картинка = ПараметрыФункции["Picture"]; // URL, Путь или Двоичные данные
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать(URL)
- .УстановитьДвоичноеТело(Картинка) // <---
- .ОбработатьЗапрос("POST")
- .ВернутьОтветКакJSONКоллекцию();
-
- // END
-
- Обработать(Результат, "HTTPКлиент", "УстановитьДвоичноеТело", , Картинка);
-
-КонецПроцедуры
-
-Процедура HTTPКлиент_УстановитьСтроковоеТело(ПараметрыФункции)
-
- URL = ПараметрыФункции["HTTP_URL"];
- URL = URL + "/post";
-
- Текст = "Привет мир!";
- Кодировка = "Windows-1251";
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать(URL)
- .ИспользоватьКодировку(Кодировка)
- .УстановитьСтроковоеТело(Текст) // <---
- .ОбработатьЗапрос("POST")
- .ВернутьОтветКакJSONКоллекцию();
-
- // END
-
- Обработать(Результат, "HTTPКлиент", "УстановитьСтроковоеТело");
-
-КонецПроцедуры
-
-Процедура HTTPКлиент_УстановитьJsonТело(ПараметрыФункции)
-
- URL = ПараметрыФункции["HTTP_URL"];
- URL = URL + "/post";
-
- СлучайныйМассив = Новый Массив;
- СлучайныйМассив.Добавить("A");
- СлучайныйМассив.Добавить("B");
- СлучайныйМассив.Добавить("C");
-
- Данные = Новый Структура("Поле1,Поле2,Поле3", 10, "Текст", СлучайныйМассив);
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать(URL)
- .УстановитьJsonТело(Данные) // <---
- .ОбработатьЗапрос("POST")
- .ВернутьОтветКакJSONКоллекцию();
-
- // END
-
- Обработать(Результат, "HTTPКлиент", "УстановитьJsonТело", , Данные);
-
-КонецПроцедуры
-
-Процедура HTTPКлиент_УстановитьFormТело(ПараметрыФункции)
-
- URL = ПараметрыФункции["HTTP_URL"];
- URL = URL + "/post";
-
- Данные = Новый Структура("Поле1,Поле2", "10", "Текст");
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать(URL)
- .УстановитьFormТело(Данные) // <---
- .ОбработатьЗапрос("POST")
- .ВернутьОтветКакJSONКоллекцию();
-
- // END
-
- Обработать(Результат, "HTTPКлиент", "УстановитьFormТело", , Данные);
-
-КонецПроцедуры
-
-Процедура HTTPКлиент_НачатьЗаписьТелаMultipart(ПараметрыФункции)
-
- URL = ПараметрыФункции["HTTP_URL"];
- URL = URL + "/post";
-
- Картинка = ПараметрыФункции["Picture"]; // URL, Путь или Двоичные данные
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать(URL)
- .НачатьЗаписьТелаMultipart() // <---
- .ДобавитьФайлMultipartFormData("file1", "pic.png", Картинка, "image/png")
- .ДобавитьПолеMultipartFormData("Поле1", "Текст")
- .ДобавитьПолеMultipartFormData("Поле2", "10")
- .ОбработатьЗапрос("POST")
- .ВернутьОтветКакJSONКоллекцию();
-
- // END
-
- Обработать(Результат, "HTTPКлиент", "НачатьЗаписьТелаMultipart", , Картинка);
-
-КонецПроцедуры
-
-Процедура HTTPКлиент_ДобавитьФайлMultipartFormData(ПараметрыФункции)
-
- URL = ПараметрыФункции["HTTP_URL"];
- URL = URL + "/post";
-
- Картинка = ПараметрыФункции["Picture"]; // URL, Путь или Двоичные данные
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать(URL)
- .НачатьЗаписьТелаMultipart()
- .ДобавитьФайлMultipartFormData("file1", "pic.png", Картинка, "image/png") // <---
- .ДобавитьПолеMultipartFormData("Поле1", "Текст")
- .ДобавитьПолеMultipartFormData("Поле2", "10")
- .ОбработатьЗапрос("POST")
- .ВернутьОтветКакJSONКоллекцию();
-
- // END
-
- Обработать(Результат, "HTTPКлиент", "ДобавитьФайлMultipartFormData", , Картинка);
-
-КонецПроцедуры
-
-Процедура HTTPКлиент_ДобавитьПолеMultipartFormData(ПараметрыФункции)
-
- URL = ПараметрыФункции["HTTP_URL"];
- URL = URL + "/post";
-
- Картинка = ПараметрыФункции["Picture"]; // URL, Путь или Двоичные данные
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать(URL)
- .НачатьЗаписьТелаMultipart()
- .ДобавитьФайлMultipartFormData("file1", "pic.png", Картинка, "image/png")
- .ДобавитьПолеMultipartFormData("Поле1", "Текст") // <---
- .ДобавитьПолеMultipartFormData("Поле2", "10") // <---
- .ОбработатьЗапрос("POST")
- .ВернутьОтветКакJSONКоллекцию();
-
- // END
-
- Обработать(Результат, "HTTPКлиент", "ДобавитьПолеMultipartFormData", , Картинка);
-
-КонецПроцедуры
-
-Процедура HTTPКлиент_ДобавитьДанныеRelated(ПараметрыФункции)
-
- URL = ПараметрыФункции["HTTP_URL"];
- URL = URL + "/post";
-
- СлучайныйМассив = Новый Массив;
- СлучайныйМассив.Добавить("A");
- СлучайныйМассив.Добавить("B");
- СлучайныйМассив.Добавить("C");
-
- Данные = Новый Структура("Поле1,Поле2,Поле3", 10, "Текст", СлучайныйМассив);
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать(URL)
- .НачатьЗаписьТелаMultipart(Истина, "related")
- .ДобавитьДанныеRelated(Данные, "application/json; charset=UTF-8") // <---
- .ОбработатьЗапрос("POST")
- .ВернутьОтветКакJSONКоллекцию();
-
- // END
-
- Обработать(Результат, "HTTPКлиент", "ДобавитьДанныеRelated");
-
-КонецПроцедуры
-
-Процедура HTTPКлиент_ИспользоватьКодировку(ПараметрыФункции)
-
- URL = ПараметрыФункции["HTTP_URL"];
- URL = URL + "/post";
-
- Текст = "Привет мир!";
- Кодировка = "Windows-1251";
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать(URL)
- .ИспользоватьКодировку(Кодировка) // <---
- .УстановитьСтроковоеТело(Текст)
- .ОбработатьЗапрос("POST")
- .ВернутьОтветКакJSONКоллекцию();
-
- // END
-
- Обработать(Результат, "HTTPКлиент", "ИспользоватьКодировку");
-
-КонецПроцедуры
-
-Процедура HTTPКлиент_ИспользоватьСжатиеGzip(ПараметрыФункции)
-
- URL = ПараметрыФункции["HTTP_URL"];
- URL = URL + "/post";
-
- Картинка = ПараметрыФункции["Picture"]; // URL, Путь или Двоичные данные
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать(URL)
- .УстановитьДвоичноеТело(Картинка)
- .ИспользоватьСжатиеGzip(Ложь) // <---
- .ОбработатьЗапрос("POST", Ложь)
- .ВернутьЗапрос();
-
- // END
-
- Обработать(Результат, "HTTPКлиент", "ИспользоватьСжатиеGzip");
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать(URL)
- .УстановитьДвоичноеТело(Картинка)
- .ИспользоватьСжатиеGzip(Истина) // <---
- .ОбработатьЗапрос("POST", Ложь)
- .ВернутьЗапрос();
-
- Обработать(Результат, "HTTPКлиент", "ИспользоватьСжатиеGzip", "Включено");
-
-КонецПроцедуры
-
-Процедура HTTPКлиент_ИспользоватьПоляТелаВOAuth(ПараметрыФункции)
-
- URL = ПараметрыФункции["HTTP_URL"];
- URL = URL + "/post";
-
- Картинка = ПараметрыФункции["Picture"]; // URL, Путь или Двоичные данные
-
- Токен = "***";
- Секрет = "***";
- КлючПользователя = "***";
- СекретПользователя = "***";
- Версия = "1.0";
-
- НовыйЗапрос = OPI_ЗапросыHTTP.НовыйЗапрос().Инициализировать(URL);
-
- Результат = НовыйЗапрос
- .НачатьЗаписьТелаMultipart()
- .ДобавитьФайлMultipartFormData("file1", "pic.png", Картинка, "image/png")
- .ДобавитьПолеMultipartFormData("field1", "Текст")
- .ДобавитьПолеMultipartFormData("field2", "10")
- .ИспользоватьПоляТелаВOAuth(Ложь) // <---
- .ДобавитьOauthV1Авторизацию(Токен, Секрет, КлючПользователя, СекретПользователя, Версия)
- .ОбработатьЗапрос("POST")
- .ВернутьОтветКакJSONКоллекцию();
-
- // END
-
- ЛогСтрокой = НовыйЗапрос.ПолучитьЛог(Истина);
- Обработать(Результат, "HTTPКлиент", "ИспользоватьПоляТелаВOAuth", , ЛогСтрокой);
-
- Результат = OPI_ЗапросыHTTP
- .НовыйЗапрос()
- .Инициализировать(URL)
- .НачатьЗаписьТелаMultipart()
- .ДобавитьФайлMultipartFormData("file1", "pic.png", Картинка, "image/png")
- .ДобавитьПолеMultipartFormData("field1", "Текст")
- .ДобавитьПолеMultipartFormData("field2", "10")
- .ИспользоватьПоляТелаВOAuth(Истина) // <---
- .ДобавитьOauthV1Авторизацию(Токен, Секрет, КлючПользователя, СекретПользователя, Версия)
- .ОбработатьЗапрос("POST", Ложь)
- .ПолучитьЛог(Истина);
-
- Обработать(Результат, "HTTPКлиент", "ИспользоватьПоляТелаВOAuth", "Включено");
-
-КонецПроцедуры
-
-Процедура HTTPКлиент_УстановитьЗаголовки(ПараметрыФункции)
-
- URL = ПараметрыФункции["HTTP_URL"];
- URL = URL + "/get";
-
- Заголовки = Новый Соответствие;
- Заголовки.Вставить("X-Header1", "Value1");
- Заголовки.Вставить("X-Header2", "Value2");
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать()
- .УстановитьURL(URL)
- .УстановитьЗаголовки(Заголовки) // <---
- .ОбработатьЗапрос("GET")
- .ВернутьОтветКакJSONКоллекцию();
-
- // END
-
- Обработать(Результат, "HTTPКлиент", "УстановитьЗаголовки");
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать()
- .УстановитьURL(URL)
- .ДобавитьBearerАвторизацию("1111")
- .УстановитьЗаголовки(Заголовки, Истина) // <---
- .ОбработатьЗапрос("GET")
- .ВернутьОтветКакJSONКоллекцию();
-
- Обработать(Результат, "HTTPКлиент", "УстановитьЗаголовки", "Перезапись");
-
-КонецПроцедуры
-
-Процедура HTTPКлиент_ДобавитьЗаголовок(ПараметрыФункции)
-
- URL = ПараметрыФункции["HTTP_URL"];
- URL = URL + "/get";
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать()
- .УстановитьURL(URL)
- .ДобавитьЗаголовок("X-Header1", "Value1") // <---
- .ДобавитьЗаголовок("X-Header2", "Value2") // <---
- .ОбработатьЗапрос("GET")
- .ВернутьОтветКакJSONКоллекцию();
-
- // END
-
- Обработать(Результат, "HTTPКлиент", "ДобавитьЗаголовок");
-
- Заголовки = Новый Соответствие;
- Заголовки.Вставить("X-Header1", "Value1");
- Заголовки.Вставить("X-Header2", "Value2");
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать()
- .УстановитьURL(URL)
- .ДобавитьBearerАвторизацию("1111")
- .ДобавитьЗаголовок("X-Header3", "BadValue") // <---
- .ДобавитьЗаголовок("X-Header4", "BadValue")
- .УстановитьЗаголовки(Заголовки, Истина) // <---
- .ОбработатьЗапрос("GET")
- .ВернутьОтветКакJSONКоллекцию();
-
- Обработать(Результат, "HTTPКлиент", "ДобавитьЗаголовок", "Замена");
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать()
- .УстановитьURL(URL)
- .ДобавитьBearerАвторизацию("1111")
- .ДобавитьЗаголовок("X-Header3", "BadValue") // <---
- .ДобавитьЗаголовок("X-Header4", "BadValue")
- .УстановитьЗаголовки(Заголовки) // <---
- .ОбработатьЗапрос("GET")
- .ВернутьОтветКакJSONКоллекцию();
-
- Обработать(Результат, "HTTPКлиент", "ДобавитьЗаголовок", "Дополнение");
-
-КонецПроцедуры
-
-Процедура HTTPКлиент_ДобавитьBasicАвторизацию(ПараметрыФункции)
-
- URL = ПараметрыФункции["HTTP_URL"];
- URL = URL + "/get";
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать()
- .УстановитьURL(URL)
- .ДобавитьBasicАвторизацию("user", "password") // <---
- .ОбработатьЗапрос("GET")
- .ВернутьОтветКакJSONКоллекцию();
-
- // END
-
- Обработать(Результат, "HTTPКлиент", "ДобавитьBasicАвторизацию");
-
-КонецПроцедуры
-
-Процедура HTTPКлиент_ДобавитьBearerАвторизацию(ПараметрыФункции)
-
- URL = ПараметрыФункции["HTTP_URL"];
- URL = URL + "/get";
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать()
- .УстановитьURL(URL)
- .ДобавитьBearerАвторизацию("123123") // <---
- .ОбработатьЗапрос("GET")
- .ВернутьОтветКакJSONКоллекцию();
-
- // END
-
- Обработать(Результат, "HTTPКлиент", "ДобавитьBearerАвторизацию");
-
-КонецПроцедуры
-
-Процедура HTTPКлиент_ДобавитьAWS4Авторизацию(ПараметрыФункции)
-
- URL = ПараметрыФункции["HTTP_URL"];
- URL = URL + "/get";
-
- AccessKey = "AccessKey";
- SecretKey = "SecretKey";
- Region = "Region";
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать()
- .УстановитьURL(URL)
- .ДобавитьAWS4Авторизацию(AccessKey, SecretKey, Region) // <---
- .ОбработатьЗапрос("GET")
- .ВернутьОтветКакJSONКоллекцию();
-
- // END
-
- Обработать(Результат, "HTTPКлиент", "ДобавитьAWS4Авторизацию");
-
-КонецПроцедуры
-
-Процедура HTTPКлиент_ДобавитьOAuthV1Авторизацию(ПараметрыФункции)
-
- URL = ПараметрыФункции["HTTP_URL"];
- URL = URL + "/get";
-
- Токен = "***";
- Секрет = "***";
- КлючПользователя = "***";
- СекретПользователя = "***";
- Версия = "1.0";
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать(URL)
- .ДобавитьOAuthV1Авторизацию(Токен, Секрет, КлючПользователя, СекретПользователя, Версия) // <---
- .ОбработатьЗапрос("GET")
- .ВернутьОтветКакJSONКоллекцию();
-
- // END
-
- Обработать(Результат, "HTTPКлиент", "ДобавитьOAuthV1Авторизацию");
-
-КонецПроцедуры
-
-Процедура HTTPКлиент_УстановитьАлгоритмOAuthV1(ПараметрыФункции)
-
- URL = ПараметрыФункции["HTTP_URL"];
- URL = URL + "/get";
-
- Токен = "***";
- Секрет = "***";
- КлючПользователя = "***";
- СекретПользователя = "***";
- Версия = "1.0";
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать(URL)
- .ДобавитьOAuthV1Авторизацию(Токен, Секрет, КлючПользователя, СекретПользователя, Версия)
- .УстановитьАлгоритмOAuthV1("HMAC", "SHA1") // <---
- .ОбработатьЗапрос("GET")
- .ВернутьОтветКакJSONКоллекцию();
-
- // END
-
- Обработать(Результат, "HTTPКлиент", "УстановитьАлгоритмOAuthV1");
-
-КонецПроцедуры
-
-Процедура HTTPКлиент_ОбработатьЗапрос(ПараметрыФункции)
-
- URL = ПараметрыФункции["HTTP_URL"];
- URL = URL + "/get";
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать()
- .УстановитьURL(URL)
- .ОбработатьЗапрос("GET") // <---
- .ВернутьОтветКакJSONКоллекцию();
-
- // END
-
- Обработать(Результат, "HTTPКлиент", "ОбработатьЗапрос");
-
-КонецПроцедуры
-
-Процедура HTTPКлиент_ВыполнитьЗапрос(ПараметрыФункции)
-
- URL = ПараметрыФункции["HTTP_URL"];
- URL = URL + "/get";
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать()
- .УстановитьURL(URL)
- .ОбработатьЗапрос("GET", Ложь)
- .ВыполнитьЗапрос() // <---
- .ВернутьОтветКакJSONКоллекцию();
-
- // END
-
- Обработать(Результат, "HTTPКлиент", "ВыполнитьЗапрос");
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать()
- .УстановитьURL(URL)
- .ОбработатьЗапрос("GET", Ложь)
- .ВернутьОтвет(Истина);
-
- Обработать(Результат, "HTTPКлиент", "ВыполнитьЗапрос", "Без выполнения");
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать()
- .УстановитьURL(URL)
- .ОбработатьЗапрос("GET", Ложь)
- .ВыполнитьЗапрос()
- .ВернутьОтвет(Истина);
-
- Обработать(Результат, "HTTPКлиент", "ВыполнитьЗапрос", "Выполнение");
-
-КонецПроцедуры
-
-Процедура HTTPКлиент_ВернутьЗапрос(ПараметрыФункции)
-
- URL = ПараметрыФункции["HTTP_URL"];
- URL = URL + "/get";
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать()
- .УстановитьURL(URL)
- .ОбработатьЗапрос("GET", Ложь)
- .ВернутьЗапрос(); // <---
-
- // END
-
- Обработать(Результат, "HTTPКлиент", "ВернутьЗапрос");
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать()
- .УстановитьURL(URL)
- .ВернутьЗапрос(Истина);
-
- Обработать(Результат, "HTTPКлиент", "ВернутьЗапрос", "Принудительно");
-
-КонецПроцедуры
-
-Процедура HTTPКлиент_ВернутьСоединение(ПараметрыФункции)
-
- URL = ПараметрыФункции["HTTP_URL"];
- URL = URL + "/get";
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать()
- .УстановитьURL(URL)
- .ОбработатьЗапрос("GET", Ложь)
- .ВернутьСоединение(); // <---
-
- // END
-
- Обработать(Результат, "HTTPКлиент", "ВернутьСоединение");
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать()
- .УстановитьURL(URL)
- .ВернутьСоединение(Истина);
-
- Обработать(Результат, "HTTPКлиент", "ВернутьСоединение", "Принудительно");
-
-КонецПроцедуры
-
-Процедура HTTPКлиент_ВернутьОтвет(ПараметрыФункции)
-
- URL = ПараметрыФункции["HTTP_URL"];
- URL = URL + "/post";
-
- Картинка = ПараметрыФункции["Picture"]; // URL, Путь или Двоичные данные
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать(URL)
- .УстановитьДвоичноеТело(Картинка)
- .ОбработатьЗапрос("POST")
- .ВернутьОтвет(); // <---
-
- // END
-
- Обработать(Результат, "HTTPКлиент", "ВернутьОтвет");
-
-КонецПроцедуры
-
-Процедура HTTPКлиент_ВернутьОтветКакJSONКоллекцию(ПараметрыФункции)
-
- URL = ПараметрыФункции["HTTP_URL"];
- URL = URL + "/post";
-
- Картинка = ПараметрыФункции["Picture"]; // URL, Путь или Двоичные данные
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать(URL)
- .УстановитьДвоичноеТело(Картинка)
- .ОбработатьЗапрос("POST")
- .ВернутьОтветКакJSONКоллекцию(); // <---
-
- // END
-
- Обработать(Результат, "HTTPКлиент", "ВернутьОтветКакJSONКоллекцию");
-
-КонецПроцедуры
-
-Процедура HTTPКлиент_ВернутьОтветКакДвоичныеДанные(ПараметрыФункции)
-
- URL = ПараметрыФункции["HTTP_URL"];
- URL = URL + "/post";
-
- Картинка = ПараметрыФункции["Picture"]; // URL, Путь или Двоичные данные
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать(URL)
- .УстановитьДвоичноеТело(Картинка)
- .ОбработатьЗапрос("POST")
- .ВернутьОтветКакДвоичныеДанные(); // <---
-
- // END
-
- Обработать(Результат, "HTTPКлиент", "ВернутьОтветКакДвоичныеДанные");
-
-КонецПроцедуры
-
-Процедура HTTPКлиент_ВернутьОтветКакСтроку(ПараметрыФункции)
-
- URL = ПараметрыФункции["HTTP_URL"];
- URL = URL + "/post";
-
- Картинка = ПараметрыФункции["Picture"]; // URL, Путь или Двоичные данные
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать(URL)
- .УстановитьДвоичноеТело(Картинка)
- .ОбработатьЗапрос("POST")
- .ВернутьОтветКакСтроку(); // <---
-
- // END
-
- Обработать(Результат, "HTTPКлиент", "ВернутьОтветКакСтроку");
-
-КонецПроцедуры
-
-Процедура HTTPКлиент_ВернутьИмяФайлаТелаОтвета(ПараметрыФункции)
-
- URL = ПараметрыФункции["HTTP_URL"];
- URL = URL + "/get";
-
- ИВФ = ПолучитьИмяВременногоФайла();
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать(URL)
- .УстановитьФайлОтвета(ИВФ) // <---
- .ОбработатьЗапрос("GET")
- .ВернутьИмяФайлаТелаОтвета();
-
- // END
-
- Обработать(Результат, "HTTPКлиент", "ВернутьИмяФайлаТелаОтвета", , ИВФ);
-
- OPI_Инструменты.УдалитьФайлВПопытке(ИВФ, "Не удалось удалить временный файл после теста!");
-
-КонецПроцедуры
-
-Процедура HTTPКлиент_УстановитьПрокси(ПараметрыФункции)
-
- URL = ПараметрыФункции["HTTP_URL"];
- URL = URL + "/get";
-
- НастройкиПрокси = Новый ИнтернетПрокси;
- НастройкиПрокси.Установить("https", "proxy.com", 443, "user", "password", Ложь);
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать()
- .УстановитьURL(URL)
- .УстановитьПрокси(НастройкиПрокси) // <---
- .ОбработатьЗапрос("GET", Ложь)
- .ВернутьСоединение();
-
- // END
-
- Обработать(Результат, "HTTPКлиент", "УстановитьПрокси");
-
-КонецПроцедуры
-
-Процедура HTTPКлиент_УстановитьТаймаут(ПараметрыФункции)
-
- URL = ПараметрыФункции["HTTP_URL"];
- URL = URL + "/get";
-
- Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать()
- .УстановитьURL(URL)
- .УстановитьТаймаут(60) // <---
- .ОбработатьЗапрос("GET", Ложь)
- .ВернутьСоединение();
-
- // END
-
- Обработать(Результат, "HTTPКлиент", "УстановитьТаймаут");
-
-КонецПроцедуры
-
-Процедура HTTPКлиент_ИспользоватьКодированиеURL(ПараметрыФункции)
-
- URL = ПараметрыФункции["HTTP_URL"];
- URL = URL + "/get";
-
- СтруктураПараметров = Новый Структура;
- СтруктураПараметров.Вставить("param1", "search?text");
- СтруктураПараметров.Вставить("param2", "John Doe");
- СтруктураПараметров.Вставить("param3", "value&another");
- СтруктураПараметров.Вставить("param4", "кириллица");
- СтруктураПараметров.Вставить("param5", "");
-
- БезКодирования = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать("https://example.com/page")
- .УстановитьПараметрыURL(СтруктураПараметров)
- .ИспользоватьКодированиеURL(Ложь) // <---
- .ОбработатьЗапрос("GET", Ложь)
- .ВернутьЗапрос()
- .АдресРесурса;
-
- СКодированием = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать("https://example.com/page")
- .УстановитьПараметрыURL(СтруктураПараметров)
- .ОбработатьЗапрос("GET", Ложь)
- .ВернутьЗапрос()
- .АдресРесурса;
-
- // END
-
- Результат = Новый Соответствие;
- Результат.Вставить("Без кодирования", БезКодирования);
- Результат.Вставить("С кодированием" , СКодированием);
-
- Обработать(Результат, "HTTPКлиент", "ИспользоватьКодированиеURL");
-
-КонецПроцедуры
-
-Процедура HTTPКлиент_РазделятьМассивыВURL(ПараметрыФункции)
-
- URL = ПараметрыФункции["HTTP_URL"];
- URL = URL + "/get";
-
- ПараметрМассив = Новый Массив;
- ПараметрМассив.Добавить("val1");
- ПараметрМассив.Добавить("val2");
- ПараметрМассив.Добавить("val3");
-
- СтруктураПараметров = Новый Структура("arrayfield", ПараметрМассив);
-
- Разделение = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать("https://example.com/page")
- .УстановитьПараметрыURL(СтруктураПараметров)
- .РазделятьМассивыВURL(Истина) // <---
- .ОбработатьЗапрос("GET", Ложь)
- .ВернутьЗапрос()
- .АдресРесурса;
-
- РазделениеPhp = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать("https://example.com/page")
- .УстановитьПараметрыURL(СтруктураПараметров)
- .РазделятьМассивыВURL(Истина, Истина) // <---
- .ОбработатьЗапрос("GET", Ложь)
- .ВернутьЗапрос()
- .АдресРесурса;
-
- БезРазделения = OPI_ЗапросыHTTP.НовыйЗапрос()
- .Инициализировать("https://example.com/page")
- .УстановитьПараметрыURL(СтруктураПараметров)
- .ОбработатьЗапрос("GET", Ложь)
- .ВернутьЗапрос()
- .АдресРесурса;
-
- // END
-
- Результат = Новый Соответствие;
- Результат.Вставить("Без разделения", БезРазделения);
- Результат.Вставить("Разделение" , Разделение);
- Результат.Вставить("PHP" , РазделениеPhp);
-
- Обработать(Результат, "HTTPКлиент", "РазделятьМассивыВURL");
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область OpenAI
-
-Процедура OpenAI_ПолучитьОтвет(ПараметрыФункции)
-
- URL = ПараметрыФункции["OpenAI_URL"];
- Токен = ПараметрыФункции["OpenAI_Token"];
-
- // Текстовые сообщения
-
- Сообщения = Новый Массив;
- Сообщения.Добавить(OPI_OpenAI.ПолучитьСтруктуруСообщения("user" , "What is 1C:Enterprise?"));
- Сообщения.Добавить(OPI_OpenAI.ПолучитьСтруктуруСообщения("assistant", "1C:Enterprise is a full-stack, low-code platform"));
- Сообщения.Добавить(OPI_OpenAI.ПолучитьСтруктуруСообщения("user" , "When the first version was released?"));
-
- Модель = "smolvlm-256m-instruct";
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("token", Токен);
- Опции.Вставить("model", Модель);
- Опции.Вставить("msgs", Сообщения);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("openai", "ПолучитьОтвет", Опции);
-
- Обработать(Результат, "OpenAI", "ПолучитьОтвет"); // SKIP
-
- // Картинки
-
- Модель = "moondream2-20250414";
- Файл = ПараметрыФункции["Picture"]; // URL, Путь или Двоичные данные
- ИмяФайла = СтрШаблон("%1.png", Строка(Новый УникальныйИдентификатор()));
- Назначение = "user_data";
-
- Сообщения = Новый Массив;
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("token", Токен);
- Опции.Вставить("name", ИмяФайла);
- Опции.Вставить("data", Файл);
- Опции.Вставить("purpose", Назначение);
-
- ЗагрузкаКартинки = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("openai", "ЗагрузитьФайл", Опции);
-
- Обработать(ЗагрузкаКартинки, "OpenAI", "ПолучитьОтвет", "Загрузка картинки"); // SKIP
-
- IDКартинки = ЗагрузкаКартинки["id"];
-
- Опции = Новый Структура;
- Опции.Вставить("role", "user");
- Опции.Вставить("file", IDКартинки);
- Опции.Вставить("prompt", "What is in this image?");
-
- Описание = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("openai", "ПолучитьСтруктуруСообщенияКартинки", Опции);
-
- Сообщения.Добавить(Описание);
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("token", Токен);
- Опции.Вставить("model", Модель);
- Опции.Вставить("msgs", Сообщения);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("openai", "ПолучитьОтвет", Опции);
-
- OPI_OpenAI.УдалитьФайл(URL, Токен, IDКартинки);
-
- // END
-
- Обработать(Результат, "OpenAI", "ПолучитьОтвет", "Картинка");
-
-КонецПроцедуры
-
-Процедура OpenAI_ПолучитьПредставления(ПараметрыФункции)
-
- URL = ПараметрыФункции["OpenAI_URL"];
- Токен = ПараметрыФункции["OpenAI_Token"];
-
- Текст = "What is 1C:Enterprise?";
- Модель = "arcee-ai_afm-4.5b";
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("token", Токен);
- Опции.Вставить("model", Модель);
- Опции.Вставить("input", Текст);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("openai", "ПолучитьПредставления", Опции);
-
- // END
-
- Обработать(Результат, "OpenAI", "ПолучитьПредставления");
-
-КонецПроцедуры
-
-Процедура OpenAI_СоздатьАссистента(ПараметрыФункции)
-
- URL = ПараметрыФункции["OpenAI_URL"];
- Токен = ПараметрыФункции["OpenAI_Token"];
-
- Инструкция = "You are a personal math tutor. When asked a question, write and run Python code to answer the question.";
- Модель = "smolvlm-256m-instruct";
- Имя = "Math tutor";
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("token", Токен);
- Опции.Вставить("model", Модель);
- Опции.Вставить("name", Имя);
- Опции.Вставить("inst", Инструкция);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("openai", "СоздатьАссистента", Опции);
-
- // END
-
- Обработать(Результат, "OpenAI", "СоздатьАссистента", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура OpenAI_УдалитьАссистента(ПараметрыФункции)
-
- URL = ПараметрыФункции["OpenAI_URL"];
- Токен = ПараметрыФункции["OpenAI_Token"];
-
- IDАссистента = ПараметрыФункции["OpenAI_Assistant"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("token", Токен);
- Опции.Вставить("id", IDАссистента);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("openai", "УдалитьАссистента", Опции);
-
- // END
-
- Обработать(Результат, "OpenAI", "УдалитьАссистента", , IDАссистента);
-
-КонецПроцедуры
-
-Процедура OpenAI_ПолучитьАссистента(ПараметрыФункции)
-
- URL = ПараметрыФункции["OpenAI_URL"];
- Токен = ПараметрыФункции["OpenAI_Token"];
-
- IDАссистента = ПараметрыФункции["OpenAI_Assistant"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("token", Токен);
- Опции.Вставить("id", IDАссистента);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("openai", "ПолучитьАссистента", Опции);
-
- // END
-
- Обработать(Результат, "OpenAI", "ПолучитьАссистента");
-
-КонецПроцедуры
-
-Процедура OpenAI_ПолучитьСписокАссистентов(ПараметрыФункции)
-
- URL = ПараметрыФункции["OpenAI_URL"];
- Токен = ПараметрыФункции["OpenAI_Token"];
-
- Количество = 2;
- ДопПараметры = Новый Структура("after,order", "asst_2", "desc");
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("token", Токен);
- Опции.Вставить("limit", Количество);
- Опции.Вставить("options", ДопПараметры);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("openai", "ПолучитьСписокАссистентов", Опции);
-
- // END
-
- Обработать(Результат, "OpenAI", "ПолучитьСписокАссистентов");
-
-КонецПроцедуры
-
-Процедура OpenAI_ЗагрузитьФайл(ПараметрыФункции)
-
- URL = ПараметрыФункции["OpenAI_URL"];
- Токен = ПараметрыФункции["OpenAI_Token"];
-
- Файл = ПараметрыФункции["Picture"]; // URL, Путь или Двоичные данные
-
- ИмяФайла = СтрШаблон("%1.png", Строка(Новый УникальныйИдентификатор()));
- Назначение = "assistants";
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("token", Токен);
- Опции.Вставить("name", ИмяФайла);
- Опции.Вставить("data", Файл);
- Опции.Вставить("purpose", Назначение);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("openai", "ЗагрузитьФайл", Опции);
-
- // END
-
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Файл);
- Обработать(Результат, "OpenAI", "ЗагрузитьФайл", , ПараметрыФункции, ИмяФайла, Файл.Размер() + 2);
-
-КонецПроцедуры
-
-Процедура OpenAI_УдалитьФайл(ПараметрыФункции)
-
- URL = ПараметрыФункции["OpenAI_URL"];
- Токен = ПараметрыФункции["OpenAI_Token"];
-
- IDФайла = ПараметрыФункции["OpenAI_File"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("token", Токен);
- Опции.Вставить("id", IDФайла);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("openai", "УдалитьФайл", Опции);
-
- // END
-
- Обработать(Результат, "OpenAI", "УдалитьФайл", , IDФайла);
-
-КонецПроцедуры
-
-Процедура OpenAI_ПолучитьИнформациюОФайле(ПараметрыФункции)
-
- URL = ПараметрыФункции["OpenAI_URL"];
- Токен = ПараметрыФункции["OpenAI_Token"];
-
- IDФайла = ПараметрыФункции["OpenAI_File"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("token", Токен);
- Опции.Вставить("id", IDФайла);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("openai", "ПолучитьИнформациюОФайле", Опции);
-
- // END
-
- Обработать(Результат, "OpenAI", "ПолучитьИнформациюОФайле");
-
-КонецПроцедуры
-
-Процедура OpenAI_ПолучитьСписокФайлов(ПараметрыФункции)
-
- URL = ПараметрыФункции["OpenAI_URL"];
- Токен = ПараметрыФункции["OpenAI_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("openai", "ПолучитьСписокФайлов", Опции);
-
- // END
-
- Обработать(Результат, "OpenAI", "ПолучитьСписокФайлов");
-
-КонецПроцедуры
-
-Процедура OpenAI_СкачатьФайл(ПараметрыФункции)
-
- URL = ПараметрыФункции["OpenAI_URL"];
- Токен = ПараметрыФункции["OpenAI_Token"];
-
- IDФайла = ПараметрыФункции["OpenAI_File"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("token", Токен);
- Опции.Вставить("id", IDФайла);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("openai", "СкачатьФайл", Опции);
-
- // END
-
- Обработать(Результат, "OpenAI", "СкачатьФайл", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура OpenAI_ПолучитьСтруктуруСообщения(ПараметрыФункции)
-
- Опции = Новый Структура;
- Опции.Вставить("role", "user");
- Опции.Вставить("text", "What is 1C:Enterprise?");
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("openai", "ПолучитьСтруктуруСообщения", Опции);
-
- // END
-
- Обработать(Результат, "OpenAI", "ПолучитьСтруктуруСообщения");
-
-КонецПроцедуры
-
-Процедура OpenAI_ПолучитьСтруктуруСообщенияКартинки(ПараметрыФункции)
-
- URL = ПараметрыФункции["OpenAI_URL"];
- Токен = ПараметрыФункции["OpenAI_Token"];
- Картинка = ПараметрыФункции["OpenAI_File"];
-
- Опции = Новый Структура;
- Опции.Вставить("role", "user");
- Опции.Вставить("file", Картинка);
- Опции.Вставить("prompt", "What is in this image?");
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("openai", "ПолучитьСтруктуруСообщенияКартинки", Опции);
-
- // END
-
- Обработать(Результат, "OpenAI", "ПолучитьСтруктуруСообщенияКартинки");
-
-КонецПроцедуры
-
-Процедура OpenAI_СгенерироватьРечь(ПараметрыФункции)
-
- URL = ПараметрыФункции["OpenAI_URL"];
- Токен = ПараметрыФункции["OpenAI_Token"];
-
- Текст = "Attack ships on fire off the shoulder of Orion bright as magnesium";
- Модель = "bark-cpp-small";
-
- ДопПараметры = Новый Структура("response_format", "wav");
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("token", Токен);
- Опции.Вставить("model", Модель);
- Опции.Вставить("input", Текст);
- Опции.Вставить("options", ДопПараметры);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("openai", "СгенерироватьРечь", Опции);
-
- // END
-
- Обработать(Результат, "OpenAI", "СгенерироватьРечь", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура OpenAI_СоздатьТранскрипцию(ПараметрыФункции)
-
- URL = ПараметрыФункции["OpenAI_URL"];
- Токен = ПараметрыФункции["OpenAI_Token"];
-
- Аудио = ПараметрыФункции["OpenAI_Speech"];
- Модель = "whisper-1";
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("token", Токен);
- Опции.Вставить("model", Модель);
- Опции.Вставить("audio", Аудио);
- Опции.Вставить("type", "audio/wav");
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("openai", "СоздатьТранскрипцию", Опции);
-
- // END
-
- OPI_Инструменты.УдалитьФайлВПопытке(Аудио, "Не удалось удалить временный файл после теста!");
-
- Обработать(Результат, "OpenAI", "СоздатьТранскрипцию");
-
-КонецПроцедуры
-
-Процедура OpenAI_ПолучитьКартинки(ПараметрыФункции)
-
- URL = ПараметрыФункции["OpenAI_URL"];
- Токен = ПараметрыФункции["OpenAI_Token"];
-
- Модель = "sd-1.5-ggml";
- Опции = Новый Структура;
- Опции.Вставить("prompt", "Yellow alpaca");
- Опции.Вставить("amount", 1);
- Опции.Вставить("size", "64x64");
-
- Описание = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("openai", "ПолучитьСтруктуруОписанияКартинок", Опции);
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("token", Токен);
- Опции.Вставить("model", Модель);
- Опции.Вставить("descr", Описание);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("openai", "ПолучитьКартинки", Опции);
-
- // END
-
- Обработать(Результат, "OpenAI", "ПолучитьКартинки");
-
-КонецПроцедуры
-
-Процедура OpenAI_ПолучитьСписокМоделей(ПараметрыФункции)
-
- URL = ПараметрыФункции["OpenAI_URL"];
- Токен = ПараметрыФункции["OpenAI_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("token", Токен);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("openai", "ПолучитьСписокМоделей", Опции);
-
- // END
-
- Обработать(Результат, "OpenAI", "ПолучитьСписокМоделей");
-
-КонецПроцедуры
-
-Процедура OpenAI_ПолучитьСообщениеАссистента(ПараметрыФункции)
-
- Опции = Новый Структура;
- Опции.Вставить("text", "What is 1C:Enterprise?");
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("openai", "ПолучитьСообщениеАссистента", Опции);
-
- // END
-
- Опции = Новый Структура;
- Опции.Вставить("role", "assistant");
- Опции.Вставить("text", "What is 1C:Enterprise?");
-
- Проверка = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("openai", "ПолучитьСтруктуруСообщения", Опции);
- Проверка = OPI_Инструменты.JSONСтрокой(Проверка);
- Результат = OPI_Инструменты.JSONСтрокой(Результат);
-
- Обработать(Результат, "OpenAI", "ПолучитьСообщениеАссистента", , Проверка);
-
-КонецПроцедуры
-
-Процедура OpenAI_ПолучитьСообщениеПользователя(ПараметрыФункции)
-
- Опции = Новый Структура;
- Опции.Вставить("text", "What is 1C:Enterprise?");
- Опции.Вставить("name", "Vitaly");
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("openai", "ПолучитьСообщениеПользователя", Опции);
-
- // END
-
- Опции = Новый Структура;
- Опции.Вставить("role", "user");
- Опции.Вставить("text", "What is 1C:Enterprise?");
- Опции.Вставить("name", "Vitaly");
-
- Проверка = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("openai", "ПолучитьСтруктуруСообщения", Опции);
- Проверка = OPI_Инструменты.JSONСтрокой(Проверка);
- Результат = OPI_Инструменты.JSONСтрокой(Результат);
-
- Обработать(Результат, "OpenAI", "ПолучитьСообщениеПользователя", , Проверка);
-
-КонецПроцедуры
-
-Процедура OpenAI_ПолучитьСообщениеСистемы(ПараметрыФункции)
-
- Опции = Новый Структура;
- Опции.Вставить("text", "What is 1C:Enterprise?");
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("openai", "ПолучитьСообщениеСистемы", Опции);
-
- // END
-
- Опции = Новый Структура;
- Опции.Вставить("role", "system");
- Опции.Вставить("text", "What is 1C:Enterprise?");
-
- Проверка = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("openai", "ПолучитьСтруктуруСообщения", Опции);
- Проверка = OPI_Инструменты.JSONСтрокой(Проверка);
- Результат = OPI_Инструменты.JSONСтрокой(Результат);
-
- Обработать(Результат, "OpenAI", "ПолучитьСообщениеСистемы", , Проверка);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область MSSQL
-
-Процедура MSSQL_СформироватьСтрокуПодключения(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "bayselonarrend";
- Пароль = ПараметрыФункции["PG_Password"];
-
- Опции = Новый Структура;
- Опции.Вставить("addr", Адрес);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mssql", "СформироватьСтрокуПодключения", Опции);
-
- // END
-
- Результат = СтрЗаменить(Результат, Пароль, "***");
- Результат = СтрЗаменить(Результат, Адрес , "127.0.0.1");
-
- Обработать(Результат, "MSSQL", "СформироватьСтрокуПодключения");
-
-КонецПроцедуры
-
-Процедура MSSQL_ОткрытьСоединение(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "SA";
- Пароль = ПараметрыФункции["PG_Password"];
-
- Опции = Новый Структура;
- Опции.Вставить("addr", Адрес);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
-
- СтрокаПодключения = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mssql", "СформироватьСтрокуПодключения", Опции);
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- НастройкиTLS = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mssql", "ПолучитьНастройкиTLS", Опции);
-
- Результат = OPI_MSSQL.ОткрытьСоединение(СтрокаПодключения, НастройкиTLS);
-
- // END
-
- Обработать(Результат, "MSSQL", "ОткрытьСоединение");
-
-КонецПроцедуры
-
-Процедура MSSQL_ЗакрытьСоединение(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "SA";
- Пароль = ПараметрыФункции["PG_Password"];
-
- Опции = Новый Структура;
- Опции.Вставить("addr", Адрес);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
-
- СтрокаПодключения = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mssql", "СформироватьСтрокуПодключения", Опции);
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- НастройкиTLS = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mssql", "ПолучитьНастройкиTLS", Опции);
-
- Соединение = OPI_MSSQL.ОткрытьСоединение(СтрокаПодключения, НастройкиTLS);
- Результат = OPI_MSSQL.ЗакрытьСоединение(Соединение);
-
- // END
-
- OPI_MSSQL.ЗакрытьСоединение(Результат);
-
- Обработать(Результат, "MSSQL", "ЗакрытьСоединение");
-
-КонецПроцедуры
-
-Процедура MSSQL_ЭтоКоннектор(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "SA";
- Пароль = ПараметрыФункции["PG_Password"];
-
- Опции = Новый Структура;
- Опции.Вставить("addr", Адрес);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
-
- СтрокаПодключения = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mssql", "СформироватьСтрокуПодключения", Опции);
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- НастройкиTLS = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mssql", "ПолучитьНастройкиTLS", Опции);
-
- Соединение = OPI_MSSQL.ОткрытьСоединение(СтрокаПодключения, НастройкиTLS);
- Результат = OPI_MSSQL.ЭтоКоннектор(Соединение);
-
- // END
-
- OPI_MSSQL.ЗакрытьСоединение(Результат);
-
- Обработать(Результат, "MSSQL", "ЭтоКоннектор");
-
-КонецПроцедуры
-
-Процедура MSSQL_ВыполнитьЗапросSQL(ПараметрыФункции)
-
- ТекущаяДата = OPI_Инструменты.ПолучитьТекущуюДату();
- Картинка = ПараметрыФункции["Picture"];
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка); // Картинка - Тип: ДвоичныеДанные
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "SA";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "test_data";
-
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- НастройкиTLS = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mssql", "ПолучитьНастройкиTLS", Опции);
- Опции = Новый Структура;
- Опции.Вставить("addr", Адрес);
- Опции.Вставить("db", База);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
-
- СтрокаПодключения = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mssql", "СформироватьСтрокуПодключения", Опции);
- Соединение = OPI_MSSQL.ОткрытьСоединение(СтрокаПодключения, НастройкиTLS);
-
- OPI_MSSQL.УдалитьТаблицу("users" , Соединение); // SKIP
- OPI_MSSQL.УдалитьТаблицу("test_data" , Соединение); // SKIP
- OPI_MSSQL.УдалитьТаблицу("test_table", Соединение); // SKIP
- Обработать(Соединение, "MSSQL", "ВыполнитьЗапросSQL", "Соединение"); // SKIP
-
- // CREATE
-
- ТекстЗапроса = "
- |CREATE TABLE test_table (
- | ID INT PRIMARY KEY,
- | FirstName NVARCHAR(50),
- | LastName NVARCHAR(50),
- | BirthDate DATE,
- | IsEmployed BIT,
- | Salary DECIMAL(10, 2),
- | CreatedAt DATETIME,
- | Age SMALLINT,
- | RowGuid UNIQUEIDENTIFIER,
- | Data VARBINARY(MAX)
- |);";
-
- Опции = Новый Структура;
- Опции.Вставить("sql", ТекстЗапроса);
- Опции.Вставить("dbc", Соединение);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mssql", "ВыполнитьЗапросSQL", Опции);
-
- Обработать(Результат, "MSSQL", "ВыполнитьЗапросSQL", "Create"); // SKIP
-
- // INSERT с параметрами
-
- ТекстЗапроса = "
- |INSERT INTO test_table (ID, FirstName, LastName, BirthDate, IsEmployed, Salary, CreatedAt, Age, RowGuid, Data)
- |VALUES (@P1, @P2, @P3, @P4, @P5, @P6, @P7, @P8, @P9, @P10);";
-
- МассивПараметров = Новый Массив;
- МассивПараметров.Добавить(Новый Структура("INT" , 1));
- МассивПараметров.Добавить(Новый Структура("NVARCHAR", "Vitaly"));
- МассивПараметров.Добавить(Новый Структура("NVARCHAR", "Alpaca"));
- МассивПараметров.Добавить(Новый Структура("DATE" , ТекущаяДата));
- МассивПараметров.Добавить(Новый Структура("BIT" , Истина));
- МассивПараметров.Добавить(Новый Структура("DECIMAL" , 10.30));
- МассивПараметров.Добавить(Новый Структура("DATETIME", ТекущаяДата));
- МассивПараметров.Добавить(Новый Структура("SMALLINT", 20));
- МассивПараметров.Добавить(Новый Структура("UUID" , Новый УникальныйИдентификатор));
- МассивПараметров.Добавить(Новый Структура("BYTES" , Картинка));
-
- Опции = Новый Структура;
- Опции.Вставить("sql", ТекстЗапроса);
- Опции.Вставить("params", МассивПараметров);
- Опции.Вставить("dbc", Соединение);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mssql", "ВыполнитьЗапросSQL", Опции);
-
- Обработать(Результат, "MSSQL", "ВыполнитьЗапросSQL", "Insert"); // SKIP
-
- // SELECT (Результат этого запроса приведен в следующем блоке)
-
- ТекстЗапроса = "SELECT FirstName, LastName, BirthDate, IsEmployed, Salary, CreatedAt, Age, RowGuid, Data FROM test_table;";
-
- Опции = Новый Структура;
- Опции.Вставить("sql", ТекстЗапроса);
- Опции.Вставить("dbc", Соединение);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mssql", "ВыполнитьЗапросSQL", Опции);
-
- Обработать(Результат, "MSSQL", "ВыполнитьЗапросSQL", , Картинка); // SKIP
-
- ТекстЗапроса = "create table test_data (id INT,first_name NVARCHAR(50),last_name NVARCHAR(50),email NVARCHAR(50),gender NVARCHAR(50),ip_address NVARCHAR(20));"; // SKIP
- Результат = OPI_MSSQL.ВыполнитьЗапросSQL(ТекстЗапроса, , , Соединение); // SKIP
- Обработать(Результат, "MSSQL", "ВыполнитьЗапросSQL", "Test data"); // SKIP
-
- // SQL запрос из файла
-
- ФайлSQL = ПараметрыФункции["SQL2"]; // Двоичные данные, URL или путь к файлу
-
- Опции = Новый Структура;
- Опции.Вставить("sql", ФайлSQL);
- Опции.Вставить("dbc", Соединение);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mssql", "ВыполнитьЗапросSQL", Опции);
-
- Обработать(Результат, "MSSQL", "ВыполнитьЗапросSQL", "Файл"); // SKIP
-
- Закрытие = OPI_MSSQL.ЗакрытьСоединение(Соединение);
-
- // END
-
- Обработать(Закрытие, "MSSQL", "ВыполнитьЗапросSQL", "Запрос"); // SKIP
-
-КонецПроцедуры
-
-Процедура MSSQL_ПолучитьНастройкиTLS(ПараметрыФункции)
-
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mssql", "ПолучитьНастройкиTLS", Опции);
-
- // END
-
- Обработать(Результат, "MSSQL", "ПолучитьНастройкиTLS");
-
-КонецПроцедуры
-
-Процедура MSSQL_СоздатьБазуДанных(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "SA";
- Пароль = ПараметрыФункции["PG_Password"];
-
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- НастройкиTLS = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mssql", "ПолучитьНастройкиTLS", Опции);
- Опции = Новый Структура;
- Опции.Вставить("addr", Адрес);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
-
- СтрокаПодключения = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mssql", "СформироватьСтрокуПодключения", Опции);
-
- База = "testbase1";
-
- OPI_MSSQL.УдалитьБазуДанных(База, СтрокаПодключения, НастройкиTLS); // SKIP
-
- // При использовании строки подключения инициализируется новое соединение,
- // которое будет закрыто после выполнения функции.
- // В случае выполнения нескольких операций желательно использовать одно соединение,
- // заранее созданное функцией ОткрытьСоединение()
- Опции = Новый Структура;
- Опции.Вставить("base", База);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mssql", "СоздатьБазуДанных", Опции);
-
- // END
-
- Обработать(Результат, "MSSQL", "СоздатьБазуДанных");
-
- База = "testbase2";
- OPI_MSSQL.УдалитьБазуДанных(База, СтрокаПодключения, НастройкиTLS);
-
- Подключение = OPI_MSSQL.ОткрытьСоединение(СтрокаПодключения, НастройкиTLS);
-
- Обработать(Подключение, "MSSQL", "СоздатьБазуДанных", "Открытие");
-
- Опции = Новый Структура;
- Опции.Вставить("base", База);
- Опции.Вставить("dbc", Подключение);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mssql", "СоздатьБазуДанных", Опции);
-
- Обработать(Результат, "MSSQL", "СоздатьБазуДанных", "Создание");
-
- Опции = Новый Структура;
- Опции.Вставить("base", База);
- Опции.Вставить("dbc", Подключение);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mssql", "СоздатьБазуДанных", Опции);
-
- Обработать(Результат, "MSSQL", "СоздатьБазуДанных", "Существующая");
-
- OPI_MSSQL.ЗакрытьСоединение(Подключение);
-
-КонецПроцедуры
-
-Процедура MSSQL_СоздатьТаблицу(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "SA";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "testbase1";
-
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- НастройкиTLS = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mssql", "ПолучитьНастройкиTLS", Опции);
- Опции = Новый Структура;
- Опции.Вставить("addr", Адрес);
- Опции.Вставить("db", База);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
-
- СтрокаПодключения = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mssql", "СформироватьСтрокуПодключения", Опции);
-
- Таблица = "testtable";
-
- СтруктураКолонок = Новый Структура;
- СтруктураКолонок.Вставить("tinyint_field" , "tinyint");
- СтруктураКолонок.Вставить("smallint_field" , "smallint");
- СтруктураКолонок.Вставить("int_field" , "int");
- СтруктураКолонок.Вставить("bigint_field" , "bigint");
- СтруктураКолонок.Вставить("float24_field" , "float(24)");
- СтруктураКолонок.Вставить("float53_field" , "float(53)");
- СтруктураКолонок.Вставить("bit_field" , "bit");
- СтруктураКолонок.Вставить("nvarchar_field" , "nvarchar(4000)");
- СтруктураКолонок.Вставить("varbinary_field", "varbinary(max)");
- СтруктураКолонок.Вставить("uid_field" , "uniqueidentifier");
- СтруктураКолонок.Вставить("numeric_field" , "numeric(5,3)"); // Или decimal
- СтруктураКолонок.Вставить("xml_field" , "xml");
- СтруктураКолонок.Вставить("date_field" , "date");
- СтруктураКолонок.Вставить("time_field" , "time");
- СтруктураКолонок.Вставить("dto_field" , "datetimeoffset");
- СтруктураКолонок.Вставить("datetime_field" , "datetime");
-
- // При использовании строки подключения инициализируется новое соединение,
- // которое будет закрыто после выполнения функции.
- // В случае выполнения нескольких операций желательно использовать одно соединение,
- // заранее созданное функцией ОткрытьСоединение()
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("cols", СтруктураКолонок);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mssql", "СоздатьТаблицу", Опции);
-
- // END
-
- Обработать(Результат, "MSSQL", "СоздатьТаблицу");
-
- Таблица = "АБВ ГДЕ";
-
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("cols", СтруктураКолонок);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mssql", "СоздатьТаблицу", Опции);
-
- Обработать(Результат, "MSSQL", "СоздатьТаблицу", "Ошибка имени");
-
- Таблица = "somename";
- СтруктураКолонок.Вставить("wtf_field", "WTF");
-
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("cols", СтруктураКолонок);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mssql", "СоздатьТаблицу", Опции);
-
- Обработать(Результат, "MSSQL", "СоздатьТаблицу", "Ошибка типа");
-
-КонецПроцедуры
-
-Процедура MSSQL_ДобавитьЗаписи(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "SA";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "testbase1";
-
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- НастройкиTLS = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mssql", "ПолучитьНастройкиTLS", Опции);
- Опции = Новый Структура;
- Опции.Вставить("addr", Адрес);
- Опции.Вставить("db", База);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
-
- СтрокаПодключения = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mssql", "СформироватьСтрокуПодключения", Опции);
-
- Таблица = "testtable";
- МассивЗаписей = Новый Массив;
-
- Картинка = ПараметрыФункции["Picture"];
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка); // Картинка - Тип: ДвоичныеДанные
-
- XML = "
- |
- | Пример
- | 123
- |
- |
- | Тест
- | 456
- |
- |";
-
- ТекущаяДата = OPI_Инструменты.ПолучитьТекущуюДату();
- ТекущаяДатаЧП = OPI_Инструменты.ДатаRFC3339(ТекущаяДата, "+05:00");
-
- СтруктураЗаписи = Новый Структура;
- СтруктураЗаписи.Вставить("tinyint_field" , Новый Структура("TINYINT" , 5));
- СтруктураЗаписи.Вставить("smallint_field" , Новый Структура("SMALLINT" , 2000));
- СтруктураЗаписи.Вставить("int_field" , Новый Структура("INT" , 200000));
- СтруктураЗаписи.Вставить("bigint_field" , Новый Структура("BIGINT" , 20000000000));
- СтруктураЗаписи.Вставить("float24_field" , Новый Структура("FLOAT24" , 10.1234567));
- СтруктураЗаписи.Вставить("float53_field" , Новый Структура("FLOAT53" , 10.123456789123456));
- СтруктураЗаписи.Вставить("bit_field" , Новый Структура("BIT" , Истина));
- СтруктураЗаписи.Вставить("nvarchar_field" , Новый Структура("NVARCHAR" , "Some text"));
- СтруктураЗаписи.Вставить("varbinary_field", Новый Структура("BYTES" , Картинка));
- СтруктураЗаписи.Вставить("uid_field" , Новый Структура("UUID" , Новый УникальныйИдентификатор));
- СтруктураЗаписи.Вставить("numeric_field" , Новый Структура("NUMERIC" , 5.333));
- СтруктураЗаписи.Вставить("xml_field" , Новый Структура("XML" , XML));
- СтруктураЗаписи.Вставить("date_field" , Новый Структура("DATE" , ТекущаяДата));
- СтруктураЗаписи.Вставить("time_field" , Новый Структура("TIME" , ТекущаяДата));
- СтруктураЗаписи.Вставить("dto_field" , Новый Структура("DATETIMEOFFSET", ТекущаяДатаЧП));
- СтруктураЗаписи.Вставить("datetime_field" , Новый Структура("DATETIME" , ТекущаяДата));
-
- МассивЗаписей.Добавить(СтруктураЗаписи);
-
- // При использовании строки подключения инициализируется новое соединение,
- // которое будет закрыто после выполнения функции.
- // В случае выполнения нескольких операций желательно использовать одно соединение,
- // заранее созданное функцией ОткрытьСоединение()
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("rows", МассивЗаписей);
- Опции.Вставить("trn", Истина);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mssql", "ДобавитьЗаписи", Опции);
-
- // END
-
- Обработать(Результат, "MSSQL", "ДобавитьЗаписи");
-
-КонецПроцедуры
-
-Процедура MSSQL_ПолучитьЗаписи(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "SA";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "testbase1";
-
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- НастройкиTLS = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mssql", "ПолучитьНастройкиTLS", Опции);
- Опции = Новый Структура;
- Опции.Вставить("addr", Адрес);
- Опции.Вставить("db", База);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
-
- СтрокаПодключения = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mssql", "СформироватьСтрокуПодключения", Опции);
-
- // Все записи без отборов
-
- Таблица = "testtable";
-
- // При использовании строки подключения инициализируется новое соединение,
- // которое будет закрыто после выполнения функции.
- // В случае выполнения нескольких операций желательно использовать одно соединение,
- // заранее созданное функцией ОткрытьСоединение()
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mssql", "ПолучитьЗаписи", Опции);
-
- Обработать(Результат, "MSSQL", "ПолучитьЗаписи"); // SKIP
-
- // Отборы, выбранные поля, количество и сортировка
-
- Опции = Новый Структура;
- Опции.Вставить("addr", Адрес);
- Опции.Вставить("db", "test_data");
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
-
- СтрокаПодключения = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mssql", "СформироватьСтрокуПодключения", Опции);
-
- Таблица = "test_data";
-
- Поля = Новый Массив;
- Поля.Добавить("first_name");
- Поля.Добавить("last_name");
- Поля.Добавить("email");
-
- Фильтры = Новый Массив;
-
- СтруктураФильтра1 = Новый Структура;
-
- СтруктураФильтра1.Вставить("field", "gender");
- СтруктураФильтра1.Вставить("type" , "=");
- СтруктураФильтра1.Вставить("value", "Male");
- СтруктураФильтра1.Вставить("union", "AND");
- СтруктураФильтра1.Вставить("raw" , Ложь);
-
- СтруктураФильтра2 = Новый Структура;
-
- СтруктураФильтра2.Вставить("field", "id");
- СтруктураФильтра2.Вставить("type" , "BETWEEN");
- СтруктураФильтра2.Вставить("value", "20 AND 50");
- СтруктураФильтра2.Вставить("raw" , Истина);
-
- Фильтры.Добавить(СтруктураФильтра1);
- Фильтры.Добавить(СтруктураФильтра2);
-
- Сортировка = Новый Структура("ip_address", "DESC");
- Количество = 5;
-
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("fields", Поля);
- Опции.Вставить("filter", Фильтры);
- Опции.Вставить("order", Сортировка);
- Опции.Вставить("limit", Количество);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mssql", "ПолучитьЗаписи", Опции);
-
- // END
-
- Обработать(Результат, "MSSQL", "ПолучитьЗаписи", "Отборы");
-
-КонецПроцедуры
-
-Процедура MSSQL_ОбновитьЗаписи(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "SA";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "test_data";
-
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- НастройкиTLS = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mssql", "ПолучитьНастройкиTLS", Опции);
- Опции = Новый Структура;
- Опции.Вставить("addr", Адрес);
- Опции.Вставить("db", База);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
-
- СтрокаПодключения = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mssql", "СформироватьСтрокуПодключения", Опции);
-
- Таблица = "test_data";
-
- СтруктураПолей = Новый Структура;
- СтруктураПолей.Вставить("ip_address", Новый Структура("VARCHAR", "127.0.0.1"));
-
- Фильтры = Новый Массив;
-
- СтруктураФильтра = Новый Структура;
-
- СтруктураФильтра.Вставить("field", "gender");
- СтруктураФильтра.Вставить("type" , "=");
- СтруктураФильтра.Вставить("value", Новый Структура("NVARCHAR", "Male"));
- СтруктураФильтра.Вставить("raw" , Ложь);
-
- Фильтры.Добавить(СтруктураФильтра);
-
- Количество = OPI_MSSQL.ПолучитьЗаписи(Таблица, , Фильтры, , , СтрокаПодключения, НастройкиTLS); // SKIP
- Обработать(Количество, "MSSQL", "ОбновитьЗаписи", "Количество"); // SKIP
- Количество = Количество["data"].Количество(); // SKIP
-
- // При использовании строки подключения инициализируется новое соединение,
- // которое будет закрыто после выполнения функции.
- // В случае выполнения нескольких операций желательно использовать одно соединение,
- // заранее созданное функцией ОткрытьСоединение()
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("values", СтруктураПолей);
- Опции.Вставить("filter", СтруктураФильтра);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mssql", "ОбновитьЗаписи", Опции);
-
- // END
-
- Обработать(Результат, "MSSQL", "ОбновитьЗаписи");
-
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("fields", "['ip_address']");
- Опции.Вставить("filter", Фильтры);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Проверка = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mssql", "ПолучитьЗаписи", Опции);
-
- Обработать(Проверка, "MSSQL", "ОбновитьЗаписи", "Проверка", Количество, СтруктураПолей);
-
-КонецПроцедуры
-
-Процедура MSSQL_УдалитьЗаписи(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "SA";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "test_data";
-
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- НастройкиTLS = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mssql", "ПолучитьНастройкиTLS", Опции);
- Опции = Новый Структура;
- Опции.Вставить("addr", Адрес);
- Опции.Вставить("db", База);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
-
- СтрокаПодключения = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mssql", "СформироватьСтрокуПодключения", Опции);
-
- Таблица = "test_data";
-
- Фильтры = Новый Массив;
-
- СтруктураФильтра = Новый Структура;
-
- СтруктураФильтра.Вставить("field", "gender");
- СтруктураФильтра.Вставить("type" , "=");
- СтруктураФильтра.Вставить("value", Новый Структура("NVARCHAR", "Male"));
- СтруктураФильтра.Вставить("raw" , Ложь);
- СтруктураФильтра.Вставить("union", "AND");
-
- Фильтры.Добавить(СтруктураФильтра);
-
- СтруктураФильтра = Новый Структура;
-
- СтруктураФильтра.Вставить("field", "ip_address");
- СтруктураФильтра.Вставить("type" , "=");
- СтруктураФильтра.Вставить("value", Новый Структура("NVARCHAR", "127.0.0.1"));
- СтруктураФильтра.Вставить("raw" , Ложь);
-
- Получение = OPI_MSSQL.ПолучитьЗаписи(Таблица, , Фильтры, , , СтрокаПодключения, НастройкиTLS); // SKIP
-
- // При использовании строки подключения инициализируется новое соединение,
- // которое будет закрыто после выполнения функции.
- // В случае выполнения нескольких операций желательно использовать одно соединение,
- // заранее созданное функцией ОткрытьСоединение()
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("filter", Фильтры);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mssql", "УдалитьЗаписи", Опции);
-
- // END
-
- Обработать(Получение, "MSSQL", "УдалитьЗаписи", "Получение");
-
- Количество = Получение["data"].Количество();
- Остаток = 100 - Количество;
-
- Обработать(Результат, "MSSQL", "УдалитьЗаписи");
-
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mssql", "ПолучитьЗаписи", Опции);
-
- Обработать(Результат, "MSSQL", "УдалитьЗаписи", "Проверка", Остаток);
-
-КонецПроцедуры
-
-Процедура MSSQL_УдалитьТаблицу(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "SA";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "testbase1";
-
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- НастройкиTLS = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mssql", "ПолучитьНастройкиTLS", Опции);
- Опции = Новый Структура;
- Опции.Вставить("addr", Адрес);
- Опции.Вставить("db", База);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
-
- СтрокаПодключения = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mssql", "СформироватьСтрокуПодключения", Опции);
-
- Таблица = "testtable";
-
- // При использовании строки подключения инициализируется новое соединение,
- // которое будет закрыто после выполнения функции.
- // В случае выполнения нескольких операций желательно использовать одно соединение,
- // заранее созданное функцией ОткрытьСоединение()
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mssql", "УдалитьТаблицу", Опции);
-
- // END
-
- Обработать(Результат, "MSSQL", "УдалитьТаблицу");
-
- База = "test_data";
- Таблица = "test_data";
-
- Опции = Новый Структура;
- Опции.Вставить("addr", Адрес);
- Опции.Вставить("db", База);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
-
- СтрокаПодключения = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mssql", "СформироватьСтрокуПодключения", Опции);
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mssql", "УдалитьТаблицу", Опции);
-
- Обработать(Результат, "MSSQL", "УдалитьТаблицу", "Тест");
-
-КонецПроцедуры
-
-Процедура MSSQL_УдалитьБазуДанных(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "SA";
- Пароль = ПараметрыФункции["PG_Password"];
-
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- НастройкиTLS = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mssql", "ПолучитьНастройкиTLS", Опции);
- Опции = Новый Структура;
- Опции.Вставить("addr", Адрес);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
-
- СтрокаПодключения = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mssql", "СформироватьСтрокуПодключения", Опции);
-
- База = "testbase1";
-
- // При использовании строки подключения инициализируется новое соединение,
- // которое будет закрыто после выполнения функции.
- // В случае выполнения нескольких операций желательно использовать одно соединение,
- // заранее созданное функцией ОткрытьСоединение()
- Опции = Новый Структура;
- Опции.Вставить("base", База);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mssql", "УдалитьБазуДанных", Опции);
-
- // END
-
- Обработать(Результат, "MSSQL", "УдалитьБазуДанных");
-
- База = "testbase2";
-
- Подключение = OPI_MSSQL.ОткрытьСоединение(СтрокаПодключения, НастройкиTLS);
-
- Обработать(Подключение, "MSSQL", "УдалитьБазуДанных", "Открытие");
-
- Опции = Новый Структура;
- Опции.Вставить("base", База);
- Опции.Вставить("dbc", Подключение);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mssql", "УдалитьБазуДанных", Опции);
-
- Обработать(Результат, "MSSQL", "УдалитьБазуДанных", "Удаление");
-
- Опции = Новый Структура;
- Опции.Вставить("base", База);
- Опции.Вставить("dbc", Подключение);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mssql", "УдалитьБазуДанных", Опции);
-
- Обработать(Результат, "MSSQL", "УдалитьБазуДанных", "Ошибка");
-
- Закрытие = OPI_MSSQL.ЗакрытьСоединение(Подключение);
-
- Обработать(Закрытие, "MSSQL", "УдалитьБазуДанных", "Закрытие");
-
- Опции = Новый Структура;
- Опции.Вставить("base", База);
- Опции.Вставить("dbc", Подключение);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mssql", "УдалитьБазуДанных", Опции);
-
- Обработать(Результат, "MSSQL", "УдалитьБазуДанных", "Ошибка подключения");
-
-КонецПроцедуры
-
-Процедура MSSQL_ОчиститьТаблицу(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "SA";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "testbase1";
-
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- НастройкиTLS = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mssql", "ПолучитьНастройкиTLS", Опции);
- Опции = Новый Структура;
- Опции.Вставить("addr", Адрес);
- Опции.Вставить("db", База);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
-
- СтрокаПодключения = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mssql", "СформироватьСтрокуПодключения", Опции);
-
- Таблица = "testtable";
-
- // При использовании строки подключения инициализируется новое соединение,
- // которое будет закрыто после выполнения функции.
- // В случае выполнения нескольких операций желательно использовать одно соединение,
- // заранее созданное функцией ОткрытьСоединение()
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mssql", "ОчиститьТаблицу", Опции);
-
- // END
-
- Обработать(Результат, "MSSQL", "ОчиститьТаблицу");
-
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mssql", "ПолучитьЗаписи", Опции);
-
- Обработать(Результат, "MSSQL", "ОчиститьТаблицу", "Проверка");
-
-КонецПроцедуры
-
-Процедура MSSQL_ПолучитьИнформациюОТаблице(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "SA";
- Пароль = ПараметрыФункции["PG_Password"];
- База = "testbase1";
-
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- НастройкиTLS = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mssql", "ПолучитьНастройкиTLS", Опции);
- Опции = Новый Структура;
- Опции.Вставить("addr", Адрес);
- Опции.Вставить("db", База);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
-
- СтрокаПодключения = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mssql", "СформироватьСтрокуПодключения", Опции);
-
- Таблица = "testtable";
-
- // При использовании строки подключения инициализируется новое соединение,
- // которое будет закрыто после выполнения функции.
- // В случае выполнения нескольких операций желательно использовать одно соединение,
- // заранее созданное функцией ОткрытьСоединение()
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mssql", "ПолучитьИнформациюОТаблице", Опции);
-
- // END
-
- Обработать(Результат, "MSSQL", "ПолучитьИнформациюОТаблице");
-
- Таблица = "heyho";
-
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mssql", "ПолучитьИнформациюОТаблице", Опции);
-
- Обработать(Результат, "MSSQL", "ПолучитьИнформациюОТаблице", "Ошибка");
-
-КонецПроцедуры
-
-Процедура MSSQL_ДобавитьКолонкуТаблицы(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "SA";
- Пароль = ПараметрыФункции["PG_Password"];
-
- База = "testbase1";
- Таблица = "testtable";
- Имя = "new_field";
- ТипДанных = "bigint";
-
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- НастройкиTLS = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mssql", "ПолучитьНастройкиTLS", Опции);
- Опции = Новый Структура;
- Опции.Вставить("addr", Адрес);
- Опции.Вставить("db", База);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
-
- СтрокаПодключения = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mssql", "СформироватьСтрокуПодключения", Опции);
-
- // При использовании строки подключения инициализируется новое соединение,
- // которое будет закрыто после выполнения функции.
- // В случае выполнения нескольких операций желательно использовать одно соединение,
- // заранее созданное функцией ОткрытьСоединение()
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("name", Имя);
- Опции.Вставить("type", ТипДанных);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mssql", "ДобавитьКолонкуТаблицы", Опции);
-
- // END
-
- Обработать(Результат, "MSSQL", "ДобавитьКолонкуТаблицы");
-
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mssql", "ПолучитьИнформациюОТаблице", Опции);
-
- Обработать(Результат, "MSSQL", "ДобавитьКолонкуТаблицы", "Проверка");
-
-КонецПроцедуры
-
-Процедура MSSQL_УдалитьКолонкуТаблицы(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "SA";
- Пароль = ПараметрыФункции["PG_Password"];
-
- База = "testbase1";
- Таблица = "testtable";
- Имя = "new_field";
-
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- НастройкиTLS = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mssql", "ПолучитьНастройкиTLS", Опции);
- Опции = Новый Структура;
- Опции.Вставить("addr", Адрес);
- Опции.Вставить("db", База);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
-
- СтрокаПодключения = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mssql", "СформироватьСтрокуПодключения", Опции);
-
- // При использовании строки подключения инициализируется новое соединение,
- // которое будет закрыто после выполнения функции.
- // В случае выполнения нескольких операций желательно использовать одно соединение,
- // заранее созданное функцией ОткрытьСоединение()
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("name", Имя);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mssql", "УдалитьКолонкуТаблицы", Опции);
-
- // END
-
- Обработать(Результат, "MSSQL", "УдалитьКолонкуТаблицы");
-
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mssql", "ПолучитьИнформациюОТаблице", Опции);
-
- Обработать(Результат, "MSSQL", "УдалитьКолонкуТаблицы", "Проверка");
-
-КонецПроцедуры
-
-Процедура MSSQL_ГарантироватьТаблицу(ПараметрыФункции)
-
- Адрес = ПараметрыФункции["PG_IP"];
- Логин = "SA";
- Пароль = ПараметрыФункции["PG_Password"];
-
- База = "testbase1";
- Таблица = "testtable";
-
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- НастройкиTLS = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mssql", "ПолучитьНастройкиTLS", Опции);
- Опции = Новый Структура;
- Опции.Вставить("addr", Адрес);
- Опции.Вставить("db", База);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
-
- СтрокаПодключения = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mssql", "СформироватьСтрокуПодключения", Опции);
-
- СтруктураКолонок = Новый Структура;
- СтруктураКолонок.Вставить("smallint_field" , "smallint");
- СтруктураКолонок.Вставить("double_field" , "real");
- СтруктураКолонок.Вставить("bigint_field" , "bigint");
- СтруктураКолонок.Вставить("custom_field" , "nvarchar");
-
- // При использовании строки подключения инициализируется новое соединение,
- // которое будет закрыто после выполнения функции.
- // В случае выполнения нескольких операций желательно использовать одно соединение,
- // заранее созданное функцией ОткрытьСоединение()
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("cols", СтруктураКолонок);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mssql", "ГарантироватьТаблицу", Опции);
-
- // END
-
- Обработать(Результат, "MSSQL", "ГарантироватьТаблицу");
-
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Проверка = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mssql", "ПолучитьИнформациюОТаблице", Опции);
-
- Обработать(Проверка, "MSSQL", "ГарантироватьТаблицу", "Проверка", СтруктураКолонок);
-
- Таблица = "test_new";
-
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("cols", СтруктураКолонок);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mssql", "ГарантироватьТаблицу", Опции);
-
- Обработать(Результат, "MSSQL", "ГарантироватьТаблицу", "Новая");
-
- Опции = Новый Структура;
- Опции.Вставить("table", Таблица);
- Опции.Вставить("dbc", СтрокаПодключения);
- Опции.Вставить("tls", НастройкиTLS);
-
- Проверка = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mssql", "ПолучитьИнформациюОТаблице", Опции);
-
- Обработать(Проверка, "MSSQL", "ГарантироватьТаблицу", "Проверка", СтруктураКолонок);
-
-КонецПроцедуры
-
-Процедура MSSQL_ПолучитьСтруктуруФильтраЗаписей(ПараметрыФункции)
-
- Опции = Новый Структура;
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mssql", "ПолучитьСтруктуруФильтраЗаписей", Опции);
-
- // END
-
- Обработать(Результат, "MSSQL", "ПолучитьСтруктуруФильтраЗаписей");
-
- Опции = Новый Структура;
- Опции.Вставить("empty", Истина);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mssql", "ПолучитьСтруктуруФильтраЗаписей", Опции);
-
- Обработать(Результат, "MSSQL", "ПолучитьСтруктуруФильтраЗаписей", "Пустая");
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область FTP
-
-Процедура FTP_ОткрытьСоединение(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["FTP_IP"];
- Порт = ПараметрыФункции["FTP_Port"];
- Логин = ПараметрыФункции["FTP_User"];
- Пароль = ПараметрыФункции["FTP_Password"];
-
- ИспользоватьПрокси = Истина;
- FTPS = Истина;
-
- НастройкиПрокси = Неопределено;
- НастройкиTLS = Неопределено; // FTPS
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- FTPS = ПараметрыФункции["TLS"]; // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("host", Хост);
- Опции.Вставить("port", Порт);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
-
- НастройкиFTP = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьНастройкиСоединения", Опции);
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- Опции = Новый Структура;
- Опции.Вставить("addr", АдресПрокси);
- Опции.Вставить("port", ПортПрокси);
- Опции.Вставить("type", ТипПрокси);
- Опции.Вставить("login", ЛогинПрокси);
- Опции.Вставить("pass", ПарольПрокси);
-
- НастройкиПрокси = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьНастройкиПрокси", Опции);
-
- КонецЕсли;
-
- Если FTPS Тогда
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- НастройкиTLS = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьНастройкиTLS", Опции);
- КонецЕсли;
-
- Результат = OPI_FTP.ОткрытьСоединение(НастройкиFTP, НастройкиПрокси, НастройкиTLS);
-
- // END
-
- Обработать(Результат, "FTP", "ОткрытьСоединение", Постфикс);
-
-КонецПроцедуры
-
-Процедура FTP_ПолучитьПриветственноеСообщение(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["FTP_IP"];
- Порт = ПараметрыФункции["FTP_Port"];
- Логин = ПараметрыФункции["FTP_User"];
- Пароль = ПараметрыФункции["FTP_Password"];
-
- ИспользоватьПрокси = Истина;
- FTPS = Истина;
-
- НастройкиПрокси = Неопределено;
- НастройкиTLS = Неопределено; // FTPS
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- FTPS = ПараметрыФункции["TLS"]; // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("host", Хост);
- Опции.Вставить("port", Порт);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
-
- НастройкиFTP = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьНастройкиСоединения", Опции);
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- Опции = Новый Структура;
- Опции.Вставить("addr", АдресПрокси);
- Опции.Вставить("port", ПортПрокси);
- Опции.Вставить("type", ТипПрокси);
- Опции.Вставить("login", ЛогинПрокси);
- Опции.Вставить("pass", ПарольПрокси);
-
- НастройкиПрокси = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьНастройкиПрокси", Опции);
-
- КонецЕсли;
-
- Если FTPS Тогда
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- НастройкиTLS = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьНастройкиTLS", Опции);
- КонецЕсли;
-
- Соединение = OPI_FTP.ОткрытьСоединение(НастройкиFTP, НастройкиПрокси, НастройкиTLS);
-
- Если OPI_FTP.ЭтоКоннектор(Соединение) Тогда
- Опции = Новый Структура;
- Опции.Вставить("conn", Соединение);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьПриветственноеСообщение", Опции);
- Иначе
- Результат = Соединение; // Ошибка соединения
- КонецЕсли;
-
- // END
-
- Обработать(Результат, "FTP", "ПолучитьПриветственноеСообщение", Постфикс);
-
-КонецПроцедуры
-
-Процедура FTP_ПолучитьКонфигурациюСоединения(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["FTP_IP"];
- Порт = ПараметрыФункции["FTP_Port"];
- Логин = ПараметрыФункции["FTP_User"];
- Пароль = ПараметрыФункции["FTP_Password"];
-
- ИспользоватьПрокси = Истина;
- FTPS = Истина;
-
- НастройкиПрокси = Неопределено;
- НастройкиTLS = Неопределено; // FTPS
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- FTPS = ПараметрыФункции["TLS"]; // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("host", Хост);
- Опции.Вставить("port", Порт);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
-
- НастройкиFTP = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьНастройкиСоединения", Опции);
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- Опции = Новый Структура;
- Опции.Вставить("addr", АдресПрокси);
- Опции.Вставить("port", ПортПрокси);
- Опции.Вставить("type", ТипПрокси);
- Опции.Вставить("login", ЛогинПрокси);
- Опции.Вставить("pass", ПарольПрокси);
-
- НастройкиПрокси = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьНастройкиПрокси", Опции);
-
- КонецЕсли;
-
- Если FTPS Тогда
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- НастройкиTLS = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьНастройкиTLS", Опции);
- КонецЕсли;
-
- Опции = Новый Структура;
- Опции.Вставить("set", НастройкиFTP);
- Опции.Вставить("proxy", НастройкиПрокси);
- Опции.Вставить("tls", НастройкиTLS);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьКонфигурациюСоединения", Опции);
-
- // END
-
- Обработать(Результат, "FTP", "ПолучитьКонфигурациюСоединения", Постфикс, ПараметрыФункции);
-
- Опции = Новый Структура;
- Опции.Вставить("conn", Результат);
-
- Проверка = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьПриветственноеСообщение", Опции);
-
- Обработать(Проверка, "FTP", "ПолучитьКонфигурациюСоединения", "Проверка, " + Постфикс);
-
-КонецПроцедуры
-
-Процедура FTP_ЗакрытьСоединение(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["FTP_IP"];
- Порт = ПараметрыФункции["FTP_Port"];
- Логин = ПараметрыФункции["FTP_User"];
- Пароль = ПараметрыФункции["FTP_Password"];
-
- ИспользоватьПрокси = Истина;
- FTPS = Истина;
-
- НастройкиПрокси = Неопределено;
- НастройкиTLS = Неопределено; // FTPS
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- FTPS = ПараметрыФункции["TLS"]; // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("host", Хост);
- Опции.Вставить("port", Порт);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
-
- НастройкиFTP = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьНастройкиСоединения", Опции);
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- Опции = Новый Структура;
- Опции.Вставить("addr", АдресПрокси);
- Опции.Вставить("port", ПортПрокси);
- Опции.Вставить("type", ТипПрокси);
- Опции.Вставить("login", ЛогинПрокси);
- Опции.Вставить("pass", ПарольПрокси);
-
- НастройкиПрокси = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьНастройкиПрокси", Опции);
-
- КонецЕсли;
-
- Если FTPS Тогда
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- НастройкиTLS = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьНастройкиTLS", Опции);
- КонецЕсли;
-
- Соединение = OPI_FTP.ОткрытьСоединение(НастройкиFTP, НастройкиПрокси, НастройкиTLS);
-
- Обработать(Соединение, "FTP", "ЗакрытьСоединение", "Открытие, " + Постфикс); // SKIP
-
- Результат = OPI_FTP.ЗакрытьСоединение(Соединение);
-
- // END
-
- Обработать(Результат, "FTP", "ЗакрытьСоединение", Постфикс);
-
-КонецПроцедуры
-
-Процедура FTP_ЭтоКоннектор(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["FTP_IP"];
- Порт = ПараметрыФункции["FTP_Port"];
- Логин = ПараметрыФункции["FTP_User"];
- Пароль = ПараметрыФункции["FTP_Password"];
-
- ИспользоватьПрокси = Истина;
- FTPS = Истина;
-
- НастройкиПрокси = Неопределено;
- НастройкиTLS = Неопределено; // FTPS
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- FTPS = ПараметрыФункции["TLS"]; // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("host", Хост);
- Опции.Вставить("port", Порт);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
-
- НастройкиFTP = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьНастройкиСоединения", Опции);
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- Опции = Новый Структура;
- Опции.Вставить("addr", АдресПрокси);
- Опции.Вставить("port", ПортПрокси);
- Опции.Вставить("type", ТипПрокси);
- Опции.Вставить("login", ЛогинПрокси);
- Опции.Вставить("pass", ПарольПрокси);
-
- НастройкиПрокси = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьНастройкиПрокси", Опции);
-
- КонецЕсли;
-
- Если FTPS Тогда
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- НастройкиTLS = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьНастройкиTLS", Опции);
- КонецЕсли;
-
- Соединение = OPI_FTP.ОткрытьСоединение(НастройкиFTP, НастройкиПрокси, НастройкиTLS);
-
- Обработать(Соединение, "FTP", "ЭтоКоннектор", "Открытие, " + Постфикс); // SKIP
-
- Результат = OPI_FTP.ЭтоКоннектор(Соединение);
-
- // END
-
- Обработать(Результат, "FTP", "ЭтоКоннектор", Постфикс);
-
-КонецПроцедуры
-
-Процедура FTP_ПолучитьНастройкиСоединения(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["FTP_IP"];
- Порт = ПараметрыФункции["FTP_Port"];
- Логин = ПараметрыФункции["FTP_User"];
- Пароль = ПараметрыФункции["FTP_Password"];
-
- Опции = Новый Структура;
- Опции.Вставить("host", Хост);
- Опции.Вставить("port", Порт);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьНастройкиСоединения", Опции);
-
- // END
-
- Обработать(Результат, "FTP", "ПолучитьНастройкиСоединения", Постфикс);
-
-КонецПроцедуры
-
-Процедура FTP_ПолучитьНастройкиПрокси(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- Опции = Новый Структура;
- Опции.Вставить("addr", АдресПрокси);
- Опции.Вставить("port", ПортПрокси);
- Опции.Вставить("type", ТипПрокси);
- Опции.Вставить("login", ЛогинПрокси);
- Опции.Вставить("pass", ПарольПрокси);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьНастройкиПрокси", Опции);
-
- // END
-
- Обработать(Результат, "FTP", "ПолучитьНастройкиПрокси", Постфикс);
-
-КонецПроцедуры
-
-Процедура FTP_ПолучитьНастройкиTLS(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьНастройкиTLS", Опции);
-
- // END
-
- Обработать(Результат, "FTP", "ПолучитьНастройкиTLS", Постфикс);
-
-КонецПроцедуры
-
-Процедура FTP_СоздатьНовуюДиректорию(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["FTP_IP"];
- Порт = ПараметрыФункции["FTP_Port"];
- Логин = ПараметрыФункции["FTP_User"];
- Пароль = ПараметрыФункции["FTP_Password"];
-
- ИспользоватьПрокси = Истина;
- FTPS = Истина;
-
- НастройкиПрокси = Неопределено;
- НастройкиTLS = Неопределено; // FTPS
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- FTPS = ПараметрыФункции["TLS"]; // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("host", Хост);
- Опции.Вставить("port", Порт);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
-
- НастройкиFTP = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьНастройкиСоединения", Опции);
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- Опции = Новый Структура;
- Опции.Вставить("addr", АдресПрокси);
- Опции.Вставить("port", ПортПрокси);
- Опции.Вставить("type", ТипПрокси);
- Опции.Вставить("login", ЛогинПрокси);
- Опции.Вставить("pass", ПарольПрокси);
-
- НастройкиПрокси = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьНастройкиПрокси", Опции);
-
- КонецЕсли;
-
- Если FTPS Тогда
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- НастройкиTLS = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьНастройкиTLS", Опции);
- КонецЕсли;
-
- Соединение = OPI_FTP.ОткрытьСоединение(НастройкиFTP, НастройкиПрокси, НастройкиTLS);
-
- Если OPI_FTP.ЭтоКоннектор(Соединение) Тогда
-
- Удаление = OPI_FTP.УдалитьДиректорию(Соединение, "new_dir"); // SKIP
- Обработать(Удаление, "FTP", "СоздатьНовуюДиректорию", "Удаление, " + Постфикс); // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("conn", Соединение);
- Опции.Вставить("path", "new_dir");
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "СоздатьНовуюДиректорию", Опции);
-
- Иначе
- Результат = Соединение; // Ошибка соединения
- КонецЕсли;
-
- // END
-
- Обработать(Результат, "FTP", "СоздатьНовуюДиректорию", Постфикс, Истина);
-
- Опции = Новый Структура;
- Опции.Вставить("conn", Соединение);
- Опции.Вставить("path", "new_dir/another_one");
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "СоздатьНовуюДиректорию", Опции);
-
- Обработать(Результат, "FTP", "СоздатьНовуюДиректорию", "Вложенная, " + Постфикс);
-
- Опции = Новый Структура;
- Опции.Вставить("conn", Соединение);
- Опции.Вставить("path", "second_dir/another_one");
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "СоздатьНовуюДиректорию", Опции);
-
- Обработать(Результат, "FTP", "СоздатьНовуюДиректорию", "Двойная, " + Постфикс);
-
- OPI_Инструменты.Пауза(5);
-
- Опции = Новый Структура;
- Опции.Вставить("conn", Соединение);
- Опции.Вставить("path", "new_dir");
- Опции.Вставить("rcv", Истина);
-
- Проверка = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьСписокОбъектов", Опции);
-
- Обработать(Проверка, "FTP", "СоздатьНовуюДиректорию", "Проверка 1, " + Постфикс);
-
- Опции = Новый Структура;
- Опции.Вставить("conn", Соединение);
- Опции.Вставить("path", "");
- Опции.Вставить("rcv", Истина);
-
- Проверка = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьСписокОбъектов", Опции);
-
- Обработать(Проверка, "FTP", "СоздатьНовуюДиректорию", "Проверка 2, " + Постфикс);
-
-КонецПроцедуры
-
-Процедура FTP_ПолучитьСписокОбъектов(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["FTP_IP"];
- Порт = ПараметрыФункции["FTP_Port"];
- Логин = ПараметрыФункции["FTP_User"];
- Пароль = ПараметрыФункции["FTP_Password"];
-
- ИспользоватьПрокси = Истина;
- FTPS = Истина;
-
- НастройкиПрокси = Неопределено;
- НастройкиTLS = Неопределено; // FTPS
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- FTPS = ПараметрыФункции["TLS"]; // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("host", Хост);
- Опции.Вставить("port", Порт);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
-
- НастройкиFTP = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьНастройкиСоединения", Опции);
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- Опции = Новый Структура;
- Опции.Вставить("addr", АдресПрокси);
- Опции.Вставить("port", ПортПрокси);
- Опции.Вставить("type", ТипПрокси);
- Опции.Вставить("login", ЛогинПрокси);
- Опции.Вставить("pass", ПарольПрокси);
-
- НастройкиПрокси = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьНастройкиПрокси", Опции);
-
- КонецЕсли;
-
- Если FTPS Тогда
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- НастройкиTLS = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьНастройкиTLS", Опции);
- КонецЕсли;
-
- Соединение = OPI_FTP.ОткрытьСоединение(НастройкиFTP, НастройкиПрокси, НастройкиTLS);
-
- Если OPI_FTP.ЭтоКоннектор(Соединение) Тогда
- Опции = Новый Структура;
- Опции.Вставить("conn", Соединение);
- Опции.Вставить("path", "");
- Опции.Вставить("rcv", Истина);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьСписокОбъектов", Опции);
- Иначе
- Результат = Соединение; // Ошибка соединения
- КонецЕсли;
-
- // END
-
- Обработать(Результат, "FTP", "ПолучитьСписокОбъектов", Постфикс);
-
- Опции = Новый Структура;
- Опции.Вставить("conn", Соединение);
- Опции.Вставить("path", "Dir1/Dir3/Git-2.50.0-64-bit.exe");
- Опции.Вставить("rcv", Истина);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьСписокОбъектов", Опции);
-
- Обработать(Результат, "FTP", "ПолучитьСписокОбъектов", "Файл, " + Постфикс);
-
-КонецПроцедуры
-
-Процедура FTP_ЗагрузитьФайл(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- КартинкаПуть = "C:\pic.png";
-
- Картинка = ПараметрыФункции["Picture"]; // SKIP
- ИВФ = ПолучитьИмяВременногоФайла("png"); // SKIP
- КопироватьФайл(Картинка, ИВФ); // SKIP
- Картинка = ИВФ; // SKIP
-
- КартинкаДД = Новый ДвоичныеДанные(Картинка);
-
- Хост = ПараметрыФункции["FTP_IP"];
- Порт = ПараметрыФункции["FTP_Port"];
- Логин = ПараметрыФункции["FTP_User"];
- Пароль = ПараметрыФункции["FTP_Password"];
-
- ИспользоватьПрокси = Истина;
- FTPS = Истина;
-
- НастройкиПрокси = Неопределено;
- НастройкиTLS = Неопределено; // FTPS
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- FTPS = ПараметрыФункции["TLS"]; // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("host", Хост);
- Опции.Вставить("port", Порт);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
- Опции.Вставить("rtout", 1000);
- Опции.Вставить("wtout", 1000);
-
- НастройкиFTP = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьНастройкиСоединения", Опции);
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- Опции = Новый Структура;
- Опции.Вставить("addr", АдресПрокси);
- Опции.Вставить("port", ПортПрокси);
- Опции.Вставить("type", ТипПрокси);
- Опции.Вставить("login", ЛогинПрокси);
- Опции.Вставить("pass", ПарольПрокси);
-
- НастройкиПрокси = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьНастройкиПрокси", Опции);
-
- КонецЕсли;
-
- Если FTPS Тогда
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- НастройкиTLS = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьНастройкиTLS", Опции);
- КонецЕсли;
-
- Соединение = OPI_FTP.ОткрытьСоединение(НастройкиFTP, НастройкиПрокси, НастройкиTLS);
-
- Если OPI_FTP.ЭтоКоннектор(Соединение) Тогда
-
- Опции = Новый Структура;
- Опции.Вставить("conn", Соединение);
- Опции.Вставить("file", Картинка);
- Опции.Вставить("path", "new_dir/pic_from_disk.png");
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ЗагрузитьФайл", Опции);
- Опции = Новый Структура;
- Опции.Вставить("conn", Соединение);
- Опции.Вставить("file", КартинкаДД);
- Опции.Вставить("path", "pic_from_binary.png");
-
- Результат2 = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ЗагрузитьФайл", Опции);
-
- Иначе
- Результат = Соединение; // Ошибка соединения
- КонецЕсли;
-
- // END
-
- Обработать(Результат , "FTP", "ЗагрузитьФайл", Постфикс , КартинкаДД.Размер());
- Обработать(Результат2, "FTP", "ЗагрузитьФайл", "Двоичные, " + Постфикс, КартинкаДД.Размер());
-
- Опции = Новый Структура;
- Опции.Вставить("conn", Соединение);
- Опции.Вставить("path", "new_dir/pic_from_disk.png");
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьРазмерОбъекта", Опции);
- Опции = Новый Структура;
- Опции.Вставить("conn", Соединение);
- Опции.Вставить("path", "pic_from_binary.png");
-
- Результат2 = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьРазмерОбъекта", Опции);
-
- Обработать(Результат , "FTP", "ЗагрузитьФайл", "Размер 1, " + Постфикс, КартинкаДД.Размер());
- Обработать(Результат2, "FTP", "ЗагрузитьФайл", "Размер 2, " + Постфикс, КартинкаДД.Размер());
-
- Для Н = 1 По 5 Цикл
-
- Результат = OPI_FTP.ЗагрузитьФайл(Соединение, Картинка, "new_dir/pic_from_disk.png");
- Результат2 = OPI_FTP.ЗагрузитьФайл(Соединение, КартинкаДД, "pic_from_binary.png");
-
- Если Не Результат["result"] Тогда
- Обработать(Результат, "FTP", "ЗагрузитьФайл", "Множественный, " + Постфикс, КартинкаДД.Размер());
- КонецЕсли;
-
- Если Не Результат2["result"] Тогда
- Обработать(Результат2, "FTP", "ЗагрузитьФайл", "Множественный, двоичные, " + Постфикс, КартинкаДД.Размер());
- КонецЕсли;
-
- КонецЦикла;
-
- OPI_Инструменты.УдалитьФайлВПопытке(ИВФ, "Не удалось удалить временный файл после теста!");
-
-КонецПроцедуры
-
-Процедура FTP_УдалитьФайл(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["FTP_IP"];
- Порт = ПараметрыФункции["FTP_Port"];
- Логин = ПараметрыФункции["FTP_User"];
- Пароль = ПараметрыФункции["FTP_Password"];
-
- ИспользоватьПрокси = Истина;
- FTPS = Истина;
-
- НастройкиПрокси = Неопределено;
- НастройкиTLS = Неопределено; // FTPS
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- FTPS = ПараметрыФункции["TLS"]; // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("host", Хост);
- Опции.Вставить("port", Порт);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
-
- НастройкиFTP = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьНастройкиСоединения", Опции);
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- Опции = Новый Структура;
- Опции.Вставить("addr", АдресПрокси);
- Опции.Вставить("port", ПортПрокси);
- Опции.Вставить("type", ТипПрокси);
- Опции.Вставить("login", ЛогинПрокси);
- Опции.Вставить("pass", ПарольПрокси);
-
- НастройкиПрокси = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьНастройкиПрокси", Опции);
-
- КонецЕсли;
-
- Если FTPS Тогда
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- НастройкиTLS = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьНастройкиTLS", Опции);
- КонецЕсли;
-
- Соединение = OPI_FTP.ОткрытьСоединение(НастройкиFTP, НастройкиПрокси, НастройкиTLS);
-
- Если OPI_FTP.ЭтоКоннектор(Соединение) Тогда
- Опции = Новый Структура;
- Опции.Вставить("conn", Соединение);
- Опции.Вставить("path", "pic_from_binary.png");
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "УдалитьФайл", Опции);
- Иначе
- Результат = Соединение; // Ошибка соединения
- КонецЕсли;
-
- // END
-
- Обработать(Результат , "FTP", "УдалитьФайл", Постфикс);
-
- Опции = Новый Структура;
- Опции.Вставить("conn", Соединение);
- Опции.Вставить("path", "pic_from_binary.png");
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "УдалитьФайл", Опции);
-
- Обработать(Результат , "FTP", "УдалитьФайл", "Несуществующий, " + Постфикс);
-
- Опции = Новый Структура;
- Опции.Вставить("conn", Соединение);
- Опции.Вставить("path", "");
- Опции.Вставить("rcv", Истина);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьСписокОбъектов", Опции);
-
- Обработать(Результат , "FTP", "УдалитьФайл", "Проверка, " + Постфикс);
-
-КонецПроцедуры
-
-Процедура FTP_УдалитьДиректорию(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["FTP_IP"];
- Порт = ПараметрыФункции["FTP_Port"];
- Логин = ПараметрыФункции["FTP_User"];
- Пароль = ПараметрыФункции["FTP_Password"];
-
- ИспользоватьПрокси = Истина;
- FTPS = Истина;
-
- НастройкиПрокси = Неопределено;
- НастройкиTLS = Неопределено; // FTPS
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- FTPS = ПараметрыФункции["TLS"]; // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("host", Хост);
- Опции.Вставить("port", Порт);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
-
- НастройкиFTP = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьНастройкиСоединения", Опции);
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- Опции = Новый Структура;
- Опции.Вставить("addr", АдресПрокси);
- Опции.Вставить("port", ПортПрокси);
- Опции.Вставить("type", ТипПрокси);
- Опции.Вставить("login", ЛогинПрокси);
- Опции.Вставить("pass", ПарольПрокси);
-
- НастройкиПрокси = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьНастройкиПрокси", Опции);
-
- КонецЕсли;
-
- Если FTPS Тогда
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- НастройкиTLS = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьНастройкиTLS", Опции);
- КонецЕсли;
-
- Соединение = OPI_FTP.ОткрытьСоединение(НастройкиFTP, НастройкиПрокси, НастройкиTLS);
-
- Если OPI_FTP.ЭтоКоннектор(Соединение) Тогда
- Опции = Новый Структура;
- Опции.Вставить("conn", Соединение);
- Опции.Вставить("path", "new_dir/another_one");
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "УдалитьДиректорию", Опции);
- Иначе
- Результат = Соединение; // Ошибка соединения
- КонецЕсли;
-
- // END
-
- Обработать(Результат , "FTP", "УдалитьДиректорию", Постфикс);
-
-КонецПроцедуры
-
-Процедура FTP_ОчиститьДиректорию(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["FTP_IP"];
- Порт = ПараметрыФункции["FTP_Port"];
- Логин = ПараметрыФункции["FTP_User"];
- Пароль = ПараметрыФункции["FTP_Password"];
-
- ИспользоватьПрокси = Истина;
- FTPS = Истина;
-
- НастройкиПрокси = Неопределено;
- НастройкиTLS = Неопределено; // FTPS
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- FTPS = ПараметрыФункции["TLS"]; // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("host", Хост);
- Опции.Вставить("port", Порт);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
-
- НастройкиFTP = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьНастройкиСоединения", Опции);
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- Опции = Новый Структура;
- Опции.Вставить("addr", АдресПрокси);
- Опции.Вставить("port", ПортПрокси);
- Опции.Вставить("type", ТипПрокси);
- Опции.Вставить("login", ЛогинПрокси);
- Опции.Вставить("pass", ПарольПрокси);
-
- НастройкиПрокси = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьНастройкиПрокси", Опции);
-
- КонецЕсли;
-
- Если FTPS Тогда
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- НастройкиTLS = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьНастройкиTLS", Опции);
- КонецЕсли;
-
- Соединение = OPI_FTP.ОткрытьСоединение(НастройкиFTP, НастройкиПрокси, НастройкиTLS);
-
- Если OPI_FTP.ЭтоКоннектор(Соединение) Тогда
- Опции = Новый Структура;
- Опции.Вставить("conn", Соединение);
- Опции.Вставить("path", ".");
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ОчиститьДиректорию", Опции);
- Иначе
- Результат = Соединение; // Ошибка соединения
- КонецЕсли;
-
- // END
-
- Обработать(Результат , "FTP", "ОчиститьДиректорию", Постфикс);
-
- Опции = Новый Структура;
- Опции.Вставить("conn", Соединение);
- Опции.Вставить("path", ".");
- Опции.Вставить("rcv", Истина);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьСписокОбъектов", Опции);
-
- Обработать(Результат , "FTP", "ОчиститьДиректорию", "Проверка, " + Постфикс);
-
-КонецПроцедуры
-
-Процедура FTP_ПолучитьРазмерОбъекта(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["FTP_IP"];
- Порт = ПараметрыФункции["FTP_Port"];
- Логин = ПараметрыФункции["FTP_User"];
- Пароль = ПараметрыФункции["FTP_Password"];
-
- ИспользоватьПрокси = Истина;
- FTPS = Истина;
-
- НастройкиПрокси = Неопределено;
- НастройкиTLS = Неопределено; // FTPS
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- FTPS = ПараметрыФункции["TLS"]; // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("host", Хост);
- Опции.Вставить("port", Порт);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
-
- НастройкиFTP = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьНастройкиСоединения", Опции);
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- Опции = Новый Структура;
- Опции.Вставить("addr", АдресПрокси);
- Опции.Вставить("port", ПортПрокси);
- Опции.Вставить("type", ТипПрокси);
- Опции.Вставить("login", ЛогинПрокси);
- Опции.Вставить("pass", ПарольПрокси);
-
- НастройкиПрокси = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьНастройкиПрокси", Опции);
-
- КонецЕсли;
-
- Если FTPS Тогда
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- НастройкиTLS = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьНастройкиTLS", Опции);
- КонецЕсли;
-
- Соединение = OPI_FTP.ОткрытьСоединение(НастройкиFTP, НастройкиПрокси, НастройкиTLS);
-
- Если OPI_FTP.ЭтоКоннектор(Соединение) Тогда
- Опции = Новый Структура;
- Опции.Вставить("conn", Соединение);
- Опции.Вставить("path", "new_dir/pic_from_disk.png");
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьРазмерОбъекта", Опции);
- Иначе
- Результат = Соединение; // Ошибка соединения
- КонецЕсли;
-
- // END
-
- Обработать(Результат , "FTP", "ПолучитьРазмерОбъекта", Постфикс);
-
- Опции = Новый Структура;
- Опции.Вставить("conn", Соединение);
- Опции.Вставить("path", "new_dir/another.bin");
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьРазмерОбъекта", Опции);
-
- Обработать(Результат , "FTP", "ПолучитьРазмерОбъекта", "Несуществующий, " + Постфикс);
-
-КонецПроцедуры
-
-Процедура FTP_ИзменитьПуть(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["FTP_IP"];
- Порт = ПараметрыФункции["FTP_Port"];
- Логин = ПараметрыФункции["FTP_User"];
- Пароль = ПараметрыФункции["FTP_Password"];
-
- ИспользоватьПрокси = Истина;
- FTPS = Истина;
-
- НастройкиПрокси = Неопределено;
- НастройкиTLS = Неопределено; // FTPS
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- FTPS = ПараметрыФункции["TLS"]; // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("host", Хост);
- Опции.Вставить("port", Порт);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
-
- НастройкиFTP = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьНастройкиСоединения", Опции);
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- Опции = Новый Структура;
- Опции.Вставить("addr", АдресПрокси);
- Опции.Вставить("port", ПортПрокси);
- Опции.Вставить("type", ТипПрокси);
- Опции.Вставить("login", ЛогинПрокси);
- Опции.Вставить("pass", ПарольПрокси);
-
- НастройкиПрокси = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьНастройкиПрокси", Опции);
-
- КонецЕсли;
-
- Если FTPS Тогда
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- НастройкиTLS = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьНастройкиTLS", Опции);
- КонецЕсли;
-
- Соединение = OPI_FTP.ОткрытьСоединение(НастройкиFTP, НастройкиПрокси, НастройкиTLS);
-
- Если OPI_FTP.ЭтоКоннектор(Соединение) Тогда
- Опции = Новый Структура;
- Опции.Вставить("conn", Соединение);
- Опции.Вставить("old", "new_dir/pic_from_disk.png");
- Опции.Вставить("new", "new_dir/pic_copy.png");
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ИзменитьПуть", Опции);
- Иначе
- Результат = Соединение; // Ошибка соединения
- КонецЕсли;
-
- // END
-
- Обработать(Результат , "FTP", "ИзменитьПуть", Постфикс);
-
- Опции = Новый Структура;
- Опции.Вставить("conn", Соединение);
- Опции.Вставить("path", "new_dir/pic_copy.png");
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьРазмерОбъекта", Опции);
-
- Обработать(Результат , "FTP", "ИзменитьПуть", "Проверка, новый, " + Постфикс);
-
- Опции = Новый Структура;
- Опции.Вставить("conn", Соединение);
- Опции.Вставить("path", "new_dir/pic_from_binary.png");
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьРазмерОбъекта", Опции);
-
- Обработать(Результат , "FTP", "ИзменитьПуть", "Проверка, старый, " + Постфикс);
-
- Опции = Новый Структура;
- Опции.Вставить("conn", Соединение);
- Опции.Вставить("old", "new_dir");
- Опции.Вставить("new", "brand_new_dir");
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ИзменитьПуть", Опции);
-
- Обработать(Результат , "FTP", "ИзменитьПуть", "Каталог, " + Постфикс);
-
- Опции = Новый Структура;
- Опции.Вставить("conn", Соединение);
- Опции.Вставить("path", ".");
- Опции.Вставить("rcv", Истина);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьСписокОбъектов", Опции);
-
- Обработать(Результат , "FTP", "ИзменитьПуть", "Список, " + Постфикс);
-
- Опции = Новый Структура;
- Опции.Вставить("conn", Соединение);
- Опции.Вставить("old", "brand_new_dir");
- Опции.Вставить("new", "new_dir");
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ИзменитьПуть", Опции);
-
- Обработать(Результат , "FTP", "ИзменитьПуть", "Каталог, обратно, " + Постфикс);
-
- Опции = Новый Структура;
- Опции.Вставить("conn", Соединение);
- Опции.Вставить("old", "new_dir/pic_copy.png");
- Опции.Вставить("new", "new_dir/pic_from_disk.png");
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ИзменитьПуть", Опции);
-
- Обработать(Результат , "FTP", "ИзменитьПуть", "Обратно, " + Постфикс);
-
- Опции = Новый Структура;
- Опции.Вставить("conn", Соединение);
- Опции.Вставить("path", ".");
- Опции.Вставить("rcv", Истина);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьСписокОбъектов", Опции);
-
- Обработать(Результат , "FTP", "ИзменитьПуть", "Список, обратно, " + Постфикс);
-
-КонецПроцедуры
-
-Процедура FTP_СохранитьФайл(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["FTP_IP"];
- Порт = ПараметрыФункции["FTP_Port"];
- Логин = ПараметрыФункции["FTP_User"];
- Пароль = ПараметрыФункции["FTP_Password"];
-
- ИспользоватьПрокси = Истина;
- FTPS = Истина;
-
- НастройкиПрокси = Неопределено;
- НастройкиTLS = Неопределено; // FTPS
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- FTPS = ПараметрыФункции["TLS"]; // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("host", Хост);
- Опции.Вставить("port", Порт);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
-
- НастройкиFTP = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьНастройкиСоединения", Опции);
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- Опции = Новый Структура;
- Опции.Вставить("addr", АдресПрокси);
- Опции.Вставить("port", ПортПрокси);
- Опции.Вставить("type", ТипПрокси);
- Опции.Вставить("login", ЛогинПрокси);
- Опции.Вставить("pass", ПарольПрокси);
-
- НастройкиПрокси = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьНастройкиПрокси", Опции);
-
- КонецЕсли;
-
- Если FTPS Тогда
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- НастройкиTLS = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьНастройкиTLS", Опции);
- КонецЕсли;
-
- Соединение = OPI_FTP.ОткрытьСоединение(НастройкиFTP, НастройкиПрокси, НастройкиTLS);
-
- Если OPI_FTP.ЭтоКоннектор(Соединение) Тогда
-
- Путь = "new_dir/pic_from_disk.png";
- ИмяФайла = ПолучитьИмяВременногоФайла("bin");
-
- Опции = Новый Структура;
- Опции.Вставить("conn", Соединение);
- Опции.Вставить("path", Путь);
- Опции.Вставить("file", ИмяФайла);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "СохранитьФайл", Опции);
-
- Иначе
- Результат = Соединение; // Ошибка соединения
- КонецЕсли;
-
- // END
-
- Обработать(Результат, "FTP", "СохранитьФайл", Постфикс);
-
- Опции = Новый Структура;
- Опции.Вставить("conn", Соединение);
- Опции.Вставить("path", Путь);
-
- Размер = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьРазмерОбъекта", Опции);
-
- Обработать(Размер, "FTP", "СохранитьФайл", "Размер, " + Постфикс);
-
- ФайлОбъект = Новый Файл(ИмяФайла);
-
- РазмерФайла = ФайлОбъект.Размер();
- РазмерРезультата = Результат["bytes"];
- РазмерПроверки = Размер["bytes"];
-
- Обработать(РазмерФайла, "FTP", "СохранитьФайл", "Размер файла, " + Постфикс, РазмерРезультата, РазмерПроверки);
-
- Путь = "new_dir/pic_from_disk.png";
-
- Для Н = 1 По 5 Цикл
-
- Результат = OPI_FTP.СохранитьФайл(Соединение, Путь, ИмяФайла);
-
- Если Не Результат["result"] Тогда
- Обработать(Результат, "FTP", "СохранитьФайл", "Множественный, " + Постфикс);
- КонецЕсли;
-
- КонецЦикла;
-
- OPI_Инструменты.УдалитьФайлВПопытке(ИмяФайла, "Не удалось удалить временный файл после теста!");
-
-КонецПроцедуры
-
-Процедура FTP_ПолучитьДанныеФайла(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["FTP_IP"];
- Порт = ПараметрыФункции["FTP_Port"];
- Логин = ПараметрыФункции["FTP_User"];
- Пароль = ПараметрыФункции["FTP_Password"];
-
- ИспользоватьПрокси = Истина;
- FTPS = Истина;
-
- НастройкиПрокси = Неопределено;
- НастройкиTLS = Неопределено; // FTPS
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- FTPS = ПараметрыФункции["TLS"]; // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("host", Хост);
- Опции.Вставить("port", Порт);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
-
- НастройкиFTP = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьНастройкиСоединения", Опции);
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- Опции = Новый Структура;
- Опции.Вставить("addr", АдресПрокси);
- Опции.Вставить("port", ПортПрокси);
- Опции.Вставить("type", ТипПрокси);
- Опции.Вставить("login", ЛогинПрокси);
- Опции.Вставить("pass", ПарольПрокси);
-
- НастройкиПрокси = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьНастройкиПрокси", Опции);
-
- КонецЕсли;
-
- Если FTPS Тогда
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- НастройкиTLS = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьНастройкиTLS", Опции);
- КонецЕсли;
-
- Соединение = OPI_FTP.ОткрытьСоединение(НастройкиFTP, НастройкиПрокси, НастройкиTLS);
-
- Если OPI_FTP.ЭтоКоннектор(Соединение) Тогда
-
- Путь = "new_dir/pic_from_disk.png";
- Результат = OPI_FTP.ПолучитьДанныеФайла(Соединение, Путь);
-
- Иначе
- Результат = Соединение; // Ошибка соединения
- КонецЕсли;
-
- // END
-
- Обработать(Результат, "FTP", "ПолучитьДанныеФайла", Постфикс);
-
- Опции = Новый Структура;
- Опции.Вставить("conn", Соединение);
- Опции.Вставить("path", Путь);
-
- Размер = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьРазмерОбъекта", Опции);
-
- Обработать(Размер, "FTP", "ПолучитьДанныеФайла", "Размер, " + Постфикс);
-
- РазмерФайла = Результат.Размер();
- РазмерПроверки = Размер["bytes"];
-
- Обработать(РазмерФайла, "FTP", "ПолучитьДанныеФайла", "Размер файла, " + Постфикс, РазмерПроверки);
-
- Путь = "new_dir/pic_from_disk.png";
-
- Для Н = 1 По 5 Цикл
-
- Результат = OPI_FTP.ПолучитьДанныеФайла(Соединение, Путь);
-
- Если Не ТипЗнч(Результат) = Тип("ДвоичныеДанные") Тогда
- Обработать(Результат, "FTP", "ПолучитьДанныеФайла", "Множественный, " + Постфикс);
- КонецЕсли;
-
- КонецЦикла;
-
-КонецПроцедуры
-
-Процедура FTP_Пинг(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["FTP_IP"];
- Порт = ПараметрыФункции["FTP_Port"];
- Логин = ПараметрыФункции["FTP_User"];
- Пароль = ПараметрыФункции["FTP_Password"];
-
- ИспользоватьПрокси = Истина;
- FTPS = Истина;
-
- НастройкиПрокси = Неопределено;
- НастройкиTLS = Неопределено; // FTPS
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- FTPS = ПараметрыФункции["TLS"]; // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("host", Хост);
- Опции.Вставить("port", Порт);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
-
- НастройкиFTP = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьНастройкиСоединения", Опции);
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- Опции = Новый Структура;
- Опции.Вставить("addr", АдресПрокси);
- Опции.Вставить("port", ПортПрокси);
- Опции.Вставить("type", ТипПрокси);
- Опции.Вставить("login", ЛогинПрокси);
- Опции.Вставить("pass", ПарольПрокси);
-
- НастройкиПрокси = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьНастройкиПрокси", Опции);
-
- КонецЕсли;
-
- Если FTPS Тогда
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- НастройкиTLS = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьНастройкиTLS", Опции);
- КонецЕсли;
-
- Соединение = OPI_FTP.ОткрытьСоединение(НастройкиFTP, НастройкиПрокси, НастройкиTLS);
-
- Если OPI_FTP.ЭтоКоннектор(Соединение) Тогда
- Опции = Новый Структура;
- Опции.Вставить("conn", Соединение);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "Пинг", Опции);
- Иначе
- Результат = Соединение; // Ошибка соединения
- КонецЕсли;
-
- // END
-
- Обработать(Результат, "FTP", "Пинг", Постфикс);
-
-КонецПроцедуры
-
-Процедура FTP_ВыполнитьНестандартнуюКоманду(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["FTP_IP"];
- Порт = ПараметрыФункции["FTP_Port"];
- Логин = ПараметрыФункции["FTP_User"];
- Пароль = ПараметрыФункции["FTP_Password"];
-
- ИспользоватьПрокси = Истина;
- FTPS = Истина;
-
- НастройкиПрокси = Неопределено;
- НастройкиTLS = Неопределено; // FTPS
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- FTPS = ПараметрыФункции["TLS"]; // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("host", Хост);
- Опции.Вставить("port", Порт);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
-
- НастройкиFTP = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьНастройкиСоединения", Опции);
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- Опции = Новый Структура;
- Опции.Вставить("addr", АдресПрокси);
- Опции.Вставить("port", ПортПрокси);
- Опции.Вставить("type", ТипПрокси);
- Опции.Вставить("login", ЛогинПрокси);
- Опции.Вставить("pass", ПарольПрокси);
-
- НастройкиПрокси = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьНастройкиПрокси", Опции);
-
- КонецЕсли;
-
- Если FTPS Тогда
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- НастройкиTLS = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьНастройкиTLS", Опции);
- КонецЕсли;
-
- Соединение = OPI_FTP.ОткрытьСоединение(НастройкиFTP, НастройкиПрокси, НастройкиTLS);
-
- Если OPI_FTP.ЭтоКоннектор(Соединение) Тогда
-
- ТекстКоманды = "UMASK";
- Опции = Новый Структура;
- Опции.Вставить("conn", Соединение);
- Опции.Вставить("cmd", ТекстКоманды);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ВыполнитьНестандартнуюКоманду", Опции);
-
- Иначе
- Результат = Соединение; // Ошибка соединения
- КонецЕсли;
-
- // END
-
- Обработать(Результат, "FTP", "ВыполнитьНестандартнуюКоманду", Постфикс);
-
-КонецПроцедуры
-
-Процедура FTP_ВыполнитьПроизвольнуюКоманду(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["FTP_IP"];
- Порт = ПараметрыФункции["FTP_Port"];
- Логин = ПараметрыФункции["FTP_User"];
- Пароль = ПараметрыФункции["FTP_Password"];
-
- ИспользоватьПрокси = Истина;
- FTPS = Истина;
-
- НастройкиПрокси = Неопределено;
- НастройкиTLS = Неопределено; // FTPS
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- FTPS = ПараметрыФункции["TLS"]; // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("host", Хост);
- Опции.Вставить("port", Порт);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
-
- НастройкиFTP = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьНастройкиСоединения", Опции);
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- Опции = Новый Структура;
- Опции.Вставить("addr", АдресПрокси);
- Опции.Вставить("port", ПортПрокси);
- Опции.Вставить("type", ТипПрокси);
- Опции.Вставить("login", ЛогинПрокси);
- Опции.Вставить("pass", ПарольПрокси);
-
- НастройкиПрокси = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьНастройкиПрокси", Опции);
-
- КонецЕсли;
-
- Если FTPS Тогда
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- НастройкиTLS = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьНастройкиTLS", Опции);
- КонецЕсли;
-
- Соединение = OPI_FTP.ОткрытьСоединение(НастройкиFTP, НастройкиПрокси, НастройкиTLS);
-
- Если OPI_FTP.ЭтоКоннектор(Соединение) Тогда
-
- ТекстКоманды = "PWD";
- Опции = Новый Структура;
- Опции.Вставить("conn", Соединение);
- Опции.Вставить("cmd", ТекстКоманды);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ВыполнитьПроизвольнуюКоманду", Опции);
-
- Иначе
- Результат = Соединение; // Ошибка соединения
- КонецЕсли;
-
- // END
-
- Обработать(Результат, "FTP", "ВыполнитьПроизвольнуюКоманду", Постфикс);
-
-КонецПроцедуры
-
-Процедура FTP_ПолучитьТекущийКаталог(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["FTP_IP"];
- Порт = ПараметрыФункции["FTP_Port"];
- Логин = ПараметрыФункции["FTP_User"];
- Пароль = ПараметрыФункции["FTP_Password"];
-
- ИспользоватьПрокси = Истина;
- FTPS = Истина;
-
- НастройкиПрокси = Неопределено;
- НастройкиTLS = Неопределено; // FTPS
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- FTPS = ПараметрыФункции["TLS"]; // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("host", Хост);
- Опции.Вставить("port", Порт);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
-
- НастройкиFTP = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьНастройкиСоединения", Опции);
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- Опции = Новый Структура;
- Опции.Вставить("addr", АдресПрокси);
- Опции.Вставить("port", ПортПрокси);
- Опции.Вставить("type", ТипПрокси);
- Опции.Вставить("login", ЛогинПрокси);
- Опции.Вставить("pass", ПарольПрокси);
-
- НастройкиПрокси = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьНастройкиПрокси", Опции);
-
- КонецЕсли;
-
- Если FTPS Тогда
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- НастройкиTLS = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьНастройкиTLS", Опции);
- КонецЕсли;
-
- Соединение = OPI_FTP.ОткрытьСоединение(НастройкиFTP, НастройкиПрокси, НастройкиTLS);
-
- Если OPI_FTP.ЭтоКоннектор(Соединение) Тогда
- Опции = Новый Структура;
- Опции.Вставить("conn", Соединение);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьТекущийКаталог", Опции);
- Иначе
- Результат = Соединение; // Ошибка соединения
- КонецЕсли;
-
- // END
-
- Обработать(Результат, "FTP", "ПолучитьТекущийКаталог", Постфикс, ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура FTP_ИзменитьТекущийКаталог(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["FTP_IP"];
- Порт = ПараметрыФункции["FTP_Port"];
- Логин = ПараметрыФункции["FTP_User"];
- Пароль = ПараметрыФункции["FTP_Password"];
-
- ИспользоватьПрокси = Истина;
- FTPS = Истина;
-
- НастройкиПрокси = Неопределено;
- НастройкиTLS = Неопределено; // FTPS
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- FTPS = ПараметрыФункции["TLS"]; // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("host", Хост);
- Опции.Вставить("port", Порт);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
-
- НастройкиFTP = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьНастройкиСоединения", Опции);
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- Опции = Новый Структура;
- Опции.Вставить("addr", АдресПрокси);
- Опции.Вставить("port", ПортПрокси);
- Опции.Вставить("type", ТипПрокси);
- Опции.Вставить("login", ЛогинПрокси);
- Опции.Вставить("pass", ПарольПрокси);
-
- НастройкиПрокси = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьНастройкиПрокси", Опции);
-
- КонецЕсли;
-
- Если FTPS Тогда
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- НастройкиTLS = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьНастройкиTLS", Опции);
- КонецЕсли;
-
- Соединение = OPI_FTP.ОткрытьСоединение(НастройкиFTP, НастройкиПрокси, НастройкиTLS);
-
- Если OPI_FTP.ЭтоКоннектор(Соединение) Тогда
- Путь = "new_dir";
- Результат = OPI_FTP.ИзменитьТекущийКаталог(Соединение, Путь);
- Иначе
- Результат = Соединение; // Ошибка соединения
- КонецЕсли;
-
- // END
-
- Обработать(Результат, "FTP", "ИзменитьТекущийКаталог", Постфикс);
-
- Опции = Новый Структура;
- Опции.Вставить("conn", Соединение);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьТекущийКаталог", Опции);
-
- Обработать(Результат, "FTP", "ИзменитьТекущийКаталог", "Проверка, " + Постфикс, Путь);
-
- Путь = ПараметрыФункции["FTP_RootPath"];
- Результат = OPI_FTP.ИзменитьТекущийКаталог(Соединение, Путь);
-
- Обработать(Результат, "FTP", "ИзменитьТекущийКаталог", "Обратно, " + Постфикс);
-
- Опции = Новый Структура;
- Опции.Вставить("conn", Соединение);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьТекущийКаталог", Опции);
-
- Обработать(Результат, "FTP", "ИзменитьТекущийКаталог", "Проверка, обратно, " + Постфикс, Путь);
-
-КонецПроцедуры
-
-Процедура FTP_ПолучитьСписокРасширенийПротокола(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["FTP_IP"];
- Порт = ПараметрыФункции["FTP_Port"];
- Логин = ПараметрыФункции["FTP_User"];
- Пароль = ПараметрыФункции["FTP_Password"];
-
- ИспользоватьПрокси = Истина;
- FTPS = Истина;
-
- НастройкиПрокси = Неопределено;
- НастройкиTLS = Неопределено; // FTPS
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- FTPS = ПараметрыФункции["TLS"]; // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("host", Хост);
- Опции.Вставить("port", Порт);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
-
- НастройкиFTP = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьНастройкиСоединения", Опции);
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- Опции = Новый Структура;
- Опции.Вставить("addr", АдресПрокси);
- Опции.Вставить("port", ПортПрокси);
- Опции.Вставить("type", ТипПрокси);
- Опции.Вставить("login", ЛогинПрокси);
- Опции.Вставить("pass", ПарольПрокси);
-
- НастройкиПрокси = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьНастройкиПрокси", Опции);
-
- КонецЕсли;
-
- Если FTPS Тогда
- Опции = Новый Структура;
- Опции.Вставить("trust", Истина);
-
- НастройкиTLS = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьНастройкиTLS", Опции);
- КонецЕсли;
-
- Соединение = OPI_FTP.ОткрытьСоединение(НастройкиFTP, НастройкиПрокси, НастройкиTLS);
-
- Если OPI_FTP.ЭтоКоннектор(Соединение) Тогда
- Опции = Новый Структура;
- Опции.Вставить("conn", Соединение);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ftp", "ПолучитьСписокРасширенийПротокола", Опции);
- Иначе
- Результат = Соединение; // Ошибка соединения
- КонецЕсли;
-
- // END
-
- Обработать(Результат, "FTP", "ПолучитьСписокРасширенийПротокола", Постфикс);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область ReportPortal
-
-Процедура ReportPortal_ПолучитьВременныйТокен(ПараметрыФункции)
-
- URL = ПараметрыФункции["RPortal_URL"];
- Логин = ПараметрыФункции["RPortal_Login"];
- Пароль = ПараметрыФункции["RPortal_Password"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("login", Логин);
- Опции.Вставить("pass", Пароль);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("rportal", "ПолучитьВременныйТокен", Опции);
-
- // END
-
- Обработать(Результат, "ReportPortal", "ПолучитьВременныйТокен", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура ReportPortal_ПолучитьПостоянныйТокен(ПараметрыФункции)
-
- URL = ПараметрыФункции["RPortal_URL"];
- Токен = ПараметрыФункции["RPortal_TempToken"];
- IDПользователя = ПараметрыФункции["RPortal_UserID"];
- ИмяКлюча = "test_key";
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("token", Токен);
- Опции.Вставить("user", IDПользователя);
- Опции.Вставить("name", ИмяКлюча);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("rportal", "ПолучитьПостоянныйТокен", Опции);
-
- // END
-
- Обработать(Результат, "ReportPortal", "ПолучитьПостоянныйТокен", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура ReportPortal_УдалитьПостоянныйТокен(ПараметрыФункции)
-
- URL = ПараметрыФункции["RPortal_URL"];
- Токен = ПараметрыФункции["RPortal_TestApiKey"];
- IDПользователя = ПараметрыФункции["RPortal_UserID"];
- IDКлюча = ПараметрыФункции["RPortal_TestKeyID"];
-
- Опции = Новый Структура;
- Опции.Вставить("url", URL);
- Опции.Вставить("token", Токен);
- Опции.Вставить("user", IDПользователя);
- Опции.Вставить("id", IDКлюча);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("rportal", "УдалитьПостоянныйТокен", Опции);
-
- // END
-
- Обработать(Результат, "ReportPortal", "УдалитьПостоянныйТокен");
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область SSH
-
-Процедура SSH_ОткрытьСоединение(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["SSH_Host"];
- Порт = ПараметрыФункции["SSH_Port"];
-
- ИспользоватьПрокси = Истина;
- НастройкиПрокси = Неопределено;
- ВидАвторизации = "По логину и паролю";
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- ВидАвторизации = ПараметрыФункции["AuthType"]; // SKIP
-
- Если ВидАвторизации = "По логину и паролю" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- Пароль = ПараметрыФункции["SSH_Password"];
-
- Опции = Новый Структура;
- Опции.Вставить("host", Хост);
- Опции.Вставить("port", Порт);
- Опции.Вставить("user", Логин);
- Опции.Вставить("pass", Пароль);
-
- НастройкиSSH = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ssh", "ПолучитьНастройкиЛогинПароль", Опции);
-
- ИначеЕсли ВидАвторизации = "По ключу" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- ПриватныйКлюч = "./ssh_key";
- ПубличныйКлюч = "./ssh_key.pub";
-
- ПриватныйКлюч = ПараметрыФункции["SSH_Key"]; // SKIP
- ПубличныйКлюч = ПараметрыФункции["SSH_Pub"]; // SKIP
-
- НастройкиSSH = OPI_SSH.ПолучитьНастройкиПриватныйКлюч(Хост, Порт, Логин, ПриватныйКлюч, ПубличныйКлюч);
-
- Иначе
-
- Логин = ПараметрыФункции["SSH_User"];
- НастройкиSSH = OPI_SSH.ПолучитьНастройкиЧерезАгента(Хост, Порт, Логин);
-
- КонецЕсли;
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- Опции = Новый Структура;
- Опции.Вставить("addr", АдресПрокси);
- Опции.Вставить("port", ПортПрокси);
- Опции.Вставить("type", ТипПрокси);
- Опции.Вставить("login", ЛогинПрокси);
- Опции.Вставить("pass", ПарольПрокси);
-
- НастройкиПрокси = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ssh", "ПолучитьНастройкиПрокси", Опции);
-
- КонецЕсли;
-
- Результат = OPI_SSH.ОткрытьСоединение(НастройкиSSH, НастройкиПрокси);
-
- // END
-
- Обработать(Результат, "SSH", "ОткрытьСоединение", Постфикс);
-
-КонецПроцедуры
-
-Процедура SSH_ВыполнитьКоманду(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["SSH_Host"];
- Порт = ПараметрыФункции["SSH_Port"];
-
- ИспользоватьПрокси = Истина;
- НастройкиПрокси = Неопределено;
- ВидАвторизации = "По логину и паролю";
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- ВидАвторизации = ПараметрыФункции["AuthType"]; // SKIP
-
- Если ВидАвторизации = "По логину и паролю" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- Пароль = ПараметрыФункции["SSH_Password"];
-
- Опции = Новый Структура;
- Опции.Вставить("host", Хост);
- Опции.Вставить("port", Порт);
- Опции.Вставить("user", Логин);
- Опции.Вставить("pass", Пароль);
-
- НастройкиSSH = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ssh", "ПолучитьНастройкиЛогинПароль", Опции);
-
- ИначеЕсли ВидАвторизации = "По ключу" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- ПриватныйКлюч = "./ssh_key";
- ПубличныйКлюч = "./ssh_key.pub";
-
- ПриватныйКлюч = ПараметрыФункции["SSH_Key"]; // SKIP
- ПубличныйКлюч = ПараметрыФункции["SSH_Pub"]; // SKIP
-
- НастройкиSSH = OPI_SSH.ПолучитьНастройкиПриватныйКлюч(Хост, Порт, Логин, ПриватныйКлюч, ПубличныйКлюч);
-
- Иначе
-
- Логин = ПараметрыФункции["SSH_User"];
- НастройкиSSH = OPI_SSH.ПолучитьНастройкиЧерезАгента(Хост, Порт, Логин);
-
- КонецЕсли;
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- Опции = Новый Структура;
- Опции.Вставить("addr", АдресПрокси);
- Опции.Вставить("port", ПортПрокси);
- Опции.Вставить("type", ТипПрокси);
- Опции.Вставить("login", ЛогинПрокси);
- Опции.Вставить("pass", ПарольПрокси);
-
- НастройкиПрокси = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ssh", "ПолучитьНастройкиПрокси", Опции);
-
- КонецЕсли;
-
- Соединение = OPI_SSH.ОткрытьСоединение(НастройкиSSH, НастройкиПрокси);
-
- Если OPI_SSH.ЭтоКоннектор(Соединение) Тогда
- Опции = Новый Структура;
- Опции.Вставить("conn", Соединение);
- Опции.Вставить("comm", "whoami");
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ssh", "ВыполнитьКоманду", Опции);
- Иначе
- Результат = Соединение; // Ошибка соединения
- КонецЕсли;
-
- // END
-
- Обработать(Результат, "SSH", "ВыполнитьКоманду", Постфикс);
-
-КонецПроцедуры
-
-Процедура SSH_ПолучитьКонфигурациюСоединения(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["SSH_Host"];
- Порт = ПараметрыФункции["SSH_Port"];
-
- ИспользоватьПрокси = Истина;
- НастройкиПрокси = Неопределено;
- ВидАвторизации = "По логину и паролю";
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- ВидАвторизации = ПараметрыФункции["AuthType"]; // SKIP
-
- Если ВидАвторизации = "По логину и паролю" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- Пароль = ПараметрыФункции["SSH_Password"];
-
- Опции = Новый Структура;
- Опции.Вставить("host", Хост);
- Опции.Вставить("port", Порт);
- Опции.Вставить("user", Логин);
- Опции.Вставить("pass", Пароль);
-
- НастройкиSSH = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ssh", "ПолучитьНастройкиЛогинПароль", Опции);
-
- ИначеЕсли ВидАвторизации = "По ключу" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- ПриватныйКлюч = "./ssh_key";
- ПубличныйКлюч = "./ssh_key.pub";
-
- ПриватныйКлюч = ПараметрыФункции["SSH_Key"]; // SKIP
- ПубличныйКлюч = ПараметрыФункции["SSH_Pub"]; // SKIP
-
- НастройкиSSH = OPI_SSH.ПолучитьНастройкиПриватныйКлюч(Хост, Порт, Логин, ПриватныйКлюч, ПубличныйКлюч);
-
- Иначе
-
- Логин = ПараметрыФункции["SSH_User"];
- НастройкиSSH = OPI_SSH.ПолучитьНастройкиЧерезАгента(Хост, Порт, Логин);
-
- КонецЕсли;
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- Опции = Новый Структура;
- Опции.Вставить("addr", АдресПрокси);
- Опции.Вставить("port", ПортПрокси);
- Опции.Вставить("type", ТипПрокси);
- Опции.Вставить("login", ЛогинПрокси);
- Опции.Вставить("pass", ПарольПрокси);
-
- НастройкиПрокси = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ssh", "ПолучитьНастройкиПрокси", Опции);
-
- КонецЕсли;
-
- Опции = Новый Структура;
- Опции.Вставить("set", НастройкиSSH);
- Опции.Вставить("proxy", НастройкиПрокси);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ssh", "ПолучитьКонфигурациюСоединения", Опции);
-
- // END
-
- Обработать(Результат, "SSH", "ПолучитьКонфигурациюСоединения", Постфикс);
-
- Опции = Новый Структура;
- Опции.Вставить("conn", Результат);
- Опции.Вставить("comm", "whoami");
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ssh", "ВыполнитьКоманду", Опции);
-
- Обработать(Результат, "SSH", "ПолучитьКонфигурациюСоединения", "Проверка, " + Постфикс);
-
-КонецПроцедуры
-
-Процедура SSH_ЗакрытьСоединение(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["SSH_Host"];
- Порт = ПараметрыФункции["SSH_Port"];
-
- ИспользоватьПрокси = Истина;
- НастройкиПрокси = Неопределено;
- ВидАвторизации = "По логину и паролю";
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- ВидАвторизации = ПараметрыФункции["AuthType"]; // SKIP
-
- Если ВидАвторизации = "По логину и паролю" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- Пароль = ПараметрыФункции["SSH_Password"];
-
- Опции = Новый Структура;
- Опции.Вставить("host", Хост);
- Опции.Вставить("port", Порт);
- Опции.Вставить("user", Логин);
- Опции.Вставить("pass", Пароль);
-
- НастройкиSSH = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ssh", "ПолучитьНастройкиЛогинПароль", Опции);
-
- ИначеЕсли ВидАвторизации = "По ключу" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- ПриватныйКлюч = "./ssh_key";
- ПубличныйКлюч = "./ssh_key.pub";
-
- ПриватныйКлюч = ПараметрыФункции["SSH_Key"]; // SKIP
- ПубличныйКлюч = ПараметрыФункции["SSH_Pub"]; // SKIP
-
- НастройкиSSH = OPI_SSH.ПолучитьНастройкиПриватныйКлюч(Хост, Порт, Логин, ПриватныйКлюч, ПубличныйКлюч);
-
- Иначе
-
- Логин = ПараметрыФункции["SSH_User"];
- НастройкиSSH = OPI_SSH.ПолучитьНастройкиЧерезАгента(Хост, Порт, Логин);
-
- КонецЕсли;
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- Опции = Новый Структура;
- Опции.Вставить("addr", АдресПрокси);
- Опции.Вставить("port", ПортПрокси);
- Опции.Вставить("type", ТипПрокси);
- Опции.Вставить("login", ЛогинПрокси);
- Опции.Вставить("pass", ПарольПрокси);
-
- НастройкиПрокси = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ssh", "ПолучитьНастройкиПрокси", Опции);
-
- КонецЕсли;
-
- Соединение = OPI_SSH.ОткрытьСоединение(НастройкиSSH, НастройкиПрокси);
-
- Если OPI_SSH.ЭтоКоннектор(Соединение) Тогда
- Результат = OPI_SSH.ЗакрытьСоединение(Соединение);
- Иначе
- Результат = Соединение; // Ошибка соединения
- КонецЕсли;
-
- // END
-
- Обработать(Результат, "SSH", "ЗакрытьСоединение", Постфикс);
-
-КонецПроцедуры
-
-Процедура SSH_ЭтоКоннектор(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["SSH_Host"];
- Порт = ПараметрыФункции["SSH_Port"];
-
- ИспользоватьПрокси = Истина;
- НастройкиПрокси = Неопределено;
- ВидАвторизации = "По логину и паролю";
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- ВидАвторизации = ПараметрыФункции["AuthType"]; // SKIP
-
- Если ВидАвторизации = "По логину и паролю" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- Пароль = ПараметрыФункции["SSH_Password"];
-
- Опции = Новый Структура;
- Опции.Вставить("host", Хост);
- Опции.Вставить("port", Порт);
- Опции.Вставить("user", Логин);
- Опции.Вставить("pass", Пароль);
-
- НастройкиSSH = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ssh", "ПолучитьНастройкиЛогинПароль", Опции);
-
- ИначеЕсли ВидАвторизации = "По ключу" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- ПриватныйКлюч = "./ssh_key";
- ПубличныйКлюч = "./ssh_key.pub";
-
- ПриватныйКлюч = ПараметрыФункции["SSH_Key"]; // SKIP
- ПубличныйКлюч = ПараметрыФункции["SSH_Pub"]; // SKIP
-
- НастройкиSSH = OPI_SSH.ПолучитьНастройкиПриватныйКлюч(Хост, Порт, Логин, ПриватныйКлюч, ПубличныйКлюч);
-
- Иначе
-
- Логин = ПараметрыФункции["SSH_User"];
- НастройкиSSH = OPI_SSH.ПолучитьНастройкиЧерезАгента(Хост, Порт, Логин);
-
- КонецЕсли;
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- Опции = Новый Структура;
- Опции.Вставить("addr", АдресПрокси);
- Опции.Вставить("port", ПортПрокси);
- Опции.Вставить("type", ТипПрокси);
- Опции.Вставить("login", ЛогинПрокси);
- Опции.Вставить("pass", ПарольПрокси);
-
- НастройкиПрокси = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ssh", "ПолучитьНастройкиПрокси", Опции);
-
- КонецЕсли;
-
- Соединение = OPI_SSH.ОткрытьСоединение(НастройкиSSH, НастройкиПрокси);
- Результат = OPI_SSH.ЭтоКоннектор(Соединение);
-
- // END
-
- Обработать(Результат, "SSH", "ЭтоКоннектор", Постфикс);
-
- Результат = OPI_SSH.ЭтоКоннектор("a");
-
- Обработать(Результат, "SSH", "ЭтоКоннектор", "Ошибка, " + Постфикс);
-
-КонецПроцедуры
-
-Процедура SSH_ПолучитьНастройкиЛогинПароль(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["SSH_Host"];
- Порт = ПараметрыФункции["SSH_Port"];
- Логин = ПараметрыФункции["SSH_User"];
- Пароль = ПараметрыФункции["SSH_Password"];
-
- Опции = Новый Структура;
- Опции.Вставить("host", Хост);
- Опции.Вставить("port", Порт);
- Опции.Вставить("user", Логин);
- Опции.Вставить("pass", Пароль);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ssh", "ПолучитьНастройкиЛогинПароль", Опции);
-
- // END
-
- Обработать(Результат, "SSH", "ПолучитьНастройкиЛогинПароль", Постфикс);
-
-КонецПроцедуры
-
-Процедура SSH_ПолучитьНастройкиПриватныйКлюч(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["SSH_Host"];
- Порт = ПараметрыФункции["SSH_Port"];
- Логин = ПараметрыФункции["SSH_User"];
- ПриватныйКлюч = "./ssh_key";
- ПубличныйКлюч = "./ssh_key.pub";
-
- ПриватныйКлюч = ПараметрыФункции["SSH_Key"]; // SKIP
- ПубличныйКлюч = ПараметрыФункции["SSH_Pub"]; // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("host", Хост);
- Опции.Вставить("port", Порт);
- Опции.Вставить("user", Логин);
- Опции.Вставить("key", ПриватныйКлюч);
- Опции.Вставить("pub", ПубличныйКлюч);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ssh", "ПолучитьНастройкиПриватныйКлюч", Опции);
-
- // END
-
- Обработать(Результат, "SSH", "ПолучитьНастройкиПриватныйКлюч", Постфикс);
-
-КонецПроцедуры
-
-Процедура SSH_ПолучитьНастройкиЧерезАгента(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["SSH_Host"];
- Порт = ПараметрыФункции["SSH_Port"];
- Логин = ПараметрыФункции["SSH_User"];
- Опции = Новый Структура;
- Опции.Вставить("host", Хост);
- Опции.Вставить("port", Порт);
- Опции.Вставить("user", Логин);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ssh", "ПолучитьНастройкиЧерезАгента", Опции);
-
- // END
-
- Обработать(Результат, "SSH", "ПолучитьНастройкиЧерезАгента", Постфикс);
-
-КонецПроцедуры
-
-Процедура SSH_ПолучитьНастройкиПрокси(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- Опции = Новый Структура;
- Опции.Вставить("addr", АдресПрокси);
- Опции.Вставить("port", ПортПрокси);
- Опции.Вставить("type", ТипПрокси);
- Опции.Вставить("login", ЛогинПрокси);
- Опции.Вставить("pass", ПарольПрокси);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ssh", "ПолучитьНастройкиПрокси", Опции);
-
- // END
-
- Обработать(Результат, "SSH", "ПолучитьНастройкиПрокси", Постфикс);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область SFTP
-
-Процедура SFTP_ОткрытьСоединение(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["SSH_Host"];
- Порт = ПараметрыФункции["SSH_Port"];
-
- ИспользоватьПрокси = Истина;
- НастройкиПрокси = Неопределено;
- ВидАвторизации = "По логину и паролю";
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- ВидАвторизации = ПараметрыФункции["AuthType"]; // SKIP
-
- Если ВидАвторизации = "По логину и паролю" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- Пароль = ПараметрыФункции["SSH_Password"];
-
- Опции = Новый Структура;
- Опции.Вставить("host", Хост);
- Опции.Вставить("port", Порт);
- Опции.Вставить("user", Логин);
- Опции.Вставить("pass", Пароль);
-
- НастройкиSFTP = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sftp", "ПолучитьНастройкиЛогинПароль", Опции);
-
- ИначеЕсли ВидАвторизации = "По ключу" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- ПриватныйКлюч = "./ssh_key";
- ПубличныйКлюч = "./ssh_key.pub";
-
- ПриватныйКлюч = ПараметрыФункции["SSH_Key"]; // SKIP
- ПубличныйКлюч = ПараметрыФункции["SSH_Pub"]; // SKIP
-
- НастройкиSFTP = OPI_SFTP.ПолучитьНастройкиПриватныйКлюч(Хост, Порт, Логин, ПриватныйКлюч, ПубличныйКлюч);
-
- Иначе
-
- Логин = ПараметрыФункции["SSH_User"];
- НастройкиSFTP = OPI_SFTP.ПолучитьНастройкиЧерезАгента(Хост, Порт, Логин);
-
- КонецЕсли;
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- Опции = Новый Структура;
- Опции.Вставить("addr", АдресПрокси);
- Опции.Вставить("port", ПортПрокси);
- Опции.Вставить("type", ТипПрокси);
- Опции.Вставить("login", ЛогинПрокси);
- Опции.Вставить("pass", ПарольПрокси);
-
- НастройкиПрокси = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sftp", "ПолучитьНастройкиПрокси", Опции);
-
- КонецЕсли;
-
- Результат = OPI_SFTP.ОткрытьСоединение(НастройкиSFTP, НастройкиПрокси);
-
- // END
-
- Обработать(Результат, "SFTP", "ОткрытьСоединение", Постфикс);
-
-КонецПроцедуры
-
-Процедура SFTP_СоздатьНовуюДиректорию(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["SSH_Host"];
- Порт = ПараметрыФункции["SSH_Port"];
-
- ИспользоватьПрокси = Истина;
- НастройкиПрокси = Неопределено;
- ВидАвторизации = "По логину и паролю";
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- ВидАвторизации = ПараметрыФункции["AuthType"]; // SKIP
-
- Если ВидАвторизации = "По логину и паролю" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- Пароль = ПараметрыФункции["SSH_Password"];
-
- Опции = Новый Структура;
- Опции.Вставить("host", Хост);
- Опции.Вставить("port", Порт);
- Опции.Вставить("user", Логин);
- Опции.Вставить("pass", Пароль);
-
- НастройкиSFTP = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sftp", "ПолучитьНастройкиЛогинПароль", Опции);
-
- ИначеЕсли ВидАвторизации = "По ключу" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- ПриватныйКлюч = "./ssh_key";
- ПубличныйКлюч = "./ssh_key.pub";
-
- ПриватныйКлюч = ПараметрыФункции["SSH_Key"]; // SKIP
- ПубличныйКлюч = ПараметрыФункции["SSH_Pub"]; // SKIP
-
- НастройкиSFTP = OPI_SFTP.ПолучитьНастройкиПриватныйКлюч(Хост, Порт, Логин, ПриватныйКлюч, ПубличныйКлюч);
-
- Иначе
-
- Логин = ПараметрыФункции["SSH_User"];
- НастройкиSFTP = OPI_SFTP.ПолучитьНастройкиЧерезАгента(Хост, Порт, Логин);
-
- КонецЕсли;
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- Опции = Новый Структура;
- Опции.Вставить("addr", АдресПрокси);
- Опции.Вставить("port", ПортПрокси);
- Опции.Вставить("type", ТипПрокси);
- Опции.Вставить("login", ЛогинПрокси);
- Опции.Вставить("pass", ПарольПрокси);
-
- НастройкиПрокси = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sftp", "ПолучитьНастройкиПрокси", Опции);
-
- КонецЕсли;
-
- Соединение = OPI_SFTP.ОткрытьСоединение(НастройкиSFTP, НастройкиПрокси);
-
- Если OPI_SFTP.ЭтоКоннектор(Соединение) Тогда
- Опции = Новый Структура;
- Опции.Вставить("conn", Соединение);
- Опции.Вставить("path", "new_dir");
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sftp", "СоздатьНовуюДиректорию", Опции);
- Иначе
- Результат = Соединение; // Ошибка соединения
- КонецЕсли;
-
- // END
-
- Обработать(Результат, "SFTP", "СоздатьНовуюДиректорию", Постфикс);
-
-КонецПроцедуры
-
-Процедура SFTP_УдалитьДиректорию(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["SSH_Host"];
- Порт = ПараметрыФункции["SSH_Port"];
-
- ИспользоватьПрокси = Истина;
- НастройкиПрокси = Неопределено;
- ВидАвторизации = "По логину и паролю";
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- ВидАвторизации = ПараметрыФункции["AuthType"]; // SKIP
-
- Если ВидАвторизации = "По логину и паролю" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- Пароль = ПараметрыФункции["SSH_Password"];
-
- Опции = Новый Структура;
- Опции.Вставить("host", Хост);
- Опции.Вставить("port", Порт);
- Опции.Вставить("user", Логин);
- Опции.Вставить("pass", Пароль);
-
- НастройкиSFTP = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sftp", "ПолучитьНастройкиЛогинПароль", Опции);
-
- ИначеЕсли ВидАвторизации = "По ключу" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- ПриватныйКлюч = "./ssh_key";
- ПубличныйКлюч = "./ssh_key.pub";
-
- ПриватныйКлюч = ПараметрыФункции["SSH_Key"]; // SKIP
- ПубличныйКлюч = ПараметрыФункции["SSH_Pub"]; // SKIP
-
- НастройкиSFTP = OPI_SFTP.ПолучитьНастройкиПриватныйКлюч(Хост, Порт, Логин, ПриватныйКлюч, ПубличныйКлюч);
-
- Иначе
-
- Логин = ПараметрыФункции["SSH_User"];
- НастройкиSFTP = OPI_SFTP.ПолучитьНастройкиЧерезАгента(Хост, Порт, Логин);
-
- КонецЕсли;
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- Опции = Новый Структура;
- Опции.Вставить("addr", АдресПрокси);
- Опции.Вставить("port", ПортПрокси);
- Опции.Вставить("type", ТипПрокси);
- Опции.Вставить("login", ЛогинПрокси);
- Опции.Вставить("pass", ПарольПрокси);
-
- НастройкиПрокси = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sftp", "ПолучитьНастройкиПрокси", Опции);
-
- КонецЕсли;
-
- Соединение = OPI_SFTP.ОткрытьСоединение(НастройкиSFTP, НастройкиПрокси);
-
- Если OPI_SFTP.ЭтоКоннектор(Соединение) Тогда
- Опции = Новый Структура;
- Опции.Вставить("conn", Соединение);
- Опции.Вставить("path", "new_dir");
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sftp", "УдалитьДиректорию", Опции);
- Иначе
- Результат = Соединение; // Ошибка соединения
- КонецЕсли;
-
- // END
-
- Обработать(Результат, "SFTP", "УдалитьДиректорию", Постфикс);
-
-КонецПроцедуры
-
-Процедура SFTP_ПолучитьТекущийКаталог(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["SSH_Host"];
- Порт = ПараметрыФункции["SSH_Port"];
-
- ИспользоватьПрокси = Истина;
- НастройкиПрокси = Неопределено;
- ВидАвторизации = "По логину и паролю";
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- ВидАвторизации = ПараметрыФункции["AuthType"]; // SKIP
-
- Если ВидАвторизации = "По логину и паролю" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- Пароль = ПараметрыФункции["SSH_Password"];
-
- Опции = Новый Структура;
- Опции.Вставить("host", Хост);
- Опции.Вставить("port", Порт);
- Опции.Вставить("user", Логин);
- Опции.Вставить("pass", Пароль);
-
- НастройкиSFTP = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sftp", "ПолучитьНастройкиЛогинПароль", Опции);
-
- ИначеЕсли ВидАвторизации = "По ключу" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- ПриватныйКлюч = "./ssh_key";
- ПубличныйКлюч = "./ssh_key.pub";
-
- ПриватныйКлюч = ПараметрыФункции["SSH_Key"]; // SKIP
- ПубличныйКлюч = ПараметрыФункции["SSH_Pub"]; // SKIP
-
- НастройкиSFTP = OPI_SFTP.ПолучитьНастройкиПриватныйКлюч(Хост, Порт, Логин, ПриватныйКлюч, ПубличныйКлюч);
-
- Иначе
-
- Логин = ПараметрыФункции["SSH_User"];
- НастройкиSFTP = OPI_SFTP.ПолучитьНастройкиЧерезАгента(Хост, Порт, Логин);
-
- КонецЕсли;
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- Опции = Новый Структура;
- Опции.Вставить("addr", АдресПрокси);
- Опции.Вставить("port", ПортПрокси);
- Опции.Вставить("type", ТипПрокси);
- Опции.Вставить("login", ЛогинПрокси);
- Опции.Вставить("pass", ПарольПрокси);
-
- НастройкиПрокси = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sftp", "ПолучитьНастройкиПрокси", Опции);
-
- КонецЕсли;
-
- Соединение = OPI_SFTP.ОткрытьСоединение(НастройкиSFTP, НастройкиПрокси);
-
- Если OPI_SFTP.ЭтоКоннектор(Соединение) Тогда
- Опции = Новый Структура;
- Опции.Вставить("conn", Соединение);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sftp", "ПолучитьТекущийКаталог", Опции);
- Иначе
- Результат = Соединение; // Ошибка соединения
- КонецЕсли;
-
- // END
-
- Обработать(Результат, "SFTP", "ПолучитьТекущийКаталог", Постфикс);
-
-КонецПроцедуры
-
-Процедура SFTP_ПолучитьСписокОбъектов(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["SSH_Host"];
- Порт = ПараметрыФункции["SSH_Port"];
-
- ИспользоватьПрокси = Истина;
- НастройкиПрокси = Неопределено;
- ВидАвторизации = "По логину и паролю";
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- ВидАвторизации = ПараметрыФункции["AuthType"]; // SKIP
-
- Если ВидАвторизации = "По логину и паролю" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- Пароль = ПараметрыФункции["SSH_Password"];
-
- Опции = Новый Структура;
- Опции.Вставить("host", Хост);
- Опции.Вставить("port", Порт);
- Опции.Вставить("user", Логин);
- Опции.Вставить("pass", Пароль);
-
- НастройкиSFTP = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sftp", "ПолучитьНастройкиЛогинПароль", Опции);
-
- ИначеЕсли ВидАвторизации = "По ключу" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- ПриватныйКлюч = "./ssh_key";
- ПубличныйКлюч = "./ssh_key.pub";
-
- ПриватныйКлюч = ПараметрыФункции["SSH_Key"]; // SKIP
- ПубличныйКлюч = ПараметрыФункции["SSH_Pub"]; // SKIP
-
- НастройкиSFTP = OPI_SFTP.ПолучитьНастройкиПриватныйКлюч(Хост, Порт, Логин, ПриватныйКлюч, ПубличныйКлюч);
-
- Иначе
-
- Логин = ПараметрыФункции["SSH_User"];
- НастройкиSFTP = OPI_SFTP.ПолучитьНастройкиЧерезАгента(Хост, Порт, Логин);
-
- КонецЕсли;
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- Опции = Новый Структура;
- Опции.Вставить("addr", АдресПрокси);
- Опции.Вставить("port", ПортПрокси);
- Опции.Вставить("type", ТипПрокси);
- Опции.Вставить("login", ЛогинПрокси);
- Опции.Вставить("pass", ПарольПрокси);
-
- НастройкиПрокси = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sftp", "ПолучитьНастройкиПрокси", Опции);
-
- КонецЕсли;
-
- Соединение = OPI_SFTP.ОткрытьСоединение(НастройкиSFTP, НастройкиПрокси);
-
- Если OPI_SFTP.ЭтоКоннектор(Соединение) Тогда
- Опции = Новый Структура;
- Опции.Вставить("conn", Соединение);
- Опции.Вставить("path", "test_folder");
- Опции.Вставить("rcv", Истина);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sftp", "ПолучитьСписокОбъектов", Опции);
- Иначе
- Результат = Соединение; // Ошибка соединения
- КонецЕсли;
-
- // END
-
- Обработать(Результат, "SFTP", "ПолучитьСписокОбъектов", Постфикс);
-
- Опции = Новый Структура;
- Опции.Вставить("conn", Соединение);
- Опции.Вставить("path", "test_folder");
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sftp", "ПолучитьСписокОбъектов", Опции);
-
- Обработать(Результат, "SFTP", "ПолучитьСписокОбъектов", Постфикс + ", Без рекурсии");
-
-КонецПроцедуры
-
-Процедура SFTP_ЗагрузитьФайл(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- КартинкаПуть = "C:\pic.png";
-
- Картинка = ПараметрыФункции["Picture"]; // SKIP
- ИВФ = ПолучитьИмяВременногоФайла("png"); // SKIP
- КопироватьФайл(Картинка, ИВФ); // SKIP
- Картинка = ИВФ; // SKIP
-
- КартинкаДД = Новый ДвоичныеДанные(Картинка);
-
- Хост = ПараметрыФункции["SSH_Host"];
- Порт = ПараметрыФункции["SSH_Port"];
-
- ИспользоватьПрокси = Истина;
- НастройкиПрокси = Неопределено;
- ВидАвторизации = "По логину и паролю";
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- ВидАвторизации = ПараметрыФункции["AuthType"]; // SKIP
-
- Если ВидАвторизации = "По логину и паролю" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- Пароль = ПараметрыФункции["SSH_Password"];
-
- Опции = Новый Структура;
- Опции.Вставить("host", Хост);
- Опции.Вставить("port", Порт);
- Опции.Вставить("user", Логин);
- Опции.Вставить("pass", Пароль);
-
- НастройкиSFTP = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sftp", "ПолучитьНастройкиЛогинПароль", Опции);
-
- ИначеЕсли ВидАвторизации = "По ключу" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- ПриватныйКлюч = "./ssh_key";
- ПубличныйКлюч = "./ssh_key.pub";
-
- ПриватныйКлюч = ПараметрыФункции["SSH_Key"]; // SKIP
- ПубличныйКлюч = ПараметрыФункции["SSH_Pub"]; // SKIP
-
- НастройкиSFTP = OPI_SFTP.ПолучитьНастройкиПриватныйКлюч(Хост, Порт, Логин, ПриватныйКлюч, ПубличныйКлюч);
-
- Иначе
-
- Логин = ПараметрыФункции["SSH_User"];
- НастройкиSFTP = OPI_SFTP.ПолучитьНастройкиЧерезАгента(Хост, Порт, Логин);
-
- КонецЕсли;
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- Опции = Новый Структура;
- Опции.Вставить("addr", АдресПрокси);
- Опции.Вставить("port", ПортПрокси);
- Опции.Вставить("type", ТипПрокси);
- Опции.Вставить("login", ЛогинПрокси);
- Опции.Вставить("pass", ПарольПрокси);
-
- НастройкиПрокси = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sftp", "ПолучитьНастройкиПрокси", Опции);
-
- КонецЕсли;
-
- Соединение = OPI_SFTP.ОткрытьСоединение(НастройкиSFTP, НастройкиПрокси);
-
- Если OPI_SFTP.ЭтоКоннектор(Соединение) Тогда
-
- Опции = Новый Структура;
- Опции.Вставить("conn", Соединение);
- Опции.Вставить("file", Картинка);
- Опции.Вставить("path", "pic_from_disk.png");
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sftp", "ЗагрузитьФайл", Опции);
- Опции = Новый Структура;
- Опции.Вставить("conn", Соединение);
- Опции.Вставить("file", КартинкаДД);
- Опции.Вставить("path", "files_folder/pic_from_binary.png");
-
- Результат2 = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sftp", "ЗагрузитьФайл", Опции);
-
- Иначе
- Результат = Соединение; // Ошибка соединения
- КонецЕсли;
-
- // END
-
- ЗагруженныйФайл = Новый Файл(Картинка);
-
- Обработать(Результат , "SFTP", "ЗагрузитьФайл", Постфикс , ЗагруженныйФайл.Размер());
- Обработать(Результат2, "SFTP", "ЗагрузитьФайл", "Двоичные, " + Постфикс, КартинкаДД.Размер());
-
-
- РазмерФайлаЛокальный = ЗагруженныйФайл.Размер();
- РазмерФайлаЛокальныйДД = КартинкаДД.Размер();
-
- РазмерФайлаУдаленный = OPI_SFTP.ПолучитьИнформациюОФайле(Соединение, "pic_from_disk.png")["data"]["size"];
- РазмерФайлаУдаленныйДД = OPI_SFTP.ПолучитьИнформациюОФайле(Соединение, "files_folder/pic_from_binary.png")["data"]["size"];
-
- Обработать(РазмерФайлаЛокальный , "SFTP", "СохранитьФайл", "Размер файла, " + Постфикс , РазмерФайлаУдаленный);
- Обработать(РазмерФайлаЛокальныйДД, "SFTP", "СохранитьФайл", "Размер файла, ДД, " + Постфикс, РазмерФайлаУдаленныйДД);
-
- Для Н = 1 По 7 Цикл
-
- Результат = OPI_SFTP.ЗагрузитьФайл(Соединение, Картинка, "pic_from_disk.png");
- Результат2 = OPI_SFTP.ЗагрузитьФайл(Соединение, КартинкаДД, "files_folder/pic_from_binary.png");
-
- Если Не Результат["result"] Тогда
- Обработать(Результат, "SFTP", "ЗагрузитьФайл", "Множественный, " + Постфикс, КартинкаДД.Размер());
- КонецЕсли;
-
- Если Не Результат2["result"] Тогда
- Обработать(Результат2, "SFTP", "ЗагрузитьФайл", "Множественный, двоичные, " + Постфикс, КартинкаДД.Размер());
- КонецЕсли;
-
- КонецЦикла;
-
- OPI_Инструменты.УдалитьФайлВПопытке(ИВФ, "Не удалось удалить временный файл после теста!");
-
-КонецПроцедуры
-
-Процедура SFTP_УдалитьФайл(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["SSH_Host"];
- Порт = ПараметрыФункции["SSH_Port"];
-
- ИспользоватьПрокси = Истина;
- НастройкиПрокси = Неопределено;
- ВидАвторизации = "По логину и паролю";
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- ВидАвторизации = ПараметрыФункции["AuthType"]; // SKIP
-
- Если ВидАвторизации = "По логину и паролю" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- Пароль = ПараметрыФункции["SSH_Password"];
-
- Опции = Новый Структура;
- Опции.Вставить("host", Хост);
- Опции.Вставить("port", Порт);
- Опции.Вставить("user", Логин);
- Опции.Вставить("pass", Пароль);
-
- НастройкиSFTP = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sftp", "ПолучитьНастройкиЛогинПароль", Опции);
-
- ИначеЕсли ВидАвторизации = "По ключу" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- ПриватныйКлюч = "./ssh_key";
- ПубличныйКлюч = "./ssh_key.pub";
-
- ПриватныйКлюч = ПараметрыФункции["SSH_Key"]; // SKIP
- ПубличныйКлюч = ПараметрыФункции["SSH_Pub"]; // SKIP
-
- НастройкиSFTP = OPI_SFTP.ПолучитьНастройкиПриватныйКлюч(Хост, Порт, Логин, ПриватныйКлюч, ПубличныйКлюч);
-
- Иначе
-
- Логин = ПараметрыФункции["SSH_User"];
- НастройкиSFTP = OPI_SFTP.ПолучитьНастройкиЧерезАгента(Хост, Порт, Логин);
-
- КонецЕсли;
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- Опции = Новый Структура;
- Опции.Вставить("addr", АдресПрокси);
- Опции.Вставить("port", ПортПрокси);
- Опции.Вставить("type", ТипПрокси);
- Опции.Вставить("login", ЛогинПрокси);
- Опции.Вставить("pass", ПарольПрокси);
-
- НастройкиПрокси = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sftp", "ПолучитьНастройкиПрокси", Опции);
-
- КонецЕсли;
-
- Соединение = OPI_SFTP.ОткрытьСоединение(НастройкиSFTP, НастройкиПрокси);
-
- Если OPI_SFTP.ЭтоКоннектор(Соединение) Тогда
- Опции = Новый Структура;
- Опции.Вставить("conn", Соединение);
- Опции.Вставить("path", "files_folder/pic_from_binary.png");
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sftp", "УдалитьФайл", Опции);
- Иначе
- Результат = Соединение; // Ошибка соединения
- КонецЕсли;
-
- // END
-
- Обработать(Результат , "SFTP", "УдалитьФайл", Постфикс);
-
- Опции = Новый Структура;
- Опции.Вставить("conn", Соединение);
- Опции.Вставить("path", "files_folder/pic_from_binary.png");
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sftp", "УдалитьФайл", Опции);
-
- Обработать(Результат , "SFTP", "УдалитьФайл", "Несуществующий, " + Постфикс);
-
- Опции = Новый Структура;
- Опции.Вставить("conn", Соединение);
- Опции.Вставить("path", "files_folder");
- Опции.Вставить("rcv", Истина);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sftp", "ПолучитьСписокОбъектов", Опции);
-
- Обработать(Результат , "SFTP", "УдалитьФайл", "Проверка, " + Постфикс);
-
-КонецПроцедуры
-
-Процедура SFTP_ЭтоКоннектор(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["SSH_Host"];
- Порт = ПараметрыФункции["SSH_Port"];
-
- ИспользоватьПрокси = Истина;
- НастройкиПрокси = Неопределено;
- ВидАвторизации = "По логину и паролю";
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- ВидАвторизации = ПараметрыФункции["AuthType"]; // SKIP
-
- Если ВидАвторизации = "По логину и паролю" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- Пароль = ПараметрыФункции["SSH_Password"];
-
- Опции = Новый Структура;
- Опции.Вставить("host", Хост);
- Опции.Вставить("port", Порт);
- Опции.Вставить("user", Логин);
- Опции.Вставить("pass", Пароль);
-
- НастройкиSFTP = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sftp", "ПолучитьНастройкиЛогинПароль", Опции);
-
- ИначеЕсли ВидАвторизации = "По ключу" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- ПриватныйКлюч = "./ssh_key";
- ПубличныйКлюч = "./ssh_key.pub";
-
- ПриватныйКлюч = ПараметрыФункции["SSH_Key"]; // SKIP
- ПубличныйКлюч = ПараметрыФункции["SSH_Pub"]; // SKIP
-
- НастройкиSFTP = OPI_SFTP.ПолучитьНастройкиПриватныйКлюч(Хост, Порт, Логин, ПриватныйКлюч, ПубличныйКлюч);
-
- Иначе
-
- Логин = ПараметрыФункции["SSH_User"];
- НастройкиSFTP = OPI_SFTP.ПолучитьНастройкиЧерезАгента(Хост, Порт, Логин);
-
- КонецЕсли;
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- Опции = Новый Структура;
- Опции.Вставить("addr", АдресПрокси);
- Опции.Вставить("port", ПортПрокси);
- Опции.Вставить("type", ТипПрокси);
- Опции.Вставить("login", ЛогинПрокси);
- Опции.Вставить("pass", ПарольПрокси);
-
- НастройкиПрокси = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sftp", "ПолучитьНастройкиПрокси", Опции);
-
- КонецЕсли;
-
- Соединение = OPI_SFTP.ОткрытьСоединение(НастройкиSFTP, НастройкиПрокси);
- Результат = OPI_SFTP.ЭтоКоннектор(Соединение);
-
- // END
-
- Обработать(Результат, "SFTP", "ЭтоКоннектор", Постфикс);
-
- Результат = OPI_SFTP.ЭтоКоннектор("a");
-
- Обработать(Результат, "SFTP", "ЭтоКоннектор", "Ошибка, " + Постфикс);
-
-КонецПроцедуры
-
-Процедура SFTP_ПолучитьНастройкиЛогинПароль(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["SSH_Host"];
- Порт = ПараметрыФункции["SSH_Port"];
- Логин = ПараметрыФункции["SSH_User"];
- Пароль = ПараметрыФункции["SSH_Password"];
-
- Опции = Новый Структура;
- Опции.Вставить("host", Хост);
- Опции.Вставить("port", Порт);
- Опции.Вставить("user", Логин);
- Опции.Вставить("pass", Пароль);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sftp", "ПолучитьНастройкиЛогинПароль", Опции);
-
- // END
-
- Обработать(Результат, "SFTP", "ПолучитьНастройкиЛогинПароль", Постфикс);
-
-КонецПроцедуры
-
-Процедура SFTP_ПолучитьНастройкиПриватныйКлюч(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["SSH_Host"];
- Порт = ПараметрыФункции["SSH_Port"];
- Логин = ПараметрыФункции["SSH_User"];
- ПриватныйКлюч = "./ssh_key";
- ПубличныйКлюч = "./ssh_key.pub";
-
- ПриватныйКлюч = ПараметрыФункции["SSH_Key"]; // SKIP
- ПубличныйКлюч = ПараметрыФункции["SSH_Pub"]; // SKIP
-
- Опции = Новый Структура;
- Опции.Вставить("host", Хост);
- Опции.Вставить("port", Порт);
- Опции.Вставить("user", Логин);
- Опции.Вставить("key", ПриватныйКлюч);
- Опции.Вставить("pub", ПубличныйКлюч);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sftp", "ПолучитьНастройкиПриватныйКлюч", Опции);
-
- // END
-
- Обработать(Результат, "SFTP", "ПолучитьНастройкиПриватныйКлюч", Постфикс);
-
-КонецПроцедуры
-
-Процедура SFTP_ПолучитьНастройкиЧерезАгента(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["SSH_Host"];
- Порт = ПараметрыФункции["SSH_Port"];
- Логин = ПараметрыФункции["SSH_User"];
- Опции = Новый Структура;
- Опции.Вставить("host", Хост);
- Опции.Вставить("port", Порт);
- Опции.Вставить("user", Логин);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sftp", "ПолучитьНастройкиЧерезАгента", Опции);
-
- // END
-
- Обработать(Результат, "SFTP", "ПолучитьНастройкиЧерезАгента", Постфикс);
-
-КонецПроцедуры
-
-Процедура SFTP_ПолучитьНастройкиПрокси(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- Опции = Новый Структура;
- Опции.Вставить("addr", АдресПрокси);
- Опции.Вставить("port", ПортПрокси);
- Опции.Вставить("type", ТипПрокси);
- Опции.Вставить("login", ЛогинПрокси);
- Опции.Вставить("pass", ПарольПрокси);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sftp", "ПолучитьНастройкиПрокси", Опции);
-
- // END
-
- Обработать(Результат, "SFTP", "ПолучитьНастройкиПрокси", Постфикс);
-
-КонецПроцедуры
-
-Процедура SFTP_ПолучитьКонфигурациюСоединения(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["SSH_Host"];
- Порт = ПараметрыФункции["SSH_Port"];
-
- ИспользоватьПрокси = Истина;
- НастройкиПрокси = Неопределено;
- ВидАвторизации = "По логину и паролю";
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- ВидАвторизации = ПараметрыФункции["AuthType"]; // SKIP
-
- Если ВидАвторизации = "По логину и паролю" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- Пароль = ПараметрыФункции["SSH_Password"];
-
- Опции = Новый Структура;
- Опции.Вставить("host", Хост);
- Опции.Вставить("port", Порт);
- Опции.Вставить("user", Логин);
- Опции.Вставить("pass", Пароль);
-
- НастройкиSFTP = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sftp", "ПолучитьНастройкиЛогинПароль", Опции);
-
- ИначеЕсли ВидАвторизации = "По ключу" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- ПриватныйКлюч = "./ssh_key";
- ПубличныйКлюч = "./ssh_key.pub";
-
- ПриватныйКлюч = ПараметрыФункции["SSH_Key"]; // SKIP
- ПубличныйКлюч = ПараметрыФункции["SSH_Pub"]; // SKIP
-
- НастройкиSFTP = OPI_SFTP.ПолучитьНастройкиПриватныйКлюч(Хост, Порт, Логин, ПриватныйКлюч, ПубличныйКлюч);
-
- Иначе
-
- Логин = ПараметрыФункции["SSH_User"];
- НастройкиSFTP = OPI_SFTP.ПолучитьНастройкиЧерезАгента(Хост, Порт, Логин);
-
- КонецЕсли;
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- Опции = Новый Структура;
- Опции.Вставить("addr", АдресПрокси);
- Опции.Вставить("port", ПортПрокси);
- Опции.Вставить("type", ТипПрокси);
- Опции.Вставить("login", ЛогинПрокси);
- Опции.Вставить("pass", ПарольПрокси);
-
- НастройкиПрокси = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sftp", "ПолучитьНастройкиПрокси", Опции);
-
- КонецЕсли;
-
- Опции = Новый Структура;
- Опции.Вставить("set", НастройкиSFTP);
- Опции.Вставить("proxy", НастройкиПрокси);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sftp", "ПолучитьКонфигурациюСоединения", Опции);
-
- // END
-
- Обработать(Результат, "SFTP", "ПолучитьКонфигурациюСоединения", Постфикс);
-
- Опции = Новый Структура;
- Опции.Вставить("conn", Результат);
- Опции.Вставить("comm", "whoami");
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ssh", "ВыполнитьКоманду", Опции);
-
- Обработать(Результат, "SFTP", "ПолучитьКонфигурациюСоединения", "Проверка, " + Постфикс);
-
-КонецПроцедуры
-
-Процедура SFTP_ЗакрытьСоединение(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["SSH_Host"];
- Порт = ПараметрыФункции["SSH_Port"];
-
- ИспользоватьПрокси = Истина;
- НастройкиПрокси = Неопределено;
- ВидАвторизации = "По логину и паролю";
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- ВидАвторизации = ПараметрыФункции["AuthType"]; // SKIP
-
- Если ВидАвторизации = "По логину и паролю" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- Пароль = ПараметрыФункции["SSH_Password"];
-
- Опции = Новый Структура;
- Опции.Вставить("host", Хост);
- Опции.Вставить("port", Порт);
- Опции.Вставить("user", Логин);
- Опции.Вставить("pass", Пароль);
-
- НастройкиSFTP = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sftp", "ПолучитьНастройкиЛогинПароль", Опции);
-
- ИначеЕсли ВидАвторизации = "По ключу" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- ПриватныйКлюч = "./ssh_key";
- ПубличныйКлюч = "./ssh_key.pub";
-
- ПриватныйКлюч = ПараметрыФункции["SSH_Key"]; // SKIP
- ПубличныйКлюч = ПараметрыФункции["SSH_Pub"]; // SKIP
-
- НастройкиSFTP = OPI_SFTP.ПолучитьНастройкиПриватныйКлюч(Хост, Порт, Логин, ПриватныйКлюч, ПубличныйКлюч);
-
- Иначе
-
- Логин = ПараметрыФункции["SSH_User"];
- НастройкиSFTP = OPI_SFTP.ПолучитьНастройкиЧерезАгента(Хост, Порт, Логин);
-
- КонецЕсли;
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- Опции = Новый Структура;
- Опции.Вставить("addr", АдресПрокси);
- Опции.Вставить("port", ПортПрокси);
- Опции.Вставить("type", ТипПрокси);
- Опции.Вставить("login", ЛогинПрокси);
- Опции.Вставить("pass", ПарольПрокси);
-
- НастройкиПрокси = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sftp", "ПолучитьНастройкиПрокси", Опции);
-
- КонецЕсли;
-
- Соединение = OPI_SFTP.ОткрытьСоединение(НастройкиSFTP, НастройкиПрокси);
-
- Если OPI_SFTP.ЭтоКоннектор(Соединение) Тогда
- Результат = OPI_SFTP.ЗакрытьСоединение(Соединение);
- Иначе
- Результат = Соединение; // Ошибка соединения
- КонецЕсли;
-
- // END
-
- Обработать(Результат, "SFTP", "ЗакрытьСоединение", Постфикс);
-
-КонецПроцедуры
-
-Процедура SFTP_СохранитьФайл(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["SSH_Host"];
- Порт = ПараметрыФункции["SSH_Port"];
-
- ИспользоватьПрокси = Истина;
- НастройкиПрокси = Неопределено;
- ВидАвторизации = "По логину и паролю";
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- ВидАвторизации = ПараметрыФункции["AuthType"]; // SKIP
-
- Если ВидАвторизации = "По логину и паролю" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- Пароль = ПараметрыФункции["SSH_Password"];
-
- Опции = Новый Структура;
- Опции.Вставить("host", Хост);
- Опции.Вставить("port", Порт);
- Опции.Вставить("user", Логин);
- Опции.Вставить("pass", Пароль);
-
- НастройкиSFTP = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sftp", "ПолучитьНастройкиЛогинПароль", Опции);
-
- ИначеЕсли ВидАвторизации = "По ключу" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- ПриватныйКлюч = "./ssh_key";
- ПубличныйКлюч = "./ssh_key.pub";
-
- ПриватныйКлюч = ПараметрыФункции["SSH_Key"]; // SKIP
- ПубличныйКлюч = ПараметрыФункции["SSH_Pub"]; // SKIP
-
- НастройкиSFTP = OPI_SFTP.ПолучитьНастройкиПриватныйКлюч(Хост, Порт, Логин, ПриватныйКлюч, ПубличныйКлюч);
-
- Иначе
-
- Логин = ПараметрыФункции["SSH_User"];
- НастройкиSFTP = OPI_SFTP.ПолучитьНастройкиЧерезАгента(Хост, Порт, Логин);
-
- КонецЕсли;
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- Опции = Новый Структура;
- Опции.Вставить("addr", АдресПрокси);
- Опции.Вставить("port", ПортПрокси);
- Опции.Вставить("type", ТипПрокси);
- Опции.Вставить("login", ЛогинПрокси);
- Опции.Вставить("pass", ПарольПрокси);
-
- НастройкиПрокси = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sftp", "ПолучитьНастройкиПрокси", Опции);
-
- КонецЕсли;
-
- Соединение = OPI_SFTP.ОткрытьСоединение(НастройкиSFTP, НастройкиПрокси);
-
- Если OPI_SFTP.ЭтоКоннектор(Соединение) Тогда
-
- Путь = "pic_from_disk.png";
- ИмяФайла = ПолучитьИмяВременногоФайла("bin");
-
- Опции = Новый Структура;
- Опции.Вставить("conn", Соединение);
- Опции.Вставить("path", Путь);
- Опции.Вставить("file", ИмяФайла);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sftp", "СохранитьФайл", Опции);
-
- Иначе
- Результат = Соединение; // Ошибка соединения
- КонецЕсли;
-
- // END
-
- Обработать(Результат, "SFTP", "СохранитьФайл", Постфикс);
-
- ЗагруженныйФайл = Новый Файл(ИмяФайла);
- РазмерФайлаЛокальный = ЗагруженныйФайл.Размер();
- РазмерФайлаУдаленный = OPI_SFTP.ПолучитьИнформациюОФайле(Соединение, Путь)["data"]["size"];
-
- Обработать(РазмерФайлаЛокальный, "SFTP", "СохранитьФайл", "Размер файла, " + Постфикс, РазмерФайлаУдаленный);
-
- Путь = "files_folder/pic_from_binary.png";
-
- Для Н = 1 По 20 Цикл
-
- Результат = OPI_SFTP.СохранитьФайл(Соединение, Путь, ИмяФайла);
-
- Если Не Результат["result"] Тогда
- Обработать(Результат, "SFTP", "СохранитьФайл", "Множественный, " + Постфикс);
- КонецЕсли;
-
- КонецЦикла;
-
- OPI_Инструменты.УдалитьФайлВПопытке(ИмяФайла, "Не удалось удалить временный файл после теста!");
-
-КонецПроцедуры
-
-Процедура SFTP_ПолучитьДанныеФайла(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["SSH_Host"];
- Порт = ПараметрыФункции["SSH_Port"];
-
- ИспользоватьПрокси = Истина;
- НастройкиПрокси = Неопределено;
- ВидАвторизации = "По логину и паролю";
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- ВидАвторизации = ПараметрыФункции["AuthType"]; // SKIP
-
- Если ВидАвторизации = "По логину и паролю" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- Пароль = ПараметрыФункции["SSH_Password"];
-
- Опции = Новый Структура;
- Опции.Вставить("host", Хост);
- Опции.Вставить("port", Порт);
- Опции.Вставить("user", Логин);
- Опции.Вставить("pass", Пароль);
-
- НастройкиSFTP = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sftp", "ПолучитьНастройкиЛогинПароль", Опции);
-
- ИначеЕсли ВидАвторизации = "По ключу" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- ПриватныйКлюч = "./ssh_key";
- ПубличныйКлюч = "./ssh_key.pub";
-
- ПриватныйКлюч = ПараметрыФункции["SSH_Key"]; // SKIP
- ПубличныйКлюч = ПараметрыФункции["SSH_Pub"]; // SKIP
-
- НастройкиSFTP = OPI_SFTP.ПолучитьНастройкиПриватныйКлюч(Хост, Порт, Логин, ПриватныйКлюч, ПубличныйКлюч);
-
- Иначе
-
- Логин = ПараметрыФункции["SSH_User"];
- НастройкиSFTP = OPI_SFTP.ПолучитьНастройкиЧерезАгента(Хост, Порт, Логин);
-
- КонецЕсли;
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- Опции = Новый Структура;
- Опции.Вставить("addr", АдресПрокси);
- Опции.Вставить("port", ПортПрокси);
- Опции.Вставить("type", ТипПрокси);
- Опции.Вставить("login", ЛогинПрокси);
- Опции.Вставить("pass", ПарольПрокси);
-
- НастройкиПрокси = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sftp", "ПолучитьНастройкиПрокси", Опции);
-
- КонецЕсли;
-
- Соединение = OPI_SFTP.ОткрытьСоединение(НастройкиSFTP, НастройкиПрокси);
-
- Если OPI_SFTP.ЭтоКоннектор(Соединение) Тогда
-
- Путь = "pic_from_disk.png";
- Результат = OPI_SFTP.ПолучитьДанныеФайла(Соединение, Путь);
-
- Иначе
- Результат = Соединение; // Ошибка соединения
- КонецЕсли;
-
- // END
-
- Обработать(Результат, "SFTP", "ПолучитьДанныеФайла", Постфикс);
-
- РазмерФайлаЛокальный = Результат.Размер();
- РазмерФайлаУдаленный = OPI_SFTP.ПолучитьИнформациюОФайле(Соединение, Путь)["data"]["size"];
-
- Обработать(РазмерФайлаЛокальный, "SFTP", "ПолучитьДанныеФайла", "Размер файла, " + Постфикс, РазмерФайлаУдаленный);
-
- Путь = "files_folder/pic_from_binary.png";
-
- Для Н = 1 По 20 Цикл
-
- Результат = OPI_SFTP.ПолучитьДанныеФайла(Соединение, Путь);
-
- Если Не ТипЗнч(Результат) = Тип("ДвоичныеДанные") Тогда
- Обработать(Результат, "SFTP", "ПолучитьДанныеФайла", "Множественный, " + Постфикс);
- КонецЕсли;
-
- КонецЦикла;
-
-КонецПроцедуры
-
-Процедура SFTP_ИзменитьПуть(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["SSH_Host"];
- Порт = ПараметрыФункции["SSH_Port"];
-
- ИспользоватьПрокси = Истина;
- НастройкиПрокси = Неопределено;
- ВидАвторизации = "По логину и паролю";
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- ВидАвторизации = ПараметрыФункции["AuthType"]; // SKIP
-
- Если ВидАвторизации = "По логину и паролю" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- Пароль = ПараметрыФункции["SSH_Password"];
-
- Опции = Новый Структура;
- Опции.Вставить("host", Хост);
- Опции.Вставить("port", Порт);
- Опции.Вставить("user", Логин);
- Опции.Вставить("pass", Пароль);
-
- НастройкиSFTP = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sftp", "ПолучитьНастройкиЛогинПароль", Опции);
-
- ИначеЕсли ВидАвторизации = "По ключу" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- ПриватныйКлюч = "./ssh_key";
- ПубличныйКлюч = "./ssh_key.pub";
-
- ПриватныйКлюч = ПараметрыФункции["SSH_Key"]; // SKIP
- ПубличныйКлюч = ПараметрыФункции["SSH_Pub"]; // SKIP
-
- НастройкиSFTP = OPI_SFTP.ПолучитьНастройкиПриватныйКлюч(Хост, Порт, Логин, ПриватныйКлюч, ПубличныйКлюч);
-
- Иначе
-
- Логин = ПараметрыФункции["SSH_User"];
- НастройкиSFTP = OPI_SFTP.ПолучитьНастройкиЧерезАгента(Хост, Порт, Логин);
-
- КонецЕсли;
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- Опции = Новый Структура;
- Опции.Вставить("addr", АдресПрокси);
- Опции.Вставить("port", ПортПрокси);
- Опции.Вставить("type", ТипПрокси);
- Опции.Вставить("login", ЛогинПрокси);
- Опции.Вставить("pass", ПарольПрокси);
-
- НастройкиПрокси = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sftp", "ПолучитьНастройкиПрокси", Опции);
-
- КонецЕсли;
-
- Соединение = OPI_SFTP.ОткрытьСоединение(НастройкиSFTP, НастройкиПрокси);
-
- Если OPI_SFTP.ЭтоКоннектор(Соединение) Тогда
- Опции = Новый Структура;
- Опции.Вставить("conn", Соединение);
- Опции.Вставить("old", "pic_from_disk.png");
- Опции.Вставить("new", "files_folder/pic_from_disk.png");
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sftp", "ИзменитьПуть", Опции);
- Иначе
- Результат = Соединение; // Ошибка соединения
- КонецЕсли;
-
- // END
-
- Обработать(Результат , "SFTP", "ИзменитьПуть", Постфикс);
-
- Опции = Новый Структура;
- Опции.Вставить("conn", Соединение);
- Опции.Вставить("path", "pic_from_disk.png");
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sftp", "ПолучитьИнформациюОФайле", Опции);
-
- Обработать(Результат , "SFTP", "ИзменитьПуть", "Проверка, Старый, " + Постфикс);
-
- Опции = Новый Структура;
- Опции.Вставить("conn", Соединение);
- Опции.Вставить("path", "files_folder/pic_from_disk.png");
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sftp", "ПолучитьИнформациюОФайле", Опции);
-
- Обработать(Результат , "SFTP", "ИзменитьПуть", "Проверка, Новый, " + Постфикс);
-
- Опции = Новый Структура;
- Опции.Вставить("conn", Соединение);
- Опции.Вставить("old", "files_folder/pic_from_disk.png");
- Опции.Вставить("new", "pic_from_disk.png");
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sftp", "ИзменитьПуть", Опции);
-
- Обработать(Результат , "SFTP", "ИзменитьПуть", "Обратно, " + Постфикс);
-
- Опции = Новый Структура;
- Опции.Вставить("conn", Соединение);
- Опции.Вставить("path", "files_folder/pic_from_disk.png");
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sftp", "ПолучитьИнформациюОФайле", Опции);
-
- Обработать(Результат , "SFTP", "ИзменитьПуть", "Проверка, Старый, Обратно, " + Постфикс);
-
- Опции = Новый Структура;
- Опции.Вставить("conn", Соединение);
- Опции.Вставить("path", "pic_from_disk.png");
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sftp", "ПолучитьИнформациюОФайле", Опции);
-
- Обработать(Результат , "SFTP", "ИзменитьПуть", "Проверка, Новый, Обратно, " + Постфикс);
-
-КонецПроцедуры
-
-Процедура SFTP_ПолучитьИнформациюОФайле(ПараметрыФункции)
-
- Постфикс = ПараметрыФункции["Postfix"]; // SKIP
-
- Хост = ПараметрыФункции["SSH_Host"];
- Порт = ПараметрыФункции["SSH_Port"];
-
- ИспользоватьПрокси = Истина;
- НастройкиПрокси = Неопределено;
- ВидАвторизации = "По логину и паролю";
-
- ИспользоватьПрокси = ПараметрыФункции["Proxy"]; // SKIP
- ВидАвторизации = ПараметрыФункции["AuthType"]; // SKIP
-
- Если ВидАвторизации = "По логину и паролю" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- Пароль = ПараметрыФункции["SSH_Password"];
-
- Опции = Новый Структура;
- Опции.Вставить("host", Хост);
- Опции.Вставить("port", Порт);
- Опции.Вставить("user", Логин);
- Опции.Вставить("pass", Пароль);
-
- НастройкиSFTP = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sftp", "ПолучитьНастройкиЛогинПароль", Опции);
-
- ИначеЕсли ВидАвторизации = "По ключу" Тогда
-
- Логин = ПараметрыФункции["SSH_User"];
- ПриватныйКлюч = "./ssh_key";
- ПубличныйКлюч = "./ssh_key.pub";
-
- ПриватныйКлюч = ПараметрыФункции["SSH_Key"]; // SKIP
- ПубличныйКлюч = ПараметрыФункции["SSH_Pub"]; // SKIP
-
- НастройкиSFTP = OPI_SFTP.ПолучитьНастройкиПриватныйКлюч(Хост, Порт, Логин, ПриватныйКлюч, ПубличныйКлюч);
-
- Иначе
-
- Логин = ПараметрыФункции["SSH_User"];
- НастройкиSFTP = OPI_SFTP.ПолучитьНастройкиЧерезАгента(Хост, Порт, Логин);
-
- КонецЕсли;
-
- Если ИспользоватьПрокси Тогда
-
- ТипПрокси = ПараметрыФункции["Proxy_Type"]; // http, socks5, socks4
-
- АдресПрокси = ПараметрыФункции["Proxy_IP"];
- ПортПрокси = ПараметрыФункции["Proxy_Port"];
- ЛогинПрокси = ПараметрыФункции["Proxy_User"];
- ПарольПрокси = ПараметрыФункции["Proxy_Password"];
-
- Опции = Новый Структура;
- Опции.Вставить("addr", АдресПрокси);
- Опции.Вставить("port", ПортПрокси);
- Опции.Вставить("type", ТипПрокси);
- Опции.Вставить("login", ЛогинПрокси);
- Опции.Вставить("pass", ПарольПрокси);
-
- НастройкиПрокси = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sftp", "ПолучитьНастройкиПрокси", Опции);
-
- КонецЕсли;
-
- Соединение = OPI_SFTP.ОткрытьСоединение(НастройкиSFTP, НастройкиПрокси);
-
- Если OPI_SFTP.ЭтоКоннектор(Соединение) Тогда
- Опции = Новый Структура;
- Опции.Вставить("conn", Соединение);
- Опции.Вставить("path", "files_folder/pic_from_binary.png");
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sftp", "ПолучитьИнформациюОФайле", Опции);
- Иначе
- Результат = Соединение; // Ошибка соединения
- КонецЕсли;
-
- // END
-
- Обработать(Результат , "SFTP", "ПолучитьИнформациюОФайле", Постфикс);
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область GreenMax
-
-Процедура GreenMax_СформироватьПараметрыДоступа(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenMax_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenMax_MediaURL"];
- IdInstance = ПараметрыФункции["GreenMax_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenMax_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("api", ApiUrl);
- Опции.Вставить("media", MediaUrl);
- Опции.Вставить("id", IdInstance);
- Опции.Вставить("token", ApiTokenInstance);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenmax", "СформироватьПараметрыДоступа", Опции);
-
- // END
-
- Обработать(Результат, "GreenMax", "СформироватьПараметрыДоступа");
-
-КонецПроцедуры
-
-Процедура GreenMax_ПолучитьКодАвторизации(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenMax_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenMax_MediaURL"];
- IdInstance = ПараметрыФункции["GreenMax_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenMax_Token"];
-
- НомерТелефона = 441234567890;
-
- Опции = Новый Структура;
- Опции.Вставить("api", ApiUrl);
- Опции.Вставить("media", MediaUrl);
- Опции.Вставить("id", IdInstance);
- Опции.Вставить("token", ApiTokenInstance);
-
- ПараметрыДоступа = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenmax", "СформироватьПараметрыДоступа", Опции);
- Опции = Новый Структура;
- Опции.Вставить("access", ПараметрыДоступа);
- Опции.Вставить("phone", НомерТелефона);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenmax", "ПолучитьКодАвторизации", Опции);
-
- // END
-
- Обработать(Результат, "GreenMax", "ПолучитьКодАвторизации");
-
-КонецПроцедуры
-
-Процедура GreenMax_РазлогинитьИнстанс(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenMax_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenMax_MediaURL"];
- IdInstance = ПараметрыФункции["GreenMax_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenMax_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("api", ApiUrl);
- Опции.Вставить("media", MediaUrl);
- Опции.Вставить("id", IdInstance);
- Опции.Вставить("token", ApiTokenInstance);
-
- ПараметрыДоступа = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenmax", "СформироватьПараметрыДоступа", Опции);
- Опции = Новый Структура;
- Опции.Вставить("access", ПараметрыДоступа);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenmax", "РазлогинитьИнстанс", Опции);
-
- // END
-
- Обработать(Результат, "GreenMax", "РазлогинитьИнстанс");
-
-КонецПроцедуры
-
-Процедура GreenMax_ОтправитьКодАвторизации(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenMax_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenMax_MediaURL"];
- IdInstance = ПараметрыФункции["GreenMax_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenMax_Token"];
-
- КодАвторизации = 123456;
-
- Опции = Новый Структура;
- Опции.Вставить("api", ApiUrl);
- Опции.Вставить("media", MediaUrl);
- Опции.Вставить("id", IdInstance);
- Опции.Вставить("token", ApiTokenInstance);
-
- ПараметрыДоступа = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenmax", "СформироватьПараметрыДоступа", Опции);
- Опции = Новый Структура;
- Опции.Вставить("access", ПараметрыДоступа);
- Опции.Вставить("code", КодАвторизации);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenmax", "ОтправитьКодАвторизации", Опции);
-
- // END
-
- Обработать(Результат, "GreenMax", "ОтправитьКодАвторизации");
-
-КонецПроцедуры
-
-Процедура GreenMax_ПолучитьСостояниеИнстанса(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenMax_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenMax_MediaURL"];
- IdInstance = ПараметрыФункции["GreenMax_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenMax_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("api", ApiUrl);
- Опции.Вставить("media", MediaUrl);
- Опции.Вставить("id", IdInstance);
- Опции.Вставить("token", ApiTokenInstance);
-
- ПараметрыДоступа = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenmax", "СформироватьПараметрыДоступа", Опции);
- Опции = Новый Структура;
- Опции.Вставить("access", ПараметрыДоступа);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenmax", "ПолучитьСостояниеИнстанса", Опции);
-
- // END
-
- Обработать(Результат, "GreenMax", "ПолучитьСостояниеИнстанса");
-
-КонецПроцедуры
-
-Процедура GreenMax_ПерезапуститьИнстанс(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenMax_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenMax_MediaURL"];
- IdInstance = ПараметрыФункции["GreenMax_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenMax_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("api", ApiUrl);
- Опции.Вставить("media", MediaUrl);
- Опции.Вставить("id", IdInstance);
- Опции.Вставить("token", ApiTokenInstance);
-
- ПараметрыДоступа = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenmax", "СформироватьПараметрыДоступа", Опции);
- Опции = Новый Структура;
- Опции.Вставить("access", ПараметрыДоступа);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenmax", "ПерезапуститьИнстанс", Опции);
-
- // END
-
- Обработать(Результат, "GreenMax", "ПерезапуститьИнстанс");
-
-КонецПроцедуры
-
-Процедура GreenMax_ПолучитьСтруктуруНастроекИнстанса(ПараметрыФункции)
-
- Опции = Новый Структура;
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenmax", "ПолучитьСтруктуруНастроекИнстанса", Опции);
-
- // END
-
- Обработать(Результат, "GreenMax", "ПолучитьСтруктуруНастроекИнстанса");
-
- Опции = Новый Структура;
- Опции.Вставить("empty", Истина);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenmax", "ПолучитьСтруктуруНастроекИнстанса", Опции);
-
- Обработать(Результат, "GreenMAx", "ПолучитьСтруктуруНастроекИнстанса", "Пустая");
-
-КонецПроцедуры
-
-Процедура GreenMax_ПолучитьНастройкиИнстанса(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenMax_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenMax_MediaURL"];
- IdInstance = ПараметрыФункции["GreenMax_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenMax_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("api", ApiUrl);
- Опции.Вставить("media", MediaUrl);
- Опции.Вставить("id", IdInstance);
- Опции.Вставить("token", ApiTokenInstance);
-
- ПараметрыДоступа = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenmax", "СформироватьПараметрыДоступа", Опции);
- Опции = Новый Структура;
- Опции.Вставить("access", ПараметрыДоступа);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenmax", "ПолучитьНастройкиИнстанса", Опции);
-
- // END
-
- Обработать(Результат, "GreenMax", "ПолучитьНастройкиИнстанса", , ПараметрыФункции);
-
-КонецПроцедуры
-
-Процедура GreenMax_УстановитьНастройкиИнстанса(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenMax_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenMax_MediaURL"];
- IdInstance = ПараметрыФункции["GreenMax_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenMax_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("api", ApiUrl);
- Опции.Вставить("media", MediaUrl);
- Опции.Вставить("id", IdInstance);
- Опции.Вставить("token", ApiTokenInstance);
-
- ПараметрыДоступа = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenmax", "СформироватьПараметрыДоступа", Опции);
-
- СтруктураНастроек = Новый Структура;
- СтруктураНастроек.Вставить("markIncomingMessagesReaded" , "no");
- СтруктураНастроек.Вставить("outgoingWebhook" , "no");
- СтруктураНастроек.Вставить("outgoingAPIMessageWebhook" , "yes");
-
- Опции = Новый Структура;
- Опции.Вставить("settings", СтруктураНастроек);
- Опции.Вставить("access", ПараметрыДоступа);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenmax", "УстановитьНастройкиИнстанса", Опции);
-
- // END
-
- Обработать(Результат, "GreenMax", "УстановитьНастройкиИнстанса");
-
-КонецПроцедуры
-
-Процедура GreenMax_УстановитьКартинкуПрофиля(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenMax_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenMax_MediaURL"];
- IdInstance = ПараметрыФункции["GreenMax_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenMax_Token"];
-
- Картинка = ПараметрыФункции["Picture"]; // URL, Путь или Двоичные данные
-
- Опции = Новый Структура;
- Опции.Вставить("api", ApiUrl);
- Опции.Вставить("media", MediaUrl);
- Опции.Вставить("id", IdInstance);
- Опции.Вставить("token", ApiTokenInstance);
-
- ПараметрыДоступа = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenmax", "СформироватьПараметрыДоступа", Опции);
- Опции = Новый Структура;
- Опции.Вставить("access", ПараметрыДоступа);
- Опции.Вставить("picture", Картинка);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenmax", "УстановитьКартинкуПрофиля", Опции);
-
- // END
-
- Обработать(Результат, "GreenMax", "УстановитьКартинкуПрофиля");
-
-КонецПроцедуры
-
-Процедура GreenMax_ПолучитьИнформациюОбАккаунте(ПараметрыФункции)
-
- ApiUrl = ПараметрыФункции["GreenMax_ApiURL"];
- MediaUrl = ПараметрыФункции["GreenMax_MediaURL"];
- IdInstance = ПараметрыФункции["GreenMax_IdInstance"];
- ApiTokenInstance = ПараметрыФункции["GreenMax_Token"];
-
- Опции = Новый Структура;
- Опции.Вставить("api", ApiUrl);
- Опции.Вставить("media", MediaUrl);
- Опции.Вставить("id", IdInstance);
- Опции.Вставить("token", ApiTokenInstance);
-
- ПараметрыДоступа = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenmax", "СформироватьПараметрыДоступа", Опции);
- Опции = Новый Структура;
- Опции.Вставить("access", ПараметрыДоступа);
-
- Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenmax", "ПолучитьИнформациюОбАккаунте", Опции);
-
- // END
-
- Обработать(Результат, "GreenMax", "ПолучитьИнформациюОбАккаунте");
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#КонецОбласти
-
-#КонецОбласти
diff --git a/XML/CommonTemplates/OPI_Cryptography.xml b/XML/CommonTemplates/OPI_Cryptography.xml
deleted file mode 100644
index 93131d4234..0000000000
--- a/XML/CommonTemplates/OPI_Cryptography.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
- OPI_Cryptography
-
-
- ru
- Компонента криптографии (ОПИ)
-
-
-
- AddIn
-
-
-
\ No newline at end of file
diff --git a/XML/CommonTemplates/OPI_Cryptography/Ext/Template.bin b/XML/CommonTemplates/OPI_Cryptography/Ext/Template.bin
deleted file mode 100644
index cc9aae0f37..0000000000
Binary files a/XML/CommonTemplates/OPI_Cryptography/Ext/Template.bin and /dev/null differ
diff --git a/XML/CommonTemplates/OPI_FTP.xml b/XML/CommonTemplates/OPI_FTP.xml
deleted file mode 100644
index 2cf2ed995a..0000000000
--- a/XML/CommonTemplates/OPI_FTP.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
- OPI_FTP
-
-
- ru
- Компонента FTP (ОПИ)
-
-
-
- AddIn
-
-
-
\ No newline at end of file
diff --git a/XML/CommonTemplates/OPI_FTP/Ext/Template.bin b/XML/CommonTemplates/OPI_FTP/Ext/Template.bin
deleted file mode 100644
index ab67a76b7f..0000000000
Binary files a/XML/CommonTemplates/OPI_FTP/Ext/Template.bin and /dev/null differ
diff --git a/XML/CommonTemplates/OPI_MSSQL.xml b/XML/CommonTemplates/OPI_MSSQL.xml
deleted file mode 100644
index 93c8eaa5dd..0000000000
--- a/XML/CommonTemplates/OPI_MSSQL.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
- OPI_MSSQL
-
-
- ru
- Компонента MS SQL (ОПИ)
-
-
-
- AddIn
-
-
-
\ No newline at end of file
diff --git a/XML/CommonTemplates/OPI_MSSQL/Ext/Template.bin b/XML/CommonTemplates/OPI_MSSQL/Ext/Template.bin
deleted file mode 100644
index 06c2637a8c..0000000000
Binary files a/XML/CommonTemplates/OPI_MSSQL/Ext/Template.bin and /dev/null differ
diff --git a/XML/CommonTemplates/OPI_MongoDB.xml b/XML/CommonTemplates/OPI_MongoDB.xml
deleted file mode 100644
index c536c68bcf..0000000000
--- a/XML/CommonTemplates/OPI_MongoDB.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
- OPI_MongoDB
-
-
- ru
- Компонента MongoDB (ОПИ)
-
-
-
- AddIn
-
-
-
\ No newline at end of file
diff --git a/XML/CommonTemplates/OPI_MongoDB/Ext/Template.bin b/XML/CommonTemplates/OPI_MongoDB/Ext/Template.bin
deleted file mode 100644
index 7d380122db..0000000000
Binary files a/XML/CommonTemplates/OPI_MongoDB/Ext/Template.bin and /dev/null differ
diff --git a/XML/CommonTemplates/OPI_MySQL.xml b/XML/CommonTemplates/OPI_MySQL.xml
deleted file mode 100644
index 09bab87328..0000000000
--- a/XML/CommonTemplates/OPI_MySQL.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
- OPI_MySQL
-
-
- ru
- Компонента MySQL (ОПИ)
-
-
-
- AddIn
-
-
-
\ No newline at end of file
diff --git a/XML/CommonTemplates/OPI_MySQL/Ext/Template.bin b/XML/CommonTemplates/OPI_MySQL/Ext/Template.bin
deleted file mode 100644
index 28042726a2..0000000000
Binary files a/XML/CommonTemplates/OPI_MySQL/Ext/Template.bin and /dev/null differ
diff --git a/XML/CommonTemplates/OPI_PostgreSQL.xml b/XML/CommonTemplates/OPI_PostgreSQL.xml
deleted file mode 100644
index 771537cc5e..0000000000
--- a/XML/CommonTemplates/OPI_PostgreSQL.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
- OPI_PostgreSQL
-
-
- ru
- Компонента PostgreSQL (ОПИ)
-
-
-
- AddIn
-
-
-
\ No newline at end of file
diff --git a/XML/CommonTemplates/OPI_PostgreSQL/Ext/Template.bin b/XML/CommonTemplates/OPI_PostgreSQL/Ext/Template.bin
deleted file mode 100644
index 9613758918..0000000000
Binary files a/XML/CommonTemplates/OPI_PostgreSQL/Ext/Template.bin and /dev/null differ
diff --git a/XML/CommonTemplates/OPI_RCON.xml b/XML/CommonTemplates/OPI_RCON.xml
deleted file mode 100644
index d7f8916db7..0000000000
--- a/XML/CommonTemplates/OPI_RCON.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
- OPI_RCON
-
-
- ru
- Компонента RCON (ОПИ)
-
-
-
- AddIn
-
-
-
\ No newline at end of file
diff --git a/XML/CommonTemplates/OPI_RCON/Ext/Template.bin b/XML/CommonTemplates/OPI_RCON/Ext/Template.bin
deleted file mode 100644
index 99abcde314..0000000000
Binary files a/XML/CommonTemplates/OPI_RCON/Ext/Template.bin and /dev/null differ
diff --git a/XML/CommonTemplates/OPI_SQLite.xml b/XML/CommonTemplates/OPI_SQLite.xml
deleted file mode 100644
index 0492e3332d..0000000000
--- a/XML/CommonTemplates/OPI_SQLite.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
- OPI_SQLite
-
-
- ru
- Компонента SQLite (ОПИ)
-
-
-
- AddIn
-
-
-
\ No newline at end of file
diff --git a/XML/CommonTemplates/OPI_SQLite/Ext/Template.bin b/XML/CommonTemplates/OPI_SQLite/Ext/Template.bin
deleted file mode 100644
index e2410d47ff..0000000000
Binary files a/XML/CommonTemplates/OPI_SQLite/Ext/Template.bin and /dev/null differ
diff --git a/XML/CommonTemplates/OPI_SSH.xml b/XML/CommonTemplates/OPI_SSH.xml
deleted file mode 100644
index df0a2d7fed..0000000000
--- a/XML/CommonTemplates/OPI_SSH.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
- OPI_SSH
-
-
- ru
- Компонента SSH/SFTP (ОПИ)
-
-
-
- AddIn
-
-
-
\ No newline at end of file
diff --git a/XML/CommonTemplates/OPI_SSH/Ext/Template.bin b/XML/CommonTemplates/OPI_SSH/Ext/Template.bin
deleted file mode 100644
index 8c1b142818..0000000000
Binary files a/XML/CommonTemplates/OPI_SSH/Ext/Template.bin and /dev/null differ
diff --git a/XML/CommonTemplates/OPI_TCPClient.xml b/XML/CommonTemplates/OPI_TCPClient.xml
deleted file mode 100644
index 707eda4a85..0000000000
--- a/XML/CommonTemplates/OPI_TCPClient.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- OPI_TCPClient
-
-
-
- OPI TCPClient
-
-
- ru
- Компонента TCP-клиента (ОПИ)
-
-
-
- AddIn
-
-
-
\ No newline at end of file
diff --git a/XML/CommonTemplates/OPI_TCPClient/Ext/Template.bin b/XML/CommonTemplates/OPI_TCPClient/Ext/Template.bin
deleted file mode 100644
index 7d38b2d4c8..0000000000
Binary files a/XML/CommonTemplates/OPI_TCPClient/Ext/Template.bin and /dev/null differ
diff --git a/XML/Configuration.xml b/XML/Configuration.xml
deleted file mode 100644
index 5464872cfd..0000000000
--- a/XML/Configuration.xml
+++ /dev/null
@@ -1,143 +0,0 @@
-
-
-
-
-
- 9cd510cd-abfc-11d4-9434-004095e12fc7
- 12689443-2950-4e3b-b313-9a692b6acac7
-
-
- 9fcd25a0-4822-11d4-9414-008048da11f9
- f6f98fbd-010a-4aba-8f11-01203bbc59c7
-
-
- e3687481-0a87-462c-a166-9f34594f9bba
- 33990ba2-16f0-473d-851f-a9132c777ed6
-
-
- 9de14907-ec23-4a07-96f0-85521cb6b53b
- 917bb154-d76e-42a4-b161-336b7c57a1ac
-
-
- 51f2d5d8-ea4d-4064-8892-82951750031e
- 793db0b3-8d01-4f55-982c-73cb3d4547da
-
-
- e68182ea-4237-4383-967f-90c1e3370bc7
- c67ca98f-c017-4f18-8175-02819e09b383
-
-
- fb282519-d103-4dd3-bc12-cb271d631dfc
- c9ed170a-ffaa-4859-9d92-fd1cbc7051b3
-
-
-
- OpenIntegrations
-
-
- ru
- Открытый пакет интеграций
-
-
- Набор инструментов интеграции с популярными API и технологиями
- Customization
- Adopted
- true
- OPI_
- Version8_3_9
- ManagedApplication
-
- PlatformApplication
-
- Russian
- https://github.com/Bayselonarrend
- 1.28.0
-
-
-
- ru
- Открытый пакет интеграций - набор библиотек для интеграции с некоторыми популярными API для 1C:Enterprise. Он состоит из общих модулей, каждый из которых отвечает за свой API, а также нескольких модулей-инструментов, общих для всех.
-
-
-
-
- ru
- Copyright (c) 2023-2025 Anton Tsitavets
-
-
-
-
- ru
- https://github.com/Bayselonarrend
-
-
-
-
- ru
- https://github.com/Bayselonarrend/OpenIntegrations
-
-
-
-
- OPI_Интеграция
- OPI_Cryptography
- OPI_FTP
- OPI_MongoDB
- OPI_MSSQL
- OPI_MySQL
- OPI_PostgreSQL
- OPI_RCON
- OPI_SQLite
- OPI_SSH
- OPI_TCPClient
- OPI_Airtable
- OPI_Bitrix24
- OPI_CDEK
- OPI_Dropbox
- OPI_FTP
- OPI_GoogleCalendar
- OPI_GoogleDrive
- OPI_GoogleSheets
- OPI_GoogleWorkspace
- OPI_GreenAPI
- OPI_GreenMax
- OPI_MongoDB
- OPI_MSSQL
- OPI_MySQL
- OPI_Neocities
- OPI_Notion
- OPI_Ollama
- OPI_OpenAI
- OPI_PostgreSQL
- OPI_RCON
- OPI_ReportPortal
- OPI_SFTP
- OPI_Slack
- OPI_SQLite
- OPI_SSH
- OPI_S3
- OPI_TCP
- OPI_Telegram
- OPI_Twitter
- OPI_Viber
- OPI_VK
- OPI_VKTeams
- OPI_YandexDisk
- OPI_YandexID
- OPI_YandexMarket
- OPI_YandexMetrika
- OPI_Инструменты
- OPI_ЗапросыHTTP
- OPI_ЗапросыSQL
- OPI_ЗапросыSSH
- OPI_Компоненты
- OPI_Криптография
- OPI_ПолучениеДанныхТестов
- OPI_ПреобразованиеТипов
- OPI_Тесты
- OPI_ТестыCLI
- OPI_BuildHash
- OPI_HTTPКлиент
-
-
-
\ No newline at end of file
diff --git a/XML/DataProcessors/OPI_HTTPКлиент.xml b/XML/DataProcessors/OPI_HTTPКлиент.xml
deleted file mode 100644
index 31a941cb54..0000000000
--- a/XML/DataProcessors/OPI_HTTPКлиент.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
-
-
-
- f8380b17-fc17-434c-af09-1e256a999b26
- 1903aff0-3cae-41d2-9206-534e13cff1a3
-
-
- 31cebf42-d435-40a7-b175-9a487c66b259
- 0ade2c3a-405c-4423-8b00-3bd7a2f95c2a
-
-
-
- OPI_HTTPКлиент
-
-
- ru
- HTTP-клиент (ОПИ)
-
-
- HTTP-клиент набора ОПИ
- true
-
-
- false
-
-
-
-
-
-
\ No newline at end of file
diff --git a/XML/DataProcessors/OPI_HTTPКлиент/Ext/ManagerModule.bsl b/XML/DataProcessors/OPI_HTTPКлиент/Ext/ManagerModule.bsl
deleted file mode 100644
index 52726a4864..0000000000
--- a/XML/DataProcessors/OPI_HTTPКлиент/Ext/ManagerModule.bsl
+++ /dev/null
@@ -1 +0,0 @@
-// BSLLS:ConsecutiveEmptyLines-off
diff --git a/XML/DataProcessors/OPI_HTTPКлиент/Ext/ObjectModule.bsl b/XML/DataProcessors/OPI_HTTPКлиент/Ext/ObjectModule.bsl
deleted file mode 100644
index 900aa40168..0000000000
--- a/XML/DataProcessors/OPI_HTTPКлиент/Ext/ObjectModule.bsl
+++ /dev/null
@@ -1,2863 +0,0 @@
-// OneScript: ./OInt/tools/Modules/internal/Classes/OPI_HTTPКлиент.os
-// Lib: HTTP-клиент
-// CLI: none
-
-// MIT License
-
-// Copyright (c) 2023-2025 Anton Tsitavets
-
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-
-// The above copyright notice and this permission notice shall be included in all
-// copies or substantial portions of the Software.
-
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-// SOFTWARE.
-
-// https://github.com/Bayselonarrend/OpenIntegrations
-
-// BSLLS:Typo-off
-// BSLLS:LatinAndCyrillicSymbolInWord-off
-// BSLLS:IncorrectLineBreak-off
-// BSLLS:NumberOfOptionalParams-off
-// BSLLS:UsingServiceTag-off
-// BSLLS:LineLength-off
-// BSLLS:ExportVariables-off
-// BSLLS:OneStatementPerLine-off
-
-//@skip-check module-structure-top-region
-//@skip-check module-structure-method-in-regions
-//@skip-check wrong-string-literal-content
-//@skip-check method-too-many-params
-//@skip-check constructor-function-return-section
-//@skip-check doc-comment-collection-item-type
-//@skip-check object-module-export-variable
-
-#Если Не Клиент Тогда
-
-#Область ОписаниеПеременных
-
-// Обработка
-
-Перем Инициализирован; // Признак, что обязательная функция Инициализировать() была вызвана
-Перем Ошибка Экспорт; // Признак ошибки выполнения для пропуска оставшихся действий в цепочке
-Перем Лог; // Массив сообщений о действиях внутри обработки
-
-// Запрос
-
-Перем Запрос; // Объект HTTPЗапрос
-Перем Соединение; // Объект HTTPСоединение
-Перем Настройки; // Структура дополнительных настроек
-
-Перем ЗапросURL; // URL запроса
-Перем ЗапросСервер; // Сервер из URL запроса
-Перем ЗапросПорт; // Порт из URL запроса или по умолчанию
-Перем ЗапросАдрес; // Путь из URL запроса
-Перем ЗапросАдресПолный; // Путь с параметрами и секцией из URL запроса
-Перем ЗапросСекция; // Секция в URL, если присутствует
-Перем ЗапросЗащищенное; // Признак использования HTTPS
-Перем ЗапросДомен; // Домен из URL запроса
-
-Перем ЗапросМетод; // Используемый метод HTTP
-Перем ЗапросПараметрыURL; // Структура параметров URL
-Перем ЗапросТело; // Данные тела запроса
-Перем ЗапросТелоКоллекция; // Данные тела в виде коллекции, если возможно
-Перем ЗапросЗаголовки; // Соответствие заголовков запроса
-Перем ЗапросПользователь; // Пользователь для базовой авторизации
-Перем ЗапросПароль; // Пароль для базовой авторизации
-Перем ЗапросТаймаут; // Таймаут запроса
-Перем ЗапросПрокси; // Настройки прокси запроса
-Перем ЗапросВыходнойФайл; // Путь к файлу для сохранения результата запроса
-Перем ЗапросФайлТела; // Путь к файлу с телом запроса
-Перем ЗапросПотокТела; // Поток тела запроса
-Перем ЗапросЗаписьДанных; // Запись данных тела запроса
-Перем ЗапросТипДанных; // MIME тип для Content-Type
-Перем ЗапросТипУстановленВручную; // Признак отключения автоматического определения Content-Type
-Перем ФайлТелаВременный; // Признак удаления файла тела, если он был создан автоматически
-
-// Авторизация
-
-Перем AuthВид; // Вид авторизации
-Перем AuthДанные; // Структура учетных данных
-
-// Ответ
-
-Перем Ответ; // Объект HTTPОтвет
-Перем ОтветКодСостояния; // Код состояния ответа
-Перем ОтветТело; // Данные тела ответа
-Перем ОтветЗаголовки; // Соответствие заголовков ответа
-
-// Multipart
-
-Перем Multipart; // Признак установки тела в формате Multipart
-Перем Boundary; // Boundary для разделения частей тела
-Перем РазделительСтрок; // Разделитель строк тела
-
-#КонецОбласти
-
-#Область ПрограммныйИнтерфейс
-
-#Область Инициализация
-
-// Инициализировать !NOCLI
-// Инициализирует новый пустой запрос
-//
-// Примечание:
-// Функция обязательная для вызова первой при создании нового объекта обработки
-// URL может быть установлен позднее при помощи функции `УстановитьURL`
-//
-// Параметры:
-// URL - Строка - URL адрес для запроса - url
-//
-// Возвращаемое значение:
-// ОбработкаОбъект.OPI_HTTPКлиент - Этот же объект обработки
-Функция Инициализировать(Знач URL = "") Экспорт
-
- Лог = Новый Массив;
-
- ДобавитьЛог("Инициализировать: установка стандартных значений");
-
- Инициализирован = Истина;
- Ошибка = Ложь;
-
- ЗапросПараметрыURL = Новый Структура;
- ЗапросТело = Неопределено;
- ЗапросТелоКоллекция = Новый Структура;
- ЗапросЗаголовки = Новый Соответствие;
- ЗапросТаймаут = 3600;
-
- ЗапросТипУстановленВручную = Ложь;
-
- ФайлТелаВременный = Ложь;
-
- ОтветКодСостояния = 0;
- ОтветТело = Неопределено;
- ОтветЗаголовки = Новый Соответствие;
-
- Multipart = Ложь;
-
- УстановитьСтандартныеНастройки();
- УстановитьURL(URL);
-
- Возврат ЭтотОбъект;
-
-КонецФункции
-
-// Установить URL !NOCLI
-// Устанавливает новый URL запроса
-//
-// Параметры:
-// URL - Строка - URL запроса - url
-//
-// Возвращаемое значение:
-// ОбработкаОбъект.OPI_HTTPКлиент - Этот же объект обработки
-Функция УстановитьURL(Знач URL) Экспорт
-
- Попытка
-
- Если ОстановитьРаботу() Тогда Возврат ЭтотОбъект; КонецЕсли;
-
- Если ЗначениеЗаполнено(URL) Тогда
-
- ДобавитьЛог("УстановитьURL: установка значения");
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(URL);
- OPI_Инструменты.ВернутьУправляющиеПоследовательности(URL);
-
- Если ПолучитьНастройку("КодировкаURL") Тогда
- КодироватьURLВURL(URL);
- КонецЕсли;
-
- ЗапросURL = URL;
-
- Иначе
-
- ДобавитьЛог("УстановитьURL: URL пуст - пропуск");
-
- КонецЕсли;
-
- Возврат РазбитьURL();
-
- Исключение
- Возврат Ошибка(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
- КонецПопытки;
-
-КонецФункции
-
-// Установить параметры URL !NOCLI
-// Устанавливает коллекцию параметров URL
-//
-// Параметры:
-// Значение - Произвольный - Стрктура или соответствие параметров URL - params
-//
-// Возвращаемое значение:
-// ОбработкаОбъект.OPI_HTTPКлиент - Этот же объект обработки
-Функция УстановитьПараметрыURL(Знач Значение) Экспорт
-
- Попытка
-
- Если ОстановитьРаботу() Тогда Возврат ЭтотОбъект; КонецЕсли;
- Если Не ЗначениеЗаполнено(Значение) Тогда Значение = Новый Структура; КонецЕсли;
-
- ДобавитьЛог("УстановитьПараметрыURL: установка параметров");
-
- ТекстОшибки = "УстановитьПараметрыURL: переданные параметры не являются коллекцией ключ/значение";
- OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(Значение, ТекстОшибки);
-
- ЗапросПараметрыURL = OPI_Инструменты.КопироватьКоллекцию(Значение);
-
- Возврат ЭтотОбъект;
-
- Исключение
- Возврат Ошибка(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
- КонецПопытки;
-
-КонецФункции
-
-// Установить файл ответа !NOCLI
-// Устанавливает путь к файлу для сохранения результата запроса
-//
-// Параметры:
-// Значение - Строка - Путь к файлу - filepath
-//
-// Возвращаемое значение:
-// ОбработкаОбъект.OPI_HTTPКлиент - Этот же объект обработки
-Функция УстановитьФайлОтвета(Знач Значение) Экспорт
-
- Попытка
-
- Если ОстановитьРаботу() Тогда Возврат ЭтотОбъект; КонецЕсли;
-
- Если Не ЗначениеЗаполнено(Значение) Тогда
- ЗапросВыходнойФайл = Неопределено;
- ДобавитьЛог("УстановитьФайлОтвета: файл ответа не указан - пропуск");
- Возврат ЭтотОбъект;
- КонецЕсли;
-
- ДобавитьЛог("УстановитьФайлОтвета: установка значения");
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Значение);
- ЗапросВыходнойФайл = Значение;
-
- Возврат ЭтотОбъект;
-
- Исключение
- Возврат Ошибка(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
- КонецПопытки;
-
-КонецФункции
-
-// Установить тип данных !NOCLI
-// Устанавливает Content-Type запроса
-//
-// Примечание:
-// Если тип данных не установлен вручную, то он будет подобран в процессе установки тела запроса
-//
-// Параметры:
-// Значение - Строка - Значение заголовка ContentType - type
-//
-// Возвращаемое значение:
-// ОбработкаОбъект.OPI_HTTPКлиент - Этот же объект обработки
-Функция УстановитьТипДанных(Знач Значение) Экспорт
-
- Попытка
-
- Если ОстановитьРаботу() Тогда Возврат ЭтотОбъект; КонецЕсли;
-
- ДобавитьЛог("УстановитьТипДанных: установка значения");
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Значение);
-
- ЗапросТипДанных = Значение;
- ЗапросТипУстановленВручную = Истина;
-
- Возврат ЭтотОбъект;
-
- Исключение
- Возврат Ошибка(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
- КонецПопытки;
-
-КонецФункции
-
-// Установить прокси !NOCLI
-// Устанавливает настройки прокси для соединения
-//
-// Параметры:
-// Настройки - ИнтернетПрокси - Настройки прокси - proxy
-//
-// Возвращаемое значение:
-// ОбработкаОбъект.OPI_HTTPКлиент - Этот же объект обработки
-Функция УстановитьПрокси(Знач Настройки) Экспорт
-
- Попытка
-
- Если ОстановитьРаботу() Тогда Возврат ЭтотОбъект; КонецЕсли;
-
- Если ТипЗнч(Настройки) = Тип("ИнтернетПрокси") Тогда
-
- ДобавитьЛог("УстановитьПрокси: установка значения");
- ЗапросПрокси = Настройки;
-
- Иначе
- Ошибка("УстановитьПрокси: переданные настройки не являются объектом типа ИнтернетПрокси");
- КонецЕсли;
-
- Возврат ЭтотОбъект;
-
- Исключение
- Возврат Ошибка(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
- КонецПопытки;
-
-КонецФункции
-
-// Установить таймаут !NOCLI
-// Устанавливает таймаут соединения
-//
-// Примечание:
-// Таймаут по умолчанию равен 3600 секунд
-//
-// Параметры:
-// Значение - Число - Таймаут соединения - value
-//
-// Возвращаемое значение:
-// ОбработкаОбъект.OPI_HTTPКлиент - Этот же объект обработки
-Функция УстановитьТаймаут(Знач Значение) Экспорт
-
- Попытка
-
- Если ОстановитьРаботу() Тогда Возврат ЭтотОбъект; КонецЕсли;
-
- OPI_ПреобразованиеТипов.ПолучитьЧисло(Значение);
-
- Если Значение = 0 Тогда
- ДобавитьЛог("УстановитьТаймаут: переданно некорректное значение, таймаут не изменен");
- Иначе
- ДобавитьЛог("УстановитьТаймаут: установка значения");
- ЗапросТаймаут = Значение;
- КонецЕсли;
-
- Возврат ЭтотОбъект;
-
- Исключение
- Возврат Ошибка(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
- КонецПопытки;
-
-КонецФункции
-
-// Получить лог !NOCLI
-// Получает лог выполнения
-//
-// Параметры:
-// Строкой - Булево - Возврат лога в виде строки - string
-//
-// Возвращаемое значение:
-// Строка, Массив - Лог выполнения
-Функция ПолучитьЛог(Знач Строкой = Ложь) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьБулево(Строкой);
-
- Если Не ЗначениеЗаполнено(Лог) Тогда
- Возврат ?(Строкой, "" , Новый Массив);
- Иначе
- Возврат ?(Строкой, СтрСоединить(Лог, Символы.ПС), Лог);
- КонецЕсли;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область Настройки
-
-// Использовать кодировку !NOCLI
-// Устанавливает кодировку тела запроса
-//
-// Примечание:
-// По умолчанию используется UTF-8
-//
-// Параметры:
-// Кодировка - Строка - Название кодировки - enc
-//
-// Возвращаемое значение:
-// ОбработкаОбъект.OPI_HTTPКлиент - Этот же объект обработки
-Функция ИспользоватьКодировку(Знач Кодировка) Экспорт
-
- Попытка
-
- Если ОстановитьРаботу() Тогда Возврат ЭтотОбъект; КонецЕсли;
-
- ДобавитьЛог("ИспользоватьКодировку: установка значения");
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Кодировка);
-
- УстановитьНастройку("КодировкаТелаЗапроса", Кодировка);
-
- Возврат ЭтотОбъект;
-
- Исключение
- Возврат Ошибка(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
- КонецПопытки;
-
-КонецФункции
-
-// Использовать сжатие gzip !NOCLI
-// Включает или отключает заголовок получения данных от сервера в сжатом виде
-//
-// Примечание:
-// По умлчанию ответ от сервера запрашивается со сжатием gzip
-//
-// Параметры:
-// Флаг - Булево - Признак использования gzip - gzip
-//
-// Возвращаемое значение:
-// ОбработкаОбъект.OPI_HTTPКлиент - Этот же объект обработки
-Функция ИспользоватьСжатиеGzip(Знач Флаг) Экспорт
-
- Попытка
-
- Если ОстановитьРаботу() Тогда Возврат ЭтотОбъект; КонецЕсли;
-
- ДобавитьЛог("ИспользоватьСжатиеGzip: установка значения");
- OPI_ПреобразованиеТипов.ПолучитьБулево(Флаг);
-
- УстановитьНастройку("gzip", Флаг);
-
- Возврат ЭтотОбъект;
-
- Исключение
- Возврат Ошибка(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
- КонецПопытки;
-
-КонецФункции
-
-// Использовать поля тела в OAuth !NOCLI
-// Включает или исключает поля тела при расчете подписи OAuth в зависимости от требований сервера
-//
-// Примечание:
-// По умолчанию данные тела используются при расчете подписи, если оно было установлено при помощи функции `УстановитьFormТело`
-//
-// Параметры:
-// Флаг - Булево - Признак использования полей тела в расчете подписи OAuth - use
-//
-// Возвращаемое значение:
-// ОбработкаОбъект.OPI_HTTPКлиент - Этот же объект обработки
-Функция ИспользоватьПоляТелаВOAuth(Знач Флаг) Экспорт
-
- Попытка
-
- Если ОстановитьРаботу() Тогда Возврат ЭтотОбъект; КонецЕсли;
-
- ДобавитьЛог("ИспользоватьПоляТелаВOAuth: установка значения");
- OPI_ПреобразованиеТипов.ПолучитьБулево(Флаг);
-
- УстановитьНастройку("ПоляТелаВOAuth", Флаг);
-
- Возврат ЭтотОбъект;
-
- Исключение
- Возврат Ошибка(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
- КонецПопытки;
-
-КонецФункции
-
-// Использовать кодирование URL !NOCLI
-// Включает или отключает стандартное кодирование спец. символов в URL
-//
-// Примечание:
-// По умолчанию кодирование URL включено
-//
-// Параметры:
-// Флаг - Булево - Признак использования кодирования URL - enc
-//
-// Возвращаемое значение:
-// ОбработкаОбъект.OPI_HTTPКлиент - Этот же объект обработки
-Функция ИспользоватьКодированиеURL(Знач Флаг) Экспорт
-
- Попытка
-
- Если ОстановитьРаботу() Тогда Возврат ЭтотОбъект; КонецЕсли;
-
- ДобавитьЛог("ИспользоватьКодированиеURL: установка значения");
- OPI_ПреобразованиеТипов.ПолучитьБулево(Флаг);
-
- УстановитьНастройку("КодировкаURL", Флаг);
-
- Возврат ЭтотОбъект;
-
- Исключение
- Возврат Ошибка(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
- КонецПопытки;
-
-КонецФункции
-
-// Разделять массивы в URL !NOCLI
-// Определяет представление массивов в параметрах URL: как цельный JSON массив или отдельные параметры для каждого элемента
-//
-// Примечание:
-// По умолчанию массивы интерпретируются как единый параметр с JSON массивом в значении
-// По умолчанию квадратные скобки к ключам параметров при разделении массива не устанавливаются
-//
-// Параметры:
-// Флаг - Булево - Признак деления массива на отдельные параметры URL - split
-// КвадратныеСкобки - Булево - Добавлять к ключам пустые скобки в стиле PHP (key[]=value), если Флаг = Истина - php
-//
-// Возвращаемое значение:
-// ОбработкаОбъект.OPI_HTTPКлиент - Этот же объект обработки
-Функция РазделятьМассивыВURL(Знач Флаг, Знач КвадратныеСкобки = Неопределено) Экспорт
-
- Попытка
-
- Если ОстановитьРаботу() Тогда Возврат ЭтотОбъект; КонецЕсли;
-
- ДобавитьЛог("РазделятьМассивыВURL: установка значения");
- OPI_ПреобразованиеТипов.ПолучитьБулево(Флаг);
-
- Если КвадратныеСкобки <> Неопределено Тогда
-
- ДобавитьЛог("РазделятьМассивыВURL: установка настройки использованя квадратных скобок");
- OPI_ПреобразованиеТипов.ПолучитьБулево(КвадратныеСкобки);
-
- УстановитьНастройку("КвадратныеСкобкиМассивов", КвадратныеСкобки);
-
- КонецЕсли;
-
- УстановитьНастройку("ОтдельныеЭлементыМассивов", Флаг);
-
- Возврат ЭтотОбъект;
-
- Исключение
- Возврат Ошибка(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
- КонецПопытки;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область УстановкаТела
-
-// Установить двоичное тело !NOCLI
-// Устанавливает тело запрос из двоичных данных, файла или строки (с преобразованием в двоичные данные)
-//
-// Параметры:
-// Данные - Строка, ДвоичныеДанные - Файл, строка или данные тела запроса - data
-// УстанавливатьПустое - Булево - Устанавливает тело даже при передаче пустых данных - empty
-//
-// Возвращаемое значение:
-// ОбработкаОбъект.OPI_HTTPКлиент - Этот же объект обработки
-Функция УстановитьДвоичноеТело(Знач Данные, Знач УстанавливатьПустое = Ложь) Экспорт
-
- Попытка
-
- Если ОстановитьРаботу() Тогда Возврат ЭтотОбъект; КонецЕсли;
-
- ОтменитьЗаписьMultipart();
-
- Если Не ЗапросТипУстановленВручную Тогда
- ЗапросТипДанных = "application/octet-stream";
- КонецЕсли;
-
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Данные, Истина, Ложь);
- OPI_ПреобразованиеТипов.ПолучитьБулево(УстанавливатьПустое);
-
- Данные = ?(Данные = Неопределено, ПолучитьДвоичныеДанныеИзСтроки(""), Данные);
- ЕстьДанные = Данные.Размер() > 0;
-
- Если ЕстьДанные Или УстанавливатьПустое Тогда
-
- Если Не ЕстьДанные Тогда
- Данные = ПолучитьДвоичныеДанныеИзСтроки("");
- КонецЕсли;
-
- ДобавитьЛог("УстановитьДвоичноеТело: начало установки тела");
- УстановитьТелоИзДвоичныхДанных(Данные);
- ДобавитьЛог(СтрШаблон("УстановитьДвоичноеТело: тело установлено, размер %1", ЗапросТело.Размер()));
-
- Иначе
- ДобавитьЛог("УстановитьДвоичноеТело: передано пустое тело - пропуск");
- КонецЕсли;
-
- Возврат ЭтотОбъект;
-
- Исключение
- Возврат Ошибка(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
- КонецПопытки;
-
-КонецФункции
-
-// Установить строковое тело !NOCLI
-// Устанавливает тело запроса из строки
-//
-// Параметры:
-// Данные - Строка - Данные тела запроса - data
-// ЗаписатьBOM - Булево - Истина > BOM будет добавлен - bom
-//
-// Возвращаемое значение:
-// ОбработкаОбъект.OPI_HTTPКлиент - Этот же объект обработки
-Функция УстановитьСтроковоеТело(Знач Данные, Знач ЗаписатьBOM = Ложь) Экспорт
-
- Попытка
-
- Если ОстановитьРаботу() Тогда Возврат ЭтотОбъект; КонецЕсли;
-
- ОтменитьЗаписьMultipart();
-
- Если Не ЗначениеЗаполнено(Данные) Тогда
- ДобавитьЛог("УстановитьСтроковоеТело: нет данных - пропуск");
- Возврат ЭтотОбъект;
- КонецЕсли;
-
- Кодировка = ПолучитьНастройку("КодировкаТелаЗапроса");
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Кодировка);
-
- Если Не ЗапросТипУстановленВручную Тогда
- ЗапросТипДанных = СтрШаблон("text/plain; charset=%1", Кодировка);
- КонецЕсли;
-
- ДобавитьЛог("УстановитьСтроковоеТело: начало установки тела");
- УстановитьТелоИзСтроки(Данные, ЗаписатьBOM);
- ДобавитьЛог(СтрШаблон("УстановитьСтроковоеТело: тело установлено, размер %1", ЗапросТело.Размер()));
-
- Возврат ЭтотОбъект;
-
- Исключение
- Возврат Ошибка(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
- КонецПопытки;
-
-КонецФункции
-
-// Установить JSON тело !NOCLI
-// Устанавливает тело в формате JSON из подходящей коллекции или строки
-//
-// Параметры:
-// Данные - Произвольный - Строка или коллекция для преобразования в JSON - data
-//
-// Возвращаемое значение:
-// ОбработкаОбъект.OPI_HTTPКлиент - Этот же объект обработки
-Функция УстановитьJsonТело(Знач Данные) Экспорт
-
- Попытка
-
- Если ОстановитьРаботу() Тогда Возврат ЭтотОбъект; КонецЕсли;
-
- ОтменитьЗаписьMultipart();
-
- Если Не ЗначениеЗаполнено(Данные) Тогда
- ДобавитьЛог("УстановитьJsonТело: нет данных - пропуск");
- Возврат ЭтотОбъект;
- КонецЕсли;
-
- Если Не ЗапросТипУстановленВручную Тогда
- ЗапросТипДанных = "application/json; charset=utf-8";
- КонецЕсли;
-
- ДобавитьЛог("УстановитьJsonТело: начало установки тела");
-
- Если Не ТипЗнч(Данные) = Тип("ДвоичныеДанные") Тогда
-
- OPI_ПреобразованиеТипов.ПолучитьКоллекцию(Данные);
-
- Если Не ТипЗнч(Данные) = Тип("Массив") Тогда
- ЗапросТелоКоллекция = OPI_Инструменты.КопироватьКоллекцию(Данные);
- КонецЕсли;
-
- КонецЕсли;
-
- УстановитьТелоИзСтроки(Данные);
-
- ДобавитьЛог(СтрШаблон("УстановитьJsonТело: тело установлено, размер %1", ЗапросТело.Размер()));
-
- Возврат ЭтотОбъект;
-
- Исключение
- Возврат Ошибка(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
- КонецПопытки;
-
-КонецФункции
-
-// Установить Form тело !NOCLI
-// Устанавливает тело в формате x-www-form-urlencoded из коллекции значений полей
-//
-// Параметры:
-// Данные - Произвольный - Коллекция КлючЗначение с параметрами формы - data
-//
-// Возвращаемое значение:
-// ОбработкаОбъект.OPI_HTTPКлиент - Установить form тело
-Функция УстановитьFormТело(Знач Данные) Экспорт
-
- Попытка
-
- Если ОстановитьРаботу() Тогда Возврат ЭтотОбъект; КонецЕсли;
-
- ОтменитьЗаписьMultipart();
-
- Если Не ЗначениеЗаполнено(Данные) Тогда
- ДобавитьЛог("УстановитьFormТело: нет данных - пропуск");
- Возврат ЭтотОбъект;
- КонецЕсли;
-
- Если Не ЗапросТипУстановленВручную Тогда
- ЗапросТипДанных = "application/x-www-form-urlencoded; charset=utf-8";
- КонецЕсли;
-
- ДобавитьЛог("УстановитьFormТело: начало установки тела");
-
- OPI_ПреобразованиеТипов.ПолучитьКоллекцию(Данные);
-
- Если ТипЗнч(Данные) = Тип("Массив") Тогда
-
- Данные = Данные[0];
-
- Если Не ТипЗнч(Данные) = Тип("ДвоичныеДанные") Тогда
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Данные);
- КонецЕсли;
-
- Иначе
-
- ЗапросТелоКоллекция = OPI_Инструменты.КопироватьКоллекцию(Данные);
- Данные = ПараметрыЗапросаВСтроку(Данные);
-
- КонецЕсли;
-
- УстановитьТелоИзСтроки(Данные);
- УстановитьНастройку("ПоляТелаВOAuth", Истина);
-
- ДобавитьЛог(СтрШаблон("УстановитьFormТело: тело установлено, размер %1", ЗапросТело.Размер()));
-
- Возврат ЭтотОбъект;
-
- Исключение
- Возврат Ошибка(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
- КонецПопытки;
-
-КонецФункции
-
-// Начать запись тела multipart !NOCLI
-// Инициализирует запись данных в тело в формате multipart
-//
-// Примечание:
-// Для дальнейшего формирования тела используются методы `ДобавитьФайлMultipart` и `ДобавитьПолеMultipart`
-//
-// Параметры:
-// ИспользоватьФайл - Булево - Истина > использовать временный файл, Ложь > формирует тело в памяти - file
-// Вид - Строка - Вид multipart загрузки: form data, related - type
-//
-// Возвращаемое значение:
-// ОбработкаОбъект.OPI_HTTPКлиент - Этот же объект обработки
-Функция НачатьЗаписьТелаMultipart(ИспользоватьФайл = Истина, Знач Вид = "form-data") Экспорт
-
- Попытка
-
- Если ОстановитьРаботу() Тогда Возврат ЭтотОбъект; КонецЕсли;
-
- OPI_ПреобразованиеТипов.ПолучитьБулево(ИспользоватьФайл);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Вид);
-
- Multipart = Истина;
- Boundary = СтрЗаменить(Строка(Новый УникальныйИдентификатор), "-", "");
- РазделительСтрок = Символы.ВК + Символы.ПС;
- Кодировка = ПолучитьНастройку("КодировкаТелаЗапроса");
- ЗапросТипДанных = СтрШаблон("multipart/%1; boundary=%2", Вид, Boundary);
-
- ЗапросТелоКоллекция = Новый Структура;
-
- Если ИспользоватьФайл Тогда
-
- ДобавитьЛог("НачатьЗаписьТелаMultipart: создание временного файла");
-
- // BSLLS:MissingTemporaryFileDeletion-off
-
- //@skip-check missing-temporary-file-deletion
- ЗапросФайлТела = ПолучитьИмяВременногоФайла();
-
- // BSLLS:MissingTemporaryFileDeletion-on
-
- ФайлТелаВременный = Истина;
- ЗапросЗаписьДанных = Новый ЗаписьДанных(ЗапросФайлТела
- , Кодировка
- , ПорядокБайтов.LittleEndian
- , ""
- , Ложь
- , ""
- , Ложь);
-
- Иначе
-
- ДобавитьЛог("НачатьЗаписьТелаMultipart: создание потока в памяти");
-
- ЗапросПотокТела = Новый ПотокВПамяти();
-
- ЗапросЗаписьДанных = Новый ЗаписьДанных(ЗапросПотокТела
- , Кодировка
- , ПорядокБайтов.LittleEndian
- , ""
- , ""
- , Ложь);
-
- КонецЕсли;
-
- Возврат ЭтотОбъект;
-
- Исключение
- Возврат Ошибка(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
- КонецПопытки;
-
-КонецФункции
-
-// Добавить файл multipart !NOCLI
-// Добавляет блок файла в multipart/form-data тело
-//
-// Примечание:
-// Запись Multipart предварительно должна быть инициализирована при помощи функции `НачатьЗаписьТелаMultipart`
-//
-// Параметры:
-// ИмяПоля - Строка - Имя поля формы - field
-// ИмяФайла - Строка - Имя файла с расширением - filename
-// Данные - ДвоичныеДанные, Строка - Данные файла для записи - data
-// ТипДанных - Строка - Mime тип записываемых данных - mime
-//
-// Возвращаемое значение:
-// ОбработкаОбъект.OPI_HTTPКлиент - Этот же объект обработки
-Функция ДобавитьФайлMultipartFormData(Знач ИмяПоля, Знач ИмяФайла, Знач Данные, Знач ТипДанных = "") Экспорт
-
- Попытка
-
- Если ОстановитьРаботу() Тогда Возврат ЭтотОбъект; КонецЕсли;
- Если Не Multipart Тогда Возврат Ошибка("ДобавитьФайлMultipart: не инициализирована запись Multipart"); КонецЕсли;
-
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Данные);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(ИмяПоля);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(ИмяФайла);
-
- ДобавитьЛог("ДобавитьФайлMultipart: запись шапки блока");
-
- Шапка = СтрШаблон("Content-Disposition: form-data; name=""%1""; filename=""%2""", ИмяПоля, ИмяФайла);
-
- ЗапросЗаписьДанных.ЗаписатьСтроку("--" + Boundary + РазделительСтрок);
- ЗапросЗаписьДанных.ЗаписатьСтроку(Шапка);
- ЗапросЗаписьДанных.ЗаписатьСтроку(РазделительСтрок);
-
- Если ЗначениеЗаполнено(ТипДанных) Тогда
- ЗапросЗаписьДанных.ЗаписатьСтроку("Content-Type: " + ТипДанных);
- КонецЕсли;
-
- ЗапросЗаписьДанных.ЗаписатьСтроку(РазделительСтрок);
- ЗапросЗаписьДанных.ЗаписатьСтроку(РазделительСтрок);
-
- ДобавитьЛог("ДобавитьФайлMultipart: запись данных");
-
- ЗаписатьДвоичныеДанные(ЗапросЗаписьДанных, Данные);
-
- ЗапросЗаписьДанных.ЗаписатьСтроку(РазделительСтрок);
-
- Возврат ЭтотОбъект;
-
- Исключение
- Возврат Ошибка(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
- КонецПопытки;
-
-КонецФункции
-
-// Добавить поле multipart !NOCLI
-// Добавляет поле формы в multipart/form-data тело
-//
-// Примечание:
-// Запись Multipart предварительно должна быть инициализирована при помощи функции `НачатьЗаписьТелаMultipart`
-//
-// Параметры:
-// ИмяПоля - Строка - Имя поля формы - field
-// Значение - Произвольный - Значение поля - data
-//
-// Возвращаемое значение:
-// ОбработкаОбъект.OPI_HTTPКлиент - Этот же объект обработки
-Функция ДобавитьПолеMultipartFormData(Знач ИмяПоля, Знач Значение) Экспорт
-
- Попытка
-
- Если ОстановитьРаботу() Тогда Возврат ЭтотОбъект; КонецЕсли;
- Если Не Multipart Тогда Возврат Ошибка("ДобавитьПолеMultipart: не инициализирована запись Multipart"); КонецЕсли;
-
- ТипЗначения = ТипЗнч(Значение);
-
- ДобавитьЛог("ДобавитьПолеMultipart: запись шапки блока");
-
- Шапка = СтрШаблон("Content-Disposition: form-data; name=""%1""", ИмяПоля);
-
- ЗапросЗаписьДанных.ЗаписатьСтроку("--" + boundary + РазделительСтрок);
- ЗапросЗаписьДанных.ЗаписатьСтроку(Шапка);
- ЗапросЗаписьДанных.ЗаписатьСтроку(РазделительСтрок);
- ЗапросЗаписьДанных.ЗаписатьСтроку(РазделительСтрок);
-
- ДобавитьЛог("ДобавитьПолеMultipart: запись данных");
-
- Если ТипЗначения = Тип("Булево") Тогда
-
- Значение = ?(Значение, "true", "false");
- ЗапросЗаписьДанных.ЗаписатьСтроку(Значение);
- ЗапросТелоКоллекция.Вставить(ИмяПоля, Значение);
-
- ИначеЕсли ТипЗначения = Тип("ДвоичныеДанные") Тогда
-
- ЗаписатьДвоичныеДанные(ЗапросЗаписьДанных, Значение);
-
- Иначе
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Значение);
- ЗапросЗаписьДанных.ЗаписатьСтроку(Значение);
- ЗапросТелоКоллекция.Вставить(ИмяПоля, Значение);
-
- КонецЕсли;
-
- ЗапросЗаписьДанных.ЗаписатьСтроку(РазделительСтрок);
-
- Возврат ЭтотОбъект;
-
- Исключение
- Возврат Ошибка(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
- КонецПопытки;
-
-КонецФункции
-
-// Добавить данные Related !NOCLI
-// Добавляет данные в multipart/related тело
-//
-// Примечание:
-// Запись Multipart предварительно должна быть инициализирована при помощи функции `НачатьЗаписьТелаMultipart`
-//
-// Параметры:
-// Данные - Произвольный - Данные для записи - data
-// ТипДанных - Строка - MIME тип записываемых данных - mime
-// IDЧасти - Строка - Content ID, если необходим - cid
-//
-// Возвращаемое значение:
-// ОбработкаОбъект.OPI_HTTPКлиент - Этот же объект обработки
-Функция ДобавитьДанныеRelated(Знач Данные, Знач ТипДанных, Знач IDЧасти = "") Экспорт
-
- Попытка
-
- Если ОстановитьРаботу() Тогда Возврат ЭтотОбъект; КонецЕсли;
- Если Не Multipart Тогда Возврат Ошибка("ДобавитьФайлRelated: не инициализирована запись Multipart"); КонецЕсли;
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(ТипДанных);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧасти);
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Данные, Истина, Ложь);
-
- ДобавитьЛог("ДобавитьФайлRelated: запись шапки блока");
- ЗапросЗаписьДанных.ЗаписатьСтроку("--" + Boundary + РазделительСтрок);
- ЗапросЗаписьДанных.ЗаписатьСтроку("Content-Type: " + ТипДанных);
-
- Если ЗначениеЗаполнено(IDЧасти) Тогда
- ЗапросЗаписьДанных.ЗаписатьСтроку("Content-ID: " + IDЧасти);
- КонецЕсли;
-
- ЗапросЗаписьДанных.ЗаписатьСтроку(РазделительСтрок);
- ЗапросЗаписьДанных.ЗаписатьСтроку(РазделительСтрок);
-
- ДобавитьЛог("ДобавитьФайлRelated: запись данных");
- ЗаписатьДвоичныеДанные(ЗапросЗаписьДанных, Данные);
- ЗапросЗаписьДанных.ЗаписатьСтроку(РазделительСтрок);
- ЗапросЗаписьДанных.ЗаписатьСтроку(РазделительСтрок);
-
- Возврат ЭтотОбъект;
-
- Исключение
- Возврат Ошибка(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
- КонецПопытки;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область УстановкаЗаголовков
-
-// Установить заголовки !NOCLI
-// Устанавливает коллекцию заголовков запросов
-//
-// Параметры:
-// Значение - Произвольный - Стрктура или соответствие заголовков запрос - headers
-// ПолнаяЗамена - Булево - Очищает все добавленные ранее заголовки перед установкой - replace
-//
-// Возвращаемое значение:
-// ОбработкаОбъект.OPI_HTTPКлиент - Этот же объект обработки
-Функция УстановитьЗаголовки(Знач Значение, Знач ПолнаяЗамена = Ложь) Экспорт
-
- Попытка
-
- Если ОстановитьРаботу() Тогда Возврат ЭтотОбъект; КонецЕсли;
- Если Не ЗначениеЗаполнено(Значение) Тогда Значение = Новый Соответствие; КонецЕсли;
-
- ТекстОшибки = "УстановитьЗаголовки: переданные параметры не являются коллекцией ключ/значение";
- OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(Значение, ТекстОшибки);
- OPI_ПреобразованиеТипов.ПолучитьБулево(ПолнаяЗамена);
-
- ДобавитьЛог("УстановитьЗаголовки: установка заголовков запроса");
-
- Если ПолнаяЗамена Тогда
- ЗапросЗаголовки = Значение;
- Иначе
- Для Каждого Заголовок Из Значение Цикл
- ЗапросЗаголовки.Вставить(Заголовок.Ключ, Заголовок.Значение);
- КонецЦикла;
- КонецЕсли;
-
- Возврат ЭтотОбъект;
-
- Исключение
- Возврат Ошибка(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
- КонецПопытки;
-
-КонецФункции
-
-// Добавить заголовок !NOCLI
-// Добавляет заголовок в набор заголовков запроса
-//
-// Параметры:
-// Имя - Строка - Ключ заголовка - header
-// Значение - Строка - Значение заголовка - value
-//
-// Возвращаемое значение:
-// ОбработкаОбъект.OPI_HTTPКлиент - Этот же объект обработки
-Функция ДобавитьЗаголовок(Знач Имя, Знач Значение) Экспорт
-
- Попытка
-
- Если ОстановитьРаботу() Тогда Возврат ЭтотОбъект; КонецЕсли;
- Если Не ЗначениеЗаполнено(Значение) Тогда Значение = Новый Соответствие; КонецЕсли;
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Имя);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Значение);
-
- ДобавитьЛог("ДобавитьЗаголовок: установка заголовков запроса");
-
- ЗапросЗаголовки.Вставить(Имя, Значение);
-
- Возврат ЭтотОбъект;
-
- Исключение
- Возврат Ошибка(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
- КонецПопытки;
-КонецФункции
-
-#КонецОбласти
-
-#Область Авторизация
-
-// Добавить Basic авторизацию !NOCLI
-// Добавляет стандартную авторизацю по пользователю и паролю
-//
-// Параметры:
-// Пользователь - Строка - Имя пользователя - user
-// Пароль - Строка - Пароль - pwd
-//
-// Возвращаемое значение:
-// ОбработкаОбъект.OPI_HTTPКлиент - Этот же объект обработки
-Функция ДобавитьBasicАвторизацию(Знач Пользователь, Знач Пароль) Экспорт
-
- Попытка
-
- Если ОстановитьРаботу() Тогда Возврат ЭтотОбъект; КонецЕсли;
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Пользователь);
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Пароль);
-
- ЗапросПользователь = Пользователь;
- ЗапросПароль = Пароль;
-
- Возврат ЭтотОбъект;
-
- Исключение
- Возврат Ошибка(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
- КонецПопытки;
-
-КонецФункции
-
-// Добавить Bearer авторизацию !NOCLI
-// Добавляет заголовок запроса для Bearer авторизации
-//
-// Параметры:
-// Токен - Строка - Значение Bearer токена - token
-//
-// Возвращаемое значение:
-// ОбработкаОбъект.OPI_HTTPКлиент - Этот же объект обработки
-Функция ДобавитьBearerАвторизацию(Знач Токен) Экспорт
-
- Попытка
-
- Если ОстановитьРаботу() Тогда Возврат ЭтотОбъект; КонецЕсли;
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
-
- AuthВид = "bearer";
- AuthДанные = Токен;
-
- Возврат ЭтотОбъект;
-
- Исключение
- Возврат Ошибка(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
- КонецПопытки;
-
-КонецФункции
-
-// Добавить AWS4 авторизацию !NOCLI
-// Добавляет данные для AWS4 авторизации
-//
-// Параметры:
-// AccessKey - Строка - Access key для авторизации - access
-// SecretKey - Строка - Secret key для авторизации - secret
-// Region - Строка - Регион сервиса - region
-// Service - Строка - Вид сервиса, если отличен от s3 - service
-//
-// Возвращаемое значение:
-// ОбработкаОбъект.OPI_HTTPКлиент - Этот же объект обработки
-Функция ДобавитьAWS4Авторизацию(Знач AccessKey, Знач SecretKey, Знач Region, Знач Service = "s3") Экспорт
-
- Попытка
-
- Если ОстановитьРаботу() Тогда Возврат ЭтотОбъект; КонецЕсли;
-
- Строка_ = "Строка";
- AuthВид = "aws4";
-
- AuthДанные = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("AccessKey", AccessKey, Строка_, AuthДанные);
- OPI_Инструменты.ДобавитьПоле("SecretKey", SecretKey, Строка_, AuthДанные);
- OPI_Инструменты.ДобавитьПоле("Region" , Region , Строка_, AuthДанные);
- OPI_Инструменты.ДобавитьПоле("Service" , Service , Строка_, AuthДанные);
-
- Возврат ЭтотОбъект;
-
- Исключение
- Возврат Ошибка(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
- КонецПопытки;
-
-КонецФункции
-
-// Добавить OAuth v1 авторизацию !NOCLI
-// Добавляет данные для OAuth v1 авторизации
-//
-// Примечание:
-// По умолчанию, для создания подписи используется HMAC-SHA256. Для изменения алгоритма можно восопользоваться функцией^^
-// `УстановитьАлгоритмOAuthV1`
-//
-// Параметры:
-// Token - Строка - Token для авторизации - token
-// Secret - Строка - Secret для авторизации - secret
-// ConsumerKey - Строка - Consumer key для авторизации - ck
-// ConsumerSecret - Строка - Consumer secret для авторизации - cs
-// Версия - Строка - Версия API - ver
-//
-// Возвращаемое значение:
-// ОбработкаОбъект.OPI_HTTPКлиент - Этот же объект обработки
-Функция ДобавитьOAuthV1Авторизацию(Знач Token, Знач Secret, Знач ConsumerKey, Знач ConsumerSecret, Знач Версия) Экспорт
-
- Попытка
-
- Если ОстановитьРаботу() Тогда Возврат ЭтотОбъект; КонецЕсли;
-
- Строка_ = "Строка";
- AuthВид = "oauth1";
-
- AuthДанные = Новый Структура;
- OPI_Инструменты.ДобавитьПоле("OAuthToken" , Token , Строка_, AuthДанные);
- OPI_Инструменты.ДобавитьПоле("OAuthSecret" , Secret , Строка_, AuthДанные);
- OPI_Инструменты.ДобавитьПоле("OAuthConsumerKey" , ConsumerKey , Строка_, AuthДанные);
- OPI_Инструменты.ДобавитьПоле("OAuthConsumerSecret", ConsumerSecret , Строка_, AuthДанные);
- OPI_Инструменты.ДобавитьПоле("OAuthАлгоритм" , "HMAC" , Строка_, AuthДанные);
- OPI_Инструменты.ДобавитьПоле("OAuthХешФункция" , "SHA256" , Строка_, AuthДанные);
- OPI_Инструменты.ДобавитьПоле("OAuthВерсияAPI" , Версия , Строка_, AuthДанные);
-
- Возврат ЭтотОбъект;
-
- Исключение
- Возврат Ошибка(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
- КонецПопытки;
-
-КонецФункции
-
-// Установить алгоритм OAuth V1 !NOCLI
-// Изменяет алгоритм для подписи OAuth
-//
-// Параметры:
-// Алгоритм - Строка - Алгоритм шифрования: HMAC, RSA - alg
-// ХешФункция - Строка - Хеш функция для сигнатуры: SHA1, SHA256 - hash
-//
-// Возвращаемое значение:
-// ОбработкаОбъект.OPI_HTTPКлиент - Этот же объект обработки
-Функция УстановитьАлгоритмOAuthV1(Знач Алгоритм, Знач ХешФункция) Экспорт
-
- Попытка
-
- Если ОстановитьРаботу() Тогда Возврат ЭтотОбъект; КонецЕсли;
-
- Если AuthВид <> "oauth1" Тогда
- Возврат Ошибка("УстановитьАлгоритмOAuthV1: перед установкой алгоритма авторизация OAuth v1 должна быть инициализирована");
- КонецЕсли;
-
- OPI_Инструменты.ДобавитьПоле("OAuthАлгоритм" , Алгоритм , "Строка", AuthДанные);
- OPI_Инструменты.ДобавитьПоле("OAuthХешФункция", ХешФункция, "Строка", AuthДанные);
-
- Возврат ЭтотОбъект;
-
- Исключение
- Возврат Ошибка(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
- КонецПопытки;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область ОбработкаЗапроса
-
-// Обработать запрос !NOCLI
-// Создает запрос на основе введенных данных с выполнением или без
-//
-// Примечание:
-// `ВыполнитьСразу = Ложь` может быть использовано для получения готовых^^
-// объектов HTTPЗапрос и HTTPСоединение без их выполнения. См. `ВернутьЗапрос` и `ВернутьСоединение`
-//
-// Параметры:
-// Метод - Строка - HTTP метод запроса - method
-// ВыполнитьСразу - Булево - Выполняет запрос сразу после формирования - run
-//
-// Возвращаемое значение:
-// ОбработкаОбъект.OPI_HTTPКлиент - Этот же объект обработки
-Функция ОбработатьЗапрос(Знач Метод, Знач ВыполнитьСразу = Истина) Экспорт
-
- Попытка
-
- Если ОстановитьРаботу() Тогда Возврат ЭтотОбъект; КонецЕсли;
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Метод);
- OPI_ПреобразованиеТипов.ПолучитьБулево(ВыполнитьСразу);
- ЗапросМетод = Метод;
-
- ДобавитьЛог("ОбработатьЗапрос: формирование объекта HTTPЗапроса");
- Если СформироватьЗапрос().Ошибка Тогда Возврат ЭтотОбъект; КонецЕсли;
-
- ДобавитьЛог("ОбработатьЗапрос: перенос тела в объект HTTPЗапроса");
- Если УстановитьТелоЗапроса().Ошибка Тогда Возврат ЭтотОбъект; КонецЕсли;
-
- ГарантироватьТелоКоллекцию();
- ДополнитьЗаголовки();
-
- Если ВыполнитьСразу Тогда
- ВызватьМетод();
- КонецЕсли;
-
- Возврат ЭтотОбъект;
-
- Исключение
- Возврат Ошибка(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
- КонецПопытки;
-
-КонецФункции
-
-// Выполнить запрос !NOCLI
-// Выполняет запрос, если он был сформирован ранее
-//
-// Параметры:
-// Принудительно - Булево - Попытка выполнения без дополнительных проверовк - force
-//
-// Возвращаемое значение:
-// ОбработкаОбъект.OPI_HTTPКлиент - Этот же объект обработки
-Функция ВыполнитьЗапрос(Принудительно = Ложь) Экспорт
-
- Попытка
-
- Если ОстановитьРаботу() Тогда Возврат ЭтотОбъект; КонецЕсли;
-
- ДобавитьЛог("ВыполнитьЗапрос: выполнение запроса");
-
- Возврат ВызватьМетод(0, Принудительно);
-
- Исключение
- Возврат Ошибка(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
- КонецПопытки;
-
-КонецФункции
-
-// Вернуть запрос !NOCLI
-// Возвращает объект текущего HTTP запроса
-//
-// Параметры:
-// Принудительно - Булево - Ложь > Вместо запроса будет возвращен объект обработки, если в ней были ошибки - force
-//
-// Возвращаемое значение:
-// ОбработкаОбъект.OPI_HTTPКлиент, HTTPЗапрос, Неопределено - Запрос или этот же объект обработки
-Функция ВернутьЗапрос(Принудительно = Ложь) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьБулево(Принудительно);
-
- Если ОстановитьРаботу() И Не Принудительно Тогда Возврат ЭтотОбъект; КонецЕсли;
-
- Возврат Запрос;
-
-КонецФункции
-
-// Вернуть соединение !NOCLI
-// Возвращает объект текущего HTTP соединения
-//
-// Параметры:
-// Принудительно - Булево - Ложь > Вместо соединения будет возвращен объект обработки, если в ней были ошибки - force
-//
-// Возвращаемое значение:
-// ОбработкаОбъект.OPI_HTTPКлиент, HTTPСоединение, Неопределено - Соединение или этот же объект обработки
-Функция ВернутьСоединение(Принудительно = Ложь) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьБулево(Принудительно);
-
- Если ОстановитьРаботу() И Не Принудительно Тогда Возврат ЭтотОбъект; КонецЕсли;
-
- Возврат Соединение;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область ПолучениеОтвета
-
-// Вернуть ответ !NOCLI
-// Возвращает объект текущего HTTP ответа
-//
-// Параметры:
-// Принудительно - Булево - Ложь > Вместо ответа будет возвращен объект обработки, если в ней были ошибки - force
-// ИсключениеПриОшибке - Булево - Вызывает исключение с логом, если во время обработки были ошибки - ex
-//
-// Возвращаемое значение:
-// ОбработкаОбъект.OPI_HTTPКлиент, HTTPОтвет, Неопределено - Ответ или этот же объект обработки
-Функция ВернутьОтвет(Знач Принудительно = Ложь, Знач ИсключениеПриОшибке = Ложь) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьБулево(Принудительно);
-
- Если ОстановитьРаботу(ИсключениеПриОшибке) И Не Принудительно Тогда Возврат ЭтотОбъект; КонецЕсли;
-
- Возврат Ответ;
-
-КонецФункции
-
-// Вернуть ответ как JSON коллекцию !NOCLI
-// Возвращает тело ответа как коллекцию, полученную из JSON
-//
-// Примечание:
-// При невозможности получения коллекции из тела будут возвращены двоичные данные
-//
-// Параметры:
-// ВСоответствие - Булево - Признак использования соответствия вместо структуры - map
-// ИсключениеПриОшибке - Булево - Вызывает исключение с логом, если во время обработки были ошибки - ex
-//
-// Возвращаемое значение:
-// Произвольный - Ответ или этот же объект обработки
-Функция ВернутьОтветКакJSONКоллекцию(Знач ВСоответствие = Истина, Знач ИсключениеПриОшибке = Ложь) Экспорт
-
- Если ОстановитьРаботу(ИсключениеПриОшибке) Тогда Возврат ЭтотОбъект; КонецЕсли;
-
- Попытка
-
- OPI_ПреобразованиеТипов.ПолучитьБулево(ВСоответствие);
- ТелоОтвета = ПолучитьТелоОтвета();
-
- Попытка
-
- Если ТелоОтвета.Размер() > 0 Тогда
- JSON = OPI_Инструменты.JsonВСтруктуру(ТелоОтвета, ВСоответствие);
- Иначе
- JSON = Новый Соответствие;
- КонецЕсли;
-
- Исключение
-
- JSON = ТелоОтвета;
-
- КонецПопытки;
-
- Возврат JSON;
-
- Исключение
- Возврат Ошибка(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
- КонецПопытки;
-
-КонецФункции
-
-// Вернуть ответ как двоичные данные !NOCLI
-// Возвращает тело ответа как двоичные данные
-//
-// Параметры:
-// Принудительно - Булево - Ложь > Вместо ответа будет возвращен объект обработки, если в ней были ошибки - force
-// ИсключениеПриОшибке - Булево - Вызывает исключение с логом, если во время обработки были ошибки - ex
-//
-// Возвращаемое значение:
-// Произвольный - Ответ или этот же объект обработки
-Функция ВернутьОтветКакДвоичныеДанные(Знач Принудительно = Ложь, Знач ИсключениеПриОшибке = Ложь) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьБулево(Принудительно);
-
- Если ОстановитьРаботу(ИсключениеПриОшибке) И Не Принудительно Тогда Возврат ЭтотОбъект; КонецЕсли;
-
- Попытка
- ТелоДвоичные = Неопределено;
- ТелоДвоичные = ПолучитьТелоОтвета();
- Исключение
-
- Ошибка = Истина;
-
- Если ОстановитьРаботу(ИсключениеПриОшибке) И Не Принудительно Тогда
- ТелоДвоичные = ЭтотОбъект;
- КонецЕсли;
-
- КонецПопытки;
-
- Возврат ТелоДвоичные;
-
-КонецФункции
-
-// Вернуть ответ как строку !NOCLI
-// Возвращает тело ответа как строку
-//
-// Параметры:
-// Принудительно - Булево - Ложь > Вместо ответа будет возвращен объект обработки, если в ней были ошибки - force
-// ИсключениеПриОшибке - Булево - Вызывает исключение с логом, если во время обработки были ошибки - ex
-//
-// Возвращаемое значение:
-// Произвольный - Ответ или этот же объект обработки
-Функция ВернутьОтветКакСтроку(Знач Принудительно = Ложь, Знач ИсключениеПриОшибке = Ложь) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьБулево(Принудительно);
-
- Если ОстановитьРаботу(ИсключениеПриОшибке) И Не Принудительно Тогда Возврат ЭтотОбъект; КонецЕсли;
-
- Попытка
- ТелоСтрокой = Неопределено;
- ТелоСтрокой = ПолучитьСтрокуИзДвоичныхДанных(ПолучитьТелоОтвета());
- Исключение
-
- Ошибка = Истина;
-
- Если ОстановитьРаботу(ИсключениеПриОшибке) И Не Принудительно Тогда
- ТелоСтрокой = ЭтотОбъект;
- КонецЕсли;
-
- КонецПопытки;
-
- Возврат ТелоСтрокой;
-
-КонецФункции
-
-// Вернуть имя файла тела ответа !NOCLI
-// Возвращает путь к файлу тела ответа
-//
-// Параметры:
-// Принудительно - Булево - Ложь > Вместо ответа будет возвращен объект обработки, если в ней были ошибки - force
-// ИсключениеПриОшибке - Булево - Вызывает исключение с логом, если во время обработки были ошибки - ex
-//
-// Возвращаемое значение:
-// Произвольный - Ответ или этот же объект обработки
-Функция ВернутьИмяФайлаТелаОтвета(Знач Принудительно = Ложь, Знач ИсключениеПриОшибке = Ложь) Экспорт
-
- OPI_ПреобразованиеТипов.ПолучитьБулево(Принудительно);
-
- Если ОстановитьРаботу(ИсключениеПриОшибке) И Не Принудительно Тогда Возврат ЭтотОбъект; КонецЕсли;
-
- Попытка
- ИмяФайлаТела = Неопределено;
- ИмяФайлаТела = Ответ.ПолучитьИмяФайлаТела();
- Исключение
-
- Ошибка = Истина;
-
- Если ОстановитьРаботу(ИсключениеПриОшибке) И Не Принудительно Тогда
- ИмяФайлаТела = ЭтотОбъект;
- КонецЕсли;
-
- КонецПопытки;
-
- Возврат ИмяФайлаТела;
-
-КонецФункции
-
-#КонецОбласти
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-#Область HTTP
-
-Функция ПреобразоватьПараметрВСтроку(Знач Значение)
-
- КодироватьURL = ПолучитьНастройку("КодировкаURL");
-
- Если ТипЗнч(Значение) = Тип("Массив") Тогда
-
- Значение = OPI_Инструменты.КопироватьКоллекцию(Значение);
-
- Для Н = 0 По Значение.ВГраница() Цикл
- Значение[Н] = ПреобразоватьПараметрВСтроку(Значение[Н]);
- КонецЦикла;
-
- Значение = СтрСоединить(Значение, ",");
-
- Если КодироватьURL Тогда
- Значение = КодироватьСтроку(Значение, СпособКодированияСтроки.URLВКодировкеURL);
- КонецЕсли;
-
- Значение = "[" + Значение + "]";
-
- ИначеЕсли ТипЗнч(Значение) = Тип("Соответствие") Или ТипЗнч(Значение) = Тип("Структура") Тогда
-
- Значение = OPI_Инструменты.КопироватьКоллекцию(Значение);
- ПараметрыJSON = Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Нет, "");
-
- ЗаписьJSON = Новый ЗаписьJSON;
- ЗаписьJSON.УстановитьСтроку(ПараметрыJSON);
-
- ЗаписатьJSON(ЗаписьJSON, Значение);
- Значение = ЗаписьJSON.Закрыть();
-
- ИначеЕсли ТипЗнч(Значение) = Тип("Булево") Тогда
-
- Значение = ?(Значение, "true", "false");
-
- Иначе
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Значение);
-
- Если КодироватьURL Тогда
- Значение = КодироватьСтроку(Значение, СпособКодированияСтроки.КодировкаURL);
- КонецЕсли;
-
- КонецЕсли;
-
- Возврат Значение;
-
-КонецФункции
-
-Функция УстановитьТелоИзДвоичныхДанных(Знач Значение)
-
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Значение, Истина, Ложь);
- ЗапросТело = Значение;
-
- Возврат ЭтотОбъект;
-
-КонецФункции
-
-Функция УстановитьТелоИзСтроки(Знач Значение, Знач ЗаписатьBOM = Ложь)
-
- Если ТипЗнч(Значение) = Тип("ДвоичныеДанные") Тогда
-
- ЗапросТело = Значение;
-
- Иначе
-
- Кодировка = ПолучитьНастройку("КодировкаТелаЗапроса");
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Значение);
- OPI_ПреобразованиеТипов.ПолучитьБулево(ЗаписатьBOM);
-
- ЗапросТело = ПолучитьДвоичныеДанныеИзСтроки(Значение, Кодировка, ЗаписатьBOM);
-
- КонецЕсли;
-
- Возврат ЭтотОбъект;
-
-КонецФункции
-
-Функция РазбитьURL()
-
- ДобавитьЛог("РазбитьURL: разбиение запроса на составные части");
-
- URL = ЗапросURL;
-
- ЗапросЗащищенное = Не СтрНачинаетсяС(ЗапросURL, "http://");
-
- ДобавитьЛог("РазбитьURL: Защищенное = " + Строка(ЗапросЗащищенное));
-
- URL = СтрЗаменить(URL, "https://", "");
- URL = СтрЗаменить(URL, "http://" , "");
-
- Секция = СтрНайти(URL, "#");
-
- Если Секция > 0 Тогда
-
- ЗапросСекция = Прав(URL, СтрДлина(URL) - Секция + 1);
- ДобавитьЛог("РазбитьURL: Секция = " + ЗапросСекция);
-
- URL = Лев(URL, Секция - 1);
-
- КонецЕсли;
-
- Если СтрНайти(URL, "/") = 0 Тогда
- ЗапросАдрес = "";
- ЗапросДомен = URL;
- Иначе
- ЗапросАдрес = Прав(URL, СтрДлина(URL) - СтрНайти(URL, "/", НаправлениеПоиска.СНачала) + 1);
- ЗапросДомен = Лев(URL, СтрНайти(URL, "/", НаправлениеПоиска.СНачала) - 1);
- КонецЕсли;
-
- ДобавитьЛог("РазбитьURL: Адрес = " + ЗапросАдрес);
- ДобавитьЛог("РазбитьURL: Домен = " + ЗапросДомен);
-
- Если СтрНайти(ЗапросДомен, ":") <> 0 Тогда
-
- ХостПорт = СтрРазделить(ЗапросДомен, ":");
- ЗапросДомен = ХостПорт[0];
- ЗапросПорт = ХостПорт[1];
-
- OPI_ПреобразованиеТипов.ПолучитьЧисло(ЗапросПорт);
-
- Иначе
-
- ЗапросПорт = ?(ЗапросЗащищенное, 443, 80);
-
- КонецЕсли;
-
- ДобавитьЛог("РазбитьURL: Порт = " + OPI_Инструменты.ЧислоВСтроку(ЗапросПорт));
-
- Если OPI_Инструменты.ЭтоOneScript() И ЗапросЗащищенное Тогда
- ЗапросСервер = "https://" + ЗапросДомен;
- Иначе
- ЗапросСервер = ЗапросДомен;
- КонецЕсли;
-
- ДобавитьЛог("РазбитьURL: Сервер = " + ЗапросСервер);
-
- Возврат ЭтотОбъект;
-
-КонецФункции
-
-Функция СформироватьЗапрос()
-
- Если Не ЗначениеЗаполнено(ЗапросURL) Тогда
- Возврат Ошибка("Не установлен URL");
- КонецЕсли;
-
- ДобавитьЛог("СформироватьЗапрос: Добавление параметров");
- ДополнитьURLПараметрами();
-
- ДобавитьЛог("СформироватьЗапрос: Создание объекта запроса");
- СоздатьЗапрос();
-
- ДобавитьЛог("СформироватьЗапрос: Создание объекта соединения");
- СоздатьСоединение();
-
- Возврат ЭтотОбъект;
-
-КонецФункции
-
-Функция СоздатьЗапрос()
-
- Заголовки = ПолучитьСтандартныеЗаголовки();
- Запрос = Новый HTTPЗапрос(ЗапросАдресПолный, Заголовки);
-
- Возврат ЭтотОбъект;
-
-КонецФункции
-
-Функция СоздатьСоединение()
-
- Если Не ЗначениеЗаполнено(ЗапросПорт) Тогда
- ЗапросПорт = ?(ЗапросЗащищенное, 443, 80);
- КонецЕсли;
-
- Если ЗапросЗащищенное Тогда
-
- Если OPI_Инструменты.ЭтоOneScript() Тогда
-
- Соединение = Новый HTTPСоединение(ЗапросСервер
- , ЗапросПорт
- , ЗапросПользователь
- , ЗапросПароль
- , ЗапросПрокси
- , ЗапросТаймаут);
-
- Иначе
-
- SSL = Новый ЗащищенноеСоединениеOpenSSL;
- Соединение = Новый HTTPСоединение(ЗапросСервер
- , ЗапросПорт
- , ЗапросПользователь
- , ЗапросПароль
- , ЗапросПрокси
- , ЗапросТаймаут
- , SSL);
-
- КонецЕсли;
-
- Иначе
-
- Соединение = Новый HTTPСоединение(ЗапросСервер
- , ЗапросПорт
- , ЗапросПользователь
- , ЗапросПароль
- , ЗапросПрокси
- , ЗапросТаймаут);
-
- КонецЕсли;
-
- Возврат ЭтотОбъект;
-
-КонецФункции
-
-Функция ДополнитьURLПараметрами()
-
- Если СтрЗаканчиваетсяНа(ЗапросАдрес, "?") Или Не ЗначениеЗаполнено(ЗапросПараметрыURL) Тогда
- ЗнакНачала = "";
- ИначеЕсли СтрНайти(ЗапросАдрес, "?") <> 0 Тогда
- ЗнакНачала = "&";
- Иначе
- ЗнакНачала = "?";
- КонецЕсли;
-
- ЗапросАдресПолный = ЗапросАдрес + ЗнакНачала + ПараметрыЗапросаВСтроку(ЗапросПараметрыURL) + ЗапросСекция;
-
- Возврат ЭтотОбъект;
-
-КонецФункции
-
-Функция ПараметрыЗапросаВСтроку(Знач Параметры)
-
- Если Не ЗначениеЗаполнено(Параметры) Тогда
- Возврат "";
- КонецЕсли;
-
- ДобавитьЛог("ПараметрыЗапросаВСтроку: Получение коллекции КлючЗначение");
- OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(Параметры);
-
- СтрокаПараметров = "";
-
- ДобавитьЛог("ПараметрыЗапросаВСтроку: Добавление параметров");
- Для Каждого Параметр Из Параметры Цикл
-
- ТекущееЗначение = Параметр.Значение;
- ТекущийКлюч = Параметр.Ключ;
-
- Если Не ТипЗнч(ТекущееЗначение) = Тип("Массив") Или Не ПолучитьНастройку("ОтдельныеЭлементыМассивов") Тогда
-
- ЗначениеПараметра = ПреобразоватьПараметрВСтроку(ТекущееЗначение);
- СтрокаПараметров = СтрокаПараметров + Параметр.Ключ + "=" + ЗначениеПараметра + "&";
-
- Иначе
-
- ЗначениеПараметра = РазделитьМассивНаПараметрыURL(ТекущийКлюч, ТекущееЗначение);
- СтрокаПараметров = СтрокаПараметров + ЗначениеПараметра + "&";
-
- КонецЕсли;
-
- КонецЦикла;
-
- СтрокаПараметров = Лев(СтрокаПараметров, СтрДлина(СтрокаПараметров) - 1);
-
- Возврат СтрокаПараметров;
-
-КонецФункции
-
-Функция РазделитьМассивНаПараметрыURL(Знач Ключ, Знач Значение)
-
- КлючМассив = СтрШаблон("%1%2=", Ключ, ?(ПолучитьНастройку("КвадратныеСкобкиМассивов"), "[]", ""));
- Значение = OPI_Инструменты.КопироватьКоллекцию(Значение);
-
- Для Н = 0 По Значение.ВГраница() Цикл
-
- ТекущееЗначение = Значение[Н];
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(ТекущееЗначение);
-
- Если ПолучитьНастройку("КодировкаURL") Тогда
- ТекущееЗначение = КодироватьСтроку(ТекущееЗначение, СпособКодированияСтроки.URLВКодировкеURL);
- КонецЕсли;
-
- Значение.Установить(Н, КлючМассив + ТекущееЗначение);
-
- КонецЦикла;
-
- ПараметрСтрокой = СтрСоединить(Значение, "&");
-
- Возврат ПараметрСтрокой;
-
-КонецФункции
-
-Функция ПолучитьСтандартныеЗаголовки()
-
- Заголовки = Новый Соответствие;
-
- Заголовки.Вставить("Accept" , "*/*");
- Заголовки.Вставить("Connection" , "keep-alive");
- Заголовки.Вставить("Accept-Charset" , "utf-8");
-
- Возврат Заголовки;
-
-КонецФункции
-
-Функция ДополнитьЗаголовки()
-
- Если Запрос.Заголовки.Получить("Content-Length") = Неопределено Тогда
-
- ДобавитьЛог("ДополнитьЗаголовки: установка Content-Length");
-
- Если ЗапросФайлТела = Неопределено Тогда
-
- Если ЗапросТело = Неопределено Тогда
- РазмерТела = 0;
- Иначе
- РазмерТела = ЗапросТело.Размер();
- КонецЕсли;
-
- Иначе
-
- ФайлТела = Новый Файл(ЗапросФайлТела);
- РазмерТела = ФайлТела.Размер();
-
- КонецЕсли;
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(РазмерТела);
- Запрос.Заголовки.Вставить("Content-Length" , РазмерТела);
-
- КонецЕсли;
-
- ДополнитьЗаголовкиАвторизации();
-
- Если ПолучитьНастройку("gzip") Тогда
- ДобавитьЛог("ДополнитьЗаголовки: установка заголовка ожидания gzip");
- Запрос.Заголовки.Вставить("Accept-Encoding", "gzip");
- КонецЕсли;
-
- Если ЗначениеЗаполнено(ЗапросТипДанных) Тогда
- Запрос.Заголовки.Вставить("Content-Type", ЗапросТипДанных);
- КонецЕсли;
-
- Если ТипЗнч(ЗапросЗаголовки) = Тип("Соответствие") Тогда
-
- Для Каждого Заголовок Из ЗапросЗаголовки Цикл
- Запрос.Заголовки.Вставить(Заголовок.Ключ, Заголовок.Значение);
- КонецЦикла;
-
- КонецЕсли;
-
- Возврат ЭтотОбъект;
-
-КонецФункции
-
-Функция ДополнитьЗаголовкиАвторизации()
-
- Если Не ЗначениеЗаполнено(AuthВид) Тогда
- Возврат ЭтотОбъект;
- КонецЕсли;
-
- Если AuthВид = "aws4" Тогда
-
- ДобавитьЛог("ДополнитьЗаголовкиАвторизации: формирование заголовка AWS4 авторизации");
- ДобавитьAWS4();
-
- ИначеЕсли AuthВид = "oauth1" Тогда
-
- ДобавитьЛог("ДополнитьЗаголовкиАвторизации: формирование заголовка OAuth V1 авторизации");
- ДобавитьЗаголовокOAuthV1();
-
- Иначе
-
- ДобавитьЛог("ДополнитьЗаголовкиАвторизации: формирование заголовка Bearer авторизации");
- Запрос.Заголовки.Вставить("Authorization", СтрШаблон("Bearer %1", AuthДанные));
-
- КонецЕсли;
-
- Возврат ЭтотОбъект;
-
-КонецФункции
-
-Функция УстановитьТелоЗапроса()
-
- Если Multipart Тогда
- ЗвершитьЗаписьMultipart();
- КонецЕсли;
-
- Если ЗначениеЗаполнено(ЗапросФайлТела) Тогда
- Запрос.УстановитьИмяФайлаТела(ЗапросФайлТела);
- Иначе
-
- Если ТипЗнч(ЗапросТело) = Тип("ДвоичныеДанные") Тогда
- Запрос.УстановитьТелоИзДвоичныхДанных(ЗапросТело);
- КонецЕсли;
-
- КонецЕсли;
-
- Возврат ЭтотОбъект;
-
-КонецФункции
-
-Функция ВызватьМетод(Знач ЧислоПереадресаций = 0, Знач Принудительно = Ложь)
-
- OPI_ПреобразованиеТипов.ПолучитьБулево(Принудительно);
-
- Если (Запрос = Неопределено Или Соединение = Неопределено) И Не Принудительно Тогда
- Возврат Ошибка("ВызватьМетод: запрос не был сформирован перед выполнением");
- КонецЕсли;
-
- Если ЗначениеЗаполнено(ЗапросВыходнойФайл) Тогда
- Ответ = Соединение.ВызватьHTTPМетод(ЗапросМетод, Запрос, ЗапросВыходнойФайл);
- Иначе
- Ответ = Соединение.ВызватьHTTPМетод(ЗапросМетод, Запрос);
- КонецЕсли;
-
- Если ЭтоПереадресация(Ответ) Тогда
-
- МаксимальноеЧислоПереадресаций = 5;
-
- Если ЧислоПереадресаций = МаксимальноеЧислоПереадресаций Тогда
- Ошибка("ВызватьМетод: превышено число переадресаций");
- Возврат ЭтотОбъект;
- КонецЕсли;
-
- URL = Ответ.Заголовки["Location"];
- УстановитьURL(URL);
-
- СоздатьСоединение();
- Запрос.АдресРесурса = ЗапросАдрес;
-
- ВызватьМетод(ЧислоПереадресаций + 1, Принудительно);
-
- КонецЕсли;
-
- Возврат ЭтотОбъект;
-
-КонецФункции
-
-Функция ПолучитьТелоОтвета()
-
- НужнаРаспаковка = Ложь;
-
- Для Каждого ЗаголовокОтвета Из Ответ.Заголовки Цикл
-
- КлючЗаголовка = ЗаголовокОтвета.Ключ;
- ЗначениеЗаголовка = ЗаголовокОтвета.Значение;
-
- Если нРег(КлючЗаголовка) = "content-encoding" Тогда
- Если нРег(ЗначениеЗаголовка) = "gzip" Тогда
- НужнаРаспаковка = Истина;
- Прервать;
- КонецЕсли;
- КонецЕсли;
-
- КонецЦикла;
-
- Если НужнаРаспаковка Тогда
- Данные = РаспаковатьОтвет(Ответ);
- Иначе
- Данные = ПолучитьТелоОтветаКакДвоичныеДанные();
- КонецЕсли;
-
- Данные = ?(ТипЗнч(Данные) = Тип("HTTPОтвет"), ПолучитьТелоОтветаКакДвоичныеДанные(), Данные);
-
- Если Не ТипЗнч(Данные) = Тип("ДвоичныеДанные") Тогда
- OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Данные);
- КонецЕсли;
-
- Возврат Данные;
-
-КонецФункции
-
-Функция ЭтоПереадресация(Знач Ответ)
-
- Переадресация = 300;
- ОшибкаЗапроса = 400;
-
- ЭтоПереадресация = Ответ.КодСостояния >= Переадресация И Ответ.КодСостояния < ОшибкаЗапроса И ЗначениеЗаполнено(
- Ответ.Заголовки["Location"]);
-
- Возврат ЭтоПереадресация;
-
-КонецФункции
-
-Функция ПолучитьТелоОтветаКакДвоичныеДанные()
-
- ПотокТела = Ответ.ПолучитьТелоКакПоток();
-
- Если ПотокТела = Неопределено Тогда
- Возврат ПолучитьДвоичныеДанныеИзСтроки("");
- КонецЕсли;
-
- ЧтениеДанных = Новый ЧтениеДанных(ПотокТела);
- РезультатЧтения = ЧтениеДанных.Прочитать();
- Данные = РезультатЧтения.ПолучитьДвоичныеДанные();
-
- ЧтениеДанных.Закрыть();
- ПотокТела.Закрыть();
-
- Возврат Данные;
-
-КонецФункции
-
-Функция ПолучитьТелоОтветаКакДанныеИлиПуть()
-
- ИмяФайлаТела = Ответ.ПолучитьИмяФайлаТела();
-
- Если Не ЗначениеЗаполнено(ИмяФайлаТела) Тогда
- Возврат ПолучитьТелоОтветаКакДвоичныеДанные();
- Иначе
- Возврат ИмяФайлаТела;
- КонецЕсли;
-
-КонецФункции
-
-Функция ПолучитьТелоЗапросаКакДвоичныеДанные()
-
- Если ЗначениеЗаполнено(ЗапросФайлТела) Тогда
- Данные = Новый ДвоичныеДанные(ЗапросФайлТела);
- Иначе
- Данные = ЗапросТело;
- КонецЕсли;
-
- Если Данные = Неопределено Тогда
- Данные = ПолучитьДвоичныеДанныеИзСтроки("");
- КонецЕсли;
-
- Возврат Данные;
-
-КонецФункции
-
-Процедура ОтменитьЗаписьMultipart()
-
- Если Не Multipart Тогда
- Возврат;
- КонецЕсли;
-
- ДобавитьЛог("ОтменитьЗаписьMultipart: Удаление записанных данных");
- Multipart = Ложь;
-
- Попытка
- ЗапросЗаписьДанных.Закрыть();
- Исключение
- ДобавитьЛог("ОтменитьЗаписьMultipart: Не удалось закрыть запись. Возможно, она уже была закрыта");
- КонецПопытки;
-
- Если ЗначениеЗаполнено(ЗапросФайлТела) Тогда
-
- Попытка
-
- УдалитьФайлы(ЗапросФайлТела);
- ДобавитьЛог("ОтменитьЗаписьMultipart: Файл тела удален");
-
- Исключение
- ДобавитьЛог("ОтменитьЗаписьMultipart: Не удалось удалить файл тела. Возможно, он уже был удален");
- КонецПопытки;
-
- Иначе
-
- Если ТипЗнч(ЗапросПотокТела) = Тип("ПотокВПамяти") Тогда
-
- Попытка
- ЗапросПотокТела.Закрыть();
- Исключение
- ДобавитьЛог("ОтменитьЗаписьMultipart: Не удалось закрыть поток. Возможно, он уже был закрыт");
- КонецПопытки;
-
- КонецЕсли;
-
- КонецЕсли;
-
- ЗапросЗаписьДанных = Неопределено;
- ЗапросФайлТела = Неопределено;
-
-КонецПроцедуры
-
-Процедура ЗаписатьДвоичныеДанные(ЗаписьДанных, Знач ДвоичныеДанные)
-
- РазмерЧасти = 268435456;
- ПрочитанноБайт = 0;
- ТекущаяПозиция = 0;
- ОбщийРазмер = ДвоичныеДанные.Размер();
-
- Пока ПрочитанноБайт < ОбщийРазмер Цикл
-
- ЧтениеДанных = Новый ЧтениеДанных(ДвоичныеДанные);
- ПрочитанноБайт = ЧтениеДанных.Пропустить(ТекущаяПозиция);
- Результат = ЧтениеДанных.Прочитать(РазмерЧасти);
- ТекущиеДанные = Результат.ПолучитьДвоичныеДанные();
- РазмерТекущих = ТекущиеДанные.Размер();
-
- Если Не ЗначениеЗаполнено(ТекущиеДанные) Тогда
- Прервать;
- КонецЕсли;
-
- ЗаписьДанных.Записать(ТекущиеДанные);
-
- // !OInt ОсвободитьОбъект(ТекущиеДанные);
- // !OInt ВыполнитьСборкуМусора();
-
- ТекущаяПозиция = ТекущаяПозиция + РазмерТекущих;
-
- КонецЦикла;
-
-КонецПроцедуры
-
-Процедура ЗвершитьЗаписьMultipart()
-
- Попытка
- ЗапросЗаписьДанных.ЗаписатьСтроку("--" + Boundary + "--" + РазделительСтрок);
- ЗапросЗаписьДанных.Закрыть();
- Исключение
- ДобавитьЛог("ЗвершитьЗаписьMultipart: Не удалось закрыть запись. Возможно, она уже была закрыта");
- КонецПопытки;
-
- Если ТипЗнч(ЗапросПотокТела) = Тип("ПотокВПамяти") Тогда
- ЗапросТело = ЗапросПотокТела.ЗакрытьИПолучитьДвоичныеДанные();
- КонецЕсли;
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область GZip
-
-// Описание структур см. здесь https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT
-// Источник: https://github.com/vbondarevsky/Connector
-
-// Коннектор: удобный HTTP-клиент для 1С:Предприятие 8
-//
-// Copyright 2017-2023 Vladimir Bondarevskiy
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// URL: https://github.com/vbondarevsky/Connector
-// e-mail: vbondarevsky@gmail.com
-// Версия: 2.4.8
-//
-// Требования: платформа 1С версии 8.3.10 и выше
-
-// BSLLS:MagicNumber-off
-
-Функция РаспаковатьОтвет(Ответ)
-
- Попытка
- Возврат ПрочитатьGZip(ПолучитьТелоОтветаКакДанныеИлиПуть());
- Исключение
- Возврат Ответ;
- КонецПопытки;
-
-КонецФункции
-
-Функция ПрочитатьGZip(СжатыеДанные)
-
- РазмерПрефиксаGZip = 10;
- РазмерПостфиксаGZip = 8;
-
- РазмерДД = ZipРазмерDD();
- РазмерСДХ = ZipРазмерCDH();
- РазмерЕСД = ZipРазмерEOCD();
- РазмерЛФХ = ZipРазмерLFH();
-
- ЧтениеДанных = Новый ЧтениеДанных(СжатыеДанные);
- ЧтениеДанных.Пропустить(РазмерПрефиксаGZip);
- РазмерСжатыхДанных = ЧтениеДанных.ИсходныйПоток().Размер() - РазмерПрефиксаGZip - РазмерПостфиксаGZip;
-
- ПотокZip = Новый ПотокВПамяти(РазмерЛФХ + РазмерСжатыхДанных + РазмерДД + РазмерСДХ + РазмерЕСД);
-
- ЗаписьДанных = Новый ЗаписьДанных(ПотокZip);
- ЗаписьДанных.ЗаписатьБуферДвоичныхДанных(ZipLFH());
- ЧтениеДанных.КопироватьВ(ЗаписьДанных, РазмерСжатыхДанных);
-
- ЗаписьДанных.Закрыть();
- ЗаписьДанных = Новый ЗаписьДанных(ПотокZip);
-
- CRC32 = ЧтениеДанных.ПрочитатьЦелое32();
- РазмерНесжатыхДанных = ЧтениеДанных.ПрочитатьЦелое32();
- ЧтениеДанных.Закрыть();
-
- ЗаписьДанных.ЗаписатьБуферДвоичныхДанных(ZipDD(CRC32 , РазмерСжатыхДанных, РазмерНесжатыхДанных));
- ЗаписьДанных.ЗаписатьБуферДвоичныхДанных(ZipCDH(CRC32, РазмерСжатыхДанных, РазмерНесжатыхДанных));
- ЗаписьДанных.ЗаписатьБуферДвоичныхДанных(ZipEOCD(РазмерСжатыхДанных));
- ЗаписьДанных.Закрыть();
-
- Возврат ПрочитатьZip(ПотокZip);
-
-КонецФункции
-
-Функция ПрочитатьZip(СжатыеДанные, ТекстОшибки = Неопределено)
-
- Каталог = ПолучитьИмяВременногоФайла();
- ЧтениеZip = Новый ЧтениеZipФайла(СжатыеДанные);
- ИмяФайла = ЧтениеZip.Элементы[0].Имя;
- Попытка
- ЧтениеZip.Извлечь(ЧтениеZip.Элементы[0], Каталог, РежимВосстановленияПутейФайловZIP.НеВосстанавливать);
- Исключение
- // Игнорируем проверку целостности архива, просто читаем результат
- ТекстОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
- КонецПопытки;
- ЧтениеZip.Закрыть();
-
- Результат = Новый ДвоичныеДанные(Каталог + ПолучитьРазделительПути() + ИмяФайла);
- УдалитьФайлы(Каталог);
-
- Возврат Результат;
-
-КонецФункции
-
-Функция ZipРазмерLFH()
-
- Возврат 34;
-
-КонецФункции
-
-Функция ZipРазмерDD()
-
- Возврат 16;
-
-КонецФункции
-
-Функция ZipРазмерCDH()
-
- Возврат 50;
-
-КонецФункции
-
-Функция ZipРазмерEOCD()
-
- Возврат 22;
-
-КонецФункции
-
-Функция ZipLFH()
-
- // Local file header
- Буфер = Новый БуферДвоичныхДанных(ZipРазмерLFH());
- Буфер.ЗаписатьЦелое32(0, 67324752); // signature 0x04034b50
- Буфер.ЗаписатьЦелое16(4, 20); // version
- Буфер.ЗаписатьЦелое16(6, 10); // bit flags
- Буфер.ЗаписатьЦелое16(8, 8); // compression method
- Буфер.ЗаписатьЦелое16(10, 0); // time
- Буфер.ЗаписатьЦелое16(12, 0); // date
- Буфер.ЗаписатьЦелое32(14, 0); // crc-32
- Буфер.ЗаписатьЦелое32(18, 0); // compressed size
- Буфер.ЗаписатьЦелое32(22, 0); // uncompressed size
- Буфер.ЗаписатьЦелое16(26, 4); // filename legth - "data"
- Буфер.ЗаписатьЦелое16(28, 0); // extra field length
- Буфер.Записать(30, ПолучитьБуферДвоичныхДанныхИзСтроки("data", "ascii", Ложь));
-
- Возврат Буфер;
-
-КонецФункции
-
-Функция ZipDD(CRC32, РазмерСжатыхДанных, РазмерНесжатыхДанных)
-
- // Data descriptor
- Буфер = Новый БуферДвоичныхДанных(ZipРазмерDD());
- Буфер.ЗаписатьЦелое32(0, 134695760);
- Буфер.ЗаписатьЦелое32(4, CRC32);
- Буфер.ЗаписатьЦелое32(8, РазмерСжатыхДанных);
- Буфер.ЗаписатьЦелое32(12, РазмерНесжатыхДанных);
-
- Возврат Буфер;
-
-КонецФункции
-
-Функция ZipCDH(CRC32, РазмерСжатыхДанных, РазмерНесжатыхДанных)
-
- // Central directory header
- Буфер = Новый БуферДвоичныхДанных(ZipРазмерCDH());
- Буфер.ЗаписатьЦелое32(0, 33639248); // signature 0x02014b50
- Буфер.ЗаписатьЦелое16(4, 798); // version made by
- Буфер.ЗаписатьЦелое16(6, 20); // version needed to extract
- Буфер.ЗаписатьЦелое16(8, 10); // bit flags
- Буфер.ЗаписатьЦелое16(10, 8); // compression method
- Буфер.ЗаписатьЦелое16(12, 0); // time
- Буфер.ЗаписатьЦелое16(14, 0); // date
- Буфер.ЗаписатьЦелое32(16, CRC32); // crc-32
- Буфер.ЗаписатьЦелое32(20, РазмерСжатыхДанных); // compressed size
- Буфер.ЗаписатьЦелое32(24, РазмерНесжатыхДанных); // uncompressed size
- Буфер.ЗаписатьЦелое16(28, 4); // file name length
- Буфер.ЗаписатьЦелое16(30, 0); // extra field length
- Буфер.ЗаписатьЦелое16(32, 0); // file comment length
- Буфер.ЗаписатьЦелое16(34, 0); // disk number start
- Буфер.ЗаписатьЦелое16(36, 0); // internal file attributes
- Буфер.ЗаписатьЦелое32(38, 2176057344); // external file attributes
- Буфер.ЗаписатьЦелое32(42, 0); // relative offset of local header
- Буфер.Записать(46, ПолучитьБуферДвоичныхДанныхИзСтроки("data", "ascii", Ложь));
-
- Возврат Буфер;
-
-КонецФункции
-
-Функция ZipEOCD(РазмерСжатыхДанных)
-
- // End of central directory
- РазмерCDH = 50;
- Буфер = Новый БуферДвоичныхДанных(ZipРазмерEOCD());
- Буфер.ЗаписатьЦелое32(0, 101010256); // signature 0x06054b50
- Буфер.ЗаписатьЦелое16(4, 0); // number of this disk
- Буфер.ЗаписатьЦелое16(6, 0); // number of the disk with the start of the central directory
- Буфер.ЗаписатьЦелое16(8, 1); // total number of entries in the central directory on this disk
- Буфер.ЗаписатьЦелое16(10, 1); // total number of entries in the central directory
- Буфер.ЗаписатьЦелое32(12, РазмерCDH); // size of the central directory
- // offset of start of central directory with respect to the starting disk number
- Буфер.ЗаписатьЦелое32(16, ZipРазмерLFH() + РазмерСжатыхДанных + ZipРазмерDD());
- Буфер.ЗаписатьЦелое16(20, 0); // the starting disk number
-
- Возврат Буфер;
-
-КонецФункции
-
-// BSLLS:MagicNumber-on
-
-#КонецОбласти
-
-#Область AWS4
-
-Функция ДобавитьAWS4()
-
- ЗаголовокАвторизации = СоздатьЗаголовокАвторизации();
-
- Запрос.Заголовки.Вставить("Authorization", ЗаголовокАвторизации);
-
- Возврат ЭтотОбъект;
-
-КонецФункции
-
-Функция СоздатьЗаголовокАвторизации()
-
- AccessKey = AuthДанные["AccessKey"];
- ТекущаяДата = ТекущаяУниверсальнаяДата();
-
- Запрос.Заголовки.Вставить("x-amz-date", OPI_Инструменты.ВременнаяМеткаISO(ТекущаяДата));
- Запрос.Заголовки.Вставить("Host" , Соединение.Сервер);
-
- ОсновныеЧасти = ПолучитьОсновныеСоставляющиеПодписи(ТекущаяДата);
-
- Скоуп = ОсновныеЧасти["Скоуп"];
- Сигнатура = ОсновныеЧасти["Сигнатура"];
- КлючиЗаголовков = ОсновныеЧасти["КлючиЗаголовков"];
-
- ЗаголовокАвторизации = СформироватьЗаголовокАвторизации(AccessKey, Скоуп, Сигнатура, КлючиЗаголовков);
-
- Возврат ЗаголовокАвторизации;
-
-КонецФункции
-
-Функция ПолучитьОсновныеСоставляющиеПодписи(Знач ТекущаяДата)
-
- SecretKey = AuthДанные["SecretKey"];
- Region = AuthДанные["Region"];
- Service = AuthДанные["Service"];
-
- КлючПодписи = ПолучитьКлючПодписи(SecretKey, Region, Service, ТекущаяДата);
- КаноническийЗапрос = СоздатьКаноническийЗапрос();
- Скоуп = СоздатьСкоуп(Region, Service, ТекущаяДата);
- СтрокаДляПодписи = СоздатьСтрокуПодписи(КаноническийЗапрос, Скоуп, ТекущаяДата);
-
- Сигнатура = OPI_Криптография.HMAC(КлючПодписи, СтрокаДляПодписи, "SHA256");
- Сигнатура = нРег(ПолучитьHexСтрокуИзДвоичныхДанных(Сигнатура));
-
- КлючиЗаголовков = ПолучитьСтрокуКлючейЗаголовков();
-
- СтруктураЧастей = Новый Структура;
-
- СтруктураЧастей.Вставить("Скоуп" , Скоуп);
- СтруктураЧастей.Вставить("Сигнатура" , Сигнатура);
- СтруктураЧастей.Вставить("КлючиЗаголовков", КлючиЗаголовков);
-
- Возврат СтруктураЧастей;
-
-КонецФункции
-
-Функция СформироватьЗаголовокАвторизации(Знач AccessKey, Знач Скоуп, Знач Сигнатура, Знач КлючиЗаголовков)
-
- ШаблонЗаголовка = "AWS4-HMAC-SHA256 "
- + "Credential=%1/%2, "
- + "SignedHeaders=%3, "
- + "Signature=%4";
-
- ЗаголовокАвторизации = СтрШаблон(ШаблонЗаголовка, AccessKey, Скоуп, КлючиЗаголовков, Сигнатура);
-
- Возврат ЗаголовокАвторизации;
-
-КонецФункции
-
-Функция ПолучитьКлючПодписи(Знач СекретныйКлюч, Знач Регион, Знач Сервис, Знач ТекущаяДата)
-
- СекретныйКлюч = ПолучитьДвоичныеДанныеИзСтроки("AWS4" + СекретныйКлюч);
- ДанныеДата = ПолучитьДвоичныеДанныеИзСтроки(Формат(ТекущаяДата, "ДФ=yyyyMMdd;"));
- Регион = ПолучитьДвоичныеДанныеИзСтроки(Регион);
- Сервис = ПолучитьДвоичныеДанныеИзСтроки(Сервис);
- AWSЗапрос = ПолучитьДвоичныеДанныеИзСтроки("aws4_request");
- SHA256_ = "SHA256";
-
- КлючДанных = OPI_Криптография.HMAC(СекретныйКлюч, ДанныеДата, SHA256_);
- КлючРегиона = OPI_Криптография.HMAC(КлючДанных, Регион, SHA256_);
- КлючСервиса = OPI_Криптография.HMAC(КлючРегиона, Сервис, SHA256_);
-
- ФинальныйКлюч = OPI_Криптография.HMAC(КлючСервиса, AWSЗапрос, SHA256_);
-
- Возврат ФинальныйКлюч;
-
-КонецФункции
-
-Функция СоздатьКаноническийЗапрос()
-
- ШаблонЗапроса = "";
- ТелоЗапроса = ПолучитьТелоЗапросаКакДвоичныеДанные();
- ХешСумма = OPI_Криптография.Хеш(ТелоЗапроса, ХешФункция.SHA256);
- ЧислоЧастей = 6;
-
- Запрос.Заголовки.Вставить("x-amz-content-sha256", нРег(ПолучитьHexСтрокуИзДвоичныхДанных(ХешСумма)));
-
- Для Н = 1 По ЧислоЧастей Цикл
-
- ШаблонЗапроса = ШаблонЗапроса + "%" + Строка(Н) + ?(Н = ЧислоЧастей, "", Символы.ПС);
-
- КонецЦикла;
-
- Метод = вРег(ЗапросМетод);
- СтрокаURI = ПолучитьСтрокуURI();
- СтрокаПараметров = ПолучитьСтрокуПараметров();
- СтрокаЗаголовков = ПолучитьСтрокуЗаголовков();
- СтрокаКлючей = ПолучитьСтрокуКлючейЗаголовков();
-
- СтрокаХэша = нРег(ПолучитьHexСтрокуИзДвоичныхДанных(ХешСумма));
-
- КаноническийЗапрос = СтрШаблон(ШаблонЗапроса
- , Метод
- , СтрокаURI
- , СтрокаПараметров
- , СтрокаЗаголовков
- , СтрокаКлючей
- , СтрокаХэша);
-
- Возврат КаноническийЗапрос;
-
-КонецФункции
-
-Функция СоздатьСкоуп(Знач Регион, Знач Сервис, Знач ТекущаяДата)
-
- ДатаОбычная = Формат(ТекущаяДата, "ДФ=yyyyMMdd;");
-
- Скоуп = Новый Массив;
- Скоуп.Добавить(ДатаОбычная);
- Скоуп.Добавить(Регион);
- Скоуп.Добавить(Сервис);
- Скоуп.Добавить("aws4_request");
-
- СкоупСтрокой = СтрСоединить(Скоуп, "/");
-
- Возврат СкоупСтрокой;
-
-КонецФункции
-
-Функция СоздатьСтрокуПодписи(Знач КаноническийЗапрос, Знач Скоуп, Знач ТекущаяДата)
-
- ШаблонСтроки = "";
- Алгоритм = "AWS4-HMAC-SHA256";
- ДатаISO = OPI_Инструменты.ВременнаяМеткаISO(ТекущаяДата);
- ЧислоЧастей = 4;
-
- КаноническийЗапрос = ПолучитьДвоичныеДанныеИзСтроки(КаноническийЗапрос);
- КаноническийЗапрос = OPI_Криптография.Хеш(КаноническийЗапрос, ХешФункция.SHA256);
- КаноническийЗапрос = нРег(ПолучитьHexСтрокуИзДвоичныхДанных(КаноническийЗапрос));
-
- Для Н = 1 По ЧислоЧастей Цикл
-
- ШаблонСтроки = ШаблонСтроки + "%" + Строка(Н) + ?(Н = ЧислоЧастей, "", Символы.ПС);
-
- КонецЦикла;
-
- СтрокаПодписи = СтрШаблон(ШаблонСтроки, Алгоритм, ДатаISO, Скоуп, КаноническийЗапрос);
- СтрокаПодписи = ПолучитьДвоичныеДанныеИзСтроки(СтрокаПодписи);
-
- Возврат СтрокаПодписи;
-
-КонецФункции
-
-Функция ПолучитьСтрокуКлючейЗаголовков()
-
- СписокЗаголовков = Новый СписокЗначений;
-
- Для Каждого Заголовок Из Запрос.Заголовки Цикл
-
- ТекущийКлюч = Заголовок.Ключ;
- ТекущийКлючН = нРег(ТекущийКлюч);
-
- Если Не СтрНачинаетсяС(ТекущийКлючН, "host") И Не СтрНачинаетсяС(ТекущийКлючН, "x-amz") Тогда
- Продолжить;
- КонецЕсли;
-
- СтрокаЗаголовка = нРег(ТекущийКлюч);
- СписокЗаголовков.Добавить(СтрокаЗаголовка);
-
- КонецЦикла;
-
- СписокЗаголовков.СортироватьПоЗначению();
-
- СтрокаЗаголовков = СтрСоединить(СписокЗаголовков.ВыгрузитьЗначения(), ";");
-
- Возврат СтрокаЗаголовков;
-
-КонецФункции
-
-Функция ПолучитьСтрокуURI()
-
- URI = Запрос.АдресРесурса;
- URI = ?(СтрНачинаетсяС(URI, "/"), URI, "/" + URI);
-
- НачалоПараметров = СтрНайти(URI, "?");
-
- Если НачалоПараметров <> 0 Тогда
- URI = Лев(URI, НачалоПараметров - 1);
- КонецЕсли;
-
- Возврат URI;
-
-КонецФункции
-
-Функция ПолучитьСтрокуПараметров()
-
- URI = Запрос.АдресРесурса;
- НачалоПараметров = СтрНайти(URI, "?");
-
- Если НачалоПараметров = 0 Тогда
-
- СтрокаПараметров = "";
-
- Иначе
-
- ДлинаURI = СтрДлина(URI);
- СтрокаПараметров = Прав(URI, ДлинаURI - НачалоПараметров);
- ОбработатьСтрокуПараметровЗапроса(СтрокаПараметров);
-
- КонецЕсли;
-
- Возврат СтрокаПараметров;
-
-КонецФункции
-
-Функция ПолучитьСтрокуЗаголовков()
-
- СписокЗаголовков = Новый СписокЗначений;
-
- Для Каждого Заголовок Из Запрос.Заголовки Цикл
-
- ТекущийКлюч = Заголовок.Ключ;
- ТекущийКлючН = нРег(ТекущийКлюч);
-
- Если Не СтрНачинаетсяС(ТекущийКлючН, "host") И Не СтрНачинаетсяС(ТекущийКлючН, "x-amz") Тогда
- Продолжить;
- КонецЕсли;
-
- СтрокаЗаголовка = нРег(ТекущийКлюч) + ":" + Заголовок.Значение;
- СписокЗаголовков.Добавить(СтрокаЗаголовка);
-
- КонецЦикла;
-
- СписокЗаголовков.СортироватьПоЗначению();
-
- СтрокаЗаголовков = СтрСоединить(СписокЗаголовков.ВыгрузитьЗначения(), Символы.ПС);
- СтрокаЗаголовков = СтрокаЗаголовков + Символы.ПС;
-
- Возврат СтрокаЗаголовков;
-
-КонецФункции
-
-Процедура ОбработатьСтрокуПараметровЗапроса(СтрокаПараметров)
-
- МассивПараметров = СтрРазделить(СтрокаПараметров, "&");
- СписокПараметров = Новый СписокЗначений();
- СписокПараметров.ЗагрузитьЗначения(МассивПараметров);
-
- СписокПараметров.СортироватьПоЗначению();
- МассивПараметров = СписокПараметров.ВыгрузитьЗначения();
-
- Для Н = 0 По МассивПараметров.ВГраница() Цикл
-
- ПараметрЗапроса = МассивПараметров[Н];
-
- Если СтрНайти(ПараметрЗапроса, "=") = 0 Тогда
- МассивПараметров[Н] = ПараметрЗапроса + "=";
- КонецЕсли;
-
- КонецЦикла;
-
- СтрокаПараметров = СтрСоединить(МассивПараметров, "&");
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#Область OAuth
-
-Функция ДобавитьЗаголовокOAuthV1()
-
- ДобавитьЛог("ДобавитьЗаголовокOAuthV1: начало формирования заголовка");
-
- OAuthАлгоритм = AuthДанные["OAuthАлгоритм"];
- OAuthХешФункция = AuthДанные["OAuthХешФункция"];
- OAuthToken = AuthДанные["OAuthToken"];
- OAuthSecret = AuthДанные["OAuthSecret"];
- OAuthConsumerKey = AuthДанные["OAuthConsumerKey"];
- OAuthConsumerSecret = AuthДанные["OAuthConsumerSecret"];
- OAuthВерсияAPI = AuthДанные["OAuthВерсияAPI"];
-
- МетодХэширования = OAuthАлгоритм + "-" + OAuthХешФункция;
- ТекущаяДата = OPI_Инструменты.ПолучитьТекущуюДату();
- ЗаголовокАвторизации = "";
- СтрокаСигнатуры = "";
- Подпись = "";
-
- ТекущаяДатаUNIX = OPI_Инструменты.UNIXTime(ТекущаяДата);
- ТекущаяДатаUNIX = OPI_Инструменты.ЧислоВСтроку(ТекущаяДатаUNIX);
-
- ТаблицаПараметров = Новый ТаблицаЗначений;
- ТаблицаПараметров.Колонки.Добавить("Ключ");
- ТаблицаПараметров.Колонки.Добавить("Значение");
-
- Если ПолучитьНастройку("ПоляТелаВOAuth") Тогда
-
- ДобавитьЛог("ДобавитьЗаголовокOAuthV1: добавление полей тела в строку для подписи");
-
- Для Каждого Поле Из ЗапросТелоКоллекция Цикл
-
- ТекущееЗначение = Поле.Значение;
-
- Если ТипЗнч(ТекущееЗначение) = Тип("ДвоичныеДанные") Тогда
- Продолжить;
- Иначе
- OPI_ПреобразованиеТипов.ПолучитьСтроку(ТекущееЗначение);
- КонецЕсли;
-
- НоваяСтрока = ТаблицаПараметров.Добавить();
- НоваяСтрока.Ключ = Поле.Ключ;
- НоваяСтрока.Значение = ТекущееЗначение;
-
- КонецЦикла;
- КонецЕсли;
-
- Если ЗначениеЗаполнено(ЗапросПараметрыURL) Тогда
-
- ДобавитьЛог("ДобавитьЗаголовокOAuthV1: добавление параметров URL в строку для подписи");
-
- Для Каждого ПараметрURL Из ЗапросПараметрыURL Цикл
-
- НоваяСтрока = ТаблицаПараметров.Добавить();
- НоваяСтрока.Ключ = ПараметрURL.Ключ;
- НоваяСтрока.Значение = ПараметрURL.Значение;
-
- КонецЦикла;
-
- КонецЕсли;
-
- ДобавитьЛог("ДобавитьЗаголовокOAuthV1: дополнение строки для подписи учетными данными");
-
- НоваяСтрока = ТаблицаПараметров.Добавить();
- НоваяСтрока.Ключ = "oauth_consumer_key";
- НоваяСтрока.Значение = OAuthConsumerKey;
-
- НоваяСтрока = ТаблицаПараметров.Добавить();
- НоваяСтрока.Ключ = "oauth_token";
- НоваяСтрока.Значение = OAuthToken;
-
- НоваяСтрока = ТаблицаПараметров.Добавить();
- НоваяСтрока.Ключ = "oauth_version";
- НоваяСтрока.Значение = OAuthВерсияAPI;
-
- НоваяСтрока = ТаблицаПараметров.Добавить();
- НоваяСтрока.Ключ = "oauth_signature_method";
- НоваяСтрока.Значение = МетодХэширования;
-
- НоваяСтрока = ТаблицаПараметров.Добавить();
- НоваяСтрока.Ключ = "oauth_timestamp";
- НоваяСтрока.Значение = ТекущаяДатаUNIX;
-
- НоваяСтрока = ТаблицаПараметров.Добавить();
- НоваяСтрока.Ключ = "oauth_nonce";
- НоваяСтрока.Значение = ТекущаяДатаUNIX;
-
- Для Каждого СтрокаТаблицы Из ТаблицаПараметров Цикл
-
- СтрокаТаблицы.Ключ = КодироватьСтроку(СтрокаТаблицы.Ключ, СпособКодированияСтроки.КодировкаURL);
- СтрокаТаблицы.Значение = КодироватьСтроку(СтрокаТаблицы.Значение, СпособКодированияСтроки.КодировкаURL);
-
- КонецЦикла;
-
- ТаблицаПараметров.Сортировать("Ключ");
-
- Для Каждого СтрокаТаблицы Из ТаблицаПараметров Цикл
-
- СтрокаСигнатуры = СтрокаСигнатуры
- + СтрокаТаблицы.Ключ
-
- + "="
- + СтрокаТаблицы.Значение
- + "&";
-
- КонецЦикла;
-
- СтрокаСигнатуры = Лев(СтрокаСигнатуры, СтрДлина(СтрокаСигнатуры) - 1);
- СтрокаСигнатуры = вРег(ЗапросМетод)
- + "&"
- + КодироватьСтроку(ЗапросURL , СпособКодированияСтроки.КодировкаURL)
- + "&"
- + КодироватьСтроку(СтрокаСигнатуры, СпособКодированияСтроки.КодировкаURL);
-
- Подпись = КодироватьСтроку(OAuthConsumerSecret, СпособКодированияСтроки.КодировкаURL)
- + "&"
- + КодироватьСтроку(OAuthSecret, СпособКодированияСтроки.КодировкаURL);
-
- ПодписьДД = ПолучитьДвоичныеДанныеИзСтроки(Подпись);
- СигнатураДД = ПолучитьДвоичныеДанныеИзСтроки(СтрокаСигнатуры);
-
- ДобавитьЛог("ДобавитьЗаголовокOAuthV1: создание подписи");
-
- Сигнатура = OPI_Криптография.СоздатьПодпись(ПодписьДД, СигнатураДД, OAuthАлгоритм, OAuthХешФункция);
- Сигнатура = КодироватьСтроку(Base64Строка(Сигнатура), СпособКодированияСтроки.КодировкаURL);
-
- Разделитель = """,";
-
- ДобавитьЛог("ДобавитьЗаголовокOAuthV1: создание заголовка авторизации");
-
- ЗаголовокАвторизации = ЗаголовокАвторизации
- + "OAuth "
- + "oauth_consumer_key=""" + OAuthConsumerKey + Разделитель
-
- + "oauth_token=""" + OAuthToken + Разделитель
-
- + "oauth_signature_method=""" + МетодХэширования + Разделитель
-
- + "oauth_timestamp=""" + ТекущаяДатаUNIX + Разделитель
-
- + "oauth_nonce=""" + ТекущаяДатаUNIX + Разделитель
-
- + "oauth_version=""" + OAuthВерсияAPI + Разделитель
-
- + "oauth_signature=" + Сигнатура;
-
- Запрос.Заголовки.Вставить("Authorization", ЗаголовокАвторизации);
-
- Возврат ЭтотОбъект;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область Вспомогательные
-
-Функция ОстановитьРаботу(Знач ИсключениеПриОшибке = Ложь)
-
- OPI_ПреобразованиеТипов.ПолучитьБулево(ИсключениеПриОшибке);
-
- ЕстьОшибка = ЗапросИнициализирован().Ошибка;
-
- Если ЕстьОшибка И ИсключениеПриОшибке Тогда
- ВызватьИсключение ПолучитьЛог(Истина);
- Иначе
- Возврат ЕстьОшибка;
- КонецЕсли;
-
-КонецФункции
-
-Функция ЗапросИнициализирован()
-
- Возврат ?(ЗначениеЗаполнено(Инициализирован)
- , ЭтотОбъект
- , Ошибка("Запрос не инициализирован. Необходимо вызвать функцию Инициализировать() перед началом работы"));
-
-КонецФункции
-
-Функция Ошибка(Знач ТекстОшибки)
-
- Ошибка = Истина;
-
- Если ФайлТелаВременный И ЗначениеЗаполнено(ЗапросФайлТела) Тогда
-
- Попытка
- УдалитьФайлы(ЗапросФайлТела);
- ЗапросФайлТела = Неопределено;
- ФайлТелаВременный = Ложь;
- Исключение
- ДобавитьЛог("Ошибка: Не удалось удалить временный файл при исключении");
- КонецПопытки;
-
- КонецЕсли;
-
- Возврат ДобавитьЛог(ТекстОшибки);
-
-КонецФункции
-
-Функция ДобавитьЛог(Знач Текст)
-
- OPI_ПреобразованиеТипов.ПолучитьСтроку(Текст);
-
- Лог.Добавить(Текст);
-
- OPI_Инструменты.ОтладочнаяИнформация(Текст);
-
- Возврат ЭтотОбъект;
-
-КонецФункции
-
-Функция ПолучитьНастройку(Знач КлючНастройки)
- Возврат Настройки[КлючНастройки];
-КонецФункции
-
-Процедура УстановитьНастройку(Знач КлючНастройки, Знач Значение)
- Настройки[КлючНастройки] = Значение;
-КонецПроцедуры
-
-Процедура УстановитьСтандартныеНастройки()
-
- ДобавитьЛог("УстановитьСтандартныеНастройки: установка настроек");
-
- Настройки = Новый Структура;
- Настройки.Вставить("gzip" , Истина);
- Настройки.Вставить("ОтдельныеЭлементыМассивов", Ложь);
- Настройки.Вставить("КвадратныеСкобкиМассивов" , Ложь);
- Настройки.Вставить("КодировкаURL" , Истина);
- Настройки.Вставить("КодировкаТелаЗапроса" , "UTF-8");
- Настройки.Вставить("ПоляТелаВOAuth" , Ложь);
-
-КонецПроцедуры
-
-Процедура КодироватьURLВURL(URL) Экспорт
-
- Заглушка = СтрШаблон("@#%1#@", Строка(Новый УникальныйИдентификатор));
-
- URL = СтрЗаменить(URL, "&" , Заглушка);
- URL = КодироватьСтроку(URL, СпособКодированияСтроки.URLВКодировкеURL);
- URL = СтрЗаменить(URL, Заглушка, "&");
-
-КонецПроцедуры
-
-Процедура ГарантироватьТелоКоллекцию()
-
- Если Не ЗначениеЗаполнено(ЗапросТелоКоллекция)
- Или Не OPI_Инструменты.ЭтоКоллекция(ЗапросТелоКоллекция, Истина) Тогда
-
- Попытка
- ЗапросТелоКоллекция = ЗапросТело;
- OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(ЗапросТелоКоллекция);
- Исключение
- ЗапросТелоКоллекция = Новый Структура;
- КонецПопытки;
-
- ЗапросТелоКоллекция = ?(ЗначениеЗаполнено(ЗапросТелоКоллекция), ЗапросТелоКоллекция, Новый Структура);
-
- КонецЕсли;
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#КонецОбласти
-
-#КонецЕсли
diff --git a/XML/Subsystems/OPI_Интеграция.xml b/XML/Subsystems/OPI_Интеграция.xml
deleted file mode 100644
index 174ce52805..0000000000
--- a/XML/Subsystems/OPI_Интеграция.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
-
- OPI_Интеграция
-
-
- ru
- Интеграция
-
-
-
- true
- true
-
-
-
- CommonModule.OPI_Инструменты
- CommonModule.OPI_Криптография
- CommonModule.OPI_ПреобразованиеТипов
- CommonModule.OPI_VK
- CommonModule.OPI_Telegram
- CommonModule.OPI_Viber
- CommonModule.OPI_Twitter
- CommonModule.OPI_Notion
- CommonModule.OPI_YandexID
- CommonModule.OPI_YandexDisk
- CommonModule.OPI_GoogleWorkspace
- CommonModule.OPI_GoogleCalendar
- CommonModule.OPI_GoogleDrive
- CommonModule.OPI_GoogleSheets
- CommonModule.OPI_Slack
- CommonModule.OPI_Airtable
- CommonModule.OPI_Тесты
- CommonModule.OPI_ПолучениеДанныхТестов
-
-
-
-
-
\ No newline at end of file
diff --git a/XML/Subsystems/OPI_Интеграция/Ext/CommandInterface.xml b/XML/Subsystems/OPI_Интеграция/Ext/CommandInterface.xml
deleted file mode 100644
index 6ac8a07fa6..0000000000
--- a/XML/Subsystems/OPI_Интеграция/Ext/CommandInterface.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
\ No newline at end of file