Переход на 64-битную версию платформы «1С:Предприятие» часто сопровождается не только приростом производительности, но и неожиданными техническими сложностями. Одной из самых распространенных проблем является блокировка входа в систему при наличии активных расширений. Пользователи сталкиваются с ошибкой, сообщающей о некорректном составе ролей: «В конфигурации в свойстве ОсновныеРоли не указаны стандартные роли АдминистраторСистемы и ПолныеПрава или указаны лишние роли». Разберем подробно, почему это происходит и как вернуть работоспособность базы.
Важно понимать, что сама по себе архитектура x64 не является источником ошибки. Проблема кроется в версии платформы (обычно 8.3.15 и выше), на которую переходит пользователь при миграции на x64. В современных выпусках 1С:Предприятие и обновленных редакциях Библиотеки стандартных подсистем (БСП) существенно ужесточились проверки безопасности и состава метаданных.
Когда мы создаем или подключаем расширение, платформа может автоматически создать в нем объект типа Роль (например, с именем Роль1). Коварство ситуации заключается в том, что эта новая роль автоматически прописывается в свойство корня расширения «Основные роли». При запуске системы программный код БСП анализирует суммарный профиль пользователя. Видя наличие «основной роли» в расширении, алгоритмы проверки прав могут «запутаться», решив, что права из расширения перекрывают или конфликтуют с административными правами основной конфигурации. В итоге система безопасности блокирует вход, чтобы предотвратить работу с потенциально некорректными полномочиями.
Рассмотрим подробнее, как это выглядит в конфигураторе. Даже если вы создаете абсолютно пустое расширение, платформа в зависимости от настроек может добавить в него пустую роль. Если в расширении указаны ОсновныеРоли, БСП ожидает, что в этом наборе будут присутствовать все ключевые административные права. Если их там нет (а в пустой роли их быть не может), система выдает отказ.
Многие разработчики пытаются просто удалить эту роль из дерева метаданных расширения, но сталкиваются с системным сообщением: «Объект не может быть удален, так как на него есть ссылки». Это происходит из-за циклической зависимости: роль назначена основной в свойствах расширения, а значит, она используется системой.
Для исправления ситуации нам необходимо выполнить четкую последовательность действий в конфигураторе. Пройдем по шагам этот процесс:
Конфигурация — Расширения конфигурации.Alt + Enter или правую кнопку мыши — Свойства.Общие — Роли внутри расширения.Del. Поскольку мы предварительно убрали ссылку на нее в свойствах корня, платформа позволит удалить объект беспрепятственно.Проанализируем ситуацию, когда расширение не несет в себе никакой логики, связанной с правами доступа. В этом случае идеальным состоянием метаданных будет полное отсутствие каких-либо объектов в ветке Роли и пустое поле Основные роли в свойствах.
Если же ваше расширение все-таки должно добавлять новые права (например, для доступа к новым регистрам или документам, созданным в этом же расширении), используйте следующий алгоритм, чтобы избежать ошибок БСП:
// Пример логики настройки прав в расширении
1. Создаем роль в расширении (например, "ДобавлениеДанныхРасширения").
2. НЕ указываем ее в "Основных ролях" расширения.
3. В режиме "1С:Предприятие" заходим в раздел "Администрирование" -> "Настройки пользователей и прав".
4. Создаем новый "Профиль групп доступа".
5. В списке ролей этого профиля находим нашу роль из расширения и отмечаем ее.
6. Назначаем профиль пользователю.
Такой подход позволяет корректно делегировать права, не нарушая механизмы проверки конфигурации при старте.
Выясним еще одну важную техническую деталь. Ошибка часто проявляется, когда Режим совместимости расширения отличается от режима совместимости основной конфигурации. При переходе на новую платформу (особенно при обновлении с версий типа 8.3.12 до 8.3.20) платформа начинает иначе интерпретировать метаданные расширений.
Рекомендуем проверить, чтобы в свойствах расширения значение Режим совместимости строго соответствовало значению основной конфигурации. Это гарантирует, что механизмы проверки ролей и прав будут работать единообразно для всей системы в целом.
Посмотрим на настройки, которые помогут избежать подобных проблем в будущем. В окне свойств расширения обратите внимание на флаг «Использовать основные роли конфигурации». В большинстве случаев для корректной работы расширений в типовых решениях (ERP, Комплексная автоматизация, Управление торговлей) этот флаг должен быть установлен. Это сигнализирует системе о том, что расширение не пытается подменить собой базовую систему прав, а лишь дополняет её.
Подведем итог: если после обновления платформы до x64 ваша Комплексная автоматизация или ERP отказывается запускаться, не спешите удалять расширения. Скорее всего, дело в «лишней» роли, которую платформа создала автоматически. Очистка свойств Основные роли и физическое удаление ненужных объектов ролей из расширения — это надежный и быстрый способ восстановить работу системы без потери функциональности.