Настройка согласия на обработку персональных данных 1С-Битрикс

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Настройка согласия на обработку персональных данных 1С-Битрикс
Простая
~1 рабочий день
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1181
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    813
  • 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 Appointment Booking Widget for a Medical Center
    564
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    747
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    655
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    976

Настройка согласия на обработку персональных данных 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.