При редактировании бизнес-процесса иногда требуется выбрать пользователя, появляется окно, но как выяснилось, при количестве зарегистрированных пользователей более 100 тысяч, это окно загружается около 1 минуты, что крайне неудобно.
Проблема в файле /bitrix/modules/bizproc/admin/bizproc_selector.php, строка 80.
Если поменять код:
foreach($arAllowableUserGroups as $gId=>$gName)
{
$a = CBPHelper::extractUsersFromExtendedGroup($gId);
if ($a === false)
$a = $documentService->GetUsersFromUserGroup($gId, $documentType);
foreach ($a as $v)
{
if (!in_array($v, $arUsers))
$arUsers[] = $v;
}
}
|
на
foreach($arAllowableUserGroups as $gId=>$gName)
{
$a = CBPHelper::extractUsersFromExtendedGroup($gId);
if ($a === false)
$a = $documentService->GetUsersFromUserGroup($gId, $documentType);
$arUsers = array_merge($arUsers, $a);
}
$arUsers = array_values(array_unique($arUsers));
|
то загрузка окна со списком пользователей ускоряется ~ в 100 раз. И даже для 120 тысяч пользователей время загрузки составляет менее 1 секунды.
Исправим в ближайших обновлениях!