Описание

Этот раздел содержит PHP-решение для обновления записей складского учета в Битрикс24.

Пример использования

Пример 1: Обновление существующего приходного ордера

Этот пример демонстрирует, как обновить существующий приходный ордер, например, изменить его комментарий или статус.

use Bitrix\Main\Loader;
use Bitrix\Catalog\StoreDocumentTable;

Loader::includeModule('catalog');

// ID приходного ордера, который нужно обновить
$documentId = 1; // Замените на реальный ID документа

// Новые значения для обновления
$newComment = 'Обновленный комментарий к приходному ордеру';
$newStatus = 'Y'; // 'Y' - проведен, 'D' - черновик, 'N' - новый

$result = StoreDocumentTable::update($documentId, [
    'COMMENT' => $newComment,
    'STATUS' => $newStatus,
]);

$rootActivity = $this->GetRootActivity();
if ($result->isSuccess()) {
    $rootActivity->SetVariable("UpdateDocumentSuccess", "Y");
    $rootActivity->SetVariable("UpdateDocumentId", $documentId);
    $rootActivity->SetVariable("UpdateDocumentComment", $newComment);
    $rootActivity->SetVariable("UpdateDocumentStatus", $newStatus);
} else {
    $errors = $result->getErrorMessages();
    $rootActivity->SetVariable("UpdateDocumentSuccess", "N");
    $rootActivity->SetVariable("UpdateDocumentError", implode(', ', $errors));
}

Пример 2: Обновление количества товара в приходном ордере

Этот пример показывает, как обновить количество конкретного товара в уже существующем приходном ордере.

use Bitrix\Main\Loader;
use Bitrix\Catalog\StoreDocumentElementTable;

Loader::includeModule('catalog');

// ID элемента приходного ордера (записи о товаре в документе)
$elementId = 1; // Замените на реальный ID элемента документа

// Новое количество товара
$newAmount = 15;

$result = StoreDocumentElementTable::update($elementId, [
    'AMOUNT' => $newAmount,
]);

$rootActivity = $this->GetRootActivity();
if ($result->isSuccess()) {
    $rootActivity->SetVariable("UpdateElementSuccess", "Y");
    $rootActivity->SetVariable("UpdateElementId", $elementId);
    $rootActivity->SetVariable("UpdateElementNewAmount", $newAmount);
} else {
    $errors = $result->getErrorMessages();
    $rootActivity->SetVariable("UpdateElementSuccess", "N");
    $rootActivity->SetVariable("UpdateElementError", implode(', ', $errors));
}

Параметры

  • $documentId (int): ID приходного ордера для обновления (для Примера 1).
  • $newComment (string, optional): Новый комментарий для приходного ордера (для Примера 1).
  • $newStatus (string, optional): Новый статус приходного ордера (‘Y’, ‘D’, ‘N’) (для Примера 1).
  • $elementId (int): ID элемента приходного ордера (записи о товаре) для обновления (для Примера 2).
  • $newAmount (int): Новое количество товара (для Примера 2).

Возвращаемые значения

  • Для Примера 1 (Обновление приходного ордера):
    • UpdateDocumentSuccess (string): “Y” в случае успеха, “N” в случае ошибки.
    • UpdateDocumentId (int): ID обновленного документа.
    • UpdateDocumentComment (string): Обновленный комментарий.
    • UpdateDocumentStatus (string): Обновленный статус.
    • UpdateDocumentError (string, optional): Сообщение об ошибке, если операция не удалась.
  • Для Примера 2 (Обновление количества товара):
    • UpdateElementSuccess (string): “Y” в случае успеха, “N” в случае ошибки.
    • UpdateElementId (int): ID обновленного элемента.
    • UpdateElementNewAmount (int): Новое количество товара.
    • UpdateElementError (string, optional): Сообщение об ошибке, если операция не удалась.