Данные из Битрикс24 (по rest API)

В данной статье мы рассмотрим пример выгрузки данных Битрикс24 (по rest API).

Итак, заходим в раздел «Проекты» Экстрактора 1С, нажимаем «Создать».

Выбираем тип источника данных «Обработчик».

В открывшемся окне задаем название и добавляем источник-обработчик.

Теперь необходимо заполнить созданный обработчик. Указываем:

  • наименование обработчика;

  • тип обработчика (в нашем случае, это «Источник данных»);

  • Скрипт обработчика предложенный ниже.

Текст обработчика для загрузки данных (первые 50 записей) сделок из Битрикс24
Результат = Новый ТаблицаЗначений; Результат.Колонки.Добавить("ID", Новый ОписаниеТипов("Число",,, Новый КвалификаторыЧисла(10,0))); Результат.Колонки.Добавить("TITLE", Новый ОписаниеТипов("Строка",,,, Новый КвалификаторыСтроки(0,ДопустимаяДлина.Переменная))); Результат.Колонки.Добавить("BEGINDATE", Новый ОписаниеТипов("Дата")); Результат.Колонки.Добавить("OPPORTUNITY", Новый ОписаниеТипов("Число",,, Новый КвалификаторыЧисла(10,2))); Результат.Колонки.Добавить("TAX_VALUE", Новый ОписаниеТипов("Число",,, Новый КвалификаторыЧисла(10,2))); Результат.Колонки.Добавить("CURRENCY_ID", Новый ОписаниеТипов("Строка",,,, Новый КвалификаторыСтроки(3))); Результат.Колонки.Добавить("COMPANY_ID", Новый ОписаниеТипов("Число",,, Новый КвалификаторыЧисла(10,0))); Результат.Колонки.Добавить("CATEGORY_ID", Новый ОписаниеТипов("Число",,, Новый КвалификаторыЧисла(10,0))); Результат.Колонки.Добавить("STAGE_ID", Новый ОписаниеТипов("Строка",,,, Новый КвалификаторыСтроки(0,ДопустимаяДлина.Переменная))); Результат.Колонки.Добавить("COMMENTS", Новый ОписаниеТипов("Строка",,,, Новый КвалификаторыСтроки(0,ДопустимаяДлина.Переменная))); Если Объект.Свойство("ЗапросОписанияПолей") Тогда Результат = Результат.Колонки; Иначе Сервер = "ТУТ_ПОРТАЛ.bitrix24.ru"; //без HTTTPS, просто имя портала ПутьВебхука = "/rest/1/ТУТ_ВЕБХУК/"; // тут саму часть хука, от rest и до конца Метод = "crm.deal.list"; // метод, которым получаем сделки Транспорт = "json"; Поля = "ID,TITLE,BEGINDATE,OPPORTUNITY,TAX_VALUE,CURRENCY_ID,COMPANY_ID,CATEGORY_ID,STAGE_ID,COMMENTS"; МассивПолей = СтрРазделить(Поля, ","); МассивПараметров = Новый Массив; Для каждого Поле Из массивПолей Цикл МассивПараметров.Добавить("select[]=" + Поле); КонецЦикла; ПараметрыМетода = СтрСоединить(МассивПараметров, "&"); ssl = Новый ЗащищенноеСоединениеOpenSSL(); Соединение = Новый HTTPСоединение(Сервер,,,,,, ssl); HTTPЗапрос = Новый HTTPЗапрос(ПутьВебхука + Метод + "." + Транспорт + "?" + ПараметрыМетода); Ответ = Соединение.Получить(HTTPЗапрос); ОтветСтрокой = Ответ.ПолучитьТелоКакСтроку(); ЧтениеJSON = Новый ЧтениеJSON; ЧтениеJSON.УстановитьСтроку(ОтветСтрокой); СтруктураОтвета = ПрочитатьJSON(ЧтениеJSON, Истина); МассивСделок = СтруктураОтвета.Получить("result"); Для каждого Сделка Из МассивСделок Цикл Строка = Результат.Добавить(); Для каждого Поле Из МассивПолей Цикл Строка[Поле] = Сделка.Получить(Поле); КонецЦикла; Строка["BEGINDATE"] = XMLЗначение(Тип("Дата"), Сделка.Получить("BEGINDATE")); КонецЦикла; КонецЕсли;

Данный код обработчика работает следующим образом:

  1. Описывает колонки будущей таблицы набора данных.

  2. Поключается к Битрикс24 и выбирает данные из crm.deal.listт

  3. Получает ответ в JSON-формате и разбирает егот

  4. Для каждой сделки, перебирает поля и записывает строки и поля в «Результат».

  5. Преобразовывает поля с типом «Дата» в читаемый в 1С формат.

В результате, получаем следующие источник и таблицу-приемник:

И выгружаем данные обычным образом.