Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Как поставить галочку в справочнике Пользователи

Как поставить галочку в справочнике Пользователи
Я
   IvanVlad007
 
19.03.19 - 13:27
Как проставить галочку "ДоступКИнформационнойБазеРазрешен" в справочнике "Пользователи" Если она находится на форме. Или как сделать так чтобы пользователь ИБ и пользователь справочника "Пользователи" были связаны. Использовал этот код тоже не помогает. Пользователь создается а связи все равно нету и если руками поставить галочку "ДоступКИнформационнойБазеРазрешен" то при записи справочника будет создаваться новый пользователь ИБ. Пользователь создается через ComConnector по Guid.

                СтрокаGUID = СокрЛП(Результат.ИдентификаторПользователяИБ);
        НовыйGUID = V8.NewObject("УникальныйИдентификатор",СтрокаGUID);
        СпрСсылка = V8.Справочники.Пользователи.ПолучитьСсылку(НовыйGUID);
        Если СпрСсылка.ПолучитьОбъект()=Неопределено Тогда
            НовыйПользователь = V8.Справочники.Пользователи.СоздатьЭлемент();
            НовыйПользователь.УстановитьСсылкуНового(СпрСсылка);
            НовыйПользователь.ИдентификаторПользователяИБ = НовыйGUID;
            НовыйПользователь.Наименование = Результат.Наименование;
            НовыйПользователь.ОсновнойEmail = Результат.Email;
            НовыйПользователь.ОсновнойТелефон = Результат.Телефон;
            НовыйПользователь.Логин = Результат.Наименование;
            НовыйПользователь.Служебный = Ложь;
            НовыйПользователь.Должность = ПолучитьДолжность(Результат.Должность,V8);
            НовыйПользователь.Организация = ПолучитьОрганизацию(Результат.Подразделение2,V8);
            НовыйПользователь.Подразделение = ПолучитьПодразделение(Результат.Подразделение2,V8,НовыйПользователь.Организация);
            НовыйПользователь.Записать();
            ОписаниеПользователяИБ = Новый Структура;
            ОписаниеПользователяИБ.Вставить("Действие","Записать");
            ОписаниеПользователяИБ.Вставить("Имя",Результат.Наименование);
            ОписаниеПользователяИБ.Вставить("Пароль","123");
            ОписаниеПользователяИБ.Вставить("Язык","");    
            ОписаниеПользователяИБ.Вставить("АутентификацияСтандартная ",Истина);
            ОписаниеПользователяИБ.Вставить("ПоказыватьВСпискеВыбора",Истина);
            ОписаниеПользователяИБ.Вставить("РежимЗапуска","Авто");
            ОписаниеПользователяИБ.Вставить("ДоступКИнформационнойБазеРазрешен",Истина);
            НовыйПользователь.ДополнительныеСвойства.Вставить("ОписаниеПользователяИБ",ОписаниеПользователяИБ);
            V8.ПользователиСлужебный.НачатьОбработкуПользователяИБ(НовыйПользователь,ПараметрыОбработкиПользователяИБ);
            V8.ПользователиСлужебный.ЗавершитьОбработкуПользователяИБ(НовыйПользователь,ПараметрыОбработкиПользователяИБ);
 
 
   Mort
 
1 - 19.03.19 - 13:49
НовыйПользователь.ИдентификаторПользователяИБ = НовыйGUID вот где связь настраивается.
   Mort
 
2 - 19.03.19 - 13:52
ПользователиСлужебный.НачатьОбработкуПользователяИБ - сейчас нет под рукой, но если туда передается объект, большая вероятность что в него вносятся изменения. А ты записываешь его ещё до вызова.
   IvanVlad007
 
3 - 19.03.19 - 14:01
(1) Я так делал, он мне пишет ошибку 
"Поле объекта недоступно для записи (УникальныйИдентификатор)
ПользовательИБ.УникальныйИдентификатор = НовыйGUID;"

Вот код:
            НовыйПользователь = V8.Справочники.Пользователи.СоздатьЭлемент();
            НовыйПользователь.УстановитьСсылкуНового(СпрСсылка);
            НовыйПользователь.ИдентификаторПользователяИБ = НовыйGUID;
            НовыйПользователь.Наименование = Результат.Наименование;
            НовыйПользователь.ОсновнойEmail = Результат.Email;
            НовыйПользователь.ОсновнойТелефон = Результат.Телефон;
            НовыйПользователь.Логин = Результат.Наименование;
            НовыйПользователь.Служебный = Ложь;
            НовыйПользователь.Должность = ПолучитьДолжность(Результат.Должность,V8);
            НовыйПользователь.Организация = ПолучитьОрганизацию(Результат.Подразделение2,V8);
            НовыйПользователь.Подразделение = 
                        ПолучитьПодразделение(Результат.Подразделение2,V8,НовыйПользователь.Организация);
            НовыйПользователь.Записать();
            ПользовательИБ = V8.ПользователиИнформационнойБазы.СоздатьПользователя();
            ПользовательИБ.Имя = Результат.Наименование;
            ПользовательИБ.УникальныйИдентификатор = НовыйGUID;
            ПользовательИБ.АутентификацияСтандартная = Истина;
            ПользовательИБ.Пароль = "123";
            ПользовательИБ.ПоказыватьВСпискеВыбора = Истина;
            ПользовательИБ.Записать();
   Mort
 
4 - 19.03.19 - 14:03
(3) Ну так сначала запиши пользователя ИБ, а потом его гуид укажи пользователю - элементу справочника.
   IvanVlad007
 
5 - 19.03.19 - 14:03
(2) Объясни пожалуйста что значит записываю до вызова? Я просто этот код нашел на просторах интернета. Заранее благодарен
   IvanVlad007
 
6 - 19.03.19 - 14:04
(4) Понятно, это плохо т.к. мне нужно еще по GUID связать пользователя из другой базы. а присвоить получается пользователю его нельзя(. Потому что у меня синхронизация между базами будет не по коду а по GUIDу
   IvanVlad007
 
7 - 19.03.19 - 14:08
(4) Спасибо большое)))) Ура))) Все заработало, только теперь надо продумать как им присвоить GUID из другой базы)))
   aleks_default
 
8 - 19.03.19 - 14:12
не создавай нового пользователя ИБ в другой базе, а передавай его напрямую в виде XML
   IvanVlad007
 
9 - 19.03.19 - 14:36
Спасибо большое всем за помощь. Высылаю работающий код, вдруг кому пригодиться)



            ПользовательИБ = V8.ПользователиИнформационнойБазы.СоздатьПользователя();
            ПользовательИБ.Имя = Результат.Наименование;
            ПользовательИБ.АутентификацияСтандартная = Истина;
            ПользовательИБ.Пароль = "123";
            ПользовательИБ.ПоказыватьВСпискеВыбора = Истина;
            ПользовательИБ.Записать();
            НовыйПользователь = V8.Справочники.Пользователи.СоздатьЭлемент();
            НовыйПользователь.УстановитьСсылкуНового(СпрСсылка);
            НовыйПользователь.ИдентификаторПользователяИБ = ПользовательИБ.УникальныйИдентификатор;
            НовыйПользователь.Наименование = Результат.Наименование;
            НовыйПользователь.ОсновнойEmail = Результат.Email;
            НовыйПользователь.ОсновнойТелефон = Результат.Телефон;
            НовыйПользователь.Логин = Результат.Наименование;
            НовыйПользователь.Служебный = Ложь;
            НовыйПользователь.Должность = ПолучитьДолжность(Результат.Должность,V8);
            НовыйПользователь.Организация = ПолучитьОрганизацию(Результат.Подразделение2,V8);
            НовыйПользователь.Подразделение = 
                        ПолучитьПодразделение(Результат.Подразделение2,V8,НовыйПользователь.Организация);
            НовыйПользователь.Записать();

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует