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

Наша компанія займається розробкою, підтримкою та обслуговуванням рішень на Бітрікс та Бітрікс24 будь-якої складності. Від простих односторінкових сайтів до складних інтернет-магазинів, CRM систем з інтеграцією 1С та телефонії. Досвід розробників підтверджено сертифікатами від вендора.
Пропоновані послуги
Показано 1 з 1 послугУсі 1626 послуг
Налаштування згоди на обробку персональних даних 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

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

Форма згоди на обробку персональних даних — це не просто чекбокс. Згода повинна бути задокументована, прив'язана до конкретного користувача та форми, а при необхідності — відозвана. Бітрікс надає для цього модуль UserConsent, що з'явився в ядрі D7.

Вбудований механізм UserConsent

З версії ядра D7 у Бітриксі входить клас \Bitrix\Main\UserConsent\Consent та пов'язані таблиці. Основні:

  • b_user_consent — записи про згоди користувачів
  • b_user_consent_text — тексти згод з версіюванням

Згода створюється через метод add() або addByContext():

$result = \Bitrix\Main\UserConsent\Consent::addByContext(
    'feedback_form',          // ID контексту (назва форми)
    [
        'USER_ID' => $userId, // або 0 для анонімів
        'USER_IP' => $_SERVER['REMOTE_ADDR'],
    ],
    [
        'AGREEMENT_ID' => 1,  // ID тексту угоди з b_user_consent_text
        'URL' => \Bitrix\Main\Application::getInstance()->getContext()->getRequest()->getRequestUri(),
    ]
);

Поле AGREEMENT_ID посилається на конкретну версію тексту угоди. Це важливо: якщо ви оновите текст політики конфіденційності, старі згоди залишаються прив'язаними до старого тексту — можна довести, з яким саме текстом згодився користувач.

Налаштування текстів угод через адміністратор

Тексти угод управляються в /bitrix/admin/ через модуль головного модуля. Кожен текст має ID, назву та версіонований контент. При оновленні політики конфіденційності створюється нова версія — старі згоди не обесцінюються, нові користувачі отримують актуальний текст.

Для кожної форми на сайті створюється окремий «контекст» (рядок-ідентифікатор): registration, checkout, callback_form, newsletter. Це дозволяє відстежувати, через яку точку входу отримана згода.

Інтеграція з формами та веб-формами

Форма реєстрації. Компонент bitrix:main.register підтримує вбудований вивід чекбокса згоди — параметр USE_AGREEMENT = Y в налаштуваннях компонента. При цьому ID тексту угоди передається через параметр AGREEMENT_ID. Дані фіксуються автоматично при успішній реєстрації.

Модуль «Веб-форми» (form). Для форм зворотного зв'язку — додавайте поле типу AGREEMENT в конструкторі форм (/bitrix/admin/form_edit.php). При відправленні форми Бітрікс автоматично записує згоду в b_user_consent з прив'язкою до результату форми (b_form_result).

Спеціальні форми. При самостійній обробці POST-даних (AJAX-форма на Fetch API) викликайте Consent::add() в PHP-обробнику перед збереженням даних форми. Без цього згода ніде не фіксується, навіть якщо чекбокс на сторінці є.

Відзив згоди

Користувач повинен мати можливість відозвати згоду. У особистому кабінеті (/personal/) додавайте сторінку управління згодами. Список згод конкретного користувача:

$consents = \Bitrix\Main\UserConsent\ConsentTable::getList([
    'filter' => ['USER_ID' => $USER->GetID()],
    'order' => ['DATE_CREATE' => 'DESC']
]);

Відзив — це не видалення запису, а створення нового з IS_ACCEPTED = N. Історія зберігається: користувач дав згоду 01.01.2024, відозвав 15.03.2024. Це юридично важливо.

Після відзиву згоди потрібно визначити, що робити з уже накопленими даними. Автоматичного видалення немає — це організаційний процес з технічною підтримкою.

Перевірка згоди перед обробкою даних

У критичних точках (перед відправленням email-розсилки, перед передачею даних у CRM) перевіряйте наявність актуальної згоди:

$hasConsent = \Bitrix\Main\UserConsent\Consent::isAccepted(
    'newsletter',
    ['USER_ID' => $userId]
);
if (!$hasConsent) {
    // не обробляємо дані
}

Це захищає від ситуацій, коли користувач відозвав згоду, але система продовжує відправляти листи через накопичену чергу в таблиці b_subscribe_subscription.