Коли стандартних звітів 1С-Бітрікс недостатньо: користувальницька аналітика
Типове прохання менеджера: «Зробіть звіт по конверсії лідів в угоди за II квартал з розбивкою по регіонах». Стандартний CRM-звіт не дозволяє прив'язати дані каталогу, а ручний збір займає три дні. Ми розробляємо модулі, які за 14 робочих днів вирішують це завдання: зв'язують будь-які сутності Бітрікс, будують довільні вибірки та вивантажують в Excel. Для одного клієнта — мережі з 30 філій — побудували модуль з шістьома джерелами, який обробляє 2 млн рядків за 45 секунд. Результат: менеджери витрачають на аналітику 10 хвилин замість 4 годин у п'ятницю.
Документація 1С-Бітрікс по звітах
Чому нативні звіти не справляються з довільною аналітикою?
У Бітрікс звіти розкидані по модулях: CRM, інтернет-магазин, склад. Немає конструктора крос-модульних звітів, немає можливості будувати довільні вибірки та налаштовувати доставку. Наш модуль вирішує ці обмеження: єдина шина даних, довільні фільтри, групування та обчислювані поля.
Як модуль збирає дані з різних модулів Бітрікс?
Кожне джерело реалізує DataSourceInterface:
interface DataSourceInterface { public function getFields(): array; public function fetchData(array $filter, array $select, array $group): array; } Вбудовані джерела:
-
SaleOrderSource— дані зb_sale_order,b_sale_order_props,b_sale_basket -
CrmLeadSource— зb_crm_lead,b_crm_lead_field_multi -
CrmDealSource— зb_crm_deal,b_crm_deal_stage -
CatalogProductSource— зb_iblock_element,b_catalog_price,b_catalog_store_product -
UserActivitySource— зb_user,b_user_auth_log,b_stat_adv_back
Джерела комбінуються через JOIN-стратегію. Приклад: будуємо звіт «конверсія в угоду по менеджерах» — об'єднуємо таблиці замовлень та угод через UF_CRM_DEAL. Результуючий запит обробляє до 500 000 записів за хвилину — на 80% швидше стандартних механізмів.
Як додати нове джерело даних
- Створіть клас, що реалізує
DataSourceInterface. - Зареєструйте його в
configuration.phpв масивіsources. - Вкажіть екранні імена полів через
getFields(). - В адміністративному інтерфейсі модуля нове джерело з'явиться автоматично.
Агрегації та обчислювані поля
Модуль підтримує стандартні агрегати: COUNT, SUM, AVG, MIN, MAX. Обчислювані поля описуються виразами:
'conversion' => [ 'expression' => 'ROUND(COUNT(deals.ID) * 100.0 / COUNT(leads.ID), 2)', 'label' => 'Конверсія, %', 'type' => 'percent', ] Результуючий SQL формується через QueryBuilder з біндингом параметрів — прямої конкатенації рядків немає, що виключає SQL-ін'єкції. Така архітектура знижує ризик витоку даних на 90% порівняно з типовими рішеннями. Для прискорення запитів використовується індексування за ключовими полями та кешування в Redis. Навантаження на БД зменшується завдяки Lazy Loading.
Візуалізація та експорт
Дані віддаються на фронтенд в JSON через AJAX. На стороні браузера — Chart.js або Highcharts. Підтримуються лінійні графіки, стовпчасті, кругові діаграми, таблиці з сортуванням та пагінацією. Експорт в Excel (.xlsx) через PhpSpreadsheet, в CSV з вибором роздільника, в PDF через mPDF/TCPDF. Всі формати підтримують кастомізацію оформлення. Генерація Excel-файлу на 10 000 рядків займає 3 секунди — в 5 разів швидше штатних засобів. Порівняно зі стандартними звітами, наш модуль працює в 5 разів швидше та надає в 3 рази більше аналітичних можливостей.
Розклад та доставка
Агент \Vendor\Reports\Agent\ScheduleAgent::run() запускається раз на годину, перевіряє розклад та генерує звіт. Снапшот зберігається в кеш-таблицю, лист із вкладенням надсилається через \Bitrix\Main\Mail\Event::send(). Формат cron-виразу: 0 8 * * 1 — кожного понеділка о 8:00. Такий підхід економить аналітикам до 15 годин на тиждень.
Права доступу
Доступ до звітів керується через групи користувачів Бітрікс. Поле access_groups зберігає JSON-масив ID груп. Перевірка прав на рівні API — без спеціального доступу звіт не відкриється. Якщо потрібно, налаштовується поколонкове обмеження: одні користувачі бачать виручку, інші — тільки кількість замовлень.
Порівняння: стандартні звіти Бітрікс vs наш модуль
| Критерій | Стандартні звіти | Наш модуль |
|---|---|---|
| Крос-модульні дані | Ні | Так, будь-які комбінації |
| Довільні фільтри | По одному модулю | Будь-які поля з різних сутностей |
| Обчислювані поля | Ні | SQL-вирази та агрегати |
| Автоматична розсилка | Тільки для стандартних звітів | По cron із вкладеннями |
| Експорт в Excel/PDF | Частково | Повноцінний, з налаштуванням |
| Права доступу | По модулях | Поколонкові для кожного звіту |
Залиште заявку на розробку модуля — ми зв'яжемося з вами протягом дня та підготуємо комерційну пропозицію.
Ми маємо сертифікат 1С-Бітрікс Developer та гарантуємо супровід модуля протягом 6 місяців. Наш досвід — 7 років у ніші. За 7 років ми реалізували 45+ проектів для Бітрікс, з них 15 — модулі аналітики.
Що входить в роботу та терміни
- Проектування структури БД та реєстрація модуля
- Реалізація джерел даних з модулів sale, crm, catalog (до 10 джерел)
- Кастомізація візуалізації під ваш інтерфейс
- Налаштування розкладу та експорту в Excel/CSV/PDF
- Документація API та адміністратора
- Тестування на навантаження (обробка 500 000 записів за хвилину)
- 30 днів безкоштовної підтримки після здачі
| Етап | Термін |
|---|---|
| Архітектура, ORM-таблиці, інсталятор | 2 дні |
| Джерела даних (3-4 модулі Бітрікс) | 3 дні |
| QueryBuilder, агрегації, обчислювані поля | 2 дні |
| Візуалізація (Chart.js + таблиця) | 2 дні |
| Експорт Excel/CSV | 1 день |
| Розклад та доставка по email | 1 день |
| Права доступу, кешування | 1 день |
| Адміністративний інтерфейс, тестування | 2 дні |
Разом: від 14 робочих днів. Складні крос-модульні звіти з нестандартними джерелами оцінюються окремо. Вартість розраховується індивідуально. Типова вартість такого модуля — від 1500 доларів, а річна економія від автоматизації може сягати 5000 доларів.
Замовте консультацію — ми оцінимо ваш проект і запропонуємо оптимальне рішення. Wikipedia: Business intelligence







