При ведении базы создавались пользователи для тестирования того или иного функционала или настройки прав. Скрин 1.
Естественно, эти пользователи были успешно удалены из базы после выполнения задачи, но они остались "висеть" в системе взаимодействия. К сожалению, на скрине ситуация, когда пользователи уже заблокированы.
Казалось бы, малая проблема - необходимо просто не обращать внимание, если бы не одно "но". В системе взаимодействия появился пользователь, по имени полностью дублирующий действующего, и вот это вызвало большую трудность.
Пример. Существует пользователь ТЕСТ. Проверили его функционал, удалили. Далее создали снова тестового пользователя с именем ТЕСТ и при попытке проверить его функционал в строке выбора пользователей для обсуждения увидели оба пользователя ТЕСТ. Естественно, это вызывает недоумение.
Тех. поддержка 1С подтолкнула на мысль, что, изучив справку о программе, можно получить функционал, позволяющий решить данную проблему.
Справку копировать нет смысла. Ctrl+F1 в помощь.
Посему была сделана обработка, основной алгоритм которой приведен ниже.
Очень важно: Заранее исключить из любой выборки пользователя имеющего полные права.
Если же такая ситуация приключилась, то создаем снова пользователя с полными правами, разблокируем заблокированного пользователя с полными правами и удаляем (:)) пользователя с полными правами. Если будут варианты сделать все иначе, буду рад любым комментариям
УстановитьПривилегированныйРежим(Истина);
МассивСВ = СистемаВзаимодействия.ПолучитьПользователей();
Для каждого ПользователиСВ из МассивСВ Цикл
Если ЗначениеЗаполнено(ИмяПользователяДляУдаления) Тогда
Если Найти(НРЕГ(ПользователиСВ.Имя), НРЕГ(ИмяПользователяДляУдаления)) > 0 Тогда
Если НЕ Строка(ПользователиСВ.ИдентификаторПользователяИнформационнойБазы) = УИДПользователяКоторогоНеНадоУдалять Тогда
Попытка
ПользователиСВ.Заблокирован = Истина;
ПользователиСВ.Записать();
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;
Сообщить("Пользователь - " + ПользователиСВ.Имя + " был заблокирован!");
КонецЕсли;
КонецЕсли;
Конецесли;
КонецЦикла;
УстановитьПривилегированныйРежим(Ложь);
УИДПользователяКоторогоНеНадоУдалять - это ИдентификаторПользователяИБ, стандартный реквизит элемента справочника Пользователи.
ИмяПользователяДляУдаления - строковая переменная, содержащая полное имя пользователя, которого необходимо заблокировать в Системе взаимодействия!
Условия отбора пользователя для блокировки могут быть индивидуальными. Можно заблокировать и действующего пользователя - это будет выражено в том, что пользователь пропадет из списка выбора.
Но важно понимать, лучше не удалять пользователя, а сначала заблокировать с помощью стандартного функционала
(Все функции - стандартные - управление системой взаимодействия - пользователи). Надеюсь, статья будет полезна.
Предупреждая вопросы о не выложенной обработке: каждый случай индивидуален. Если у кого-то возникнет такая проблема, пишите, будем эту проблему решать.
UPD
На "новой" платформе 8.3.18.1208 на конфигурации Бухгалтерия предприятия 3.0.88.28 в справочнике Пользователи появилась кнопка "Заблокировать недействительных в системе взаимодействия". Надеюсь статья будет полезна и далее!