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