Все получилось, добавил запись в SysUserInfo, а также заполнил поле Sid. Без этого действительно никак. Полностью джоб выглядит следующим образом:
X++:
public static void AutoAddUsers(Args _args)
{
#Admin
void addUserInfo(UserId _userId, NetworkAlias _alias, NetworkDomain _domain, Name _name)
{
UserGroupList ugList;
UserInfo uInfo, adminRecord;
SysUserInfo suInfo;
xAxaptaUserManager mgr;
xAxaptaUserDetails det;
;
select firstonly adminRecord
where adminRecord.Id == #AdminUser;
ttsbegin;
mgr = new xAxaptaUserManager();
det = mgr.getDomainUser(_domain, _alias);
uInfo.clear();
uInfo.initValue();
uInfo.Id = _userId;
uInfo.Sid = det.getUserSid(0);
uInfo.NetworkAlias = _alias;
uInfo.NetworkDomain = _domain;
uInfo.Company = curext();
uInfo.Enable = NoYes::Yes;
uInfo.Name = _name;
uInfo.Language = adminRecord.Language;
uInfo.HelpLanguage = adminRecord.Helplanguage;
if (uInfo.validateWrite())
uInfo.write();
// следующие 2 строчки возможно лишние, не успел проверить)))
infolog.getUserSetup().setDefaults(uInfo);
infolog.getUserSetup().setUserSetup(uInfo);
suInfo.initValue(_userId);
suInfo.Id = _userId;
suInfo.Email = det.getUserMail(0);
if (suInfo.validateWrite())
{
suInfo.write();
}
ugList.clear();
ugList.initValue();
ugList.UserId = _userId;
ugList.GroupId = #AdminUserGroup;
if (ugList.validateWrite())
ugList.write();
ttscommit;
}
;
addUserInfo("denis", "chernyakovd", "mydomain.com", "Chernyakov, Denis");
info('Done');
}