Блог Горошко Андрея Bitrix24,PHP Получить список доставок объекта CRM crm.item.delivery.list

Получить список доставок объекта CRM crm.item.delivery.list

Эффективная интеграция и кастомизация функционала в Битрикс24 часто требует работы на уровне API. Сегодня мы подробно рассмотрим «Получить список доставок объекта CRM crm.item.delivery.list». Вы узнаете экспертные методики работы с crm.item.delivery.list и научитесь избегать типичных ошибок начинающих разработчиков.

Получить список доставок объекта CRM crm.item.delivery.list

> Scope: crm
>
> Кто может выполнять метод: требуется право на чтение объекта crm, из которого выбираются доставки

Метод получает список доставок конкретного объекта crm.

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

Название
тип
Описание
entityId
integer
Идентификатор объекта crm
entityTypeId
integer
Идентификатор типа объекта crm
filter
object
Дополнительный фильтр для случаев, когда нужно получить не все доставки объекта crm, а по какому-то более специфичному фильтру.
Формат параметра filter соответствует описанному в методе sale.shipment.list
order
object
Формат параметра order соответствует описанному в методе sale.shipment.list

Примеры кода

  • cURL (Webhook)
    curl -X POST \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"entityId":13127,"entityTypeId":2,"filter":{"@id":[4077,4078]}}' \
    https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/crm.item.delivery.list
  • cURL (OAuth)
    curl -X POST \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"entityId":13127,"entityTypeId":2,"filter":{"@id":[4077,4078]},"auth":"**put_access_token_here**"}' \
    https://**put_your_bitrix24_address**/rest/crm.item.delivery.list
  • JS
    // callListMethod рекомендуется использовать, когда необходимо получить весь набор списочных данных и объём записей относительно невелик (до примерно 1000 элементов). Метод загружает все данные сразу, что может привести к высокой нагрузке на память при работе с большими объемами.
    
    try {
      const response = await $b24.callListMethod(
        'crm.item.delivery.list',
        {
          entityId: 13127,
          entityTypeId: 2,
          filter: {
            "@id": [4077, 4078]
          }
        },
        (progress) => { console.log('Progress:', progress) }
      );
      const items = response.getData() || [];
      for (const entity of items) { console.log('Entity:', entity); }
    } catch (error) {
      console.error('Request failed', error);
    }
    
    // fetchListMethod предпочтителен при работе с крупными наборами данных. Метод реализует итеративную выборку с использованием генератора, что позволяет обрабатывать данные по частям и эффективно использовать память.
    
    try {
      const generator = $b24.fetchListMethod('crm.item.delivery.list', {
        entityId: 13127,
        entityTypeId: 2,
        filter: {
          "@id": [4077, 4078]
        }
      }, 'ID');
      for await (const page of generator) {
        for (const entity of page) { console.log('Entity:', entity); }
      }
    } catch (error) {
      console.error('Request failed', error);
    }
    
    // callMethod предоставляет ручной контроль над процессом постраничного получения данных через параметр start. Подходит для сценариев, где требуется точное управление пакетами запросов. Однако при больших объемах данных может быть менее эффективным по сравнению с fetchListMethod.
    
    try {
      const response = await $b24.callMethod('crm.item.delivery.list', {
        entityId: 13127,
        entityTypeId: 2,
        filter: {
          "@id": [4077, 4078]
        }
      }, 0);
      const result = response.getData().result || [];
      for (const entity of result) { console.log('Entity:', entity); }
    } catch (error) {
      console.error('Request failed', error);
    }
  • PHP
    try {
        $response = $b24Service
            ->core
            ->call(
                'crm.item.delivery.list',
                [
                    'entityId'     => 13127,
                    'entityTypeId' => 2,
                    'filter'       => [
                        '@id' => [4077, 4078]
                    ],
                ]
            );
    
        $result = $response
            ->getResponseData()
            ->getResult();
    
        echo 'Success: ' . print_r($result, true);
    
    } catch (Throwable $e) {
        error_log($e->getMessage());
        echo 'Error fetching delivery list: ' . $e->getMessage();
    }
  • BX24.js
    BX24.callMethod(
        'crm.item.delivery.list', {
            entityId: 13127,
            entityTypeId: 2,
            filter: {
                "@id": [4077, 4078]
            },
        },
        function(result) {
            if (result.error()) {
                console.error(result.error());
            } else {
                console.log(result.data());
            }
        }
    );
  • PHP CRest
    require_once('crest.php');

    $result = CRest::call(
        'crm.item.delivery.list',
        [
            'entityId' => 13127,
            'entityTypeId' => 2,
            'filter' => [
                "@id" => [4077, 4078]
            ]
        ]
    );

    echo '<PRE>';
    print_r($result);
    echo '</PRE>';

Ответ в случае успеха

HTTP-статус: 200

{
   "result":[
      {
         "id":4077,
         "accountNumber":"3657\/2",
         "deducted":"N",
         "dateDeducted":null,
         "deliveryId":228,
         "priceDelivery":79.99,
         "currency":"RUB",
         "deliveryName":"Uber Taxi (Cargo)"
      },
      {
         "id":4078,
         "accountNumber":"3657\/3",
         "deducted":"N",
         "dateDeducted":null,
         "deliveryId":228,
         "priceDelivery":79.99,
         "currency":"RUB",
         "deliveryName":"Uber Taxi (Cargo)"
      }
   ],
   "time":{
      "start":1716369036.246855,
      "finish":1716369036.734466,
      "duration":0.4876110553741455,
      "processing":0.18442106246948242,
      "date_start":"2024-05-22T12:10:36+03:00",
      "date_finish":"2024-05-22T12:10:36+03:00"
   }
}

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

Название
тип
Описание
result
sale_order_shipment_crm_simple
Массив объектов, содержащий краткую информацию о выбранных доставках
time
time
Информация о времени выполнения запроса

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

HTTP-статус: 400

{
   "error":0,
   "error_description":"Недостаточно прав"
}

Возможные коды ошибок

КодОписание
0Доступ запрещен
100Не переданы обязательные поля
0Другие ошибки (например, фатальные ошибки)
  • [](./crm-item-delivery-get)

💡 Экспертное мнение и рекомендации

Ключевые выводы по теме «Получить список доставок объекта CRM crm.item.delivery.list»:

Использование современных стандартов D7 при работе с crm.item.delivery.list позволяет писать чистый, масштабируемый и безопасный код. Не забывайте обрабатывать исключения (try/catch) и проверять права доступа текущего пользователя перед выполнением критических операций.

Похожая задача в бизнесе?

Помогу автоматизировать процессы и внедрить ИИ

Меня зовут Андрей Горошко. Я Full-stack разработчик и эксперт по 1С-Битрикс. Настраиваю CRM Битрикс24, разрабатываю защищенные API и создаю умных ИИ-агентов для автоматизации рутины.

Related Post

Как использовать метод SDK crm.contact.userfield.list в Битрикс24Как использовать метод SDK crm.contact.userfield.list в Битрикс24

При разработке и поддержке проектов на платформе 1С-Битрикс критически важно использовать современные стандарты D7 API. В этом руководстве мы детально изучим тему «Как использовать метод SDK crm.contact.userfield.list в Битрикс24», разберем

Как использовать метод SDK crm.company.update в Битрикс24Как использовать метод SDK crm.company.update в Битрикс24

Каждый PHP-разработчик, работающий с экосистемой Bitrix Framework, должен глубоко понимать работу её ключевых компонентов. В этой статье мы проведем подробный аудит темы «Как использовать метод SDK crm.company.update в Битрикс24», проанализируем

Настройка роботов и триггеров в воронке лидов для мгновенного распределения заявокНастройка роботов и триггеров в воронке лидов для мгновенного распределения заявок

Профессиональная настройка и комплексная автоматизация Битрикс24 CRM позволяет выстроить прозрачный отдел продаж, исключить потерю обращений и автоматизировать рутинный документооборот компании. Услуга «Настройка роботов и триггеров в воронке лидов для мгновенного