Как передать список значений из пользовательского поля через вебхук?

Как получить текстовые значения списочных полей вместо их числовых идентификаторов при использовании Bitrix24 API и Apps Script?

Я успешно настроил интеграцию Bitrix24 API и Apps Script, чтобы получать данные о нужных мне сделках и записывать их в Гугл-таблицу. Однако, вместо текстовых значений, я получаю числовые идентификаторы для списочных полей.

Я хотел бы узнать, как изменить мой url-запрос, чтобы получить текстовые значения, а не идентификаторы? Вот пример url-запроса: 

https://xxx.bitrix24.ru/rest/1/xxx/crm.deal.list&select[]=UF_xxx

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

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

Заранее благодарю за помощь!
  • 16 февраля 2024 г. 16:18
Ответы на вопрос 1
Чтобы получить текстовые значения списочных полей вместо их числовых идентификаторов при использовании Bitrix24 API и Apps Script, вам нужно включить параметр "runtime" в ваш url-запрос. 

Измените ваш url-запрос следующим образом:

https://xxx.bitrix24.ru/rest/1/xxx/crm.deal.list?select[]=UF_xxx&runtume=UF_xxx

Замените "UF_xxx" на фактическое название вашего пользовательского поля. Это позволит вам получить текстовые значения, связанные с пользовательским полем, вместо идентификаторов.

Чтобы передать названия пользовательских полей в заголовках Google таблицы, вам нужно указать эти названия вручную в вашем скрипте Apps Script. Ниже приведен пример кода, который выполняет это:

```javascript
function writeToSheet() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  
  var headers = {
    UF_xxx: "Название поля 1",
    UF_yyy: "Название поля 2",
    UF_zzz: "Название поля 3"
  };
  
  var data = getBitrixData(); // Ваш код для получения данных из Bitrix24 API
  
  // Запись названий полей в заголовки таблицы
  var row = 1;
  var col = 1;
  for (var field in headers) {
    sheet.getRange(row, col).setValue(headers[field]);
    col++;
  }
  
  // Запись данных в таблицу
  row = 2;
  col = 1;
  for (var i = 0; i < data.length; i++) {
    for (var field in headers) {
      if (data[i][field]) {
        sheet.getRange(row, col).setValue(data[i][field]);
      }
      col++;
    }
    row++;
    col = 1;
  }
}
```

В этом примере `headers` - это объект, который сопоставляет названия пользовательских полей с соответствующими названиями заголовков таблицы. Ваш код для получения данных из Bitrix24 API должен быть вставлен в функцию `getBitrixData()`, чтобы получить данные из API и вернуть их в формате массива объектов.

Этот код записывает названия полей в первую строку таблицы и данные в следующие строки, в соответствии с их положением в заголовке.

Убедитесь, что вы правильно настроили URL-запрос и измените код Apps Script в соответствии с вашими конкретными требованиями и структурой данных.
Похожие вопросы