При выполнении обновления конфигурации базы данных (нажатии «синей бочки») специалисты часто сталкиваются с ситуацией, когда кнопка «Принять» остается неактивной, а в окне сообщений выводится предупреждение: «После исполнения в списке не осталось бы ни одного пользователя с административными правами». Эта ошибка является защитным механизмом платформы «1С:Предприятие 8.3», который предотвращает полную потерю доступа к управлению списком пользователей.
Особенно часто это происходит при попытке «перескочить» между глобально разными редакциями программ, например, при переходе с «1С:Комплексная автоматизация 1.1» на «1С:Комплексная автоматизация 2.4». Разберем подробно причины возникновения этой коллизии и способы её устранения.
Рассмотрим ситуацию, описанную в теме. Пользователь пытается обновить КА 1.1 на КА 2.4 через обычное «Обновление конфигурации». Важно понимать, что редакция 1.1 построена на обычных формах, а 2.4 — на управляемых формах и совершенно ином ядре (архитектура ERP). Это фактически две разные программы.
Проанализируем, что происходит в этот момент внутри системы. При «накатывании» конфигурации 2.4 поверх 1.1 структура метаданных (таблиц) меняется радикально. Старые роли (например, ПолныеПрава) могут иметь те же имена, но их внутренние идентификаторы (UUID) в новой конфигурации другие. Платформа видит, что у текущих пользователей назначены роли, которые «исчезают» или заменяются новыми, в которых право «Администрирование» не проставлено. В итоге система считает, что после обновления в базе не останется никого, кто сможет зайти в Конфигуратор или управлять пользователями.
Многие разработчики ошибочно полагают, что наличия роли ПолныеПрава достаточно. Однако для успешного принятия изменений конфигурации платформе требуется наличие хотя бы одного пользователя, у которого в свойствах роли в окне «Права» установлена галочка на специальном праве «Администрирование».
В современных конфигурациях на базе БСП (Библиотека стандартных подсистем), таких как КА 2.4, ERP 2.5 или УТ 11, это право часто вынесено в отдельную системную роль. Рассмотрим типичные названия таких ролей:
АдминистрированиеСистемыАдминистраторСистемыСистемныйАдминистраторЕсли вы просто создаете нового пользователя и даете ему «Полные права», кнопка «Принять» может остаться серой, если в метаданных новой версии конфигурации у роли ПолныеПрава снят флаг администрирования на уровне платформы.
Попробуем метод создания «технического» пользователя. Это позволит обмануть систему контроля прав на этапе реструктуризации. Выполним следующие шаги:
Admin_Update.ПолныеПрава или АдминистраторСистемы.Роли, открыть её свойства и убедиться, что в колонке «Права» стоит флаг Администрирование.После этого попробуем снова вызвать обновление конфигурации базы данных. Если роли были выбраны верно, кнопка «Принять» станет активной.
Если манипуляции с ролями не помогают из-за сильного расхождения метаданных, можно прибегнуть к радикальному, но эффективному методу. Выясним, как это работает:
Когда в списке пользователей Конфигуратора совсем нет записей, платформа отключает проверку административных прав при обновлении. Она предполагает, что база находится в «свободном» режиме, и позволит любому пользователю войти в систему после обновления, чтобы создать первого администратора.
Внимание: Этот метод следует выполнять строго на копии базы данных!
В современных конфигурациях существует жесткая связь между пользователем информационной базы (на уровне платформы) и элементом справочника Пользователи. При переходе с версии 1.1 на 2.4 структура этого справочника меняется полностью.
Рассмотрим подробнее: иногда платформа блокирует обновление, так как видит «битую» ссылку или несоответствие уникальных идентификаторов. В этом случае помогает временное отключение связи пользователя с данными (очистка поля «Имя пользователя» в справочнике или удаление связи в Конфигураторе).
Иногда ошибка является «фантомной» и вызвана некорректным состоянием кэша или таблиц регистрации конфигурации. Проанализируем технические шаги для устранения таких сбоев:
/ClearCache или вручную удалить содержимое папок в %AppData%\1C\1cv8\..cf, затем загрузить её обратно через «Сравнение и объединение», вручную отметив все роли для обновления.Как справедливо заметили участники обсуждения в Сообщениях 2 и 4, обновление КА 1.1 до КА 2.4 методом «наката» конфигурации — это путь, полный ошибок. Штатный переход на новую редакцию подразумевает перенос данных:
\Convert).Если вы все же решили идти по пути обновления через Конфигуратор (например, для специфических целей разработки), обязательно убедитесь, что в списке ролей новой конфигурации проставлено право Администрирование хотя бы для одного объекта типа Роль, и эта роль назначена активному пользователю.
Подведем итог: ошибка решается либо точечным назначением системной роли с правом Администрирование, либо временным удалением списка пользователей для прохождения этапа реструктуризации таблиц БД.