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

19.11.19

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

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

Скачать файлы

Наименование Файл Версия Размер
Получение задач из Битрикс24 в 1С через вебхуки и REST APi:
.rar 10,93Kb
108
.rar 10,93Kb 108 Скачать

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

Решено было попробовать, на что способен 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

См. также

Интеграция Альфа Авто 5 / Альфа Авто 6 и AUTOCRM / Инфотек

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

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

36000 руб.

03.08.2020    15747    10    17    

11

Интеграция 1С — Битрикс24. Обмен задачами

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

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

5040 руб.

04.05.2021    17548    6    15    

13

Интеграция с сервисом vetmanager

WEB-интеграция Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Бытовые услуги, сервис Платные (руб)

Внешняя обработка разрабатывалась для загрузки документов из Ветменеджер в 1С: Бухгалтерия 3.0

12000 руб.

02.02.2021    16359    42    49    

23

[Расширение] БОР-Навигатор.Культура

Зарплата Бюджетный учет WEB-интеграция Обмен с ГосИС Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бюджетный учет Платные (руб)

Расширение конфигурации, включающее в себя объекты, необходимые для подготовки и сдачи отчета "Штатная численность" системы "БОР-Навигатор.Культура" в программе "1С:Зарплата и кадры государственного учреждения", редакция 3.1.

8400 руб.

01.02.2019    25741    9    0    

7

Заполнение по ИНН или наименованию реквизитов контрагента по данным сайта ФНС

Обмен с ГосИС WEB-интеграция Платформа 1С v8.3 Управляемые формы 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия государственного учреждения 1С:Документооборот 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Платные (руб)

Обработка является альтернативой механизму, разработанному фирмой 1С и заполняющему реквизиты контрагента по ИНН или наименованию. Не требуется действующей подписки ИТС. Вызывается как внешняя дополнительная обработка, т.е. используется, непосредственно, из карточки контрагента. Заполнение по ИНН или наименованию реквизитов контрагента по данным сайта ФНС (egrul.nalog.ru) для БП 2.0, БП 3.0, БГУ 1.0, БГУ 2.0, УТ 10.3, УТ 11.x, КА 1.1, КА 2.x, УПП 1.x, ERP 2.x, УНФ 1.5, УНФ 1.6, УНФ 3.0, ДО 2.1

2400 руб.

28.04.2016    88580    160    215    

318
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. itriot11 94 19.11.19 16:38 Сейчас в теме
Наблюдателей, комментарии к задачам не пробовали выдернуть?
2. alexlx 110 19.11.19 17:01 Сейчас в теме
(1)
Наблюдателей, комментарии к задачам не пробовали выдернуть?
Пытался. Наблюдатели выдергиваются этой же обработкой. Поле auditors содержит массив ИД наблюдателей. Комментарии кажется отдельно методом task.commentitem.getlist, в который надо скормить ИД задачи
itriot11; +1 Ответить
3. itriot11 94 19.11.19 17:06 Сейчас в теме
(2) думаю, было бы классно разработать подсистему, которая дергала всю связанную инфу с задачами Битрикса и формировала различные отчеты уже на стороне 1С. У самого, к сожалению, ручки пока так и не дошли до реализации.
4. alexlx 110 19.11.19 17:15 Сейчас в теме
(3) Я тоже думал об этом, но решил не засорять базу. Открыл-посмотрел-закрыл. На этом всё. Не так сильно люблю я битрикс :)
5. ElenaNafty 02.04.20 13:15 Сейчас в теме
Добрый день! Вы пишите "поэтому сначала мы узнаем общее количество элементов в массиве, затем в цикле собираем их все с помощью ключа &start=". А каким запросом можно узнать общее количество задач?
Я сейчас знаю только такой способ:
Получать по 50 штук, пока параметр Next не перестанет приходить в ответе.
6. alexlx 110 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 24 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 42 21.10.20 05:59 Сейчас в теме
11. alexlx 110 22.06.20 09:27 Сейчас в теме
Если в задачах, то там есть поля :
CREATED_BY_LAST_NAME - постановщик;
RESPONSIBLE_LAST_NAME - ответственный;
12. AlexK_2012 07.08.20 14:33 Сейчас в теме
Добрый день!
Может кто сталкивался...
как при отправке задачи в Битрикс24 передать массив наблюдателей?
15. shell_maxim 42 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 862 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 39 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 Сейчас в теме
Задания отображаются по всем пользователям
Оставьте свое сообщение