Блог Горошко Андрея Bitrix24 Обновить календарь calendar.section.update

Обновить календарь calendar.section.update

Каждый PHP-разработчик, работающий с экосистемой Bitrix Framework, должен глубоко понимать работу её ключевых компонентов. В этой статье мы проведем подробный аудит темы «Обновить календарь calendar.section.update», проанализируем лучшие практики и покажем, как правильно использовать calendar.section.update в реальных задачах.

Обновить календарь calendar.section.update

> Scope: calendar
>
> Кто может выполнять метод: любой пользователь

Метод обновляет календарь.

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

Название
тип
Описание
type
string
Тип календаря. Возможные значения:
— user — календарь пользователя
— group — календарь группы
ownerId
integer
Идентификатор владельца календаря
id*
string
Идентификатор календаря
name
string
Название календаря
description
string
Описание календаря
color
string
Цвет календаря
text_color
string
Цвет текста в календаре
export
object
Объект параметров экспорта календаря

Параметр export {#export}

Название
тип
Описание
ALLOW
boolean
Разрешить экспорт календаря
SET
string
Период, за который производить экспорт. Возможные значения:
— all — за весь период
— 3_9 — 3 месяца до и 9 после
— 6_12 — 6 месяцев до и 12 после

Примеры кода

  • cURL (Webhook)
    curl -X POST \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"id":325,"type":"user","ownerId":2,"name":"Changed Section Name","description":"New description for section","color":"#9cbeAA","text_color":"#283099","export":[{"ALLOW":false}]}' \
    https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webbhook_here**/calendar.section.update
  • cURL (OAuth)
    curl -X POST \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"id":325,"type":"user","ownerId":2,"name":"Changed Section Name","description":"New description for section","color":"#9cbeAA","text_color":"#283099","export":[{"ALLOW":false}],"auth":"**put_access_token_here**"}' \
    https://**put_your_bitrix24_address**/rest/calendar.section.update
  • JS
    try
    {
    	const response = await $b24.callMethod(
    		'calendar.section.update',
    		{
    			id: 325,
    			type: 'user',
    			ownerId: 2,
    			name: 'Changed Section Name',
    			description: 'New description for section',
    			color: '#9cbeAA',
    			text_color: '#283099',
    			export: [
    				{
    					ALLOW: false
    				}
    			]
    		}
    	);
    	
    	const result = response.getData().result;
    	console.log('Updated calendar section with ID:', result);
    	// Нужная вам логика обработки данных
    	processResult(result);
    }
    catch( error )
    {
    	console.error('Error:', error);
    }
  • PHP
    try {
        $response = $b24Service
            ->core
            ->call(
                'calendar.section.update',
                [
                    'id'          => 325,
                    'type'        => 'user',
                    'ownerId'     => 2,
                    'name'        => 'Changed Section Name',
                    'description' => 'New description for section',
                    'color'       => '#9cbeAA',
                    'text_color'  => '#283099',
                    'export'      => [
                        [
                            'ALLOW' => false
                        ]
                    ]
                ]
            );
    
        $result = $response
            ->getResponseData()
            ->getResult();
    
        echo 'Success: ' . print_r($result, true);
        // Нужная вам логика обработки данных
        processData($result);
    
    } catch (Throwable $e) {
        error_log($e->getMessage());
        echo 'Error updating calendar section: ' . $e->getMessage();
    }
  • BX24.js
    BX24.callMethod(
        'calendar.section.update',
        {
            id: 325,
            type: 'user',
            ownerId: 2,
            name: 'Changed Section Name',
            description: 'New description for section',
            color: '#9cbeAA',
            text_color: '#283099',
            export: [
                {
                    ALLOW: false
                }
            ]
        }
    );
  • PHP CRest
    require_once('crest.php');

    $result = CRest::call(
        'calendar.section.update',
        [
            'id' => 325,
            'type' => 'user',
            'ownerId' => 2,
            'name' => 'Changed Section Name',
            'description' => 'New description for section',
            'color' => '#9cbeAA',
            'text_color' => '#283099',
            'export' => [
                [
                    'ALLOW' => false
                ]
            ]
        ]
    );

    echo '<PRE>';
    print_r($result);
    echo '</PRE>';

Обработка ответа

HTTP-статус: 200

{
    "result": 190,
    "time": {
        "start": 1733812564.64201,
        "finish": 1733812565.71673,
        "duration": 1.0747201442718506,
        "processing": 0.05963897705078125,
        "date_start": "2024-12-08T06:36:04+00:00",
        "date_finish": "2024-12-08T06:36:05+00:00"
    }
}

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

Название
тип
Описание
result
integer
Идентификатор измененного календаря

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

HTTP-статус: 400

{
    "error": "",
    "error_description": "Не задан обязательный параметр "type" для метода "calendar.section.update""
}

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

КодСообщение об ошибкеОписание
Пустая строкаНе задан обязательный параметр «type» для метода «calendar.section.update»Не передан обязательный параметр type
Пустая строкаНе задан обязательный параметр «ownerId» для метода «calendar.section.update»Не передан обязательный параметр ownerId и параметр type не равен ‘user’
Пустая строкаНе задан id секцииНе передан обязательный параметр id
Пустая строкаНедопустимое значение параметра «name»Передан неверный формат данных в поле name
Пустая строкаНедопустимое значение параметра «description»Передан неверный формат данных в поле description
Пустая строкаДоступ запрещенКалендарь с указанным id не существует или нет прав для редактирования календаря
Пустая строкаПри изменении секции произошла ошибкаДругая ошибка
  • [](./index)
  • [](./calendar-section-add)
  • [](./calendar-section-get)
  • [](./calendar-section-delete)

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

Практические рекомендации:

  • При написании кастомных компонентов для «Обновить календарь calendar.section.update» всегда разделяйте бизнес-логику и представление (шаблон).
  • Используйте отладку SQL-запросов через конструкцию $wpdb->last_query или стандартный трекер Битрикса, чтобы контролировать нагрузку.

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

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

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

Related Post

Установить включаемые области для страницы landing.template.setLandingRefУстановить включаемые области для страницы landing.template.setLandingRef

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

Добавить клиентов к бронированию booking.v1.booking.client.setДобавить клиентов к бронированию booking.v1.booking.client.set

Каждый PHP-разработчик, работающий с экосистемой Bitrix Framework, должен глубоко понимать работу её ключевых компонентов. В этой статье мы проведем подробный аудит темы «Добавить клиентов к бронированию booking.v1.booking.client.set», проанализируем лучшие практики

Создать позицию с товаром из каталога в количестве 4 единиц с произвольной ценойСоздать позицию с товаром из каталога в количестве 4 единиц с произвольной ценой

При разработке и поддержке проектов на платформе 1С-Битрикс критически важно использовать современные стандарты D7 API. В этом руководстве мы детально изучим тему «Создать позицию с товаром из каталога в количестве