Облегчаем работу администратора

7 6

Простой сценарий для администратора.

Для облегчения работы администратора был написан простенький скрипт (сценарий тоесть )), создающий в избранном администратора дерево папок пользователей. Дерево папок нужно для быстрого доступа к личным папкам пользователей. Очень удобно сразу открывать, например, папку "исходящие" пользователя не прибегая к поиску.

Стоит отметить, что в моем случае пользователей чуть более 100 чел. Значительных притормаживаний при навигации и открытии не замечено. Естесственно, при значительно большем количестве пользователей, данный способ доступа к папкам пользователей будет скорее всего неприменим.

P.S. написано для Директум версии 4.2, думаю несложно будет переделать под более новую )
 

 

Создание дерева папок.txt (2,77 Кб)

7
Авторизуйтесь, чтобы оценить материал.
2
Александр Логов
P.S. написано для Директум версии 4.2, думаю несложно будет переделать под более новую )

В написании скриптов пока не силён. Можете помочь адаптировать под версию 4.6.1?
Артем Пыхалов

здесь как я  понял на  первый взгляд  для  4.6.1   надо  поиграться с  поиском  папок 

FolderType

Тип папки:

«I» – папки «Входящие» всех пользователей;

«O» – папки «Исходящие» всех пользователей;

«F» – папки «Избранное» всех пользователей;

«C» – «Общая папка»;

«M» - папка «Компоненты»;

«Р» – папки, созданные пользователями;

«Q» – быстрый запуск;

«S»- ярлыки;

«Е» – поиски.

Николай Перфильев

Отличная идея! Спасибо забрал.

Максим Денисенко

Отличная идея на этапе внедрения.

Автору лайк :)

 

 

Реша Решетников

Кто пробовал переписать этот сценарий под версию 5+ ? Если да поделитесь пожалуйста наработками

Евгения Кутузова

Работает на 5.3: 

FldName = '_USERS'                                                                                                            
RF = Folders.RootFolders
RF.Reset
RF.Next
RF.Next
RFI = RF.Value
RFS = Searches.CreateNew(ckFolder)
SC1 = RFS.SearchCriteria.Add('Name')
SC1.Add(FldName;vtEqual)
SC2 = RFS.SearchCriteria.Add('Author')
SC2.Add(EDocuments.CurrentUser.Code)
RFL = RFS.Execute
If RFL.Count = 0
  Fld = Folders.CreateNew(ckAny)
  Fld.Requisites('Name').Value = FldName
  Fld.Save
  Folders.PasteToFolder(RFI;Fld.Info)
Else // RFL.Count = 0
  Fld = RFL.Value.Folder
EndIf // RFL.Count = 0
FldUsers = Fld
Users = CreateReference(SYSREF_USERS_REFERENCE)
Users.Open
Ind = CreateProgress('Подождите, пожалуйста';Users.RecordCount;1;'Да')
Ind.Show
ForEach User in Users
  If User.Requisites('Состояние').AsString == 'Действующая'
    UName = user.Requisites('Наименование').AsString
    ULogin = user.Requisites('Дополнение').AsString
    RFS = Searches.CreateNew(ckFolder)
    SC1 = RFS.SearchCriteria.Add('Name')
    SC1.Add(Uname & ' (' & ULogin & ')';vtEqual)
    SC2 = RFS.SearchCriteria.Add('Author')
    SC2.Add(EDocuments.CurrentUser.Code)
    RFL = RFS.Execute
    If RFL.Count = 0
      Fld = Folders.CreateNew(ckAny)
      Fld.Requisites('Name').Value = Uname & ' (' & ULogin & ')'
      Fld.Save
      Folders.PasteToFolder(FldUsers.Info;Fld.Info)
    Else // RFL.Count = 0
      Fld = RFL.Value.Folder
    EndIf // RFL.Count = 0
    UFolder = Fld
    RFS = Searches.CreateNew(ckFolder)
    SC1 = RFS.SearchCriteria.Add('Name')
    SC1.Add('Входящие';vtEqual)
    SC2 = RFS.SearchCriteria.Add('Author')
    SC2.Add(User.SYSREQ_CODE)
    RFL = RFS.Execute
    If RFL.Count > 0
      Folders.PasteToFolder(UFolder.Info;RFL.Value.Folder.Info)
    EndIf //RFL.Count > 0
    RFS = Searches.CreateNew(ckFolder)
    SC1 = RFS.SearchCriteria.Add('Name')
    SC1.Add('Исходящие';vtEqual)
    SC2 = RFS.SearchCriteria.Add('Author')
    SC2.Add(User.SYSREQ_CODE)
    RFL = RFS.Execute
    If RFL.Count > 0
      Folders.PasteToFolder(UFolder.Info;RFL.Value.Folder.Info)
    EndIf //RFL.Count > 0
    RFS = Searches.CreateNew(ckFolder)
    SC1 = RFS.SearchCriteria.Add('Name')
    SC1.Add('Избранное';vtEqual)
    SC2 = RFS.SearchCriteria.Add('Author')
    SC2.Add(User.SYSREQ_CODE)
    RFL = RFS.Execute
    If RFL.Count > 0
      Folders.PasteToFolder(UFolder.Info;RFL.Value.Folder.Info)
    EndIf //RFL.Count > 0
  EndIf //User.Requisites('Состояние').AsString == 'Действующая'
  Ind.Next
EndForEach //User in Users
Ind.Hide

 

Авторизуйтесь, чтобы написать комментарий