метод REST
scope: delivery
sale.delivery.handler.list
Получить список обработчиков служб доставки
Описание
Метод sale.delivery.handler.list получает список обработчиков служб доставки.
Примеры запроса
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**/sale.delivery.handler.list
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"auth":"**put_access_token_here**"}' \
https://**put_your_bitrix24_address**/rest/sale.delivery.handler.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 } from '@bitrix24/b24jssdk'
declare const $b24: B24Frame
// Shape of each HandlerItem returned in result[]
type HandlerItem = {
ID: string
NAME: string
CODE: string
SORT: string
DESCRIPTION: string
SETTINGS: {
CALCULATE_URL: string
CREATE_DELIVERY_REQUEST_URL: string
CANCEL_DELIVERY_REQUEST_URL: string
HAS_CALLBACK_TRACKING_SUPPORT: string
CONFIG: Array<{
TYPE: string
NAME: string
CODE: string
OPTIONS?: Record<string, string>
}>
}
PROFILES: Array<{
NAME: string
DESCRIPTION: string
CODE: string
}>
}
try {
// sale.delivery.handler.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<HandlerItem[]>({
method: 'sale.delivery.handler.list',
params: {
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('Delivery handlers:', result.length, 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 listDeliveryHandlers() {
try {
// Initialize the SDK inside a Bitrix24 frame
const $b24 = await B24Js.initializeB24Frame()
// sale.delivery.handler.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: 'sale.delivery.handler.list',
params: {
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('Delivery handlers:', result.length, result)
} catch (error) {
// Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
console.error(error)
}
}
document.addEventListener('DOMContentLoaded', listDeliveryHandlers)
</script>
from b24pysdk.errors import BitrixAPIError, BitrixSDKException
try:
bitrix_response = client.sale.delivery.handler.list().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}")
try {
$response = $b24Service
->core
->call(
'sale.delivery.handler.list',
[]
);
$result = $response
->getResponseData()
->getResult();
echo 'Success: ' . print_r($result, true);
// Нужная вам логика обработки данных
processData($result);
} catch (Throwable $e) {
error_log($e->getMessage());
echo 'Error fetching delivery handlers: ' . $e->getMessage();
}
BX24.callMethod(
'sale.delivery.handler.list', {},
function(result) {
if (result.error()) {
console.error(result.error());
} else {
console.info(result.data());
}
}
);
require_once('crest.php');
$result = CRest::call(
'sale.delivery.getlist',
[
'SELECT' => [
"ID",
"PARENT_ID",
"NAME",
"ACTIVE",
"DESCRIPTION",
"SORT",
"LOGOTIP",
"CURRENCY",
],
'FILTER' => [
"@ID" => [196, 197, 198],
],
'ORDER' => [
"SORT" => "ASC",
"ID" => "DESC",
]
]
);
// client и ctx уже созданы — см. раздел «SDK для Go»
res, err := client.Core().Call(ctx, "sale.delivery.handler.list", nil, b24.WithIdempotent())
if err != nil {
return fmt.Errorf("sale.delivery.handler.list: %w", err)
}
var items []struct {
ID b24.ID `json:"ID"`
Name string `json:"NAME"`
Code string `json:"CODE"`
Sort string `json:"SORT"`
Description string `json:"DESCRIPTION"`
}
if err := json.Unmarshal(res.Result, &items); err != nil {
return fmt.Errorf("разбор ответа: %w", err)
}
for _, it := range items {
fmt.Println(it.ID, it.Name)
}
// Total и Next заполняют списочные методы; для полного
// обхода списка есть client.Core().Pages и Scan.
if res.Total != nil {
fmt.Println("всего:", *res.Total)
}
Ответ
HTTP-статус: 200
{
"result":[
{
"ID":"14",
"NAME":"Uber",
"CODE":"uber",
"SORT":"250",
"DESCRIPTION":"Uber Description",
"SETTINGS":{
"CALCULATE_URL":"http:\/\/gateway.bx\/calculate.php",
"CREATE_DELIVERY_REQUEST_URL":"http:\/\/gateway.bx\/create_delivery_request.php",
"CANCEL_DELIVERY_REQUEST_URL":"http:\/\/gateway.bx\/cancel_delivery_request.php",
"HAS_CALLBACK_TRACKING_SUPPORT":"Y",
"CONFIG":[
{
"TYPE":"STRING",
"NAME":"String Example",
"CODE":"SETTING_1"
},
{
"TYPE":"Y\/N",
"NAME":"Checkbox Example",
"CODE":"SETTING_2"
},
{
"TYPE":"NUMBER",
"NAME":"Number Example",
"CODE":"SETTING_3"
},
{
"TYPE":"ENUM",
"NAME":"Enum Example",
"OPTIONS":{
"Option1Code":"Option1Value",
"Option2Code":"Option2Value",
"Option3Code":"Option3Value",
"Option4Code":"Option4Value",
"Option5Code":"Option5Value"
},
"CODE":"SETTING_4"
},
{
"TYPE":"DATE",
"NAME":"Date Example",
"CODE":"SETTING_5"
},
{
"TYPE":"LOCATION",
"NAME":"Location Example",
"CODE":"SETTING_6"
}
]
},
"PROFILES":[
{
"NAME":"Taxi",
"DESCRIPTION":"Taxi Delivery",
"CODE":"TAXI"
},
{
"NAME":"Cargo",
"DESCRIPTION":"Cargo Delivery",
"CODE":"CARGO"
}
]
}
],
"time":{
"start":1713872315.334967,
"finish":1713872315.655173,
"duration":0.3202061653137207,
"processing":0.013887882232666016,
"date_start":"2024-04-23T14:38:35+03:00",
"date_finish":"2024-04-23T14:38:35+03:00"
}
}
Возвращаемые данные
result
sale_delivery_handler[]
Массив объектов с информацией о выбранных обработчиках служб доставки
time
time
Информация о времени выполнения запроса
Обработка ошибок
HTTP-статус: 400
{
"error":"ACCESS_DENIED",
"error_description":"Access denied!"
}
| Код | Описание | Значение |
|---|---|---|
ACCESS_DENIED |
Недостаточно прав для получения списка служб доставки | 403 |

