Налаштування відправлення даних у Яндекс.DataLens з 1С-Бітрікс

Наша компанія займається розробкою, підтримкою та обслуговуванням рішень на Бітрікс та Бітрікс24 будь-якої складності. Від простих односторінкових сайтів до складних інтернет-магазинів, CRM систем з інтеграцією 1С та телефонії. Досвід розробників підтверджено сертифікатами від вендора.
Пропоновані послуги
Показано 1 з 1 послугУсі 1626 послуг
Налаштування відправлення даних у Яндекс.DataLens з 1С-Бітрікс
Проста
~1 робочий день
Часті питання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Розробка на базі Бітрікс, Бітрікс24, 1С для компанії Development of an Online
    585
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    751
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    657
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    989

Налаштування експорту даних у Yandex DataLens з 1С-Бітрікс

DataLens — це BI-інструмент від Yandex з можливістю побудови дашбордів на основі даних з різних джерел: PostgreSQL, ClickHouse, Google Sheets, Yandex.Метрика. Для інтернет-магазину на Бітриксі DataLens дозволяє об'єднати дані з бази Бітрикса (замовлення, товари, користувачі) з даними Метрики (поведінка, джерела трафіку) і побудувати звіти, які неможливо отримати ні з однієї системи окремо.

Прямий зв'язок PostgreSQL до DataLens

Найбільш чистий варіант: DataLens підключається прямо до бази даних Бітрикса через коннектор PostgreSQL. Не потрібна ніяка додаткова розробка — DataLens запитує дані безпосередньо з таблиць b_sale_order, b_catalog_price, b_iblock_element та інших.

Вимоги: база даних повинна бути доступна з хмари Yandex (білий IP або VPN). В налаштуваннях DataLens: "Створити з'єднання → PostgreSQL" → вказати хост, порт (5433 за замовчуванням для Бітрикса), ім'я бази, користувача та пароль.

Для безпеки — створити окремого користувача PostgreSQL з правами тільки для читання потрібних таблиць:

CREATE USER datalens_ro WITH PASSWORD 'strong_password';
GRANT CONNECT ON DATABASE bitrix TO datalens_ro;
GRANT USAGE ON SCHEMA public TO datalens_ro;
GRANT SELECT ON b_sale_order, b_sale_order_item,
                b_iblock_element, b_catalog_price,
                b_user TO datalens_ro;

Вітрина даних: проміжна таблиця

Прямі запити до таблиць Бітрикса в DataLens неефективні: таблиця b_sale_order може містити мільйони рядків, а DataLens виконує запити кожного разу при відкритті дашборду. Краще створити вітрину даних — агреговану таблицю, яка оновлюється за розписанням:

CREATE TABLE datalens_orders_daily AS
SELECT
    DATE_TRUNC('day', DATE_INSERT)::DATE AS order_date,
    CURRENCY                              AS currency,
    COUNT(*)                              AS orders_count,
    SUM(PRICE)                            AS revenue,
    SUM(PRICE_DELIVERY)                   AS delivery_total,
    AVG(PRICE)                            AS avg_order_value
FROM b_sale_order
WHERE CANCELED = 'N'
GROUP BY 1, 2;

CREATE INDEX idx_datalens_od_date ON datalens_orders_daily(order_date);

Оновлення вітрини через агент Бітрикса раз на годину:

// У init.php
function UpdateDataLensOrdersVitrine() {
    global $DB;
    $DB->Query("
        INSERT INTO datalens_orders_daily
        SELECT DATE_TRUNC('day', DATE_INSERT)::DATE, CURRENCY,
               COUNT(*), SUM(PRICE), SUM(PRICE_DELIVERY), AVG(PRICE)
        FROM b_sale_order
        WHERE CANCELED = 'N'
          AND DATE_INSERT >= NOW() - INTERVAL '2 days'
        GROUP BY 1, 2
        ON CONFLICT (order_date, currency) DO UPDATE
        SET orders_count = EXCLUDED.orders_count,
            revenue = EXCLUDED.revenue
    ", false, 'FILE', __LINE__);

    return \CAgent::DEFAULT_PERIOD;
}

Підключення Yandex.Метрики як другого джерела

DataLens вміє підключатися до Yandex.Метрики безпосередньо — це ключова перевага для об'єднання даних. В DataLens: "Створити з'єднання → Yandex.Метрика" → ввести номер лічильника та OAuth-токен.

Після створення двох з'єднань (PostgreSQL + Метрика) в DataLens можна створити набір даних із JOIN-запитом: наприклад, пов'язати order_date з вітрини замовлень з датою з Метрики та бачити на одному графіку виручку та трафік — одразу зрозуміло, які рекламні кампанії дають реальну виручку, а не просто клацання.

Експорт подій у ClickHouse через Бітрікс

Для більш серйозної аналітики — події з Бітрикса (додавання в кошик, початок оформлення, збовтані замовлення) відправляються до ClickHouse через Kafka або безпосередньо через HTTP API ClickHouse. DataLens підключається до ClickHouse і будує воронки продажу в реальному часі. Це вже рівень EnterprisAnalytics, але архітектурно Бітрікс готовий до цього — потрібні обробники подій модуля sale та фонова відправка через чергу.