Получение списка пользователей 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С в режиме 1С:Предприятие.
  2. Перейдите в раздел Администрирование → Настройки пользователей и прав (путь может отличаться в зависимости от конфигурации).
  3. Выберите отчет Пользователи и права или Список пользователей.
  4. Настройте отбор по нужным параметрам (например, только активные пользователи) и сформируйте отчет.

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

Поле отчета Описание Пример значения
Имя пользователя Логин для входа в систему ИвановИИ
Полное имя ФИО пользователя (если заполнено) Иванов Иван Иванович
Роли Список назначенных ролей через запятую Бухгалтер, Кассир, ПросмотрОтчетов
Дата блокировки Если пользователь заблокирован, указана дата 01.01.2026
Последний вход Дата и время последней авторизации 15.05.2026 14:30:12
📊 Какой способ получения списка пользователей 1С вы используете чаще?
Через конфигуратор
Через отчет "Пользователи и права"
SQL-запросы
Внешние обработки
Другой

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, пользователь удален, но физически еще существует в базе).
⚠️ Внимание: Прямые запросы к системным таблицам могут нарушить целостность данных при некорректных изменениях. Никогда не обновляйте записи в v8users напрямую — используйте только SELECT.
Как узнать имя системной таблицы с пользователями?

В 1С 8.3 имя таблицы зависит от префикса, заданного при создании базы. По умолчанию это v8users, но может быть, например, _1cv8_users или usrs_1c. Чтобы точно определить имя, выполните запрос к системным таблицам базы данных: SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME LIKE '%user%';

4. Способ: внешняя обработка для выгрузки пользователей

Если стандартные методы не подходят (например, в сильно модифицированных конфигурациях), можно использовать внешние обработки. Одна из самых популярных — обработка "Выгрузка пользователей в Excel", которую легко найти на форумах (например, на Infostart).

Как ею пользоваться:

  1. Скачайте обработку (проверьте совместимость с вашей версией платформы!).
  2. Откройте базу в режиме 1С:Предприятие с правами администратора.
  3. Перейдите в Файл → Открыть... и выберите скачанный файл обработки (.epf).
  4. Запустите обработку и настройте параметры выгрузки (формат, поля, фильтры).
  5. Сохраните результат в Excel или CSV.

Преимущества обработок:

  • 📊 Гибкая настройка выгружаемых полей (можно добавить кастомные данные, например, последнюю активность из журнала регистрации).
  • 🔄 Автоматизация: некоторые обработки поддерживают расписание выгрузки.
  • 🛡️ Безопасность: не требуется прямой доступ к SQL-серверу.
⚠️ Внимание: Перед использованием обработок от сторонних разработчиков проверьте их код на наличие вредоносных вставок. Откройте файл в конфигураторе (Файл → Открыть...) и просмотрите модули на предмет подозрительных функций (например, ВыполнитьКоманду() с неявными параметрами).

☑️ Проверка безопасности внешней обработки

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

5. Способ: через журнал регистрации (для анализа активности)

Если вам нужны не только имена пользователей, но и данные об их активности (время входа, выполняемые операции), используйте журнал регистрации. Этот метод полезен для аудита и выявления несанкционированных действий.

Чтобы открыть журнал:

  1. Запустите 1С в режиме Конфигуратор.
  2. Перейдите в Администрирование → Журнал регистрации.
  3. Настройте фильтр по дате и типу событий (например, Авторизация).
  4. Экспортируйте данные в Excel или TXT.

В журнале вы найдете:

  • 🕒 Точное время входа/выхода пользователя.
  • 🖥️ IP-адрес и имя компьютера, с которого был выполнен вход.
  • 📝 Выполненные действия (открытие документов, изменения справочников и т.д.).

Ограничение: журнал регистрации может быть отключен или очищаться автоматически (настраивается в параметрах базы). Если данных нет, проверьте настройки в Администрирование → Настройки журнала регистрации.

💡

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

6. Способ: программное получение списка (для разработчиков)

Если вы разрабатываете расширение или доработку для , можно получить список пользователей программно с помощью встроенного языка. Пример кода для 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-запросы и журнал регистрации в файловой базе недоступны.

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

Есть три способа:

  1. В конфигураторе: откройте карточку пользователя (Администрирование → Пользователи) и перейдите на вкладку Роли.
  2. Через отчет "Пользователи и права" (если он есть в вашей конфигурации).
  3. 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;