Сейчас метод SendUserInfo ничего не возвращает, и даже не прописывает в свойствах объекта, хотя вызывается не статически.
Метод понадобился для отправки пользователю предложения о замене пароля (после автоматического переноса пользователя с другого сайта). Иного способа оповещения не нашёл, т.к. для смены пароля требуется строка CHECKWORD - и этом совсем не та строка, которая выдаётся в информации о пользователе. Данное поле создаётся только в самом методе, поэтому обойти его никак нельзя.
Так вот при массовой рассылке весьма хотелось бы увидеть, что событие благополучно добавилось к отправке, если отправляется не сразу, а через CEvent::Send (т.е. 4-й параметр у метода стоит false).
Детальное описание проблемы - http://dev.1c-bitrix.ru/community/forums/forum7/topic49035/ Кратко: При фильтрации по группе, в CUser::GetList сначала делается подзапрос, выбирающий (почти) все записи из таблицы `b_user_group`. В случае, когда пользователей много, запрос начинает очень сильно тормозить. Если добавить несложную проверку на ID пользователя (при его/их указании), то запрос можно сильно оптимизировать.
Соответственно, предлагаю эту оптимизацию провести.
В ТП мне ответили, что это редкий случай и на все такие случаи оптимизаций не напасешься, но эти изменения затронут именно эту конкретную ситуацию - я не вижу у них побочных эффектов, соответственно и причин их не внести не вижу.
Сейчас просто нельзя обновить, например, дату активности группы конкретного пользователя. Нужно получать все группы, менять нужную, обновлять все сразу.
А хочется, чтобы можно было обновить конкретную привязку пользователь<>группа (пока что можно менять только дату, получается).