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

Проблематика
Давайте разберем основную проблему:
- Руководитель видит на рабочем столе два счетчика: «Мои задачи» (невыполненные личные задачи) и «Задачи подчиненных» (количество необработанных задач сотрудников).
- Однако в раздел «Мои задачи» попадают также и невыполненные задачи конкретного сотрудника, что вызывает путаницу.
Чтобы устранить это непонимание, необходимо:
- Понять, почему в «Мои задачи» отображаются чужие задачи.
- Исключить из списка «Мои задачи» задачи других исполнителей.
Диагностика проблемы
Поиск в интернете не дал результатов, поэтому мы перешли к отладке кода конфигурации. Отправной точкой стала возможность указания фильтров по исполнителю в форме задач.

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

Справка о процедуре
Процедура «ПередатьРуководителямЗадачиНедействительныхПодчиненных» автоматически передает задачи неактивных сотрудников их руководителям. Она выявляет сотрудников без действующих учетных записей и роли без активных исполнителей, затем перераспределяет их незавершенные задачи. Функционал также отслеживает изменения статуса сотрудников и при необходимости возвращает задачи или снимает передачу после их выполнения.
Вызывается с помощью регламентного задания «АктуализацияДанных».
Диагностика проблемы в данных
Чтобы найти первопричину, нужно понять, почему сотрудник был определен как недействительный. За это отвечает функция «ВсеСотрудникиБезДействительныхПользователей».
Логика работы функции:
- Основной критерий: Отсутствие активной связи сотрудника с пользователями в регистре сведений «СотрудникиПользователей».
- Условия соединения:
- Сотрудник не помечен на удаление (
Сотрудники.ПометкаУдаления = ЛОЖЬ). - Пользователь должен быть действующим:
- Не помечен на удаление (
Пользователи.ПометкаУдаления = ЛОЖЬ). - Не является недействительным (
Пользователи.Недействителен = ЛОЖЬ).
- Не помечен на удаление (
- Сотрудник не помечен на удаление (
Через левое соединение находятся сотрудники, у которых либо нет записи в регистре, либо связанный пользователь не соответствует критериям активности. В результате возвращаются сотрудники без валидных учетных записей.
Исправление проблематики
Проанализировав запрос и настройки проблемного сотрудника, мы выяснили, что у него не были до конца настроены права доступа и не была установлена галочка «Основной сотрудник» в карточке.
- Проверьте и настройте карточку сотрудника, убедившись, что он привязан к действующему пользователю и отмечен как основной.
- Запустите фоновое задание «Актуализация данных».
После выполнения этих действий проблема с отображением чужих задач в списке «Мои задачи» была решена.
Заключение
Проблема попадания чужих задач в список «Мои задачи» была вызвана некорректной настройкой карточки сотрудника, из-за которой система считала его «недействительным» и автоматически передавала его задачи другому исполнителю (руководителю). Исправление настроек сотрудника и запуск регламентного задания устраняет причину, а не симптом.
1С: Документооборот государственного учреждения
Больше материала посвящённого работе в 1С: ДГУ читайте в материалах:
→ перейти к чтению ←
