Получить поля коммерческого предложения crm.quote.fields

Выберите инструмент для разработки с AI-агентом:

  • используйте Битрикс24 Вайбкод, чтобы создать приложение для Битрикс24 по описанию задачи без знания языков программирования. Агент напишет код и разместит приложение на сервере без ручной настройки хостинга
  • используйте MCP-сервер, чтобы разрабатывать интеграцию через REST API в своем проекте. Агент будет обращаться к официальной REST-документации

Scope: crm

Кто может выполнять метод: любой пользователь

DEPRECATED

Развитие метода остановлено. Используйте crm.item.fields.

Метод crm.quote.fields возвращает описание полей коммерческого предложения, в том числе пользовательских.

Параметры метода

Без параметров.

Примеры кода

Как использовать примеры в документации

curl -X POST \
     -H "Content-Type: application/json" \
     -H "Accept: application/json" \
     -d '{}' \
     https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/crm.quote.fields  
curl -X POST \
     -H "Content-Type: application/json" \
     -H "Accept: application/json" \
     -d '{"auth":"**put_access_token_here**"}' \
     https://**put_your_bitrix24_address**/rest/crm.quote.fields  
// This snippet is an ES module: top-level await requires type="module" or a bundler.
// $b24 is an already-initialized SDK instance (see the SDK "Get started" guide).
import { Text } from '@bitrix24/b24jssdk'
import type { B24Frame } from '@bitrix24/b24jssdk'

declare const $b24: B24Frame

type FieldDescription = {
  type: string
  isRequired: boolean
  isReadOnly: boolean
  isImmutable: boolean
  isMultiple: boolean
  isDynamic: boolean
  title: string
  statusType?: string
  isDeprecated?: boolean
  listLabel?: string
  formLabel?: string
  filterLabel?: string
  settings?: Record<string, unknown>
}

// Shape of the payload returned in result (match the "response handling" section of the page)
type QuoteFieldsResult = Record<string, FieldDescription>

try {
  const response = await $b24.actions.v2.call.make<QuoteFieldsResult>({
    method: 'crm.quote.fields',
    params: {},
    requestId: Text.getUuidRfc4122()
  })

  // The payload is available only on a successful response
  if (!response.isSuccess) {
    console.error(response.getErrorMessages().join('; '))
  } else {
    const result = response.getData()!.result
    console.info('Quote fields:', Object.keys(result))
  }
} catch (error) {
  // Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
  console.error(error)
}
<!-- Load the SDK (UMD build); it is exposed as the global B24Js -->
<script src="https://unpkg.com/@bitrix24/b24jssdk@1/dist/umd/index.min.js"></script>
<script>
  async function getQuoteFields() {
    try {
      // Initialize the SDK inside a Bitrix24 frame
      const $b24 = await B24Js.initializeB24Frame()

      const response = await $b24.actions.v2.call.make({
        method: 'crm.quote.fields',
        params: {},
        requestId: B24Js.Text.getUuidRfc4122()
      })

      // The payload is available only on a successful response
      if (!response.isSuccess) {
        console.error(response.getErrorMessages().join('; '))
        return
      }

      const result = response.getData().result
      console.info('Quote fields:', Object.keys(result))
    } catch (error) {
      // Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
      console.error(error)
    }
  }

  document.addEventListener('DOMContentLoaded', getQuoteFields)
</script>
try {
    $response = $b24Service
        ->core
        ->call(
            'crm.quote.fields',
            []
        );

    $result = $response
        ->getResponseData()
        ->getResult();

    echo 'Success: ' . print_r($result, true);
    // Нужная вам логика обработки данных
    processData($result);

} catch (Throwable $e) {
    error_log($e->getMessage());
    echo 'Error fetching quote fields: ' . $e->getMessage();
}
BX24.callMethod(
    "crm.quote.fields",
    {},
    function(result) {
        if (result.error()) {
            console.error(result.error());
        } else {
            console.dir(result.data());
        }
    }
);
require_once('crest.php');

$result = CRest::call(
    'crm.quote.fields',
    []
);

echo '<PRE>';
print_r($result);
echo '</PRE>';
// client и ctx уже созданы — см. раздел «SDK для Go»
res, err := client.Core().Call(ctx, "crm.quote.fields", nil, b24.WithIdempotent())
if err != nil {
	return fmt.Errorf("crm.quote.fields: %w", err)
}

keys, ok := b24.Keys(res.Result)
if !ok {
	return fmt.Errorf("ожидался объект в ответе")
}
fmt.Println("полей в ответе:", len(keys))

Обработка ответа

HTTP-статус: 200

{
  "result": {
    "ID": {
      "type": "integer",
      "isRequired": false,
      "isReadOnly": true,
      "isImmutable": false,
      "isMultiple": false,
      "isDynamic": false,
      "title": "ID"
    },
    "QUOTE_NUMBER": {
      "type": "string",
      "isRequired": false,
      "isReadOnly": true,
      "isImmutable": false,
      "isMultiple": false,
      "isDynamic": false,
      "title": "№ предложения"
    },
    "TITLE": {
      "type": "string",
      "isRequired": true,
      "isReadOnly": false,
      "isImmutable": false,
      "isMultiple": false,
      "isDynamic": false,
      "title": "Тема"
    },
    "STATUS_ID": {
      "type": "crm_status",
      "isRequired": false,
      "isReadOnly": false,
      "isImmutable": false,
      "isMultiple": false,
      "isDynamic": false,
      "statusType": "QUOTE_STATUS",
      "title": "Стадия предложения"
    },
    "CURRENCY_ID": {
      "type": "crm_currency",
      "isRequired": false,
      "isReadOnly": false,
      "isImmutable": false,
      "isMultiple": false,
      "isDynamic": false,
      "title": "Валюта"
    },
    "OPPORTUNITY": {
      "type": "double",
      "isRequired": false,
      "isReadOnly": false,
      "isImmutable": false,
      "isMultiple": false,
      "isDynamic": false,
      "title": "Сумма"
    },
    "TAX_VALUE": {
      "type": "double",
      "isRequired": false,
      "isReadOnly": false,
      "isImmutable": false,
      "isMultiple": false,
      "isDynamic": false,
      "title": "Ставка налога"
    },
    "COMPANY_ID": {
      "type": "crm_company",
      "isRequired": false,
      "isReadOnly": false,
      "isImmutable": false,
      "isMultiple": false,
      "isDynamic": false,
      "title": "Компания"
    },
    "MYCOMPANY_ID": {
      "type": "crm_company",
      "isRequired": false,
      "isReadOnly": false,
      "isImmutable": false,
      "isMultiple": false,
      "isDynamic": false,
      "title": "Реквизиты вашей компании"
    },
    "CONTACT_ID": {
      "type": "crm_contact",
      "isRequired": false,
      "isReadOnly": false,
      "isImmutable": false,
      "isMultiple": false,
      "isDynamic": false,
      "isDeprecated": true,
      "title": "Контакт"
    },
    "CONTACT_IDS": {
      "type": "crm_contact",
      "isRequired": false,
      "isReadOnly": false,
      "isImmutable": false,
      "isMultiple": true,
      "isDynamic": false,
      "title": "CONTACT_IDS"
    },
    "BEGINDATE": {
      "type": "date",
      "isRequired": false,
      "isReadOnly": false,
      "isImmutable": false,
      "isMultiple": false,
      "isDynamic": false,
      "title": "Дата выставления"
    },
    "CLOSEDATE": {
      "type": "date",
      "isRequired": false,
      "isReadOnly": false,
      "isImmutable": false,
      "isMultiple": false,
      "isDynamic": false,
      "title": "Срок"
    },
    "ACTUAL_DATE": {
      "type": "date",
      "isRequired": false,
      "isReadOnly": false,
      "isImmutable": false,
      "isMultiple": false,
      "isDynamic": false,
      "title": "ACTUAL_DATE"
    },
    "OPENED": {
      "type": "char",
      "isRequired": false,
      "isReadOnly": false,
      "isImmutable": false,
      "isMultiple": false,
      "isDynamic": false,
      "title": "Доступно для всех"
    },
    "CLOSED": {
      "type": "char",
      "isRequired": false,
      "isReadOnly": false,
      "isImmutable": false,
      "isMultiple": false,
      "isDynamic": false,
      "title": "Закрыто"
    },
    "COMMENTS": {
      "type": "string",
      "isRequired": false,
      "isReadOnly": false,
      "isImmutable": false,
      "isMultiple": false,
      "isDynamic": false,
      "title": "Комментарий"
    },
    "CONTENT": {
      "type": "string",
      "isRequired": false,
      "isReadOnly": false,
      "isImmutable": false,
      "isMultiple": false,
      "isDynamic": false,
      "title": "Содержание"
    },
    "TERMS": {
      "type": "string",
      "isRequired": false,
      "isReadOnly": false,
      "isImmutable": false,
      "isMultiple": false,
      "isDynamic": false,
      "title": "Условия"
    },
    "CLIENT_TITLE": {
      "type": "string",
      "isRequired": false,
      "isReadOnly": false,
      "isImmutable": false,
      "isMultiple": false,
      "isDynamic": false,
      "title": "Клиент"
    },
    "CLIENT_ADDR": {
      "type": "string",
      "isRequired": false,
      "isReadOnly": false,
      "isImmutable": false,
      "isMultiple": false,
      "isDynamic": false,
      "title": "Адрес"
    },
    "CLIENT_CONTACT": {
      "type": "string",
      "isRequired": false,
      "isReadOnly": false,
      "isImmutable": false,
      "isMultiple": false,
      "isDynamic": false,
      "title": "Контактное лицо"
    },
    "CLIENT_EMAIL": {
      "type": "string",
      "isRequired": false,
      "isReadOnly": false,
      "isImmutable": false,
      "isMultiple": false,
      "isDynamic": false,
      "title": "E-mail"
    },
    "CLIENT_PHONE": {
      "type": "string",
      "isRequired": false,
      "isReadOnly": false,
      "isImmutable": false,
      "isMultiple": false,
      "isDynamic": false,
      "title": "Телефон"
    },
    "CLIENT_TP_ID": {
      "type": "string",
      "isRequired": false,
      "isReadOnly": false,
      "isImmutable": false,
      "isMultiple": false,
      "isDynamic": false,
      "title": "ИНН"
    },
    "CLIENT_TPA_ID": {
      "type": "string",
      "isRequired": false,
      "isReadOnly": false,
      "isImmutable": false,
      "isMultiple": false,
      "isDynamic": false,
      "title": "КПП"
    },
    "ASSIGNED_BY_ID": {
      "type": "user",
      "isRequired": false,
      "isReadOnly": false,
      "isImmutable": false,
      "isMultiple": false,
      "isDynamic": false,
      "title": "Ответственный"
    },
    "CREATED_BY_ID": {
      "type": "user",
      "isRequired": false,
      "isReadOnly": true,
      "isImmutable": false,
      "isMultiple": false,
      "isDynamic": false,
      "title": "Кем создан"
    },
    "MODIFY_BY_ID": {
      "type": "user",
      "isRequired": false,
      "isReadOnly": true,
      "isImmutable": false,
      "isMultiple": false,
      "isDynamic": false,
      "title": "Кем изменён"
    },
    "DATE_CREATE": {
      "type": "datetime",
      "isRequired": false,
      "isReadOnly": true,
      "isImmutable": false,
      "isMultiple": false,
      "isDynamic": false,
      "title": "Дата создания"
    },
    "DATE_MODIFY": {
      "type": "datetime",
      "isRequired": false,
      "isReadOnly": true,
      "isImmutable": false,
      "isMultiple": false,
      "isDynamic": false,
      "title": "Дата изменения"
    },
    "LEAD_ID": {
      "type": "crm_lead",
      "isRequired": false,
      "isReadOnly": false,
      "isImmutable": false,
      "isMultiple": false,
      "isDynamic": false,
      "title": "Лид"
    },
    "DEAL_ID": {
      "type": "crm_deal",
      "isRequired": false,
      "isReadOnly": false,
      "isImmutable": false,
      "isMultiple": false,
      "isDynamic": false,
      "title": "Сделка"
    },
    "PERSON_TYPE_ID": {
      "type": "integer",
      "isRequired": false,
      "isReadOnly": false,
      "isImmutable": false,
      "isMultiple": false,
      "isDynamic": false,
      "title": "Тип клиента"
    },
    "LOCATION_ID": {
      "type": "location",
      "isRequired": false,
      "isReadOnly": false,
      "isImmutable": false,
      "isMultiple": false,
      "isDynamic": false,
      "title": "Местоположение"
    },
    "UTM_SOURCE": {
      "type": "string",
      "isRequired": false,
      "isReadOnly": false,
      "isImmutable": false,
      "isMultiple": false,
      "isDynamic": false,
      "title": "Рекламная система"
    },
    "UTM_MEDIUM": {
      "type": "string",
      "isRequired": false,
      "isReadOnly": false,
      "isImmutable": false,
      "isMultiple": false,
      "isDynamic": false,
      "title": "Тип трафика"
    },
    "UTM_CAMPAIGN": {
      "type": "string",
      "isRequired": false,
      "isReadOnly": false,
      "isImmutable": false,
      "isMultiple": false,
      "isDynamic": false,
      "title": "Обозначение рекламной кампании"
    },
    "UTM_CONTENT": {
      "type": "string",
      "isRequired": false,
      "isReadOnly": false,
      "isImmutable": false,
      "isMultiple": false,
      "isDynamic": false,
      "title": "Содержание кампании"
    },
    "UTM_TERM": {
      "type": "string",
      "isRequired": false,
      "isReadOnly": false,
      "isImmutable": false,
      "isMultiple": false,
      "isDynamic": false,
      "title": "Условие поиска кампании"
    },
    "LAST_ACTIVITY_TIME": {
      "type": "datetime",
      "isRequired": false,
      "isReadOnly": true,
      "isImmutable": false,
      "isMultiple": false,
      "isDynamic": false,
      "title": "LAST_ACTIVITY_TIME"
    },
    "LAST_ACTIVITY_BY": {
      "type": "user",
      "isRequired": false,
      "isReadOnly": true,
      "isImmutable": false,
      "isMultiple": false,
      "isDynamic": false,
      "title": "LAST_ACTIVITY_BY"
    },
    "LAST_COMMUNICATION_TIME": {
      "type": "string",
      "isRequired": false,
      "isReadOnly": true,
      "isImmutable": false,
      "isMultiple": false,
      "isDynamic": false,
      "title": "LAST_COMMUNICATION_TIME"
    },
    "UF_CRM_6710EFCBAF22C": {
      "type": "date",
      "isRequired": false,
      "isReadOnly": false,
      "isImmutable": false,
      "isMultiple": false,
      "isDynamic": true,
      "title": "UF_CRM_6710EFCBAF22C",
      "listLabel": "Окончание РК",
      "formLabel": "Окончание РК",
      "filterLabel": "Окончание РК",
      "settings": {
        "DEFAULT_VALUE": {
          "TYPE": "NONE",
          "VALUE": ""
        }
      }
    }
  },
  "time": {
    "start": 1750416943.169864,
    "finish": 1750416943.26074,
    "duration": 0.09087610244750977,
    "processing": 0.05633091926574707,
    "date_start": "2025-06-20T13:55:43+03:00",
    "date_finish": "2025-06-20T13:55:43+03:00",
    "operating_reset_at": 1750417543,
    "operating": 0
  }
}

Возвращаемые данные

Название
тип

Описание

result
array

Объект с описанием полей коммерческого предложения в формате crm_rest_field_description

time
time

Информация о времени выполнения запроса

Основные поля

Название
тип

Описание

ASSIGNED_BY_ID
integer

Ответственный

BEGINDATE
date

Дата выставления предложения

CLOSED
char

Флаг завершения предложения

CLOSEDATE
date

Дата завершения предложения

COMMENTS
string

Комментарий

COMPANY_ID
integer

Идентификатор компании, связанной с предложением

CONTACT_IDS
integer

Идентификаторы контактов, связанных с предложением. Множественное

CONTENT
string

Содержание предложения

CREATED_BY_ID
integer

Идентификатор пользователя, создавшего предложение. Только для чтения

CURRENCY_ID
crm_currency

Валюта предложения

DATE_CREATE
datetime

Дата создания предложения. Только для чтения

DATE_MODIFY
datetime

Дата изменения предложения. Только для чтения

DEAL_ID
integer

Идентификатор сделки, связанной с предложением

ID
integer

Идентификатор предложения. Только для чтения

LEAD_ID
integer

Идентификатор лида, связанного с предложением

LOCATION_ID
integer

Местоположение клиента

MODIFY_BY_ID
integer

Идентификатор пользователя, изменившего предложение. Только для чтения

MYCOMPANY_ID
integer

Идентификатор компании, от которой делается предложение

OPENED
char

Флаг доступности предложения для всех

OPPORTUNITY
double

Сумма предложения

PERSON_TYPE_ID
integer

Тип плательщика

QUOTE_NUMBER
string

Номер предложения. Только для чтения

STATUS_ID
crm_status

Стадия предложения. Получить значения справочника можно с помощью метода crm.status.list с фильтром по ENTITY_ID=QUOTE_STATUS

TAX_VALUE
double

Ставка налога

TERMS
string

Условия предложения

TITLE
string

Название предложения

UTM_CAMPAIGN
string

Обозначение рекламной кампании

UTM_CONTENT
string

Содержание рекламной кампании. Например, для контекстных объявлений

UTM_MEDIUM
string

Тип трафика. Например, CPC для объявлений или CPM для баннеров

UTM_SOURCE
string

Рекламная система. Например, Yandex-Direct

UTM_TERM
string

Условие поиска кампании. Например, ключевые слова контекстной рекламы

LAST_ACTIVITY_TIME
datetime

Время последней активности. Только для чтения

LAST_ACTIVITY_BY
integer

Идентификатор пользователя, выполнившего последнюю активность. Только для чтения

LAST_COMMUNICATION_TIME
string

Время последней коммуникации. Только для чтения

UF_...

Пользовательские поля. Например, UF_CRM_25534736.

Добавить пользовательское поле в предложение можно с помощью метода crm.quote.userfield.add

Устаревшие поля

Следующие поля сохраняются только для совместимости и не рекомендуются к использованию.

Название
тип

Описание

CLIENT_ADDR
string

Адрес клиента

CLIENT_CONTACT
string

Контактное лицо клиента

CLIENT_EMAIL
string

Email клиента

CLIENT_PHONE
string

Телефон клиента

CLIENT_TITLE
string

Название клиента

CLIENT_TP_ID
string

ИНН клиента

CLIENT_TPA_ID
string

КПП клиента

CONTACT_ID
integer

Идентификатор контакта, связанного с предложением

Обработка ошибок

Метод crm.quote.fields не возвращает ошибки: он не принимает параметров и не проверяет права доступа.

Статусы и коды системных ошибок

HTTP-статус: 4xx, 5xx

Описанные ниже ошибки возвращает сам REST API, а не логика конкретного метода. Они могут прийти в ответ на любой метод.

Статус

Код
Текст ошибки

Описание

500

INTERNAL_SERVER_ERROR
Internal server error

Возникла внутренняя ошибка сервера. Повторите вызов, а если ошибка сохраняется, обратитесь к администратору сервера или в техническую поддержку Битрикс24

500

ERROR_UNEXPECTED_ANSWER
Server returned an unexpected response

Сервер вернул неожиданный ответ. Повторите вызов, а если ошибка сохраняется, обратитесь к администратору сервера или в техническую поддержку Битрикс24

503

QUERY_LIMIT_EXCEEDED
Too many requests

Превышен лимит на интенсивность запросов

429

OPERATION_TIME_LIMIT
Method is blocked due to operation time limit

Метод заблокирован из-за превышения лимита на ресурсоемкость запросов. Блокировка снимается автоматически, когда накопленное время выполнения метода перестает превышать лимит

401

NO_AUTH_FOUND
Wrong authorization data

В запросе нет авторизационных данных: не передан ни access-токен, ни код вебхука

401

INVALID_REQUEST
Https required

Методы вызываются только по протоколу HTTPS

401

OVERLOAD_LIMIT
REST API is blocked due to overload

REST API заблокирован из-за перегрузки. Это ручная индивидуальная блокировка. Чтобы ее снять, обратитесь в техническую поддержку Битрикс24

401

ACCESS_DENIED
REST is available only on commercial plans

REST API доступен только на коммерческих тарифах. У вебхука текст ошибки другой — REST is available only by subscription

401

INVALID_CREDENTIALS
Invalid request credentials

Не найден активный вебхук с указанным идентификатором пользователя и секретным кодом

404

ERROR_METHOD_NOT_FOUND
Method not found!

Метод с таким именем не найден. Имя написано с ошибкой, метода нет в REST API или он недоступен без нужного скоупа

401

insufficient_scope
The request requires higher privileges than provided by the webhook token

Запрос требует более широких прав, чем есть у токена: у вебхука это выданные ему права, у приложения — скоуп. У приложения текст ошибки заканчивается на provided by the access token

401

expired_token
The access token provided has expired

Срок действия access-токена истек

401

user_access_error
The user does not have access to the application

Приложение установлено, но администратор Битрикс24 открыл доступ к нему только конкретным пользователям

403

PORTAL_DELETED
Portal was deleted

Публичная часть сайта закрыта. Чтобы открыть ее на коробочной установке, отключите опцию «Временное закрытие публичной части сайта». Путь к настройке: Рабочий стол > Настройки > Настройки продукта > Настройки модулей > Главный модуль > Временное закрытие публичной части сайта

Продолжите изучение