В работе с конфигурацией 1С:Документооборот 8 КОРП (редакция 2.1) администраторы и разработчики часто сталкиваются с ситуацией, когда пользователь уже помечен как недействительный, но его имя все равно продолжает «всплывать» при подборе исполнителей, отправке документов на ознакомление или в адресной книге. Это создает путаницу, так как задачи могут быть ошибочно назначены сотруднику, который уже не работает в организации.
Разберем детально, почему так происходит и какими способами можно окончательно убрать «призрака» из списков выбора.
В отличие от простых конфигураций, в 1С:Документооборот адресная книга — это не просто список справочника Пользователи. Она строится на данных специального вспомогательного регистра сведений — Сведения о пользователях документооборота. Система оптимизирует запросы, обращаясь к этому регистру, чтобы быстро выводить иерархию подразделений и ролей.
Проанализируем ситуацию: если вы просто установили флаг Недействителен в карточке пользователя, запись в регистре сведений может не обновиться мгновенно. Рассмотрим шаги для принудительного обновления:
Если штатное регламентное задание не помогает, стоит проверить состояние самого регистра через «Функции для технического специалиста». В некоторых случаях помогает полная очистка регистра СведенияОПользователяхДокументооборота с последующим полным пересчетом данных.
Если пользователь отображается не в общей адресной книге, а в выпадающем списке при начале набора текста (автоподбор), то мы имеем дело с историей выбора. Платформа «1С:Предприятие» запоминает объекты, которые конкретный сотрудник выбирал ранее, чтобы ускорить его работу.
Посмотрим, как очистить эту историю:
Самый простой «пользовательский» способ: выберите этого недействительного пользователя в поле. Если программные фильтры настроены верно, система может выдать предупреждение, что пользователь недействителен, и после этого сама удалит его из списка часто выбираемых объектов.
Если это не помогло, программисту необходимо вмешаться и очистить историю выбора программно. Рассмотрим пример кода, который можно запустить в обработке:
// Очистка истории выбора для конкретного пользователя
ИсторияВыбора.Очистить(Тип("СправочникСсылка.Пользователи"));
// Или для конкретного поля, если известна метаданная
Это принудительно заставит систему формировать список автоподбора «с нуля», учитывая текущие фильтры (включая флаг недействительности).
Иногда проблема кроется в настройках самой формы, где происходит выбор. Выясним причину, изучив свойства элементов формы в конфигураторе. Зачастую в свойствах поля Кому или Исполнитель не заданы жесткие связи параметров выбора.
Рассмотрим, что нужно проверить:
Если мы хотим программно ограничить выбор только действующими сотрудниками, в процедуре ПриСозданииНаСервере можно прописать следующее:
ЭлементОтбора = Новый ПараметрВыбора("Отбор.Недействителен", Ложь);
МассивПараметров = Новый Массив;
МассивПараметров.Добавить(ЭлементОтбора);
Элементы.ПользовательИсполнитель.ПараметрыВыбора = Новый ФиксированныйМассив(МассивПараметров);
В 1С:ДО 2.1 существует иерархическая система прав. Если пользователь помечен недействительным, но он все еще числится руководителем подразделения в справочнике Структура предприятия или является участником активной рабочей группы документа/шаблона, система может продолжать предлагать его кандидатуру.
Проанализируем ситуацию по шагам:
Если стандартные средства не помогают (например, из-за особенностей доработок вашей конфигурации), существует проверенный временем административный метод. Переименуйте недействительного пользователя, добавив в начало его имени специальный символ, например, * или Z_.
Почему это работает?
Чтобы окончательно убедиться, что данные в базе корректны, выполним запрос к таблице пользователей. Это поможет нам выяснить, нет ли расхождений в признаках.
ВЫБРАТЬ
Пользователи.Ссылка,
Пользователи.Наименование,
Пользователи.Недействителен,
Пользователи.ПометкаУдаления
ИЗ
Справочник.Пользователи КАК Пользователи
ГДЕ
Пользователи.Наименование ПОДОБНО "%ФамилияСотрудника%"
Если запрос возвращает Недействителен = Ложь, значит, флаг просто не был установлен. Если же всё Истина, но пользователь виден — проблема на 100% в кэше адресной книги или истории выбора, описанных выше.
Подведем итог: исправление отображения недействительных пользователей требует комплексного подхода — от запуска регламентных заданий до очистки кэша платформы и проверки кадровой структуры предприятия.