Копирование пользователей в пустую базу с лог...
-

Копирование пользователей в пустую базу с логином, паролем и ролями в 1С: Конвертации данных 2

0
1281
18.08.2025 Илья Рогозников

Содержание:



Иногда возникает необходимость скопировать пользователей в новую пустую базу, либо в другую типовую и простым копированием справочника Пользователи в 1С здесь не обойтись. Необходимо также для каждого пользователя, работающего в базе создать учетную запись для входа в систему.


Рассмотрим, как это сделать в типовых конфигурациях или конфигурациях с подключенной 1С: Библиотека стандартных подсистем. Алгоритм выгрузки и загрузки опишем в правилах Конвертации данных 2. Таким образом при копировании справочника Пользователей в 1С, будут скопированы параметры входа в систему, пароли и роли, которые присвоены каждому пользователю. В данном примере используется 1С: БСП версии 3.1.10.403.    


1. Описание алгоритма выгрузки свойств пользователя в 1С: Конвертации данных 2

 

В 1С: Конвертации данных 2 создадим правило конвертации Пользователи и добавим необходимые свойства, соответствующие объектам источника и приемника, кроме свойства ИдентификаторПользователяИБ, так как оно содержит уникальный идентификатор учетной записи для входа в систему, и у созданной учетной записи в базе приемнике будет свой уникальный идентификатор.


Добавим конвертируемые свойства параметр СведенияОПользователе. В нем, в модуле Перед выгрузкой, с помощью типовой функции системы СвойстваПользователяИБ модуля Пользователи получим структуру свойств пользователя, которая содержит параметры учетной записи. Если у пользователя нет учетной записи для входа, получим Неопределено. Так как данные, переданные в параметр, могут быть только простого типа, то с помощью функции ЗначениеВСтрокуВнутр преобразуем их в строку. Пример кода алгоритма представлен ниже:



Конвертация свойств



Пример кода алгоритма


СвойстваПользователя = Пользователи.СвойстваПользователяИБ(Источник.ИдентификаторПользователяИБ);

Если СвойстваПользователя <> Неопределено Тогда

         Значение = ЗначениеВстрокуВнутр(СвойстваПользователя);

Иначе

         Значение = "";     

КонецЕсли;   


2. Описание алгоритма загрузки свойств пользователей в 1С: Конвертации данных 2

 

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



Пример кода алгоритма


СведенияОПользователеСтрокой = ПараметрыОбъекта["СведенияОПользователе"];

Если ЗначениеЗаполнено(СведенияОПользователеСтрокой) Тогда      

         СведенияОПользователе = ЗначениеИзСтрокиВнутр(СведенияОПользователеСтрокой);

         ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоИмени(СведенияОПользователе.Имя);

         СоздатьПользователя = (ПользовательИБ = Неопределено);

 

         Пользователи.УстановитьСвойстваПользователяИБ(СведенияОПользователе.Имя, СведенияОПользователе, СоздатьПользователя);

         Если СоздатьПользователя

                   и СведенияОПользователе.Свойство("ПользовательИБ") Тогда

                   Объект.ИдентификаторПользователяИБ = СведенияОПользователе.УникальныйИдентификатор;

         КонецЕсли;

КонецЕсли;


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

 

Специалист компании ООО "Кодерлайн"

Илья Рогозников

Обсудить статью в Telegram Задать вопрос автору статьи
Тема вопроса*
Ваше имя*
E-mail или телефон*
Ваш вопрос*
 

Добавить комментарий
Текст сообщения*
Защита от автоматических сообщений
 
Услуги программиста 1С
Получите специалиста
для решения всех задач
в области 1С
Программы 1С
Цены и подробное описание программ 1С:Предприятие 8.