Битрикс24: «Не удалось найти хранилище пользователя»

Что делать, если у сотрудника в коробочном Битрикс24 нет раздела «Мой диск» или появляется ошибка «Не удалось найти хранилище пользователя»: создаём хранилище одной командой.

Симптом

У сотрудника в коробочном Битрикс24 нет страницы «Мой диск» или при открытии появляется ошибка «Не удалось найти хранилище пользователя». Значит, для него не создано хранилище модуля «Диск» — так бывает после импорта пользователей или сбоя при их создании.

Решение

Откройте Настройки → Инструменты → Командная PHP-строка в административной панели и выполните:

\Bitrix\Main\Loader::includeModule('disk');

$userId = 38;   // ID сотрудника
$storage = \Bitrix\Disk\Driver::getInstance()->addUserStorage($userId);
echo $storage ? 'Хранилище создано, ID ' . $storage->getId() : 'Не удалось создать хранилище';

ID сотрудника видно в адресе его профиля (/company/personal/user/38/).

Если пользователей много

\Bitrix\Main\Loader::includeModule('disk');
$driver = \Bitrix\Disk\Driver::getInstance();
$users = \Bitrix\Main\UserTable::getList(['filter' => ['=ACTIVE' => 'Y'], 'select' => ['ID']]);
while ($user = $users->fetch()) {
    if (!$driver->getStorageByUserId($user['ID'])) {
        $driver->addUserStorage($user['ID']);
        echo 'Создано для ', $user['ID'], PHP_EOL;
    }
}

Скрипт создаёт хранилища только тем активным пользователям, у которых их нет. Перед массовыми операциями сделайте резервную копию.

Все статьи

Расскажите о задаче — подберём платформу и оценим работу

Обсудить проект