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

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

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

Архитектура хранения прав в файловом и клиент-серверном варианте

Механизм хранения прав доступа кардинально отличается в зависимости от типа базы данных. В файловом варианте вся информация, включая метаданные, справочники и системные таблицы пользователей, содержится в одном файле с расширением 1Cv8.1CD. Этот файл представляет собой специализированную базу данных формата , которая не может быть открыта сторонними утилитами напрямую без использования платформы.

При работе в режиме клиент-сервер (SQL) ситуация усложняется. Сами определения ролей, их иерархия и состав прав хранятся в объектах метаданных конфигурации. Однако привязка конкретных пользователей к этим ролям и профили групп доступа сохраняются в системных таблах информационной базы. Для Microsoft SQL Server или PostgreSQL это отдельные таблицы внутри схемы базы данных 1С.

Важно отметить, что даже при использовании SQL-сервера, файл конфигурации (1Cv8.cf или 1Cv8.cfu) содержит шаблонное описание всех доступных в системе ролей. При обновлении конфигурации эти данные синхронизируются с сервером баз данных. Изменение прав «на лету» через интерфейс 1С сразу же записывается в соответствующие SQL-таблицы, минуя файл конфигурации.

⚠️ Внимание: Прямое редактирование файла 1Cv8.1CD или системных таблиц SQL сторонними инструментами (Hex-редакторы, SQL Management Studio) без остановки службы 1С может привести к полной потере работоспособности базы и нарушению целостности данных.

💡

Всегда создавайте резервную копию базы данных (файла или дампа SQL) перед любыми манипуляциями с таблицами пользователей или правами доступа.

Таблица v8users и системные объекты базы данных

Центральным элементом хранения информации о пользователях и их правах в клиент-серверном варианте является таблица _v8users (или v8users в зависимости от версии платформы и настроек префиксов). Именно здесь resides основная информация о зарегистрированных в системе сотрудниках, их идентификаторах и принадлежности к профилям групп доступа.

Структура этой таблицы включает поля для хранения уникального идентификатора пользователя (UserID), его имени, состояния блокировки и ссылки на профиль группы доступа. Сами профили групп доступа, которые являются агрегаторами ролей, хранятся в связанной таблице, часто имеющей имя _v8userset или аналогичное, в зависимости от конкретнй реализации платформы 1С:Предприятие 8.3.

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

Для анализа текущего состояния прав администраторы часто используют SQL-запросы. Ниже приведен пример структуры данных, которую можно встретить при выборке из системных таблиц:

Поле таблицы Тип данных Описание содержимого
UserID UniqueIdentifier Уникальный GUID пользователя в системе
DisplayName NVarChar Отображаемое имя пользователя (ФИО)
SetID UniqueIdentifier Ссылка на профиль группы доступа (ролевой набор)
Locked Bit Флаг блокировки учетной записи (0 - активен, 1 - заблокирован)
Технические детали префиксов таблиц

В некоторых конфигурациях, особенно с включенной поддержкой нескольких информационных баз на одном SQL-сервере, к именам таблиц добавляются префиксы. Например, таблица пользователей может называться T123_v8users, где 123 — идентификатор информационной базы в кластере серверов 1С.

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

В современной платформе 1С понятие «роль» часто подменяется или дополняется понятием «профиль групп доступа». Это сделано для упрощения администрирования: вместо назначения десятков отдельных ролей каждому пользователю, администратор создает профиль, включающий в себя необходимый набор прав, и назначает этот профиль юзеру.

Где же физически хранится связь между профилем и конкретными ролями? Эта информация содержится в объектах метаданных конфигурации. При сохранении конфигурации в файл 1Cv8.cf, структура профилей сериализуется в XML-подобном формате внутри бинарного контейнера. В базе данных эта связь раскладывается по таблицам справочников ролей.

Иерархия прав строится по принципу наследования. Если профиль «Бухгалтер» включает в себя роль «ЧтениеДокументов», то все пользователи с этим профилем автоматически получают соответствующие права. Изменение состава профиля мгновенно влияет на всех назначенных пользователей, так как система при каждом запуске или запросе прав обращается к актуальному состоянию профиля в базе.

  • 🔐 Базовые роли: Предопределенные роли, такие как «Полные права» или «Администратор», имеют фиксированные идентификаторы и хранятся в ядре платформы.
  • 👥 Пользовательские роли: Создаются разработчиками в конфигураторе и хранятся в дереве метаданных конфигурации.
  • 📂 Профили групп: Агрегируют роли и хранятся как отдельные объекты метаданных, связанные с таблицей пользователей через ID.
📊 Как вы предпочитаете управлять правами в 1С?
Назначать роли каждому пользователю отдельно
Использовать профили групп доступа
Давать всем полные права
Использовать внешние системы авторизации (LDAP)

Анализ прав доступа через Конфигуратор и Предприятие

Для просмотра и редактивания того, где и как хранятся роли, основным инструментом является режим Конфигуратор. В дереве метаданных существует ветка «Роли», где отображаются все объекты прав доступа. Однако визуальное отображение — это лишь интерфейс к данным, физически лежащим в базе.

Чтобы увидеть реальное назначение прав, необходимо перейти в меню Администрирование → Пользователи. В открывшемся окне отображается список пользователей, загруженный из таблицы v8users. Двойной клик на пользователе открывает форму редактирования, где видно, какие профили групп доступа ему назначены.

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

При изменении прав в интерфейсе 1С, платформа выполняет SQL-запросы типа UPDATE или INSERT в системные таблицы. Это означает, что для вступления изменений в силу для других пользователей не требуется перезапуск сервера 1С, достаточно, чтобы они переподключились к базе или обновили сеанс.

⚠️ Внимание: Если вы изменили состав роли в конфигураторе и обновили конфигурацию базы данных, изменения применятся только после успешного завершения обновления базы данных. До этого момента пользователи будут работать со старой версией прав.

💡

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

Внешние системы аутентификации и хранение ролей

В корпоративном секторе часто используется аутентификация через Windows или LDAP (Active Directory). В этом сценарии механизм хранения ролей в 1С имеет свои особенности. Сама 1С не хранит пароли пользователей, а доверяет внешней системе. Однако привязка учетной записи Windows к пользователю 1С и его ролям хранится внутри базы 1С.

В таблице пользователей в поле, отвечающем за тип аутентификации, устанавливается флаг использования ОС. Связь осуществляется через имя пользователя Windows (Domain\User). При входе в систему 1С отправляет запрос к контроллеру домена. Если аутентификация успешна, 1С берет имя пользователя, находит соответствующую запись в таблице v8users и загружает назначенные ей роли.

Это создает интересный нюанс: роли хранятся в 1С, а факт подтверждения личности — во внешней системе. Если удалить пользователя из Active Directory, он не сможет войти в 1С, но его запись с назначенными ролями останется в таблице v8users до момента ручной чистки администратором.

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

  • 🌐 Веб-сервисы: При доступе через HTTP-сервисы права могут определяться токенами, но маппинг на внутренние роли 1С все равно происходит через таблицу пользователей.
  • 🔑 Электронные подписи: Использование ЭП для входа требует наличия сертификата, но права доступа после входа определяются стандартными ролями 1С.
  • 📱 Мобильный клиент: Использует те же самые таблицы прав, что и толстый клиент, обеспечивая единую политику безопасности.

☑️ Проверка настройки прав доступа

Выполнено: 0 / 4

Резервное копирование и восстановление прав

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

При выгрузке конфигурации в файл 1Cv8.cf сохраняются только определения ролей и профилей (структура), но не список пользователей и их индивидуальные назначения. Пользователи хранятся исключительно в базе данных. Поэтому для полного переноса прав необходимо выгружать и конфигурацию, и саму базу данных (или делать dump SQL).

Существует возможность выгрузки списка пользователей и прав в отдельный файл через обработку «Выгрузка пользователей в файлы» (доступна в некоторых конфигурациях или как внешняя обработка). Это позволяет быстро восстановить права на новой базе, просто загрузив этот файл, не создавая пользователей вручную.

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

⚠️ Внимание: При переносе базы на сервер с другой версией платформы 1С обязательно проверьте совместимость версий. Старые форматы хранения системных таблиц могут не читаться новыми версиями платформы без процедуры конвертации.

Для программистов и продвинутых администраторов полезно знать, что доступ к метаданным о ролях возможен и через объект глобального контекста МенеджерПользователей. С его помощью можно программно получать списки ролей, создавать пользователей и назначать им права, что удобно для автоматизации процессов онбординга новых сотрудников.


// Пример получения списка всех ролей в базе

СписокРолей = МенеджерПользователей.ПолучитьСписокРолей();

Для Каждого Роль Из СписокРолей Цикл

Сообщить(Роль.Имя);

КонецЦикла;

Скрытые системные роли

В системе существуют предопределенные роли, которые не отображаются в обычном списке, но необходимы для работы платформы. Например, роль 'SystemUser' или технические роли для работы фоновых заданий. Их удаление или модификация может привести к нестабильной работе системы.

Часто задаваемые вопросы (FAQ)

Можно ли увидеть права пользователя, просто открыв файл базы 1С в блокноте?

Нет, файл 1Cv8.1CD имеет бинарный формат и не предназначен для чтения текстовыми редакторами. Вы увидите только нечитаемый набор символов. Для просмотра прав необходимо использовать платформу 1С:Предприятие в режиме конфигуратора или подключиться к SQL-серверу, на котором размещена база, используя специализированные SQL-клиенты.

Где хранятся пароли пользователей 1С?

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

Что произойдет с правами, если я удалю роль из конфигурации?

Если вы удалите роль из конфигурации и обновите базу данных, все пользователи, которым была назначена эта роль (напрямую или через профиль), потеряют соответствующие права. Ссылки на удаленную роль в таблице пользователей станут невалидными. Рекомендуется предварительно найти всех пользователей с этой ролью и назначить им альтернативные права.

Как найти, кому назначены полные права?

Самый быстрый способ — открыть список пользователей (Администрирование → Пользователи) и отсортировать их по колонке «Профиль групп доступа». Ищите профиль с названием «Полные права» или аналогичным. Также можно сформировать отчет «Анализ прав доступа» и отфильтровать пользователей по праву «Полные права».

Влияет ли удаление пользователя из 1С на его учетную запись в Windows?

Нет, это независимые системы. Удаление пользователя из списка 1С:Предприятие удаляет только запись в таблице v8users и сбрасывает его права доступа к базе 1С. Учетная запись в Active Directory или локальная учетная запись Windows остается неизменной и активной.