Админ забрал все права на сервере, и вообще на сервер не пускает. Если выгнать всех пользователей можно, создав в расширении объект, то не давать им обратно заходить во время обновления не удавалось. Есть права в базе 1С на открытие внешних обработок и полные права в базе.
Была написана простая обработка, устанавливающая реквизит справочника пользователи "Недействителен" в значение Истина. Обработка содержит только 2 кнопки: заблокировать пользователям вход и разблокировать. Соответственно, до начала работ нажимаете кнопку "Заблокировать", а по окончании "Разблокировать". Пользователя, под которым запущена обработка, механизм не блокирует. Также можно указать список пользователей, которым будет разрешен вход в базу.
Кроме того, не будет заблокирован последний пользователь, с полными правами и аутентификацией по паролю, о чем будет выведено сообщение. Должно заработать на любой конфигурации с управляемыми формами, где есть справочник "Пользователи" и его реквизит "Недействителен". Полный код формы обработки ниже:
&НаКлиенте
Процедура ЗаблокироватьПользователей(Команда)
ЗаблокироватьПользователейНаСервере();
КонецПроцедуры
&НаСервере
Процедура ЗаблокироватьПользователейНаСервере()
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Пользователи.Ссылка КАК Ссылка
|ИЗ
| Справочник.Пользователи КАК Пользователи
|ГДЕ
| Пользователи.Ссылка <> &ТекущийПользователь
| И НЕ Пользователи.Недействителен
| И НЕ Пользователи.Ссылка В (&НеблокирующиесяПользователи)";
Запрос.УстановитьПараметр("ТекущийПользователь",ПараметрыСеанса.ТекущийПользователь);
Запрос.УстановитьПараметр("НеблокирующиесяПользователи",НеблокирующиесяПользователи.Выгрузить());
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
СпрОбъект = Выборка.Ссылка.ПолучитьОбъект();
СпрОбъект.Недействителен = Истина;
СпрОбъект.Комментарий = СпрОбъект.Комментарий + "d28;НедействителенНаВремяПроведенияРаботВБазе";
Попытка
СпрОбъект.Записать();
Исключение
Инфо = ИнформацияОбОшибке();
Сообщить("Описание='" + Инфо.Причина.Причина.Описание + "'");
КонецПопытки;
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура РазблокироватьПользователей(Команда)
РазблокироватьПользователейНаСервере();
КонецПроцедуры
&НаСервереБезКонтекста
Процедура РазблокироватьПользователейНаСервере()
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Пользователи.Ссылка КАК Ссылка
|ИЗ
| Справочник.Пользователи КАК Пользователи
|ГДЕ
| Пользователи.Комментарий Подобно ""%d28;НедействителенНаВремяПроведенияРаботВБазе%""
| И Пользователи.Недействителен";
Запрос.УстановитьПараметр("ТекущийПользователь",ПараметрыСеанса.ТекущийПользователь);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
СпрОбъект = Выборка.Ссылка.ПолучитьОбъект();
СпрОбъект.Недействителен = Ложь;
СпрОбъект.Комментарий = СтрЗаменить(СпрОбъект.Комментарий, "d28;НедействителенНаВремяПроведенияРаботВБазе","");
СпрОбъект.Записать();
КонецЦикла;
КонецПроцедуры
Проверено на Бухгалтерии 3.0, 3.0.170.20, 3.0.171.16. Платформа: 8.3.25.1445.