Администрирование информационной системы на платформе 1С: Предприятие 8 часто требует глубокого понимания того, как устроено внутреннее хранилище данных. Одним из наиболее частых запросов системных администраторов и разработчиков является вопрос о физическом расположении списка пользователей и их учетных данных. Ответ на этот вопрос не так однозначен, как может показаться на первый взгляд, поскольку архитектура платформы разграничивает понятия "пользователь платформы" и "пользователь информационной базы".
В зависимости от типа подключения и режима работы системы, данные об учетных записях могут находиться в разных местах: от бинарных файлов конфигурации до специализированных системных таблиц в СУБД. Неправильное понимание этой структуры может привести к критическим ошибкам при попытке восстановления доступа или миграции базы. Вы должны четко осознавать разницу между аутентификацией на уровне платформы и авторизацией внутри прикладного решения.
В этой статье мы детально разберем механизмы хранения пользователей для файловых и клиент-серверных вариантов работы. Мы затронем вопросы безопасности, методы прямого редактирования системных таблиц и способы программного управления правами доступа. Понимание этих процессов необходимо для грамотной настройки политик безопасности и аудита действий в системе.
Архитектура хранения пользователей в файловом режиме
При использовании файлового варианта работы информационной базы все данные, включая метаданные, конфигурацию и списки пользователей, хранятся в едином файле с расширением 1CD. Этот файл представляет собой специализированную базу данных формата Firebird (в старых версиях) или собственную реализацию хранилища 1С. Внутри этого контейнера информация о пользователях платформы зашифрована и защищена от прямого чтения стандартными текстовыми редакторами.
Список пользователей в файловом режиме жестко привязан к конкретному файлу базы данных. Если вы скопируете файл 1cv8.1CD на другой компьютер, список пользователей перенесется вместе с данными. Однако стоит помнить, что пароли хранятся в виде хешей, и восстановить исходный текст пароля из файла практически невозможно без использования специализированных утилит брутфорса. Это обеспечивает базовый уровень защиты от несанкционированного доступа к учетным записям администраторов.
Важно отметить, что в файловом режиме нет разделения на пользователей платформы и пользователей прикладного решения в том виде, в котором оно существует в клиент-серверном варианте. Здесь действует единый механизм аутентификации. При попытке входа система обращается к внутренним таблицам файла базы, сверяет хеш введенного пароля с сохраненным значением и предоставляет доступ согласно установленным ролям.
⚠️ Внимание: Прямое редактирование файла
1cv8.1CDсторонними утилитами (например, через IBExpert) может привести к полной потере работоспособности базы данных. Любые манипуляции с внутренней структурой файла должны проводиться только после создания полной резервной копии.
Используйте утилиту "Конфигуратор" для безопасного управления списком пользователей в файловом режиме, вместо попыток прямого вмешательства в структуру файла базы данных.
Механизм обновления списка пользователей в файловом режиме происходит синхронно. Это означает, что если один администратор добавит нового сотрудника, другие пользователи увидят это изменение только после переподключения к базе. В отличие от клиент-серверного варианта, здесь отсутствует механизм мгновенной репликации изменений в списке активных сессий на уровне кластера серверов.
Хранение учетных записей в клиент-серверном варианте (SQL)
В клиент-серверном режиме работы архитектура хранения данных кардинально меняется. Здесь список пользователей платформы хранится не в файле конфигурации, а в системных таблицах сервера баз данных (MS SQL Server, PostgreSQL, Oracle). Это позволяет централизованно управлять доступом и обеспечивает высокую производительность при большом количестве одновременных подключений. Данные разделены на два уровня: пользователи кластера серверов 1С и пользователи конкретной информационной базы.
Основные данные о пользователях в SQL-версии располагаются в таблице _Users. Эта таблица содержит уникальные идентификаторы (UUID), имена пользователей, описания и, что самое важное, хеши паролей. Структура таблицы может незначительно отличаться в зависимости от версии платформы и типа используемой СУБД, но логика остается единой. Прямой доступ к этой таблице возможен только при наличии прав системного администратора СУБД.
Помимо таблицы пользователей, в системе существуют таблицы, отвечающие за роли и права доступа. Связь между пользователями и ролями осуществляется через таблицы связей, что реализует гибкую модель разграничения прав. Вы можете назначать пользователям как предопределенные роли (например, "Полные права"), так и созданные вручную профили доступа. Все изменения в этих таблицах логируются журналом регистрации событий.
Одной из ключевых особенностей клиент-серверного варианта является возможность использования аутентификации средствами ОС Windows. В этом случае пароль пользователя не хранится в базе данных 1С, а проверка подлинности делегируется контроллеру домена. Это значительно повышает безопасность, так как учетные данные не дублируются в системе 1С.
Разграничение понятий: Пользователи платформы и Пользователи ИБ
Частая причина путаницы у начинающих администраторов заключается в смешении двух сущностей: пользователей платформы и пользователей информационной базы. Пользователи платформы — это учетные записи, необходимые для самого факта входа в программу. Они хранятся в системных таблицах, о которых мы говорили выше. Без такой записи вход в систему невозможен, независимо от прав доступа.
С другой стороны, существует справочник Пользователи (или Пользователи системы), который является частью прикладного решения. Этот справочник используется для бизнес-логики: привязки ответственных лиц к документам, настройки персональных параметров интерфейса и отображения в отчетах. Запись в этом справочнике не дает права входа в систему, а лишь связывает учетную запись платформы с конкретным сотрудником компании.
Связь между этими двумя сущностями осуществляется через поле "Пользователь платформы" в карточке элемента справочника. Если такая связь не установлена, сотрудник может числиться в штате, но не сможет авторизоваться в системе. Администратор должен вручную создать соответствие между системным логином и записью в справочнике. Это позволяет гибко управлять доступом при реорганизации штатного расписания.
| Характеристика | Пользователь платформы | Пользователь ИБ (Справочник) |
|---|---|---|
| Место хранения | Системные таблицы (_Users) | Таблица справочника (_Reference154) |
| Назначение | Аутентификация и вход в систему | Бизнес-логика и отчетность |
| Обязательность | Обязателен для входа | Опционален (зависит от конфигурации) |
| Удаление | Через конфигуратор или консоль администрирования | Как обычный элемент справочника |
Удаление записи из справочника "Пользователи" не блокирует вход в систему, если учетная запись платформы остается активной. Для запрета доступа необходимо удалять или блокировать пользователя именно на уровне платформы.
Физическое расположение файлов и путей доступа
Понимание физической структуры каталогов критически важно для резервного копирования и восстановления. В файловом режиме путь к базе данных указывается при добавлении списка баз в окне запуска 1С. Обычно это сетевой путь вида \\Server\BaseFolder или локальный путь C:\Bases\BaseName. Внутри этой папки находится файл 1cv8.1CD, который и является носителем всех данных, включая пользователей.
В клиент-серверном варианте файлы конфигурации и служебные данные кластера хранятся в специальном каталоге на сервере 1С: Предприятие. Путь по умолчанию в Windows обычно выглядит как C:\ProgramData\1C\1Cv8. Здесь располагаются файлы ibcfg.v8i и другие служебные файлы, описывающие параметры подключения к информационным базам. Однако сами пользователи хранятся не здесь, а в СУБД.
Для доступа к списку баз и управлению ими используется файл ibases.v8i, который лежит в профиле пользователя Windows (%APPDATA%\1C\1Cv8). Этот файл содержит список подключенных баз, но не содержит самих данных пользователей. Он лишь указывает системе, куда обращаться за данными. Изменение этого файла позволяет скрыть или добавить базы в список видимых для конкретного пользователя ОС.
⚠️ Внимание: Путь к данным в файле
ibases.v8iможет быть указан как в абсолютном виде, так и через переменные окружения. При переносе профиля пользователя на другой компьютер пути могут стать невалидными, что приведет к ошибке запуска.
Где хранятся временные файлы 1С?
Временные файлы, кэш изображений и блокировки хранятся в папке Temp пользователя Windows или в специальном каталоге, указанном в параметрах запуска ключом /TempFolder. Очистка этой папки при работающей 1С может привести к зависанию клиентских приложений.
Безопасность и шифрование паролей
Вопрос безопасности учетных записей в 1С стоит особенно остро. Пароли пользователей не хранятся в открытом виде. Платформа использует криптографические хеш-функции для преобразования пароля перед сохранением. В разных версиях платформы алгоритмы хеширования могли меняться для повышения стойкости к взлому. Современные версии используют достаточно надежные методы, делающие подбор пароля по хешу вычислительно сложной задачей.
Политика паролей настраивается в параметрах информационной базы. Администратор может задать требования к минимальной длине, сложности (наличие цифр, спецсимволов) и сроку действия пароля. При нарушении этих правил система не позволит пользователю сохранить новый пароль или войти в систему. Эти настройки также хранятся в системных таблицах базы данных.
- 🔒 Хеширование: Пароль превращается в уникальную строку фиксированной длины, которую невозможно расшифровать обратно.
- 🔄 Срок действия: Система может принудительно требовать смену пароля каждые 30-90 дней в зависимости от настроек безопасности.
- 🚫 Блокировка: При многократном вводе неверного пароля учетная запись может быть временно заблокирована для предотвращения брутфорс-атак.
Для повышения уровня защиты рекомендуется использовать аутентификацию Windows. В этом случае 1С доверяет системе управления доменом Active Directory. Это позволяет использовать единый пароль для входа в ОС и в 1С, а также централизованно управлять блокировками уволенных сотрудников. Отключение учетной записи в домене мгновенно закрывает доступ ко всем связанным ресурсам.
☑️ Аудит безопасности пользователей
Программное управление списком пользователей
Для автоматизации процессов администрирования часто возникает необходимость управления пользователями через код. Платформа 1С предоставляет объекты метаданных и методы глобального контекста для работы с пользователями. Основной объект — это ПользователиИнформационнойБазы. Через него можно получать список всех учетных записей, создавать новые, изменять параметры и удалять их.
Пример кода для получения списка пользователей демонстрирует простоту работы с этим объектом. Вы можете перебрать коллекцию пользователей и вывести их имена в отчет или журнал. Однако для изменения паролей или прав доступа требуются дополнительные права и использование специфических методов, таких как УстановитьПароль. Эти операции должны выполняться с осторожностью, чтобы не нарушить целостность системы безопасности.
Пользователи = ПользователиИнформационнойБазы.ПолучитьСписокПользователей();
Для Каждого Пользователь Из Пользователи Цикл
Сообщить("Пользователь: " + Пользователь.Имя + ", Полный доступ: " + Пользователь.ПолныеПрава);
КонецЦикла;
При программном создании пользователей важно сразу назначать им необходимые роли. Пользователь, созданный без прав, не сможет выполнить ни одного действия в системе, кроме входа. Также следует учитывать лимиты на количество пользователей, если вы используете лицензирование по количеству рабочих мест. Превышение лимита приведет к ошибкам подключения новых сотрудников.
⚠️ Внимание: Изменение списка пользователей программно в момент активной работы других пользователей может привести к кратковременным блокировкам или ошибкам сессий. Рекомендуется проводить массовые изменения в нерабочее время.
При массовом импорте пользователей из внешней системы (например, из кадрового учета) всегда выполняйте сверку по уникальному идентификатору (UUID или табельному номеру), а не только по ФИО, чтобы избежать дублирования записей.
Часто задаваемые вопросы (FAQ)
Можно ли узнать пароль пользователя, посмотрев файл базы данных?
Нет, это невозможно. Пароли в 1С хранятся в виде криптографических хешей. Обратное восстановление исходного текста пароля из хеша математически невозможно. Можно лишь попытаться подобрать пароль методом перебора (брутфорс), сравнивая хеши от предполагаемых паролей с сохраненным значением.
Где находится файл со списком всех подключенных баз на компьютере?
Список баз, отображаемый в окне запуска 1С, хранится в файле ibases.v8i. В операционной системе Windows 10/11 этот файл обычно расположен по пути C:\Users\ИмяПользователя\AppData\Roaming\1C\1Cv8\ibases.v8i. Редактирование этого файла позволяет добавлять или скрывать базы из списка.
Как удалить пользователя, который заблокирован и не дает зайти в конфигуратор?
В файловом режиме можно переименовать файл 1cv8.1CD в 1cv8.1CD.bak, затем создать пустую базу с тем же именем, зайти в конфигуратор под администратором и удалить проблемного пользователя из списка. После этого файлы можно вернуть обратно. В клиент-серверном варианте проще удалить запись напрямую из таблицы _Users через SQL-запрос, зная UUID пользователя.
В чем разница между пользователем "Администратор" и пользователем с полными правами?
Пользователь "Администратор" (имя по умолчанию) имеет право изменять конфигурацию базы данных, включать и выключать режим предприятия. Пользователь с полными правами в режиме 1С: Предприятие имеет доступ ко всем данным и функциям прикладного решения, но не может изменять структуру метаданных (конфигурацию), если у него нет соответствующей роли на изменение конфигурации.
Можно ли перенести пользователей из одной базы 1С в другую?
Да, это возможно. В конфигураторе существует функция "Сохранить пользователей в файл..." и "Загрузить пользователей из файла...". Это позволяет экспортировать список учетных записей и их права доступа в XML-файл, а затем импортировать их в другую информационную базу. Пароли при этом не переносятся, пользователям придется задать новые пароли при первом входе.