Деактивация имеющихся записей в справочниках
- Информация о материале
- Категория: Хаутушки
- Опубликовано: 11.08.2021, 09:00
- Просмотров: 1083

Задача
Сделать недоступными для пользователя (скрыть / удалить) на целевой системе существующие записи в справочнике.
Наиболее часто возникает при настройке кейсов по статусной модели.
Например, необходимо скрыть, показанные на скриншоте, коробочные значения:
- 1. Оформление
- 2. Согласование
- 3. Исполнение
- 4. Завершен
- 5. Отменен
Так, чтобы остались и использовались только новые значения:
- 1. Зарезервирован
- 2. Упакован
- 3. Отгружен
- 4. Доставлен
- 10. Отменен покупателем
- 13. Возвращен покупателем
Решение
- Включаем в справочнике возможность деактивации записей
- Добавляем Замещающий объект
- Выбираем исходный объект
- Включаем для него возможность деактивации записей в блоке Поведение - Разрешить деактивацию записей
- Сохраняем, публикуем
- Деактивируем коробочные записи
- Выводим колонку Деактивирована в реестр значений справочника
- Устанавливаем значение поля = Да для лишних записей
- Привязываем данные к пакету

Объяснение
Удаление записей через пакет можно перенести только с помощью SQL-скрипта. Однако само по себе удаление коробочных записей не самая хорошая идея, т.к. на них может быть завязана логика приложения (те же статусы могут использоваться в кейсах).
Поэтому лучше сами записи оставлять, но не отображать их пользователю.
Деактивированные записи не появляются в фильтрах, их нельзя выбрать в выпадающих списках на карточках. Но в реестре записей справочника они отображаются.
Если для раздела / справочника включено управление правами по записям, дополнительно можно снимать права на просмотр (в дополнение к изменению / удалению) деактивированных записей. Тогда их не будет видно и в реестре.
Обсудить в Telegram