Интеграция с Битрикс24 WebHooks [Rest API]

13.06.23

Интеграция - WEB-интеграция

Описание интеграции 1С и Битрикс24 с помощью RestApi и Веб-хуков. Тестировалось на платформе 1С Предприятие версии - 8.3.21.1622 Конфигурация - Любая конфигурация на Базе БСП

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Пример интеграции по управлению задачами в Битрикс24
.cfe 54,34Kb ver:1.0.0.1
46
46 Скачать (1 SM) Купить за 1 850 руб.

Интеграция Платформы 1С и Битрикс24 может быть реализована либо с помощью готовых решений либо можно написать что-то свое, например какое-то управление задачами. Тут описаны основные моменты которые могут быть не очевидны при разработке интеграции. 

Итак, у Битрикс24 есть система Веб-хуков:

1. Входящие - используется для работы с данными вашего Битрикс24 через API. Позволяет отправлять команды описанные в API в Битрикс24.

2. Исходящие - используется для получения информации о событиях, происходящих в вашем Битрикс24. Позволяет получать изменения происходящие в Битрикс24.

Веб-хуки - способ отправки уведомлений пользователю. Пуш уведомления, только в рамках интеграции.

Настройка входящих веб-хуков

Для этого требуется перейти в раздел "Разработчикам" в своем Битрикс



Далее перейти "Другое"




Открыть раздел "Входящий вебхук"






На странице будет предоставлен адрес вызова rest api вида - https://rs24.bitrix24.ru/rest/<id пользователя>/<идентификатор доступа>/. Нажимаем сохранить и копируем нужные данные. Так же можно задать права для полученной интеграции.





Эти данные требуются для подключения к порталу и отправки уведомлений.

Для этого потребуется выполнить примерно такой код:

// Функция - Отправить запрос
//
// Параметры:
//  Метод			 - Строка	 - имя метода который требуется выполнить
//  Параметры		 - Структура	 - Структура параметров для выполнения метода
//  СтрокаЗапроса	 - Строка	 - Строка запроса сгенерированная заранее, если задана, то не будет генерироваться обработчиком
// 
// Возвращаемое значение:
//   Соотвествие - Результат выполнения метода
//
Функция ОтправитьЗапрос(Метод, Параметры, СтрокаЗапроса = Неопределено)
	
    Идентификатор = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ПараметрыСеанса.ТекущийПользователь, "Bitrix24_Идентификатор");
	АдресПортала  = "rs24.bitrix24.ru";
	IDПользователя= ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ПараметрыСеанса.ТекущийПользователь, "Bitrix24_ID");
	
	Соединение = Новый HTTPСоединение(АдресПортала,,,,,, Новый ЗащищенноеСоединениеOpenSSL); // Создаем защищенное соединение с порталом.
	Если СтрокаЗапроса = Неопределено Тогда
		СтрокаЗапроса = СформироватьАдресЗапроса(Идентификатор, Параметры, Метод, IDПользователя); //Формируем адрес запроса, по стандарту REST API
	КонецЕсли;
							
	Запрос = Новый HTTPЗапрос(СтрокаЗапроса); // Создает HTTP запрос											
	
	Запрос.УстановитьТелоИзСтроки("");
			
	Ответ = Соединение.Получить(Запрос); // Отправляет на обработку серверу и получаем ответ
	СтрокаОтвета = Ответ.ПолучитьТелоКакСтроку(); // Получаем результат выполнения как строку
	ДанныеJSON	 = РаскодироватьJSON(СтрокаОтвета); //Убираем экранирование символов

	Возврат ПрочитатьJSONНаСервере(ДанныеJSON, Истина); // Читаем JSON

КонецФункции

// Функция - Сформировать адрес запроса
//
// Параметры:
//  СтруктураНастроек		 - Структура	 - Структура настроек
//  ДополнительныеПараметры	 - 	 - 
//  Метод					 - Текст	 - Имя вызываемого метода
// 
// Возвращаемое значение:
// Текст  - Сформированный на основе настроек Адрес запроса
//
Функция  СформироватьАдресЗапроса(Идентификатор, ДополнительныеПараметры, Метод, IDПользователя)
	
	АдресЗапроса = "rest/" + IDПользователя + "/" + Идентификатор + "/" + Метод;
	НомерПараметра = 0;
	Для Каждого Настройка Из ДополнительныеПараметры Цикл
		Если НомерПараметра = 0 Тогда
			АдресЗапроса = АдресЗапроса + "?" + Настройка.Ключ+"=" + Настройка.Значение;			
		Иначе     
			АдресЗапроса = АдресЗапроса + "&" + Настройка.Ключ+"=" + Настройка.Значение; //Если параметр 2 и более то нужно использовать &	
		КонецЕсли;
	КонецЦикла;
		
	Возврат АдресЗапроса;
	
КонецФункции


Для редактирования полей в задачах, немного иная схема строки запроса. Тут нужно передать "массив", но у битрикса он какой-то свой, в отличие от Telegram.

На примере изменения поля "Крайний срок"
 

// Процедура - Изменить крайний срок задачи
//
// Параметры:
//  НомерЗадачи	 - Число	 - Номер задачи
//  НоваяДата	 - Дата	 	 - Новая дата крайнего срока
//
Процедура ИзменитьКрайнийСрокЗадачи(НомерЗадачи, НоваяДата, Отказ) Экспорт
	
	Идентификатор = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ПараметрыСеанса.ТекущийПользователь, "Bitrix24_Идентификатор");
	IDПользователя= ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ПараметрыСеанса.ТекущийПользователь, "Bitrix24_ID");

	Метод = "tasks.task.update"; // метод для обновления полей задачи
	Параметры = Новый Структура("taskId", Формат(НомерЗадачи, "ЧГ=0")); //параметр taskid обязательный, нужно чтобы понять какую задачу изменять
	
	СтрокаЗапроса = СформироватьАдресЗапроса(Идентификатор, Параметры, Метод, IDПользователя); // Генерим запрос пока по стандарту
	
	СтрокаЗапроса =СтрокаЗапроса + "&fields" + "[DEADLINE]=" + ПреобразоватьДату(НоваяДата, Истина); // Тут добавляем параметр fields и прибавляем к нему поле/поля, в данном случае DEADLINE в скобках []. 
                                                                                                     //После знак = и значение. Причем даты нужны в формате ISO 8601, поэтому преобразовываем его с помощью функции.
	
	Результат = ОтправитьЗапрос(Метод, Параметры, СтрокаЗапроса); //Далее отправляем запрос по стандарту.	
	
	ТекстОшибки = Результат.Получить("error_description"); //Тут проверяем результат на ошибку, может не хватить прав.
	Если ЗначениеЗаполнено(ТекстОшибки) Тогда
		ОбщегоНазначения.СообщитьПользователю(ТекстОшибки,,,,Отказ);
	КонецЕсли;
	
КонецПроцедуры

// Функция - Преобразовать дату
//
// Параметры:
//  ИсхДата		 - Дата	 - Дата которую требуется преобразовать
//  ИСОФормат	 - Булево	 - Нужно преобразовать в ИСО формат, иначе будет декодировано из него.
// 
// Возвращаемое значение:
//   Дата, Неопределено - Преобразованная дата
//
Функция ПреобразоватьДату(ИсхДата , ИСОФормат=Истина)
	
	Если НЕ ЗначениеЗаполнено(ИсхДата) Тогда
      		Возврат Неопределено
	КонецЕсли;
	
    	Если ИСОФормат Тогда
       		Возврат Формат(ИсхДата,"ДФ=yyyy-MM-ddThh:mm:ss");
	Иначе 
       		Возврат XMLЗначение(Тип("Дата"), ИсхДата);
	КонецЕсли 
	
КонецФункции


 

Настройка исходящих веб-хуков

Тут немного замудреннее, особенно когда не знаешь. 

Тем же путем переходим в раздел "Разработчикам" -> "Другое" -> "Исходящий вебхук"




Далее нужно заполнить URL обработчика по следующим правилам:
http://<адрес или имя>:<внешний порт>/<имя публикации>/hs/<Имя http сервиса, у меня это - Bitrix24>/<имя шаблона, у меня это - WebHook>/<имя метода, у меня это - pushPost>/

Итого примерный адрес - http://223.234.43.23:8323/Bitrix24/hs/Bitrix24/WebHook/pushPost/

IP адрес обязательно должен быть общедоступным, иначе Битрикс не достучится до него.

Токен приложения нужно чтобы проверить из какой интеграции пришел веб-хук.



Далее публикуем http сервис вручную или средствами платформы, если http сервис в расширении, то в ручном варианте.





И чтобы Битрикс попал в базу без авторизации, нужно в настройках подключения к ИБ указать имя пользователя и пароль. 
Также желательно включить отладку, чтобы отлаживать код и данные.



Далее выполняем действия, например создаем или изменяем задачу и получаем запрос от битрикс.





Далее уже начинаем работать с телом запроса.

Раскодируем строку, получим данные из события и обработаем их.
 

// Процедура - Обработать событие
//
// Параметры:
//  Событие	 -  Строка	 - Параметры события произошедшего в Битрикс
//
Процедура ОбработатьСобытие(Событие) Экспорт
 
 	СтрокаБезКодировки = РаскодироватьСтроку(Событие , СпособКодированияСтроки.URLВКодировкеURL);	
	СтруктураСобытия   = ПолучитьСобытиеКакСтруктуру(СтрокаБезКодировки);
	
	Событие = "";
	СтруктураСобытия.Свойство("Событие", Событие);
	Если СтруктураСобытия.Событие = "ONTASKUPDATE" Тогда
    	 	ОбновитьЗадачу(СтруктураСобытия.ID);	
	КонецЕсли;  
	 
 КонецПроцедуры
 
// Функция - Получить событие как структуру
//
// Параметры:
//  СтрокаДанных - 	Строка   - Параметры события произошедшего в Битрикс
// 
// Возвращаемое значение:
//   Структура - Структра данных о событии 
//								Событие - Строка  - Тип события в Битрикс
//								ID - Строка - ID объекта события Битрикс
//
Функция ПолучитьСобытиеКакСтруктуру(СтрокаДанных)
	
    //Тут вроде бы JSON должен быть, но прилетает что-то не то, опытным путем сделал через поиск в строке.

	Результат = Новый Структура();
	
	НачалоСобытия = СтрНайти(СтрокаДанных, "event=")+ 6;
	КонецСобытия  =	СтрНайти(СтрокаДанных, "&", НаправлениеПоиска.СНачала, НачалоСобытия);
	Событие		  = Сред(СтрокаДанных, НачалоСобытия, КонецСобытия- НачалоСобытия);
	Результат.Вставить("Событие", Событие);
	//Получаем ID и событие задачи. Далее уже можно развивать на другие события и делать проверки.
	НачалоID 	  = СтрНайти(СтрокаДанных, "[ID]=",, КонецСобытия)+5;
	КонецID		  = СтрНайти(СтрокаДанных, "&",,НачалоID); 
	ID			  = Сред(СтрокаДанных, НачалоID, КонецID - НачалоID);
	Результат.Вставить("ID", ID);	
	
	Возврат Результат;

КонецФункции // ПолучитьСобытиеКакСтруктуру(СтрокаДанных) 

Далее уже можно свободно читать API Битрикс24 и делать что-то свое. 

Ссылка на API - https://www.bitrix24.ru/apps/api.php.

Битрикс24 Интеграция

См. также

Сайты и интернет-магазины WEB-интеграция Системный администратор Программист Пользователь Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM разных брендов в одной информационной базе в ручном и автоматическом режиме.

36000 руб.

03.08.2020    17780    19    22    

16

Сайты и интернет-магазины Интеграция WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Управленческий учет Платные (руб)

Интеграция 1С и Битрикс 24. Разработка имеет двухстороннюю синхронизацию 1С и Bitrix24 задачами. Решение позволяет создавать пользователя в 1С из Битрикс24 и наоборот. Данная разработка технически подходит под все основные конфигурации линейки продуктов 1С:Предприятие 8.3 (платформа начиная с 8.3.23). При приобретении предоставляется 1 месяц бесплатных обновлений разработки. Доступна демо-версия продукта с подключением Вашего Битрикс24

5040 руб.

04.05.2021    19844    13    17    

16

WEB-интеграция 8.3.8 Конфигурации 1cv8 Автомобили, автосервисы Беларусь Украина Россия Казахстан Управленческий учет Платные (руб)

Расширение предназначено для конфигурации "1С:Предприятие 8. Управление Автотранспортом. ПРОФ". Функционал модуля: 1. Заполнение регистров сведений по подсистеме "Мониторинг", а именно: события по мониторингу, координаты по мониторингу, пробег и расход по мониторингу, текущее местоположение ТС по мониторингу 2. Заполнение путевого листа: пробег по мониторингу, время выезда/заезда, табличная часть ГСМ, места стоянок по геозонам. 3. Отчеты по данным загруженным в регистры сведений. 4. Предусмотрена автоматическая загрузка данных в фоновом режиме (условия работы данной загрузке читайте в описании товара) Модуль работает без включенной константы по настройкам мониторинга. Модуль формы предоставляется с открытым кодом, общий модуль защищен. Любой заинтересованный пользователь, имеет возможность скачать демо-версию расширения.

22656 руб.

25.05.2021    14421    42    8    

18

WEB-интеграция Программист Руководитель проекта Платформа 1С v8.3 Конфигурации 1cv8 1С:Франчайзи, автоматизация бизнеса Платные (руб)

Расширение значительно упрощает написание API на 1С. Веб программисты получают простой и понятный доступ к 1С. Описание API создаётся автоматически и представляется в виде удобном как для человека, так и для программной обработки.

24000 руб.

27.09.2024    1168    1    0    

3
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. СаморезикРу 31.08.23 14:20 Сейчас в теме
Что такое Bitrix24_Идентификатор и Bitrix24_ID
2. Luchano37 37 02.09.23 08:35 Сейчас в теме
(1) Это реквизиты у справочника "Пользователи"
Позволяют заполнить следующие поля в адресе запроса:
https://rs24.bitrix24.ru/rest/<id пользователя>/<идентификатор доступа>/.
<id пользователя> = Bitrix24_ID
<идентификатор доступа> = Bitrix24_Идентификатор
3. aleksey2 88 21.11.23 07:43 Сейчас в теме
Bitrix24_ID можно кинуть в контактную информацию с типом другое
Luchano37; +1 Ответить
4. YakZub 03.07.24 15:28 Сейчас в теме
Добрый день. Столкнулся с проблемой, может подскажете.

Для события calendar.event.add выполняю запрос с телом

{
"type": "user",
"ownerId": "11",
"from": "03.07.2024 10:00:00",
"to": "03.07.2024 12:00:00",
"section": 5,
"name": "Событие:"
}

через postman все уходит.

при выполнении запроса из 1с получаю ошибку.

"{"error":"","error_description":"Не задан обязательный параметр \u0022from\u0022 для метода \u0022calendar.event.add\u0022"}"

то есть не заполнена дата. При отлавливании запроса фидлером вижу не все тело, а часть, хотя в загловок передаю

Заголовки.Вставить("Content-Length", СтрДлина(ТелоИзСтроки));

{
"type": "user",
"ownerId": "11",
"from": "03.07.2024 10:00:00",
"to": "03.07.2024 12:00:00",
"section": 5,
"name": "На:"




Сам код

ДатаС	=  "03.07.2024 10:00:00";
	ДатаПо	=  "03.07.2024 12:00:00";
	
	ЗаписьJSON = Новый ЗаписьJSON;
	ЗаписьJSON.УстановитьСтроку();
	
	СтруктураДанных = Новый Структура;
	
	СтруктураДанных.Вставить("type",	"user");	
	СтруктураДанных.Вставить("ownerId",	"11");
	СтруктураДанных.Вставить("from",	ДатаС);
	СтруктураДанных.Вставить("to",		ДатаПо); 	
	СтруктураДанных.Вставить("section",	5);                                               
	СтруктураДанных.Вставить("name",	"На:");
	
		
	ЗаписатьJSON(ЗаписьJSON, СтруктураДанных);
	
	ТелоИзСтроки = ЗаписьJSON.Закрыть();

	//https
	АдресРесурса = "rest/***/***/calendar.event.add.json";
	
	Заголовки = Новый Соответствие;
	Заголовки.Вставить("Content-Length",	СтрДлина(ТелоИзСтроки));
	Заголовки.Вставить("Content-type",		"application/json");
	
	HTTPСоединение = Новый HTTPСоединение("***.bitrix24.kz",,,,,,Новый ЗащищенноеСоединениеOpenSSL);
	
	ПакетныйЗапросHTTP	= Новый HTTPЗапрос;
	
	ПакетныйЗапросHTTP.АдресРесурса = АдресРесурса;
	ПакетныйЗапросHTTP.Заголовки	= Заголовки;
	
	ПакетныйЗапросHTTP.УстановитьТелоИзСтроки(ТелоИзСтроки,,);
	ПакетныйОтветHTTP = HTTPСоединение.ОтправитьДляОбработки(ПакетныйЗапросHTTP);
	Сообщить(ПакетныйОтветHTTP.ПолучитьТелоКакСтроку());   
	//https
Показать
5. Светлый ум 415 17.07.24 06:37 Сейчас в теме
6. Lupeykin 5 16.09.24 10:36 Сейчас в теме
//Получение сделок с фильтром, простой пример
Соединение = Новый HTTPСоединение(АдресCRM),443,,,,,Новый ЗащищенноеСоединениеOpenSSL());
ПрПараметры = "crm.deal.list.json?filter[COMPANY_ID]=45593&filter[CLOSED]=N&filter[IS_RETURN_CUSTOMER]=N&order[DATE_MODIFY]=DESC";  // не закрытые заявки по организации  45593
Запрос = Новый HTTPЗапрос("/rest/****/***********/"+ПрПараметры);
Запрос.Заголовки.Вставить("Content-type", "application/json; charset=utf-8");
HTTPОтвет   = Соединение.Получить(Запрос);
ContentType = HTTPОтвет.Заголовки.Получить("Content-Type");
лКодировка 	= Прав(ContentType, СтрДлина(ContentType) - (Найти(ContentType, "charset=")+7));
Строкой     = HTTPОтвет.ПолучитьТелоКакСтроку(лКодировка);

ЧтениеJSON = Новый ЧтениеJSON;
ЧтениеJSON.УстановитьСтроку(Строкой);

Результат = Неопределено;
СформироватьДерево(ЧтениеJSON, Результат);
КоличествоОткрытыхСделок = Результат.Получить("result").Количество(); 
Если КоличествоОткрытыхСделок > 0 Тогда
	ID_Сделки = Результат.Получить("result")[0].получить("ID");
КонецЕсли;

ЧтениеJSON.Закрыть();

&НаСервере
Процедура СформироватьДерево(ЧтениеJSON, Дерево)
	
	ИмяСвойства = Неопределено;
	
	Пока ЧтениеJSON.Прочитать() Цикл
		TипJSON = ЧтениеJSON.ТипТекущегоЗначения;
		
		Если TипJSON = ТипЗначенияJSON.НачалоОбъекта 
			ИЛИ TипJSON = ТипЗначенияJSON.НачалоМассива Тогда
			НовыйОбъект = ?(TипJSON = ТипЗначенияJSON.НачалоОбъекта, Новый Соответствие, Новый Массив);
			
			Если ТипЗнч(Дерево) = Тип("Массив") Тогда
				Дерево.Добавить(НовыйОбъект);
			ИначеЕсли ТипЗнч(Дерево) = Тип("Соответствие") И ЗначениеЗаполнено(ИмяСвойства) Тогда
				Дерево.Вставить(ИмяСвойства, НовыйОбъект);
			КонецЕсли;
			
			СформироватьДерево(ЧтениеJSON, НовыйОбъект);
			
			Если Дерево = Неопределено Тогда
				Дерево = НовыйОбъект;
			КонецЕсли;
		ИначеЕсли TипJSON = ТипЗначенияJSON.ИмяСвойства Тогда
			ИмяСвойства = ЧтениеJSON.ТекущееЗначение;
		ИначеЕсли TипJSON = ТипЗначенияJSON.Число 
			ИЛИ TипJSON = ТипЗначенияJSON.Строка 
			ИЛИ TипJSON = ТипЗначенияJSON.Булево 
			ИЛИ TипJSON = ТипЗначенияJSON.Null Тогда
			Если ТипЗнч(Дерево) = Тип("Массив") Тогда
				Дерево.Добавить(ЧтениеJSON.ТекущееЗначение);
			ИначеЕсли ТипЗнч(Дерево) = Тип("Соответствие") Тогда
				Дерево.Вставить(ИмяСвойства, ЧтениеJSON.ТекущееЗначение);
			КонецЕсли;
		Иначе
			Возврат;
		КонецЕсли;
	КонецЦикла;
	
КонецПроцедуры
Показать
7. Lupeykin 5 16.09.24 10:41 Сейчас в теме
// а так мы можем изменять сделку
 Запрос = Новый HTTPЗапрос("rest/***/********/crm.deal.update.json");	
	Запрос.Заголовки.Вставить("Content-type", "application/json; charset=utf-8");
	
	
	ФайлОтвета = Неопределено;
		      
СтрокаДляИзмененияВ_CRM = "{""id"":DEAL_ID_VAR,""fields"":{""CLOSED"":""Y"",""STAGE_ID"":""WON"",""STAGE_SEMANTIC_ID"":""S"",""UF_CRM_1564480466954"":""GUID_VAR"",""UF_CRM_1580470461649"":GUID_CONTRACT_VAR,""UF_CRM_65280A79479ED"":948,
	|""UF_CRM_1681393648434"":887,""UF_CRM_637B35F430A12"":КоличествоМесяцев_VAR,""UF_CRM_6346E5CF8C5B3"":Склад_VAR,""UF_CRM_1648811881353"":КатегорияПомещения_VAR,""UF_CRM_1594046069431"":"""",""UF_CRM_1668518414685"":560,""UF_CRM_1565339315825"":51,""UF_CRM_1565264962683"":"""",""UF_CRM_6346E2248C39B"":КатегорияПомещения_НашеПредложение_VAR,""UF_CRM_6346E220CF497"":394,""IS_RETURN_CUSTOMER"":""N"",""IS_RECURRING"":""N"",""IS_NEW"":""N"",""UF_CRM_1565340795697"":""ДатаНачалоАренды_VAR"",""UF_CRM_1592301446011"":243,""CLOSED"":""Y"",""IS_REPEATED_APPROACH"":""N"",""UF_CRM_1566553457"":139257,""OPENED"":""Y"",""UF_CRM_1564481470"":32150,""STAGE_SEMANTIC_ID"":""S"",""IS_MANUAL_OPPORTUNITY"":""N"",""CURRENCY_ID"":"""",""UF_CRM_1668518617018"":КатегорияПомещенияЗапрошенаКлиентом_VAR,""COMPANY_ID"":COMPANY_ID_VAR,""TYPE_ID"":""SALE"",""TITLE"":""TITLE_VAR""}}";
	
		
			
		  СтрокаДляИзмененияВ_CRM = СтрЗаменить(СтрокаДляИзмененияВ_CRM,"DEAL_ID_VAR",_ID);
		  СтрокаДляИзмененияВ_CRM = СтрЗаменить(СтрокаДляИзмененияВ_CRM,"GUID_VAR",СокрЛП(Договор.УникальныйИдентификатор()));
		  СтрокаДляИзмененияВ_CRM = СтрЗаменить(СтрокаДляИзмененияВ_CRM,"GUID_CONTRACT_VAR",Формат(Договор.GUID_CONTRACT,"ЧГ="));
		  СтрокаДляИзмененияВ_CRM = СтрЗаменить(СтрокаДляИзмененияВ_CRM,"КоличествоМесяцев_VAR",КоличествоМесяцев_VAR);
		  СтрокаДляИзмененияВ_CRM = СтрЗаменить(СтрокаДляИзмененияВ_CRM,"Склад_VAR",Склад_VAR);
		  СтрокаДляИзмененияВ_CRM = СтрЗаменить(СтрокаДляИзмененияВ_CRM,"КатегорияПомещения_VAR",КатегорияПомещения_VAR);
		  СтрокаДляИзмененияВ_CRM = СтрЗаменить(СтрокаДляИзмененияВ_CRM,"КатегорияПомещения_НашеПредложение_VAR",КатегорияПомещения_НашеПредложение_VAR);
		  СтрокаДляИзмененияВ_CRM = СтрЗаменить(СтрокаДляИзмененияВ_CRM,"ДатаНачалоАренды_VAR",ДатаНачалоАренды_VAR);
		  СтрокаДляИзмененияВ_CRM = СтрЗаменить(СтрокаДляИзмененияВ_CRM,"КатегорияПомещенияЗапрошенаКлиентом_VAR",КатегорияПомещенияЗапрошенаКлиентом_VAR);
		  СтрокаДляИзмененияВ_CRM = СтрЗаменить(СтрокаДляИзмененияВ_CRM,"COMPANY_ID_VAR",COMPANY_ID_VAR);
		  СтрокаДляИзмененияВ_CRM = СтрЗаменить(СтрокаДляИзмененияВ_CRM,"TITLE_VAR",СокрЛП(Договор));
		  		
		  Запрос.УстановитьТелоИзСтроки(СтрокаДляИзмененияВ_CRM, КодировкаТекста.UTF8,ИспользованиеByteOrderMark.НеИспользовать);	
			
									
			ФайлОтвета = ПолучитьИмяВременногоФайла(".txt");
			
			//Отправим данные
			Соединение.ОтправитьДляОбработки(Запрос, ФайлОтвета);   	
			
			пока ФайлОтвета = Неопределено цикл
				
				//ЖДЕМ ОТВЕТА ОТ CRM
				
			КонецЦикла;
//ЧИТАЕМ ФАЙЛ ОТВЕТА
			Текст = Новый ЧтениеТекста;
			
			Текст.Открыть(ФайлОтвета);              
			
			СтрокаФайлоответа = Текст.ПрочитатьСтроку(); 
            Сообщить(СтрокаФайлоответа);
Показать
8. user2110713 22.10.24 11:41 Сейчас в теме
Добрый день! Нужна помощь. Сайт на WP связан с битрикс24. Все заявки с сайта поступают в битрикс. Как только в битрикс24 увольняют тех. специалистов — перестают работать формы за которые они отвечают. Решили завести специальный тех. аккаунт который будет подвязываться к формам. Тут встает вопрос как и где прописать вебхуки в popup плагина битрикс24?
Оставьте свое сообщение