crm.type.list
Получить список пользовательских типов
Описание
Метод получает список настроек смарт-процессов.
Параметры
order
object
необязательный
Объект формата: { field_1: value_1, field_2: value_2, ..., field_n: value_n }, где
* field_n: название поля по которому будет произведена сортировка выборки смарт-процессов
* value_n: значение типа string, равное:
* ASC — сортировка по возрастанию
* DESC — сортировка по убыванию
Возможные значения для field соответствуют полям объекта type
filter
object
необязательный
Объект формата: { field_1: value_1, field_2: value_2, ..., field_n: value_n }, где
* field_n: название поля по которому будет отфильтрована выборка смарт-процессов
* value_n: значение фильтра
Возможные значения для field соответствуют полям объекта type
Фильтр может иметь неограниченную вложенность и количество условий.
По умолчанию все условия соединяются друг с другом как AND (логическое И). Если нужно использовать OR (Логическое ИЛИ), то можно передать специальный ключ logic со значением OR.
К ключам field_n можно добавить префикс, уточняющий работу фильтра.
Возможные значения префикса:
- >= — больше либо равно
- > — больше
- <= — меньше либо равно
- < — меньше
- @ — IN, в качестве значения передается массив
- !@ — NOT IN, в качестве значения передается массив
- % — LIKE, поиск по подстроке. Символ % в значении фильтра передавать не нужно. Поиск ищет подстроку в любой позиции строки
- =% — LIKE, поиск по подстроке. Символ % нужно передавать в значении. Примеры:
- "мол%" — ищет значения, начинающиеся с «мол»
- "%мол" — ищет значения, заканчивающиеся на «мол»
- "%мол%" — ищет значения, где «мол» может быть в любой позиции
- %= — LIKE (аналогично =%)
- !% — NOT LIKE, поиск по подстроке. Символ % в значении фильтра передавать не нужно. Поиск идет с обеих сторон
- !=% — NOT LIKE, поиск по подстроке. Символ % нужно передавать в значении. Примеры:
- "мол%" — ищет значения, не начинающиеся с «мол»
- "%мол" — ищет значения, не заканчивающиеся на «мол»
- "%мол%" — ищет значения, где подстроки «мол» нет в любой позиции
- !%= — NOT LIKE (аналогично !=%)
- = — равно, точное совпадение (используется по умолчанию)
- != — не равно
- ! — не равно
start
integer
необязательный
Параметр используется для управления постраничной навигацией.
Размер страницы результатов всегда статичный — 50 записей.
Чтобы выбрать вторую страницу результатов, передайте значение 50. Чтобы выбрать третью страницу результатов — значение 100 и так далее.
Формула расчета значения параметра start:
start = (N-1) * 50, где N — номер нужной страницы
Примеры запроса
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"filter":[{"logic":"OR",{"%title":"5"},{"%title":"0"}]},"order":{"id":"DESC"}}' \
https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/crm.type.list
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"filter":[{"logic":"OR",{"%title":"5"},{"%title":"0"}]},"order":{"id":"DESC"},"auth":"**put_access_token_here**"}' \
https://**put_your_bitrix24_address**/rest/crm.type.list
// 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, ISODate } from '@bitrix24/b24jssdk'
declare const $b24: B24Frame
type CrmTypeItem = {
id: number
title: string
code: string
createdBy: number
entityTypeId: number
customSectionId: number | null
isCategoriesEnabled: string
isStagesEnabled: string
isBeginCloseDatesEnabled: string
isClientEnabled: string
isUseInUserfieldEnabled: string
isLinkWithProductsEnabled: string
isMycompanyEnabled: string
isDocumentsEnabled: string
isSourceEnabled: string
isObserversEnabled: string
isRecyclebinEnabled: string
isAutomationEnabled: string
isBizProcEnabled: string
isSetOpenPermissions: string
isPaymentsEnabled: string
isCountersEnabled: string
createdTime: ISODate
updatedTime: ISODate
updatedBy: number
}
// Shape of the payload returned in result (match the "response handling" section of the page)
type CrmTypeListResult = {
types: CrmTypeItem[]
}
try {
// crm.type.list returns a single page (max 50 records). For the whole result set
// use a list helper: $b24.actions.v2.callList.make() returns every record as one
// array, $b24.actions.v2.fetchList.make() yields them in chunks (async generator).
// NOTE: the list helpers do not accept `order` (it is excluded from their params, so
// passing it is a TS error) — keep this call.make + `start` variant when sort matters.
const response = await $b24.actions.v2.call.make<CrmTypeListResult>({
method: 'crm.type.list',
params: {
filter: {
'0': {
logic: 'OR',
'0': {
'%title': '5',
},
'1': {
'%title': '0',
},
},
},
order: {
id: 'DESC',
},
start: 0,
},
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('Smart process types:', result.types, 'Page size:', result.types.length)
}
} 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 listCrmTypes() {
try {
// Initialize the SDK inside a Bitrix24 frame
const $b24 = await B24Js.initializeB24Frame()
// crm.type.list returns a single page (max 50 records). For the whole result set
// use a list helper: $b24.actions.v2.callList.make() returns every record as one
// array, $b24.actions.v2.fetchList.make() yields them in chunks (async generator).
// NOTE: the list helpers do not accept `order` (it is excluded from their params, so
// passing it is a TS error) — keep this call.make + `start` variant when sort matters.
const response = await $b24.actions.v2.call.make({
method: 'crm.type.list',
params: {
filter: {
'0': {
logic: 'OR',
'0': {
'%title': '5',
},
'1': {
'%title': '0',
},
},
},
order: {
id: 'DESC',
},
start: 0,
},
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('Smart process types:', result.types, 'Page size:', result.types.length)
} catch (error) {
// Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
console.error(error)
}
}
document.addEventListener('DOMContentLoaded', listCrmTypes)
</script>
from b24pysdk.errors import BitrixAPIError, BitrixSDKException
try:
bitrix_response = client.crm.type.list(
filter={
"isAutomationEnabled": "Y",
"isBizProcEnabled": "Y",
"isCategoriesEnabled": "Y",
"isClientEnabled": "Y",
},
).response
result = bitrix_response.result
print(result)
except BitrixAPIError as error:
print(
"Ошибка Bitrix API",
f"error: {error.error}",
f"error_description: {error.error_description}",
sep="\n",
)
except BitrixSDKException as error:
print(f"Ошибка Bitrix SDK: {error.message}")
except Exception as error:
print(f"Непредвиденная ошибка: {error}")
from b24pysdk.errors import BitrixAPIError, BitrixSDKException
try:
bitrix_response = client.crm.type.list(
filter={
"isAutomationEnabled": "Y",
"isBizProcEnabled": "Y",
"isCategoriesEnabled": "Y",
"isClientEnabled": "Y",
},
order={
"id": "ASC",
},
).as_list().response
result = bitrix_response.result
for item in result:
print(item)
except BitrixAPIError as error:
print(
"Ошибка Bitrix API",
f"error: {error.error}",
f"error_description: {error.error_description}",
sep="\n",
)
except BitrixSDKException as error:
print(f"Ошибка Bitrix SDK: {error.message}")
except Exception as error:
print(f"Непредвиденная ошибка: {error}")
from b24pysdk.errors import BitrixAPIError, BitrixSDKException
try:
bitrix_response = client.crm.type.list(
filter={
"isAutomationEnabled": "Y",
"isBizProcEnabled": "Y",
"isCategoriesEnabled": "Y",
"isClientEnabled": "Y",
},
order={
"id": "ASC",
},
).as_list_fast(descending=True).response
result = bitrix_response.result
for item in result:
print(item)
except BitrixAPIError as error:
print(
"Ошибка Bitrix API",
f"error: {error.error}",
f"error_description: {error.error_description}",
sep="\n",
)
except BitrixSDKException as error:
print(f"Ошибка Bitrix SDK: {error.message}")
except Exception as error:
print(f"Непредвиденная ошибка: {error}")
require_once('crest.php');
$result = CRest::call(
'crm.type.list',
[
'filter' => [
[
'logic' => 'OR',
[
'%title' => '5',
],
[
'%title' => '0',
],
],
],
'order' => [
'id' => 'DESC',
],
]
);
echo '<PRE>';
print_r($result);
echo '</PRE>';
Ответ
HTTP-статус: 200
{
"result": {
"types": [
{
"id": 37,
"title": "Смарт-процесс #20",
"code": "",
"createdBy": 1,
"entityTypeId": 1256,
"customSectionId": null,
"isCategoriesEnabled": "Y",
"isStagesEnabled": "N",
"isBeginCloseDatesEnabled": "Y",
"isClientEnabled": "Y",
"isUseInUserfieldEnabled": "Y",
"isLinkWithProductsEnabled": "N",
"isMycompanyEnabled": "Y",
"isDocumentsEnabled": "Y",
"isSourceEnabled": "Y",
"isObserversEnabled": "Y",
"isRecyclebinEnabled": "Y",
"isAutomationEnabled": "Y",
"isBizProcEnabled": "N",
"isSetOpenPermissions": "N",
"isPaymentsEnabled": "N",
"isCountersEnabled": "N",
"createdTime": "2024-07-08T17:24:55+02:00",
"updatedTime": "2024-07-08T17:24:55+02:00",
"updatedBy": 1
},
{
"id": 32,
"title": "Смарт-процесс #15",
"code": "",
"createdBy": 1,
"entityTypeId": 1246,
"customSectionId": null,
"isCategoriesEnabled": "N",
"isStagesEnabled": "Y",
"isBeginCloseDatesEnabled": "N",
"isClientEnabled": "Y",
"isUseInUserfieldEnabled": "Y",
"isLinkWithProductsEnabled": "Y",
"isMycompanyEnabled": "N",
"isDocumentsEnabled": "N",
"isSourceEnabled": "N",
"isObserversEnabled": "N",
"isRecyclebinEnabled": "N",
"isAutomationEnabled": "N",
"isBizProcEnabled": "Y",
"isSetOpenPermissions": "Y",
"isPaymentsEnabled": "N",
"isCountersEnabled": "N",
"createdTime": "2024-07-08T17:24:52+02:00",
"updatedTime": "2024-07-08T17:24:52+02:00",
"updatedBy": 1
},
{
"id": 27,
"title": "Смарт-процесс #10",
"code": "",
"createdBy": 1,
"entityTypeId": 1236,
"customSectionId": null,
"isCategoriesEnabled": "N",
"isStagesEnabled": "Y",
"isBeginCloseDatesEnabled": "Y",
"isClientEnabled": "Y",
"isUseInUserfieldEnabled": "N",
"isLinkWithProductsEnabled": "N",
"isMycompanyEnabled": "Y",
"isDocumentsEnabled": "N",
"isSourceEnabled": "Y",
"isObserversEnabled": "N",
"isRecyclebinEnabled": "N",
"isAutomationEnabled": "Y",
"isBizProcEnabled": "Y",
"isSetOpenPermissions": "Y",
"isPaymentsEnabled": "N",
"isCountersEnabled": "N",
"createdTime": "2024-07-08T17:24:50+02:00",
"updatedTime": "2024-07-08T17:24:50+02:00",
"updatedBy": 1
},
{
"id": 22,
"title": "Смарт-процесс #5",
"code": "",
"createdBy": 1,
"entityTypeId": 1226,
"customSectionId": null,
"isCategoriesEnabled": "Y",
"isStagesEnabled": "N",
"isBeginCloseDatesEnabled": "N",
"isClientEnabled": "N",
"isUseInUserfieldEnabled": "Y",
"isLinkWithProductsEnabled": "Y",
"isMycompanyEnabled": "N",
"isDocumentsEnabled": "N",
"isSourceEnabled": "Y",
"isObserversEnabled": "Y",
"isRecyclebinEnabled": "Y",
"isAutomationEnabled": "N",
"isBizProcEnabled": "Y",
"isSetOpenPermissions": "Y",
"isPaymentsEnabled": "N",
"isCountersEnabled": "N",
"createdTime": "2024-07-08T17:24:48+02:00",
"updatedTime": "2024-07-08T17:24:48+02:00",
"updatedBy": 1
}
]
},
"time": {
"start": 1720516793.835427,
"finish": 1720516794.697913,
"duration": 0.8624858856201172,
"processing": 0.07323503494262695,
"date_start": "2024-07-09T11:19:53+02:00",
"date_finish": "2024-07-09T11:19:54+02:00",
"operating": 0
},
"total": 4
}
Возвращаемые данные
result
object
Корневой элемент ответа. Содержит единственный ключ types
types
type[]
Список смарт-процессов, каждый из которых соответствует структуре объекта type
time
time
Информация о времени выполнения запроса
total
integer
Общее количество найденных записей
Обработка ошибок
HTTP-статус: 400
{
"error": "ACCESS_DENIED",
"error_description": "Доступ запрещен"
}
| Код | Описание | Значение |
|---|---|---|
403 |
allowed_only_intranet_user |
Действие разрешено только интранет-пользователям |
400 |
ACCESS_DENIED |
Доступ запрещен |
400 |
INVALID_ARG_VALUE |
Invalid filter: field 'field_n' is not allowed in filter |
400 |
INVALID_ARG_VALUE |
Invalid filter: field 'field_n' has invalid value |
400 |
INVALID_ARG_VALUE |
Invalid order: field 'field_n' is not allowed in order |
400 |
INVALID_ARG_VALUE |
Invalid order: allowed sort directions are ASC, DESC. But got 'invalid_value' for field 'field_n' |

