Битрикс24: Используем REST API для создания Задачи из документа 1С - с файлами, пользовательскими полями, помещением в группу

16.03.26

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

Создание задачи Битрикс24 на основании произвольного документа 1С. Поддерживаются Группы/коллабы/проекты Битрикс, Пользовательские поля, Картинки в описании, форматирование и прикрепленные файлы. Расширение. Совместима со всеми конфигурациями на базе БСП.

Файлы

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

Наименование Скачано Купить файл
Битрикс24: Используем REST API для создания Задачи из документа 1С (приложенные файлы, пользовательские полями, группами)):
.cfe 522,78Kb
2 3 000 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Описание разработки.

Тип - Расширение (адаптация).

Реализует создание задач Битрикс24 из данных произвольного документа "Задача" в  базе 1С.

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

Создание задачи производится от лица Пользователя-"робота" Битрикс24. Сопоставление остальных пользователей 1С с пользователями Битрикс производится по адресам электронной почты, указанных в Контактной информации пользователя 1С.

Поддерживаются все конфигурации 1С, основанные на БСП 3.1. Расширение разработано на основе Демонстрационной версии Библиотеки Стандартных подистем, редакция 3.1 (https://its.1c.ru/db/metod8dev/content/5856/hdoc)

 

Раздел 1. Настройка пользователя Битрикс24: получение токена вебхука и настройка прав

Первым этапом настройки интеграции является подготовка портала Битрикс24.

Для обеспечения безопасного и легитимного обмена данными системе 1С необходимо предоставить «ключ доступа» (токен вебхука, созданного от имени определенного Пользователя Бтирикс).

Процесс начинается с создания в Битрикс24 специального пользователя, например, «Робот интеграции 1С», которому делегируются права на выполнение набора строго определенных операций. Наша интеграция обращается к функционалу Битрикс с помощью вебхука. Вебхук потребуется создать. (https://apidocs.bitrix24.ru/local-integrations/local-webhooks.html)

При создании входящего вебхука обязательно должны быть отмечены следующие права (scopes): 

  • disk (для работы с файлами), 
  •  user (для запроса данных пользователей);
  • sonet_group (для привязки создаваемой задачи к рабочим группам, коллабам, проектам);
  • task (непосредственно для создания и изменения задач);
  • user.userfield (для работы с пользовательскими полями, если потребуется расширить карточку задачи).

Полученный код вебхука (URL токена) сохраняем куда-нибудь в секретное место. Чуть позже мы его внесем в настройки пользователя "робота" обработки 1С.

2. Следующим этапом - можно создать парочку "пользовательских полей" (https://helpdesk.bitrix24.ru/open/2573061/). Можно и не создавать, впрочем.

 

Раздел 2. Запуск обработки «Настройка интеграции Битрикс» и ввод первичных данных

После создания технических учетных записей наступает этап Настройки. В расширение входит общая форма «Настройка интеграции Битрикс». Откроем её. 

 

 

Порядок настройки: 

- Вводим Адрес портала своего Битрикс24, Идентификатор пользователя Битрикс, и Токен вебхука, полученный ранее. 

- Нажимаем кнопку "Обновить". После этого в табличные части будут автоматически "подтянуты" сведения о группах Битрикс, доступных пользователю, хранилищах файлов, а также - составу пользовательских полей задач. После этого:

- ТЧ "Группы": Указываем галочкой группу, в которую по умолчанию будут попадать создаваемые задачи.

 

 

-  ТЧ "Пользовательские поля": галочкой указываем пользовательские поля, которые должны быть заполнены при создании задачи. При этом необходимо выбрать из списка, каким значением ("Значение заполнения") будет заполняться каждое из них. (В целях безопасности использования, значения предопределены , но никто не мешает дополнить этот список).

- ТЧ "События": указываем Состояние, которое будет назначено документу в 1С после создания задачи Битрикс. Например - "Закрыто".

- Жмём "Сохранить". Сохранение настроек производится в Безопасном хранилище конфигурации. (https://its.1c.ru/db/v8std/content/740/hdoc) Мы же не используем в коде "магические строки", ведь так? (*мем с Падме)

 

Раздел 3. Создание "задачи" в информационной базе на основании "обращения" пользователя.

Используем стандартную бизнес-логику: "Обращение"-"Задача".

Создаем в 1С документ «Обращение (демо)» . Для упрощения тестирования:  описание Обращения будет заполнено из Макета HTML автоматически при первом открытии. Текст и картинки любезно предоставил мой китайский коллега, умеющий в into the unknown :-).

 

 

На основании "Обращения" создаем документ "Задача (демо)".

 

 

 

Раздел 4. Создание задачи Битрикс24 из формы Документа.

В дополнительном командном интерфейсе ("Ещё") формы "Задачи" появилась кнопка "(Битрикс24) Создать задачу".

 

 

Нажимаем, подтверждаем.

Что происходит "под капотом":

// Создает задачу в Битрикс24 по исходящим данным из Задачи в Информационной Базе
 // Параметры:
 //		ИсточникСсылка	- Ссылка на документ Задачи в информационной базе	
 //	ПараметрыАвторизации - Структура - Структура параметров пользователя. Ключи структуры:
 //												*АдресПортала - Строка - Адрес портала Б24
 //												*Идентификатор - Число - ИД пользователя Б24
 //												*ВебХук - Строка - токен входящего вебхука Б24
 //	СтруктураВозвратныхПараметров - Структура - возвратный параметр. Используется для результатов создания задачи	
 Процедура СоздатьЗадачуБитрикс24(ИсточникСсылка, ПараметрыАвторизации=Неопределено, СтруктураВозвратныхПараметров=Неопределено) Экспорт
	 
	 // Признак, означающий, что на каком-то этапе произошла ошибка
	 Перем Ошибка;
	 Ошибка 		= Ложь;
 
	 ТелоЗапроса	= НовыеПараметрыСозданияЗадачи(); // Формируем "пустое" тело запроса
	 
	 // 0. Настройки пользователя Битрикс24 по умолчанию - Робот для создания и менеджмента Задач Битрикс
	 Если ПараметрыАвторизации	= Неопределено Тогда
		 ПараметрыАвторизации  = ПараметрыАвторизацииРоботаБитрикс24();
	 КонецЕсли;
	  
	 // 1. Запросом достаем данные документа, представляем Описание как совокупность Строки и Массива присоединенных Файлов
	 ДанныеДокумента						= ПолучитьДанныеДляСозданияЗадачиБитрикс24(ИсточникСсылка); 
	 МассивОписанийПрисоединяемыхФайлов		= Новый Массив;
	 ЗаполнитьПараметрыЗадачи(ТелоЗапроса, ДанныеДокумента, МассивОписанийПрисоединяемыхФайлов); 
	 
	 // 2. Грузим файлы в хранилище Битрикс, получаем идентификаторы файлов
	 ЗагрузитьПрисоединенныеФайлыЗадачиБитрикс24(МассивОписанийПрисоединяемыхФайлов, ПараметрыАвторизации, ТелоЗапроса, Ошибка);  
	 // 3. Готовим текст Описания Задачи Битрикс с учетом загруженных файлов
	 ЗаполнитьИдентификаторыФайловВОписанииЗадачи(МассивОписанийПрисоединяемыхФайлов,ТелоЗапроса);
	 
	 // 4. Вызываем универсальный метод "Отправить запрос". В этот раз от него требуется создать нам 
     // Задачу Битрикс.
	 МетодAPI	= "tasks.task.add";
	 МетодHTTP	= "POST"; 
	 
	 ОтветHTTPСервиса = ОтправитьЗапрос(МетодHTTP,МетодAPI,ПараметрыАвторизации,,ТелоЗапроса);
	 
	 // 5. Если запрос вернул код ошибки HTTP, отобразить ошибку сервиса Пользователю. 
	 Если ОтветHTTPСервиса.Получить("Ошибка") Тогда
		 Ошибка=Истина;
		 ОтобразитьОшибкуHTTPСервиса(ОтветHTTPСервиса);
	 // 6. Если Задача создана успешно, готовим данные для отображения результата Пользователю. Например, 
     // разместим в документе 1С ссылку на задачу Битрикс.	
	 Иначе
		 // 6.1 Собрать ссылку на созданную задачу
		 СсылкаНаЗадачу="";
		 Попытка
			 СсылкаНаЗадачу=СтрШаблон("https://%1/company/personal/user/%2/tasks/task/view/%3/",
			 	ПараметрыАвторизации.АдресПортала,
			 	ПараметрыАвторизации.Идентификатор,
			 ОтветHTTPСервиса.Получить("Ответ").Получить("result").Получить("task").Получить("id"));
		 Исключение 
			 Ошибка=Истина;	
		 КонецПопытки;
		
		 // 6.2 Обработчик "При создании задачи Битрикс24" вносит сведения о результатах в 
         //     документ 1С, и устанавливает соотв. Статус
		 ДополнительныеПараметры = Новый Структура;
		 ДополнительныеПараметры.Вставить("СсылкаНаЗадачуБитрикс24",СсылкаНаЗадачу);
		 ДополнительныеПараметры.Вставить("УстановитьСостояниеЗадачи",ПараметрыАвторизации.УстановитьСостояниеЗадачи);
		 
		 ДанныеОтветаHTTP = ОтветHTTPСервиса.Получить("Ответ");
		 ПриСозданииЗадачиБитрикс24(ИсточникСсылка, ДанныеОтветаHTTP, ДополнительныеПараметры);
	 КонецЕсли;  
	 
	 // 7. Вернуть ответ о статусе создания задачи
	 СтруктураВозвратныхПараметров.Вставить("Ошибка", Ошибка);
 КонецПроцедуры 

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

1. Извлечение двоичных данных картинок из Описания Задачи ИБ и замена их в тексте временными "якорями". 

2. Предварительная загрузка извлеченных в п1. файлов в Битрикс24, получение их идентификаторов (Номеров).

3. Формирование текста Описания задачи Битрикс24:

- перенос текста, преобразование форматирования из тегов HTML - в  BBCodes, которые используются в Б24;

- замена наших "якорей" на специальный BBCode для отображения картинок внутри текста. Так в Описании задачи Битрикс появятся привычные глазу "inline"-картинки.

4. Получение и обработка ответа API Битрикс. Создаем и отображаем на форме кликабельную гиперссылку на задачу Битрикс. Устанавливаем требуемое Состояние документа 1С.

 

Проверено на следующих конфигурациях и релизах:

  • 1С:Библиотека стандартных подсистем, редакция 3.1, релизы 3.1.11.461
  • Управление торговлей, редакция 11, релизы 11.5.22.80

Вступайте в нашу телеграмм-группу Инфостарт

Битрикс24 расширение БСП интеграция файлы пользовательские поля REST API группы

См. также

Сайты и интернет-магазины WEB-интеграция Системный администратор Программист Пользователь 1С:Предприятие 8 1C:Бухгалтерия 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

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

42700 руб.

03.08.2020    23646    35    24    

27

WEB-интеграция Программист 1С:Предприятие 8 1С:Бухгалтерия 3.0 Бытовые услуги, сервис Платные (руб)

Расширение для автоматизации передачи данных между сервисом Vetmanager с 1С: Бухгалтерия 3.0. Решение позволяет загружать документы и справочники из Ветменеджер в 1С:Бухгалтерию, сокращая время на ручной ввод данных и минимизируя ошибки.

24000 руб.

02.02.2021    22363    67    52    

42

WEB-интеграция Загрузка и выгрузка в Excel Программист Пользователь 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Розничная и сетевая торговля (FMCG) Россия Платные (руб)

Расширение освободит вас от необходимости вручную обновлять товары в группах ВКонтакте. Достаточно задать правила один раз, и система автоматически синхронизирует ваш каталог. Вы сможете легко выбирать, какие товары публиковать, создавая гибкие критерии отбора. Например, можно добавить важные для покупателей параметры: цвет, размер или другие характеристики.

12200 руб.

29.08.2025    2099    7    6    

9

WEB-интеграция Программист Бизнес-аналитик 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Оптовая торговля, дистрибуция, логистика ИТ-компания Платные (руб)

Модуль "Экспортер" — это расширение для 1С, предназначенное для автоматизации процессов выгрузки данных. Оно позволяет эффективно извлекать, преобразовывать и передавать данные из систем 1С в интеграционную платформу Spot2D. Подсистема упрощает настройку, снижает количество ручных операций и обеспечивает удобный контроль данных.

17568 руб.

20.12.2024    5678    25    4    

27
Для отправки сообщения требуется регистрация/авторизация