Загрузка пользователей из Excel¶
Формирование Excel-файла для импорта¶
Минимальный набор полей:
| Поле | Соответствующее поле таблицы Users | Обязательность | Формат |
|---|---|---|---|
| Логин | Nick | да | Произвольная строка (желательно латиница) |
| Отображаемое в системе имя | DispayName | да | Произвольная строка |
| Полное имя (ФИО) | FullName | да | Произвольная строка |
| Фамилия | LastName | да | Произвольная строка |
| Имя | FirstName | да | Произвольная строка |
| Телефон | Phone | да | 7хххххххххх |
| Отчество | MiddleName | нет | Произвольная строка |
| Дата рождения | BirthDate | в зависимости от настроек | 2013-10-01 00:00:00.000 |
| Почта | в зависимости от настроек | Произвольная строка |
Название полей для удобства лучше вводить на латинице.
Список импортируемых данных можно расширить. Полный список данных для импорта представлен в таблице 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").