Разработка модуля GDPR/ФЗ-152 compliance 1С-Битрикс
Роскомнадзор начал штрафовать за конкретные нарушения ФЗ-152: хранение ПДн без согласия, передача данных за рубеж без уведомления, отсутствие ответа на запрос субъекта в течение 30 дней. GDPR добавляет штрафы до 4% годового оборота компании для тех, кто работает с европейскими пользователями. В Битрикс нет встроенного compliance-инструментария — модуль его создаёт.
Что нужно реализовать технически
Compliance — не просто баннер с согласием на cookies. Регуляторные требования транслируются в конкретные технические задачи:
| Требование | Реализация |
|---|---|
| Согласие на обработку ПДн | Журнал согласий с версионностью политики |
| Право на доступ к данным | Экспорт всех ПДн пользователя по запросу |
| Право на удаление | Анонимизация данных во всех таблицах |
| Право на перенос данных | Экспорт в машиночитаемом формате (JSON/CSV) |
| Уведомление об утечке | Процесс фиксации и уведомления |
| Минимизация данных | Аудит собираемых полей |
Журнал согласий
Каждое согласие пользователя должно быть задокументировано: кто, что, когда и на основании какой версии политики согласился.
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, -- 'marketing', 'analytics', 'necessary'
policy_version VARCHAR(20) NOT NULL, -- '2024-03-01'
granted BOOLEAN NOT NULL,
source VARCHAR(100), -- 'cookie_banner', 'registration_form'
created_at TIMESTAMP DEFAULT NOW()
);
При изменении политики конфиденциальности номер версии обновляется в настройках модуля. При следующем посещении пользователи, давшие согласие по старой версии, видят уведомление о необходимости повторного согласия.
Детально: право на удаление (right to be forgotten)
Удалить пользователя из Битрикс несложно — сложно удалить его данные из всех мест, не сломав бизнес-логику. Заказы нельзя удалять — они нужны для бухгалтерии. Контакты в CRM-связях нельзя удалять — нарушается история.
Решение — анонимизация, а не удаление:
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()]);
}
}
Список таблиц конфигурируется — при добавлении новых модулей с пользовательскими данными их нужно добавлять в конфигурацию анонимизатора.
Cookie-баннер и управление согласиями
Модуль генерирует cookie-баннер с разделением по категориям: необходимые, аналитические, маркетинговые. Выбор пользователя сохраняется в localStorage и синхронизируется с сервером для зарегистрированных пользователей. Скрипты аналитики (Яндекс.Метрика, Google Analytics) подключаются условно — только если пользователь дал согласие на аналитические cookies.
Обработка запросов субъектов
Форма запроса субъекта (запрос на получение/удаление/экспорт данных) создаёт тикет в таблице myvendor_dsr_request. Администратор видит очередь запросов с дедлайном (30 дней по ФЗ-152, 30 дней по GDPR). При приближении дедлайна — автоматическое напоминание на email ответственного.
Экспорт данных пользователя. По кнопке «Скачать мои данные» система собирает все записи из таблиц, связанных с пользователем, и формирует JSON-архив: профиль, заказы, адреса, согласия, история действий.
Сроки разработки
| Масштаб | Состав | Срок |
|---|---|---|
| Базовый | Журнал согласий + cookie-баннер + анонимизация | 3–4 недели |
| Средний | + экспорт данных + обработка DSR-запросов + аудит полей | 6–8 недель |
| Полный | + DPA-соглашения + реестр обработки + утечки | 10–14 недель |
Перед разработкой необходим юридический аудит: какие ПДн собираются, на каком основании, кому передаются. Технический модуль реализует то, что определено юристом — без этого документа разработка идёт вслепую.







