Блог Горошко Андрея 1C-Битрикс Слайдер Битрикс (SidePanel): Открытие компонентов и страниц в боковой панели

Слайдер Битрикс (SidePanel): Открытие компонентов и страниц в боковой панели

Боковая панель (слайдер) — это стандарт де-факто в интерфейсах Битрикс24.

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

1. Открытие ссылки в слайдере

Самый простой способ — добавить специальный атрибут к ссылке. Но для этого на странице должна быть инициализирована библиотека слайдера.

<? \Bitrix\Main\UI\Extension::load("sidepanel"); ?>

<!-- Просто ссылка -->
<a href="/mypage.php" onclick="BX.SidePanel.Instance.open(this.href); return false;">
    Открыть в слайдере
</a>

2. Настройка параметров слайдера

Метод open принимает объект настроек.

BX.SidePanel.Instance.open("/mypage.php", {
    width: 600, // Ширина слайдера
    cacheable: false, // Не кэшировать содержимое (перезагружать при каждом открытии)
    allowChangeHistory: false, // Не менять URL в браузере
    label: {
        text: "Моя страница",
        color: "#FFFFFF",
        bgColor: "#000000",
        opacity: 0.8
    }
});

3. Работа внутри слайдера (PHP)

Страница, открытая в слайдере, — это обычная страница, но она загружается в IFRAME. Битрикс автоматически определяет это и подключает специальный облегченный шаблон (без шапки и подвала сайта).

Если вы хотите закрыть слайдер изнутри (например, после сохранения формы):

// JS код внутри слайдера (например, в success-обработчике ajax)
var slider = top.BX.SidePanel.Instance.getSliderByWindow(window);
if(slider) {
    slider.close();
}

4. Обновление родительского списка при закрытии

Классический сценарий: открыли редактирование элемента в гриде -> сохранили -> слайдер закрылся -> грид должен обновиться.

На родительской странице:

BX.addCustomEvent("SidePanel.Slider:onMessage", function(event) {
    if (event.getEventId() === "MY_MODULE_UPDATE_GRID") {
        var grid = BX.Main.gridManager.getById("my_grid_id");
        if (grid) {
            grid.instance.reload(); // Перезагрузка грида
        }
    }
});

На странице в слайдере (после сохранения):

top.BX.SidePanel.Instance.postMessage(window, "MY_MODULE_UPDATE_GRID", {});
top.BX.SidePanel.Instance.close();

Вывод:
Использование BX.SidePanel значительно улучшает UX, избавляя пользователя от лишних переходов и перезагрузок страниц.

Это особенно актуально для административных разделов и личных кабинетов.

BX.SidePanel, слайдер битрикс, боковая панель, открывать в слайдере, IFRAME, sidepanel.js, slider.

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

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

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

Добавить комментарий

Related Post

Как использовать D7Debug::endTime() в 1С-Битрикс: пример кодаКак использовать D7Debug::endTime() в 1С-Битрикс: пример кода

При разработке и поддержке проектов на платформе 1С-Битрикс критически важно использовать современные стандарты D7 API. В этом руководстве мы детально изучим тему «Как использовать D7Debug::endTime() в 1С-Битрикс: пример кода», разберем

Разработка сайта для застройщика и жилого комплекса (ЖК) на 1С-БитриксРазработка сайта для застройщика и жилого комплекса (ЖК) на 1С-Битрикс

Создание и развитие эффективного веб-ресурса по направлению «Разработка сайта для застройщика и жилого комплекса (ЖК) на 1С-Битрикс» позволяет усилить позиции бренда на рынке, автоматизировать взаимодействие с заказчиками и кратно увеличить

Как использовать CEvent::Send() в 1С-Битрикс: пример кодаКак использовать CEvent::Send() в 1С-Битрикс: пример кода

Каждый PHP-разработчик, работающий с экосистемой Bitrix Framework, должен глубоко понимать работу её ключевых компонентов. В этой статье мы проведем подробный аудит темы «Как использовать CEvent::Send() в 1С-Битрикс: пример кода», проанализируем