Битрикс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;
}
}
Скрипт создаёт хранилища только тем активным пользователям, у которых их нет. Перед массовыми операциями сделайте резервную копию.