Разработка модуля GDPR/ФЗ-152 compliance 1С-Битрикс

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Разработка модуля GDPR/ФЗ-152 compliance 1С-Битрикс
Средняя
~1-2 недели
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • 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

Разработка модуля 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 недель

Перед разработкой необходим юридический аудит: какие ПДн собираются, на каком основании, кому передаются. Технический модуль реализует то, что определено юристом — без этого документа разработка идёт вслепую.