Почему недействительный пользователь отображается в списке выбора 1С:Документооборот и как это исправить?

Программист 1С v8.3 (Управляемые формы) 1С:Документооборот IT и автоматизация бизнеса
← На главную

В работе с конфигурацией 1С:Документооборот 8 КОРП (редакция 2.1) администраторы и разработчики часто сталкиваются с ситуацией, когда пользователь уже помечен как недействительный, но его имя все равно продолжает «всплывать» при подборе исполнителей, отправке документов на ознакомление или в адресной книге. Это создает путаницу, так как задачи могут быть ошибочно назначены сотруднику, который уже не работает в организации.

Разберем детально, почему так происходит и какими способами можно окончательно убрать «призрака» из списков выбора.

Причина 1: Особенности механизма Адресной книги

В отличие от простых конфигураций, в 1С:Документооборот адресная книга — это не просто список справочника Пользователи. Она строится на данных специального вспомогательного регистра сведений — Сведения о пользователях документооборота. Система оптимизирует запросы, обращаясь к этому регистру, чтобы быстро выводить иерархию подразделений и ролей.

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

  1. Перейдем в раздел Настройка и администрирование.
  2. Найдем регламентное задание Обновление данных адресной книги.
  3. Запустим его вручную. Важно: в крупных базах этот процесс может занять значительное время (от нескольких десятков минут до нескольких часов), поэтому такие операции лучше выполнять в периоды низкой активности пользователей.

Если штатное регламентное задание не помогает, стоит проверить состояние самого регистра через «Функции для технического специалиста». В некоторых случаях помогает полная очистка регистра СведенияОПользователяхДокументооборота с последующим полным пересчетом данных.

Причина 2: История быстрого выбора в платформе

Если пользователь отображается не в общей адресной книге, а в выпадающем списке при начале набора текста (автоподбор), то мы имеем дело с историей выбора. Платформа «1С:Предприятие» запоминает объекты, которые конкретный сотрудник выбирал ранее, чтобы ускорить его работу.

Посмотрим, как очистить эту историю:

Самый простой «пользовательский» способ: выберите этого недействительного пользователя в поле. Если программные фильтры настроены верно, система может выдать предупреждение, что пользователь недействителен, и после этого сама удалит его из списка часто выбираемых объектов.

Если это не помогло, программисту необходимо вмешаться и очистить историю выбора программно. Рассмотрим пример кода, который можно запустить в обработке:


// Очистка истории выбора для конкретного пользователя
ИсторияВыбора.Очистить(Тип("СправочникСсылка.Пользователи"));
// Или для конкретного поля, если известна метаданная

Это принудительно заставит систему формировать список автоподбора «с нуля», учитывая текущие фильтры (включая флаг недействительности).

Причина 3: Параметры выбора в форме документа

Иногда проблема кроется в настройках самой формы, где происходит выбор. Выясним причину, изучив свойства элементов формы в конфигураторе. Зачастую в свойствах поля Кому или Исполнитель не заданы жесткие связи параметров выбора.

Рассмотрим, что нужно проверить:

  1. Откроем форму, в которой проявляется проблема.
  2. Найдем нужный элемент (поле ввода).
  3. Проверим свойство Параметры выбора. Там должно быть указано ограничение по пометке удаления и недействительности.
  4. Также обратим внимание на свойство Стандартные параметры выбора.

Если мы хотим программно ограничить выбор только действующими сотрудниками, в процедуре ПриСозданииНаСервере можно прописать следующее:


ЭлементОтбора = Новый ПараметрВыбора("Отбор.Недействителен", Ложь);
МассивПараметров = Новый Массив;
МассивПараметров.Добавить(ЭлементОтбора);
Элементы.ПользовательИсполнитель.ПараметрыВыбора = Новый ФиксированныйМассив(МассивПараметров);

Причина 4: Роли и рабочие группы

В 1С:ДО 2.1 существует иерархическая система прав. Если пользователь помечен недействительным, но он все еще числится руководителем подразделения в справочнике Структура предприятия или является участником активной рабочей группы документа/шаблона, система может продолжать предлагать его кандидатуру.

Проанализируем ситуацию по шагам:

  1. Зайдем в справочник Структура предприятия.
  2. Убедимся, что недействительный пользователь не указан как руководитель ни в одном из подразделений.
  3. Проверим Рабочие группы в шаблонах процессов. Если он там есть, его нужно заменить на актуального сотрудника.

Метод «звездочки» (Workaround)

Если стандартные средства не помогают (например, из-за особенностей доработок вашей конфигурации), существует проверенный временем административный метод. Переименуйте недействительного пользователя, добавив в начало его имени специальный символ, например, * или Z_.

Почему это работает?

Проверка через Консоль запросов

Чтобы окончательно убедиться, что данные в базе корректны, выполним запрос к таблице пользователей. Это поможет нам выяснить, нет ли расхождений в признаках.


ВЫБРАТЬ
    Пользователи.Ссылка,
    Пользователи.Наименование,
    Пользователи.Недействителен,
    Пользователи.ПометкаУдаления
ИЗ
    Справочник.Пользователи КАК Пользователи
ГДЕ
    Пользователи.Наименование ПОДОБНО "%ФамилияСотрудника%"

Если запрос возвращает Недействителен = Ложь, значит, флаг просто не был установлен. Если же всё Истина, но пользователь виден — проблема на 100% в кэше адресной книги или истории выбора, описанных выше.

Подведем итог: исправление отображения недействительных пользователей требует комплексного подхода — от запуска регламентных заданий до очистки кэша платформы и проверки кадровой структуры предприятия.

← На главную