Стандартні можливості Бітрікс24 не завжди покривають специфічні бізнес-процеси. Наприклад, для відділу закупівель потрібен розділ з багатоетапним погодженням, інтеграцією з 1С УТ та кастомним інтерфейсом на Vue.js. У таких випадках розробляють SPA-додаток, вбудований у ліве меню порталу. За 10+ років ми реалізували десятки подібних проєктів. Зв'яжіться з нами — оцінимо ваш проєкт та запропонуємо рішення.
Як влаштований кастомний розділ у Бітрікс24?
Кастомний розділ — це додаток, вбудований у ліве меню порталу через механізм placement. Технічно це SPA, що завантажується в iframe всередині інтерфейсу Б24. Реєстрація відбувається через REST API метод placement.bind з типом LEFT_MENU. Детальніше про placement читайте в офіційній документації.
Точка входу — файл, що віддається вашим сервером (або серверлес-функцією). Бітрікс24 завантажує його в iframe, передаючи параметри авторизації: AUTH_ID, REFRESH_ID, member_id. Через ці параметри додаток отримує доступ до REST API порталу.
Повний список параметрів авторизації
Крім AUTH_ID та REFRESH_ID, в iframe передаються member_id, portal_id, app_id. Повний перелік див. у документації.
BX24.init(function() { BX24.callMethod('user.current', {}, function(result) { // Поточний користувач для перевірки прав }); }); Покрокова інструкція реєстрації кастомного розділу
- Створіть додаток у Маркет → Свої додатки, тип: серверний.
- Вкажіть шлях до вашого SPA в полі «Шлях до файлу».
- Зареєструйте placement методом
placement.bindз типомLEFT_MENUта передайте URL. - Встановіть додаток на портал.
Коли варто зберігати дані в смарт-процесах?
Смарт-процеси (\Bitrix\Crm\Service\Factory) — конструктор CRM-сутностей. Створюєте тип через CRM → Налаштування → Автоматизація → Смарт-процеси, додаєте користувацькі поля, налаштовуєте воронку. Дані зберігаються в таблицях b_crm_dynamic_items_*.
Кастомний розділ у цьому випадку — альтернативний UI для роботи з даними смарт-процесу. Замість стандартної картки та канбану ви малюєте свій інтерфейс, а дані читаєте та пишете через REST:
-
crm.item.list— отримання списку елементів -
crm.item.add/crm.item.update— створення та оновлення -
crm.item.fields— метадані полів
Перевага: безкоштовно отримуєте воронки, роботів, бізнес-процеси, права доступу, історію змін. Обмеження: REST API віддає максимум 50 елементів за запит, для великих списків потрібна пагінація. При 10 000+ записах інтерфейс повинен реалізувати серверну фільтрацію.
Коли вигідніша зовнішня БД?
Якщо дані складніші за плоский список — зв'язки багато-до-багатьох, ієрархії, специфічні індекси — простіше зберігати в зовнішній PostgreSQL або MySQL. Кастомний розділ звертається до вашого бекенду по API, а з Бітрікс24 взаємодіє лише для авторизації та отримання контексту користувача.
Схема: iframe завантажує SPA → SPA перевіряє AUTH_ID через oauth.bitrix.info/rest/ → отримує user_id → запитує дані з вашого бекенду по user_id.
Перевага: немає лімітів REST API, повний контроль над структурою даних. Обмеження: втрачаєте вбудованих роботів та бізнес-процеси, права доступу потрібно реалізувати самостійно.
| Критерій | Смарт-процеси | Зовнішня БД |
|---|---|---|
| Складність даних | Плоскі списки, до 5 зв'язків | Будь-які зв'язки, ієрархії |
| Продуктивність | До 10 000 записів без оптимізації | Без обмежень |
| Вбудовані роботи/БП | Так | Ні |
| Права доступу | З CRM | Потрібна власна реалізація |
| Час розробки | Швидше (1-2 тижні) | Довше (2-4 тижні) |
Вбудовані механізми смарт-процесів дозволяють реалізувати розділ швидше в 2-3 рази порівняно із зовнішньою БД, якщо бізнес-логіка вкладається в модель CRM. Але для складних сценаріїв зовнішня БД дає гнучкість та масштабування.
Інтеграція з інтерфейсом Б24
Для відчуття нативності кастомний розділ повинен використовувати дизайн-систему Бітрікс24. Офіційний UI-кіт: @bitrix24/b24-ui. Він містить компоненти, візуально ідентичні стандартним елементам порталу — кнопки, таблиці, фільтри, слайдери.
Ключові інтеграційні точки:
- Слайдер — відкриття картки елемента в бічній панелі через
BX24.openApplication({bx24_width: 800}) - Лічильники в меню — оновлення бейджа через
BX24.appOption.set('bx24_leftMenuCounter', count) - Сповіщення — надсилання через
im.notify.system.addдля оповіщення користувачів про події в розділі
Права доступу
Якщо дані в смарт-процесах — права успадковуються з CRM (ролі в налаштуваннях прав CRM-сутності). Для зовнішньої БД реалізуйте перевірку через REST-метод user.current + мапінг ролей Б24 на ролі вашого додатка.
Для перевірки належності до відділу: department.get повертає структуру, user.get з фільтром по UF_DEPARTMENT — користувачів підрозділу.
Що входить у роботу
Наші сертифіковані спеціалісти розробляють кастомні розділи під ключ і гарантують стабільну роботу після запуску. В рамках проєкту ви отримуєте:
- Архітектурну документацію та узгодження плану розробки
- Доступ до репозиторію та staging-сервера
- Налаштування прав доступу та інтеграцію з роботами/БП (якщо використовуються смарт-процеси)
- Навчання адміністраторів порталу роботі з розділом
- Гарантійну підтримку протягом 30 днів після здачі
Зв'яжіться з нами — ми оцінимо складність та запропонуємо терміни. Досвід більше 10 років та десятки реалізованих проєктів гарантують результат.
Оцінка термінів
| Компонент | Оцінка |
|---|---|
| Скелет додатка + реєстрація в Б24 | 1–2 дні |
| CRUD-інтерфейс списку (таблиця, фільтри) | 3–5 днів |
| Картка елемента зі слайдером | 2–3 дні |
| Права доступу (зовнішня БД) | 2–3 дні |
| Інтеграція з роботами/БП (смарт-процес) | 1–2 дні |
| Тестування та деплой | 2–3 дні |
Разом для розділу середньої складності: 1.5–2.5 тижні. Основна змінна — складність бізнес-логіки всередині розділу, а не сама інтеграція з Бітрікс24.
На що звернути увагу
Iframe-додатки працюють в ізольованому контексті. localStorage всередині iframe прив'язаний до домену вашого сервера, а не до домену порталу. Якщо у вас декілька порталів-клієнтів — зберігайте member_id в ключі storage, щоб не змішувати дані.
Токен AUTH_ID живе 1 годину. Для довгих сесій реалізуйте автооновлення через REFRESH_ID — інакше користувач отримає помилку авторизації. Щоб уникнути типових помилок при розробці, зверніться до наших інженерів. Ми гарантуємо стабільну роботу та надаємо 30-денну гарантійну підтримку.







