← К кейсам

Кейсы

История и защита отдельных полей CRM

Модуль для коробочного Bitrix24: выбранные CRM-поля записываются в штатную историю, а пользователи заданных групп и отделов не могут вручную менять их в карточке.

Контроль отдельных полей

Штатные права CRM хорошо ограничивают работу с сущностью целиком, но иногда нужно оставить сотруднику возможность редактировать сделку и при этом закрыть для него одно или несколько полей. Отдельно хотелось видеть историю изменений только тех полей, которые действительно важны.

Для этого я сделал модуль. В его настройках для каждого поля независимо задаются запись изменений в историю и запрет ручного редактирования для выбранных групп или отделов.

Общий экран настроек модуля истории и защиты полей CRM
Сущности CRM разделены на сворачиваемые блоки; правило настраивается отдельно для каждого поля.

Настройка правила

Внутри сущности отображаются её поля, код поля, переключатель истории и два списка ограничений: группы пользователей и отделы. По названию или коду можно быстро найти нужное поле.

На примере ниже для поля «Тип сделки» включена запись в историю и выбран отдел, которому запрещено ручное редактирование.

Поле сделки с включённой историей и запретом редактирования для отдела
История и ограничения задаются в одной строке поля и не зависят друг от друга.

Поле остаётся только для просмотра

Ограничение не переводит всю сделку в режим «только просмотр». Пользователь продолжает редактировать доступные ему данные, но защищённое поле не входит в режим редактирования даже при включении редактирования всей карточки.

Защищённое поле Тип сделки остаётся только для просмотра в режиме редактирования сделки
Карточка находится в режиме редактирования, а защищённое поле «Тип сделки» остаётся только для просмотра.

Запрет относится именно к ручному изменению через интерфейс CRM. Роботы, бизнес-процессы, REST-интеграции и серверные обработчики могут продолжать менять поле — модуль не вмешивается в существующую автоматизацию.

Изменения в штатной истории

Если для поля включено отслеживание, после изменения модуль добавляет событие в стандартную вкладку «История». Отдельный журнал открывать не нужно: запись находится рядом с остальными событиями CRM.

В событии сохраняются название поля, старое и новое значения, автор изменения и время. На скриншоте зафиксировано изменение пользовательского поля «Запланированная встреча».

Запись изменения пользовательского поля во вкладке История сделки
Модуль записал изменение пользовательского поля в штатную историю сделки с предыдущим и новым значениями.

Что получилось

В результате права на карточку CRM остаются штатными, а поверх них появляется более точное правило для отдельных полей. Можно закрыть ручное редактирование чувствительных данных для конкретного отдела или группы и одновременно включить аудит изменений только там, где он нужен.

Модуль работает без изменения ядра: настройки находятся в административной части, ограничение применяется в CRM-интерфейсе, а события записываются в стандартную историю сущности.