Каталог решений - Правило обмена между 1С: ЗУП 3.1 и 1С: Документооборот 3.0. Выгрузка сотрудников, пользователей и структуры предприятия

Правило обмена между 1С: ЗУП 3.1 и 1С: Документооборот 3.0. Выгрузка сотрудников, пользователей и структуры предприятия

Правило обмена между 1С: ЗУП 3.1 и 1С: Документооборот 3.0. Выгрузка сотрудников, пользователей и структуры предприятия

В наличии

Данное правило автоматизирует передачу данных между 1С:ЗУП и 1С:ДО, обеспечивая актуальность информации в обеих системах. Решение особенно полезно для организаций с большим штатом, где важна синхронизация данных о сотрудниках и пользователях.

Категория:

Описание

Правило обмена реализовано на КД2.

Особенности: Выгрузка всех действующих сотрудников, а также уволенных сотрудников (за последний месяц), пользователи выгружаются со всеми настройками (пароли и т.д.). Выдаются базовые права.  

Сначала переносим пользователей, а затем уже пользователей информационной базы. Ниже показан фрагмент кода из правила: 

Создаем подчиненный узел с информацией о пользователе информационной базы:

ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоУникальномуИдентификатору(Новый УникальныйИдентификатор(Источник.УИД));

Если ПользовательИБ <> Неопределено Тогда
    Описание = Новый Структура("Имя,ПолноеИмя,АутентификацияOpenID,АутентификацияОС,АутентификацияСтандартная,        
        |ЗапрещеноИзменятьПароль,СохраняемоеЗначениеПароля,ПоказыватьВСпискеВыбора,Пароль,ПарольУстановлен,ЗащитаОтОпасныхДействий,      
        |ПользовательОС,УникальныйИдентификатор,АутентификацияOpenIDConnect,ЗапрещеноВосстанавливатьПароль,АдресЭлектроннойПочты");
        
    ЗаполнитьЗначенияСвойств(Описание,ПользовательИБ,,"ЗащитаОтОпасныхДействий");
    
    Описание.ЗащитаОтОпасныхДействий = ПользовательИБ.ЗащитаОтОпасныхДействий.ПредупреждатьОбОпасныхДействиях;
    
    ИнформацияОПользователе = СоздатьУзел("ИнформацияОПользователе");
    
    Для каждого КлючИЗначение ИЗ Описание Цикл
        УстановитьАтрибут(ИнформацияОПользователе, КлючИЗначение.Ключ, КлючИЗначение.Значение);  
     КонецЦикла;

    ДобавитьПодчиненный(Приемник, ИнформацияОПользователе);
КонецЕсли;

 

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

Пока ФайлОбмена.Прочитать() Цикл
	
    ИмяУзла = ФайлОбмена.ЛокальноеИмя; 
    ТипУзла = ФайлОбмена.ТипУзла;
    
    Если ИмяУзла = "ИнформацияОПользователе" И (ТипУзла = одТипУзлаXML_НачалоЭлемента) Тогда
    
            ИмяПользователя = одАтрибут(ФайлОбмена, одТипСтрока, "Имя");
                    
            Пользователь = ПользователиИнформационнойБазы.НайтиПоИмени(ИмяПользователя);
            
            Если Пользователь = Неопределено Тогда
            
                Пользователь = ПользователиИнформационнойБазы.СоздатьПользователя();
                
                Пользователь.Имя = ИмяПользователя;
                Пользователь.ПолноеИмя = одАтрибут(ФайлОбмена, одТипСтрока, "ПолноеИмя");
                Пользователь.АутентификацияOpenID = одАтрибут(ФайлОбмена, одТипБулево, "АутентификацияOpenID");
                Пользователь.АутентификацияОС = одАтрибут(ФайлОбмена, одТипБулево, "АутентификацияОС");
                Пользователь.АутентификацияСтандартная = одАтрибут(ФайлОбмена, одТипБулево, "АутентификацияСтандартная");
                Пользователь.ЗапрещеноИзменятьПароль = одАтрибут(ФайлОбмена, одТипБулево, "ЗапрещеноИзменятьПароль");
                Пользователь.ПоказыватьВСпискеВыбора = одАтрибут(ФайлОбмена, одТипБулево, "ПоказыватьВСпискеВыбора");
                Пользователь.СохраняемоеЗначениеПароля = одАтрибут(ФайлОбмена, одТипСтрока, "СохраняемоеЗначениеПароля");
                Пользователь.ПользовательОС = одАтрибут(ФайлОбмена, одТипСтрока, "ПользовательОС");
                Пользователь.АутентификацияOpenIDConnect = одАтрибут(ФайлОбмена, одТипСтрока, "АутентификацияOpenIDConnect");
                Пользователь.ЗапрещеноВосстанавливатьПароль = одАтрибут(ФайлОбмена, одТипСтрока, "ЗапрещеноВосстанавливатьПароль");
                Пользователь.АдресЭлектроннойПочты = одАтрибут(ФайлОбмена, одТипСтрока, "АдресЭлектроннойПочты");
                
                ЗащитаОтОпасныхДействий = Новый ОписаниеЗащитыОтОпасныхДействий;
                ЗащитаОтОпасныхДействий.ПредупреждатьОбОпасныхДействиях = одАтрибут(ФайлОбмена, одТипБулево, "ЗащитаОтОпасныхДействий");
                Пользователь.ЗащитаОтОпасныхДействий = ЗащитаОтОпасныхДействий;
               
                Пользователь.Записать();
                
                Запрос = Новый Запрос;
                Запрос.УстановитьПараметр("Свойство", ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоРеквизиту("Имя","ИдентификаторПользователяЗУП"));
                Запрос.УстановитьПараметр("Значение", одАтрибут(ФайлОбмена, одТипСтрока, "УникальныйИдентификатор"));
                
                Запрос.Текст = "ВЫБРАТЬ
                    |	  ПользователиДополнительныеРеквизиты.Ссылка КАК Ссылка
                    |ИЗ
                    |   Справочник.Пользователи.ДополнительныеРеквизиты КАК ПользователиДополнительныеРеквизиты
                    |ГДЕ
                    |	  ПользователиДополнительныеРеквизиты.Свойство = &Свойство
                    |	  И ПользователиДополнительныеРеквизиты.Значение = &Значение";
                Выборка = Запрос.Выполнить().Выбрать(); 
                
                Если Выборка.Следующий() Тогда
                    ПользовательОбъект = Выборка.Ссылка.ПолучитьОбъект();
                    ПользовательОбъект.ИдентификаторПользователяИБ = Пользователь.УникальныйИдентификатор;
                    ПользовательОбъект.ОбменДанными.Загрузка = Истина;
                    ПользовательОбъект.Записать();
                КонецЕсли;
                
            ИначеЕсли (ИмяУзла = "ИнформацияОПользователе") И (ТипУзла = одТипУзлаXML_КонецЭлемента) Тогда
                Прервать;
            КонецЕсли;
    КонецЕсли;
    	    
КонецЦикла;

 

Когда будете загружать через УниверсальныйОбменДаннымиXML, то обязательно выставите Загрузка данными в режиме обмена в Ложь.

В справочнике Пользователи нужно будет создать дополнительный реквизит "ИдентификаторПользователяЗУП"

 

 

В справочнике Сотрудники нужно будет создать дополнительный реквизит "ТабельныйНомер"

 

has been added to your cart:
Оформление заказа