Документация

Добавление/Удаление данных

Кнопка добавления и действия над строками включаются правами контроллера.

Метод Что открывает
canAdd() кнопку «Добавить» над списком
canDelete() удаление строки и групповое удаление
canActivate() включение и выключение строк, если у сущности есть поле активности
php · ElementList.php
public function canAdd(): bool
{
    return $this->getEntityAccess() >= 'W';
}

public function canDelete(): bool
{
    return $this->getEntityAccess() >= 'W';
}

getEntityAccess() возвращает уровень доступа к модулю сущности — тот самый, что задан в настройках модуля на вкладке «Доступ». Своя проверка ставится вместо него или рядом с ним.

Куда ведёт «Добавить»

На форму редактирования по адресу из настройки editUrl. Если она не задана, список берёт текущий адрес и заменяет в нём list.php на edit.php:

php
$controller->initialize([
    'editUrl' => '/bitrix/admin/vendor_module_element_edit.php',
]);

Форму делают классом DevBx\Core\UI\Edit\Form — про неё глава «DevBx\Core\UI\Edit\Form».

Поле активности

По умолчанию активностью считается поле ACTIVE. Если в сущности оно называется иначе, переопределяют getActivateField():

php
public function getActivateField(): string
{
    return 'IS_ENABLED';
}

Когда поля активности нет вовсе, canActivate() вернёт false сам — проверять наличие поля руками не нужно.

Своё удаление

Сущности, которые нельзя удалять напрямую, обрабатывают переопределением deleteEntityRow() — пример на странице «Своя функция обновления данных».