Блог Горошко Андрея 1C-Битрикс,Bitrix24 Создать документ складского учета catalog.document.add

Создать документ складского учета catalog.document.add

Каждый PHP-разработчик, работающий с экосистемой Bitrix Framework, должен глубоко понимать работу её ключевых компонентов. В этой статье мы проведем подробный аудит темы «Создать документ складского учета catalog.document.add», проанализируем лучшие практики и покажем, как правильно использовать catalog.document.add в реальных задачах.

Создать документ складского учета catalog.document.add

> Scope: catalog
>
> Кто может выполнять метод: пользователь с правом «Cоздание и редактирование» на нужный тип документа

Метод catalog.document.add создает новый документ складского учета.

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

Название
тип
Описание
fields
object
Поля документа (подробное описание)

Параметр fields {#fields}

Название
тип
Описание
docType
char
Тип документа. Возможные значения:
— A — поступление,
— S — оприходование,
— M — перемещение между складами,
— R — возврат,
— D — списание.

Актуальные типы документов можно получить методом catalog.enum.getStoreDocumentTypes

currency
crm_currency.CURRENCY
Валюта документа в формате ISO 4217, например RUB. Значение нельзя изменить после создания.

Чтобы получить список валют с кодами используйте метод crm.currency.list

responsibleId
user.id
Идентификатор ответственного
siteId
char
Код сайта, к которому относится документ. По умолчанию — s1.

Параметр актуален для коробочных Битрикс, для облачных Битрикс значение стандратное — s1

dateDocument
datetime
Дата проведения документа в формате ISO 8601
title
string
Название документа
commentary
char
Комментарий к документу
total
double
Общая сумма по товарам документа. Значение рассчитывается автоматически после проведения, но может быть задано вручную
docNumber
string
Внутренний номер документа. Если не передать, генерируется автоматически
createdBy
user.id
Идентификатор пользователя, создавшего документ. Администратор может указать любое значение, по умолчанию заполняется текущим пользователем

Чтобы заполнить данные о поставщике, используйте метод catalog.documentcontractor.add.
Чтобы заполнить данные по товарам, используйте метод catalog.document.element.add.

Примеры кода

  • cURL (Webhook)
    curl -X POST \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"fields":{"docType":"A","currency":"RUB","responsibleId":29,"docNumber":"IN-00042","title":"Поступление от Поставщик-1","commentary":"Плановое пополнение склада"}}' \
    https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webbhook_here**/catalog.document.add
  • cURL (OAuth)
    curl -X POST \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"fields":{"docType":"A","currency":"RUB","responsibleId":29,"docNumber":"IN-00042","title":"Поступление от Поставщик-1","commentary":"Плановое пополнение склада"},"auth":"**put_access_token_here**"}' \
    https://**put_your_bitrix24_address**/rest/catalog.document.add
  • JS
    try
    {
        const response = await $b24.callMethod(
            'catalog.document.add',
            {
                fields: {
                    docType: 'A',
                    currency: 'RUB',
                    responsibleId: 29,
                    docNumber: 'IN-00042',
                   'Поступление от Поставщик-1',
                    commentary: 'Плановое пополнение склада',
                }
            }
        );
        
        const result = response.getData().result;
        console.log('Created element with ID:', result);
        
        processResult(result);
    }
    catch( error )
    {
        console.error('Error:', error);
    }
  • PHP
    try {
    $response = $b24Service
        ->core
        ->call(
            'catalog.document.add',
            [
                'fields' => [
                    'docType' => 'A',
                    'currency' => 'RUB',
                    'responsibleId' => 29,
                    'docNumber' => 'IN-00042',
                    'title' => 'Поступление от Поставщик-1',
                    'commentary' => 'Плановое пополнение склада'
                ]
            ]
        );

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

    echo 'Success: ' . print_r($result, true);
    processData($result);

    } catch (Throwable $e) {
        error_log($e->getMessage());
        echo 'Error adding product row: ' . $e->getMessage();
    }
  • BX24.js
    BX24.callMethod(
        'catalog.document.add',
        {
            fields: {
                docType: 'A',
                currency: 'RUB',
                responsibleId: 29,
                docNumber: 'IN-00042',
               'Поступление от Поставщик-1',
                commentary: 'Плановое пополнение склада'
            }
        },
        function(result)
        {
            if (result.error())
                console.error(result.error());
            else
                console.log(result.data());
        }
    );
  • PHP CRest
    require_once('crest.php');

    $result = CRest::call(
        'catalog.document.add',
        [
            'fields' => [
                'docType' => 'A',
                'currency' => 'RUB',
                'responsibleId' => 29,
                'docNumber' => 'IN-00042',
                'title' => 'Поступление от Поставщик-1',
                'commentary' => 'Плановое пополнение склада'
            ]
        ]
    );

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

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

HTTP-код: 200

{
    "result": {
        "document": {
            "commentary": "Плановое пополнение склада",
            "createdBy": 29,
            "currency": "RUB",
            "dateCreate": "2025-10-30T11:19:38+03:00",
            "dateDocument": null,
            "dateModify": "2025-10-30T11:19:38+03:00",
            "dateStatus": "2025-10-30T11:19:38+03:00",
            "docNumber": "IN-00042",
            "docType": "A",
            "id": 11,
            "modifiedBy": 29,
            "responsibleId": 29,
            "siteId": "s1",
            "status": "N",
            "statusBy": null,
            "title": "Поступление от Поставщик-1",
            "total": null
        }
    },
    "time": {
        "start": 1761805178,
        "finish": 1761805178.991429,
        "duration": 0.9914290904998779,
        "processing": 0,
        "date_start": "2025-10-30T09:19:38+03:00",
        "date_finish": "2025-10-30T09:19:38+03:00",
        "operating_reset_at": 1761805778,
        "operating": 0.2595658302307129
    }
}

Документ создается в статусе N — черновик. Чтобы провести документ, используйте метод catalog.document.conduct или catalog.document.conductList.

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

Название
тип
Описание
result
object
Корневой элемент ответа
document
catalog_document
Объект с данными созданного документа
time
time
Информация о времени выполнения запроса

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

HTTP-код: 400

{
    "error": "0",
    "error_description": "DOC_TYPE isn't available"
}

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

КодОписаниеЗначение
0Недостаточно прав для сохранения документаУ пользователя нет права на создание документа нужного типа
0DOC_TYPE isn’t availableПередан недопустимый тип документа
0Складской учет недоступен на вашем тарифеСкладской учет недоступен на вашем тарифе
0—Иные внутренние ошибки при добавлении документа
  • [](./document-element/catalog-document-element-add)
  • [](../documentcontractor/catalog-documentcontractor-add)
  • [](./catalog-document-update)
  • [](./catalog-document-conduct)

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

Практические рекомендации:

  • При написании кастомных компонентов для «Создать документ складского учета catalog.document.add» всегда разделяйте бизнес-логику и представление (шаблон).
  • Используйте отладку SQL-запросов через конструкцию $wpdb->last_query или стандартный трекер Битрикса, чтобы контролировать нагрузку.

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

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

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

Related Post

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

Эффективная интеграция и кастомизация функционала в Битрикс24 часто требует работы на уровне API. Сегодня мы подробно рассмотрим «Как использовать метод SDK crm.deal.contact.items.set в Битрикс24». Вы узнаете экспертные методики работы с

Разработка интернет-магазина на 1С-Битрикс с автоматической маркировкой Честный ЗнакРазработка интернет-магазина на 1С-Битрикс с автоматической маркировкой Честный Знак

Реализация функционала «с автоматической маркировкой Честный Знак» на платформе 1С-Битрикс позволяет кардинально повысить конверсию магазина, автоматизировать рутинные операции менеджеров и предоставить покупателям безупречный сервис. передача кодов маркировки DataMatrix в ОФД

Получить полный набор настроек видимости полей rpa.fields.getSettingsПолучить полный набор настроек видимости полей rpa.fields.getSettings

Оптимизация производительности и безопасности — залог успешного проекта на 1С-Битрикс. Данный материал посвящен практическому применению «Получить полный набор настроек видимости полей rpa.fields.getSettings». Мы подготовили подробный разбор принципов работы и развернутые