GUID для пользователя Битрикс
Штатно GUID для пользователя не предусмотрен. Поэтому он будет искусственно добавлен в модель данных.
ALTER TABLE `b_user` ADD `EXTERNAL_GUID` CHAR(36) ASCII BINARY;
Так как это поле должно наполняться автоматически, наилучший способ - создать триггер для его заполнения.
DELIMITER $$ CREATE TRIGGER `b_user_before_insert` BEFORE INSERT ON `b_user` FOR EACH ROW BEGIN SET NEW.EXTERNAL_GUID = UUID(); END; $$ DELIMITER ;
Теперь обновим существующие записи:
UPDATE `b_user` SET `EXTERNAL_GUID` = UUID() WHERE EXTERNAL_GUID IS NULL;
При выборке пользователей через CUser::GetList()
этот GUID становится доступен без дополнительных манипуляций:
function getUsers() { $by = 'timestamp_x'; $order = 'desc'; $arFilter = array('ACTIVE' => 'Y', '!ID' => 1); // все пользователи кроме первого (админа) $arParams = array(); $itemsList = CUser::GetList($by, $order, $arFilter, $arParams); return $itemsList; }
Одна запись:
array(63) { ["ID"]=> string(1) "5" ["LOGIN"]=> string(7) "partner" ... ["EXTERNAL_GUID"]=> string(36) "9d65aadc-6d8c-11e5-8683-00155d003d06" ["IS_ONLINE"]=> string(1) "N"