По теме из базы знаний
- УФ: программное создание и копирование документов с использованием конструкций ДанныеФормыВЗначение, ЗначениеВДанныеФормы
- Создание пользователей системы взаимодействия
- Программное создание реквизита управляемой формы с помощью механизма расширений
- Кто занял конфигуратор? (Групповое создание пользователей)
- Программное создание документов перемещения НФА по остаткам. БГУ 2
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)Тоже сначала брал за основу (20), но при программном создании пользователя в 1С:Документооборот с ОбменДанными.Загрузка = Истина не выполняются процедуры при записи пользователя и в итоге не хватает прав на объекты.
Для создания пользователя без использования ОбменДанными.Загрузка = Истина, необходимо заполнение структуры:
И передачи ее в дополнительные свойства:
Для создания пользователя без использования ОбменДанными.Загрузка = Истина, необходимо заполнение структуры:
ОписаниеПользователяИБ = Новый Структура;
ОписаниеПользователяИБ.Вставить("Действие", "Записать");
ОписаниеПользователяИБ.Вставить("Имя", ТекущийПользовательИБ.Имя);
ОписаниеПользователяИБ.Вставить("ПолноеИмя", ТекущийПользовательИБ.ПолноеИмя);
ОписаниеПользователяИБ.Вставить("Пароль",ТекущийПользовательИБ.Пароль);
ОписаниеПользователяИБ.Вставить("АутентификацияОС", Ложь);
ОписаниеПользователяИБ.Вставить("ПоказыватьВСпискеВыбора", Ложь);
ОписаниеПользователяИБ.Вставить("ЗапрещеноИзменятьПароль", Истина);
И передачи ее в дополнительные свойства:
НовыйПользователь.ДополнительныеСвойства.Вставить("ОписаниеПользователяИБ", Свойства);
(5) Как только пользователь заходит в 1С, выходит такое сообщение:
Авторизация не выполнена. Работа системы будет завершена.
Пользователь "Такой то" не найден в справочнике "Пользователи".
Обратитесь к администратору.
Это потому, что в справочнике Пользователи не заполнено поле ПользовательИБИмя.
А это реквизит формы элемента.
Связь между пользователем и пользователем ИБ устанавливаю так:
НовыйПользователь.ИдентификаторПользователяИБ = ПользовательИБ.УникальныйИдентификатор;
Авторизация не выполнена. Работа системы будет завершена.
Пользователь "Такой то" не найден в справочнике "Пользователи".
Обратитесь к администратору.
Это потому, что в справочнике Пользователи не заполнено поле ПользовательИБИмя.
А это реквизит формы элемента.
Связь между пользователем и пользователем ИБ устанавливаю так:
НовыйПользователь.ИдентификаторПользователяИБ = ПользовательИБ.УникальныйИдентификатор;
(7)
Вы путаете реквизит справочника и реквизит формы. Это разные вещи, реквизит справочника существует независимо от формы. Насколько понял, вам в этот реквизит(справочника) нужно просто записать имя пользователя информационной базы, так, как он в меню "Администрирование"-"Пользователи" написан
Это потому, что в справочнике Пользователи не заполнено поле ПользовательИБИмя.
А это реквизит формы элемента.
А это реквизит формы элемента.
Вы путаете реквизит справочника и реквизит формы. Это разные вещи, реквизит справочника существует независимо от формы. Насколько понял, вам в этот реквизит(справочника) нужно просто записать имя пользователя информационной базы, так, как он в меню "Администрирование"-"Пользователи" написан
(6) Как только пользователь заходит в 1С, выходит такое сообщение:
Авторизация не выполнена. Работа системы будет завершена.
Пользователь "Такой то" не найден в справочнике "Пользователи".
Обратитесь к администратору.
Это потому, что в справочнике Пользователи не заполнено поле ПользовательИБИмя.
А это реквизит формы элемента.
Связь между пользователем и пользователем ИБ устанавливаю так:
НовыйПользователь.ИдентификаторПользователяИБ = ПользовательИБ.УникальныйИдентификатор;
Авторизация не выполнена. Работа системы будет завершена.
Пользователь "Такой то" не найден в справочнике "Пользователи".
Обратитесь к администратору.
Это потому, что в справочнике Пользователи не заполнено поле ПользовательИБИмя.
А это реквизит формы элемента.
Связь между пользователем и пользователем ИБ устанавливаю так:
НовыйПользователь.ИдентификаторПользователяИБ = ПользовательИБ.УникальныйИдентификатор;
Результат = Запрос.Выполнить().Выгрузить();
Для Каждого ЭЛ из Результат Цикл
Попытка
СсылкаНаПользователя = Справочники.Пользователи.НайтиПоРеквизиту("ФизическоеЛицо", эл.ФизическоеЛицо);
Если СсылкаНаПользователя = Справочники.Пользователи.ПустаяСсылка() Тогда
НовыйПользователь = Справочники.Пользователи.СоздатьЭлемент();
НовыйПользователь.Наименование = эл.ФизическоеЛицо.наименование;
НовыйПользователь.ФизическоеЛицо = эл.ФизическоеЛицо;
Иначе
НовыйПользователь = ссылкаНаПользователя.ПолучитьОбъект();
НовыйПользователь.ФизическоеЛицо = эл.ФизическоеЛицо;
КонецЕсли;
НовыйПользователь.Записать();
Исключение
Сообщить("Ошибка создания " + Эл.ФизическоеЛицо.Наименование + " " + ОписаниеОшибки());
КонецПопытки;
ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоУникальномуИдентификатору(НовыйПользователь.ИдентификаторПользователяИБ);
Если ПользовательИБ = Неопределено Тогда
ПользовательИБ = ПользователиИнформационнойБазы.СоздатьПользователя();
Имя = ФизическиеЛицаКлиентСервер.ФамилияИнициалы(НовыйПользователь.Наименование);
Имя1 = СтрЗаменить(Имя, ".", "");
Имя2 = СтрЗаменить(Имя1, " ", "");
ПользовательИБ.Имя = Имя2;
ПользовательИБ.ПолноеИмя = СокрЛП(НовыйПользователь.ПолноеНаименование());
ЛогинОС = ПолучитьПользователяОС(эл.ФизическоеЛицо);
Если ЛогинОС <> Неопределено тогда
ПользовательИБ.АутентификацияОС = Истина;
ПользовательИБ.ПользовательОС = "\\" + ЛогинОС;
ПользовательИБ.ПоказыватьВСпискеВыбора = Ложь;
Иначе
Сообщить("У пользователя не заполнено свойство ""Логин"" " +эл.ФизическоеЛицо.наименование);
ПользовательИБ.АутентификацияСтандартная = Истина;
ПользовательИБ.Пароль = НовыйПользователь.Код;
ПользовательИБ.ПоказыватьВСпискеВыбора = истина;
КонецЕсли;
ПользовательИБ.Язык = Метаданные.Языки.Русский;
ПользовательИБ.Роли.Добавить(Метаданные.роли.БазовыеПрава);
ПользовательИБ.Роли.Добавить(Метаданные.роли.ЗапускВебКлиента);
КонецЕсли;
Попытка
ПользовательИБ.Записать();
Сообщить(ПользовательИБ.Имя + " создан!");
Исключение
Сообщить("Ошибка создания или редактирования " +эл.ФизическоеЛицо.наименование +" "+ ОписаниеОшибки());
КонецПопытки;
НовыйПользователь.ИдентификаторПользователяИБ = ПользовательИБ.УникальныйИдентификатор;
НовыйПользователь.Записать();
КонецЦикла;
Показать
После
сделайте
а то у вас НовыйПользователь.ИдентификаторПользователяИБ записывается, даже если ПользовательИБ не записался.
Пользователи ИБ создаются? Можно посмотреть в конфигураторе.
Сообщить("Ошибка создания или редактирования " +эл.ФизическоеЛицо.наименование +" "+ ОписаниеОшибки());
сделайте
ВызватьИсключение;
а то у вас НовыйПользователь.ИдентификаторПользователяИБ записывается, даже если ПользовательИБ не записался.
Пользователи ИБ создаются? Можно посмотреть в конфигураторе.
(20)Спасибо. у меня как раз был этот флаг в Истине при загрузке спр.Пользователи - и никак не получалось создать ПользователейИБ, а как заремарила - все взлетело!
НовСпр = Справочники.Пользователи.СоздатьЭлемент();
ЗаполнитьЗначенияСвойств(НовСпр, Спр.Реквизиты);
НовСпр.КонтактнаяИнформация.Загрузить(Спр.КонтактнаяИнформация);
ОбновляемыеСвойства = Пользователи.НовоеОписаниеПользователяИБ();
ОбновляемыеСвойства.Вставить("Имя", Спр.Реквизиты.Наименование);
ОбновляемыеСвойства.Вставить("ПолноеИмя", Спр.Реквизиты.Наименование);
ОбновляемыеСвойства.Вставить("ПоказыватьВСпискеВыбора", Истина);
ОбновляемыеСвойства.Вставить("АутентификацияОС", Ложь);
//ОбновляемыеСвойства.Вставить("ПользовательОС", "\\SL24\" + Выборка.Логин);
ОбновляемыеСвойства.Вставить("УникальныйИдентификатор", Неопределено); //ИдентификаторПользователяИБ
ОбновляемыеСвойства.Вставить("Действие", "Записать");
ОбновляемыеСвойства.Вставить("ВходВПрограммуРазрешен", Истина);
ОбновляемыеСвойства.Вставить("АутентификацияСтандартная", Истина); //Ложь
//ОбновляемыеСвойства.Вставить("Пароль", "12345");
НовСпр.ДополнительныеСвойства.Вставить("Действие", "Записать");
НовСпр.ДополнительныеСвойства.Вставить("ВходВПрограммуРазрешен", Истина);
//НовСпр.ДополнительныеСвойства.Вставить("АутентификацияОС", Истина);
НовСпр.ДополнительныеСвойства.Вставить("АутентификацияСтандартная", Истина);//Ложь
НовСпр.ДополнительныеСвойства.Вставить("ОписаниеПользователяИБ", ОбновляемыеСвойства);
//ПользовательОбъект.ОбменДанными.Загрузка = Истина;
//НовСпр.ОбменДанными.Загрузка = Истина; //!!!!!!!!!!!!!!!!!!! Для спр.Пользователи не нужно вкл.этот флаг, иначе ПользовательИБ не создастся!
НовСпр.Записать();
Показать
Это конечно.. треш. Сам потратил несколько часов на связь пользователя ИБ и элемента справочника пользователя. Помогло только
НовыйПользователь.ОбменДанными.Загрузка = Истина.
В противном случае- всегда 0000 00000 вылетали в поле идентификаторИБ для элемента справочника Пользователи после записи чтобы я туда не подставлял
НовыйПользователь.ОбменДанными.Загрузка = Истина.
В противном случае- всегда 0000 00000 вылетали в поле идентификаторИБ для элемента справочника Пользователи после записи чтобы я туда не подставлял
// Код для создания пользователя ИБ с привязкой к пользователю БСП (справочник.пользователи).
ГУИДПользователя = "Требуемый уникальный идентификатор";
Ссылка = Справочники.Пользователи.ПолучитьСсылку(Новый УникальныйИдентификатор(ГУИДПользователя ));
Если НЕ Ссылка.ПолучитьОбъект() = Неопределено Тогда
ОбъектУчета = Ссылка.ПолучитьОбъект();
Иначе
ОбъектУчета = Справочники.Пользователи.СоздатьЭлемент();
ОбъектУчета.УстановитьСсылкуНового(Ссылка);
КонецЕсли;
ИмяПользователя = "Иванов Иван Иванович";
ОбъектУчета.Наименование = ФИО;
ОбъектУчета.ИдентификаторПользователяИБ = Новый УникальныйИдентификатор(ГУИДПользователя);
ОписаниеПользователяИБ = Новый Структура;
ОписаниеПользователяИБ.Вставить("Действие", "Записать");
ОписаниеПользователяИБ.Вставить("Имя", ИмяПользователя );
ОписаниеПользователяИБ.Вставить("ПолноеИмя", ИмяПользователя );
ОписаниеПользователяИБ.Вставить("АутентификацияСтандартная", Истина);
ОписаниеПользователяИБ.Вставить("Пароль", "123");
ОписаниеПользователяИБ.Вставить("АутентификацияОС", Ложь);
ОписаниеПользователяИБ.Вставить("ПоказыватьВСпискеВыбора", Истина);
ОписаниеПользователяИБ.Вставить("ЗапрещеноИзменятьПароль", Ложь);
ОписаниеПользователяИБ.Вставить("РежимЗапуска","Авто");
ОписаниеПользователяИБ.Вставить("Язык",
?(Метаданные.ОсновнойЯзык = Неопределено, "", Метаданные.ОсновнойЯзык.Имя));
ОписаниеПользователяИБ.Вставить("Роли");
ОбъектУчета.ДополнительныеСвойства.Вставить("ОписаниеПользователяИБ", ОписаниеПользователяИБ);
ОбъектУчета.Записать();
// Назначаем роли через назначение групп доступа. ГруппыДоступа - это список значений на форме с типом СправочникСсылка.ГруппыДоступа.
Для Каждого Группа Из ГруппыДоступа Цикл
ГруппаДоступаОбъект = Группа.Значение.ПолучитьОбъект();
Если ГруппаДоступаОбъект.Пользователи.Найти(ОбъектУчета.Ссылка, "Пользователь") = Неопределено Тогда
ГруппаДоступаОбъект.Пользователи.Добавить().Пользователь = ОбъектУчета.Ссылка;
ГруппаДоступаОбъект.Записать();
КонецЕсли;
КонецЦикла;
Показать
(30)
Спасибо! Работает на УНФ 3.0
ГУИДПользователя = "Требуемый уникальный идентификатор";
Ссылка = Справочники.Пользователи.ПолучитьСсылку(Новый УникальныйИдентификатор(ГУИДПользователя ));
Если НЕ Ссылка.ПолучитьОбъект() = Неопределено Тогда
ОбъектУчета = Ссылка.ПолучитьОбъект();
Иначе
ОбъектУчета = Справочники.Пользователи.СоздатьЭлемент();
ОбъектУчета.УстановитьСсылкуНового(Ссылка);
КонецЕсли;
ИмяПользователя = "Иванов Иван Иванович";
ОбъектУчета.Наименование = ФИО;
ОбъектУчета.ИдентификаторПользователяИБ = Новый УникальныйИдентификатор(ГУИДПользователя);
ОписаниеПользователяИБ = Новый Структура;
ОписаниеПользователяИБ.Вставить("Действие", "Записать");
ОписаниеПользователяИБ.Вставить("Имя", ИмяПользователя );
ОписаниеПользователяИБ.Вставить("ПолноеИмя", ИмяПользователя );
ОписаниеПользователяИБ.Вставить("АутентификацияСтандартная", Истина);
ОписаниеПользователяИБ.Вставить("Пароль", "123");
ОписаниеПользователяИБ.Вставить("АутентификацияОС", Ложь);
ОписаниеПользователяИБ.Вставить("ПоказыватьВСпискеВыбора", Истина);
ОписаниеПользователяИБ.Вставить("ЗапрещеноИзменятьПароль", Ложь);
ОписаниеПользователяИБ.Вставить("РежимЗапуска","Авто");
ОписаниеПользователяИБ.Вставить("Язык",
?(Метаданные.ОсновнойЯзык = Неопределено, "", Метаданные.ОсновнойЯзык.Имя));
ОписаниеПользователяИБ.Вставить("Роли");
ОбъектУчета.ДополнительныеСвойства.Вставить("ОписаниеПользователяИБ", ОписаниеПользователяИБ);
ОбъектУчета.Записать();
// Назначаем роли через назначение групп доступа. ГруппыДоступа - это список значений на форме с типом СправочникСсылка.ГруппыДоступа.
Для Каждого Группа Из ГруппыДоступа Цикл
ГруппаДоступаОбъект = Группа.Значение.ПолучитьОбъект();
Если ГруппаДоступаОбъект.Пользователи.Найти(ОбъектУчета.Ссылка, "Пользователь") = Неопределено Тогда
ГруппаДоступаОбъект.Пользователи.Добавить().Пользователь = ОбъектУчета.Ссылка;
ГруппаДоступаОбъект.Записать();
КонецЕсли;
КонецЦикла;
ПоказатьСсылка = Справочники.Пользователи.ПолучитьСсылку(Новый УникальныйИдентификатор(ГУИДПользователя ));
Если НЕ Ссылка.ПолучитьОбъект() = Неопределено Тогда
ОбъектУчета = Ссылка.ПолучитьОбъект();
Иначе
ОбъектУчета = Справочники.Пользователи.СоздатьЭлемент();
ОбъектУчета.УстановитьСсылкуНового(Ссылка);
КонецЕсли;
ИмяПользователя = "Иванов Иван Иванович";
ОбъектУчета.Наименование = ФИО;
ОбъектУчета.ИдентификаторПользователяИБ = Новый УникальныйИдентификатор(ГУИДПользователя);
ОписаниеПользователяИБ = Новый Структура;
ОписаниеПользователяИБ.Вставить("Действие", "Записать");
ОписаниеПользователяИБ.Вставить("Имя", ИмяПользователя );
ОписаниеПользователяИБ.Вставить("ПолноеИмя", ИмяПользователя );
ОписаниеПользователяИБ.Вставить("АутентификацияСтандартная", Истина);
ОписаниеПользователяИБ.Вставить("Пароль", "123");
ОписаниеПользователяИБ.Вставить("АутентификацияОС", Ложь);
ОписаниеПользователяИБ.Вставить("ПоказыватьВСпискеВыбора", Истина);
ОписаниеПользователяИБ.Вставить("ЗапрещеноИзменятьПароль", Ложь);
ОписаниеПользователяИБ.Вставить("РежимЗапуска","Авто");
ОписаниеПользователяИБ.Вставить("Язык",
?(Метаданные.ОсновнойЯзык = Неопределено, "", Метаданные.ОсновнойЯзык.Имя));
ОписаниеПользователяИБ.Вставить("Роли");
ОбъектУчета.ДополнительныеСвойства.Вставить("ОписаниеПользователяИБ", ОписаниеПользователяИБ);
ОбъектУчета.Записать();
// Назначаем роли через назначение групп доступа. ГруппыДоступа - это список значений на форме с типом СправочникСсылка.ГруппыДоступа.
Для Каждого Группа Из ГруппыДоступа Цикл
ГруппаДоступаОбъект = Группа.Значение.ПолучитьОбъект();
Если ГруппаДоступаОбъект.Пользователи.Найти(ОбъектУчета.Ссылка, "Пользователь") = Неопределено Тогда
ГруппаДоступаОбъект.Пользователи.Добавить().Пользователь = ОбъектУчета.Ссылка;
ГруппаДоступаОбъект.Записать();
КонецЕсли;
КонецЦикла;
Спасибо! Работает на УНФ 3.0
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот