1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2025-02-03 13:22:19 +02:00

Merge pull request #38 from EvgeniyOst/Dev

Добавил методы для работы с лидами Bitrix24
This commit is contained in:
Anton Titovets 2024-08-22 18:53:32 +03:00 committed by GitHub
commit 3b91e28bf7
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -4073,6 +4073,196 @@
#КонецОбласти
#Область РаботаСЛидами
// Создать лид
// Создает новый лид по структуре полей (см. ПолучитьСтруктуруЛида)
//
// Примечание:
// Метод в документации 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_Инструменты.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_Инструменты.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_Инструменты.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.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_Инструменты.Post(URL, Параметры);
Возврат Ответ;
КонецФункции
#КонецОбласти
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
@ -4214,4 +4404,15 @@
КонецФункции
Функция УправлениеЛидом(Знач URL, Знач IDЛида, Знач Метод, Знач Токен = "")
Параметры = НормализоватьАвторизацию(URL, Токен, Метод);
OPI_Инструменты.ДобавитьПоле("id", IDЛида, "Строка", Параметры);
Ответ = OPI_Инструменты.Post(URL, Параметры);
Возврат Ответ;
КонецФункции
#КонецОбласти