powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / [игнор отключен] [закрыт для гостей] / выгон юзеров из 8.1 / платф . УПП
2 сообщений из 2, страница 1 из 1
выгон юзеров из 8.1 / платф . УПП
    #35033727
loon5
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приветствую всех ! кто может попьюле объяснить Как надежно сбрасывать юзеров для нужных дел в 1С 8.х ... Подскажите , пжлст , хорошие идеи , лучше на уровне внешней обработки , кода ...
...
Рейтинг: 0 / 0
выгон юзеров из 8.1 / платф . УПП
    #35033750
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ты что-то темнишь, в УПП уже все есть:
Сервис-Блокировка установки соединений с информационной базой
F1:
С помощью обработки можно запретить установку соединения пользователей с информационной базой и завершить работу всех активных пользователей (включая пользователя, инициировавшего блокировку).

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

Соединения = ПолучитьСоединенияИнформационнойБазы();

Если Соединения.Количество() = 1 Тогда
// Отключены все пользователи, кроме текущего сеанса
// В последнюю очередь завершается сеанс, запущенный с параметром "ЗавершитьРаботуПользователей".
// Такой порядок отключений необходим для обновления конфигурации с помощью пакетного файла

ЗавершитьРаботуСистемы(Ложь);

Возврат;
КонецЕсли;

// Получим текущее значение параметров блокировки
ТекущийРежим = ПолучитьБлокировкуУстановкиСоединений();
БлокировкаУстановлена = ТекущийРежим.Установлена;
ВремяНачалаБлокировки = ТекущийРежим.Начало;

ИнтервалОтключения = - 5 * 60;

ТекущийМомент = ТекущаяДата();

Если БлокировкаУстановлена и
(НЕ ЗначениеЗаполнено(ВремяНачалаБлокировки)
ИЛИ ВремяНачалаБлокировки - ТекущийМомент <= ИнтервалОтключения) Тогда

// через 5 минут после начала блокировки сеансы всех пользователей должны быть отключены
// если этого не произошло пробуем принудительно прервать соединение в клиент-серверном режиме работы.
ОтключитьОбработчикОжидания("ЗавершитьРаботуПользователей");

ПодстрокиСтрокиСоединения = ОбщегоНазначения.РазложитьСтрокуВМассивПодстрок(СтрокаСоединенияИнформационнойБазы(),";");

Если ПодстрокиСтрокиСоединения.Количество()> 1 и Лев(ПодстрокиСтрокиСоединения[0], 5) = "Srvr=" и Лев(ПодстрокиСтрокиСоединения[1], 4) = "Ref=" Тогда

ИмяСервера = Сред(ПодстрокиСтрокиСоединения[0],7, СтрДлина(ПодстрокиСтрокиСоединения[0]) - 7);
ИмяИБ = Сред(ПодстрокиСтрокиСоединения[1],6, СтрДлина(ПодстрокиСтрокиСоединения[1]) - 6);

Попытка
connector = Новый COMОбъект("V81.ComConnector");
server = connector.ConnectServer(ИмяСервера);

ПодстрокиПараметровЗапуска = ОбщегоНазначения.РазложитьСтрокуВМассивПодстрок(ПараметрЗапуска,";");
Если ПодстрокиПараметровЗапуска.Количество() > 2 и Врег(ПодстрокиПараметровЗапуска[0]) = Врег("ЗавершитьРаботуПользователей") Тогда
server.AddAuthentication(ПодстрокиПараметровЗапуска[1], ПодстрокиПараметровЗапуска[2]);
КонецЕсли;

ibDesc = server.CreateInfoBaseInfo();
ibDesc.Name = ИмяИБ;
connections = server.GetIBConnections(ibDesc);

Для каждого connection Из connections Цикл

Если Не ИмяПользователя() = connection.userName Тогда
server.Disconnect(connection);
КонецЕсли;

КонецЦикла;
Исключение
ОбщегоНазначения.СообщитьОбОшибке(ОписаниеОшибки());
КонецПопытки;

КонецЕсли;

Соединения = ПолучитьСоединенияИнформационнойБазы();
Если Соединения.Количество() > 1 Тогда

Сообщение = "Не удалось завершить работу пользователей:";

Для каждого Соединение Из Соединения Цикл
Если Не Соединение.НомерСоединения = НомерСоединенияИнформационнойБазы() Тогда
Сообщение = Сообщение + Символы.ПС + " - " + Соединение;
КонецЕсли;
КонецЦикла;

Сообщить(Сообщение, СтатусСообщения.Внимание);
ЗаписьЖурналаРегистрации("Завершение работы пользователей", УровеньЖурналаРегистрации.Предупреждение, , , Сообщение);
Иначе
Сообщить("Завершение работы пользователей выполнено успешно.", СтатусСообщения.Информация);
КонецЕсли;

ЗавершитьРаботуСистемы(Ложь);

Возврат;
КонецЕсли;

КонецПроцедуры // ЗавершитьРаботуПользователей
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / [игнор отключен] [закрыт для гостей] / выгон юзеров из 8.1 / платф . УПП
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]