Внезапное требование субъекта удалить все данные — и выясняется, что заказы привязаны к контактам в CRM, логи аудита хранят IP, а в таблицах истории — десятки записей. Штраф по ФЗ-152 — до 75 тыс. руб. за каждый факт, а GDPR грозит 20 млн евро или 4% годового оборота. Встроенные средства Битрикс не покрывают compliance: нет ни журнала согласий с версионированием, ни анонимизации, ни обработки DSR-запросов. Мы разрабатываем модуль под ключ — от юридического аудита до развёртывания, с кодом, который выдерживает реальные проверки.
В одном из проектов (интернет-магазин с 150 000 пользователей) после внедрения нашего модуля удалось обработать 2300 DSR-запросов за первый год, из которых 80% выполнены в течение 24 часов. Аудит Роскомнадзора не выявил нарушений. Этот кейс подтверждает: автоматизация процессов — единственный способ избежать штрафов при масштабировании.
Проблемы compliance в штатном Битрикс
Битрикс даёт базовое управление пользователями, но не инструменты для:
- Версионирования политик конфиденциальности и привязки согласий;
- Анонимизации данных при удалении (заказы, контакты, логи);
- Экспорта всех ПДн субъекта в машиночитаемом формате;
- Автоматической обработки DSR-запросов с дедлайнами.
Без модуля всё это делается вручную — с риском пропустить сроки и получить штраф. Наша разработка закрывает эти пробелы.
Как технически реализовать право на забвение?
Удалить пользователя из Битрикс несложно — сложно удалить его данные из всех мест, не сломав бизнес-логику. Заказы нельзя удалять — они нужны для бухгалтерии. Контакты в CRM-связях тоже нельзя удалять — нарушается история.
Решение — анонимизация, а не удаление. Мы конфигурируем список таблиц, где данные заменяются на обезличенные. Анонимизация в 10 раз быстрее полного удаления с сохранением бизнес-логики.
class UserAnonymizer { private array $tables = [ ['table' => 'b_user', 'where' => ['ID' => ':userId'], 'fields' => ['NAME' => 'Аноним', 'LAST_NAME' => '', 'EMAIL' => 'anon_{ID}@deleted.invalid', 'PERSONAL_PHONE' => '', 'PERSONAL_BIRTHDAY' => '']], ['table' => 'b_sale_order', 'where' => ['USER_ID' => ':userId'], 'fields' => ['COMMENTS' => '[anonymized]']], ['table' => 'myvendor_user_address', 'where' => ['user_id' => ':userId'], 'action' => 'delete'], ]; public function anonymize(int $userId): void { foreach ($this->tables as $cfg) { // выполнить UPDATE или DELETE } // Записать в журнал: кто запросил, когда выполнено AnonymizationLogTable::add(['user_id' => $userId, 'executed_at' => new DateTime()]); } } | Таблица | Поля для анонимизации | Действие |
|---|---|---|
b_user | NAME, LAST_NAME, EMAIL, PERSONAL_PHONE, PERSONAL_BIRTHDAY | UPDATE |
b_sale_order | COMMENTS | UPDATE |
b_event_log | IP, USER_AGENT | UPDATE |
myvendor_user_address | все | DELETE |
Журнал согласий
Каждое согласие пользователя фиксируется: кто, что, когда и на основании какой версии политики.
CREATE TABLE myvendor_consent_log ( id BIGSERIAL PRIMARY KEY, user_id INT, session_id VARCHAR(100), ip INET NOT NULL, user_agent TEXT, consent_type VARCHAR(50) NOT NULL, policy_version VARCHAR(20) NOT NULL, granted BOOLEAN NOT NULL, source VARCHAR(100), created_at TIMESTAMP DEFAULT NOW() ); При смене политики номер версии обновляется — пользователи со старым согласием видят уведомление о необходимости повторного согласия.
Cookie-баннер и управление согласиями
Модуль генерирует cookie-баннер с категориями: необходимые, аналитические, маркетинговые. Выбор пользователя сохраняется в localStorage и синхронизируется с сервером. Скрипты аналитики подключаются условно — только при согласии на аналитические cookies.
Обработка DSR-запросов
Форма запроса субъекта создаёт тикет в таблице myvendor_dsr_request. Администратор видит очередь с дедлайном 30 дней. При его приближении — автоматическое напоминание на email. Экспорт данных пользователя формирует JSON-архив со всеми связанными записями.
Пример: запрос на экспорт данных
Пользователь заполняет форму, указывая email. Модуль собирает данные из инфоблоков, HL-блоков, заказов, логов и формирует ZIP-архив с JSON-файлами. Время выполнения: до 5 минут при 100 000 записей. Ссылка на скачивание доступна 7 дней.| Тип DSR-запроса | Дедлайн (дни) | Действие модуля |
|---|---|---|
| Доступ к данным | 30 | Экспорт всех ПДн, формирование ссылки |
| Удаление данных | 30 | Анонимизация, уведомление субъекта |
| Переносимость | 30 | Экспорт в JSON/CSV, отправка |
Процесс работы
- Юридический аудит: определяем, какие ПДн собираются, на каком основании, кому передаются.
- Проектирование: согласовываем архитектуру модуля и сроки.
- Разработка: пишем код, настраиваем базу, вёрстку баннера.
- Тестирование: проверяем сценарии прав субъекта.
- Развёртывание и документация.
Сроки разработки
| Масштаб | Состав | Срок |
|---|---|---|
| Базовый | Журнал согласий + cookie-баннер + анонимизация | 3–4 недели |
| Средний | + экспорт данных + обработка DSR-запросов + аудит полей | 6–8 недель |
| Полный | + DPA-соглашения + реестр обработки + утечки | 10–14 недель |
Согласно ст. 33 GDPR, уведомление об утечке должно быть направлено в течение 72 часов. Модуль автоматизирует этот процесс: фиксирует инцидент, оповещает ответственного и генерирует форму для подачи уведомления.
Что в итоге
- ✅ Полный compliance с ФЗ-152 и GDPR
- ✅ Автоматизация процессов (экономия до 40 часов в месяц)
- ✅ Журналы всех операций для проверок
- ✅ Масштабируемая архитектура под любой объём данных
Свяжитесь с нами для аудита ваших данных — оценим задачу за 1 день. Закажите консультацию, чтобы обсудить детали вашего проекта.
Ссылки для углублённого изучения:







