Получение задач из Битрикс24 в 1С через вебхуки и REST APi

19.11.19

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

Обработка-пример для загрузки задач за период из Битрикса24. Задачи вытягиваются в таблицу значений и отображаются на форме.

Скачать файл

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

Наименование По подписке [?] Купить один файл
Получение задач из Битрикс24 в 1С через вебхуки и REST APi:
.rar 10,93Kb
121
121 Скачать (1 SM) Купить за 1 850 руб.

Встала как-то задача по формированию отчета по задачам из Битрикса. Штатными средствами Битрикса быстро уперлись в кривизну доступов (специфическая органиграмма компании требовала, чтобы отчет по задачам директору предоставляло лицо без прав администратора, и находящееся невысоко в самой организационной структуре компании).

Решено было попробовать, на что способен Rest API. Использовать будем вебхуки. 

Также оговорюсь, у нас коробочная версия битрикса, хотя на результат это вроде как не влияет.

 

Настройка Битрикс

Итак, первым делом сделаем вебхук в битриксе. Для этого переходим в Приложения -> Вебхуки -> Добавить вебхук -> Входящий вебхук. 

Доступ оставляем только на задачи, название и описание произвольное. В результате битрикс сгенерирует нам ссылку вида: https://YOURBITRIXDOMAIN/rest/****/******/profile 

Для данной обработки адрес это YOURBITRIXDOMAIN, а вебхук - rest/****/*****/ без profile в конце.

На этом работа на самом битриксе завершена.

 

Обработка

Для подключения к битриксу используются стандартные механизмы платформы:

HTTPСоединение, HTTPЗапрос, ЧтениеJSON

 

Подключение к Битрикс:

Соединение = Новый HTTPСоединение(АдресПортала,,ЛогинПортала, ПарольПортала, ,5, Новый ЗащищенноеСоединениеOpenSSL);

Отправка запроса: 

Метод = "tasks.task.list";

Запрос = Новый HTTPЗапрос(Вебхук + Метод + "?" + Параметры);	

Где метод tasks.task.list- это метод API битрикса, который возвращает массив задач, каждая из которых содержит массив полей.

Ограничение в 50 задач:

По умолчанию API выдает только 50 элементов, поэтому сначала мы узнаем общее количество элементов в массиве, затем в цикле собираем их все с помощью ключа &start=, который указывает с какой позиции начинать загрузку.

 

Функция-запрос в битрикс:

Функция ОтправитьЗапрос(Параметры)
 	
	ЛогинПортала = Объект.Логин;
	ПарольПортала = Объект.Пароль;
	АдресПортала = Объект.Адрес;
	Вебхук = Объект.Вебхук;
	Метод = "tasks.task.list"; 
	
	
	Соединение = Новый HTTPСоединение(АдресПортала,,ЛогинПортала, ПарольПортала, ,5, Новый ЗащищенноеСоединениеOpenSSL);
							
	Запрос = Новый HTTPЗапрос(Вебхук + Метод + "?" + Параметры);											
	
	Запрос.УстановитьТелоИзСтроки("");
			
	Ответ = Соединение.Получить(Запрос);	

	Возврат Ответ.ПолучитьТелоКакСтроку();

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

 

Результат вызова функции запихивается в ТЗ и выводится на форму.

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

Если нужны еще какие-то поля или пояснения - прошу в комментарии.

Специально не сделано никаких привязок к существующим объектам ИБ, и никакого сохранения данных. Предполагалось, что это будет просто отчет по выводу задач за период для оценки KPI каждого сотрудника. 

Пример отчета также прилагается.

Тестировалась на платформе 8.3.14.1944, но должна работать на всех

Битрикс битрикс24 задачи REST API

См. также

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

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

36000 руб.

03.08.2020    17788    19    22    

17

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

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

5040 руб.

04.05.2021    19867    13    17    

17

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

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

22656 руб.

25.05.2021    14427    42    8    

18

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

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

24000 руб.

27.09.2024    1178    1    0    

3
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. itriot11 96 19.11.19 16:38 Сейчас в теме
Наблюдателей, комментарии к задачам не пробовали выдернуть?
2. alexlx 114 19.11.19 17:01 Сейчас в теме
(1)
Наблюдателей, комментарии к задачам не пробовали выдернуть?
Пытался. Наблюдатели выдергиваются этой же обработкой. Поле auditors содержит массив ИД наблюдателей. Комментарии кажется отдельно методом task.commentitem.getlist, в который надо скормить ИД задачи
itriot11; +1 Ответить
3. itriot11 96 19.11.19 17:06 Сейчас в теме
(2) думаю, было бы классно разработать подсистему, которая дергала всю связанную инфу с задачами Битрикса и формировала различные отчеты уже на стороне 1С. У самого, к сожалению, ручки пока так и не дошли до реализации.
4. alexlx 114 19.11.19 17:15 Сейчас в теме
(3) Я тоже думал об этом, но решил не засорять базу. Открыл-посмотрел-закрыл. На этом всё. Не так сильно люблю я битрикс :)
5. ElenaNafty 02.04.20 13:15 Сейчас в теме
Добрый день! Вы пишите "поэтому сначала мы узнаем общее количество элементов в массиве, затем в цикле собираем их все с помощью ключа &start=". А каким запросом можно узнать общее количество задач?
Я сейчас знаю только такой способ:
Получать по 50 штук, пока параметр Next не перестанет приходить в ответе.
6. alexlx 114 02.04.20 15:28 Сейчас в теме
(5)В первом же запросе можно посмотреть поле total, в нем общее количество
7. ElenaNafty 03.04.20 09:20 Сейчас в теме
(6) Спасибо) Вчера тоже уже увидела его.
8. marat3581525 23.04.20 14:31 Сейчас в теме
Добрый день, автор!
В описании данного метода tasks.task.list можно также передать параметр filter по полю ID задачи. Подскажи, как правильно сформировать строку этого параметра с данным полем для отправки запроса?
Поясню. Известен конкретный ID задачи, например 43985. Как мне корректно сформировать параметр filter с данным ID?
9. marat3581525 23.04.20 15:54 Сейчас в теме
(8)Вопрос закрыт)
Например, для того чтобы получить списком две задачи, ID которых заранее известен, можно прописать следующее

HTTPЗапрос = Новый HTTPЗапрос(АдресВебхука + "tasks.task.list.xml/" + "?filter[ID][0]=ЗначениеПервогоЭлемента&filter[ID][1]=ЗначениеВторогоЭлемента");

Это так, кому интересно.
nekit_rdx; It-developer; Amigo_0; Stas-ch; ybatiaev; +5 Ответить
26. It-developer 26 02.01.24 18:18 Сейчас в теме
(9)
?filter[ID][0]=ЗначениеПервогоЭлемента&filter[ID][1]=ЗначениеВторогоЭлемента"

Да, отличный пример списка параметров в http запросе.
Долго я провозился, пока не увидел Ваш пример.
Для стадия сделки по аналогии в http ссылке:
FILTER[%3DSTAGE_ID][0]=NEW&FILTER[%3DSTAGE_ID][1]=2
10. seroga777 29.05.20 16:54 Сейчас в теме
не подскажете каким методом получить пользователей в 1С из Битрикса?
16. shell_maxim 44 21.10.20 05:59 Сейчас в теме
11. alexlx 114 22.06.20 09:27 Сейчас в теме
Если в задачах, то там есть поля :
CREATED_BY_LAST_NAME - постановщик;
RESPONSIBLE_LAST_NAME - ответственный;
12. AlexK_2012 07.08.20 14:33 Сейчас в теме
Добрый день!
Может кто сталкивался...
как при отправке задачи в Битрикс24 передать массив наблюдателей?
15. shell_maxim 44 21.10.20 05:58 Сейчас в теме
(12)fields[AUDITORS][]= + id пользователя
13. user954046 10.09.20 16:13 Сейчас в теме
Привет,
Подскажите как выбрать задачи с фильтром по дате создания С кого-то периода ?
Не могу понять как присвоить дату:
filter[>=CREATED_DATE]:"1580331600"
filter[>=CREATED_DATE]:"29-01-2020"
filter[>=CREATED_DATE]:"2020,01,29"
14. user954046 10.09.20 16:27 Сейчас в теме
(13)
Вдруг кому пригодиться ...
filter[GROUP_ID]:301
//filter[ID][]:44759
//filter[ID][]:43799
filter[>=CREATED_DATE]:01.08.2020
filter[<=CREATED_DATE]:04.08.2020
user1619761; Amigo_0; LomayaZakat; Dot78; ybatiaev; Aspire1C; +6 Ответить
17. Aspire1C 869 13.11.20 10:40 Сейчас в теме
(14) Пришлось еще переделать filter[>=CREATED_DATE]:01.08.2020 на filter[>%3DCREATED_DATE]:01.08.2020 лично мне чтоб заработало. Может кому пригодится, долго провозился
user1619761; InExSu; ybatiaev; +3 Ответить
18. Stas-ch 35 05.01.21 18:29 Сейчас в теме
А есть у кого опыт работы с классами Битрикс?
https://dev.1c-bitrix.ru/api_help/tasks/classes/ctaskitem/index.php
Даже не знаю с какой стороны подступиться к ним.
19. roma03v1 27.02.21 18:01 Сейчас в теме
пытаюсь обновить задачу. не получается, не могу понять в чем проблема, вот две строки параметров
стрПараметры = "crm.deal.update?id=3871&FIELDS[TITLE]=999"; //возвращается результат запроса КодСостояния = 200
стрПараметры = "tasks.task.update?id=15651&FIELDS[TITLE]=999"; //возвращается результат запроса КодСостояния = 400

права в вебхуке и на задачи и на срм. Что не так с задачами то? почему метод который работает для сделок не рабоает для задач? id сделки и задачи указаны корректные, созданы под тем же пользователем под котором авторизуется соединение. Просто вообще не могу даже предположить в чем особенность работы с задачами. Может соориентируете?
21. user1805089 27.06.22 17:24 Сейчас в теме
(19) стрПараметры = "tasks.task.update?id=15651&FIELDS[TITLE]=999"; //возвращается результат запроса КодСостояния = 400
Должны быть taskid=**
пример
стрПараметры = "tasks.task.update?taskid=15651&FIELDS[TITLE]=999"; //возвращается результат запроса КодСостояния = 200

Может кому пригодится ))
20. Dot78 40 23.02.22 12:14 Сейчас в теме
Подскажите, пожалуйста, как правильно передавать в параметрах условие фильтра по вхождению подстроки в наименование?
22. WhiteHarrier 13.02.23 01:41 Сейчас в теме
Подскажите, как отфильтровать запрос к tasks.task.list по наблюдателю (auditors), ведь в этом поле хранится массив наблюдателей, т.е. я хочу получить список задач, где пользователь находится в списке наблюдателей
23. WhiteHarrier 13.02.23 01:46 Сейчас в теме
И еще вопрос, не могу найти метод для получения списка групп доступных пользователю
24. dinarz 40 27.03.23 10:14 Сейчас в теме
Обработка работает с ошибкой, видимо нужно чистить JSON от полей, которые названы как цифры. Сможете исправить?
Прикрепленные файлы:
asoiko; ActiveTechnology; +2 Ответить
25. СаморезикРу 31.08.23 15:27 Сейчас в теме
Задания отображаются по всем пользователям
Оставьте свое сообщение