Настройка согласия на обработку персональных данных 1С-Битрикс
Форма согласия на обработку персональных данных — это не просто галочка. Мы сталкивались с проектами, где отсутствие корректного согласия приводило к блокировке сайта по требованию Роскомнадзора. Штрафы по статье 13.11 КоАП РФ достигают 75 000 рублей на должностных лиц и до 300 000 на юрлиц. Согласие должно быть задокументировано, привязано к конкретному пользователю и форме, а при необходимости — отозвано с сохранением истории. Битрикс предоставляет для этого модуль UserConsent, появившийся в ядре D7. Наш опыт — более 7 лет внедрения 1С-Битрикс, свыше 50 проектов с полным циклом, гарантируем соответствие 152-ФЗ и 54-ФЗ. Даже одна форма обратной связи без согласия может стать причиной внеплановой проверки. Детальный аудит всех точек сбора данных — первый шаг к комплаенсу.
Как работает встроенный механизм 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. История сохраняется: пользователь дал согласие, позже отозвал — даты фиксируются. Это юридически важно.
После отзыва согласия нужно определить, что делать с уже накопленными данными. Автоматического удаления нет — это организационный процесс с технической поддержкой.
Почему встроенный модуль UserConsent лучше кастомной реализации?
Самописное решение часто игнорирует версионирование текстов и привязку контекста. UserConsent гарантирует юридическую значимость в 3 раза быстрее по времени внедрения и исключает риск блокировки сайта. Кроме того, модуль автоматически логирует IP, URL и ID пользователя — это закрывает требования регулятора.
Как проверить согласие перед обработкой данных?
В критических точках (перед отправкой email-рассылки, перед передачей данных в CRM) проверяйте наличие актуального согласия:
$hasConsent = \Bitrix\Main\UserConsent\Consent::isAccepted(
'newsletter',
['USER_ID' => $userId]
);
if (!$hasConsent) {
// не обрабатываем данные
}
Это защищает от ситуации, когда пользователь отозвал согласие, но система продолжает отправлять письма из-за накопленной очереди в таблице b_subscribe_subscription.
Какие этапы включает настройка согласия под ключ?
| Этап | Описание | Срок (рабочие дни) | Ориентировочный бюджет |
|---|---|---|---|
| Аналитика | Аудит текущих форм и потоков данных, выявление точек сбора ПДн | 1–3 | от 10 000 руб |
| Проектирование | Разработка схемы согласий, контекстов, текстов политики | 1–2 | от 8 000 руб |
| Реализация | Настройка модуля UserConsent, интеграция с формами, доработка кабинета пользователя | 3–7 | от 25 000 руб |
| Тестирование | Проверка фиксации, отзыва, проверки и юридической значимости | 1–2 | от 5 000 руб |
| Документация | Передача инструкций, доступов, описание процессов поддержки | 1 | от 3 000 руб |
Стоимость рассчитывается индивидуально после анализа объёма форм и доработок. Звоните или пишите — оценим проект бесплатно. Работаем с гарантией 12 месяцев и сертификатами 1С-Битрикс.
Сравнение: кастомная реализация vs UserConsent
| Параметр | Кастомная реализация | UserConsent |
|---|---|---|
| Версионирование текстов | Отсутствует или самописное | Встроенное, привязано к записи |
| Привязка к пользователю | Нужно писать вручную | Автоматически по ID или IP |
| Логирование IP, URL, даты | Часто пропускается | Фиксируется в таблицах |
| Отзыв с историей | Нужно реализовать | Готовый механизм |
| Юридическая значимость | Под вопросом | Соответствует 152-ФЗ |
Как мы это делаем: пошаговая инструкция
- Аудитируем все точки сбора данных на сайте (формы, корзина, личный кабинет).
- Создаём контексты для каждой формы в модуле UserConsent.
- Подключаем согласие к существующим компонентам через параметры или rewrite.
- Настраиваем страницу отзыва согласия и логику обработки отказа.
- Тестируем сценарии: регистрация, отправка формы, отзыв, проверка согласия.
Убедитесь, что ваш сайт защищён от штрафов. Получите консультацию прямо сейчас — свяжитесь с нами для расчёта стоимости вашего проекта.







