Перейти к содержанию

Загрузка пользователей из Excel

Формирование Excel-файла для импорта

Минимальный набор полей:

Поле Соответствующее поле таблицы Users Обязательность Формат
Логин Nick да Произвольная строка (желательно латиница)
Отображаемое в системе имя DispayName да Произвольная строка
Полное имя (ФИО) FullName да Произвольная строка
Фамилия LastName да Произвольная строка
Имя FirstName да Произвольная строка
Телефон Phone да 7хххххххххх
Отчество MiddleName нет Произвольная строка
Дата рождения BirthDate в зависимости от настроек 2013-10-01 00:00:00.000
Почта Email в зависимости от настроек Произвольная строка

Название полей для удобства лучше вводить на латинице.

Список импортируемых данных можно расширить. Полный список данных для импорта представлен в таблице Users.

Импорт из Excel

1. Контекстное меню БД -- Tasks -- Import Data.

2. Data Source -- Microsoft Excel, укажите путь к Excel-файлу и версию Excel:

3. Destination -- Microsoft OLE DB Provider for SQL Server. Укажите название сервера, если оно отличается от текущего, введите данные для аутентификации и выберите БД, в которую требуется импортировать данные:

4. Нажмите кнопку Next:

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

6. Нажмите кнопку Next:

7. Нажмите кнопку Finish. В результате должно появиться такое окно с информацией о выполненном импорте. После этого окно можно закрыть.

Внесение пользователей в систему

1. Следующий запрос создаст пользователей в системе "Первая Форма":

Insert into Users (<перечень полей из таблицы Users через запятую>)
select <перечень полей из таблицы UsersImport через запятую> from UsersImport

где Users -- таблица, в которую вносятся данные, а UsersImport -- импортированная из Excel таблица

Проверить, как внеслись данные в Users, можно запросом:

Select * from Users

2. Создание временного пароля для первого входа пользователей в систему (для MSSQL)

Update Users set PasswordHash=HASHBYTES('md5',N'Temp_Password'), ForceChangePassword=1
where UserID = <ID первого импортированного пользователя>

Установка пароля для пользователя в PostgreSQL:

Генерация хэша пароля. Поддерживает только ascii символы:

select concat('\x',md5 (string_agg(spl.c::bytea || '\x00'::bytea, null::bytea order by spl.orderno)::bytea))
from regexp_split_to_table('Пароль', '') with ordinality spl(c, orderno);

Подставьте полученный хэш в запрос на обновление. Укажите корректный UserID целевого пользователя:

update Users set PasswordSalt = NULL, PasswordHash = '\xe3d22996869f73054d4bf400d85bfe0d'::bytea
where UserID = <ID пользователя>

3. Добавление пользователей в группу

insert into UserGroups (UserID,GroupID)
select userid,<id_группы> from Users where UserID>=<ID первого импортированного пользователя>
insert into UserGroupsActual (UserID,GroupID)
select userid,<id_группы> from Users where UserID>=<ID первого импортированного пользователя>

где <id_группы> — ID группы в системе, в которую будут включены пользователи.

4. Корректное отображение имен в системе

На данном этапе все функциональные данные внесены, но имена пользователей в интерфейсе отображаются как "Не указано". Чтобы исправить это, нужно внести данные в таблицу UserNames, хранящую информацию об именах в различных их представлениях.

Сделайте резервную копию базы.

Для простоты удалите все данные из таблицы UserNames (все данные в этой таблице берутся из Users, поэтому потерять их совсем невозможно):

DELETE FROM Usernames

Выполните скрипт curr.sql, подходящий сборке системы. Как правило, этот файл находится в папке приложения (по умолчанию путь "C:\inetpub\wwwroot\1Forma_nakat").