Last active
July 13, 2023 10:25
-
-
Save fokusov/63da2d30a04622b05d40429be847df86 to your computer and use it in GitHub Desktop.
Создание нового пользователя.os
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#use "updater1c" | |
// **************************************************************************** | |
// Переменные модуля | |
// **************************************************************************** | |
Перем errors; // Признак того, что при выполнении скрипта были ошибки. | |
Перем updater; // Обновлятор, через который мы получаем информацию о базе, | |
// а также вызываем различные функции обновлятора. | |
Перем connector; // Коннектор для подключения к базе. | |
Перем v8; // Само подключение к базе через коннектор. | |
// **************************************************************************** | |
// Ваш код для выполнения обновлятором | |
// **************************************************************************** | |
Процедура Главная() | |
ИмяПользователя = "Тест"; | |
ПолноеИмяПользователя = "Тестов Тест"; | |
Пароль = "123"; | |
ЭлПочта = "[email protected]"; | |
// создаём пользователя ИБ | |
ПользовательИБ = v8.ПользователиИнформационнойБазы.СоздатьПользователя(); | |
ПользовательИБ.Имя = ИмяПользователя; | |
ПользовательИБ.ПолноеИмя = ПолноеИмяПользователя; | |
ПользовательИБ.Пароль = Пароль; | |
ПользовательИБ.ПоказыватьВСпискеВыбора = Ложь; | |
ПользовательИБ.АутентификацияОС = Истина; | |
ПользовательИБ.АутентификацияСтандартная = Истина; | |
ПользовательИБ.ЗапрещеноИзменятьПароль = Ложь; | |
ПользовательИБ.ЗапрещеноВосстанавливатьПароль = Ложь; | |
ПользовательИБ.АдресЭлектроннойПочты = ЭлПочта; | |
Если v8.ПользователиИнформационнойБазы.НайтиПоИмени(ПользовательИБ.Имя) = Неопределено Тогда | |
ПользовательИБ.Записать(); | |
Сообщить("Новый пользователь создан."); | |
Иначе | |
Сообщить("Пользователь с таким именем уже есть в базе!"); | |
Возврат; | |
КонецЕсли; | |
// создаём пользователя в справочнике Пользователи | |
Пользователь = v8.Справочники.Пользователи.СоздатьЭлемент(); | |
Пользователь.Наименование = ПользовательИБ.ПолноеИмя; | |
Пользователь.Недействителен = Ложь; | |
ОписаниеПользователяИБ = v8.NewObject("Структура"); | |
ОписаниеПользователяИБ.Вставить("Действие", "Записать"); | |
ОписаниеПользователяИБ.Вставить("УникальныйИдентификатор", ПользовательИБ.УникальныйИдентификатор); | |
ОписаниеПользователяИБ.Вставить("Имя", ИмяПользователя); | |
ОписаниеПользователяИБ.Вставить("ПолноеИмя", ПолноеИмяПользователя); | |
ОписаниеПользователяИБ.Вставить("АутентификацияСтандартная", Истина); | |
ОписаниеПользователяИБ.Вставить("АутентификацияОС", Истина); | |
ОписаниеПользователяИБ.Вставить("Пароль", Пароль); | |
ОписаниеПользователяИБ.Вставить("Почта", ЭлПочта); | |
ОписаниеПользователяИБ.Вставить("АдресЭлектроннойПочты", ЭлПочта); | |
ОписаниеПользователяИБ.Вставить("ПоказыватьВСпискеВыбора", Ложь); | |
ОписаниеПользователяИБ.Вставить("ЗапрещеноИзменятьПароль", Ложь); | |
ОписаниеПользователяИБ.Вставить("ЗапрещеноВосстанавливатьПароль", Ложь); | |
ОписаниеПользователяИБ.Вставить("РежимЗапуска", "Авто"); | |
ОписаниеПользователяИБ.Вставить("ВходВПрограммуРазрешен", Истина); | |
ОписаниеПользователяИБ.Вставить("ПотребоватьСменуПароляПриВходе", Истина); | |
Пользователь.ДополнительныеСвойства.Вставить("ОписаниеПользователяИБ", ОписаниеПользователяИБ); | |
Пользователь.Записать(); | |
//e-mail добавим через контактуню информацию | |
ВидКонтактнойИнформации = v8.Справочники.ВидыКонтактнойИнформации.EmailПользователя; | |
ТипКонтактнойИнформации = ВидКонтактнойИнформации.Тип; | |
ЗначенияПолей = v8.УправлениеКонтактнойИнформацией.КонтактнаяИнформацияПоПредставлению(ЭлПочта, ВидКонтактнойИнформации); | |
v8.УправлениеКонтактнойИнформацией.ЗаписатьКонтактнуюИнформацию(Пользователь, ЗначенияПолей, ВидКонтактнойИнформации, ТипКонтактнойИнформации); | |
Пользователь.Записать(); | |
ТекПользователь = Пользователь.Ссылка; | |
// назначаем права пользователю ИБ | |
ТекПрофиль = v8.Справочники.ПрофилиГруппДоступа.НайтиПоНаименованию("Администратор"); | |
v8.УправлениеДоступом.ВключитьПрофильПользователю(ТекПользователь, ТекПрофиль); | |
ТекПрофиль = v8.Справочники.ПрофилиГруппДоступа.НайтиПоНаименованию("Главный бухгалтер"); | |
v8.УправлениеДоступом.ВключитьПрофильПользователю(ТекПользователь, ТекПрофиль); | |
ТекПрофиль = v8.Справочники.ПрофилиГруппДоступа.НайтиПоНаименованию("Открытие внешних отчетов и обработок"); | |
v8.УправлениеДоступом.ВключитьПрофильПользователю(ТекПользователь, ТекПрофиль); | |
ТекПрофиль = v8.Справочники.ПрофилиГруппДоступа.НайтиПоНаименованию("Синхронизация данных с другими программами"); | |
v8.УправлениеДоступом.ВключитьПрофильПользователю(ТекПользователь, ТекПрофиль); | |
КонецПроцедуры | |
// **************************************************************************** | |
// Служебные процедуры | |
// **************************************************************************** | |
Процедура ПриНачалеРаботы() | |
errors = Ложь; | |
updater = Новый Updater1C; | |
connector = updater.CreateConnector(); | |
v8 = updater.BaseConnectNew(connector); | |
КонецПроцедуры | |
Процедура ПриОкончанииРаботы() | |
Если v8 <> Неопределено Тогда | |
Попытка | |
ОсвободитьОбъект(v8); | |
v8 = Неопределено; | |
Исключение | |
КонецПопытки; | |
КонецЕсли; | |
Если connector <> Неопределено Тогда | |
Попытка | |
ОсвободитьОбъект(connector); | |
connector = Неопределено; | |
Исключение | |
КонецПопытки; | |
КонецЕсли; | |
Если updater <> Неопределено Тогда | |
Попытка | |
ОсвободитьОбъект(updater); | |
updater = Неопределено; | |
Исключение | |
КонецПопытки; | |
КонецЕсли; | |
// Ожидание в конце выполнения программы | |
// магическим образом помогает избежать | |
// проблем с освобождением ресурсов, если | |
// мы использовали внешнее подключение к | |
// базе. Могут быть случаи, когда недостаточно | |
// 1 секунды. | |
Приостановить(1000); | |
Если errors Тогда | |
ЗавершитьРаботу(1); | |
КонецЕсли; | |
КонецПроцедуры | |
// **************************************************************************** | |
// Инициализация и запуск скрипта | |
// **************************************************************************** | |
ПриНачалеРаботы(); | |
Попытка | |
Главная(); | |
updater.КодПользователяВыполнился(); // вот этот вызов нужно вставить | |
Исключение | |
errors = Истина; | |
Сообщить("<span class='red'><b>" + ОписаниеОшибки() + "</b></span>"); | |
КонецПопытки; | |
ПриОкончанииРаботы(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment