Документация для разработчиков
Темная тема

addCorrection

\Bitrix\Sale\Result public static
\Bitrix\Sale\Cashbox\CheckManager::addCorrection(
	mixed $type,
	mixed $cashboxId,
	array $correction
);

Метод создает чек коррекции и передает его выбранной кассе для немедленной печати. Статический метод.

Параметры

Параметр Описание
$type Тип класса чека коррекции, например значение CorrectionSellCheck::getType().
$cashboxId Идентификатор активной кассы, которая поддерживает чеки коррекции.
$correction Поля коррекции: тип операции, номер и дата документа, описание, массив оплат и массив ставок НДС.

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

Метод возвращает объект \Bitrix\Sale\Result. При успешном сохранении результат содержит идентификатор чека. Ошибки возвращаются при недоступности коррекции, неверном типе чека, несовместимых ставках НДС или ошибке сохранения.

Особенности

Массив $correction поддерживает ключи:

  • CORRECTION_TYPE — причина коррекции: CorrectionCheck::CORRECTION_TYPE_SELF или CorrectionCheck::CORRECTION_TYPE_INSTRUCTION;
  • DOCUMENT_NUMBER — номер документа-основания;
  • DOCUMENT_DATE — дата документа;
  • DESCRIPTION — описание коррекции;
  • CORRECTION_PAYMENT — массив оплат с ключами TYPE и SUM;
  • CORRECTION_VAT — массив сумм НДС с ключами TYPE и SUM. Нельзя одновременно передавать ставки 20 и 22.

Исключения

Метод может выбросить \Bitrix\Main\ArgumentException при неизвестном поле коррекции и \Bitrix\Main\SystemException, если выбранная касса не поддерживает чеки коррекции.

Пример

<?php

use Bitrix\Main\Loader;

use Bitrix\Sale\Cashbox\Check;
use Bitrix\Sale\Cashbox\CheckManager;
use Bitrix\Sale\Cashbox\CorrectionCheck;
use Bitrix\Sale\Cashbox\CorrectionSellCheck;

if (!Loader::includeModule('sale'))
{
	throw new RuntimeException('Не удалось подключить модуль sale');
}

// Идентификатор кассы с поддержкой чеков коррекции
$cashboxId = 3;
$correction = [
	'CORRECTION_TYPE' => CorrectionCheck::CORRECTION_TYPE_SELF,
	'DOCUMENT_NUMBER' => 'CORR-2026-001',
	'DOCUMENT_DATE' => '24.07.2026',
	'DESCRIPTION' => 'Исправление суммы расчета',
	'CORRECTION_PAYMENT' => [
		[
			'TYPE' => Check::PAYMENT_TYPE_CASHLESS,
			'SUM' => 1500.00,
		],
	],
	'CORRECTION_VAT' => [
		[
			'TYPE' => 20,
			'SUM' => 250.00,
		],
	],
];

// Метод создаст чек коррекции и отправит его на печать
$result = CheckManager::addCorrection(
	CorrectionSellCheck::getType(),
	$cashboxId,
	$correction
);

if (!$result->isSuccess())
{
	print_r($result->getErrorMessages());
	return;
}

echo 'Идентификатор чека коррекции: ' . $result->getId();


Была ли эта страница полезна?

Пользовательские комментарии

Помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
© «Битрикс», 2001-2026, «1С-Битрикс», 2026
Наверх