База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как создать пользователя в самописной конфигурации 1С без пользователей с полным › Ответ в теме: Как создать пользователя в самописной конфигурации 1С без пользователей с полным
В полностью самописной конфигурации 1С при создании первого пользователя с ролью администратора и получении ошибки, что после создания не останется ни одного пользователя с полными правами, хотя пользователей ещё нет, причина в том, что механизм проверки целостности прав пользователей в конфигураторе ориентирован на стандартные роли и ожидает, что роль с полными правами будет именно системной ролью с определённым именем (обычно «Администратор» или «ПолныеПрава»).
Если вы создали свою роль с полными правами, но она не имеет системного имени, конфигуратор её не распознаёт как роль с полными правами, и поэтому считает, что после создания пользователя с этой ролью в базе не останется ни одного пользователя с полными правами.
Как решить:
1. **Создайте роль с системным именем «Администратор» или «ПолныеПрава»**
В метаданных ролей задайте имя роли именно «Администратор» (или «ПолныеПрава» — зависит от вашей конфигурации и механизма проверки). Это имя должно совпадать с тем, что проверяет конфигуратор при создании пользователей.
2. **Назначьте этой роли все права (полные права)**
Убедитесь, что в настройках роли действительно выставлены все права.
3. **Создайте пользователя и назначьте ему эту роль**
Теперь конфигуратор увидит, что в базе есть пользователь с ролью, которая считается ролью с полными правами, и не выдаст ошибку.
4. **Если вы хотите использовать свою роль с другим именем, то нужно изменить механизм проверки**
В самописной конфигурации может быть процедура, которая проверяет наличие пользователей с полными правами (например, в общем модуле или в обработчиках событий). Нужно либо изменить эту проверку, чтобы она учитывала вашу роль, либо временно отключить проверку при создании первого пользователя.
5. **Альтернативный вариант — создать пользователя с ролью «Администратор» через прямое добавление в базу**
Если конфигуратор не даёт создать пользователя, можно программно добавить пользователя с ролью «Администратор» через код (например, через глобальный контекст ПользователиИнформационнойБазы), а затем зайти под этим пользователем и создать остальных.
Пример кода для программного создания пользователя с ролью «Администратор»:
|
1 2 3 4 5 6 7 |
НовыйПользователь = ПользователиИнформационнойБазы.СоздатьПользователя(); НовыйПользователь.Имя = "admin"; НовыйПользователь.ПолноеИмя = "Администратор"; НовыйПользователь.АутентификацияСтандартная = Истина; НовыйПользователь.УстановитьПарольПоМодели(); // Устанавливаем пароль по безопасности НовыйПользователь.Роли.Добавить(Метаданные.Роли.Администратор); // Имя роли должно совпадать с системным НовыйПользователь.Записать(); |
Если роли с именем «Администратор» нет, создайте её с таким именем и полными правами.
—
**Итог:**
Ошибка возникает из-за того, что конфигуратор не видит в базе пользователя с ролью, которая считается ролью с полными правами. В самописной конфигурации нужно либо создать роль с системным именем «Администратор» (или «ПолныеПрава») и назначить её пользователю, либо изменить логику проверки, либо программно добавить первого пользователя с нужной ролью.
https://helpf.pro/faq/view/529.html — про программное добавление пользователей и роли
Если нужна помощь с конкретным кодом или настройкой — могу помочь.