1С ДГУ: Когда «Мои задачи» — не твои: диагностика и наведение порядка в данных

  • Статья предназначена в первую очередь для технических специалистов, программистов и администраторов 1С. Решение основано на анализе кода и метаданных типовой конфигурации.

В данной статье мы разберем проблему, когда сотруднику в системе 1С:ДГУ (Документооборот государственного учреждения) в списке «Мои задачи» отображаются задачи другого исполнителя. Мы рассмотрим, где найти причину этой проблемы в конфигурации и как её исправить.

От симптомов к причине

Проблематика

Давайте разберем основную проблему:

  • Руководитель видит на рабочем столе два счетчика: «Мои задачи» (невыполненные личные задачи) и «Задачи подчиненных» (количество необработанных задач сотрудников).
  • Однако в раздел «Мои задачи» попадают также и невыполненные задачи конкретного сотрудника, что вызывает путаницу.

Чтобы устранить это непонимание, необходимо:

  1. Понять, почему в «Мои задачи» отображаются чужие задачи.
  2. Исключить из списка «Мои задачи» задачи других исполнителей.

Диагностика проблемы

Поиск в интернете не дал результатов, поэтому мы перешли к отладке кода конфигурации. Отправной точкой стала возможность указания фильтров по исполнителю в форме задач.

Процесс диагностики проблемы

Выполненные действия:

  1. Откройте форму «Задачи мне» и нажмите на гиперссылку «Фильтры».

  2. В открывшейся форме обратите внимание на строчку с полем «Исполнитель». В выпадающем списке может отображаться не только текущий пользователь.

Эта зацепка позволила локализовать проблему в механизме отбора исполнителей. Дальнейший анализ в конфигураторе показал:

  • Форма «Быстрый поиск» только отображает список исполнителей, но не формирует его.
  • Инициализация списка происходит в форме «Задачи» документа «Задача», в функции «ПараметрыОтбора».
  • Код показал, что проблема в том, что пользователю были «переданы исполнители». Технически это возвращается функцией:
    РегистрыСведений.ИсполнителиВместоНедействительных.ПереданныеИсполнители.

Вывод: Проблема заключается в наличии записей в регистре сведений «Исполнители вместо недействительных» (ИсполнителиВместоНедействительных) для текущего пользователя.

Исправление проблемы

Первое, что приходит в голову — очистить регистр от лишних записей через «Все функции». Однако это временное и не совсем корректное решение, так как проблема может вернуться.

Правильный подход — разобраться с типовой функциональностью «Передача руководителям задачи недействительных подчиненных», которая выполняется регламентным заданием «Актуализация данных».

Условие работы: Функциональность активна, если в настройках программы установлена константа «Передавать руководителям задачи недействительных подчиненных».

Исправление проблемы

Справка о процедуре

Процедура «ПередатьРуководителямЗадачиНедействительныхПодчиненных» автоматически передает задачи неактивных сотрудников их руководителям. Она выявляет сотрудников без действующих учетных записей и роли без активных исполнителей, затем перераспределяет их незавершенные задачи. Функционал также отслеживает изменения статуса сотрудников и при необходимости возвращает задачи или снимает передачу после их выполнения.

Вызывается с помощью регламентного задания «АктуализацияДанных».

Диагностика проблемы в данных

Чтобы найти первопричину, нужно понять, почему сотрудник был определен как недействительный. За это отвечает функция «ВсеСотрудникиБезДействительныхПользователей».

Логика работы функции:

  • Основной критерий: Отсутствие активной связи сотрудника с пользователями в регистре сведений «СотрудникиПользователей».
  • Условия соединения:
    • Сотрудник не помечен на удаление (Сотрудники.ПометкаУдаления = ЛОЖЬ).
    • Пользователь должен быть действующим:
      • Не помечен на удаление (Пользователи.ПометкаУдаления = ЛОЖЬ).
      • Не является недействительным (Пользователи.Недействителен = ЛОЖЬ).

Через левое соединение находятся сотрудники, у которых либо нет записи в регистре, либо связанный пользователь не соответствует критериям активности. В результате возвращаются сотрудники без валидных учетных записей.

Исправление проблематики

Проанализировав запрос и настройки проблемного сотрудника, мы выяснили, что у него не были до конца настроены права доступа и не была установлена галочка «Основной сотрудник» в карточке.

  • Проверьте и настройте карточку сотрудника, убедившись, что он привязан к действующему пользователю и отмечен как основной.
  • Запустите фоновое задание «Актуализация данных».

После выполнения этих действий проблема с отображением чужих задач в списке «Мои задачи» была решена.

Заключение

Проблема попадания чужих задач в список «Мои задачи» была вызвана некорректной настройкой карточки сотрудника, из-за которой система считала его «недействительным» и автоматически передавала его задачи другому исполнителю (руководителю). Исправление настроек сотрудника и запуск регламентного задания устраняет причину, а не симптом.

  • 1С: Документооборот государственного учреждения
    Больше материала посвящённого работе в 1С: ДГУ читайте в материалах:
    → перейти к чтению ←