Итак, функции готовы, скрипт тоже. На его основе вы сможете сделать то, что вам нужно.
Скрипт вешается на событие 
OnUserLogin (не забудьте галку "Включить скрипт"):
netbiosnamestocompanydepartments.png
Исходный текст скрипта:
Код: Выделить всёfunction OnClientLogin(iCID, iLoginUIN, iLoginState: integer; sLoginIP, sLoginMAC,
                       sLoginHardwareID, sLoginCompName, sLoginVersion: string): boolean;
var
  sNewCompName, sOldCompName: string;
  iDeptID: integer;
begin
  sNewCompName := sLoginCompName;  
  sOldCompName := mGetUserAttribute(iLoginUIN, 'COMPUTER_NET_NAME');
  
    if sNewCompName <> sOldCompName then begin
      if pos('TOSHIBA', sNewCompName) > 0 then iDeptID := mGetDepartmentIDByTextPath('Developers\Notebooks') else
      if pos('BUHGALT', sNewCompName) > 0 then iDeptID := mGetDepartmentIDByTextPath('Finance') else
      if pos('MARKET', sNewCompName) > 0 then iDeptID := mGetDepartmentIDByTextPath('External\Freelance\Marketing');
      
      if iDeptID <> -1 then mUpdateUserDepartment(iLoginUIN, iDeptID); 
    end;
  
  result := true;
end;
begin
end.
 Логика такая:
-  после успешного логина юзера смотрим его NETBIOS имя и сравниваем с тем, что было в прошлый раз (функция mGetUserAttribute);
 -  если имена не совпадают, это означает, что пользователь пересел на другой компьютер, а значит, надо сменить ему департамент;
 -  смотрим, чему равно название компьютера и подбираем по нему то подразделение, которому он должен соответствовать, получаем ID департамента;
 -  назначаем пользователю этот новый департамент.
 
Обычно, после смены департамента, новый общий список контактов обновляется у всех пользователей в течение 2-3 минут, автоматически, а на сервере в WEB-админке — мгновенно.
Вложенные подразделения указываются через слеш "\", без лишних символов и пробелов.
Скрипт будет работать в версии 5.10 и выше.
					
У вас нет необходимых прав для просмотра вложений в этом сообщении.
					
					Team lead
Чат со мной