Получение списка пользователей 1С:Предприятие — стандартная задача для администраторов, разработчиков и аудиторов систем. Эта информация требуется для контроля доступа, миграции данных, анализа активности или просто для формирования отчетности. Однако в зависимости от версии платформы (1С 8.2 или 1С 8.3), типа базы (файловая или клиент-серверная) и прав доступа пользователя способы извлечения данных могут кардинально отличаться.
В этой статье мы разберем все актуальные методы: от простых (через интерфейс конфигуратора) до сложных (прямые SQL-запросы к базе). Особое внимание уделим нюансам безопасности, чтобы вы не нарушили целостность данных при работе с системными таблицами. Также вы найдете готовые скрипты и обработки, которые сэкономят ваше время.
1. Способ: через конфигуратор 1С (самый простой)
Если у вас есть права администратора, самый быстрый способ — использовать встроенные инструменты конфигуратора. Этот метод подходит для 1С 8.3 и 1С 8.2, но функциональность может незначительно отличаться.
Откройте базу в режиме Конфигуратор (для этого при запуске 1С удерживайте клавишу Shift). Далее перейдите в меню Администрирование → Пользователи. Здесь вы увидите полный список заведенных пользователей с указанием их ролей, прав и статуса блокировки. Чтобы экспортировать данные:
- 📋 Нажмите
Файл → Сохранить как...и выберите формат.mxlили.txt. - 🔍 Для детального анализа дважды кликните по пользователю — откроется карточка с расширенными настройками (включая ограничения по дате, IP-адресам и т.д.).
- 🔄 Если список не обновляется, нажмите
F5или кнопкуОбновитьна панели инструментов.
Ограничение метода: в конфигураторе отображаются только активные пользователи, которые были созданы через интерфейс. Если в базе есть "системные" пользователи (например, Администратор по умолчанию), они могут не отобразиться в этом списке. Для их просмотра потребуются другие способы.
Если в списке пользователей отображаются "пустые" записи с именами типа User_123, это могут быть артефакты после некорректного удаления. Их можно безопасно удалить через конфигуратор, но предварительно проверьте, не используются ли они в журналах регистрации.
2. Способ: через отчет "Пользователи и права"
В типовой конфигурации 1С:Бухгалтерия, 1С:УТ или 1С:ЗУП есть стандартный отчет, который выводит пользователей с привязкой к ролям и правам. Чтобы его найти:
- Запустите 1С в режиме
1С:Предприятие. - Перейдите в раздел
Администрирование → Настройки пользователей и прав(путь может отличаться в зависимости от конфигурации). - Выберите отчет
Пользователи и праваилиСписок пользователей. - Настройте отбор по нужным параметрам (например, только активные пользователи) и сформируйте отчет.
Преимущество этого метода — детализация прав. В отчете вы увидите не только имена пользователей, но и назначенные им роли, что критично для аудита безопасности. Недостаток: отчет может отсутствовать в сильно кастомизированных или устаревших конфигурациях.
| Поле отчета | Описание | Пример значения |
|---|---|---|
Имя пользователя |
Логин для входа в систему | ИвановИИ |
Полное имя |
ФИО пользователя (если заполнено) | Иванов Иван Иванович |
Роли |
Список назначенных ролей через запятую | Бухгалтер, Кассир, ПросмотрОтчетов |
Дата блокировки |
Если пользователь заблокирован, указана дата | 01.01.2026 |
Последний вход |
Дата и время последней авторизации | 15.05.2026 14:30:12 |
3. Способ: SQL-запрос к базе данных (для клиент-серверного варианта)
Если ваша база работает на Microsoft SQL Server или PostgreSQL, можно извлечь список пользователей напрямую из системных таблиц. Этот метод требует прав на чтение системных таблиц и знания SQL.
Для 1С 8.3 на MS SQL используйте следующий запрос:
SELECT
u.Name AS UserName,
u.FullName AS FullName,
u.Description AS Description,
u.Authentification AS AuthType,
u.DataSeparator AS DataSeparator
FROM
[dbo].[v8users] u
WHERE
u.DeletionMark = 0
ORDER BY
u.Name
Для PostgreSQL запрос будет аналогичным, но с учетом синтаксиса:
SELECT
u.name AS user_name,
u.fullname AS full_name,
u.description AS description,
u.authentification AS auth_type
FROM
v8users u
WHERE
u.deletionmark = false
ORDER BY
u.name;
Ключевые поля в результате:
- 🔑
AuthType— тип аутентификации (1— стандартная,2— Windows-аутентификация). - 🗃️
DataSeparator— разделитель данных (актуально для многопользовательских баз с разделением по организациям). - 🚫
DeletionMark— метка удаления (если1, пользователь удален, но физически еще существует в базе).
⚠️ Внимание: Прямые запросы к системным таблицам 1С могут нарушить целостность данных при некорректных изменениях. Никогда не обновляйте записи вv8usersнапрямую — используйте толькоSELECT.
Как узнать имя системной таблицы с пользователями?
В 1С 8.3 имя таблицы зависит от префикса, заданного при создании базы. По умолчанию это v8users, но может быть, например, _1cv8_users или usrs_1c. Чтобы точно определить имя, выполните запрос к системным таблицам базы данных: SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME LIKE '%user%';
4. Способ: внешняя обработка для выгрузки пользователей
Если стандартные методы не подходят (например, в сильно модифицированных конфигурациях), можно использовать внешние обработки. Одна из самых популярных — обработка "Выгрузка пользователей в Excel", которую легко найти на форумах 1С (например, на Infostart).
Как ею пользоваться:
- Скачайте обработку (проверьте совместимость с вашей версией платформы!).
- Откройте базу в режиме
1С:Предприятиес правами администратора. - Перейдите в
Файл → Открыть...и выберите скачанный файл обработки (.epf). - Запустите обработку и настройте параметры выгрузки (формат, поля, фильтры).
- Сохраните результат в
ExcelилиCSV.
Преимущества обработок:
- 📊 Гибкая настройка выгружаемых полей (можно добавить кастомные данные, например, последнюю активность из журнала регистрации).
- 🔄 Автоматизация: некоторые обработки поддерживают расписание выгрузки.
- 🛡️ Безопасность: не требуется прямой доступ к SQL-серверу.
⚠️ Внимание: Перед использованием обработок от сторонних разработчиков проверьте их код на наличие вредоносных вставок. Откройте файл в конфигураторе (Файл → Открыть...) и просмотрите модули на предмет подозрительных функций (например,ВыполнитьКоманду()с неявными параметрами).
☑️ Проверка безопасности внешней обработки
5. Способ: через журнал регистрации (для анализа активности)
Если вам нужны не только имена пользователей, но и данные об их активности (время входа, выполняемые операции), используйте журнал регистрации. Этот метод полезен для аудита и выявления несанкционированных действий.
Чтобы открыть журнал:
- Запустите 1С в режиме
Конфигуратор. - Перейдите в
Администрирование → Журнал регистрации. - Настройте фильтр по дате и типу событий (например,
Авторизация). - Экспортируйте данные в
ExcelилиTXT.
В журнале вы найдете:
- 🕒 Точное время входа/выхода пользователя.
- 🖥️ IP-адрес и имя компьютера, с которого был выполнен вход.
- 📝 Выполненные действия (открытие документов, изменения справочников и т.д.).
Ограничение: журнал регистрации может быть отключен или очищаться автоматически (настраивается в параметрах базы). Если данных нет, проверьте настройки в Администрирование → Настройки журнала регистрации.
Журнал регистрации — единственный источник информации о реальной активности пользователей, включая неудачные попытки входа. Эти данные критичны для расследования инцидентов безопасности.
6. Способ: программное получение списка (для разработчиков)
Если вы разрабатываете расширение или доработку для 1С, можно получить список пользователей программно с помощью встроенного языка. Пример кода для 1С 8.3:
// Получение списка пользователей
Пользователи = Справочники.Пользователи.Выбрать();
Пока Пользователи.Следующий() Цикл
Сообщить(Пользователи.Наименование + " (" + Пользователи.ПолноеИмя + ")");
// Дополнительная обработка (например, запись в таблицу значений)
КонецЦикла;
Для выгрузки в таблицу значений:
ТаблицаПользователей = Новый ТаблицаЗначений;
ТаблицаПользователей.Колонки.Добавить("Имя");
ТаблицаПользователей.Колонки.Добавить("ПолноеИмя");
ТаблицаПользователей.Колонки.Добавить("Роли");
Пользователи = Справочники.Пользователи.Выбрать();
Пока Пользователи.Следующий() Цикл
НоваяСтрока = ТаблицаПользователей.Добавить();
НоваяСтрока.Имя = Пользователи.Наименование;
НоваяСтрока.ПолноеИмя = Пользователи.ПолноеИмя;
НоваяСтрока.Роли = Пользователи.Роли.Наименование;
КонецЦикла;
// Выгрузка в Excel
ЗаписьExcel = Новый ЗаписьДанныхExcel;
ЗаписьExcel.ОткрытьФайл("C:\Temp\Пользователи.xlsx");
ЗаписьExcel.ЗаписатьТаблицу(ТаблицаПользователей);
ЗаписьExcel.ЗакрытьФайл();
Этот метод гибок и позволяет:
- 🔧 Добавлять кастомные поля (например, дату последнего входа из журнала регистрации).
- 📤 Выгружать данные в любые форматы (
JSON,XML,Excel). - 🔄 Интегрировать с другими системами через REST API или HTTP-сервисы.
⚠️ Внимание: При программной выгрузке учитывайте разделение данных (если оно настроено в базе). Пользователи с ограниченными правами увидят только "свои" записи. Чтобы обойти это, используйте права администратора или специальные роли с полным доступом.
Сравнение способов: какой выбрать?
Выбор метода зависит от ваших задач и технических возможностей. Ниже таблица сравнения:
| Способ | Сложность | Требуемые права | Детализация данных | Подходит для |
|---|---|---|---|---|
| Конфигуратор | ⭐ | Администратор 1С | Базовая (имена, роли) | Быстрого просмотра |
| Отчет "Пользователи и права" | ⭐⭐ | Просмотр отчетов | Средняя (роли, блокировки) | Аудита прав |
| SQL-запрос | ⭐⭐⭐ | Доступ к SQL-серверу | Высокая (все поля таблицы) | Технического анализа |
| Внешняя обработка | ⭐⭐ | Администратор 1С | Кастомная (зависит от обработки) | Регулярной выгрузки |
| Журнал регистрации | ⭐⭐ | Просмотр журналов | Высокая (активность, IP) | Аудита безопасности |
| Программный код | ⭐⭐⭐⭐ | Полный доступ к конфигурации | Любая (настраивается) | Интеграции с другими системами |
Если вам нужно не только получить список, но и проанализировать активность пользователей за длительный период, комбинируйте данные из журнала регистрации и SQL-запросов к таблице v8users. Это даст полную картину: кто есть в системе, какие у них права и как они их используют.
FAQ: Частые вопросы
Могу ли я получить список пользователей без прав администратора?
Да, но с ограничениями. Через отчет "Пользователи и права" (если он доступен в вашей роли) или журнал регистрации (если у вас есть права на его просмотр). Однако вы не увидите полные данные (например, пароли или системные настройки пользователей). Для полного доступа требуются права администратора.
Как экспортировать список пользователей в Excel автоматически?
Используйте внешнюю обработку с функцией автоэкспорта или напишите небольшой скрипт на встроенном языке 1С (пример приведен в разделе 6). Для автоматического запуска по расписанию настройте Регламентное задание в конфигураторе.
Почему в списке пользователей отображаются удаленные записи?
В 1С удаление пользователей часто реализовано как "пометка на удаление" (DeletionMark = 1 в SQL). Чтобы их не видеть, настройте фильтр в конфигураторе или добавьте условие WHERE DeletionMark = 0 в SQL-запрос.
Можно ли получить список пользователей из файловой базы 1С?
Да, но способы ограничены. В файловой базе (.1CD) нет прямого доступа к SQL, поэтому используйте:
- Конфигуратор (
Администрирование → Пользователи). - Внешние обработки (например,
"Выгрузка пользователей в Excel"). - Программный код на встроенном языке (раздел 6).
SQL-запросы и журнал регистрации в файловой базе недоступны.
Как узнать, какие роли назначены пользователю?
Есть три способа:
- В конфигураторе: откройте карточку пользователя (
Администрирование → Пользователи) и перейдите на вкладкуРоли. - Через отчет
"Пользователи и права"(если он есть в вашей конфигурации). - SQL-запросом к таблице
v8roles(для клиент-серверного варианта):
SELECT u.Name AS UserName, r.Name AS RoleName
FROM v8users u
JOIN v8usersroles ur ON u.id = ur.userid
JOIN v8roles r ON ur.roleid = r.id
WHERE u.DeletionMark = 0;