Собираем статистику из баз (аудит)

оглавлениеСобираем базы всех пользователей на сервере в общий список

Создаем и удаляем пользователей при помощи Обновлятора-1С

Статья устарела и требует переработки?

Как известно, основная функция обновлятора - это обновление баз. Но многие, наверное, уже обратили внимание на дополнительную закладку "Администрирование баз", которая появилась в программе с начала 2016 года.

И если вы владеете навыками написания скриптов (3 варианта - пакетные cmd скрипты, vbs и onescript, он же 1C), то сможете на этой закладке творить "чудеса",  не связанные напрямую с обновлением :)

В этой статье рассмотрим как в группе баз:

Для применения материала нужен хотя бы минимальный уровень владения языком 1с.

Итак, поехали ;)

Для теста возьмём три базы:

Переходим на закладку "Администрирование баз":

Прежде всего указываем "Базы для запуска" и тип скрипта "OneScript". Нижние параметры запуска ("Блокировать", "Разблокировать..." выставляем как на рисунке).

Осталось только написать скрипт в редакторе и запустить его (через кнопку "Запустить" или F7) сразу на всех выбранных базах.

Создать нового пользователя

Напишем скрипт для создания нового пользователя:

// Создание нового пользователя.	
 
ПользовательИБ = v8.ПользователиИнформационнойБазы.СоздатьПользователя(); 
ПользовательИБ.Имя = "Грозный И.В."; 
ПользовательИБ.ПолноеИмя = "Грозный Иван Васильевич";
ПользовательИБ.Пароль = "";
ПользовательИБ.Роли.Добавить(v8.Метаданные.Роли.ПолныеПрава);
ПользовательИБ.ПоказыватьВСпискеВыбора = Истина;
ПользовательИБ.АутентификацияОС = Ложь;
// ПользовательИБ.ОсновнойИнтерфейс = v8.Метаданные.Интерфейсы.Полный;
 
Если v8.ПользователиИнформационнойБазы.НайтиПоИмени(ПользовательИБ.Имя) = Неопределено Тогда		
    ПользовательИБ.Записать();	
    Сообщить("Новый пользователь создан.");
Иначе
    Сообщить("Пользователь с таким именем уже есть в базе!");	
КонецЕсли;

Запустим его на группе базы:

Для проверки откроем список пользователей первой базы в конфигураторе:

Отлично! Такой же пользователь появился и в оставшихся двух базах.

Добавить роль существующему пользователю

Добавим созданному ранее пользователю право на внешнее подключение к базе. За это отвечает роль "ПравоВнешнегоПодключения".

Скрипт будет таким:

// Добавление роли уже существующему пользователю
 
ИмяПользователя = "Грозный И.В.";
 
ПользовательИБ = v8.ПользователиИнформационнойБазы.НайтиПоИмени(ИмяПользователя); 
 
Если ПользовательИБ = Неопределено Тогда
    Сообщить("Пользователь с таким именем не найден в базе.");
Иначе
    ПользовательИБ.Роли.Добавить(v8.Метаданные.Роли.ПравоВнешнегоПодключения);
    ПользовательИБ.Записать();
    Сообщить("Роль добавлена.");
КонецЕсли;

Запустим его на группе баз:

И проверим на первой базе добавилась ли нужная нам роль:

Замечательно.

Удалить роль у существующего пользователя

Ну и для учебных целей тут же отберём данную роль у пользователя :)

Вот скрипт:

// Удаление роли у существующего пользователя
 
ИмяПользователя = "Грозный И.В.";
ПользовательИБ = v8.ПользователиИнформационнойБазы.НайтиПоИмени(ИмяПользователя); 
 
Если ПользовательИБ = Неопределено Тогда
    Сообщить("Пользователь с таким именем не найден в базе.");
Иначе
    ПользовательИБ.Роли.Удалить(v8.Метаданные.Роли.ПравоВнешнегоПодключения);
    ПользовательИБ.Записать();
    Сообщить("Роль удалена.");
КонецЕсли;

Удалить существующего пользователя

Наконец, удалим созданного нами пользователя.

Вот скрипт:

// Удаление пользователя.
 
ИмяУдаляемого = "Грозный И.В.";
 
ПользовательИБ = v8.ПользователиИнформационнойБазы.НайтиПоИмени(ИмяУдаляемого); 
 
Если ПользовательИБ = Неопределено Тогда
    Сообщить("Пользователь с таким именем не найден в базе.");
Иначе
    ПользовательИБ.Удалить();
    Сообщить("Пользователь удалён.");
КонецЕсли;

Проверим список пользователей в конфигураторе первой базы:

Всё получилось.

Вот так легко и просто (при минимальном владении языком 1с) можно управлять списком пользователей сразу в группе баз.

С уважением, (школа 1С программистов).

Подписывайтесь и получайте новые статьи и обработки на почту (не чаще 1 раза в неделю).

Вступайте в мою группу ВКонтакте, Одноклассниках, Facebook или Google+ — самые последние обработки, исправления ошибок в 1С, всё выкладываю там в первую очередь.

Владимир Милькин
Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.



Собираем статистику из баз (аудит)

оглавлениеСобираем базы всех пользователей на сервере в общий список