Как исправить ошибку «Роль "Полные права" содержит недоступное право Администрирование» при обновлении 1С:УНФ

Программист 1С v8.3 (Управляемые формы) 1С:Управление нашей фирмой IT и автоматизация бизнеса
← На главную

Приветствуем, коллеги! При обновлении типовых конфигураций семейства «1С:Предприятие 8», построенных на базе Библиотеки стандартных подсистем (БСП), разработчики и системные администраторы часто сталкиваются с крайне неприятной системной ошибкой. Проблема блокирует обновление информационной базы и переводит систему в аварийный режим. Особенно часто этот сбой проявляется при обновлении конфигурации «1С:Управление нашей фирмой» (УНФ).

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

Симптомы проблемы и текст ошибок

Обычно ситуация развивается по следующему сценарию. При запуске обновления конфигурации базы данных (или при первом запуске предприятия после применения нового релиза в Конфигураторе) система выдает ошибку следующего вида:


{Константа.ПараметрыРаботыПользователей.МодульМенеджераЗначения(186)}: Ошибка в процедуре ПриОпределенииНазначенияРолей общего модуля ПользователиПереопределяемый.
При проверке ролей для пользователей найдены ошибки:
Роль "Полные права" содержит недоступное право Администрирование.
Роль "Полные права" содержит недоступное право АдминистрированиеРасширенийКонфигурации.
Роль "Полные права" содержит недоступное право ОбновлениеКонфигурацииБазыДанных.
ВызватьИсключение ЗаголовокОшибки + ТекстОшибки;

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


{ОбщийМодуль.УправлениеДоступомСлужебный.Модуль(4116)}: Ошибка при вызове метода контекста (Записать)
ГруппаДоступаОбъект.Записать();
по причине:
Ошибка при выполнении обработчика - 'ПриЗаписи'
по причине:
{ОбщийМодуль.ПользователиСлужебный.Модуль(691)}: Ошибка при вызове метода контекста (Записать)
ПользовательИБ.Записать();
по причине:
После исполнения в списке не осталось бы ни одного пользователя с административными правами!

Давайте разберемся, почему возникают эти ошибки и как работает этот механизм изнутри.

Выясняем причину: архитектурные изменения БСП

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

В современных релизах концепция безопасности была кардинально переработана:

  1. Разделение полномочий: Роль ПолныеПрава теперь отвечает исключительно за полный доступ к бизнес-данным (прикладным объектам). Она больше не должна давать возможность управлять самой платформой и структурой базы данных. Это сделано в том числе для поддержки работы в модели сервиса (SaaS / 1С:Fresh), где администрированием инфраструктуры занимается провайдер, а пользователи внутри базы обладают лишь прикладными правами.
  2. Выделение роли администратора: Для технических действий (таких как обновление ИБ, работа с расширениями, монопольный доступ) теперь используется специализированная роль — АдминистраторСистемы.

Когда мы обновляем конфигурацию УНФ, процедура ПриОпределенииНазначенияРолей в общем модуле ПользователиПереопределяемый проверяет метаданные ролей на соответствие новым стандартам безопасности. Если в роли ПолныеПрава (которая может быть изменена вручную или заблокирована в кастомизированной конфигурации) остаются включенными права Администрирование, АдминистрированиеРасширенийКонфигурации или ОбновлениеКонфигурацииБазыДанных, система аварийно завершает работу.

При этом, когда мы пытаемся просто отключить эти права у роли в Конфигураторе, срабатывает защитный триггер самой платформы «1С». Дело в том, что у текущего пользователя ИБ в списке ролей назначена только роль ПолныеПрава. Снимая административные галки с этой роли, мы фактически лишаем единственного активного пользователя прав на администрирование системы. Платформа блокирует эту запись транзакции, выдавая ошибку: «После исполнения в списке не осталось бы ни одного пользователя с административными правами!».

Разбираем решение по шагам

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

Шаг 1. Назначение дополнительных ролей пользователю

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

  1. Откройте базу данных в режиме Конфигуратора.
  2. Перейдите в главное меню: Администрирование — Пользователи.
  3. Найдите в списке свою учетную запись (под которой вы выполняете обновление) и откройте ее свойства double-click'ом.
  4. Перейдите на вкладку Прочие.
  5. В списке доступных ролей найдите роль Администратор системы (имя в метаданных: АдминистраторСистемы) и установите напротив нее флажок. При этом флажок напротив роли Полные права также должен оставаться активным.
  6. Нажмите кнопку ОК для сохранения настроек пользователя ИБ.

Шаг 2. Приведение роли «Полные права» к типовому виду

Теперь, когда у нашего пользователя есть независимая системная роль администратора, мы можем безопасно убрать лишние права из прикладной роли.

Если конфигурация находится на поддержке с возможностью изменения, выполните следующие действия:

  1. В дереве метаданных конфигурации раскройте ветку Общие — Роли.
  2. Найдите роль Полные права (ПолныеПрава) и откройте ее свойства.
  3. На вкладке «Права» снимите флажки со следующих системных разрешений:
    • Администрирование
    • Администрирование расширений конфигурации
    • Обновление конфигурации базы данных
  4. Сохраните изменения в конфигурации (нажатием клавиши F7 или через меню Конфигурация — Обновить конфигурацию базы данных).

Если ваша конфигурация полностью типовая, данные роли должны обновиться автоматически при накатывании файла обновления (CF/CFU). Проблема с зависанием ролей в данном случае чаще всего указывает на то, что конфигурация ранее была снята с поддержки или изменения ролей были заблокированы локально.

Шаг 3. Анализ и обновление платформы «1С:Предприятие»

Обратите особое внимание на версию используемой платформы 1С. В обсуждении на форуме упоминается версия платформы 8.3.8.2322. Новые релизы УНФ и БСП критически зависимы от функционала платформы. Использование устаревших версий (ниже рекомендуемых для конкретного релиза УНФ, например, ниже 8.3.15 или 8.3.20) гарантированно приводит к сбоям при обновлении служебных данных и справочников БСП.

Перед запуском обновления обязательно скачайте и установите актуальный релиз платформы, соответствующий требованиям вашей новой версии УНФ.

Шаг 4. Принудительный запуск обновления вспомогательных данных

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


"C:\Program Files\1cv8\8.3.XX.XX\bin\1cv8.exe" ENTERPRISE /F "ПутьКВашейБазе" /C ЗапуститьОбновлениеИнформационнойБазы

Этот параметр заставит систему принудительно запустить фоновые процедуры обновления метаданных БСП, пересчитать справочник ИдентификаторыОбъектовМетаданных и корректно инициализировать новые группы доступа без вылета в критические ошибки.

Шаг 5. Очистка кэша конфигурации (при необходимости)

Если после выполнения всех шагов система продолжает выдавать старую ошибку, это свидетельствует о застревании старых метаданных в локальном кэше платформы. Очистите кэш вручную, удалив базу из списка запуска 1С и добавив ее заново, либо воспользовавшись специализированными утилитами или очисткой каталогов %userprofile%\AppData\Local\1C\1cv8 и %userprofile%\AppData\Roaming\1C\1cv8.

Соблюдение этих простых правил разделения ролей позволит вам быстро и безболезненно обновлять любые современные конфигурации на платформе «1С:Предприятие 8.3».

← На главную