diff --git a/src/ru/OPI/src/CommonModules/OPI_Bitrix24/Module.bsl b/src/ru/OPI/src/CommonModules/OPI_Bitrix24/Module.bsl index 6341f771bb..b1a6b0b363 100644 --- a/src/ru/OPI/src/CommonModules/OPI_Bitrix24/Module.bsl +++ b/src/ru/OPI/src/CommonModules/OPI_Bitrix24/Module.bsl @@ -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, Параметры); + + Возврат Ответ; + +КонецФункции + #КонецОбласти