On this page
article
Обновление записей складского учета
Обновление записей складского учета в Битрикс24.
Описание
Этот раздел содержит 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): Сообщение об ошибке, если операция не удалась.