Роли пользователей в 1С после доработок и обновлений: что делать администратору

· 9 мин

Содержание

Обновлять роли в 1С нужно там, где конфигурация хранит права. В типовых БП 3.0, ЗУП 3.1, УТ 11 роли меняют через профили групп доступа в режиме 1С:Предприятие (Администрирование → Настройки пользователей и прав). В самописных и старых конфигурациях без такой подсистемы — в конфигураторе, в карточке пользователя.

Перепутаете место — права «откатятся» сами: выданная в конфигураторе роль в типовой базе пропадёт при ближайшем пересчёте групп доступа. Ниже порядок действий для обоих случаев, для обновления конфигурации, переноса и массовой выдачи.

Когда роли пользователей в 1С требуют обновления

Роль — объект метаданных. В ней записано, что можно делать с документами, справочниками, отчётами. Пользователь получает набор ролей, и платформа проверяет права по этому набору.

Обновлять роли приходится в пяти ситуациях:

  • 🔄 Обновили конфигурацию. В новом релизе появились роли под новые документы или сервисы, а у пользователей их нет.
  • 🛠 Программист добавил свою роль в конфигурацию или расширение. Её надо раздать нужным людям.
  • 👤 Сотрудник сменил должность. Бухгалтер стал главным бухгалтером, кладовщик — менеджером.
  • 🚫 Появилась ошибка «Недостаточно прав» при открытии формы, проведении или печати.
  • 📦 Переносите настройки из тестовой базы в рабочую или в новую базу.

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

Два способа обновить роли в 1С и чем они отличаются

Способ выбирают не по вкусу, а по устройству конфигурации.

СпособГдеКогда применятьРиск
Профили и группы доступа1С:Предприятие, Администрирование → Настройки пользователей и правТиповые конфигурации на БСП: БП 3.0, ЗУП 3.1, УТ 11, КА 2, ERP, УНФМинимальный: изменения видны и журналируются
Карточка пользователя в конфигуратореАдминистрирование → Пользователи, вкладка «Прочие»Самописные конфигурации без подсистемы управления доступомВ типовой базе изменения будут перезаписаны
Программно, через ПользователиИнформационнойБазыВнешняя обработкаМассовая выдача роли в базе без БСПОшибка в коде затронет всех пользователей

Как понять, есть ли в базе подсистема управления доступом? Откройте раздел Администрирование. Если в нём есть пункт «Настройки пользователей и прав», а внутри — «Профили групп доступа», база построена на БСП. Значит, роли меняете только там.

Конфигуратор в типовой базе всё равно пригодится: в нём видно, какие роли реально записаны пользователю. Это удобно для диагностики, но не для правки.

Пошагово: обновить роли пользователя в конфигураторе

Этот путь — для конфигураций без профилей групп доступа. Нужны права администратора информационной базы.

  1. Запустите базу в режиме «Конфигуратор».
  2. Откройте Администрирование → Пользователи.
  3. Двойным щелчком откройте нужного пользователя.
  4. Перейдите на вкладку «Прочие». Слева — список всех ролей конфигурации.
  5. Отметьте нужные роли флажками, лишние снимите.
  6. Нажмите «ОК».
  7. Попросите пользователя закрыть 1С и зайти заново.

Если вы добавили роль программно или через поставку и её нет в списке — значит, конфигурация базы не обновлена. Выполните Конфигурация → Обновить конфигурацию базы данных (F7), затем повторите шаги 2–6.

Монопольный режим для правки списка пользователей не нужен. А вот обновление конфигурации базы данных со структурными изменениями потребует, чтобы остальные пользователи вышли.

Не снимайте у себя роль с правом «Администрирование» (обычно «Полные права» или «Администратор системы»), если вы единственный администратор. Вернуть её будет некому, кроме того, у кого есть доступ к резервной копии.

Пошагово: роли в типовой конфигурации через профили

Здесь логика другая. Роли выдают не человеку, а профилю. Профиль подключают к группе доступа, в группу добавляют пользователей.

  1. Откройте Администрирование → Настройки пользователей и прав → Профили групп доступа.
  2. Найдите профиль, который нужно изменить.
  3. Поставляемый профиль (из коробки) менять нельзя — роли в нём закрыты для правки. Скопируйте его командой копирования и работайте с копией.
  4. В копии на вкладке ролей отметьте нужные роли. Для поиска удобно включить отображение по синонимам и воспользоваться поиском в списке.
  5. Запишите профиль.
  6. Откройте Группы доступа, создайте группу на основе нового профиля и добавьте в неё участников.
  7. Уберите пользователей из старой группы, если права должны сузиться.
  8. Пользователи перезапускают сеанс.

При записи профиля или группы программа сама пересчитывает роли всех участников. Отдельной кнопки «обновить роли» нажимать не надо.

Что происходит с ролями при обновлении конфигурации 1С

Типовое обновление — через Конфигурация → Поддержка → Обновить конфигурацию или файлом .cfu — меняет метаданные, в том числе роли. Что дальше, зависит от типа профиля.

Поставляемые профили обновляются автоматически. При первом запуске после обновления выполняются обработчики обновления, и состав ролей в поставляемых профилях приводится к описанию из нового релиза. Все, кто входит в группы с этими профилями, получают новые роли без вашего участия.

Собственные профили (те самые копии) обновлением не трогаются. Новые роли в них не появятся. Это главная причина жалоб «после обновления пропал доступ к новому разделу».

Порядок после каждого обновления:

  1. Дождитесь, пока завершится обработка данных после обновления. Пока она идёт, часть прав может работать неполно.
  2. Откройте описание изменений релиза. Найдите упоминания новых разделов и сервисов.
  3. Откройте свои профили и сравните их с поставляемым профилем-родителем. Добавьте роли, которые появились в поставляемом.
  4. Проверьте права под тестовым пользователем с этим профилем.

Ведите короткий реестр: какой свой профиль скопирован с какого поставляемого и что в нём изменено. Через три релиза без такого списка уже не вспомнить, зачем снимали ту или иную роль.

Роли в расширениях

Если программист положил новую роль в расширение, она появится в списке ролей профиля после подключения расширения. Расширения поддерживаются с платформы 8.3.6. Загрузка файла .cfe и обновление конфигурации базы данных для расширения — отдельные шаги, второй забывают чаще всего.

После этого роль из расширения добавляют в свой профиль так же, как обычную.

Перенос ролей и настроек прав между базами

«Перенести роли» на практике означает одно из трёх. Разберём каждое отдельно.

Перенос самой роли (метаданных)

Роль — часть конфигурации. Переносят её вместе с конфигурацией:

  • 📂 сохранить конфигурацию в файл .cf и сравнить-объединить с целевой базой, отметив только нужные роли;
  • 🧩 вынести роль в расширение и подключить расширение во второй базе;
  • 🗄 при единой конфигурации — просто обновить целевую базу из хранилища или файла.

При сравнении-объединении проверяйте не только саму роль, но и объекты, на которые она ссылается. Если в целевой базе нет нужного документа, роль в нём не заработает.

Перенос пользователей с их ролями

Список пользователей хранится внутри базы. Выгрузка .dt (Администрирование → Выгрузить информационную базу) переносит его целиком, вместе с паролями и ролями. Но .dt заменяет всю целевую базу — для переноса только пользователей он не подходит.

Перенос профилей групп доступа

В типовых конфигурациях профили и группы доступа — это данные, а не метаданные. Их переносят выгрузкой данных в XML: универсальной обработкой выгрузки-загрузки XML, отметив справочники профилей и групп доступа. Конфигурации обеих баз должны совпадать по релизу, иначе загрузка даст ошибки.

Загрузка XML в рабочую базу перезаписывает объекты с совпадающими ссылками. Перед загрузкой сделайте резервную копию и прогоните её сначала на копии базы.

Скрипт массовой выдачи роли и пакетное обновление

Когда пользователей 80, кликать по каждому долго. Для баз без БСП роли меняют внешней обработкой. Код выполняется на сервере, от пользователя с административными правами.

Пример: всем, у кого есть роль «СтараяРоль», добавить роль «НоваяРоль».

&НаСервере
Процедура ВыдатьРольНаСервере()

	РольИсточник = Метаданные.Роли.Найти("СтараяРоль");
	РольНовая = Метаданные.Роли.Найти("НоваяРоль");
	Если РольИсточник = Неопределено Или РольНовая = Неопределено Тогда
		Сообщить("Роль не найдена в конфигурации");
		Возврат;
	КонецЕсли;

	Счетчик = 0;
	Для Каждого Пользователь Из ПользователиИнформационнойБазы.ПолучитьПользователей() Цикл
		Если Пользователь.Роли.Содержит(РольИсточник)
			И Не Пользователь.Роли.Содержит(РольНовая) Тогда
			Пользователь.Роли.Добавить(РольНовая);
			Пользователь.Записать();
			Счетчик = Счетчик + 1;
		КонецЕсли;
	КонецЦикла;

	Сообщить(СтрШаблон("Роль добавлена пользователям: %1", Формат(Счетчик, "ЧН=0; ЧГ=0")));

КонецПроцедуры

Для удаления роли используйте Пользователь.Роли.Удалить(РольИсточник) в том же цикле. Сначала запустите обработку на копии базы.

В типовой конфигурации этот код бесполезен: подсистема управления доступом пересчитает роли по группам и уберёт выданное вручную. Там массовые изменения делают через профиль — один профиль меняет права всем участникам групп сразу.

Обновление конфигурации и ролей в пакетном режиме

Если роли пришли с новой версией конфигурации, обновление можно запустить из командной строки ночью:

"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" DESIGNER /F "D:\Bases\Trade" /N "Admin" /P "pass" /LoadCfg "D:\upd\trade.cf" /UpdateDBCfg /Out "D:\upd\log.txt"

Для серверной базы вместо /F указывают /S "server\base". Номер платформы в пути замените на свой. Ключ /LoadCfg полностью заменяет конфигурацию из файла — для конфигурации на поддержке с доработками он не подходит, там обновляют через поддержку.

/UpdateDBCfg при структурных изменениях требует монопольного доступа. Запускайте вне рабочего времени и предупредите пользователей: открытые сеансы придётся завершить.

Где менять роли в вашей базе?

Ошибки, из-за которых обновление ролей не срабатывает

Роль выдана в конфигураторе, а через день исчезла. База на БСП. При записи любой группы доступа или профиля роли участников пересчитываются, ручные изменения стираются. Решение — добавить роль в профиль.

После обновления релиза у части пользователей нет нового раздела. Они в группе со своим профилем-копией. Поставляемые профили обновились, копия — нет. Добавьте новые роли в копию.

Роль добавлена, но ошибка «Недостаточно прав» осталась. Возможны три причины:

  • 🔁 пользователь не перезапускал сеанс;
  • 🔒 права ограничены не ролью, а на уровне записей: по организациям, складам, видам документов. Проверьте вкладку ограничений в группе доступа;
  • 🧩 операции нужна ещё одна роль, например на чтение связанного справочника. Сообщение об ошибке обычно называет объект — по нему и ищите роль.

У пользователя «Полные права», но часть команд недоступна. Часто это не роли, а функциональные опции: раздел выключен в настройках программы (Администрирование → Настройки программы → Функциональность в БП 3.0). Ролями это не лечится.

Удалили роль из конфигурации — пользователи не могут войти. Если у пользователя после удаления не осталось ни одной роли, войти в программу он не сможет. Перед удалением роли переназначьте её владельцев.

Можно ли обновить роли, не выгоняя пользователей из базы?
Да. Правка профилей, групп доступа и карточки пользователя в конфигураторе не требует монопольного режима. Новые права вступят в силу у каждого при следующем входе.
Почему у администратора есть «Полные права», но он не видит роль «Администратор системы»?
В типовых конфигурациях это разные роли. «Администратор системы» даёт доступ к администрированию информационной базы, и выдают её через профиль «Администратор», а не вручную.
Как посмотреть, какие роли сейчас у пользователя?
В типовой базе — в карточке пользователя по кнопке прав доступа: там видны группы и итоговые права. В любой базе — в конфигураторе, вкладка «Прочие» карточки пользователя.
Перенесутся ли роли при загрузке .dt в другую базу?
Да, вместе со всей базой: пользователи, пароли, роли и данные. Но загрузка .dt полностью заменяет целевую базу, поэтому для частичного переноса она не подходит.
Нужно ли пересоздавать группы доступа после обновления релиза?
Нет. Группы сохраняются. Проверить нужно только свои профили: в них могут не хватать ролей, появившихся в новом релизе.