1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2025-11-25 22:12:29 +02:00
Files
OpenIntegrations/XML/CommonModules/OPI_Bitrix24/Ext/Module.bsl
Vitaly the Alpaca (bot) cdef2d02ab Main build (Jenkins)
2025-10-21 21:43:05 +03:00

5237 lines
327 KiB
Plaintext

// 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" , "<E-mail пользователя (опционально)>");
СтруктураПолей.Вставить("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" , "<E-mail для отправки почтовых приглашений>");
СтруктураНастроек.Вставить("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, Параметры);
Возврат Ответ;
КонецФункции
#КонецОбласти