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