Эффективная интеграция и кастомизация функционала в Битрикс24 часто требует работы на уровне API. Сегодня мы подробно рассмотрим «Сохранить результат печати чека sale.cashbox.check.apply». Вы узнаете экспертные методики работы с sale.cashbox.check.apply и научитесь избегать типичных ошибок начинающих разработчиков.
Сохранить результат печати чека sale.cashbox.check.apply
> Scope: sale, cashbox
>
> Кто может выполнять метод: администратор CRM (право «Разрешить изменять настройки»)
Метод сохраняет результат печати чека, напечатанного на REST-кассе. UUID чека сохраняется при его печати из ответа PRINT_URL, указанного при добавлении обработчика (см. пример реализации простой кассы на REST API).
Параметры метода
Названиетип | Описание |
|---|---|
UUID*string | UUID чека |
PRINT_END_TIMEstring | Время окончания печати чека |
REG_NUMBER_KKTstring | Регистрационный номер ККТ |
FISCAL_DOC_ATTRstring | Фискальный признак документа |
FISCAL_DOC_NUMBERstring | Номер фискального документа |
FISCAL_RECEIPT_NUMBERstring | Фискальный номер чека |
FN_NUMBERstring | Номер фискального накопителя |
SHIFT_NUMBERstring | Номер смены |
Примеры кода
- cURL (Webhook)
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"UUID":"check|example.com|1","PRINT_END_TIME":"1609459200","REG_NUMBER_KKT":"1234567891011121","FISCAL_DOC_ATTR":"1234567890","FISCAL_DOC_NUMBER":"12345","FISCAL_RECEIPT_NUMBER":"123","FN_NUMBER":"1234567891011121","SHIFT_NUMBER":"1"}' \
https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webbhook_here**/sale.cashbox.check.apply- cURL (OAuth)
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"UUID":"check|example.com|1","PRINT_END_TIME":"1609459200","REG_NUMBER_KKT":"1234567891011121","FISCAL_DOC_ATTR":"1234567890","FISCAL_DOC_NUMBER":"12345","FISCAL_RECEIPT_NUMBER":"123","FN_NUMBER":"1234567891011121","SHIFT_NUMBER":"1","auth":"**put_access_token_here**"}' \
https://**put_your_bitrix24_address**/rest/sale.cashbox.check.apply- JS
try
{
const response = await $b24.callMethod(
"sale.cashbox.check.apply",
{
'UUID':'check|example.com|1',
'PRINT_END_TIME':'1609459200',
'REG_NUMBER_KKT':'1234567891011121',
'FISCAL_DOC_ATTR':'1234567890',
'FISCAL_DOC_NUMBER':'12345',
'FISCAL_RECEIPT_NUMBER':'123',
'FN_NUMBER':'1234567891011121',
'SHIFT_NUMBER':'1'
}
);
const result = response.getData().result;
if(result.error())
console.error(result.error());
else
console.dir(result);
}
catch(error)
{
console.error('Error:', error);
}- PHP
try {
$response = $b24Service
->core
->call(
'sale.cashbox.check.apply',
[
'UUID' => 'check|example.com|1',
'PRINT_END_TIME' => '1609459200',
'REG_NUMBER_KKT' => '1234567891011121',
'FISCAL_DOC_ATTR' => '1234567890',
'FISCAL_DOC_NUMBER' => '12345',
'FISCAL_RECEIPT_NUMBER' => '123',
'FN_NUMBER' => '1234567891011121',
'SHIFT_NUMBER' => '1',
]
);
$result = $response
->getResponseData()
->getResult();
if ($result->error()) {
error_log($result->error());
} else {
echo 'Success: ' . print_r($result->data(), true);
// Нужная вам логика обработки данных
processData($result->data());
}
} catch (Throwable $e) {
error_log($e->getMessage());
echo 'Error applying cashbox check: ' . $e->getMessage();
}- BX24.js
BX24.callMethod(
"sale.cashbox.check.apply",
{
'UUID':'check|example.com|1',
'PRINT_END_TIME':'1609459200',
'REG_NUMBER_KKT':'1234567891011121',
'FISCAL_DOC_ATTR':'1234567890',
'FISCAL_DOC_NUMBER':'12345',
'FISCAL_RECEIPT_NUMBER':'123',
'FN_NUMBER':'1234567891011121',
'SHIFT_NUMBER':'1'
},
function(result)
{
if(result.error())
console.error(result.error());
else
console.dir(result.data());
}
);- PHP CRest
require_once('crest.php');
$result = CRest::call(
'sale.cashbox.check.apply',
[
'UUID' => 'check|example.com|1',
'PRINT_END_TIME' => '1609459200',
'REG_NUMBER_KKT' => '1234567891011121',
'FISCAL_DOC_ATTR' => '1234567890',
'FISCAL_DOC_NUMBER' => '12345',
'FISCAL_RECEIPT_NUMBER' => '123',
'FN_NUMBER' => '1234567891011121',
'SHIFT_NUMBER' => '1'
]
);
echo '<PRE>';
print_r($result);
echo '</PRE>';Обработка ответа
HTTP-статус: 200
{
"result": true,
"time": {
"start": 1712135335.026931,
"finish": 1712135335.407762,
"duration": 0.3808310031890869,
"processing": 0.0336611270904541,
"date_start": "2024-04-03T11:08:55+02:00",
"date_finish": "2024-04-03T11:08:55+02:00",
"operating_reset_at": 1705765533,
"operating": 3.3076241016387939
}
}Возвращаемые данные
Названиетип | Описание |
|---|---|
resultboolean | Результат сохранения печати чека |
timetime | Информация о времени выполнения запроса |
Обработка ошибок
HTTP-статус: 400, 403
{
"error": "ERROR_CHECK_NOT_FOUND",
"error_description": "Check not found"
}Возможные коды ошибок
| Код | Описание | Статус |
|---|---|---|
ACCESS_DENIED | Недостаточно прав для сохранения результата печати чека | 403 |
ERROR_CHECK_FAILURE | Не указано значение поля UUID | 400 |
ERROR_CHECK_NOT_FOUND | Не найден чек с указанным UUID | 400 |
ERROR_CHECK_APPLY | Прочие ошибки. Более подробную информацию об ошибке можно найти в error_description | 400 |
- [](./sale-cashbox-handler-add)
- [](./sale-cashbox-handler-update)
- [](./sale-cashbox-handler-list)
- [](./sale-cashbox-handler-delete)
- [](./sale-cashbox-add)
- [](./sale-cashbox-update)
- [](./sale-cashbox-list)
- [](./sale-cashbox-delete)
- [](../../../tutorials/sale/cashbox-add-example)
💡 Экспертное мнение и рекомендации
Советы эксперта по интеграции:
- Всегда используйте кэширование при частых запросах к sale.cashbox.check.apply, чтобы разгрузить базу данных.
- Соблюдайте стандарты PSR при написании обработчиков для «Сохранить результат печати чека sale.cashbox.check.apply».
- Регулярно проводите аудит производительности системы с помощью встроенного монитора 1С-Битрикс.
Похожая задача в бизнесе?
Помогу автоматизировать процессы и внедрить ИИ
Меня зовут Андрей Горошко. Я Full-stack разработчик и эксперт по 1С-Битрикс. Настраиваю CRM Битрикс24, разрабатываю защищенные API и создаю умных ИИ-агентов для автоматизации рутины.
или на почту: gorandvas@yandex.ru