Знакома ли вам ситуация, когда пользователи путаются в десятках своих заданий, разложенных по папкам или же нагроможденных во Входящих, и стопке отправленных задач? «Позвольте, существует же “Автоочистка”!», - скажут некоторые из нас, и будут правы. Однако, не все пользователи желают и готовы выполнять череду команд "Сервис - Параметры - Автоочистка", а потом еще и выбирать папки и думать над параметрами удаления. И даже те из них, кто готов пойти на такие решительные меры, должны иметь в виду, что для выполнения стандартной очистки необходимо закрытие и повторное открытие проводника. И еще то, что папки, полученные ими путем замещения кого-либо из коллег, очищаться таким образом не будут. Дополнительным "бонусом" в этой ситуации является наличие у бедного пользователя старой версии клиента DIRECTUM, который обновляет полный список задач в Исходящих и заданий во Входящих при выполнении/отправке в работу нового объекта.
Варианты настройки правил, параметров, а также рекомендации по поддержанию индивидуального порядка в рабочей области приведены здесь и здесь. Но оставался открытым вопрос о возможности удаления ссылок на ненужные объекты массово и с минимальным участием пользователя.
Поэтому в качестве альтернативы кнопке "Сделать всем красиво" было разработано решение, которое позволяет централизованно настраивать автоочистку папок для пользователей, не отвлекая их при этом от важной работы по пустякам. В то же время, пользователь всегда может лично обратиться к администратору (Иванову Ивану Ивановичу) с просьбой изменить для него срок очистки какой-либо папки, или оставить все ссылки в личной папке "Очень важно, сохраню на память".
Удаление ссылок происходит в результате работы сценария, использующего служебные справочники.
Справочник "Критерии автоочистки задач"
Справочник содержит следующие реквизиты: «Выполнено дней, от», «Важность задачи» («Обычная», «Низкая», «Высокая»), а также табличные части «От пользователя» и «По типовым маршрутам».
Например, для того, чтобы определять ссылки на все задачи с важностью «Низкая», выполненные вчера или ранее, требуется создание следующего критерия:
Справочник "Критерии автоочистки заданий"
Справочник содержит следующие реквизиты: «Выполнено дней, от», «Тип задания» («Уведомление», «Задание», «Задание-контроль»), а также табличные части «От пользователя» и «По типовым маршрутам».
Сохраним следующий критерий для определения ссылок на уведомления, отправленные президентом компании:
А теперь предположим, что есть группа пользователей, которая желает:
Создадим для нее правило в справочнике "Критерии автооочистки".
Справочник содержит три вкладки:
Укажем группу и параметры папок:
2. «Задачи» - определяет, какие критерии нужно отрабатывать при удалении ссылок на задачи: табличные части «Очищать» и «Не очищать». Добавим "Не важные" задачи:
3. «Задания» - определяет, какие критерии нужно отрабатывать при удалении ссылок на задания: табличные части «Очищать» и «Не очищать». Укажем критерий "ТМ Канцелярия" для удаления и критерий "От президента" в качестве исключения:
Создать правило для конкретного пользователя, выдвигающего исключительные требования, тоже не сложно. Для этого при добавлении записи нужно выбрать «Пользователь», сделав, этим самым, доступной табличную часть «Пользовательские папки» (для выбора доступны только те папки, автором которых является указанный на карточке Пользователь):
Созданные правила с состоянием "Действующая" обрабатываются
сценарием "Автоматическая очистка папок" по расписанию, заданному администратором системы. На карточке каждого критерия есть скрытый строковый реквизит, который заполняется ограничивающим sql-выборку условием при сохранении карточки. Поэтому
сценарий при выполнении считывает эти строковые ограничения из критериев, указанные в таблицах «Очищать» и «Не очищать», и объединяет их условием
OR (а не формирует запрос «с нуля» для каждого правила). Сами условия «Очищать» и «Не очищать» объединяются условием
AND.
В итоге формируется запрос, возвращающий ИД объектов, ссылки на которые нужно удалить. Удаление ссылок происходит через объектную модель.
Несколько замечаний:
Марина, это отличный материал и функционал!
Алексей, спасибо! Реализация - заслуга Дениса Закиркова.
Эхх, хотелось бы еще подобную штуку для создания подпапок)
Юлия, а для чего такой функционал? Для настройки сортировки заданий в "принудительные" папки :)?
да) например, всем специалистам финансовой службы нужна папка во входящих "счета".
я читала, что папки- это ЛИЧНОЕ для каждого сотрудника и что они сами должны их сортировать, как им вздумается.. по этому поводу инструкцию пользователям написала, как создавать папки и как сортировать задания самостоятельно..но, им "заниматься этим некогда", поэтому приходится к каждому приходить и создавать правила.
у нас директум только внедрили, некоторым сотрудникам правила создала. но сотрудники из коммерческой службы узнали, что у финансистов задания рассортированы и теперь клянчат папочку "договоры"...а их 30 человек. а служб у нас 14. и все очень заняты и не хотят читать инструкции)
так что, функционал создания папок сортировки заданий, мне очень бы помог..не смотря на все отрицательные рекомендации)
Попросите изменить отношение к вашей службе.
Добрый день! Возникла потребность в данной доработке, на тестовой базе для конкретного пользователя ярлыки удалились корректно. Перенесли на рабочую, в итоге у кого как удалилось, у кого то очистились, но у большинства очистились выборчно. Перепробовали разные варианты добавления правил: только по задачам старше 30 дней для группы так и для пользователя; только по заданиям; только по заданиям по ТМ; по заданиям по свободным маршрутам. В итоге на конкретном пользователе с заданиями 3х летней давности очистку запускали в 3 этапа(старше 720 дней, старше 300, старше 30),но опять же условия "старости" заданий не выполняется корректно, запускали сегодня, а выполненные задания остались начиная с 5го декабря прошлого года. Правила создавали для заданий с контролем и без, результат тот же. Может быть причина в версии Директум (4.9.1), на которую скрипт не рассчитан. Кто запускал на этой версии поделитесь опытом.
Как выяснилось проблема в блоке:
ExceptionsOff()
if TypeObject == 'Task'
ContenstTaskList = Tasks.GetContents(ObjectIDRec)
else
ContenstTaskList = Jobs.GetContents(ObjectIDRec)
endif
Folders.CutFromFolder(FolderInfo; ContenstTaskList)
ExceptionsOn()
Если включить ошибки, то при большом количестве записей ID происходит исключение, поэтому у кого то чистит,у кого то нет. Чем заменить эту функцию, пока непонятно. Разве что как временное решение удалять порционно..
Авторизуйтесь, чтобы написать комментарий