Список пользователей 1С в Excel, CSV или JSON: от кнопки «Вывести список» до скрипта
Содержание
Быстрее всего выгрузить пользователей из 1С так: откройте Администрирование → Настройки пользователей и прав → Пользователи, нажмите Ещё → Вывести список…, отметьте нужные колонки и сохраните полученную таблицу в Excel. Это работает в Бухгалтерии 3.0, ЗУП 3.1, УТ 11 и других типовых конфигурациях на платформе 8.3 и занимает пару минут.
Если нужен не просто перечень ФИО, а логины, способ входа, роли или регулярная автоматическая выгрузка, понадобится один из технических способов: конфигуратор, запрос, внешняя обработка или внешнее подключение к базе. Ниже каждый из них по шагам, с готовым кодом.
Два разных списка: что именно вы выгружаете
Перед выгрузкой определитесь, какой список вам нужен. В типовых конфигурациях их два, и они не всегда совпадают.
| Список | Где хранится | Что в нём есть | Где посмотреть |
|---|---|---|---|
| 👤 Справочник «Пользователи» | Данные базы | ФИО, физлицо, подразделение, признак «Недействителен», контактная информация | Режим Предприятия, раздел «Администрирование» |
| 🔑 Пользователи информационной базы | Служебная область платформы | Имя для входа, способ аутентификации, пользователь ОС, роли, язык | Конфигуратор: Администрирование → Пользователи |
Справочник «Пользователи» — это объект Библиотеки стандартных подсистем (БСП). Каждая его карточка связана с пользователем ИБ по уникальному идентификатору. Через карточку администратор обычно и создаёт учётные записи.
Расхождения возникают, когда:
- 🧩 пользователя завели прямо в конфигураторе, минуя карточку справочника;
- 🗑️ карточку пометили на удаление, а учётная запись для входа осталась;
- 🚫 сотруднику запретили вход, и у карточки стоит «Недействителен»;
- 🔄 базу развернули из копии, и часть связей не совпала.
Для отчёта «кто у нас вообще есть» хватит справочника. Для аудита доступа (кто реально может войти и с какими правами) нужен список пользователей информационной базы.
Ещё одна частая путаница — «активные пользователи». Это не список учётных записей, а текущие сеансы: кто сидит в базе прямо сейчас. Их список открывается из конфигуратора командой Администрирование → Активные пользователи или через консоль кластера серверов. Выгружать его в Excel имеет смысл только для разовой проверки.
Способ 1. Выгрузка списка пользователей 1С в Excel без программирования
Подходит бухгалтеру, кадровику, руководителю отдела — всем, у кого есть доступ к разделу администрирования.
- Откройте
Администрирование → Настройки пользователей и прав. - Перейдите по ссылке «Пользователи».
- При необходимости отфильтруйте список: например, снимите флажок показа недействительных или задайте отбор по подразделению. Выгрузится ровно то, что видно на экране.
- Нажмите
Ещё → Вывести список…. - В открывшемся окне отметьте колонки. Выводить можно и те, что сейчас скрыты в форме.
- Выберите вывод в табличный документ и нажмите «ОК».
- В появившемся табличном документе выполните
Файл → Сохранить как(или кнопку сохранения в панели) и выберите тип «Лист Excel 2007-… (*.xlsx)».
Готовый файл открывается в Excel без доработок: одна строка — один пользователь.
Команда «Вывести список» выгружает только видимые в форме данные. Логина для входа и ролей в форме списка нет, поэтому в файле их не будет.
Как добавить в выгрузку подразделение и физлицо
Колонки, которые можно включить, определяются формой списка. Если нужного поля нет, сначала добавьте его через Ещё → Изменить форму… (или настройку списка в том же меню), а потом повторите вывод. Изменение формы сохраняется для вашей учётной записи и не влияет на других.
Список через «Функции для технического специалиста»
У администратора есть ещё один путь без конфигуратора. Включите в настройках программы показ команды «Функции для технического специалиста» (Сервис и настройки → Настройки в меню-«гамбургере»), откройте её и найдите в группе «Стандартные» обработку «Пользователи». Она показывает именно пользователей информационной базы — с именами для входа. Дальше тот же приём: Ещё → Вывести список… и сохранение в Excel.
Способ 2. Как выгрузить пользователей через конфигуратор
Администратор базы видит полный список учётных записей в конфигураторе.
- Запустите 1С в режиме «Конфигуратор» под пользователем с ролью «Полные права» (или «Администратор системы»).
- Откройте
Администрирование → Пользователи. - В окне видны колонки «Имя», «Полное имя», признак аутентификации 1С и ОС, пользователь ОС.
Готовой кнопки «Экспорт в Excel» в этом окне нет. Для небольшой базы выручает ручное копирование: выделите строки и скопируйте их в буфер (если вариант копирования в вашей версии платформы недоступен, используйте способ 1 через обработку «Пользователи»).
Конфигуратор незаменим в другой задаче — перенос пользователей в другую базу целиком:
- 📦
Администрирование → Выгрузить информационную базу…создаёт файл.dt. В него попадают и данные, и все пользователи ИБ с ролями и паролями. - 📥
Администрирование → Загрузить информационную базу…в целевой базе заменит её содержимое полностью, включая пользователей.
Загрузка .dt полностью перезаписывает целевую базу. Делайте это только в пустую или тестовую базу и никогда — поверх рабочей с другими данными. Загрузка требует монопольного доступа: остальные пользователи должны выйти, их сеансы оборвутся.
Универсальная выгрузка данных в XML переносит только справочник «Пользователи». Учётные записи для входа так не переносятся: их придётся создать в новой базе заново или через код из способа 3.
Способ 3. Выгрузка пользователей запросом и встроенным языком
Этот способ нужен разработчику, когда требуется полный набор полей или регулярная выгрузка.
Запрос к справочнику «Пользователи»
Запрос выполняется в любой консоли запросов (например, во внешней обработке консоли, которую используют разработчики):
ВЫБРАТЬ
Пользователи.Наименование КАК ФИО,
Пользователи.Недействителен КАК Недействителен,
Пользователи.Подразделение КАК Подразделение,
Пользователи.ФизическоеЛицо КАК ФизЛицо,
Пользователи.ИдентификаторПользователяИБ КАК ИдентификаторИБ
ИЗ
Справочник.Пользователи КАК Пользователи
ГДЕ
НЕ Пользователи.ПометкаУдаления
УПОРЯДОЧИТЬ ПО
Пользователи.Наименование
Состав реквизитов зависит от конфигурации. Поле ИдентификаторПользователяИБ есть во всех конфигурациях на БСП, а «Подразделение» или «ФизическоеЛицо» в отдельных решениях может отсутствовать — тогда уберите строку. Результат консоли выводится в табличный документ и сохраняется в xlsx так же, как в способе 1.
Пользователи ИБ: логины, роли, способ входа
Запрос к учётным записям не обращается: они не таблица конфигурации. Их читают методом ПользователиИнформационнойБазы.ПолучитьПользователей(). Код ниже собирает CSV с логинами и ролями. Он выполняется на сервере и требует административных прав.
&НаСервере
Функция СписокПользователейCSV()
Текст = Новый ТекстовыйДокумент;
Текст.ДобавитьСтроку("Имя;ПолноеИмя;Аутентификация1С;АутентификацияОС;ПользовательОС;Роли");
Для Каждого ПользовательИБ Из ПользователиИнформационнойБазы.ПолучитьПользователей() Цикл
Роли = Новый Массив;
Для Каждого Роль Из ПользовательИБ.Роли Цикл
Роли.Добавить(Роль.Имя);
КонецЦикла;
Строка = СтрШаблон("%1;%2;%3;%4;%5;%6",
ПользовательИБ.Имя,
ПользовательИБ.ПолноеИмя,
Формат(ПользовательИБ.АутентификацияСтандартная, "БЛ=Нет; БИ=Да"),
Формат(ПользовательИБ.АутентификацияОС, "БЛ=Нет; БИ=Да"),
ПользовательИБ.ПользовательОС,
СтрСоединить(Роли, ", "));
Текст.ДобавитьСтроку(Строка);
КонецЦикла;
ИмяФайла = ПолучитьИмяВременногоФайла("csv");
Текст.Записать(ИмяФайла, КодировкаТекста.UTF8);
Возврат ПоместитьВоВременноеХранилище(Новый ДвоичныеДанные(ИмяФайла));
КонецФункции
На клиенте адрес из временного хранилища передают в ПолучитьФайл() или НачатьПолучениеФайлаССервера(), и браузер или тонкий клиент предлагает сохранить файл
. Кодировка UTF-8 с BOM корректно открывается в Excel с кириллицей.
Тот же список в JSON
Для интеграции с внешней системой удобнее JSON. Платформа 8.3 пишет его объектом ЗаписьJSON:
&НаСервере
Функция СписокПользователейJSON()
Массив = Новый Массив;
Для Каждого ПользовательИБ Из ПользователиИнформационнойБазы.ПолучитьПользователей() Цикл
Запись = Новый Структура;
Запись.Вставить("name", ПользовательИБ.Имя);
Запись.Вставить("fullName", ПользовательИБ.ПолноеИмя);
Запись.Вставить("id", Строка(ПользовательИБ.УникальныйИдентификатор));
Запись.Вставить("osUser", ПользовательИБ.ПользовательОС);
Массив.Добавить(Запись);
КонецЦикла;
ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.УстановитьСтроку(Новый ПараметрыЗаписиJSON(, Символы.Таб));
ЗаписатьJSON(ЗаписьJSON, Массив);
Возврат ЗаписьJSON.Закрыть();
КонецФункции
Поле id совпадает с ИдентификаторПользователяИБ в справочнике. По нему два списка сводятся в один — так находят учётные записи без карточек и карточки без учётных записей.
Паролей в выгрузке не будет. Платформа хранит только хеш, и свойство Пароль на чтение не возвращает исходное значение. Это нормально и правильно.
Способ 4. Внешняя обработка для регулярной выгрузки
Если выгрузка нужна раз в месяц для аудита, код из способа 3 удобно упаковать во внешнюю обработку . Тогда не придётся менять конфигурацию и снимать её с поддержки.
Как собрать обработку
- В конфигураторе:
Файл → Новый… → Внешняя обработка. - Задайте имя, например
ВыгрузкаПользователей, и создайте основную форму. - Добавьте на форму команду «Выгрузить в CSV» и, при желании, «Выгрузить в JSON».
- В модуль формы вставьте функции из способа 3 и клиентский обработчик команды, который вызывает функцию и передаёт адрес файла в
ПолучитьФайл(). - Сохраните файл
.epf.
Как запустить
- 📂 Разово:
Файл → Открытьв режиме Предприятия (меню-«гамбургер»), выберите.epf. Платформа покажет предупреждение безопасности — подтвердите, если файл ваш. - 🗂️ Постоянно: подключите обработку в разделе
Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки. Так её смогут запускать нужные пользователи без права открывать произвольные файлы.
Права нужны соответствующие: для чтения пользователей ИБ — административная роль. Обычный пользователь получит ошибку о нарушении прав доступа.
Что ещё добавить в обработку
- 📅 Колонку с датой последнего входа. В БСП эти сведения хранятся в данных подсистемы «Пользователи» и видны в карточке пользователя; в обработке их можно получить из регистра сведений о пользователях, если вы знаете его имя в своей конфигурации.
- 🔗 Сопоставление со справочником по
ИдентификаторПользователяИБ, чтобы сразу отметить «сирот». - 🛡️ Колонку «Входит в группы доступа» — для аудита прав это полезнее, чем голый список ролей.
Способ 5. Внешнее подключение к базе и прямой SQL
Этот вариант для тех, кому выгрузку нужно запускать из внешней программы по расписанию: из PowerShell, Python или системы мониторинга.
COM-соединение
В Windows с установленной платформой 1С регистрируется компонента V83.COMConnector. Через неё внешний скрипт открывает базу и вызывает тот же метод платформы. Пример на PowerShell:
$connector = New-Object -ComObject V83.COMConnector
$base = $connector.Connect('Srvr="srv1c";Ref="buh";Usr="audit";Pwd="пароль";')
$users = $base.InfoBaseUsers.GetUsers()
$result = for ($i = 0; $i -lt $users.Count(); $i++) {
$u = $users.Get($i)
[PSCustomObject]@{ Name = $u.Name; FullName = $u.FullName; OSUser = $u.OSUser }
}
$result | Export-Csv -Path C:\Reports\users.csv -Encoding UTF8 -NoTypeInformation -Delimiter ';'
Для файловой базы строка подключения начинается с File="C:\Bases\Buh";. Разрядность скрипта и платформы должна совпадать: 64-битный PowerShell работает с 64-битной компонентой.
Каждое COM-подключение занимает лицензию и создаёт сеанс в базе. Запускайте выгрузку вне рабочих часов и не держите соединение открытым дольше нужного.
HTTP-сервис и OData
Без Windows и COM обходятся через веб-публикацию базы:
- 🌐 Стандартный интерфейс OData отдаёт данные справочника «Пользователи» в JSON, если справочник включён в состав публикуемых объектов.
- 🧰 HTTP-сервис в расширении конфигурации может вернуть и список пользователей ИБ — код внутри сервиса тот же, что в способе 3.
OData не показывает учётные записи для входа: только данные справочника.
ODBC и запрос к таблицам СУБД
Официального ODBC-драйвера для баз 8.3 нет, а прямое чтение таблиц СУБД платформа не поддерживает. Учётные записи в клиент-серверной базе лежат в служебной таблице v8users, но значимая часть данных (роли, настройки) хранится там в закодированном виде. Имена и полные имена прочитать можно, остальное — нет.
Используйте прямой SQL только для разовой проверки на копии базы и только на чтение. Любая запись в служебные таблицы может сделать базу неработоспособной. Кроме того, лицензионные условия 1С ограничивают доступ к данным в обход платформы — перед внедрением такого решения проверьте их.
| Способ | Когда выбирать | Что получите | Риски |
|---|---|---|---|
| Вывести список | Разово, без программиста | ФИО, подразделение | Нет логинов и ролей |
| Конфигуратор | Обзор или перенос базы | Полный список ИБ, .dt | Загрузка .dt перезаписывает базу |
| Код / запрос | Нужны все поля | CSV, JSON, Excel | Нужны права администратора |
| Внешняя обработка | Регулярный аудит | Файл по кнопке | Права на запуск обработок |
| COM / OData | Выгрузка по расписанию | Файл без участия человека | Занимает лицензию |
| Прямой SQL | Разовая проверка копии | Имена из v8users | Закодированные данные, нет поддержки |
Ошибки при выгрузке пользователей и что с ними делать
Частые вопросы
Можно ли выгрузить пароли пользователей 1С?
Перенесутся ли пользователи при обновлении конфигурации?
Как выгрузить пользователей из базы в облаке 1С:Фреш?
Сколько пользователей может быть в списке и влияет ли это на лицензии?
Как перенести только пользователей в другую базу без данных?
ПользователиИнформационнойБазы.СоздатьПользователя(). Пароли придётся задать заново.