1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2024-12-04 10:34:52 +02:00

Добавил методы для работы со сделками Bitrix24

This commit is contained in:
e.golyagin 2024-08-24 18:56:34 +03:00
parent 433d362478
commit b48ec38365

View File

@ -4108,7 +4108,7 @@
//
// Параметры:
// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
// IDЛида - Число, Строка - ID задачи - lead
// IDЛида - Число, Строка - ID лида - lead
// Токен - Строка - Токен авторизации, если используется не вебхук - token
//
// Возвращаемое значение:
@ -4174,8 +4174,8 @@
// Метод в документации API: [crm.lead.update](@dev.1c-bitrix.ru/rest_help/crm/leads/crm_lead_update.php)
//
// Параметры:
// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
// IDЛида - Число, Строка - ID задачи - lead
// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
// IDЛида - Число, Строка - ID лида - lead
// СтруктураПолей - Структура Из КлючИЗначение - Структура полей лида - fields
// Токен - Строка - Токен авторизации, если используется не вебхук - token
//
@ -4232,7 +4232,7 @@
СтруктураФильтра = Новый Структура;
СтруктураФильтра.Вставить("ID" , "<идентификатор лида>");
СтруктураФильтра.Вставить("ASSIGNED_BY_ID" , "<идентификатор ответственного");
СтруктураФильтра.Вставить("ASSIGNED_BY_ID" , "<идентификатор ответственного>");
СтруктураФильтра.Вставить("COMPANY_ID" , "<идентификатор компании>");
СтруктураФильтра.Вставить("COMPANY_TITLE" , "<наименование компании>");
СтруктураФильтра.Вставить("CONTACT_ID" , "<идентификатор контакта>");
@ -4266,6 +4266,203 @@
#КонецОбласти
#Область РаботаСоСделками
// Создать сделку
// Создает новую сделку по структуре полей (см. ПолучитьСтруктуруСделки)
//
// Примечание:
// Метод в документации 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_Инструменты.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_Инструменты.Post(URL, Параметры);
Возврат Ответ;
КонецФункции
// Изменить сделку
// Изменяет существующую сделку
//
// Примечание:
// Метод в документации API: [crm.deal.update](@https://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_Инструменты.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_Инструменты.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
Возврат СтруктураФильтра;
КонецФункции
#КонецОбласти
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
@ -4418,4 +4615,15 @@
КонецФункции
Функция УправлениеСделкой(Знач URL, Знач IDСделки, Знач Метод, Знач Токен = "")
Параметры = НормализоватьАвторизацию(URL, Токен, Метод);
OPI_Инструменты.ДобавитьПоле("id", IDСделки, "Строка", Параметры);
Ответ = OPI_Инструменты.Post(URL, Параметры);
Возврат Ответ;
КонецФункции
#КонецОбласти