Блог Горошко Андрея 1C-Битрикс,Bitrix24 Обновить данные обработчика кассы sale.cashbox.handler.update

Обновить данные обработчика кассы sale.cashbox.handler.update

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

Обновить данные обработчика кассы sale.cashbox.handler.update

> Scope: sale, cashbox
>
> Кто может выполнять метод: администратор CRM (право «Разрешить изменять настройки»)

Метод обновляет данные REST-обработчика кассы.

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

Название
тип
Описание
ID
sale_cashbox_handler.ID
Идентификатор обновляемого обработчика
FIELDS
object
Значения обновляемых полей.

Поля, доступные к обновлению: NAME, SORT, SETTINGS (смотрите поля sale_cashbox_handler)

Примеры кода

  • cURL (Webhook)
    curl -X POST \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"ID":1,"FIELDS":{"NAME":"Моя REST-касса с новым именем","SORT":200,"SETTINGS":{"PRINT_URL":"http://setagaya.bx/receipt_print.php","CHECK_URL":"http://setagaya.bx/receipt_check.php","CONFIG":{"AUTH":{"LABEL":"Авторизация","ITEMS":{"LOGIN":{"TYPE":"STRING","REQUIRED":"Y","LABEL":"Логин"},"PASSWORD":{"TYPE":"STRING","REQUIRED":"Y","LABEL":"Пароль"}}},"COMPANY":{"LABEL":"Данные об организации","ITEMS":{"INN":{"TYPE":"STRING","REQUIRED":"Y","LABEL":"ИНН организации"}}},"INTERACTION":{"LABEL":"Настройки взаимодействия с кассой","ITEMS":{"MODE":{"TYPE":"ENUM","LABEL":"Режим работы с кассой","OPTIONS":{"ACTIVE":"боевой","TEST":"тестовый"}}}}},"SUPPORTS_FFD105":"N"}}}' \
    https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webbhook_here**/sale.cashbox.handler.update
  • cURL (OAuth)
    curl -X POST \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"ID":1,"FIELDS":{"NAME":"Моя REST-касса с новым именем","SORT":200,"SETTINGS":{"PRINT_URL":"http://setagaya.bx/receipt_print.php","CHECK_URL":"http://setagaya.bx/receipt_check.php","CONFIG":{"AUTH":{"LABEL":"Авторизация","ITEMS":{"LOGIN":{"TYPE":"STRING","REQUIRED":"Y","LABEL":"Логин"},"PASSWORD":{"TYPE":"STRING","REQUIRED":"Y","LABEL":"Пароль"}}},"COMPANY":{"LABEL":"Данные об организации","ITEMS":{"INN":{"TYPE":"STRING","REQUIRED":"Y","LABEL":"ИНН организации"}}},"INTERACTION":{"LABEL":"Настройки взаимодействия с кассой","ITEMS":{"MODE":{"TYPE":"ENUM","LABEL":"Режим работы с кассой","OPTIONS":{"ACTIVE":"боевой","TEST":"тестовый"}}}}},"SUPPORTS_FFD105":"N"}},"auth":"**put_access_token_here**"}' \
    https://**put_your_bitrix24_address**/rest/sale.cashbox.handler.update
  • JS
    try
    {
    	const response = await $b24.callMethod(
    		"sale.cashbox.handler.update",
    		{
    			"ID": 1,
    			"FIELDS":
    			{
    				"NAME": "Моя REST-касса с новым именем",
    				"SORT": 200,
    				"SETTINGS": {
    					"PRINT_URL": "http://setagaya.bx/receipt_print.php",
    					"CHECK_URL": "http://setagaya.bx/receipt_check.php",
    					"CONFIG": {
    						"AUTH": {
    							"LABEL": "Авторизация",
    							"ITEMS": {
    								"LOGIN": {
    									"TYPE": "STRING",
    									"REQUIRED": "Y",
    									"LABEL": "Логин"
    								},
    								"PASSWORD": {
    									"TYPE": "STRING",
    									"REQUIRED": "Y",
    									"LABEL": "Пароль"
    								}
    							}
    						},
    						"COMPANY": {
    							"LABEL": "Данные об организации",
    							"ITEMS": {
    								"INN": {
    									"TYPE": "STRING",
    									"REQUIRED": "Y",
    									"LABEL": "ИНН организации"
    								}
    							}
    						},
    						"INTERACTION": {
    							"LABEL": "Настройки взаимодействия с кассой",
    							"ITEMS": {
    								"MODE": {
    									"TYPE": "ENUM",
    									"LABEL": "Режим работы с кассой",
    									"OPTIONS": {
    										"ACTIVE": "боевой",
    										"TEST": "тестовый"
    									}
    								}
    							}
    						}
    					},
    					"SUPPORTS_FFD105": "N"
    				}
    			}
    		}
    	);
    	
    	const result = response.getData().result;
    	console.dir(result);
    }
    catch(error)
    {
    	console.error(error);
    }
  • PHP
    try {
        $response = $b24Service
            ->core
            ->call(
                'sale.cashbox.handler.update',
                [
                    'ID'     => 1,
                    'FIELDS' => [
                        'NAME'     => 'Моя REST-касса с новым именем',
                        'SORT'     => 200,
                        'SETTINGS' => [
                            'PRINT_URL'      => 'http://setagaya.bx/receipt_print.php',
                            'CHECK_URL'      => 'http://setagaya.bx/receipt_check.php',
                            'CONFIG'         => [
                                'AUTH'        => [
                                    'LABEL' => 'Авторизация',
                                    'ITEMS' => [
                                        'LOGIN'    => [
                                            'TYPE'     => 'STRING',
                                            'REQUIRED' => 'Y',
                                            'LABEL'    => 'Логин',
                                        ],
                                        'PASSWORD' => [
                                            'TYPE'     => 'STRING',
                                            'REQUIRED' => 'Y',
                                            'LABEL'    => 'Пароль',
                                        ],
                                    ],
                                ],
                                'COMPANY'      => [
                                    'LABEL' => 'Данные об организации',
                                    'ITEMS' => [
                                        'INN' => [
                                            'TYPE'     => 'STRING',
                                            'REQUIRED' => 'Y',
                                            'LABEL'    => 'ИНН организации',
                                        ],
                                    ],
                                ],
                                'INTERACTION'  => [
                                    'LABEL' => 'Настройки взаимодействия с кассой',
                                    'ITEMS' => [
                                        'MODE' => [
                                            'TYPE'    => 'ENUM',
                                            'LABEL'   => 'Режим работы с кассой',
                                            'OPTIONS' => [
                                                'ACTIVE' => 'боевой',
                                                'TEST'   => 'тестовый',
                                            ],
                                        ],
                                    ],
                                ],
                            ],
                            'SUPPORTS_FFD105' => 'N',
                        ],
                    ],
                ]
            );
    
        $result = $response
            ->getResponseData()
            ->getResult();
    
        echo 'Success: ' . print_r($result, true);
        // Нужная вам логика обработки данных
        processData($result);
    
    } catch (Throwable $e) {
        error_log($e->getMessage());
        echo 'Error updating cashbox handler: ' . $e->getMessage();
    }
  • BX24.js
    BX24.callMethod( 
    "sale.cashbox.handler.update", 
    { 
        "ID": 1, 
        "FIELDS": 
        { 
            "NAME": "Моя REST-касса с новым именем",
            "SORT": 200,
            "SETTINGS": {
                "PRINT_URL": "http://setagaya.bx/receipt_print.php",
                "CHECK_URL": "http://setagaya.bx/receipt_check.php",
                "CONFIG": {
                    "AUTH": {
                        "LABEL": "Авторизация",
                        "ITEMS": {
                            "LOGIN": {
                                "TYPE": "STRING",
                                "REQUIRED": "Y",
                                "LABEL": "Логин"
                            },
                            "PASSWORD": {
                                "TYPE": "STRING",
                                "REQUIRED": "Y",
                                "LABEL": "Пароль"
                            }
                        }
                    },
                    "COMPANY": {
                        "LABEL": "Данные об организации",
                        "ITEMS": {
                            "INN": {
                                "TYPE": "STRING",
                                "REQUIRED": "Y",
                                "LABEL": "ИНН организации"
                            }
                        }
                    },
                    "INTERACTION": {
                        "LABEL": "Настройки взаимодействия с кассой",
                        "ITEMS": {
                            "MODE": {
                                "TYPE": "ENUM",
                                "LABEL": "Режим работы с кассой",
                                "OPTIONS": {
                                    "ACTIVE": "боевой",
                                    "TEST": "тестовый"
                                }
                            }
                        }
                    }
                },
                "SUPPORTS_FFD105": "N"
            }
        } 
    }, 
        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.handler.update',
        [
            'ID' => 1,
            'FIELDS' =>
            [
                'NAME' => 'Моя REST-касса с новым именем',
                'SORT' => 200,
                'SETTINGS' =>
                [
                    'PRINT_URL' => 'http://setagaya.bx/receipt_print.php',
                    'CHECK_URL' => 'http://setagaya.bx/receipt_check.php',
                    'CONFIG' =>
                    [
                        'AUTH' =>
                        [
                            'LABEL' => 'Авторизация',
                            'ITEMS' =>
                            [
                                'LOGIN' =>
                                [
                                    'TYPE' => 'STRING',
                                    'REQUIRED' => 'Y',
                                    'LABEL' => 'Логин'
                                ],
                                'PASSWORD' =>
                                [
                                    'TYPE' => 'STRING',
                                    'REQUIRED' => 'Y',
                                    'LABEL' => 'Пароль'
                                ]
                            ]
                        ],
                        'COMPANY' =>
                        [
                            'LABEL' => 'Данные об организации',
                            'ITEMS' =>
                            [
                                'INN' =>
                                [
                                    'TYPE' => 'STRING',
                                    'REQUIRED' => 'Y',
                                    'LABEL' => 'ИНН организации'
                                ]
                            ]
                        ],
                        'INTERACTION' =>
                        [
                            'LABEL' => 'Настройки взаимодействия с кассой',
                            'ITEMS' =>
                            [
                                'MODE' =>
                                [
                                    'TYPE' => 'ENUM',
                                    'LABEL' => 'Режим работы с кассой',
                                    'OPTIONS' =>
                                    [
                                        'ACTIVE' => 'боевой',
                                        'TEST' => 'тестовый'
                                    ]
                                ]
                            ]
                        ]
                    ],
                    'SUPPORTS_FFD105' => 'N'
                ]
            ]
        ]
    );

    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
    }
}

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

Название
тип
Описание
result
boolean
Результат обновления полей REST-обработчика кассы
time
time
Информация о времени выполнения запроса

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

HTTP-статус: 400, 403

{
    "error": "ERROR_HANDLER_NOT_FOUND",
    "error_description": "Handler not found"
}

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

КодОписаниеСтатус
ACCESS_DENIEDНедостаточно прав для обновления обработчика либо приложение пытается изменить обработчик, добавленный другим приложением403
ERROR_CHECK_FAILUREНе указано значение полей ID или FIELDS400
ERROR_HANDLER_NOT_FOUNDОбработчик с указанным ID не найден400
ERROR_HANDLER_UPDATEПрочие ошибки. Более подробную информацию об ошибке можно найти в error_description400
  • [](./sale-cashbox-handler-add)
  • [](./sale-cashbox-handler-list)
  • [](./sale-cashbox-handler-delete)
  • [](./sale-cashbox-add)
  • [](./sale-cashbox-update)
  • [](./sale-cashbox-list)
  • [](./sale-cashbox-delete)
  • [](./sale-cashbox-check-apply)

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

Советы эксперта по интеграции:

  • Всегда используйте кэширование при частых запросах к sale.cashbox.handler.update, чтобы разгрузить базу данных.
  • Соблюдайте стандарты PSR при написании обработчиков для «Обновить данные обработчика кассы sale.cashbox.handler.update».
  • Регулярно проводите аудит производительности системы с помощью встроенного монитора 1С-Битрикс.

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

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

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

Related Post

Особенности, преимущества и недостатки офлайн-событийОсобенности, преимущества и недостатки офлайн-событий

Эффективная интеграция и кастомизация функционала в Битрикс24 часто требует работы на уровне API. Сегодня мы подробно рассмотрим «Особенности, преимущества и недостатки офлайн-событий». Вы узнаете экспертные методики работы с битрикс и

Request Lifecycle: Руководство разработчикаRequest Lifecycle: Руководство разработчика

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

Записать информацию в журнал бизнес-процесса bizproc.activity.logЗаписать информацию в журнал бизнес-процесса bizproc.activity.log

Каждый PHP-разработчик, работающий с экосистемой Bitrix Framework, должен глубоко понимать работу её ключевых компонентов. В этой статье мы проведем подробный аудит темы «Записать информацию в журнал бизнес-процесса bizproc.activity.log», проанализируем лучшие